{"version":3,"sources":["src/VPAEngine/bridge.js","src/VPAEngine/VPAEngine.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,8BAA8B,EAAE;;AAEhC;AACA;AACA,SAAS;;AAET;AACA;;AAEA,2BAA2B,iBAAiB;AAC5C;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+BAA+B,cAAc;AAC7C;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA,SAAS;;AAET;AACA,wCAAwC;;AAExC;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,+BAA+B,cAAc;AAC7C;AACA;;AAEA;AACA;;AAEA,yBAAyB;AACzB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA,SAAS;;AAET;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,wBAAwB;AACvD;;AAEA;AACA,yCAAyC;AACzC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,wDAAwD,gCAAgC,EAAE;;AAE1F,iCAAiC,qBAAqB;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,sCAAsC;AACtC;;AAEA,6DAA6D,OAAO;AACpE;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+BAA+B,cAAc;AAC7C;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,0CAA0C,kBAAkB;AAC5D;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,+BAA+B,gCAAgC;AAC/D;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA,uBAAuB,kBAAkB;AACzC;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA,uBAAuB,kBAAkB;AACzC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,2BAA2B,iBAAiB;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,gEAAgE,QAAQ;AACxE;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,6BAA6B;AAC7B;;AAEA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA,qDAAqD,SAAS;AAC9D;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,+BAA+B,kBAAkB;AACjD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,sCAAsC,WAAW;;AAEjD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA,0CAA0C,GAAG;AAC7C;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mCAAmC,iCAAiC;AACpE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B,qBAAqB;AACpD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,qDAAqD,QAAQ;AAC7D;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uCAAuC,gBAAgB;AACvD;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;;AAEA;;AAEA,+BAA+B,gBAAgB;AAC/C;AACA;;AAEA;;AAEA;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB;AACzB;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA,oCAAoC;;AAEpC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,yBAAyB;AACxD;AACA;;AAEA,4DAA4D,QAAQ;AACpE;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,uCAAuC,gBAAgB;AACvD;;AAEA;AACA;AACA,8CAA8C,uCAAuC;AACrF,6BAA6B;AAC7B;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yCAAyC;;AAEzC;AACA;AACA;AACA;AACA;AACA,kDAAkD,uCAAuC;AACzF,iCAAiC;AACjC;AACA,kDAAkD,yBAAyB;AAC3E;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,2BAA2B;AAC3B;;AAEA;AACA;;AAEA,+BAA+B,iBAAiB;AAChD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B;AAC/B;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb,0BAA0B;AAC1B;;AAEA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,6FAA6F,qBAAqB;;AAElH;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD;;AAEpD;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oDAAoD;;AAEpD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC,+BAA+B;AACpE;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,2BAA2B,sBAAsB;AACjD;AACA;;AAEA;;AAEA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,4CAA4C;AAC5C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,uBAAuB,iBAAiB;AACxC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,+CAA+C,0BAA0B;AACzE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,4BAA4B;AACnE;AACA;AACA;;AAEA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA;;AAEA;AACA,uCAAuC,kBAAkB;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,wBAAwB;AACxB;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wDAAwD,QAAQ;AAChE;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA,2BAA2B,mBAAmB;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mCAAmC,kCAAkC;AACrE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB,mBAAmB;AAC1C;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,6BAA6B;AACpD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iCAAiC;;AAEjC;AACA;AACA,iCAAiC;;AAEjC;;AAEA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB;;AAEzB;AACA;AACA,yBAAyB;;AAEzB;;AAEA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;;AAEA,2BAA2B,0BAA0B;AACrD;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,SAAS;AAChC;;AAEA;AACA;;AAEA,+BAA+B,qBAAqB;AACpD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mCAAmC,SAAS;AAC5C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,2BAA2B,kBAAkB;AAC7C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,iCAAiC;AACjC;AACA,yBAAyB;AACzB,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,SAAS;AACT,2CAA2C;AAC3C;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,oCAAoC,EAAE;;AAEtC;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,0BAA0B;AACxE;AACA,SAAS;AACT;AACA,mCAAmC,aAAa;AAChD;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yDAAyD,iDAAiD;AAC1G;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,+BAA+B,uBAAuB;AACtD;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uCAAuC,mBAAmB;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA,2BAA2B,iBAAiB;AAC5C;AACA;;AAEA;AACA,SAAS;;AAET;AACA,+CAA+C;;AAE/C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kFAAkF,oCAAoC,EAAE;AACxH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,0CAA0C,GAAG;AAC7C;;AAEA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;;AAEA,wCAAwC,GAAG;;AAE3C;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA,gEAAgE,kCAAkC;AAClG;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;;AAEA,2BAA2B,cAAc;AACzC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,uBAAuB;AAClD;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA,sBAAsB,EAAE;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B,EAAE;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mCAAmC,kBAAkB;AACrD;;AAEA;AACA;;AAEA,2CAA2C,mBAAmB;AAC9D;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,+BAA+B,cAAc;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,2BAA2B,uBAAuB;AAClD;;AAEA;AACA;AACA;;AAEA;AACA,2DAA2D,QAAQ;AACnE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C,mBAAmB;AAC9D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,+BAA+B,sBAAsB;AACrD;;AAEA;;AAEA,mCAAmC,OAAO;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;;AAEA;AACA,sCAAsC,sCAAsC;AAC5E,aAAa;AACb,uCAAuC,mCAAmC;AAC1E,aAAa;AACb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0CAA0C,gIAAgI;AAC1K;;AAEA;AACA;;AAEA,0CAA0C,8EAA8E;AACxH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC;AAChC,qBAAqB;AACrB;;AAEA,+BAA+B,sBAAsB;AACrD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,+BAA+B,8BAA8B;AAC7D;AACA;AACA;AACA;AACA;;AAEA;;AAEA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wFAAwF,iDAAiD,EAAE;AAC3I;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,4EAA4E,4CAA4C,EAAE;AAC1H;;AAEA;AACA;;AAEA;AACA,mCAAmC,kBAAkB;AACrD;;AAEA;AACA,sFAAsF,4CAA4C,EAAE;AACpI;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA,kDAAkD,QAAQ;AAC1D;AACA;;AAEA,uCAAuC,kBAAkB;AACzD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2EAA2E,4CAA4C,EAAE;AACzH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,+BAA+B,kBAAkB;AACjD;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B,kBAAkB;AAC7C,4BAA4B,0CAA0C;AACtE;;AAEA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B,kBAAkB;AAC7C;AACA;;AAEA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,2BAA2B,kBAAkB;AAC7C;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,kBAAkB;AAC7C;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;;AAEA;AACA;AACA,aAAa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;;AAEA;AACA;AACA,aAAa;;AAEb;;AAEA;AACA;AACA,aAAa;;AAEb;;AAEA;AACA;AACA,aAAa;;AAEb;;AAEA;AACA;AACA,aAAa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA,+BAA+B,gEAAgE,EAAE;AACjG;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,sDAAsD;AACpG;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B,kBAAkB;AAC7C;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;;AAEjB;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA,2BAA2B,kBAAkB;AAC7C;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA,iCAAiC;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,4CAA4C,aAAa;AACzD;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,sGAAsG,+BAA+B,GAAG;;AAExI,2CAA2C,kBAAkB;AAC7D,6HAA6H,+BAA+B,GAAG;;AAE/J,+CAA+C,kBAAkB;AACjE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA,6BAA6B;;AAE7B;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC;AACrC;AACA,qCAAqC;AACrC;AACA,qCAAqC;AACrC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA,wCAAwC;;AAExC;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;;AAEA,2DAA2D,+BAA+B,EAAE;;AAE5F;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB;AACjB;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA,2BAA2B,mBAAmB;AAC9C;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;;AAEA,8DAA8D,+BAA+B,EAAE;;AAE/F;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B,mBAAmB;AAC9C;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA,6BAA6B;AAC7B;AACA;;AAEA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA,sDAAsD,YAAY;AAClE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA,2BAA2B;;AAE3B;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,mCAAmC,cAAc;AACjD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB;AACjB;;AAEA;AACA,iBAAiB;AACjB;;AAEA;AACA;;AAEA;AACA;;AAEA,+BAA+B,cAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA,6BAA6B,kBAAkB,mBAAmB,sBAAsB,gBAAgB,oCAAoC,mBAAmB,UAAU,SAAS,UAAU,mDAAmD,oCAAoC,kBAAkB,OAAO,QAAQ,sDAAsD,8BAA8B,kBAAkB,WAAW;AACra,2DAA2D,SAAS,qBAAqB,uBAAuB,OAAO,uBAAuB,2BAA2B;AACzK;AACA,SAAS,sBAAsB,wBAAwB;AACvD,4DAA4D,yFAAyF,mDAAmD,aAAa,gDAAgD,OAAO,8DAA8D,mDAAmD,gBAAgB,uBAAuB,cAAc;AAClb,0FAA0F;AAC1F;AACA,aAAa,gBAAgB;AAC7B,SAAS,gBAAgB,yHAAyH,oBAAoB,cAAc,mDAAmD,8CAA8C,EAAE,cAAc,WAAW,SAAS,eAAe,kBAAkB,gBAAgB,kBAAkB,kBAAkB,iBAAiB,uEAAuE,YAAY,kBAAkB,aAAa,cAAc,WAAW;AAC1iB,iBAAiB,YAAY,eAAe,eAAe,+BAA+B,iBAAiB,uBAAuB,0BAA0B,+BAA+B,iBAAiB,iBAAiB,wBAAwB,oDAAoD,2BAA2B,wHAAwH;AAC5b,wBAAwB,gDAAgD,+BAA+B;AACvG;AACA;AACA,kEAAkE;AAClE,iBAAiB;AACjB,aAAa,0DAA0D,EAAE,GAAG,0EAA0E,8BAA8B,OAAO,cAAc,cAAc;AACvN,UAAU,8BAA8B,oBAAoB,sCAAsC,0BAA0B,6BAA6B,mBAAmB;AAC5K;AACA;AACA,UAAU,gCAAgC,4EAA4E,4DAA4D,6BAA6B,MAAM,0CAA0C,yBAAyB,4CAA4C,6BAA6B,0CAA0C,6BAA6B,0CAA0C,wBAAwB,+BAA+B,yBAAyB,+BAA+B;AACjkB,+BAA+B;AAC/B;AACA,UAAU,iBAAiB,6BAA6B,sBAAsB,qBAAqB,4BAA4B,2BAA2B,mBAAmB,mCAAmC,4BAA4B,2BAA2B,+BAA+B,2BAA2B,sBAAsB,sCAAsC,4BAA4B,8BAA8B;AACvb,+BAA+B;AAC/B,0DAA0D;AAC1D,UAAU,oBAAoB,yBAAyB,+DAA+D,kBAAkB;AACxI,+BAA+B,kIAAkI,gDAAgD,oBAAoB,YAAY,oBAAoB,YAAY;AACjR,2BAA2B,yBAAyB;AACpD,UAAU,4BAA4B,oBAAoB,4BAA4B,oBAAoB;AAC1G,wCAAwC,oBAAoB,0BAA0B,0CAA0C,0CAA0C,kGAAkG,oDAAoD;AAChU,yCAAyC,qJAAqJ,mBAAmB,gBAAgB,eAAe,oBAAoB,YAAY,oBAAoB,yBAAyB,eAAe,YAAY,YAAY,oBAAoB,yBAAyB,eAAe,YAAY,YAAY,eAAe,YAAY,iDAAiD;AACpgB,UAAU,oBAAoB;AAC9B,+BAA+B,iDAAiD;AAChF,0BAA0B,aAAa,uDAAuD,OAAO,kBAAkB,kCAAkC,uBAAuB,+BAA+B,4CAA4C,wBAAwB,6BAA6B,2CAA2C,kGAAkG,qDAAqD,qBAAqB,0BAA0B,kCAAkC,QAAQ;AAC3kB,sBAAsB,eAAe,WAAW,GAAG,0DAA0D,yGAAyG,4BAA4B,gDAAgD,uBAAuB,cAAc,eAAe;AACtV,UAAU,kBAAkB,0BAA0B,oBAAoB,uCAAuC,kBAAkB,sBAAsB,kDAAkD;AAC3M,+BAA+B;AAC/B;AACA,UAAU,sBAAsB,oBAAoB,iEAAiE,uBAAuB,oBAAoB,iEAAiE,6BAA6B,yBAAyB,4JAA4J,qBAAqB;AACxc,oCAAoC;AACpC;AACA,UAAU,sBAAsB,sCAAsC,yBAAyB,SAAS,0BAA0B,mBAAmB,mJAAmJ,+BAA+B,2BAA2B,4DAA4D,6BAA6B;AAC3b,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA2C,SAAS;AACpD;AACA;;AAEA;AACA;AACA,cAAc,qBAAqB;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA2C,SAAS;AACpD;AACA;;AAEA;AACA;AACA,cAAc,qBAAqB;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA2C,SAAS;AACpD;AACA;;AAEA;AACA;AACA,cAAc,qBAAqB;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA2C,SAAS;AACpD;AACA;;AAEA;AACA;AACA,cAAc,qBAAqB;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,mBAAmB,cAAc,gBAAgB,iDAAiD,aAAa,oBAAoB,OAAO,iEAAiE,4DAA4D,8BAA8B,OAAO,cAAc,UAAU,eAAe,sBAAsB,uDAAuD,yBAAyB,gBAAgB,eAAe,SAAS,aAAa,yrBAAyrB,sBAAsB,6CAA6C,OAAO,GAAG,mBAAmB,KAAK,YAAY,+CAA+C,cAAc,oGAAoG,qBAAqB,mBAAmB,0BAA0B,qKAAqK,gBAAgB,KAAK,GAAG,oBAAoB,2CAA2C,6BAA6B,yBAAyB,kDAAkD,oBAAoB,2BAA2B,sBAAsB,SAAS,cAAc,wFAAwF,8DAA8D,iBAAiB,OAAO,UAAU,YAAY,4CAA4C,OAAO,0BAA0B,SAAS,cAAc,0EAA0E,mZAAmZ,wJAAwJ,EAAE,GAAG,cAAc,sBAAsB,SAAS,cAAc,2BAA2B,SAAS,cAAc,6CAA6C,QAAQ,kCAAkC,oBAAoB,mBAAmB,cAAc,WAAW,kGAAkG,sBAAsB,gCAAgC,0CAA0C,kcAAkc,mBAAmB,0BAA0B,SAAS,cAAc,wBAAwB,sBAAsB,8DAA8D,gCAAgC,sBAAsB,6BAA6B,gCAAgC,gBAAgB,sCAAsC,gBAAgB,OAAO,aAAa,cAAc,eAAe,SAAS,eAAe,WAAW,gBAAgB,iBAAiB,KAAK,WAAW,WAAW,yBAAyB,gDAAgD,cAAc,EAAE,GAAG,gFAAgF,mDAAmD,QAAQ,4BAA4B,oBAAoB,gBAAgB,iCAAiC,sBAAsB,oCAAoC,gBAAgB,GAAG,6BAA6B,OAAO,QAAQ,qBAAqB,WAAW,mBAAmB,kGAAkG,qHAAqH,+DAA+D,UAAU,yBAAyB,oGAAoG,EAAE,GAAG,wHAAwH,YAAY,KAAK,0BAA0B,0CAA0C,+EAA+E,0DAA0D,QAAQ,EAAE,mBAAmB,wHAAwH,kIAAkI,2QAA2Q,OAAO,8CAA8C,mDAAmD,wKAAwK,EAAE,GAAG,6GAA6G,4IAA4I,oEAAoE,wGAAwG,gBAAgB,EAAE,gBAAgB,+BAA+B,mBAAmB,aAAa,yLAAyL,yBAAyB,MAAM,mBAAmB,6BAA6B,MAAM,yBAAyB,0FAA0F,6CAA6C,OAAO,iCAAiC,oCAAoC,aAAa,OAAO,KAAK,WAAW,8HAA8H,yBAAyB,WAAW,mBAAmB,+BAA+B,yFAAyF,6CAA6C,4BAA4B,OAAO,sCAAsC,QAAQ,mRAAmR,YAAY,cAAc,kLAAkL,mBAAmB,uBAAuB,iCAAiC,kGAAkG,yDAAyD,KAAK,oEAAoE,WAAW,4BAA4B,+DAA+D,6CAA6C,EAAE,GAAG,gKAAgK,YAAY,0BAA0B,EAAE,qBAAqB,kCAAkC,wCAAwC,mBAAmB,+DAA+D,qDAAqD,mDAAmD,OAAO,oFAAoF,oCAAoC,0BAA0B,yBAAyB,oEAAoE,uHAAuH,8PAA8P,aAAa,UAAU,YAAY,uVAAuV,kBAAkB,qCAAqC,mBAAmB,WAAW,MAAM,oBAAoB,OAAO,2BAA2B,SAAS,oCAAoC,+BAA+B,OAAO,eAAe,mCAAmC,WAAW,MAAM,sBAAsB,OAAO,4BAA4B,yCAAyC,mCAAmC,kBAAkB,OAAO,KAAK,cAAc,eAAe,+BAA+B,KAAK,WAAW,uDAAuD,2BAA2B,gEAAgE,eAAe,+BAA+B,mBAAmB,oDAAoD,gBAAgB,2BAA2B,gBAAgB,4BAA4B,gBAAgB,6BAA6B,mBAAmB,6BAA6B,gBAAgB,4BAA4B,gBAAgB,6BAA6B,gBAAgB,4BAA4B,gBAAgB,6BAA6B,mBAAmB,kCAAkC,yDAAyD,qdAAqd,gBAAgB,4BAA4B,gBAAgB,wCAAwC,gBAAgB,qEAAqE,+IAA+I,YAAY,cAAc,4CAA4C,sFAAsF,cAAc,wCAAwC,gFAAgF,SAAS,gHAAgH,eAAe,oBAAoB,cAAc,gBAAgB,2BAA2B,gBAAgB,4BAA4B,gBAAgB,gBAAgB,uBAAuB,wCAAwC,4GAA4G,oCAAoC,yEAAyE,kEAAkE,mBAAmB,SAAS,cAAc,mCAAmC,6FAA6F,yCAAyC,uGAAuG,aAAa,6sBAA6sB,4GAA4G,cAAc,mDAAmD,wBAAwB,mBAAmB,4BAA4B,gBAAgB,2BAA2B,gBAAgB,wCAAwC,eAAe,2BAA2B,qBAAqB,sBAAsB,yEAAyE,OAAO,0CAA0C,QAAQ,2BAA2B,gBAAgB,0BAA0B,mBAAmB,4BAA4B,gBAAgB,4BAA4B,gBAAgB,6BAA6B,eAAe,kCAAkC,eAAe,kCAAkC,mBAAmB,4BAA4B,mBAAmB,4BAA4B,mBAAmB,4BAA4B,iBAAiB,gDAAgD,2KAA2K,OAAO,iGAAiG,OAAO,0CAA0C,sCAAsC,OAAO,sJAAsJ,YAAY,YAAY,OAAO,mCAAmC,mFAAmF,YAAY,cAAc,2BAA2B,OAAO,aAAa,YAAY,oBAAoB,sBAAsB,SAAS,cAAc,0BAA0B,6BAA6B,iBAAiB,oDAAoD,iBAAiB,oEAAoE,iBAAiB,2BAA2B,iBAAiB,4BAA4B,iBAAiB,4BAA4B,oBAAoB,4BAA4B,iBAAiB,2BAA2B,iBAAiB,4BAA4B,iBAAiB,wCAAwC,2lEAA2lE,qGAAqG,qdAAqd,0CAA0C,oCAAoC,oCAAoC,yBAAyB,sDAAsD,yCAAyC,uFAAuF,qFAAqF,qDAAqD,uBAAuB,oDAAoD,2DAA2D,OAAO,6DAA6D,8CAA8C,oCAAoC,uCAAuC,mPAAmP,uCAAuC,+DAA+D,kDAAkD,kaAAka,EAAE,wJAAwJ,oEAAoE,iGAAiG,QAAQ,yDAAyD,OAAO,QAAQ,gBAAgB,yCAAyC,0CAA0C,4BAA4B,SAAS,uEAAuE,aAAa,cAAc,mBAAmB,WAAW,wCAAwC,2CAA2C,sDAAsD,iCAAiC,8DAA8D,oCAAoC,2BAA2B,0BAA0B,sDAAsD,yCAAyC,yBAAyB,mDAAmD,qBAAqB,2BAA2B,+CAA+C,8DAA8D,oDAAoD,0BAA0B,qQAAqQ,kCAAkC,KAAK,4DAA4D,mDAAmD,6CAA6C,6CAA6C,kDAAkD,gJAAgJ,OAAO,sGAAsG,yDAAyD,KAAK,oEAAoE,yDAAyD,gDAAgD,uCAAuC,6LAA6L,4CAA4C,yFAAyF,sPAAsP,uDAAuD,uCAAuC,qRAAqR,qDAAqD,uCAAuC,iQAAiQ,wDAAwD,6CAA6C,0XAA0X,0CAA0C,6CAA6C,yTAAyT,6CAA6C,6FAA6F,oBAAoB,iCAAiC,uFAAuF,OAAO,6BAA6B,qEAAqE,wFAAwF,GAAG,mDAAmD,iFAAiF,UAAU,2HAA2H,0BAA0B,EAAE,4FAA4F,6BAA6B,kBAAkB,yCAAyC,yDAAyD,0BAA0B,iBAAiB,0CAA0C,oBAAoB,0CAA0C,oBAAoB,2BAA2B,qCAAqC,sCAAsC,yBAAyB,gDAAgD,yBAAyB,wCAAwC,iGAAiG,sCAAsC,OAAO,iFAAiF,eAAe,oHAAoH,iCAAiC,OAAO,eAAe,cAAc,UAAU,cAAc,kMAAkM,kEAAkE,QAAQ,4BAA4B,6BAA6B,oCAAoC,qEAAqE,oIAAoI,8CAA8C,yEAAyE,sBAAsB,OAAO,2CAA2C,eAAe,6BAA6B,oEAAoE,8KAA8K,KAAK,YAAY,cAAc,OAAO,iEAAiE,OAAO,yBAAyB,iBAAiB,QAAQ,QAAQ,6EAA6E,OAAO,iBAAiB,mBAAmB,OAAO,GAAG,qBAAqB,YAAY,mBAAmB,gBAAgB,qBAAqB,eAAe,OAAO,cAAc,UAAU,OAAO,YAAY,eAAe,wFAAwF,qCAAqC,oCAAoC,8QAA8Q,gDAAgD,iBAAiB,6CAA6C,iBAAiB,qCAAqC,oCAAoC,0BAA0B,mCAAmC,+DAA+D,0HAA0H,+CAA+C,2HAA2H,oEAAoE,2KAA2K,KAAK,YAAY,cAAc,mFAAmF,GAAG,sDAAsD,6CAA6C,aAAa,UAAU,qDAAqD,uCAAuC,iBAAiB,0EAA0E,4EAA4E,0BAA0B,iCAAiC,0CAA0C,kCAAkC,uCAAuC,oPAAoP,yCAAyC,8EAA8E,6FAA6F,qUAAqU,EAAE,yGAAyG,oEAAoE,wFAAwF,QAAQ,gDAAgD,OAAO,QAAQ,gBAAgB,yCAAyC,qCAAqC,uCAAuC,oSAAoS,oCAAoC,2FAA2F,0IAA0I,iJAAiJ,KAAK,YAAY,YAAY,UAAU,GAAG,uBAAuB,OAAO,0EAA0E,6BAA6B,OAAO,SAAS,UAAU,wCAAwC,SAAS,UAAU,wEAAwE,iCAAiC,0BAA0B,kDAAkD,iCAAiC,0HAA0H,sCAAsC,oCAAoC,yLAAyL,gCAAgC,uCAAuC,iMAAiM,gCAAgC,8EAA8E,yBAAyB,+JAA+J,OAAO,8DAA8D,kCAAkC,qFAAqF,+DAA+D,4FAA4F,kOAAkO,iDAAiD,2BAA2B,kCAAkC,iCAAiC,+BAA+B,oBAAoB,+BAA+B,OAAO,wEAAwE,yCAAyC,mIAAmI,6BAA6B,eAAe,gCAAgC,0BAA0B,sCAAsC,2EAA2E,gEAAgE,qCAAqC,iEAAiE,oEAAoE,mGAAmG,mCAAmC,8hBAA8hB,oCAAoC,oCAAoC,gPAAgP,sDAAsD,iCAAiC,yIAAyI,6BAA6B,mFAAmF,gDAAgD,yCAAyC,sDAAsD,wCAAwC,mFAAmF,kCAAkC,uBAAuB,sBAAsB,4BAA4B,qBAAqB,KAAK,oDAAoD,8BAA8B,yBAAyB,UAAU,gCAAgC,qBAAqB,OAAO,yBAAyB,0BAA0B,QAAQ,WAAW,yBAAyB,gBAAgB,KAAK,iEAAiE,OAAO,uBAAuB,aAAa,qCAAqC,8HAA8H,sIAAsI,kJAAkJ,sBAAsB,MAAM,8IAA8I,OAAO,wCAAwC,2BAA2B,qBAAqB,+DAA+D,iBAAiB,OAAO,4IAA4I,OAAO,aAAa,6DAA6D,mhBAAmhB,6CAA6C,sBAAsB,oBAAoB,6BAA6B,OAAO,sBAAsB,SAAS,cAAc,uDAAuD,WAAW,EAAE,GAAG,mJAAmJ,YAAY,6PAA6P,4BAA4B,uBAAuB;;AAEpzuC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,uBAAuB,yBAAyB;AAChD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+CAA+C,SAAS;AACxD;AACA;;AAEA;;AAEA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,+CAA+C,SAAS;AACxD;AACA;;AAEA;;AAEA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,WAAW;AAClE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,2BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,cAAc;AACzC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,4BAA4B,gBAAgB;;AAE5C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,+BAA+B,+HAA+H,EAAE;AAChK;AACA;AACA;AACA,SAAS;AACT;AACA,mCAAmC,aAAa;AAChD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA,mCAAmC,wCAAwC,OAAO;;AAElF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0CAA0C,mDAAmD,OAAO;;AAEpG;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;;AAEA,sDAAsD,IAAI,GAAG,IAAI,mCAAmC,IAAI,GAAG,IAAI,KAAK,IAAI;AACxH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,sCAAsC,gCAAgC;AACtE;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B,mBAAmB;AAC9C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA;;AAEA,uCAAuC,kBAAkB;AACzD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,yBAAyB;AACzB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB;AACzB;;AAEA,uCAAuC,kBAAkB;AACzD;;AAEA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB;AACzB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB;AACzB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB;AACzB;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,yBAAyB,yBAAyB,IAAI;AACtD;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,yBAAyB,yBAAyB,IAAI;AACtD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;;AAEA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;;AAEA;AACA;;AAEA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,yBAAyB;AACzB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA,6BAA6B,UAAU;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA,yFAAyF,IAAI;AAC7F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,qBAAqB;AACrB,2CAA2C;AAC3C,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,oCAAoC,EAAE;AACtC,oCAAoC,EAAE;AACtC;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA,0CAA0C,WAAW;AACrD;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,0CAA0C,WAAW;AACrD;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA,0CAA0C,WAAW;AACrD;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA,iBAAiB;AACjB;AACA;;;;;;;;AAQA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,0DAA0D,EAAE;AAC5D,4DAA4D;AAC5D;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gFAAgF;;AAEhF;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA,kBAAkB,6BAA6B;AAC/C;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA,kBAAkB,6BAA6B;AAC/C;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,kBAAkB;AAC7C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb,2BAA2B,sBAAsB;AACjD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,YAAY;AACvC;AACA;;AAEA;AACA,2BAA2B,gBAAgB;AAC3C;AACA;;AAEA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;;AAEA;;AAEA,iCAAiC,sBAAsB;AACvD;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,YAAY;AACvC;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb,+BAA+B,SAAS;AACxC;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oCAAoC,cAAc;AAClD;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;;AAEA;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA,iCAAiC,aAAa;AAC9C;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B,iBAAiB;AAC5C,2BAA2B,iCAAiC;AAC5D;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;;AAEA;AACA;AACA,iBAAiB;;AAEjB,mCAAmC,sBAAsB;AACzD;AACA;AACA;;AAEA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;;AAEA;;AAEA,mCAAmC,uBAAuB;AAC1D;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B,kBAAkB;AAC7C;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,oCAAoC,eAAe;AACnD;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;;AAEA,+CAA+C,gBAAgB;AAC/D;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,iBAAiB;;AAEjB;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET,+BAA+B,aAAa;AAC5C,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,YAAY;AAC3C;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,wCAAwC,eAAe;AACvD;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2DAA2D,EAAE;AAC7D;AACA,iBAAiB,cAAc,EAAE;AACjC;AACA,iBAAiB;;AAEjB;AACA,oCAAoC,0EAA0E,SAAS,MAAM,MAAM;AACnI;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA,iCAAiC;AACjC;;AAEA;AACA,iCAAiC;AACjC;AACA,iBAAiB;AACjB,aAAa;;AAEb;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,wCAAwC,yBAAyB;AACjE;AACA;;AAEA;AACA,aAAa;;AAEb;AACA,+CAA+C,EAAE;AACjD,aAAa;;AAEb;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;;AAEA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA,+BAA+B,iBAAiB;AAChD;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA,wFAAwF;AACxF;AACA;AACA;AACA,8CAA8C,uEAAuE;AACrH;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,mCAAmC,aAAa;AAChD;AACA,MAAM,EAAE;;AAER;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA,6EAA6E;AAC7E;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,2EAA2E;AAC3E;AACA;AACA,MAAM,EAAE;;AAER;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,sFAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,gBAAgB;AACnD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA,wCAAwC,iBAAiB;AACzD;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,iGAAiG;AACjG;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,8CAA8C,gFAAgF;AAC9H;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,8FAA8F;AAC9F;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,8GAA8G;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,gHAAgH;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,gGAAgG;AAChG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,0EAA0E;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,mCAAmC,eAAe;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,uCAAuC,EAAE;AACzC;AACA;;AAEA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;;;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;;;AAGA;;;AAGA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,qDAAqD,QAAQ;AAC7D;AACA;AACA;AACA;;AAEA;;AAEA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,uFAAuF;AACvF;AACA;AACA;AACA,8CAA8C,uEAAuE;AACrH;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,qFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,8CAA8C,qEAAqE;AACnH;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,aAAa;AACb,kCAAkC,EAAE;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,+EAA+E;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,qFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,2EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,+EAA+E;AAC/E;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,sFAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,8CAA8C,sEAAsE;AACpH;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb,kCAAkC,EAAE;AACpC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,sFAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,yFAAyF,SAAS;AAClG;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,mCAAmC,yBAAyB;AAC5D;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,mCAAmC,gBAAgB;AACnD;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,mCAAmC,gBAAgB;AACnD;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,gHAAgH,QAAQ;AACxH;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,+BAA+B,yBAAyB;AACxD;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,sCAAsC;AACtC,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,0FAA0F,QAAQ;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,4FAA4F;AAC5F;AACA;AACA;AACA,8CAA8C,2EAA2E;AACzH;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,iGAAiG;AACjG;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,8CAA8C,gFAAgF;AAC9H;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb,kCAAkC,EAAE;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,oGAAoG;AACpG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uCAAuC,WAAW;AAClD;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,+GAA+G;AAC/G;AACA;AACA;AACA;AACA,8CAA8C,8FAA8F;AAC5I;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA,kCAAkC,EAAE;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,sGAAsG;AACtG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uCAAuC,WAAW;AAClD;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,iHAAiH;AACjH;AACA;AACA;AACA;AACA,8CAA8C,gGAAgG;AAC9I;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA,kCAAkC,EAAE;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,kGAAkG;AAClG;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,uHAAuH;AACvH;AACA;AACA;AACA;AACA,8CAA8C,sGAAsG;AACpJ;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,gHAAgH;AAChH;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,kHAAkH;AAClH;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA,iCAAiC;AACjC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;;AAET;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;;AAEA,2BAA2B,uBAAuB;AAClD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,mCAAmC,gBAAgB;AACnD;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wCAAwC,cAAc;AACtD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA,kDAAkD,QAAQ;AAC1D;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wCAAwC,cAAc;AACtD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;;AAEA,2BAA2B,uBAAuB;AAClD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,kBAAkB;AACjD;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;;AAEjB;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;;AAEjB;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;;AAEb;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;;AAEA,2BAA2B,yBAAyB;AACpD;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET,+BAA+B;;AAE/B;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA,2BAA2B,cAAc;AACzC;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+BAA+B,uBAAuB;AACtD;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;;AAEA;;AAEA,+BAA+B,sBAAsB;AACrD;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;;AAEA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA,wEAAwE,EAAE,sBAAsB,IAAI,WAAW,IAAI;;AAEnH;AACA,SAAS;;AAET;AACA,6EAA6E,IAAI,EAAE,EAAE,YAAY,IAAI,EAAE,EAAE,mCAAmC,IAAI,EAAE,EAAE,gDAAgD,IAAI,oBAAoB,EAAE,oLAAoL,GAAG,aAAa,IAAI;;AAEta;AACA,SAAS;;AAET;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAC3D,aAAa;AACb;AACA,gCAAgC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAChE,aAAa;AACb;AACA,mCAAmC,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACzD,aAAa;AACb;AACA,gCAAgC,GAAG;AACnC,aAAa;AACb;AACA,mCAAmC,GAAG,WAAW,GAAG;AACpD,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,8CAA8C,mBAAmB;AACjE;AACA;;AAEA;AACA,4CAA4C,kBAAkB;AAC9D;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mCAAmC,sBAAsB;AACzD;AACA;AACA;;AAEA,qEAAqE,wBAAwB,EAAE;AAC/F;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8CAA8C,wBAAwB,EAAE;AACxE,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uCAAuC;;AAEvC;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA,2BAA2B,yBAAyB;AACpD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,gBAAgB;AACpD;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;;AAEA,oCAAoC,gBAAgB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;;AAEA,2BAA2B,2BAA2B;AACtD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mCAAmC;;AAEnC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iDAAiD;;AAEjD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,iDAAiD;;AAEjD,wDAAwD;;AAExD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,uCAAuC;AACvC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;;AAEA;;AAEA;AACA;AACA;AACA,sDAAsD;AACtD,sDAAsD;AACtD;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,kBAAkB;AAC7C;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA,2BAA2B,kBAAkB;AAC7C;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC;AACpC;;AAEA;;AAEA;AACA,mCAAmC,iBAAiB;AACpD;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,mCAAmC,qBAAqB;AACxD;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;;AAEA,mCAAmC,WAAW;AAC9C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA,uCAAuC,wBAAwB;AAC/D;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;;AAEjB;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,gCAAgC;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC,UAAU,EAAE;AAC5C,2BAA2B,aAAa,EAAE;AAC1C,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,sCAAsC;AACtC;;AAEA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC,gBAAgB;AACnD;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,2BAA2B;AAC3B;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,2CAA2C;;AAE7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA,uCAAuC,gBAAgB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,0BAA0B;;AAE1B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,4DAA4D;AAC5D;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,6BAA6B,cAAc,EAAE;AAC7C;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6CAA6C,EAAE;AAChF;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,kCAAkC,EAAE;AACzE;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0BAA0B,EAAE;AACjE;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,yBAAyB;AACjE;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,oCAAoC,EAAE;AACnE;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,sBAAsB,EAAE;AACrD;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,sBAAsB,EAAE;AACrD;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,sBAAsB,EAAE;AACrD;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,sBAAsB,EAAE;AACrD;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,kCAAkC,EAAE;AACjE;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,yBAAyB,EAAE;AACxD,6BAA6B,kCAAkC,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,iCAAiC,EAAE;AAChE;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,sBAAsB,EAAE;AACrD,6BAA6B,wCAAwC,EAAE;AACvE;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,sBAAsB,EAAE;AACrD,6BAA6B,wCAAwC,EAAE;AACvE;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,mEAAmE,EAAE;AAClG;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,qCAAqC,EAAE;AACpE;AACA;AACA;AACA;AACA;AACA;;AAEA,oFAAoF,gBAAgB,EAAE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,2BAA2B,EAAE;AAC1D,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,qCAAqC,EAAE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,+EAA+E,aAAa,EAAE;AAC9F;AACA,iBAAiB;AACjB,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,qCAAqC,EAAE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,2BAA2B,EAAE;AAC1D,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,qCAAqC,EAAE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,2BAA2B,EAAE;AAC1D,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC,qCAAqC,EAAE;AACxE;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iCAAiC,2BAA2B,EAAE;AAC9D,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,UAAU;AAChF;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,qCAAqC,EAAE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC,qCAAqC,EAAE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iCAAiC,2BAA2B,EAAE;AAC9D,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,qCAAqC,EAAE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,2BAA2B,EAAE;AAC1D,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,2BAA2B;AACzE;AACA;AACA,iBAAiB;AACjB;AACA,sDAAsD,sBAAsB;AAC5E;AACA,kDAAkD,kBAAkB,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,2BAA2B;AACzE;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,gCAAgC,EAAE;AAC/D,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,2BAA2B,EAAE;AAC1D,SAAS;AACT;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oEAAoE;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,0CAA0C,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,kDAAkD,2BAA2B;AAC7E;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iHAAiH;AACjH;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wDAAwD;AACxD;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,qCAAqC,EAAE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,2BAA2B,EAAE;AAC1D,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,2BAA2B,EAAE;AAC1D,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,2BAA2B,EAAE;AAC1D,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,2BAA2B,EAAE;AAC1D,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,2BAA2B,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;;AAEzD;AACA,oCAAoC;AACpC,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,2BAA2B,EAAE;AAC1D,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,iCAAiC;AACrF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB;AACjB,6BAA6B,2BAA2B,EAAE;AAC1D,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,qCAAqC,EAAE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,2BAA2B,EAAE;AAC1D,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,2BAA2B,EAAE;AAC1D,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,qCAAqC,EAAE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,2BAA2B,EAAE;AAC1D,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,qCAAqC,EAAE;AACpE;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,2BAA2B;AACxD;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,qCAAqC,EAAE;AACpE;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,2BAA2B,EAAE;AAC1D,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,0DAA0D;;AAE1D;AACA;;AAEA;AACA,6BAA6B,qCAAqC,EAAE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,2BAA2B,EAAE;AAC1D,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,2CAA2C,EAAE;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,2BAA2B,EAAE;AAC1D,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,eAAe,EAAE;AACpD;AACA;;AAEA;AACA;AACA,mCAAmC,eAAe,EAAE;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,qCAAqC,EAAE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,2BAA2B,EAAE;AAC1D,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,2BAA2B,EAAE;AAC1D,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,qCAAqC,EAAE;AACpE;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,2BAA2B,EAAE;AAC1D,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,qCAAqC,EAAE;AACpE;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA,8CAA8C,kCAAkC,EAAE;AAClF,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,sCAAsC,eAAe;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,iCAAiC,EAAE;AAChE;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,uCAAuC;AACvC;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kDAAkD,yCAAyC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,qCAAqC,EAAE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,yBAAyB,2BAA2B,EAAE;AACtD;;AAEA;AACA;AACA,uCAAuC;AACvC,qCAAqC;AACrC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iDAAiD,kCAAkC;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,qCAAqC,EAAE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,yBAAyB,2BAA2B,EAAE;AACtD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2DAA2D;AAC3D,0CAA0C,mBAAmB,EAAE;AAC/D,KAAK,gEAAgE;AACrE;AACA,KAAK;AACL;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,8DAA8D;AAC5G;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,4DAA4D;AAC1G;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B,SAAS;AACpC;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uBAAuB,iBAAiB;AACxC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;;AAEA,2BAA2B,wBAAwB;AACnD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uCAAuC,WAAW;AAClD;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,uBAAuB,cAAc;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,kBAAkB;AAC7C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uCAAuC,WAAW;AAClD;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,KAAK;;AAEL;;AAEA;AACA,mBAAmB;;AAEnB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,4BAA4B;AAC5B;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,2BAA2B;AAClD;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+FAA+F;AAC/F;AACA;AACA;AACA,kGAAkG,MAAM;AACxG;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB;;AAEzB;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB;;AAEzB;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA,mFAAmF;AACnF;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA,0CAA0C;AAC1C,kCAAkC;;AAElC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA,mDAAmD,EAAE,MAAM;;AAE3D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,4FAA4F;AAC5F;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA,6EAA6E;AAC7E;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA,0CAA0C;AAC1C,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,uBAAuB,6CAA6C;AACpE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;;AAEA;AACA,sBAAsB,gEAAgE;AACtF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,2BAA2B;AACzD;;AAEA;AACA;AACA;;AAEA;AACA,+BAA+B,yBAAyB;AACxD;AACA;;AAEA,iGAAiG;AACjG;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB;;AAEzB;;AAEA;AACA;AACA;;AAEA;;AAEA,+CAA+C,QAAQ;AACvD;AACA;AACA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+BAA+B;AAC/B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;;AAEA,+BAA+B;AAC/B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,yBAAyB;AAChD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB;;AAErB;AACA;AACA;;AAEA;;AAEA,2CAA2C,QAAQ;AACnD;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,uBAAuB,wBAAwB;AAC/C;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,uCAAuC,QAAQ;AAC/C;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B,kBAAkB;AAC7C;;AAEA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,sBAAsB;AACjD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA,2BAA2B,uBAAuB;AAClD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iDAAiD;AACjD;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8DAA8D;;AAE9D;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA,0DAA0D;;AAE1D;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA;AACA,aAAa;AACb,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,OAAO;AAC9B;AACA,2BAA2B,mBAAmB;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,kBAAkB;AAC7C;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA,8BAA8B,2FAA2F;AACzH,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;;AAE9C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,SAAS;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uBAAuB,SAAS;AAChC;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,mBAAmB;;AAE/D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,mBAAmB;AAC9C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uDAAuD;;AAEvD;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;;AAEA;AACA,uDAAuD;;AAEvD;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,2BAA2B,mBAAmB;AAC9C;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,mBAAmB;AAC9C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;AACrC;;AAEA,yCAAyC;AACzC;;AAEA;AACA,2BAA2B,mBAAmB;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,2BAA2B,OAAO;AAClC,+BAA+B,mBAAmB;AAClD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,mBAAmB;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8DAA8D;AAC9D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kEAAkE;AAClE;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,yDAAyD;AACzD;AACA;;AAEA;AACA,2BAA2B,kCAAkC;AAC7D;AACA;;AAEA;AACA;;AAEA,8DAA8D;AAC9D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA,iEAAiE;;AAEjE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,+EAA+E;AAC/E;AACA;AACA;;AAEA,+BAA+B,mBAAmB;AAClD;;AAEA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA,2BAA2B,mBAAmB;AAC9C;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,mBAAmB;AAC9C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,2BAA2B,mBAAmB;AAC9C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,wGAAwG;AACxG,6IAA6I;;AAE7I,+CAA+C;;AAE/C;AACA;;AAEA;AACA;AACA,0FAA0F;AAC1F;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0JAA0J;;AAE1J,yDAAyD;;AAEzD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC;AACA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gIAAgI;;AAEhI,sCAAsC;;AAEtC;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,gGAAgG;AAChG,sCAAsC;;AAEtC;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,qGAAqG;AACrG,0CAA0C;;AAE1C;AACA;;AAEA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;;AAEA;;AAEA,oGAAoG;AACpG,sCAAsC;;AAEtC;AACA;;AAEA,yFAAyF;;AAEzF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kCAAkC;;AAElC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,yFAAyF,GAAG;;AAE5F,wFAAwF;AACxF,qFAAqF,EAAE;AACvF;;AAEA;;AAEA;AACA,4IAA4I,QAAQ,KAAK,SAAS,KAAK;AACvK;;AAEA;AACA,yIAAyI,QAAQ,KAAK,SAAS,KAAK;AACpK;;AAEA;AACA;;AAEA,6FAA6F;AAC7F;;AAEA;AACA;AACA,8FAA8F;AAC9F,kCAAkC;AAClC;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yCAAyC;AACzC,yCAAyC;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA,mCAAmC;;AAEnC;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B,mBAAmB;AAC9C;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA,qCAAqC,aAAa;AAClD;AACA;;AAEA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;;AAEA,yCAAyC,aAAa;AACtD;;AAEA;AACA,2BAA2B,mBAAmB;AAC9C;;AAEA;;AAEA,mCAAmC,mBAAmB;AACtD;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB,mFAAmF;AACnF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mCAAmC,oBAAoB;AACvD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,uCAAuC,WAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,kCAAkC;AAClC,iBAAiB,mBAAmB;AACpC;;AAEA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA,yBAAyB;AACzB;;AAEA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4FAA4F,IAAI;AAChG;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oCAAoC;AACpC,yBAAyB;AACzB,oCAAoC;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,mBAAmB;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;;AAEA;;AAEA;AACA,iBAAiB;AACjB;AACA;;AAEA;;AAEA;;AAEA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;;AAEA;;AAEA;;AAEA;AACA,iBAAiB;AACjB;AACA;;AAEA;;AAEA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,2CAA2C,YAAY;AACvD,gDAAgD,gBAAgB;AAChE;AACA;AACA;;AAEA;;AAEA;AACA,qDAAqD,QAAQ;AAC7D;AACA;AACA,qBAAqB;AACrB,wCAAwC,YAAY;AACpD;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,2CAA2C,YAAY;AACvD,gDAAgD,gBAAgB;AAChE;AACA;AACA;;AAEA;AACA,qDAAqD,QAAQ;AAC7D;AACA;AACA,qBAAqB;AACrB,wCAAwC,YAAY;AACpD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+BAA+B,yBAAyB;AACxD;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,6IAA6I,EAAE;AAC/I;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,6IAA6I,EAAE;AAC/I;;AAEA;AACA;;AAEA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA,mCAAmC,iBAAiB;AACpD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA,+BAA+B,UAAU;AACzC;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,UAAU;AACzC;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,UAAU;AACzC;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,UAAU;AACzC;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,+BAA+B,UAAU;AACzC;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,+FAA+F;AAC/F;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,+FAA+F;AAC/F;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,4GAA4G;AAC5G;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,8GAA8G;AAC9G;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,mCAAmC;AACnC;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,qCAAqC;AACrC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,mCAAmC,qBAAqB;AACxD;AACA;;AAEA,oCAAoC,2BAA2B;AAC/D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,yDAAyD,EAAE;AAC3D;AACA;AACA;AACA,6HAA6H,QAAQ;AACrI;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0CAA0C;AACzE;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,oGAAoG,QAAQ;AAC5G;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,+BAA+B,qBAAqB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,mCAAmC,qBAAqB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,mCAAmC,qBAAqB;AACxD;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG,QAAQ;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,+BAA+B,qBAAqB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,yHAAyH,QAAQ;AACjI;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,gGAAgG,QAAQ;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,qFAAqF;AACrF;AACA;AACA;AACA,8CAA8C,qEAAqE;AACnH;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,mFAAmF;AACnF;AACA;AACA;AACA;AACA,8CAA8C,mEAAmE;AACjH;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA,kCAAkC,EAAE;AACpC;AACA;AACA;AACA,+FAA+F;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,+FAA+F;AAC/F;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,6EAA6E;AAC7E;AACA;AACA;AACA,8CAA8C,6DAA6D;AAC3G;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,gFAAgF;AAChF;AACA;AACA;AACA;AACA,8CAA8C,gEAAgE;AAC9G;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA,kCAAkC,EAAE;AACpC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,qFAAqF;AACrF;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,wFAAwF;AACxF;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,iFAAiF;AACjF;AACA;AACA;AACA;AACA,8CAA8C,iEAAiE;AAC/G;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,+FAA+F;AAC/F;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,+FAA+F;AAC/F;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,sEAAsE;AACtE;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,sCAAsC;AACtC;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,iFAAiF;AACjF;AACA;AACA;AACA;AACA,8CAA8C,iEAAiE;AAC/G;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,+FAA+F;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,+FAA+F;AAC/F;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,6CAA6C,kBAAkB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,mCAAmC,kDAAkD;AACrF;AACA;AACA;AACA;AACA;AACA,4CAA4C,iBAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,+EAA+E;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uCAAuC,WAAW;AAClD;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA,uFAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C,2BAA2B;AACtE;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA,+BAA+B,yOAAyO,EAAE;AAC1Q;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA,kCAAkC;AAClC;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA,kCAAkC;AAClC,sCAAsC;AACtC;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,8CAA8C,oCAAoC;AAClF;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;;AAEA,aAAa;AACb;AACA;;AAEA,aAAa;AACb;AACA;;AAEA,aAAa;AACb;AACA;;AAEA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA,iBAAiB;AACjB;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,oCAAoC;AAClF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gFAAgF,EAAE;AAClF;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,+EAA+E,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,iBAAiB;AACjE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA,+BAA+B,iGAAiG,EAAE;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,wEAAwE,EAAE;AAC1E,uDAAuD,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,GAAG;AAC1G,iDAAiD,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG;AAC5E,oDAAoD,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,GAAG,IAAI;AACpI;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA,mCAAmC,eAAe;AAClD;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,8CAA8C,0BAA0B;AACxE;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,4CAA4C,iBAAiB;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;;AAEA,6BAA6B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG;AACxD;AACA,+BAA+B,cAAc;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,mCAAmC,aAAa;AAChD;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA,mDAAmD;;AAEnD,MAAM,EAAE;;AAER,uDAAuD;;AAEvD,MAAM,EAAE;;AAER,2DAA2D;;AAE3D,MAAM,EAAE;;AAER,+DAA+D;;AAE/D,MAAM,EAAE;;AAER,mEAAmE;;AAEnE,MAAM,EAAE;;AAER,uEAAuE;;AAEvE,MAAM,EAAE;;AAER,2EAA2E;;AAE3E,MAAM,EAAE;;AAER,kFAAkF;;AAElF,MAAM,EAAE;;AAER;;AAEA;AACA,+BAA+B,6LAA6L,EAAE;AAC9N;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,8CAA8C,gCAAgC;AAC9E;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,mCAAmC,aAAa;AAChD;AACA,KAAK;;AAEL,wDAAwD;AACxD,+BAA+B,+NAA+N,EAAE;AAChQ;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,8CAA8C,wCAAwC;AACtF;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER,4DAA4D;AAC5D,+BAA+B,qOAAqO,EAAE;AACtQ;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,8CAA8C,2CAA2C;AACzF;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER,gEAAgE;AAChE,+BAA+B,2OAA2O,EAAE;AAC5Q;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,8CAA8C,8CAA8C;AAC5F;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER,oEAAoE;AACpE,+BAA+B,iPAAiP,EAAE;AAClR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,8CAA8C,iDAAiD;AAC/F;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER,wEAAwE;AACxE,+BAA+B,uPAAuP,EAAE;AACxR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,8CAA8C,oDAAoD;AAClG;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER,4EAA4E;AAC5E,+BAA+B,6PAA6P,EAAE;AAC9R;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,8CAA8C,uDAAuD;AACrG;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER,gFAAgF;AAChF,+BAA+B,mQAAmQ,EAAE;AACpS;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,8CAA8C,0DAA0D;AACxG;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER,uFAAuF;AACvF,+BAA+B,+QAA+Q,EAAE;AAChT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,8CAA8C,gEAAgE;AAC9G;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0EAA0E,EAAE;AAC5E;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA,gQAAgQ,EAAE,uBAAuB,EAAE;AAC3R;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;;;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,wIAAwI,EAAE,MAAM,EAAE;AAClJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0HAA0H,EAAE,MAAM,EAAE;AACpI,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,mCAAmC,sBAAsB;AACzD;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,6IAA6I,EAAE,KAAK,KAAK;AACzJ;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,8DAA8D,EAAE;AAChE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,mCAAmC,kBAAkB;AACrD,uCAAuC,gDAAgD;AACvF;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA,2BAA2B,yBAAyB;AACpD;AACA;;AAEA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;;AAEA;;AAEA;AACA,2BAA2B,yBAAyB;AACpD;AACA;;AAEA;AACA,2BAA2B,yBAAyB;AACpD;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,4BAA4B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;;AAGA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,8CAA8C,eAAe;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mCAAmC,eAAe;AAClD;AACA;;AAEA;;AAEA,iBAAiB;;AAEjB;AACA,aAAa;AACb;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA,aAAa;AACb;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb,6CAA6C,EAAE;AAC/C;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;;;AAGA;AACA;AACA;AACA,aAAa;AACb;;;AAGA;AACA;AACA;AACA,aAAa;AACb;;;AAGA;AACA;AACA;AACA,aAAa;AACb;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;;;AAGA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA,aAAa;AACb;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;;;AAGA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;;;;AAIA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA,aAAa;AACb;;;AAGA;AACA;AACA;AACA,aAAa;AACb;;AAEA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;AACb;;AAEA;;AAEA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;AAGA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;;AAEA;;AAEA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA,0BAA0B;AAC1B,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;;;AAGA,iBAAiB;;AAEjB;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,aAAa;AACb;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;;AAGA;;AAEA;AACA;;AAEA;;AAEA;;;AAGA;;AAEA;;AAEA;;AAEA,iBAAiB;;AAEjB;AACA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA,yDAAyD;AACzD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gCAAgC,EAAE;AAClC;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,yC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,yBAAyB;AAC5D;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,MAAM,EAAE;;AAER;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb,gCAAgC,EAAE;AAClC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB,uCAAuC;AACvC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,6CAA6C,EAAE;AAC/C,gCAAgC,EAAE;AAClC;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,qDAAqD,EAAE;AACvD,yCAAyC,EAAE;AAC3C;AACA;AACA,aAAa;AACb,0CAA0C;AAC1C;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,6CAA6C,EAAE;AAC/C;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,yC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;;AAGA;;;AAGA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;;AAEjB;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,6CAA6C,EAAE;AAC/C;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,6CAA6C,EAAE;AAC/C;AACA;AACA,aAAa;AACb,gCAAgC,EAAE;AAClC,uCAAuC,EAAE;AACzC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,WAAW;AAC1C;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,qCAAqC,UAAU;AAC/C;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,sDAAsD,EAAE;AACxD,wCAAwC,EAAE;AAC1C,oCAAoC,EAAE;AACtC,4CAA4C,EAAE;AAC9C,2CAA2C;AAC3C;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,+BAA+B,cAAc;AAC7C;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,kDAAkD;AAChG;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,gGAAgG,EAAE;AAClG;AACA,kCAAkC;AAClC;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AAWA,iBAAiB;AACjB;AACA,0CAA0C,WAAW;AACrD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;;AAEA,2BAA2B,WAAW;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,WAAW;AAC1C;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,+DAA+D,gDAAgD,EAAE;AACjH;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,kGAAkG,EAAE;AACpG,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA,yIAAyI,EAAE;AAC3I,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA,gGAAgG,EAAE,qBAAqB,EAAE;AACzH,iBAAiB;AACjB;AACA,gGAAgG,EAAE,qBAAqB,EAAE;AACzH,iBAAiB;AACjB;AACA,wHAAwH,EAAE;AAC1H,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA,iBAAiB;AACjB;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oCAAoC;AACpC;AACA,aAAa;AACb;AACA,oCAAoC;AACpC;AACA;AACA,aAAa;AACb;AACA,oCAAoC;AACpC;AACA;AACA,aAAa;AACb;AACA,6BAA6B;AAC7B;AACA,aAAa;AACb;AACA,6BAA6B;AAC7B;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,gBAAgB;AAC/C;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+BAA+B,cAAc;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA,sBAAsB,qBAAqB;AAC3C;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,cAAc;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB,+BAA+B,gBAAgB;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA,+BAA+B,0BAA0B;AACzD;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA,qEAAqE,UAAU,EAAE;AACjF;;AAEA,gIAAgI,yDAAyD,EAAE;;AAE3L;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,mCAAmC,gBAAgB;AACnD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,cAAc;AACjD;AACA;AACA;AACA;;AAEA;AACA,kFAAkF,oBAAoB,6BAA6B,EAAE,sBAAsB,EAAE;AAC7J,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oDAAoD,8BAA8B;AAClF;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,SAAS;AACxC;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,+BAA+B,cAAc;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,8CAA8C,qBAAqB;AACnE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA,+BAA+B,qGAAqG,EAAE;AACtI;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iCAAiC,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc;;AAE3E;AACA;;AAEA;AACA;;AAEA,4HAA4H,+BAA+B,GAAG;AAC9J;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,2CAA2C;AACzF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA,0CAA0C,eAAe,EAAE;AAC3D,KAAK;AACL;AACA;AACA;;AAEA;;AAEA,CAAC;;CC16jDD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qCAAqC;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC,E","file":"scripts.js","sourcesContent":["/**\r\n * @version : 17.10.1 - Bridge.NET\r\n * @author : Object.NET, Inc. http://bridge.net/\r\n * @copyright : Copyright 2008-2019 Object.NET, Inc. http://object.net/\r\n * @license : See license.txt and https://github.com/bridgedotnet/Bridge/blob/master/LICENSE.md\r\n */\r\n\r\n // @source Init.js\r\n\r\n(function (globals) {\r\n \"use strict\";\r\n\r\n if (typeof module !== \"undefined\" && module.exports) {\r\n globals = global;\r\n }\r\n\r\n // @source Core.js\r\n\r\n var core = {\r\n global: globals,\r\n\r\n isNode: Object.prototype.toString.call(typeof process !== \"undefined\" ? process : 0) === \"[object process]\",\r\n\r\n emptyFn: function () { },\r\n\r\n identity: function (x) {\r\n return x;\r\n },\r\n\r\n Deconstruct: function (obj) {\r\n var args = Array.prototype.slice.call(arguments, 1);\r\n\r\n for (var i = 0; i < args.length; i++) {\r\n args[i].v = i == 7 ? obj[\"Rest\"] : obj[\"Item\" + (i + 1)];\r\n }\r\n },\r\n\r\n toString: function (instance) {\r\n if (instance == null) {\r\n throw new System.ArgumentNullException();\r\n }\r\n\r\n var guardItem = Bridge.$toStringGuard[Bridge.$toStringGuard.length - 1];\r\n\r\n if (instance.toString === Object.prototype.toString || guardItem && guardItem === instance) {\r\n return Bridge.Reflection.getTypeFullName(instance);\r\n }\r\n\r\n Bridge.$toStringGuard.push(instance);\r\n\r\n var result = instance.toString();\r\n\r\n Bridge.$toStringGuard.pop();\r\n\r\n return result;\r\n },\r\n\r\n geti: function (scope, name1, name2) {\r\n if (scope[name1] !== undefined) {\r\n return name1;\r\n }\r\n\r\n if (name2 && scope[name2] != undefined) {\r\n return name2;\r\n }\r\n\r\n var name = name2 || name1;\r\n var idx = name.lastIndexOf(\"$\");\r\n\r\n if (/\\$\\d+$/g.test(name)) {\r\n idx = name.lastIndexOf(\"$\", idx - 1);\r\n }\r\n\r\n return name.substr(idx + 1);\r\n },\r\n\r\n box: function (v, T, toStr, hashCode) {\r\n if (v && v.$boxed) {\r\n return v;\r\n }\r\n\r\n if (v == null) {\r\n return v;\r\n }\r\n\r\n if (v.$clone) {\r\n v = v.$clone();\r\n }\r\n\r\n return {\r\n $boxed: true,\r\n fn: {\r\n toString: toStr,\r\n getHashCode: hashCode\r\n },\r\n v: v,\r\n type: T,\r\n constructor: T,\r\n getHashCode: function () {\r\n return this.fn.getHashCode ? this.fn.getHashCode(this.v) : Bridge.getHashCode(this.v);\r\n },\r\n equals: function (o) {\r\n if (this === o) {\r\n return true;\r\n }\r\n\r\n var eq = this.equals;\r\n this.equals = null;\r\n var r = Bridge.equals(this.v, o);\r\n this.equals = eq;\r\n\r\n return r;\r\n },\r\n valueOf: function () {\r\n return this.v;\r\n },\r\n toString: function () {\r\n return this.fn.toString ? this.fn.toString(this.v) : this.v.toString();\r\n }\r\n };\r\n },\r\n\r\n unbox: function (o, noclone) {\r\n var T;\r\n\r\n if (noclone && Bridge.isFunction(noclone)) {\r\n T = noclone;\r\n noclone = false;\r\n }\r\n\r\n if (o && o.$boxed) {\r\n var v = o.v,\r\n t = o.type;\r\n\r\n if (T && T.$nullable) {\r\n T = T.$nullableType;\r\n }\r\n\r\n if (T && T.$kind === \"enum\") {\r\n T = System.Enum.getUnderlyingType(T);\r\n }\r\n\r\n if (t.$nullable) {\r\n t = t.$nullableType;\r\n }\r\n\r\n if (t.$kind === \"enum\") {\r\n t = System.Enum.getUnderlyingType(t);\r\n }\r\n\r\n if (T && T !== t && !Bridge.isObject(T)) {\r\n throw new System.InvalidCastException.$ctor1(\"Specified cast is not valid.\");\r\n }\r\n\r\n if (!noclone && v && v.$clone) {\r\n v = v.$clone();\r\n }\r\n\r\n return v;\r\n }\r\n\r\n if (Bridge.isArray(o)) {\r\n for (var i = 0; i < o.length; i++) {\r\n var item = o[i];\r\n\r\n if (item && item.$boxed) {\r\n item = item.v;\r\n\r\n if (item.$clone) {\r\n item = item.$clone();\r\n }\r\n } else if (!noclone && item && item.$clone) {\r\n item = item.$clone();\r\n }\r\n\r\n o[i] = item;\r\n }\r\n }\r\n\r\n if (o && !noclone && o.$clone) {\r\n o = o.$clone();\r\n }\r\n\r\n return o;\r\n },\r\n\r\n virtualc: function (name) {\r\n return Bridge.virtual(name, true);\r\n },\r\n\r\n virtual: function (name, isClass) {\r\n var type = Bridge.unroll(name);\r\n\r\n if (!type || !Bridge.isFunction(type)) {\r\n var old = Bridge.Class.staticInitAllow;\r\n type = isClass ? Bridge.define(name) : Bridge.definei(name);\r\n Bridge.Class.staticInitAllow = true;\r\n\r\n if (type.$staticInit) {\r\n type.$staticInit();\r\n }\r\n\r\n Bridge.Class.staticInitAllow = old;\r\n }\r\n\r\n return type;\r\n },\r\n\r\n safe: function (fn) {\r\n try {\r\n return fn();\r\n } catch (ex) {\r\n }\r\n\r\n return false;\r\n },\r\n\r\n literal: function (type, obj) {\r\n obj.$getType = function () { return type };\r\n\r\n return obj;\r\n },\r\n\r\n isJSObject: function (value) {\r\n return Object.prototype.toString.call(value) === \"[object Object]\";\r\n },\r\n\r\n isPlainObject: function (obj) {\r\n if (typeof obj == \"object\" && obj !== null) {\r\n if (typeof Object.getPrototypeOf == \"function\") {\r\n var proto = Object.getPrototypeOf(obj);\r\n\r\n return proto === Object.prototype || proto === null;\r\n }\r\n\r\n return Object.prototype.toString.call(obj) === \"[object Object]\";\r\n }\r\n\r\n return false;\r\n },\r\n\r\n toPlain: function (o) {\r\n if (!o || Bridge.isPlainObject(o) || typeof o != \"object\") {\r\n return o;\r\n }\r\n\r\n if (typeof o.toJSON == \"function\") {\r\n return o.toJSON();\r\n }\r\n\r\n if (Bridge.isArray(o)) {\r\n var arr = [];\r\n\r\n for (var i = 0; i < o.length; i++) {\r\n arr.push(Bridge.toPlain(o[i]));\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n var newo = {},\r\n m;\r\n\r\n for (var key in o) {\r\n m = o[key];\r\n\r\n if (!Bridge.isFunction(m)) {\r\n newo[key] = m;\r\n }\r\n }\r\n\r\n return newo;\r\n },\r\n\r\n ref: function (o, n) {\r\n if (Bridge.isArray(n)) {\r\n n = System.Array.toIndex(o, n);\r\n }\r\n\r\n var proxy = {};\r\n\r\n Object.defineProperty(proxy, \"v\", {\r\n get: function () {\r\n if (n == null) {\r\n return o;\r\n }\r\n\r\n return o[n];\r\n },\r\n\r\n set: function (value) {\r\n if (n == null) {\r\n if (value && value.$clone) {\r\n value.$clone(o);\r\n } else {\r\n o = value;\r\n }\r\n }\r\n\r\n o[n] = value;\r\n }\r\n });\r\n\r\n return proxy;\r\n },\r\n\r\n ensureBaseProperty: function (scope, name, alias) {\r\n var scopeType = Bridge.getType(scope),\r\n descriptors = scopeType.$descriptors || [];\r\n\r\n scope.$propMap = scope.$propMap || {};\r\n\r\n if (scope.$propMap[name]) {\r\n return scope;\r\n }\r\n\r\n if ((!scopeType.$descriptors || scopeType.$descriptors.length === 0) && alias) {\r\n var aliasCfg = {},\r\n aliasName = \"$\" + alias + \"$\" + name;\r\n\r\n aliasCfg.get = function () {\r\n return scope[name];\r\n };\r\n\r\n aliasCfg.set = function (value) {\r\n scope[name] = value;\r\n };\r\n\r\n Bridge.property(scope, aliasName, aliasCfg, false, scopeType, true);\r\n }\r\n else {\r\n for (var j = 0; j < descriptors.length; j++) {\r\n var d = descriptors[j];\r\n\r\n if (d.name === name) {\r\n var aliasCfg = {},\r\n aliasName = \"$\" + Bridge.getTypeAlias(d.cls) + \"$\" + name;\r\n\r\n if (d.get) {\r\n aliasCfg.get = d.get;\r\n }\r\n\r\n if (d.set) {\r\n aliasCfg.set = d.set;\r\n }\r\n\r\n Bridge.property(scope, aliasName, aliasCfg, false, scopeType, true);\r\n }\r\n }\r\n }\r\n\r\n scope.$propMap[name] = true;\r\n\r\n return scope;\r\n },\r\n\r\n property: function (scope, name, v, statics, cls, alias) {\r\n var cfg = {\r\n enumerable: alias ? false : true,\r\n configurable: true\r\n };\r\n\r\n if (v && v.get) {\r\n cfg.get = v.get;\r\n }\r\n\r\n if (v && v.set) {\r\n cfg.set = v.set;\r\n }\r\n\r\n if (!v || !(v.get || v.set)) {\r\n var backingField = Bridge.getTypeAlias(cls) + \"$\" + name;\r\n\r\n cls.$init = cls.$init || {};\r\n\r\n if (statics) {\r\n cls.$init[backingField] = v;\r\n }\r\n\r\n (function (cfg, scope, backingField, v) {\r\n cfg.get = function () {\r\n var o = this.$init[backingField];\r\n\r\n return o === undefined ? v : o;\r\n };\r\n\r\n cfg.set = function (value) {\r\n this.$init[backingField] = value;\r\n };\r\n })(cfg, scope, backingField, v);\r\n }\r\n\r\n Object.defineProperty(scope, name, cfg);\r\n\r\n return cfg;\r\n },\r\n\r\n event: function (scope, name, v, statics) {\r\n scope[name] = v;\r\n\r\n var rs = name.charAt(0) === \"$\",\r\n cap = rs ? name.slice(1) : name,\r\n addName = \"add\" + cap,\r\n removeName = \"remove\" + cap,\r\n lastSep = name.lastIndexOf(\"$\"),\r\n endsNum = lastSep > 0 && ((name.length - lastSep - 1) > 0) && !isNaN(parseInt(name.substr(lastSep + 1)));\r\n\r\n if (endsNum) {\r\n lastSep = name.substring(0, lastSep - 1).lastIndexOf(\"$\");\r\n }\r\n\r\n if (lastSep > 0 && lastSep !== (name.length - 1)) {\r\n addName = name.substring(0, lastSep) + \"add\" + name.substr(lastSep + 1);\r\n removeName = name.substring(0, lastSep) + \"remove\" + name.substr(lastSep + 1);\r\n }\r\n\r\n scope[addName] = (function (name, scope, statics) {\r\n return statics ? function (value) {\r\n scope[name] = Bridge.fn.combine(scope[name], value);\r\n } : function (value) {\r\n this[name] = Bridge.fn.combine(this[name], value);\r\n };\r\n })(name, scope, statics);\r\n\r\n scope[removeName] = (function (name, scope, statics) {\r\n return statics ? function (value) {\r\n scope[name] = Bridge.fn.remove(scope[name], value);\r\n } : function (value) {\r\n this[name] = Bridge.fn.remove(this[name], value);\r\n };\r\n })(name, scope, statics);\r\n },\r\n\r\n createInstance: function (type, nonPublic, args) {\r\n if (Bridge.isArray(nonPublic)) {\r\n args = nonPublic;\r\n nonPublic = false;\r\n }\r\n\r\n if (type === System.Decimal) {\r\n return System.Decimal.Zero;\r\n }\r\n\r\n if (type === System.Int64) {\r\n return System.Int64.Zero;\r\n }\r\n\r\n if (type === System.UInt64) {\r\n return System.UInt64.Zero;\r\n }\r\n\r\n if (type === System.Double ||\r\n type === System.Single ||\r\n type === System.Byte ||\r\n type === System.SByte ||\r\n type === System.Int16 ||\r\n type === System.UInt16 ||\r\n type === System.Int32 ||\r\n type === System.UInt32 ||\r\n type === Bridge.Int) {\r\n return 0;\r\n }\r\n\r\n if (typeof (type.createInstance) === \"function\") {\r\n return type.createInstance();\r\n } else if (typeof (type.getDefaultValue) === \"function\") {\r\n return type.getDefaultValue();\r\n } else if (type === Boolean || type === System.Boolean) {\r\n return false;\r\n } else if (type === System.DateTime) {\r\n return System.DateTime.getDefaultValue();\r\n } else if (type === Date) {\r\n return new Date();\r\n } else if (type === Number) {\r\n return 0;\r\n } else if (type === String || type === System.String) {\r\n return \"\";\r\n } else if (type && type.$literal) {\r\n return type.ctor();\r\n } else if (args && args.length > 0) {\r\n return Bridge.Reflection.applyConstructor(type, args);\r\n }\r\n\r\n if (type.$kind === 'interface') {\r\n throw new System.MissingMethodException.$ctor1('Default constructor not found for type ' + Bridge.getTypeName(type));\r\n }\r\n\r\n var ctors = Bridge.Reflection.getMembers(type, 1, 54);\r\n\r\n if (ctors.length > 0) {\r\n var pctors = ctors.filter(function (c) { return !c.isSynthetic && !c.sm; });\r\n\r\n for (var idx = 0; idx < pctors.length; idx++) {\r\n var c = pctors[idx],\r\n isDefault = (c.pi || []).length === 0;\r\n\r\n if (isDefault) {\r\n if (nonPublic || c.a === 2) {\r\n return Bridge.Reflection.invokeCI(c, []);\r\n }\r\n throw new System.MissingMethodException.$ctor1('Default constructor not found for type ' + Bridge.getTypeName(type));\r\n }\r\n }\r\n\r\n if (type.$$name && !(ctors.length == 1 && ctors[0].isSynthetic)) {\r\n throw new System.MissingMethodException.$ctor1('Default constructor not found for type ' + Bridge.getTypeName(type));\r\n }\r\n }\r\n\r\n return new type();\r\n },\r\n\r\n clone: function (obj) {\r\n if (obj == null) {\r\n return obj;\r\n }\r\n\r\n if (Bridge.isArray(obj)) {\r\n return System.Array.clone(obj);\r\n }\r\n\r\n if (Bridge.isString(obj)) {\r\n return obj;\r\n }\r\n\r\n var name;\r\n\r\n if (Bridge.isFunction(Bridge.getProperty(obj, name = \"System$ICloneable$clone\"))) {\r\n return obj[name]();\r\n }\r\n\r\n if (Bridge.is(obj, System.ICloneable)) {\r\n return obj.clone();\r\n }\r\n\r\n if (Bridge.isFunction(obj.$clone)) {\r\n return obj.$clone();\r\n }\r\n\r\n return null;\r\n },\r\n\r\n copy: function (to, from, keys, toIf) {\r\n if (typeof keys === \"string\") {\r\n keys = keys.split(/[,;\\s]+/);\r\n }\r\n\r\n for (var name, i = 0, n = keys ? keys.length : 0; i < n; i++) {\r\n name = keys[i];\r\n\r\n if (toIf !== true || to[name] == undefined) {\r\n if (Bridge.is(from[name], System.ICloneable)) {\r\n to[name] = Bridge.clone(from[name]);\r\n } else {\r\n to[name] = from[name];\r\n }\r\n }\r\n }\r\n\r\n return to;\r\n },\r\n\r\n get: function (t) {\r\n if (t && t.$staticInit !== null) {\r\n t.$staticInit();\r\n }\r\n\r\n return t;\r\n },\r\n\r\n ns: function (ns, scope) {\r\n var nsParts = ns.split(\".\"),\r\n i = 0;\r\n\r\n if (!scope) {\r\n scope = Bridge.global;\r\n }\r\n\r\n for (i = 0; i < nsParts.length; i++) {\r\n if (typeof scope[nsParts[i]] === \"undefined\") {\r\n scope[nsParts[i]] = {};\r\n }\r\n\r\n scope = scope[nsParts[i]];\r\n }\r\n\r\n return scope;\r\n },\r\n\r\n ready: function (fn, scope) {\r\n var delayfn = function () {\r\n if (scope) {\r\n fn.apply(scope);\r\n } else {\r\n fn();\r\n }\r\n };\r\n\r\n if (typeof Bridge.global.jQuery !== \"undefined\") {\r\n Bridge.global.jQuery(delayfn);\r\n } else {\r\n if (typeof Bridge.global.document === \"undefined\" ||\r\n Bridge.global.document.readyState === \"complete\" ||\r\n Bridge.global.document.readyState === \"loaded\" ||\r\n Bridge.global.document.readyState === \"interactive\") {\r\n delayfn();\r\n } else {\r\n Bridge.on(\"DOMContentLoaded\", Bridge.global.document, delayfn);\r\n }\r\n }\r\n },\r\n\r\n on: function (event, elem, fn, scope) {\r\n var listenHandler = function (e) {\r\n var ret = fn.apply(scope || this, arguments);\r\n\r\n if (ret === false) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n\r\n return (ret);\r\n };\r\n\r\n var attachHandler = function () {\r\n var ret = fn.call(scope || elem, Bridge.global.event);\r\n\r\n if (ret === false) {\r\n Bridge.global.event.returnValue = false;\r\n Bridge.global.event.cancelBubble = true;\r\n }\r\n\r\n return (ret);\r\n };\r\n\r\n if (elem.addEventListener) {\r\n elem.addEventListener(event, listenHandler, false);\r\n } else {\r\n elem.attachEvent(\"on\" + event, attachHandler);\r\n }\r\n },\r\n\r\n addHash: function (v, r, m) {\r\n if (isNaN(r)) {\r\n r = 17;\r\n }\r\n\r\n if (isNaN(m)) {\r\n m = 23;\r\n }\r\n\r\n if (Bridge.isArray(v)) {\r\n for (var i = 0; i < v.length; i++) {\r\n r = r + ((r * m | 0) + (v[i] == null ? 0 : Bridge.getHashCode(v[i]))) | 0;\r\n }\r\n\r\n return r;\r\n }\r\n\r\n return r = r + ((r * m | 0) + (v == null ? 0 : Bridge.getHashCode(v))) | 0;\r\n },\r\n\r\n getHashCode: function (value, safe, deep) {\r\n // In CLR: mutable object should keep on returning same value\r\n // Bridge.NET goals: make it deterministic (to make testing easier) without breaking CLR contracts\r\n // for value types it returns deterministic values (f.e. for int 3 it returns 3)\r\n // for reference types it returns random value\r\n\r\n if (value && value.$boxed && value.type.getHashCode) {\r\n return value.type.getHashCode(Bridge.unbox(value, true));\r\n }\r\n\r\n value = Bridge.unbox(value, true);\r\n\r\n if (Bridge.isEmpty(value, true)) {\r\n if (safe) {\r\n return 0;\r\n }\r\n\r\n throw new System.InvalidOperationException.$ctor1(\"HashCode cannot be calculated for empty value\");\r\n }\r\n\r\n if (value.getHashCode && Bridge.isFunction(value.getHashCode) && !value.__insideHashCode && value.getHashCode.length === 0) {\r\n value.__insideHashCode = true;\r\n var r = value.getHashCode();\r\n\r\n delete value.__insideHashCode;\r\n\r\n return r;\r\n }\r\n\r\n if (Bridge.isBoolean(value)) {\r\n return value ? 1 : 0;\r\n }\r\n\r\n if (Bridge.isDate(value)) {\r\n var val = value.ticks !== undefined ? value.ticks : System.DateTime.getTicks(value);\r\n\r\n return val.toNumber() & 0xFFFFFFFF;\r\n }\r\n\r\n if (value === Number.POSITIVE_INFINITY) {\r\n return 0x7FF00000;\r\n }\r\n\r\n if (value === Number.NEGATIVE_INFINITY) {\r\n return 0xFFF00000;\r\n }\r\n\r\n if (Bridge.isNumber(value)) {\r\n if (Math.floor(value) === value) {\r\n return value;\r\n }\r\n\r\n value = value.toExponential();\r\n }\r\n\r\n if (Bridge.isString(value)) {\r\n if (Math.imul) {\r\n for (var i = 0, h = 0; i < value.length; i++)\r\n h = Math.imul(31, h) + value.charCodeAt(i) | 0;\r\n return h;\r\n } else {\r\n var h = 0, l = value.length, i = 0;\r\n if (l > 0)\r\n while (i < l)\r\n h = (h << 5) - h + value.charCodeAt(i++) | 0;\r\n return h;\r\n }\r\n }\r\n\r\n if (value.$$hashCode) {\r\n return value.$$hashCode;\r\n }\r\n\r\n if (deep !== false && value.hasOwnProperty(\"Item1\") && Bridge.isPlainObject(value)) {\r\n deep = true;\r\n }\r\n\r\n if (deep && typeof value == \"object\") {\r\n var result = 0,\r\n temp;\r\n\r\n for (var property in value) {\r\n if (value.hasOwnProperty(property)) {\r\n temp = Bridge.isEmpty(value[property], true) ? 0 : Bridge.getHashCode(value[property]);\r\n result = 29 * result + temp;\r\n }\r\n }\r\n\r\n if (result !== 0) {\r\n value.$$hashCode = result;\r\n\r\n return result;\r\n }\r\n }\r\n\r\n value.$$hashCode = (Math.random() * 0x100000000) | 0;\r\n\r\n return value.$$hashCode;\r\n },\r\n\r\n getDefaultValue: function (type) {\r\n if (type == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"type\");\r\n } else if ((type.getDefaultValue) && type.getDefaultValue.length === 0) {\r\n return type.getDefaultValue();\r\n } else if (Bridge.Reflection.isEnum(type)) {\r\n return System.Enum.parse(type, 0);\r\n } else if (type === Boolean || type === System.Boolean) {\r\n return false;\r\n } else if (type === System.DateTime) {\r\n return System.DateTime.getDefaultValue();\r\n } else if (type === Date) {\r\n return new Date();\r\n } else if (type === Number) {\r\n return 0;\r\n }\r\n\r\n return null;\r\n },\r\n\r\n $$aliasCache: [],\r\n\r\n getTypeAlias: function (obj) {\r\n if (obj.$$alias) {\r\n return obj.$$alias;\r\n }\r\n\r\n var type = (obj.$$name || typeof obj === \"function\") ? obj : Bridge.getType(obj),\r\n alias;\r\n\r\n if (type.$$alias) {\r\n return type.$$alias;\r\n }\r\n\r\n alias = Bridge.$$aliasCache[type];\r\n if (alias) {\r\n return alias;\r\n }\r\n\r\n if (type.$isArray) {\r\n var elementName = Bridge.getTypeAlias(type.$elementType);\r\n alias = elementName + \"$Array\" + (type.$rank > 1 ? (\"$\" + type.$rank) : \"\");\r\n\r\n if (type.$$name) {\r\n type.$$alias = alias;\r\n } else {\r\n Bridge.$$aliasCache[type] = alias;\r\n }\r\n\r\n return alias;\r\n }\r\n\r\n var name = obj.$$name || Bridge.getTypeName(obj);\r\n\r\n if (type.$typeArguments && !type.$isGenericTypeDefinition) {\r\n name = type.$genericTypeDefinition.$$name;\r\n\r\n for (var i = 0; i < type.$typeArguments.length; i++) {\r\n var ta = type.$typeArguments[i];\r\n name += \"$\" + Bridge.getTypeAlias(ta);\r\n }\r\n }\r\n\r\n alias = name.replace(/[\\.\\(\\)\\,\\+]/g, \"$\");\r\n\r\n if (type.$module) {\r\n alias = type.$module + \"$\" + alias;\r\n }\r\n\r\n if (type.$$name) {\r\n type.$$alias = alias;\r\n } else {\r\n Bridge.$$aliasCache[type] = alias;\r\n }\r\n\r\n return alias;\r\n },\r\n\r\n getTypeName: function (obj) {\r\n return Bridge.Reflection.getTypeFullName(obj);\r\n },\r\n\r\n hasValue: function (obj) {\r\n return Bridge.unbox(obj, true) != null;\r\n },\r\n\r\n hasValue$1: function () {\r\n if (arguments.length === 0) {\r\n return false;\r\n }\r\n\r\n var i = 0;\r\n\r\n for (i; i < arguments.length; i++) {\r\n if (Bridge.unbox(arguments[i], true) == null) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n\r\n isObject: function (type) {\r\n return type === Object || type === System.Object;\r\n },\r\n\r\n is: function (obj, type, ignoreFn, allowNull) {\r\n if (obj == null) {\r\n return !!allowNull;\r\n }\r\n\r\n if (type === System.Object) {\r\n type = Object;\r\n }\r\n\r\n var tt = typeof type;\r\n\r\n if (tt === \"boolean\") {\r\n return type;\r\n }\r\n\r\n if (obj.$boxed) {\r\n if (obj.type.$kind === \"enum\" && (obj.type.prototype.$utype === type || type === System.Enum || type === System.IFormattable || type === System.IComparable)) {\r\n return true;\r\n } else if (!Bridge.Reflection.isInterface(type) && !type.$nullable) {\r\n return obj.type === type || Bridge.isObject(type) || type === System.ValueType && Bridge.Reflection.isValueType(obj.type);\r\n }\r\n\r\n if (ignoreFn !== true && type.$is) {\r\n return type.$is(Bridge.unbox(obj, true));\r\n }\r\n\r\n if (Bridge.Reflection.isAssignableFrom(type, obj.type)) {\r\n return true;\r\n }\r\n\r\n obj = Bridge.unbox(obj, true);\r\n }\r\n\r\n var ctor = obj.constructor === Object && obj.$getType ? obj.$getType() : Bridge.Reflection.convertType(obj.constructor);\r\n\r\n if (type.constructor === Function && obj instanceof type || ctor === type || Bridge.isObject(type)) {\r\n return true;\r\n }\r\n\r\n var hasObjKind = ctor.$kind || ctor.$$inherits,\r\n hasTypeKind = type.$kind;\r\n\r\n if (hasObjKind || hasTypeKind) {\r\n var isInterface = type.$isInterface;\r\n\r\n if (isInterface) {\r\n if (hasObjKind) {\r\n if (ctor.$isArrayEnumerator) {\r\n return System.Array.is(obj, type);\r\n }\r\n\r\n return type.isAssignableFrom ? type.isAssignableFrom(ctor) : Bridge.Reflection.getInterfaces(ctor).indexOf(type) >= 0;\r\n }\r\n\r\n if (Bridge.isArray(obj, ctor)) {\r\n return System.Array.is(obj, type);\r\n }\r\n }\r\n\r\n if (ignoreFn !== true && type.$is) {\r\n return type.$is(obj);\r\n }\r\n\r\n if (type.$literal) {\r\n if (Bridge.isPlainObject(obj)) {\r\n if (obj.$getType) {\r\n return Bridge.Reflection.isAssignableFrom(type, obj.$getType());\r\n }\r\n\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n if (tt === \"string\") {\r\n type = Bridge.unroll(type);\r\n }\r\n\r\n if (tt === \"function\" && (Bridge.getType(obj).prototype instanceof type)) {\r\n return true;\r\n }\r\n\r\n if (ignoreFn !== true) {\r\n if (typeof (type.$is) === \"function\") {\r\n return type.$is(obj);\r\n }\r\n\r\n if (typeof (type.isAssignableFrom) === \"function\") {\r\n return type.isAssignableFrom(Bridge.getType(obj));\r\n }\r\n }\r\n\r\n if (Bridge.isArray(obj)) {\r\n return System.Array.is(obj, type);\r\n }\r\n\r\n return tt === \"object\" && ((ctor === type) || (obj instanceof type));\r\n },\r\n\r\n as: function (obj, type, allowNull) {\r\n if (Bridge.is(obj, type, false, allowNull)) {\r\n return obj != null && obj.$boxed && type !== Object && type !== System.Object ? obj.v : obj;\r\n }\r\n return null;\r\n },\r\n\r\n cast: function (obj, type, allowNull) {\r\n if (obj == null) {\r\n return obj;\r\n }\r\n\r\n var result = Bridge.is(obj, type, false, allowNull) ? obj : null;\r\n\r\n if (result === null) {\r\n throw new System.InvalidCastException.$ctor1(\"Unable to cast type \" + (obj ? Bridge.getTypeName(obj) : \"'null'\") + \" to type \" + Bridge.getTypeName(type));\r\n }\r\n\r\n if (obj.$boxed && type !== Object && type !== System.Object) {\r\n return obj.v;\r\n }\r\n\r\n return result;\r\n },\r\n\r\n apply: function (obj, values, callback) {\r\n var names = Bridge.getPropertyNames(values, true),\r\n i;\r\n\r\n for (i = 0; i < names.length; i++) {\r\n var name = names[i];\r\n\r\n if (typeof obj[name] === \"function\" && typeof values[name] !== \"function\") {\r\n obj[name](values[name]);\r\n } else {\r\n obj[name] = values[name];\r\n }\r\n }\r\n\r\n if (callback) {\r\n callback.call(obj, obj);\r\n }\r\n\r\n return obj;\r\n },\r\n\r\n copyProperties: function (to, from) {\r\n var names = Bridge.getPropertyNames(from, false),\r\n i;\r\n\r\n for (i = 0; i < names.length; i++) {\r\n var name = names[i],\r\n own = from.hasOwnProperty(name),\r\n dcount = name.split(\"$\").length;\r\n\r\n if (own && (dcount === 1 || dcount === 2 && name.match(\"\\$\\d+$\"))) {\r\n to[name] = from[name];\r\n }\r\n\r\n }\r\n\r\n return to;\r\n },\r\n\r\n merge: function (to, from, callback, elemFactory) {\r\n if (to == null) {\r\n return from;\r\n }\r\n\r\n // Maps instance of plain JS value or Object into Bridge object.\r\n // Used for deserialization. Proper deserialization requires reflection that is currently not supported in Bridge.\r\n // It currently is only capable to deserialize:\r\n // -instance of single class or primitive\r\n // -array of primitives\r\n // -array of single class\r\n if (to instanceof System.Decimal && typeof from === \"number\") {\r\n return new System.Decimal(from);\r\n }\r\n\r\n if (to instanceof System.Int64 && Bridge.isNumber(from)) {\r\n return new System.Int64(from);\r\n }\r\n\r\n if (to instanceof System.UInt64 && Bridge.isNumber(from)) {\r\n return new System.UInt64(from);\r\n }\r\n\r\n if (to instanceof Boolean || Bridge.isBoolean(to) ||\r\n typeof to === \"number\" ||\r\n to instanceof String || Bridge.isString(to) ||\r\n to instanceof Function || Bridge.isFunction(to) ||\r\n to instanceof Date || Bridge.isDate(to) ||\r\n Bridge.getType(to).$number) {\r\n return from;\r\n }\r\n\r\n var key,\r\n i,\r\n value,\r\n toValue,\r\n fn;\r\n\r\n if (Bridge.isArray(from) && Bridge.isFunction(to.add || to.push)) {\r\n fn = Bridge.isArray(to) ? to.push : to.add;\r\n\r\n for (i = 0; i < from.length; i++) {\r\n var item = from[i];\r\n\r\n if (!Bridge.isArray(item)) {\r\n item = [typeof elemFactory === \"undefined\" ? item : Bridge.merge(elemFactory(), item)];\r\n }\r\n\r\n fn.apply(to, item);\r\n }\r\n } else {\r\n var t = Bridge.getType(to),\r\n descriptors = t && t.$descriptors;\r\n\r\n if (from) {\r\n for (key in from) {\r\n value = from[key];\r\n\r\n var descriptor = null;\r\n\r\n if (descriptors) {\r\n for (var i = descriptors.length - 1; i >= 0; i--) {\r\n if (descriptors[i].name === key) {\r\n descriptor = descriptors[i];\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (descriptor != null) {\r\n if (descriptor.set) {\r\n to[key] = Bridge.merge(to[key], value);\r\n } else {\r\n Bridge.merge(to[key], value);\r\n }\r\n } else if (typeof to[key] === \"function\") {\r\n if (key.match(/^\\s*get[A-Z]/)) {\r\n Bridge.merge(to[key](), value);\r\n } else {\r\n to[key](value);\r\n }\r\n } else {\r\n var setter1 = \"set\" + key.charAt(0).toUpperCase() + key.slice(1),\r\n setter2 = \"set\" + key,\r\n getter;\r\n\r\n if (typeof to[setter1] === \"function\" && typeof value !== \"function\") {\r\n getter = \"g\" + setter1.slice(1);\r\n\r\n if (typeof to[getter] === \"function\") {\r\n to[setter1](Bridge.merge(to[getter](), value));\r\n } else {\r\n to[setter1](value);\r\n }\r\n } else if (typeof to[setter2] === \"function\" && typeof value !== \"function\") {\r\n getter = \"g\" + setter2.slice(1);\r\n\r\n if (typeof to[getter] === \"function\") {\r\n to[setter2](Bridge.merge(to[getter](), value));\r\n } else {\r\n to[setter2](value);\r\n }\r\n } else if (value && value.constructor === Object && to[key]) {\r\n toValue = to[key];\r\n Bridge.merge(toValue, value);\r\n } else {\r\n var isNumber = Bridge.isNumber(from);\r\n\r\n if (to[key] instanceof System.Decimal && isNumber) {\r\n return new System.Decimal(from);\r\n }\r\n\r\n if (to[key] instanceof System.Int64 && isNumber) {\r\n return new System.Int64(from);\r\n }\r\n\r\n if (to[key] instanceof System.UInt64 && isNumber) {\r\n return new System.UInt64(from);\r\n }\r\n\r\n to[key] = value;\r\n }\r\n }\r\n }\r\n } else {\r\n if (callback) {\r\n callback.call(to, to);\r\n }\r\n\r\n return from;\r\n }\r\n }\r\n\r\n if (callback) {\r\n callback.call(to, to);\r\n }\r\n\r\n return to;\r\n },\r\n\r\n getEnumerator: function (obj, fnName, T) {\r\n if (typeof obj === \"string\") {\r\n obj = System.String.toCharArray(obj);\r\n }\r\n\r\n if (arguments.length === 2 && Bridge.isFunction(fnName)) {\r\n T = fnName;\r\n fnName = null;\r\n }\r\n\r\n if (fnName && obj && obj[fnName]) {\r\n return obj[fnName].call(obj);\r\n }\r\n\r\n if (!T && obj && obj.GetEnumerator) {\r\n return obj.GetEnumerator();\r\n }\r\n\r\n var name;\r\n\r\n if (T && Bridge.isFunction(Bridge.getProperty(obj, name = \"System$Collections$Generic$IEnumerable$1$\" + Bridge.getTypeAlias(T) + \"$GetEnumerator\"))) {\r\n return obj[name]();\r\n }\r\n\r\n if (T && Bridge.isFunction(Bridge.getProperty(obj, name = \"System$Collections$Generic$IEnumerable$1$GetEnumerator\"))) {\r\n return obj[name]();\r\n }\r\n\r\n if (Bridge.isFunction(Bridge.getProperty(obj, name = \"System$Collections$IEnumerable$GetEnumerator\"))) {\r\n return obj[name]();\r\n }\r\n\r\n if (T && obj && obj.GetEnumerator) {\r\n return obj.GetEnumerator();\r\n }\r\n\r\n if ((Object.prototype.toString.call(obj) === \"[object Array]\") ||\r\n (obj && Bridge.isDefined(obj.length))) {\r\n return new Bridge.ArrayEnumerator(obj, T);\r\n }\r\n\r\n throw new System.InvalidOperationException.$ctor1(\"Cannot create Enumerator.\");\r\n },\r\n\r\n getPropertyNames: function (obj, includeFunctions) {\r\n var names = [],\r\n name;\r\n\r\n for (name in obj) {\r\n if (includeFunctions || typeof obj[name] !== \"function\") {\r\n names.push(name);\r\n }\r\n }\r\n\r\n return names;\r\n },\r\n\r\n getProperty: function (obj, propertyName) {\r\n if (Bridge.isHtmlAttributeCollection(obj) && !this.isValidHtmlAttributeName(propertyName)) {\r\n return undefined;\r\n }\r\n\r\n return obj[propertyName];\r\n },\r\n\r\n isValidHtmlAttributeName : function (name) {\r\n // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\r\n\r\n if (!name || !name.length) {\r\n return false;\r\n }\r\n\r\n var r = /^[a-zA-Z_][\\w\\-]*$/;\r\n\r\n return r.test(name);\r\n },\r\n\r\n isHtmlAttributeCollection: function (obj) {\r\n return typeof obj !== \"undefined\" && (Object.prototype.toString.call(obj) === \"[object NamedNodeMap]\");\r\n },\r\n\r\n isDefined: function (value, noNull) {\r\n return typeof value !== \"undefined\" && (noNull ? value !== null : true);\r\n },\r\n\r\n isEmpty: function (value, allowEmpty) {\r\n return (typeof value === \"undefined\" || value === null) || (!allowEmpty ? value === \"\" : false) || ((!allowEmpty && Bridge.isArray(value)) ? value.length === 0 : false);\r\n },\r\n\r\n toArray: function (ienumerable) {\r\n var i,\r\n item,\r\n len,\r\n result = [];\r\n\r\n if (Bridge.isArray(ienumerable)) {\r\n for (i = 0, len = ienumerable.length; i < len; ++i) {\r\n result.push(ienumerable[i]);\r\n }\r\n } else {\r\n i = Bridge.getEnumerator(ienumerable);\r\n\r\n while (i.moveNext()) {\r\n item = i.Current;\r\n result.push(item);\r\n }\r\n }\r\n\r\n return result;\r\n },\r\n\r\n toList: function (ienumerable, T) {\r\n return new (System.Collections.Generic.List$1(T || System.Object).$ctor1)(ienumerable);\r\n },\r\n\r\n arrayTypes: [globals.Array, globals.Uint8Array, globals.Int8Array, globals.Int16Array, globals.Uint16Array, globals.Int32Array, globals.Uint32Array, globals.Float32Array, globals.Float64Array, globals.Uint8ClampedArray],\r\n\r\n isArray: function (obj, ctor) {\r\n var c = ctor || (obj != null ? obj.constructor : null);\r\n\r\n if (!c) {\r\n return false;\r\n }\r\n\r\n return Bridge.arrayTypes.indexOf(c) >= 0 || c.$isArray || Array.isArray(obj);\r\n },\r\n\r\n isFunction: function (obj) {\r\n return typeof (obj) === \"function\";\r\n },\r\n\r\n isDate: function (obj) {\r\n return obj instanceof Date || Object.prototype.toString.call(obj) === \"[object Date]\";\r\n },\r\n\r\n isNull: function (value) {\r\n return (value === null) || (value === undefined);\r\n },\r\n\r\n isBoolean: function (value) {\r\n return typeof value === \"boolean\";\r\n },\r\n\r\n isNumber: function (value) {\r\n return typeof value === \"number\" && isFinite(value);\r\n },\r\n\r\n isString: function (value) {\r\n return typeof value === \"string\";\r\n },\r\n\r\n unroll: function (value, scope) {\r\n if (Bridge.isArray(value)) {\r\n for (var i = 0; i < value.length; i++) {\r\n var v = value[i];\r\n\r\n if (Bridge.isString(v)) {\r\n value[i] = Bridge.unroll(v, scope);\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n var d = value.split(\".\"),\r\n o = (scope || Bridge.global)[d[0]],\r\n i = 1;\r\n\r\n for (i; i < d.length; i++) {\r\n if (!o) {\r\n return null;\r\n }\r\n\r\n o = o[d[i]];\r\n }\r\n\r\n return o;\r\n },\r\n\r\n referenceEquals: function (a, b) {\r\n return Bridge.hasValue(a) ? a === b : !Bridge.hasValue(b);\r\n },\r\n\r\n staticEquals: function (a, b) {\r\n if (!Bridge.hasValue(a)) {\r\n return !Bridge.hasValue(b);\r\n }\r\n\r\n return Bridge.hasValue(b) ? Bridge.equals(a, b) : false;\r\n },\r\n\r\n equals: function (a, b) {\r\n if (a == null && b == null) {\r\n return true;\r\n }\r\n\r\n var guardItem = Bridge.$equalsGuard[Bridge.$equalsGuard.length - 1];\r\n\r\n if (guardItem && guardItem.a === a && guardItem.b === b) {\r\n return a === b;\r\n }\r\n\r\n Bridge.$equalsGuard.push({a: a, b: b});\r\n\r\n var fn = function (a, b) {\r\n if (a && a.$boxed && a.type.equals && a.type.equals.length === 2) {\r\n return a.type.equals(a, b);\r\n }\r\n\r\n if (b && b.$boxed && b.type.equals && b.type.equals.length === 2) {\r\n return b.type.equals(b, a);\r\n }\r\n\r\n if (a && Bridge.isFunction(a.equals) && a.equals.length === 1) {\r\n return a.equals(b);\r\n }\r\n\r\n if (b && Bridge.isFunction(b.equals) && b.equals.length === 1) {\r\n return b.equals(a);\r\n } if (Bridge.isFunction(a) && Bridge.isFunction(b)) {\r\n return Bridge.fn.equals.call(a, b);\r\n } else if (Bridge.isDate(a) && Bridge.isDate(b)) {\r\n if (a.kind !== undefined && a.ticks !== undefined && b.kind !== undefined && b.ticks !== undefined) {\r\n return a.ticks.equals(b.ticks);\r\n }\r\n\r\n return a.valueOf() === b.valueOf();\r\n } else if (Bridge.isNull(a) && Bridge.isNull(b)) {\r\n return true;\r\n } else if (Bridge.isNull(a) !== Bridge.isNull(b)) {\r\n return false;\r\n }\r\n\r\n var eq = a === b;\r\n\r\n if (!eq && typeof a === \"object\" && typeof b === \"object\" && a !== null && b !== null && a.$kind === \"struct\" && b.$kind === \"struct\" && a.$$name === b.$$name) {\r\n return Bridge.getHashCode(a) === Bridge.getHashCode(b) && Bridge.objectEquals(a, b);\r\n }\r\n\r\n if (!eq && a && b && a.hasOwnProperty(\"Item1\") && Bridge.isPlainObject(a) && b.hasOwnProperty(\"Item1\") && Bridge.isPlainObject(b)) {\r\n return Bridge.objectEquals(a, b, true);\r\n }\r\n\r\n return eq;\r\n };\r\n\r\n var result = fn(a, b);\r\n Bridge.$equalsGuard.pop();\r\n\r\n return result;\r\n },\r\n\r\n objectEquals: function (a, b, oneLevel) {\r\n Bridge.$$leftChain = [];\r\n Bridge.$$rightChain = [];\r\n\r\n var result = Bridge.deepEquals(a, b, oneLevel);\r\n\r\n delete Bridge.$$leftChain;\r\n delete Bridge.$$rightChain;\r\n\r\n return result;\r\n },\r\n\r\n deepEquals: function (a, b, oneLevel) {\r\n if (typeof a === \"object\" && typeof b === \"object\") {\r\n if (a === b) {\r\n return true;\r\n }\r\n\r\n if (Bridge.$$leftChain.indexOf(a) > -1 || Bridge.$$rightChain.indexOf(b) > -1) {\r\n return false;\r\n }\r\n\r\n var p;\r\n\r\n for (p in b) {\r\n if (b.hasOwnProperty(p) !== a.hasOwnProperty(p)) {\r\n return false;\r\n } else if (typeof b[p] !== typeof a[p]) {\r\n return false;\r\n }\r\n }\r\n\r\n for (p in a) {\r\n if (b.hasOwnProperty(p) !== a.hasOwnProperty(p)) {\r\n return false;\r\n } else if (typeof a[p] !== typeof b[p]) {\r\n return false;\r\n }\r\n\r\n if (a[p] === b[p]) {\r\n continue;\r\n } else if (typeof (a[p]) === \"object\" && !oneLevel) {\r\n Bridge.$$leftChain.push(a);\r\n Bridge.$$rightChain.push(b);\r\n\r\n if (!Bridge.deepEquals(a[p], b[p])) {\r\n return false;\r\n }\r\n\r\n Bridge.$$leftChain.pop();\r\n Bridge.$$rightChain.pop();\r\n } else {\r\n if (!Bridge.equals(a[p], b[p])) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n } else {\r\n return Bridge.equals(a, b);\r\n }\r\n },\r\n\r\n numberCompare : function (a, b) {\r\n if (a < b) {\r\n return -1;\r\n }\r\n\r\n if (a > b) {\r\n return 1;\r\n }\r\n\r\n if (a == b) {\r\n return 0;\r\n }\r\n\r\n if (!isNaN(a)) {\r\n return 1;\r\n }\r\n\r\n if (!isNaN(b)) {\r\n return -1;\r\n }\r\n\r\n return 0;\r\n },\r\n\r\n compare: function (a, b, safe, T) {\r\n if (a && a.$boxed) {\r\n a = Bridge.unbox(a, true);\r\n }\r\n\r\n if (b && b.$boxed) {\r\n b = Bridge.unbox(b, true);\r\n }\r\n\r\n if (typeof a === \"number\" && typeof b === \"number\") {\r\n return Bridge.numberCompare(a, b);\r\n }\r\n\r\n if (!Bridge.isDefined(a, true)) {\r\n if (safe) {\r\n return 0;\r\n }\r\n\r\n throw new System.NullReferenceException();\r\n } else if (Bridge.isString(a)) {\r\n return System.String.compare(a, b);\r\n } else if (Bridge.isNumber(a) || Bridge.isBoolean(a)) {\r\n return a < b ? -1 : (a > b ? 1 : 0);\r\n } else if (Bridge.isDate(a)) {\r\n if (a.kind !== undefined && a.ticks !== undefined) {\r\n return Bridge.compare(System.DateTime.getTicks(a), System.DateTime.getTicks(b));\r\n }\r\n\r\n return Bridge.compare(a.valueOf(), b.valueOf());\r\n }\r\n\r\n var name;\r\n\r\n if (T && Bridge.isFunction(Bridge.getProperty(a, name = \"System$IComparable$1$\" + Bridge.getTypeAlias(T) + \"$compareTo\"))) {\r\n return a[name](b);\r\n }\r\n\r\n if (T && Bridge.isFunction(Bridge.getProperty(a, name = \"System$IComparable$1$compareTo\"))) {\r\n return a[name](b);\r\n }\r\n\r\n if (Bridge.isFunction(Bridge.getProperty(a, name = \"System$IComparable$compareTo\"))) {\r\n return a[name](b);\r\n }\r\n\r\n if (Bridge.isFunction(a.compareTo)) {\r\n return a.compareTo(b);\r\n }\r\n\r\n if (T && Bridge.isFunction(Bridge.getProperty(b, name = \"System$IComparable$1$\" + Bridge.getTypeAlias(T) + \"$compareTo\"))) {\r\n return -b[name](a);\r\n }\r\n\r\n if (T && Bridge.isFunction(Bridge.getProperty(b, name = \"System$IComparable$1$compareTo\"))) {\r\n return -b[name](a);\r\n }\r\n\r\n if (Bridge.isFunction(Bridge.getProperty(b, name = \"System$IComparable$compareTo\"))) {\r\n return -b[name](a);\r\n }\r\n\r\n if (Bridge.isFunction(b.compareTo)) {\r\n return -b.compareTo(a);\r\n }\r\n\r\n if (safe) {\r\n return 0;\r\n }\r\n\r\n throw new System.Exception(\"Cannot compare items\");\r\n },\r\n\r\n equalsT: function (a, b, T) {\r\n if (a && a.$boxed && a.type.equalsT && a.type.equalsT.length === 2) {\r\n return a.type.equalsT(a, b);\r\n }\r\n\r\n if (b && b.$boxed && b.type.equalsT && b.type.equalsT.length === 2) {\r\n return b.type.equalsT(b, a);\r\n }\r\n\r\n if (!Bridge.isDefined(a, true)) {\r\n throw new System.NullReferenceException();\r\n } else if (Bridge.isNumber(a) || Bridge.isString(a) || Bridge.isBoolean(a)) {\r\n return a === b;\r\n } else if (Bridge.isDate(a)) {\r\n if (a.kind !== undefined && a.ticks !== undefined) {\r\n return System.DateTime.getTicks(a).equals(System.DateTime.getTicks(b));\r\n }\r\n\r\n return a.valueOf() === b.valueOf();\r\n }\r\n\r\n var name;\r\n\r\n if (T && a != null && Bridge.isFunction(Bridge.getProperty(a, name = \"System$IEquatable$1$\" + Bridge.getTypeAlias(T) + \"$equalsT\"))) {\r\n return a[name](b);\r\n }\r\n\r\n if (T && b != null && Bridge.isFunction(Bridge.getProperty(b, name = \"System$IEquatable$1$\" + Bridge.getTypeAlias(T) + \"$equalsT\"))) {\r\n return b[name](a);\r\n }\r\n\r\n if (Bridge.isFunction(a) && Bridge.isFunction(b)) {\r\n return Bridge.fn.equals.call(a, b);\r\n }\r\n\r\n return a.equalsT ? a.equalsT(b) : b.equalsT(a);\r\n },\r\n\r\n format: function (obj, formatString, provider) {\r\n if (obj && obj.$boxed) {\r\n if (obj.type.$kind === \"enum\") {\r\n return System.Enum.format(obj.type, obj.v, formatString);\r\n } else if (obj.type === System.Char) {\r\n return System.Char.format(Bridge.unbox(obj, true), formatString, provider);\r\n } else if (obj.type.format) {\r\n return obj.type.format(Bridge.unbox(obj, true), formatString, provider);\r\n }\r\n }\r\n\r\n if (Bridge.isNumber(obj)) {\r\n return Bridge.Int.format(obj, formatString, provider);\r\n } else if (Bridge.isDate(obj)) {\r\n return System.DateTime.format(obj, formatString, provider);\r\n }\r\n\r\n var name;\r\n\r\n if (Bridge.isFunction(Bridge.getProperty(obj, name = \"System$IFormattable$format\"))) {\r\n return obj[name](formatString, provider);\r\n }\r\n\r\n return obj.format(formatString, provider);\r\n },\r\n\r\n getType: function (instance, T) {\r\n if (instance && instance.$boxed) {\r\n return instance.type;\r\n }\r\n\r\n if (instance == null) {\r\n throw new System.NullReferenceException.$ctor1(\"instance is null\");\r\n }\r\n\r\n if (T) {\r\n var type = Bridge.getType(instance);\r\n return Bridge.Reflection.isAssignableFrom(T, type) ? type : T;\r\n }\r\n\r\n if (typeof (instance) === \"number\") {\r\n if (!isNaN(instance) && isFinite(instance) && Math.floor(instance, 0) === instance) {\r\n return System.Int32;\r\n } else {\r\n return System.Double;\r\n }\r\n }\r\n\r\n if (instance.$type) {\r\n return instance.$type;\r\n }\r\n\r\n if (instance.$getType) {\r\n return instance.$getType();\r\n }\r\n\r\n var result = null;\r\n\r\n try {\r\n result = instance.constructor;\r\n } catch (ex) {\r\n result = Object;\r\n }\r\n\r\n if (result === Object) {\r\n var str = instance.toString(),\r\n match = (/\\[object (.{1,})\\]/).exec(str),\r\n name = (match && match.length > 1) ? match[1] : \"Object\";\r\n\r\n if (name != \"Object\") {\r\n result = instance;\r\n }\r\n }\r\n\r\n return Bridge.Reflection.convertType(result);\r\n },\r\n\r\n isLower: function (c) {\r\n var s = String.fromCharCode(c);\r\n\r\n return s === s.toLowerCase() && s !== s.toUpperCase();\r\n },\r\n\r\n isUpper: function (c) {\r\n var s = String.fromCharCode(c);\r\n\r\n return s !== s.toLowerCase() && s === s.toUpperCase();\r\n },\r\n\r\n coalesce: function (a, b) {\r\n return Bridge.hasValue(a) ? a : b;\r\n },\r\n\r\n fn: {\r\n equals: function (fn) {\r\n if (this === fn) {\r\n return true;\r\n }\r\n\r\n if (fn == null || (this.constructor !== fn.constructor)) {\r\n return false;\r\n }\r\n\r\n if (this.$invocationList && fn.$invocationList) {\r\n if (this.$invocationList.length !== fn.$invocationList.length) {\r\n return false;\r\n }\r\n\r\n for (var i = 0; i < this.$invocationList.length; i++) {\r\n if (this.$invocationList[i] !== fn.$invocationList[i]) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n return this.equals && (this.equals === fn.equals) && this.$method && (this.$method === fn.$method) && this.$scope && (this.$scope === fn.$scope);\r\n },\r\n\r\n call: function (obj, fnName) {\r\n var args = Array.prototype.slice.call(arguments, 2);\r\n\r\n obj = obj || Bridge.global;\r\n\r\n return obj[fnName].apply(obj, args);\r\n },\r\n\r\n makeFn: function (fn, length) {\r\n switch (length) {\r\n case 0:\r\n return function () {\r\n return fn.apply(this, arguments);\r\n };\r\n case 1:\r\n return function (a) {\r\n return fn.apply(this, arguments);\r\n };\r\n case 2:\r\n return function (a, b) {\r\n return fn.apply(this, arguments);\r\n };\r\n case 3:\r\n return function (a, b, c) {\r\n return fn.apply(this, arguments);\r\n };\r\n case 4:\r\n return function (a, b, c, d) {\r\n return fn.apply(this, arguments);\r\n };\r\n case 5:\r\n return function (a, b, c, d, e) {\r\n return fn.apply(this, arguments);\r\n };\r\n case 6:\r\n return function (a, b, c, d, e, f) {\r\n return fn.apply(this, arguments);\r\n };\r\n case 7:\r\n return function (a, b, c, d, e, f, g) {\r\n return fn.apply(this, arguments);\r\n };\r\n case 8:\r\n return function (a, b, c, d, e, f, g, h) {\r\n return fn.apply(this, arguments);\r\n };\r\n case 9:\r\n return function (a, b, c, d, e, f, g, h, i) {\r\n return fn.apply(this, arguments);\r\n };\r\n case 10:\r\n return function (a, b, c, d, e, f, g, h, i, j) {\r\n return fn.apply(this, arguments);\r\n };\r\n case 11:\r\n return function (a, b, c, d, e, f, g, h, i, j, k) {\r\n return fn.apply(this, arguments);\r\n };\r\n case 12:\r\n return function (a, b, c, d, e, f, g, h, i, j, k, l) {\r\n return fn.apply(this, arguments);\r\n };\r\n case 13:\r\n return function (a, b, c, d, e, f, g, h, i, j, k, l, m) {\r\n return fn.apply(this, arguments);\r\n };\r\n case 14:\r\n return function (a, b, c, d, e, f, g, h, i, j, k, l, m, n) {\r\n return fn.apply(this, arguments);\r\n };\r\n case 15:\r\n return function (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) {\r\n return fn.apply(this, arguments);\r\n };\r\n case 16:\r\n return function (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\r\n return fn.apply(this, arguments);\r\n };\r\n case 17:\r\n return function (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) {\r\n return fn.apply(this, arguments);\r\n };\r\n case 18:\r\n return function (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) {\r\n return fn.apply(this, arguments);\r\n };\r\n case 19:\r\n return function (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) {\r\n return fn.apply(this, arguments);\r\n };\r\n default:\r\n return function (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) {\r\n return fn.apply(this, arguments);\r\n };\r\n }\r\n },\r\n\r\n cacheBind: function (obj, method, args, appendArgs) {\r\n return Bridge.fn.bind(obj, method, args, appendArgs, true);\r\n },\r\n\r\n bind: function (obj, method, args, appendArgs, cache) {\r\n if (method && method.$method === method && method.$scope === obj) {\r\n return method;\r\n }\r\n\r\n if (obj && cache && obj.$$bind) {\r\n for (var i = 0; i < obj.$$bind.length; i++) {\r\n if (obj.$$bind[i].$method === method) {\r\n return obj.$$bind[i];\r\n }\r\n }\r\n }\r\n\r\n var fn;\r\n\r\n if (arguments.length === 2) {\r\n fn = Bridge.fn.makeFn(function () {\r\n Bridge.caller.unshift(this);\r\n\r\n var result = null;\r\n\r\n try {\r\n result = method.apply(obj, arguments);\r\n } finally {\r\n Bridge.caller.shift(this);\r\n }\r\n\r\n return result;\r\n }, method.length);\r\n } else {\r\n fn = Bridge.fn.makeFn(function () {\r\n var callArgs = args || arguments;\r\n\r\n if (appendArgs === true) {\r\n callArgs = Array.prototype.slice.call(arguments, 0);\r\n callArgs = callArgs.concat(args);\r\n } else if (typeof appendArgs === \"number\") {\r\n callArgs = Array.prototype.slice.call(arguments, 0);\r\n\r\n if (appendArgs === 0) {\r\n callArgs.unshift.apply(callArgs, args);\r\n } else if (appendArgs < callArgs.length) {\r\n callArgs.splice.apply(callArgs, [appendArgs, 0].concat(args));\r\n } else {\r\n callArgs.push.apply(callArgs, args);\r\n }\r\n }\r\n\r\n Bridge.caller.unshift(this);\r\n\r\n var result = null;\r\n\r\n try {\r\n result = method.apply(obj, callArgs);\r\n } finally {\r\n Bridge.caller.shift(this);\r\n }\r\n\r\n return result;\r\n }, method.length);\r\n }\r\n\r\n if (obj && cache) {\r\n obj.$$bind = obj.$$bind || [];\r\n obj.$$bind.push(fn);\r\n }\r\n\r\n fn.$method = method;\r\n fn.$scope = obj;\r\n fn.equals = Bridge.fn.equals;\r\n\r\n return fn;\r\n },\r\n\r\n bindScope: function (obj, method) {\r\n var fn = Bridge.fn.makeFn(function () {\r\n var callArgs = Array.prototype.slice.call(arguments, 0);\r\n\r\n callArgs.unshift.apply(callArgs, [obj]);\r\n\r\n Bridge.caller.unshift(this);\r\n\r\n var result = null;\r\n\r\n try {\r\n result = method.apply(obj, callArgs);\r\n } finally {\r\n Bridge.caller.shift(this);\r\n }\r\n\r\n return result;\r\n }, method.length);\r\n\r\n fn.$method = method;\r\n fn.$scope = obj;\r\n fn.equals = Bridge.fn.equals;\r\n\r\n return fn;\r\n },\r\n\r\n $build: function (handlers) {\r\n if (!handlers || handlers.length === 0) {\r\n return null;\r\n }\r\n\r\n var fn = function () {\r\n var result = null,\r\n i,\r\n handler;\r\n\r\n for (i = 0; i < handlers.length; i++) {\r\n handler = handlers[i];\r\n result = handler.apply(null, arguments);\r\n }\r\n\r\n return result;\r\n };\r\n\r\n fn.$invocationList = handlers ? Array.prototype.slice.call(handlers, 0) : [];\r\n handlers = fn.$invocationList.slice();\r\n\r\n return fn;\r\n },\r\n\r\n combine: function (fn1, fn2) {\r\n if (!fn1 || !fn2) {\r\n var fn = fn1 || fn2;\r\n\r\n return fn ? Bridge.fn.$build([fn]) : fn;\r\n }\r\n\r\n var list1 = fn1.$invocationList ? fn1.$invocationList : [fn1],\r\n list2 = fn2.$invocationList ? fn2.$invocationList : [fn2];\r\n\r\n return Bridge.fn.$build(list1.concat(list2));\r\n },\r\n\r\n getInvocationList: function (fn) {\r\n if (fn == null) {\r\n throw new System.ArgumentNullException();\r\n }\r\n\r\n if (!fn.$invocationList) {\r\n fn.$invocationList = [fn];\r\n }\r\n\r\n return fn.$invocationList;\r\n },\r\n\r\n remove: function (fn1, fn2) {\r\n if (!fn1 || !fn2) {\r\n return fn1 || null;\r\n }\r\n\r\n var list1 = fn1.$invocationList ? fn1.$invocationList.slice(0) : [fn1],\r\n list2 = fn2.$invocationList ? fn2.$invocationList : [fn2],\r\n result = [],\r\n exclude,\r\n i,\r\n j;\r\n\r\n exclude = -1;\r\n\r\n for (i = list1.length - list2.length; i >= 0; i--) {\r\n if (Bridge.fn.equalInvocationLists(list1, list2, i, list2.length)) {\r\n if (list1.length - list2.length == 0) {\r\n return null;\r\n } else if (list1.length - list2.length == 1) {\r\n return list1[i != 0 ? 0 : list1.length - 1];\r\n } else {\r\n list1.splice(i, list2.length);\r\n\r\n return Bridge.fn.$build(list1);\r\n }\r\n }\r\n }\r\n\r\n return fn1;\r\n },\r\n\r\n equalInvocationLists: function (a, b, start, count) {\r\n for (var i = 0; i < count; i = (i + 1) | 0) {\r\n if (!(Bridge.equals(a[System.Array.index(((start + i) | 0), a)], b[System.Array.index(i, b)]))) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n },\r\n\r\n sleep: function (ms, timeout) {\r\n if (Bridge.hasValue(timeout)) {\r\n ms = timeout.getTotalMilliseconds();\r\n }\r\n\r\n if (isNaN(ms) || ms < -1 || ms > 2147483647) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"timeout\", \"Number must be either non-negative and less than or equal to Int32.MaxValue or -1\");\r\n }\r\n\r\n if (ms == -1) {\r\n ms = 2147483647;\r\n }\r\n\r\n var start = new Date().getTime();\r\n\r\n while ((new Date().getTime() - start) < ms) {\r\n if ((new Date().getTime() - start) > 2147483647) {\r\n break;\r\n }\r\n }\r\n },\r\n\r\n getMetadata: function (t) {\r\n var m = t.$getMetadata ? t.$getMetadata() : t.$metadata;\r\n\r\n return m;\r\n },\r\n\r\n loadModule: function (config, callback) {\r\n var amd = config.amd,\r\n cjs = config.cjs,\r\n fnName = config.fn;\r\n\r\n var tcs = new System.Threading.Tasks.TaskCompletionSource(),\r\n fn = Bridge.global[fnName || \"require\"];\r\n\r\n if (amd && amd.length > 0) {\r\n fn(amd, function () {\r\n var loads = Array.prototype.slice.call(arguments, 0);\r\n\r\n if (cjs && cjs.length > 0) {\r\n for (var i = 0; i < cjs.length; i++) {\r\n loads.push(fn(cjs[i]));\r\n }\r\n }\r\n\r\n callback.apply(Bridge.global, loads);\r\n tcs.setResult();\r\n });\r\n } else if (cjs && cjs.length > 0) {\r\n var t = new System.Threading.Tasks.Task();\r\n t.status = System.Threading.Tasks.TaskStatus.ranToCompletion;\r\n\r\n var loads = [];\r\n\r\n for (var j = 0; j < cjs.length; j++) {\r\n loads.push(fn(cjs[j]));\r\n }\r\n\r\n callback.apply(Bridge.global, loads);\r\n\r\n return t;\r\n } else {\r\n var t = new System.Threading.Tasks.Task();\r\n t.status = System.Threading.Tasks.TaskStatus.ranToCompletion;\r\n\r\n return t;\r\n }\r\n\r\n return tcs.task;\r\n }\r\n };\r\n\r\n if (!globals.setImmediate) {\r\n core.setImmediate = (function () {\r\n var head = {},\r\n tail = head;\r\n\r\n var id = Math.random();\r\n\r\n function onmessage (e) {\r\n if (e.data != id) {\r\n return;\r\n }\r\n\r\n head = head.next;\r\n var func = head.func;\r\n delete head.func;\r\n func();\r\n }\r\n\r\n if (typeof window !== \"undefined\") {\r\n if (window.addEventListener) {\r\n window.addEventListener(\"message\", onmessage);\r\n } else {\r\n window.attachEvent(\"onmessage\", onmessage);\r\n }\r\n }\r\n\r\n return function (func) {\r\n tail = tail.next = { func: func };\r\n\r\n if (typeof window !== \"undefined\") {\r\n window.postMessage(id, \"*\");\r\n }\r\n };\r\n }());\r\n } else {\r\n core.setImmediate = globals.setImmediate.bind(globals);\r\n }\r\n\r\n globals.Bridge = core;\r\n globals.Bridge.caller = [];\r\n globals.Bridge.$equalsGuard = [];\r\n globals.Bridge.$toStringGuard = [];\r\n\r\n if (globals.console) {\r\n globals.Bridge.Console = globals.console;\r\n }\r\n\r\n globals.System = {};\r\n globals.System.Diagnostics = {};\r\n globals.System.Diagnostics.Contracts = {};\r\n globals.System.Threading = {};\r\n\r\n // @source Browser.js\r\n\r\n var check = function (regex) {\r\n return Bridge.global.navigator && regex.test(Bridge.global.navigator.userAgent.toLowerCase());\r\n },\r\n\r\n isStrict = Bridge.global.document && Bridge.global.document.compatMode === \"CSS1Compat\",\r\n\r\n version = function (is, regex) {\r\n var m;\r\n\r\n return Bridge.global.navigator && (is && (m = regex.exec(navigator.userAgent.toLowerCase()))) ? parseFloat(m[1]) : 0;\r\n },\r\n\r\n docMode = Bridge.global.document ? Bridge.global.document.documentMode : null,\r\n isOpera = check(/opera/),\r\n isOpera10_5 = isOpera && check(/version\\/10\\.5/),\r\n isChrome = check(/\\bchrome\\b/),\r\n isWebKit = check(/webkit/),\r\n isSafari = !isChrome && check(/safari/),\r\n isSafari2 = isSafari && check(/applewebkit\\/4/),\r\n isSafari3 = isSafari && check(/version\\/3/),\r\n isSafari4 = isSafari && check(/version\\/4/),\r\n isSafari5_0 = isSafari && check(/version\\/5\\.0/),\r\n isSafari5 = isSafari && check(/version\\/5/),\r\n isIE = !isOpera && (check(/msie/) || check(/trident/)),\r\n isIE7 = isIE && ((check(/msie 7/) && docMode !== 8 && docMode !== 9 && docMode !== 10) || docMode === 7),\r\n isIE8 = isIE && ((check(/msie 8/) && docMode !== 7 && docMode !== 9 && docMode !== 10) || docMode === 8),\r\n isIE9 = isIE && ((check(/msie 9/) && docMode !== 7 && docMode !== 8 && docMode !== 10) || docMode === 9),\r\n isIE10 = isIE && ((check(/msie 10/) && docMode !== 7 && docMode !== 8 && docMode !== 9) || docMode === 10),\r\n isIE11 = isIE && ((check(/trident\\/7\\.0/) && docMode !== 7 && docMode !== 8 && docMode !== 9 && docMode !== 10) || docMode === 11),\r\n isIE6 = isIE && check(/msie 6/),\r\n isGecko = !isWebKit && !isIE && check(/gecko/),\r\n isGecko3 = isGecko && check(/rv:1\\.9/),\r\n isGecko4 = isGecko && check(/rv:2\\.0/),\r\n isGecko5 = isGecko && check(/rv:5\\./),\r\n isGecko10 = isGecko && check(/rv:10\\./),\r\n isFF3_0 = isGecko3 && check(/rv:1\\.9\\.0/),\r\n isFF3_5 = isGecko3 && check(/rv:1\\.9\\.1/),\r\n isFF3_6 = isGecko3 && check(/rv:1\\.9\\.2/),\r\n isWindows = check(/windows|win32/),\r\n isMac = check(/macintosh|mac os x/),\r\n isLinux = check(/linux/),\r\n scrollbarSize = null,\r\n chromeVersion = version(true, /\\bchrome\\/(\\d+\\.\\d+)/),\r\n firefoxVersion = version(true, /\\bfirefox\\/(\\d+\\.\\d+)/),\r\n ieVersion = version(isIE, /msie (\\d+\\.\\d+)/),\r\n operaVersion = version(isOpera, /version\\/(\\d+\\.\\d+)/),\r\n safariVersion = version(isSafari, /version\\/(\\d+\\.\\d+)/),\r\n webKitVersion = version(isWebKit, /webkit\\/(\\d+\\.\\d+)/),\r\n isSecure = Bridge.global.location ? /^https/i.test(Bridge.global.location.protocol) : false,\r\n isiPhone = Bridge.global.navigator && /iPhone/i.test(Bridge.global.navigator.platform),\r\n isiPod = Bridge.global.navigator && /iPod/i.test(Bridge.global.navigator.platform),\r\n isiPad = Bridge.global.navigator && /iPad/i.test(Bridge.global.navigator.userAgent),\r\n isBlackberry = Bridge.global.navigator && /Blackberry/i.test(Bridge.global.navigator.userAgent),\r\n isAndroid = Bridge.global.navigator && /Android/i.test(Bridge.global.navigator.userAgent),\r\n isDesktop = isMac || isWindows || (isLinux && !isAndroid),\r\n isTablet = isiPad,\r\n isPhone = !isDesktop && !isTablet;\r\n\r\n var browser = {\r\n isStrict: isStrict,\r\n isIEQuirks: isIE && (!isStrict && (isIE6 || isIE7 || isIE8 || isIE9)),\r\n isOpera: isOpera,\r\n isOpera10_5: isOpera10_5,\r\n isWebKit: isWebKit,\r\n isChrome: isChrome,\r\n isSafari: isSafari,\r\n isSafari3: isSafari3,\r\n isSafari4: isSafari4,\r\n isSafari5: isSafari5,\r\n isSafari5_0: isSafari5_0,\r\n isSafari2: isSafari2,\r\n isIE: isIE,\r\n isIE6: isIE6,\r\n isIE7: isIE7,\r\n isIE7m: isIE6 || isIE7,\r\n isIE7p: isIE && !isIE6,\r\n isIE8: isIE8,\r\n isIE8m: isIE6 || isIE7 || isIE8,\r\n isIE8p: isIE && !(isIE6 || isIE7),\r\n isIE9: isIE9,\r\n isIE9m: isIE6 || isIE7 || isIE8 || isIE9,\r\n isIE9p: isIE && !(isIE6 || isIE7 || isIE8),\r\n isIE10: isIE10,\r\n isIE10m: isIE6 || isIE7 || isIE8 || isIE9 || isIE10,\r\n isIE10p: isIE && !(isIE6 || isIE7 || isIE8 || isIE9),\r\n isIE11: isIE11,\r\n isIE11m: isIE6 || isIE7 || isIE8 || isIE9 || isIE10 || isIE11,\r\n isIE11p: isIE && !(isIE6 || isIE7 || isIE8 || isIE9 || isIE10),\r\n isGecko: isGecko,\r\n isGecko3: isGecko3,\r\n isGecko4: isGecko4,\r\n isGecko5: isGecko5,\r\n isGecko10: isGecko10,\r\n isFF3_0: isFF3_0,\r\n isFF3_5: isFF3_5,\r\n isFF3_6: isFF3_6,\r\n isFF4: 4 <= firefoxVersion && firefoxVersion < 5,\r\n isFF5: 5 <= firefoxVersion && firefoxVersion < 6,\r\n isFF10: 10 <= firefoxVersion && firefoxVersion < 11,\r\n isLinux: isLinux,\r\n isWindows: isWindows,\r\n isMac: isMac,\r\n chromeVersion: chromeVersion,\r\n firefoxVersion: firefoxVersion,\r\n ieVersion: ieVersion,\r\n operaVersion: operaVersion,\r\n safariVersion: safariVersion,\r\n webKitVersion: webKitVersion,\r\n isSecure: isSecure,\r\n isiPhone: isiPhone,\r\n isiPod: isiPod,\r\n isiPad: isiPad,\r\n isBlackberry: isBlackberry,\r\n isAndroid: isAndroid,\r\n isDesktop: isDesktop,\r\n isTablet: isTablet,\r\n isPhone: isPhone,\r\n iOS: isiPhone || isiPad || isiPod,\r\n standalone: Bridge.global.navigator ? !!Bridge.global.navigator.standalone : false\r\n };\r\n\r\n Bridge.Browser = browser;\r\n\r\n // @source Class.js\r\n\r\n var base = {\r\n _initialize: function () {\r\n if (this.$init) {\r\n return;\r\n }\r\n\r\n this.$init = {};\r\n\r\n if (this.$staticInit) {\r\n this.$staticInit();\r\n }\r\n\r\n if (this.$initMembers) {\r\n this.$initMembers();\r\n }\r\n },\r\n\r\n initConfig: function (extend, base, config, statics, scope, prototype) {\r\n var initFn,\r\n name,\r\n cls = (statics ? scope : scope.ctor),\r\n descriptors = cls.$descriptors,\r\n aliases = cls.$aliases;\r\n\r\n if (config.fields) {\r\n for (name in config.fields) {\r\n scope[name] = config.fields[name];\r\n }\r\n }\r\n\r\n var props = config.properties;\r\n if (props) {\r\n for (name in props) {\r\n var v = props[name],\r\n d,\r\n cfg;\r\n\r\n if (v != null && Bridge.isPlainObject(v) && (!v.get || !v.set)) {\r\n for (var k = 0; k < descriptors.length; k++) {\r\n if (descriptors[k].name === name) {\r\n d = descriptors[k];\r\n }\r\n }\r\n\r\n if (d && d.get && !v.get) {\r\n v.get = d.get;\r\n }\r\n\r\n if (d && d.set && !v.set) {\r\n v.set = d.set;\r\n }\r\n }\r\n\r\n cfg = Bridge.property(statics ? scope : prototype, name, v, statics, cls);\r\n cfg.name = name;\r\n cfg.cls = cls;\r\n\r\n descriptors.push(cfg);\r\n }\r\n }\r\n\r\n if (config.events) {\r\n for (name in config.events) {\r\n Bridge.event(scope, name, config.events[name], statics);\r\n }\r\n }\r\n\r\n if (config.alias) {\r\n for (var i = 0; i < config.alias.length; i++) {\r\n (function (obj, name, alias, cls) {\r\n var descriptor = null;\r\n\r\n for (var i = descriptors.length - 1; i >= 0; i--) {\r\n if (descriptors[i].name === name) {\r\n descriptor = descriptors[i];\r\n\r\n break;\r\n }\r\n }\r\n\r\n var arr = Array.isArray(alias) ? alias : [alias];\r\n\r\n for (var j = 0; j < arr.length; j++) {\r\n alias = arr[j];\r\n\r\n if (descriptor != null) {\r\n Object.defineProperty(obj, alias, descriptor);\r\n aliases.push({ alias: alias, descriptor: descriptor });\r\n } else {\r\n var m;\r\n\r\n if (scope.hasOwnProperty(name) || !prototype) {\r\n m = scope[name];\r\n\r\n if (m === undefined && prototype) {\r\n m = prototype[name];\r\n }\r\n } else {\r\n m = prototype[name];\r\n\r\n if (m === undefined) {\r\n m = scope[name];\r\n }\r\n }\r\n\r\n if (!Bridge.isFunction(m)) {\r\n descriptor = {\r\n get: function () {\r\n return this[name];\r\n },\r\n\r\n set: function (value) {\r\n this[name] = value;\r\n }\r\n };\r\n Object.defineProperty(obj, alias, descriptor);\r\n aliases.push({ alias: alias, descriptor: descriptor });\r\n } else {\r\n obj[alias] = m;\r\n aliases.push({ fn: name, alias: alias });\r\n }\r\n }\r\n }\r\n })(statics ? scope : prototype, config.alias[i], config.alias[i + 1], cls);\r\n\r\n i++;\r\n }\r\n }\r\n\r\n if (config.init) {\r\n initFn = config.init;\r\n }\r\n\r\n if (initFn || (extend && !statics && base.$initMembers)) {\r\n scope.$initMembers = function () {\r\n if (extend && !statics && base.$initMembers) {\r\n base.$initMembers.call(this);\r\n }\r\n\r\n if (initFn) {\r\n initFn.call(this);\r\n }\r\n };\r\n }\r\n },\r\n\r\n convertScheme: function (obj) {\r\n var result = {},\r\n copy = function (obj, to) {\r\n\r\n var reserved = [\"fields\", \"methods\", \"events\", \"props\", \"properties\", \"alias\", \"ctors\"],\r\n keys = Object.keys(obj);\r\n\r\n for (var i = 0; i < keys.length; i++) {\r\n var name = keys[i];\r\n\r\n if (reserved.indexOf(name) === -1) {\r\n to[name] = obj[name];\r\n }\r\n }\r\n\r\n if (obj.fields) {\r\n Bridge.apply(to, obj.fields);\r\n }\r\n\r\n if (obj.methods) {\r\n Bridge.apply(to, obj.methods);\r\n }\r\n\r\n var config = {},\r\n write = false;\r\n\r\n if (obj.props) {\r\n config.properties = obj.props;\r\n write = true;\r\n } else if (obj.properties) {\r\n config.properties = obj.properties;\r\n write = true;\r\n }\r\n\r\n if (obj.events) {\r\n config.events = obj.events;\r\n write = true;\r\n }\r\n\r\n if (obj.alias) {\r\n config.alias = obj.alias;\r\n write = true;\r\n }\r\n\r\n if (obj.ctors) {\r\n if (obj.ctors.init) {\r\n config.init = obj.ctors.init;\r\n write = true;\r\n delete obj.ctors.init;\r\n }\r\n\r\n Bridge.apply(to, obj.ctors);\r\n }\r\n\r\n if (write) {\r\n to.$config = config;\r\n }\r\n };\r\n\r\n if (obj.main) {\r\n result.$main = obj.main;\r\n delete obj.main;\r\n }\r\n\r\n copy(obj, result);\r\n\r\n if (obj.statics || obj.$statics) {\r\n result.$statics = {};\r\n copy(obj.statics || obj.$statics, result.$statics);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n definei: function (className, gscope, prop) {\r\n if ((prop === true || !prop) && gscope) {\r\n gscope.$kind = \"interface\";\r\n } else if (prop) {\r\n prop.$kind = \"interface\";\r\n } else {\r\n gscope = { $kind: \"interface\" };\r\n }\r\n\r\n var c = Bridge.define(className, gscope, prop);\r\n\r\n c.$kind = \"interface\";\r\n c.$isInterface = true;\r\n\r\n return c;\r\n },\r\n\r\n // Create a new Class that inherits from this class\r\n define: function (className, gscope, prop, gCfg) {\r\n var isGenericInstance = false;\r\n\r\n if (prop === true) {\r\n isGenericInstance = true;\r\n prop = gscope;\r\n gscope = Bridge.global;\r\n } else if (!prop) {\r\n prop = gscope;\r\n gscope = Bridge.global;\r\n }\r\n\r\n var fn;\r\n\r\n if (Bridge.isFunction(prop)) {\r\n fn = function () {\r\n var args,\r\n key,\r\n obj,\r\n c;\r\n\r\n key = Bridge.Class.getCachedType(fn, arguments);\r\n\r\n if (key) {\r\n return key.type;\r\n }\r\n\r\n args = Array.prototype.slice.call(arguments);\r\n obj = prop.apply(null, args);\r\n c = Bridge.define(Bridge.Class.genericName(className, args), obj, true, { fn: fn, args: args });\r\n\r\n if (!Bridge.Class.staticInitAllow && !Bridge.Class.queueIsBlocked) {\r\n Bridge.Class.$queue.push(c);\r\n }\r\n\r\n return Bridge.get(c);\r\n };\r\n\r\n fn.$cache = [];\r\n\r\n return Bridge.Class.generic(className, gscope, fn, prop);\r\n }\r\n\r\n if (!isGenericInstance) {\r\n Bridge.Class.staticInitAllow = false;\r\n }\r\n\r\n prop = prop || {};\r\n prop.$kind = prop.$kind || \"class\";\r\n\r\n var isNested = false;\r\n\r\n if (prop.$kind.match(\"^nested \") !== null) {\r\n isNested = true;\r\n prop.$kind = prop.$kind.substr(7);\r\n }\r\n\r\n if (prop.$kind === \"enum\" && !prop.inherits) {\r\n prop.inherits = [System.IComparable, System.IFormattable];\r\n }\r\n\r\n var rNames = [\"fields\", \"events\", \"props\", \"ctors\", \"methods\"],\r\n defaultScheme = Bridge.isFunction(prop.main) ? 0 : 1,\r\n check = function (scope) {\r\n if (scope.config && Bridge.isPlainObject(scope.config) ||\r\n scope.$main && Bridge.isFunction(scope.$main) ||\r\n scope.hasOwnProperty(\"ctor\") && Bridge.isFunction(scope.ctor)) {\r\n defaultScheme = 1;\r\n\r\n return false;\r\n }\r\n\r\n if (scope.alias && Bridge.isArray(scope.alias) && scope.alias.length > 0 && scope.alias.length % 2 === 0) {\r\n return true;\r\n }\r\n\r\n for (var j = 0; j < rNames.length; j++) {\r\n if (scope[rNames[j]] && Bridge.isPlainObject(scope[rNames[j]])) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n alternateScheme = check(prop);\r\n\r\n if (!alternateScheme && prop.statics) {\r\n alternateScheme = check(prop.statics);\r\n }\r\n\r\n if (!alternateScheme) {\r\n alternateScheme = defaultScheme == 0;\r\n }\r\n\r\n if (alternateScheme) {\r\n prop = Bridge.Class.convertScheme(prop);\r\n }\r\n\r\n var extend = prop.$inherits || prop.inherits,\r\n statics = prop.$statics || prop.statics,\r\n isEntryPoint = prop.$entryPoint,\r\n base,\r\n prototype,\r\n scope = prop.$scope || gscope || Bridge.global,\r\n objectType = Bridge.global.System && Bridge.global.System.Object || Object,\r\n i,\r\n v,\r\n isCtor,\r\n ctorName,\r\n name,\r\n registerT = true;\r\n\r\n if (prop.$kind === \"enum\") {\r\n extend = [System.Enum];\r\n }\r\n\r\n if (prop.$noRegister === true) {\r\n registerT = false;\r\n delete prop.$noRegister;\r\n }\r\n\r\n if (prop.$inherits) {\r\n delete prop.$inherits;\r\n } else {\r\n delete prop.inherits;\r\n }\r\n\r\n if (isEntryPoint) {\r\n delete prop.$entryPoint;\r\n }\r\n\r\n if (Bridge.isFunction(statics)) {\r\n statics = null;\r\n } else if (prop.$statics) {\r\n delete prop.$statics;\r\n } else {\r\n delete prop.statics;\r\n }\r\n\r\n var Class,\r\n cls = prop.hasOwnProperty(\"ctor\") && prop.ctor;\r\n\r\n if (!cls) {\r\n if (prop.$literal) {\r\n Class = function (obj) {\r\n obj = obj || {};\r\n obj.$getType = function () { return Class };\r\n\r\n return obj;\r\n };\r\n } else {\r\n Class = function () {\r\n this.$initialize();\r\n\r\n if (Class.$base) {\r\n if (Class.$$inherits && Class.$$inherits.length > 0 && Class.$$inherits[0].$staticInit) {\r\n Class.$$inherits[0].$staticInit();\r\n }\r\n\r\n if (Class.$base.ctor) {\r\n Class.$base.ctor.call(this);\r\n } else if (Bridge.isFunction(Class.$base.constructor)) {\r\n Class.$base.constructor.call(this);\r\n }\r\n }\r\n };\r\n }\r\n\r\n prop.ctor = Class;\r\n } else {\r\n Class = cls;\r\n }\r\n\r\n if (prop.$literal) {\r\n if ((!statics || !statics.createInstance)) {\r\n Class.createInstance = function () {\r\n var obj = {};\r\n\r\n obj.$getType = function () { return Class };\r\n\r\n return obj;\r\n };\r\n }\r\n\r\n Class.$literal = true;\r\n delete prop.$literal;\r\n }\r\n\r\n if (!isGenericInstance && registerT) {\r\n scope = Bridge.Class.set(scope, className, Class);\r\n }\r\n\r\n if (gCfg) {\r\n gCfg.fn.$cache.push({ type: Class, args: gCfg.args });\r\n }\r\n\r\n Class.$$name = className;\r\n\r\n if (isNested) {\r\n var lastIndex = Class.$$name.lastIndexOf(\".\");\r\n\r\n Class.$$name = Class.$$name.substr(0, lastIndex) + \"+\" + Class.$$name.substr(lastIndex + 1)\r\n }\r\n\r\n Class.$kind = prop.$kind;\r\n\r\n if (prop.$module) {\r\n Class.$module = prop.$module;\r\n }\r\n\r\n if (prop.$metadata) {\r\n Class.$metadata = prop.$metadata;\r\n }\r\n\r\n if (gCfg && isGenericInstance) {\r\n Class.$genericTypeDefinition = gCfg.fn;\r\n Class.$typeArguments = gCfg.args;\r\n Class.$assembly = gCfg.fn.$assembly || Bridge.$currentAssembly;\r\n\r\n var result = Bridge.Reflection.getTypeFullName(gCfg.fn);\r\n\r\n for (i = 0; i < gCfg.args.length; i++) {\r\n result += (i === 0 ? \"[\" : \",\") + \"[\" + Bridge.Reflection.getTypeQName(gCfg.args[i]) + \"]\";\r\n }\r\n\r\n result += \"]\";\r\n\r\n Class.$$fullname = result;\r\n } else {\r\n Class.$$fullname = Class.$$name;\r\n }\r\n\r\n if (extend && Bridge.isFunction(extend)) {\r\n extend = extend();\r\n }\r\n\r\n Bridge.Class.createInheritors(Class, extend);\r\n\r\n var noBase = extend ? extend[0].$kind === \"interface\" : true;\r\n\r\n if (noBase) {\r\n extend = null;\r\n }\r\n\r\n base = extend ? extend[0].prototype : this.prototype;\r\n Class.$base = base;\r\n\r\n if (extend && !extend[0].$$initCtor) {\r\n var cls = extend[0];\r\n var $$initCtor = function () { };\r\n $$initCtor.prototype = cls.prototype;\r\n $$initCtor.prototype.constructor = cls;\r\n $$initCtor.prototype.$$fullname = Bridge.Reflection.getTypeFullName(cls);\r\n\r\n prototype = new $$initCtor();\r\n }\r\n else {\r\n prototype = extend ? new extend[0].$$initCtor() : (objectType.$$initCtor ? new objectType.$$initCtor() : new objectType());\r\n }\r\n\r\n Class.$$initCtor = function () { };\r\n Class.$$initCtor.prototype = prototype;\r\n Class.$$initCtor.prototype.constructor = Class;\r\n Class.$$initCtor.prototype.$$fullname = gCfg && isGenericInstance ? Class.$$fullname : Class.$$name;\r\n\r\n if (statics) {\r\n var staticsConfig = statics.$config || statics.config;\r\n\r\n if (staticsConfig && !Bridge.isFunction(staticsConfig)) {\r\n Bridge.Class.initConfig(extend, base, staticsConfig, true, Class);\r\n\r\n if (statics.$config) {\r\n delete statics.$config;\r\n } else {\r\n delete statics.config;\r\n }\r\n }\r\n }\r\n\r\n var instanceConfig = prop.$config || prop.config;\r\n\r\n if (instanceConfig && !Bridge.isFunction(instanceConfig)) {\r\n Bridge.Class.initConfig(extend, base, instanceConfig, false, prop, prototype);\r\n\r\n if (prop.$config) {\r\n delete prop.$config;\r\n } else {\r\n delete prop.config;\r\n }\r\n } else if (extend && base.$initMembers) {\r\n prop.$initMembers = function () {\r\n base.$initMembers.call(this);\r\n };\r\n }\r\n\r\n prop.$initialize = Bridge.Class._initialize;\r\n\r\n var keys = [];\r\n\r\n for (name in prop) {\r\n keys.push(name);\r\n }\r\n\r\n for (i = 0; i < keys.length; i++) {\r\n name = keys[i];\r\n\r\n v = prop[name];\r\n isCtor = name === \"ctor\";\r\n ctorName = name;\r\n\r\n if (Bridge.isFunction(v) && (isCtor || name.match(\"^\\\\$ctor\") !== null)) {\r\n isCtor = true;\r\n }\r\n\r\n var member = prop[name];\r\n\r\n if (isCtor) {\r\n Class[ctorName] = member;\r\n Class[ctorName].prototype = prototype;\r\n Class[ctorName].prototype.constructor = Class;\r\n prototype[ctorName] = member;\r\n } else {\r\n prototype[ctorName] = member;\r\n }\r\n }\r\n\r\n prototype.$$name = className;\r\n\r\n if (!prototype.toJSON) {\r\n prototype.toJSON = Bridge.Class.toJSON;\r\n }\r\n\r\n if (statics) {\r\n for (name in statics) {\r\n var member = statics[name];\r\n\r\n if (name === \"ctor\") {\r\n Class[\"$ctor\"] = member;\r\n } else {\r\n if (prop.$kind === \"enum\" && !Bridge.isFunction(member) && name.charAt(0) !== \"$\") {\r\n Class.$names = Class.$names || [];\r\n Class.$names.push({name: name, value: member});\r\n }\r\n\r\n Class[name] = member;\r\n }\r\n }\r\n\r\n if (prop.$kind === \"enum\" && Class.$names) {\r\n Class.$names = Class.$names.sort(function (i1, i2) {\r\n if (Bridge.isFunction(i1.value.eq)) {\r\n return i1.value.sub(i2.value).sign();\r\n }\r\n\r\n return i1.value - i2.value;\r\n }).map(function (i) {\r\n return i.name;\r\n });\r\n }\r\n }\r\n\r\n if (!extend) {\r\n extend = [objectType].concat(Class.$interfaces);\r\n }\r\n\r\n Bridge.Class.setInheritors(Class, extend);\r\n\r\n fn = function () {\r\n if (Bridge.Class.staticInitAllow && !Class.$isGenericTypeDefinition) {\r\n Class.$staticInit = null;\r\n\r\n if (Class.$initMembers) {\r\n Class.$initMembers();\r\n }\r\n\r\n if (Class.$ctor) {\r\n Class.$ctor();\r\n }\r\n }\r\n };\r\n\r\n if (isEntryPoint || Bridge.isFunction(prototype.$main)) {\r\n if (prototype.$main) {\r\n var entryName = prototype.$main.name || \"Main\";\r\n\r\n if (!Class[entryName]) {\r\n Class[entryName] = prototype.$main;\r\n }\r\n }\r\n\r\n Bridge.Class.$queueEntry.push(Class);\r\n }\r\n\r\n Class.$staticInit = fn;\r\n\r\n if (!isGenericInstance && registerT) {\r\n Bridge.Class.registerType(className, Class);\r\n }\r\n\r\n if (Bridge.Reflection) {\r\n Class.$getMetadata = Bridge.Reflection.getMetadata;\r\n }\r\n\r\n if (Class.$kind === \"enum\") {\r\n if (!Class.prototype.$utype) {\r\n Class.prototype.$utype = System.Int32;\r\n }\r\n Class.$is = function (instance) {\r\n var utype = Class.prototype.$utype;\r\n\r\n if (utype === String) {\r\n return typeof (instance) == \"string\";\r\n }\r\n\r\n if (utype && utype.$is) {\r\n return utype.$is(instance);\r\n }\r\n\r\n return typeof (instance) == \"number\";\r\n };\r\n\r\n Class.getDefaultValue = function () {\r\n var utype = Class.prototype.$utype;\r\n\r\n if (utype === String || utype === System.String) {\r\n return null;\r\n }\r\n\r\n return 0;\r\n };\r\n }\r\n\r\n if (Class.$kind === \"interface\") {\r\n if (Class.prototype.$variance) {\r\n Class.isAssignableFrom = Bridge.Class.varianceAssignable;\r\n }\r\n\r\n Class.$isInterface = true;\r\n }\r\n\r\n return Class;\r\n },\r\n\r\n toCtorString: function () {\r\n return Bridge.Reflection.getTypeName(this);\r\n },\r\n\r\n createInheritors: function (cls, extend) {\r\n var interfaces = [],\r\n baseInterfaces = [],\r\n descriptors = [],\r\n aliases = [];\r\n\r\n if (extend) {\r\n for (var j = 0; j < extend.length; j++) {\r\n var baseType = extend[j],\r\n baseI = (baseType.$interfaces || []).concat(baseType.$baseInterfaces || []),\r\n baseDescriptors = baseType.$descriptors,\r\n baseAliases = baseType.$aliases;\r\n\r\n if (baseDescriptors && baseDescriptors.length > 0) {\r\n for (var d = 0; d < baseDescriptors.length; d++) {\r\n descriptors.push(baseDescriptors[d]);\r\n }\r\n }\r\n\r\n if (baseAliases && baseAliases.length > 0) {\r\n for (var d = 0; d < baseAliases.length; d++) {\r\n aliases.push(baseAliases[d]);\r\n }\r\n }\r\n\r\n if (baseI.length > 0) {\r\n for (var k = 0; k < baseI.length; k++) {\r\n if (baseInterfaces.indexOf(baseI[k]) < 0) {\r\n baseInterfaces.push(baseI[k]);\r\n }\r\n }\r\n }\r\n\r\n if (baseType.$kind === \"interface\") {\r\n interfaces.push(baseType);\r\n }\r\n }\r\n }\r\n\r\n cls.$descriptors = descriptors;\r\n cls.$aliases = aliases;\r\n cls.$baseInterfaces = baseInterfaces;\r\n cls.$interfaces = interfaces;\r\n cls.$allInterfaces = interfaces.concat(baseInterfaces);\r\n },\r\n\r\n toJSON: function () {\r\n var obj = {},\r\n t = Bridge.getType(this),\r\n descriptors = t.$descriptors || [];\r\n\r\n for (var key in this) {\r\n var own = this.hasOwnProperty(key),\r\n descriptor = null;\r\n\r\n if (!own) {\r\n for (var i = descriptors.length - 1; i >= 0; i--) {\r\n if (descriptors[i].name === key) {\r\n descriptor = descriptors[i];\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n var dcount = key.split(\"$\").length;\r\n\r\n if ((own || descriptor != null) && (dcount === 1 || dcount === 2 && key.match(\"\\$\\d+$\"))) {\r\n obj[key] = this[key];\r\n }\r\n }\r\n\r\n return obj;\r\n },\r\n\r\n setInheritors: function (cls, extend) {\r\n cls.$$inherits = extend;\r\n\r\n for (var i = 0; i < extend.length; i++) {\r\n var scope = extend[i];\r\n\r\n if (!scope.$$inheritors) {\r\n scope.$$inheritors = [];\r\n }\r\n\r\n scope.$$inheritors.push(cls);\r\n }\r\n },\r\n\r\n varianceAssignable: function (source) {\r\n var check = function (target, type) {\r\n if (type.$genericTypeDefinition === target.$genericTypeDefinition && type.$typeArguments.length === target.$typeArguments.length) {\r\n for (var i = 0; i < target.$typeArguments.length; i++) {\r\n var v = target.prototype.$variance[i], t = target.$typeArguments[i], s = type.$typeArguments[i];\r\n\r\n switch (v) {\r\n case 1: if (!Bridge.Reflection.isAssignableFrom(t, s))\r\n return false;\r\n\r\n break;\r\n case 2: if (!Bridge.Reflection.isAssignableFrom(s, t))\r\n return false;\r\n\r\n break;\r\n default: if (s !== t)\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n if (source.$kind === \"interface\" && check(this, source)) {\r\n return true;\r\n }\r\n\r\n var ifs = Bridge.Reflection.getInterfaces(source);\r\n\r\n for (var i = 0; i < ifs.length; i++) {\r\n if (ifs[i] === this || check(this, ifs[i])) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n\r\n registerType: function (className, cls) {\r\n if (Bridge.$currentAssembly) {\r\n Bridge.$currentAssembly.$types[className] = cls;\r\n cls.$assembly = Bridge.$currentAssembly;\r\n }\r\n },\r\n\r\n addExtend: function (cls, extend) {\r\n var i,\r\n scope;\r\n\r\n Array.prototype.push.apply(cls.$$inherits, extend);\r\n cls.$interfaces = cls.$interfaces || [];\r\n cls.$baseInterfaces = cls.$baseInterfaces || [];\r\n\r\n for (i = 0; i < extend.length; i++) {\r\n scope = extend[i];\r\n\r\n if (!scope.$$inheritors) {\r\n scope.$$inheritors = [];\r\n }\r\n\r\n scope.$$inheritors.push(cls);\r\n\r\n var baseI = (scope.$interfaces || []).concat(scope.$baseInterfaces || []);\r\n\r\n if (baseI.length > 0) {\r\n for (var k = 0; k < baseI.length; k++) {\r\n if (cls.$baseInterfaces.indexOf(baseI[k]) < 0) {\r\n cls.$baseInterfaces.push(baseI[k]);\r\n }\r\n }\r\n }\r\n\r\n if (scope.$kind === \"interface\") {\r\n cls.$interfaces.push(scope);\r\n }\r\n }\r\n\r\n cls.$allInterfaces = cls.$interfaces.concat(cls.$baseInterfaces);\r\n },\r\n\r\n set: function (scope, className, cls, noDefineProp) {\r\n var nameParts = className.split(\".\"),\r\n name,\r\n key,\r\n exists,\r\n i;\r\n\r\n for (i = 0; i < (nameParts.length - 1) ; i++) {\r\n if (typeof scope[nameParts[i]] == \"undefined\") {\r\n scope[nameParts[i]] = {};\r\n }\r\n\r\n scope = scope[nameParts[i]];\r\n }\r\n\r\n name = nameParts[nameParts.length - 1];\r\n exists = scope[name];\r\n\r\n if (exists) {\r\n if (exists.$$name === className) {\r\n throw \"Class '\" + className + \"' is already defined\";\r\n }\r\n\r\n for (key in exists) {\r\n var o = exists[key];\r\n\r\n if (typeof o === \"function\" && o.$$name) {\r\n (function (cls, key, o) {\r\n Object.defineProperty(cls, key, {\r\n get: function () {\r\n if (Bridge.Class.staticInitAllow) {\r\n if (o.$staticInit) {\r\n o.$staticInit();\r\n }\r\n\r\n Bridge.Class.defineProperty(cls, key, o);\r\n }\r\n\r\n return o;\r\n },\r\n\r\n set: function (newValue) {\r\n o = newValue;\r\n },\r\n\r\n enumerable: true,\r\n\r\n configurable: true\r\n });\r\n })(cls, key, o);\r\n }\r\n }\r\n }\r\n\r\n if (noDefineProp !== true) {\r\n (function (scope, name, cls) {\r\n Object.defineProperty(scope, name, {\r\n get: function () {\r\n if (Bridge.Class.staticInitAllow) {\r\n if (cls.$staticInit) {\r\n cls.$staticInit();\r\n }\r\n\r\n Bridge.Class.defineProperty(scope, name, cls);\r\n }\r\n\r\n return cls;\r\n },\r\n\r\n set: function (newValue) {\r\n cls = newValue;\r\n },\r\n\r\n enumerable: true,\r\n\r\n configurable: true\r\n });\r\n })(scope, name, cls);\r\n } else {\r\n scope[name] = cls;\r\n }\r\n\r\n return scope;\r\n },\r\n\r\n defineProperty: function (scope, name, cls) {\r\n Object.defineProperty(scope, name, {\r\n value: cls,\r\n enumerable: true,\r\n configurable: true\r\n });\r\n },\r\n\r\n genericName: function (name, typeArguments) {\r\n var gName = name;\r\n\r\n for (var i = 0; i < typeArguments.length; i++) {\r\n var ta = typeArguments[i];\r\n\r\n gName += \"$\" + (ta.$$name || Bridge.getTypeName(ta));\r\n }\r\n\r\n return gName;\r\n },\r\n\r\n getCachedType: function (fn, args) {\r\n var arr = fn.$cache,\r\n len = arr.length,\r\n key,\r\n found,\r\n i, g;\r\n\r\n for (i = 0; i < len; i++) {\r\n key = arr[i];\r\n\r\n if (key.args.length === args.length) {\r\n found = true;\r\n\r\n for (g = 0; g < key.args.length; g++) {\r\n if (key.args[g] !== args[g]) {\r\n found = false;\r\n\r\n break;\r\n }\r\n }\r\n\r\n if (found) {\r\n return key;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n },\r\n\r\n generic: function (className, scope, fn, prop) {\r\n fn.$$name = className;\r\n fn.$kind = \"class\";\r\n\r\n Bridge.Class.set(scope, className, fn, true);\r\n Bridge.Class.registerType(className, fn);\r\n\r\n fn.$typeArgumentCount = prop.length;\r\n fn.$isGenericTypeDefinition = true;\r\n fn.$getMetadata = Bridge.Reflection.getMetadata;\r\n\r\n fn.$staticInit = function () {\r\n fn.$typeArguments = Bridge.Reflection.createTypeParams(prop);\r\n\r\n var old = Bridge.Class.staticInitAllow,\r\n oldIsBlocked = Bridge.Class.queueIsBlocked;\r\n\r\n Bridge.Class.staticInitAllow = false;\r\n Bridge.Class.queueIsBlocked = true;\r\n\r\n var cfg = prop.apply(null, fn.$typeArguments),\r\n extend = cfg.$inherits || cfg.inherits;\r\n\r\n Bridge.Class.staticInitAllow = old;\r\n Bridge.Class.queueIsBlocked = oldIsBlocked;\r\n\r\n if (extend && Bridge.isFunction(extend)) {\r\n extend = extend();\r\n }\r\n\r\n Bridge.Class.createInheritors(fn, extend);\r\n\r\n var objectType = Bridge.global.System && Bridge.global.System.Object || Object;\r\n\r\n if (!extend) {\r\n extend = [objectType].concat(fn.$interfaces);\r\n }\r\n\r\n Bridge.Class.setInheritors(fn, extend);\r\n\r\n var prototype = extend ? (extend[0].$$initCtor ? new extend[0].$$initCtor() : new extend[0]()) : new objectType();\r\n\r\n fn.prototype = prototype;\r\n fn.prototype.constructor = fn;\r\n fn.$kind = cfg.$kind || \"class\";\r\n\r\n if (cfg.$module) {\r\n fn.$module = cfg.$module;\r\n }\r\n };\r\n\r\n Bridge.Class.$queue.push(fn);\r\n\r\n return fn;\r\n },\r\n\r\n init: function (fn) {\r\n if (Bridge.Reflection) {\r\n var metas = Bridge.Reflection.deferredMeta,\r\n len = metas.length;\r\n\r\n if (len > 0) {\r\n Bridge.Reflection.deferredMeta = [];\r\n\r\n for (var i = 0; i < len; i++) {\r\n var item = metas[i];\r\n\r\n Bridge.setMetadata(item.typeName, item.metadata, item.ns);\r\n }\r\n }\r\n }\r\n\r\n if (fn) {\r\n var old = Bridge.Class.staticInitAllow;\r\n\r\n Bridge.Class.staticInitAllow = true;\r\n fn();\r\n Bridge.Class.staticInitAllow = old;\r\n\r\n return;\r\n }\r\n\r\n Bridge.Class.staticInitAllow = true;\r\n\r\n var queue = Bridge.Class.$queue.concat(Bridge.Class.$queueEntry);\r\n\r\n Bridge.Class.$queue.length = 0;\r\n Bridge.Class.$queueEntry.length = 0;\r\n\r\n for (var i = 0; i < queue.length; i++) {\r\n var t = queue[i];\r\n\r\n if (t.$staticInit) {\r\n t.$staticInit();\r\n }\r\n\r\n if (t.prototype.$main) {\r\n (function (cls, name) {\r\n Bridge.ready(function () {\r\n var task = cls[name]();\r\n\r\n if (task && task.continueWith) {\r\n task.continueWith(function () {\r\n setTimeout(function () {\r\n task.getAwaitedResult();\r\n }, 0);\r\n });\r\n }\r\n });\r\n })(t, t.prototype.$main.name || \"Main\");\r\n\r\n t.prototype.$main = null;\r\n }\r\n }\r\n }\r\n };\r\n\r\n Bridge.Class = base;\r\n Bridge.Class.$queue = [];\r\n Bridge.Class.$queueEntry = [];\r\n Bridge.define = Bridge.Class.define;\r\n Bridge.definei = Bridge.Class.definei;\r\n Bridge.init = Bridge.Class.init;\r\n\r\n // @source ReflectionAssembly.js\r\n\r\n Bridge.assembly = function (assemblyName, res, callback, restore) {\r\n if (!callback) {\r\n callback = res;\r\n res = {};\r\n }\r\n\r\n assemblyName = assemblyName || \"Bridge.$Unknown\";\r\n\r\n var asm = System.Reflection.Assembly.assemblies[assemblyName];\r\n\r\n if (!asm) {\r\n asm = new System.Reflection.Assembly(assemblyName, res);\r\n } else {\r\n Bridge.apply(asm.res, res || {});\r\n }\r\n\r\n var oldAssembly = Bridge.$currentAssembly;\r\n\r\n Bridge.$currentAssembly = asm;\r\n\r\n if (callback) {\r\n var old = Bridge.Class.staticInitAllow;\r\n Bridge.Class.staticInitAllow = false;\r\n\r\n callback.call(Bridge.global, asm, Bridge.global);\r\n\r\n Bridge.Class.staticInitAllow = old;\r\n }\r\n\r\n Bridge.init();\r\n\r\n if (restore) {\r\n Bridge.$currentAssembly = oldAssembly;\r\n }\r\n };\r\n\r\n Bridge.define(\"System.Reflection.Assembly\", {\r\n statics: {\r\n assemblies: {}\r\n },\r\n\r\n ctor: function (name, res) {\r\n this.$initialize();\r\n this.name = name;\r\n this.res = res || {};\r\n this.$types = {};\r\n this.$ = {};\r\n\r\n System.Reflection.Assembly.assemblies[name] = this;\r\n },\r\n\r\n toString: function () {\r\n return this.name;\r\n },\r\n\r\n getManifestResourceNames: function () {\r\n return Object.keys(this.res);\r\n },\r\n\r\n getManifestResourceDataAsBase64: function (type, name) {\r\n if (arguments.length === 1) {\r\n name = type;\r\n type = null;\r\n }\r\n\r\n if (type) {\r\n name = Bridge.Reflection.getTypeNamespace(type) + \".\" + name;\r\n }\r\n\r\n return this.res[name] || null;\r\n },\r\n\r\n getManifestResourceData: function (type, name) {\r\n if (arguments.length === 1) {\r\n name = type;\r\n type = null;\r\n }\r\n\r\n if (type) {\r\n name = Bridge.Reflection.getTypeNamespace(type) + '.' + name;\r\n }\r\n\r\n var r = this.res[name];\r\n\r\n return r ? System.Convert.fromBase64String(r) : null;\r\n },\r\n\r\n getCustomAttributes: function (attributeType) {\r\n if (this.attr && attributeType && !Bridge.isBoolean(attributeType)) {\r\n return this.attr.filter(function (a) {\r\n return Bridge.is(a, attributeType);\r\n });\r\n }\r\n\r\n return this.attr || [];\r\n }\r\n });\r\n\r\n Bridge.$currentAssembly = new System.Reflection.Assembly(\"mscorlib\");\r\n Bridge.SystemAssembly = Bridge.$currentAssembly;\r\n Bridge.SystemAssembly.$types[\"System.Reflection.Assembly\"] = System.Reflection.Assembly;\r\n System.Reflection.Assembly.$assembly = Bridge.SystemAssembly;\r\n\r\n var $asm = Bridge.$currentAssembly;\r\n\r\n // @source Object.js\r\n\r\n Bridge.define(\"System.Object\", { });\r\n\r\n // @source Void.js\r\n\r\n Bridge.define(\"System.Void\", {\r\n $kind: \"struct\",\r\n statics: {\r\n methods: {\r\n getDefaultValue: function () { return new System.Void(); }\r\n }\r\n },\r\n methods: {\r\n $clone: function (to) { return this; }\r\n }\r\n });\r\n\r\n // @source SystemAssemblyVersion.js\r\n\r\n Bridge.init(function () {\r\n Bridge.SystemAssembly.version = \"17.10.1\";\r\n Bridge.SystemAssembly.compiler = \"17.10.1\";\r\n });\r\n\r\n Bridge.define(\"Bridge.Utils.SystemAssemblyVersion\");\r\n\r\n // @source Reflection.js\r\n\r\n Bridge.Reflection = {\r\n deferredMeta: [],\r\n\r\n setMetadata: function (type, metadata, ns) {\r\n if (Bridge.isString(type)) {\r\n var typeName = type;\r\n type = Bridge.unroll(typeName);\r\n\r\n if (type == null) {\r\n Bridge.Reflection.deferredMeta.push({ typeName: typeName, metadata: metadata, ns: ns });\r\n return;\r\n }\r\n }\r\n\r\n ns = Bridge.unroll(ns);\r\n type.$getMetadata = Bridge.Reflection.getMetadata;\r\n type.$metadata = metadata;\r\n },\r\n\r\n initMetaData: function (type, metadata) {\r\n if (metadata.m) {\r\n for (var i = 0; i < metadata.m.length; i++) {\r\n var m = metadata.m[i];\r\n\r\n m.td = type;\r\n\r\n if (m.ad) {\r\n m.ad.td = type;\r\n }\r\n\r\n if (m.r) {\r\n m.r.td = type;\r\n }\r\n\r\n if (m.g) {\r\n m.g.td = type;\r\n }\r\n\r\n if (m.s) {\r\n m.s.td = type;\r\n }\r\n\r\n if (m.tprm && Bridge.isArray(m.tprm)) {\r\n for (var j = 0; j < m.tprm.length; j++) {\r\n m.tprm[j] = Bridge.Reflection.createTypeParam(m.tprm[j], type, m, j);\r\n }\r\n }\r\n }\r\n }\r\n\r\n type.$metadata = metadata;\r\n type.$initMetaData = true;\r\n },\r\n\r\n getMetadata: function () {\r\n if (!this.$metadata && this.$genericTypeDefinition) {\r\n this.$metadata = this.$genericTypeDefinition.$factoryMetadata || this.$genericTypeDefinition.$metadata;\r\n }\r\n\r\n var metadata = this.$metadata;\r\n\r\n if (typeof (metadata) === \"function\") {\r\n if (this.$isGenericTypeDefinition && !this.$factoryMetadata) {\r\n this.$factoryMetadata = this.$metadata;\r\n }\r\n\r\n if (this.$typeArguments) {\r\n metadata = this.$metadata.apply(null, this.$typeArguments);\r\n } else if (this.$isGenericTypeDefinition) {\r\n var arr = Bridge.Reflection.createTypeParams(this.$metadata);\r\n this.$typeArguments = arr;\r\n metadata = this.$metadata.apply(null, arr);\r\n } else {\r\n metadata = this.$metadata();\r\n }\r\n }\r\n\r\n if (!this.$initMetaData && metadata) {\r\n Bridge.Reflection.initMetaData(this, metadata);\r\n }\r\n\r\n return metadata;\r\n },\r\n\r\n createTypeParams: function (fn, t) {\r\n var args,\r\n names = [],\r\n fnStr = fn.toString();\r\n\r\n args = fnStr.slice(fnStr.indexOf(\"(\") + 1, fnStr.indexOf(\")\")).match(/([^\\s,]+)/g) || [];\r\n\r\n for (var i = 0; i < args.length; i++) {\r\n names.push(Bridge.Reflection.createTypeParam(args[i], t, null, i));\r\n }\r\n\r\n return names;\r\n },\r\n\r\n createTypeParam: function (name, t, m, idx) {\r\n var fn = function TypeParameter() { };\r\n\r\n fn.$$name = name;\r\n fn.$isTypeParameter = true;\r\n\r\n if (t) {\r\n fn.td = t;\r\n }\r\n\r\n if (m) {\r\n fn.md = m;\r\n }\r\n\r\n if (idx != null) {\r\n fn.gPrmPos = idx;\r\n }\r\n\r\n return fn;\r\n },\r\n\r\n load: function (name) {\r\n return System.Reflection.Assembly.assemblies[name] || require(name);\r\n },\r\n\r\n getGenericTypeDefinition: function (type) {\r\n if (type.$isGenericTypeDefinition) {\r\n return type;\r\n }\r\n\r\n if (!type.$genericTypeDefinition) {\r\n throw new System.InvalidOperationException.$ctor1(\"This operation is only valid on generic types.\");\r\n }\r\n\r\n return type.$genericTypeDefinition;\r\n },\r\n\r\n getGenericParameterCount: function (type) {\r\n return type.$typeArgumentCount || 0;\r\n },\r\n\r\n getGenericArguments: function (type) {\r\n return type.$typeArguments || [];\r\n },\r\n\r\n getMethodGenericArguments: function (m) {\r\n return m.tprm || [];\r\n },\r\n\r\n isGenericTypeDefinition: function (type) {\r\n return type.$isGenericTypeDefinition || false;\r\n },\r\n\r\n isGenericType: function (type) {\r\n return type.$genericTypeDefinition != null || Bridge.Reflection.isGenericTypeDefinition(type);\r\n },\r\n\r\n convertType: function (type) {\r\n if (type === Boolean) {\r\n return System.Boolean;\r\n }\r\n\r\n if (type === String) {\r\n return System.String;\r\n }\r\n\r\n if (type === Object) {\r\n return System.Object;\r\n }\r\n\r\n if (type === Date) {\r\n return System.DateTime;\r\n }\r\n\r\n return type;\r\n },\r\n\r\n getBaseType: function (type) {\r\n if (Bridge.isObject(type) || Bridge.Reflection.isInterface(type) || type.prototype == null) {\r\n return null;\r\n } else if (Object.getPrototypeOf) {\r\n return Bridge.Reflection.convertType(Object.getPrototypeOf(type.prototype).constructor);\r\n } else {\r\n var p = type.prototype;\r\n\r\n if (Object.prototype.hasOwnProperty.call(p, \"constructor\")) {\r\n var ownValue;\r\n\r\n try {\r\n ownValue = p.constructor;\r\n delete p.constructor;\r\n return Bridge.Reflection.convertType(p.constructor);\r\n } finally {\r\n p.constructor = ownValue;\r\n }\r\n }\r\n\r\n return Bridge.Reflection.convertType(p.constructor);\r\n }\r\n },\r\n\r\n getTypeFullName: function (obj) {\r\n var str;\r\n\r\n if (obj.$$fullname) {\r\n str = obj.$$fullname;\r\n } else if (obj.$$name) {\r\n str = obj.$$name;\r\n }\r\n\r\n if (str) {\r\n var ns = Bridge.Reflection.getTypeNamespace(obj, str);\r\n\r\n if (ns) {\r\n var idx = str.indexOf(\"[\");\r\n var name = str.substring(ns.length + 1, idx === -1 ? str.length : idx);\r\n\r\n if (new RegExp(/[\\.\\$]/).test(name)) {\r\n str = ns + \".\" + name.replace(/\\.|\\$/g, function (match) { return (match === \".\") ? \"+\" : \"`\"; }) + (idx === -1 ? \"\" : str.substring(idx));\r\n }\r\n }\r\n\r\n return str;\r\n }\r\n\r\n if (obj.constructor === Object) {\r\n str = obj.toString();\r\n\r\n var match = (/\\[object (.{1,})\\]/).exec(str);\r\n var name = (match && match.length > 1) ? match[1] : \"Object\";\r\n\r\n return name == \"Object\" ? \"System.Object\" : name;\r\n } else if (obj.constructor === Function) {\r\n str = obj.toString();\r\n } else {\r\n str = obj.constructor.toString();\r\n }\r\n\r\n var results = (/function (.{1,})\\(/).exec(str);\r\n\r\n if ((results && results.length > 1)) {\r\n return results[1];\r\n }\r\n\r\n return \"System.Object\";\r\n },\r\n\r\n _makeQName: function (name, asm) {\r\n return name + (asm ? \", \" + asm.name : \"\");\r\n },\r\n\r\n getTypeQName: function (type) {\r\n return Bridge.Reflection._makeQName(Bridge.Reflection.getTypeFullName(type), type.$assembly);\r\n },\r\n\r\n getTypeName: function (type) {\r\n var fullName = Bridge.Reflection.getTypeFullName(type),\r\n bIndex = fullName.indexOf(\"[\"),\r\n pIndex = fullName.lastIndexOf(\"+\", bIndex >= 0 ? bIndex : fullName.length),\r\n nsIndex = pIndex > -1 ? pIndex : fullName.lastIndexOf(\".\", bIndex >= 0 ? bIndex : fullName.length);\r\n\r\n var name = nsIndex > 0 ? (bIndex >= 0 ? fullName.substring(nsIndex + 1, bIndex) : fullName.substr(nsIndex + 1)) : fullName;\r\n\r\n return type.$isArray ? name + \"[]\" : name;\r\n },\r\n\r\n getTypeNamespace: function (type, name) {\r\n var fullName = name || Bridge.Reflection.getTypeFullName(type),\r\n bIndex = fullName.indexOf(\"[\"),\r\n nsIndex = fullName.lastIndexOf(\".\", bIndex >= 0 ? bIndex : fullName.length),\r\n ns = nsIndex > 0 ? fullName.substr(0, nsIndex) : \"\";\r\n\r\n if (type.$assembly) {\r\n var parentType = Bridge.Reflection._getAssemblyType(type.$assembly, ns);\r\n\r\n if (parentType) {\r\n ns = Bridge.Reflection.getTypeNamespace(parentType);\r\n }\r\n }\r\n\r\n return ns;\r\n },\r\n\r\n getTypeAssembly: function (type) {\r\n if (type.$isArray) {\r\n return Bridge.Reflection.getTypeAssembly(type.$elementType);\r\n }\r\n\r\n if (System.Array.contains([Date, Number, Boolean, String, Function, Array], type)) {\r\n return Bridge.SystemAssembly;\r\n }\r\n\r\n return type.$assembly || Bridge.SystemAssembly;\r\n },\r\n\r\n _extractArrayRank: function (name) {\r\n var rank = -1,\r\n m = (/<(\\d+)>$/g).exec(name);\r\n\r\n if (m) {\r\n name = name.substring(0, m.index);\r\n rank = parseInt(m[1]);\r\n }\r\n\r\n m = (/\\[(,*)\\]$/g).exec(name);\r\n\r\n if (m) {\r\n name = name.substring(0, m.index);\r\n rank = m[1].length + 1;\r\n }\r\n\r\n return {\r\n rank: rank,\r\n name: name\r\n };\r\n },\r\n\r\n _getAssemblyType: function (asm, name) {\r\n var noAsm = false,\r\n rank = -1;\r\n\r\n if (new RegExp(/[\\+\\`]/).test(name)) {\r\n name = name.replace(/\\+|\\`/g, function (match) { return match === \"+\" ? \".\" : \"$\"});\r\n }\r\n\r\n if (!asm) {\r\n asm = Bridge.SystemAssembly;\r\n noAsm = true;\r\n }\r\n\r\n var rankInfo = Bridge.Reflection._extractArrayRank(name);\r\n rank = rankInfo.rank;\r\n name = rankInfo.name;\r\n\r\n if (asm.$types) {\r\n var t = asm.$types[name] || null;\r\n\r\n if (t) {\r\n return rank > -1 ? System.Array.type(t, rank) : t;\r\n }\r\n\r\n if (asm.name === \"mscorlib\") {\r\n asm = Bridge.global;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n var a = name.split(\".\"),\r\n scope = asm;\r\n\r\n for (var i = 0; i < a.length; i++) {\r\n scope = scope[a[i]];\r\n\r\n if (!scope) {\r\n return null;\r\n }\r\n }\r\n\r\n if (typeof scope !== \"function\" || !noAsm && scope.$assembly && asm.name !== scope.$assembly.name) {\r\n return null;\r\n }\r\n\r\n return rank > -1 ? System.Array.type(scope, rank) : scope;\r\n },\r\n\r\n getAssemblyTypes: function (asm) {\r\n var result = [];\r\n\r\n if (asm.$types) {\r\n for (var t in asm.$types) {\r\n if (asm.$types.hasOwnProperty(t)) {\r\n result.push(asm.$types[t]);\r\n }\r\n }\r\n } else {\r\n var traverse = function (s, n) {\r\n for (var c in s) {\r\n if (s.hasOwnProperty(c)) {\r\n traverse(s[c], c);\r\n }\r\n }\r\n\r\n if (typeof (s) === \"function\" && Bridge.isUpper(n.charCodeAt(0))) {\r\n result.push(s);\r\n }\r\n };\r\n\r\n traverse(asm, \"\");\r\n }\r\n\r\n return result;\r\n },\r\n\r\n createAssemblyInstance: function (asm, typeName) {\r\n var t = Bridge.Reflection.getType(typeName, asm);\r\n\r\n return t ? Bridge.createInstance(t) : null;\r\n },\r\n\r\n getInterfaces: function (type) {\r\n var t;\r\n\r\n if (type.$allInterfaces) {\r\n return type.$allInterfaces;\r\n } else if (type === Date) {\r\n return [System.IComparable$1(Date), System.IEquatable$1(Date), System.IComparable, System.IFormattable];\r\n } else if (type === Number) {\r\n return [System.IComparable$1(Bridge.Int), System.IEquatable$1(Bridge.Int), System.IComparable, System.IFormattable];\r\n } else if (type === Boolean) {\r\n return [System.IComparable$1(Boolean), System.IEquatable$1(Boolean), System.IComparable];\r\n } else if (type === String) {\r\n return [System.IComparable$1(String), System.IEquatable$1(String), System.IComparable, System.ICloneable, System.Collections.IEnumerable, System.Collections.Generic.IEnumerable$1(System.Char)];\r\n } else if (type === Array || type.$isArray || (t = System.Array._typedArrays[Bridge.getTypeName(type)])) {\r\n t = t || type.$elementType || System.Object;\r\n return [System.Collections.IEnumerable, System.Collections.ICollection, System.ICloneable, System.Collections.IList, System.Collections.Generic.IEnumerable$1(t), System.Collections.Generic.ICollection$1(t), System.Collections.Generic.IList$1(t)];\r\n } else {\r\n return [];\r\n }\r\n },\r\n\r\n isInstanceOfType: function (instance, type) {\r\n return Bridge.is(instance, type);\r\n },\r\n\r\n isAssignableFrom: function (baseType, type) {\r\n if (baseType == null) {\r\n throw new System.NullReferenceException();\r\n }\r\n\r\n if (type == null) {\r\n return false;\r\n }\r\n\r\n if (baseType === type || Bridge.isObject(baseType)) {\r\n return true;\r\n }\r\n\r\n if (Bridge.isFunction(baseType.isAssignableFrom)) {\r\n return baseType.isAssignableFrom(type);\r\n }\r\n\r\n if (type === Array) {\r\n return System.Array.is([], baseType);\r\n }\r\n\r\n if (Bridge.Reflection.isInterface(baseType) && System.Array.contains(Bridge.Reflection.getInterfaces(type), baseType)) {\r\n return true;\r\n }\r\n\r\n if (baseType.$elementType && baseType.$isArray && type.$elementType && type.$isArray) {\r\n if (Bridge.Reflection.isValueType(baseType.$elementType) !== Bridge.Reflection.isValueType(type.$elementType)) {\r\n return false;\r\n }\r\n\r\n return baseType.$rank === type.$rank && Bridge.Reflection.isAssignableFrom(baseType.$elementType, type.$elementType);\r\n }\r\n\r\n var inheritors = type.$$inherits,\r\n i,\r\n r;\r\n\r\n if (inheritors) {\r\n for (i = 0; i < inheritors.length; i++) {\r\n r = Bridge.Reflection.isAssignableFrom(baseType, inheritors[i]);\r\n\r\n if (r) {\r\n return true;\r\n }\r\n }\r\n } else {\r\n return baseType.isPrototypeOf(type);\r\n }\r\n\r\n return false;\r\n },\r\n\r\n isClass: function (type) {\r\n return (type.$kind === \"class\" || type.$kind === \"nested class\" || type === Array || type === Function || type === RegExp || type === String || type === Error || type === Object);\r\n },\r\n\r\n isEnum: function (type) {\r\n return type.$kind === \"enum\";\r\n },\r\n\r\n isFlags: function (type) {\r\n return !!(type.prototype && type.prototype.$flags);\r\n },\r\n\r\n isInterface: function (type) {\r\n return type.$kind === \"interface\" || type.$kind === \"nested interface\";\r\n },\r\n\r\n isAbstract: function (type) {\r\n if (type === Function || type === System.Type) {\r\n return true;\r\n }\r\n return ((Bridge.Reflection.getMetaValue(type, \"att\", 0) & 128) != 0);\r\n },\r\n\r\n _getType: function (typeName, asm, re, noinit) {\r\n var outer = !re;\r\n\r\n if (outer) {\r\n typeName = typeName.replace(/\\[(,*)\\]/g, function (match, g1) {\r\n return \"<\" + (g1.length + 1) + \">\"\r\n });\r\n }\r\n\r\n var next = function () {\r\n for (; ;) {\r\n var m = re.exec(typeName);\r\n\r\n if (m && m[0] == \"[\" && (typeName[m.index + 1] === \"]\" || typeName[m.index + 1] === \",\")) {\r\n continue;\r\n }\r\n\r\n if (m && m[0] == \"]\" && (typeName[m.index - 1] === \"[\" || typeName[m.index - 1] === \",\")) {\r\n continue;\r\n }\r\n\r\n if (m && m[0] == \",\" && (typeName[m.index + 1] === \"]\" || typeName[m.index + 1] === \",\")) {\r\n continue;\r\n }\r\n\r\n return m;\r\n }\r\n };\r\n\r\n re = re || /[[,\\]]/g;\r\n\r\n var last = re.lastIndex,\r\n m = next(),\r\n tname,\r\n targs = [],\r\n t,\r\n noasm = !asm;\r\n\r\n //asm = asm || Bridge.$currentAssembly;\r\n\r\n if (m) {\r\n tname = typeName.substring(last, m.index);\r\n\r\n switch (m[0]) {\r\n case \"[\":\r\n if (typeName[m.index + 1] !== \"[\") {\r\n return null;\r\n }\r\n\r\n for (; ;) {\r\n next();\r\n t = Bridge.Reflection._getType(typeName, null, re);\r\n\r\n if (!t) {\r\n return null;\r\n }\r\n\r\n targs.push(t);\r\n m = next();\r\n\r\n if (m[0] === \"]\") {\r\n break;\r\n } else if (m[0] !== \",\") {\r\n return null;\r\n }\r\n }\r\n\r\n var arrMatch = (/^\\s*<(\\d+)>/g).exec(typeName.substring(m.index + 1));\r\n\r\n if (arrMatch) {\r\n tname = tname + \"<\" + parseInt(arrMatch[1]) + \">\";\r\n }\r\n\r\n m = next();\r\n\r\n if (m && m[0] === \",\") {\r\n next();\r\n\r\n if (!(asm = System.Reflection.Assembly.assemblies[(re.lastIndex > 0 ? typeName.substring(m.index + 1, re.lastIndex - 1) : typeName.substring(m.index + 1)).trim()])) {\r\n return null;\r\n }\r\n }\r\n break;\r\n\r\n case \"]\":\r\n break;\r\n\r\n case \",\":\r\n next();\r\n\r\n if (!(asm = System.Reflection.Assembly.assemblies[(re.lastIndex > 0 ? typeName.substring(m.index + 1, re.lastIndex - 1) : typeName.substring(m.index + 1)).trim()])) {\r\n return null;\r\n }\r\n\r\n break;\r\n }\r\n } else {\r\n tname = typeName.substring(last);\r\n }\r\n\r\n if (outer && re.lastIndex) {\r\n return null;\r\n }\r\n\r\n tname = tname.trim();\r\n\r\n var rankInfo = Bridge.Reflection._extractArrayRank(tname);\r\n var rank = rankInfo.rank;\r\n\r\n tname = rankInfo.name;\r\n\r\n t = Bridge.Reflection._getAssemblyType(asm, tname);\r\n\r\n if (noinit) {\r\n return t;\r\n }\r\n\r\n if (!t && noasm) {\r\n for (var asmName in System.Reflection.Assembly.assemblies) {\r\n if (System.Reflection.Assembly.assemblies.hasOwnProperty(asmName) && System.Reflection.Assembly.assemblies[asmName] !== asm) {\r\n t = Bridge.Reflection._getType(typeName, System.Reflection.Assembly.assemblies[asmName], null,true);\r\n\r\n if (t) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n t = targs.length ? t.apply(null, targs) : t;\r\n\r\n if (t && t.$staticInit) {\r\n t.$staticInit();\r\n }\r\n\r\n if (rank > -1) {\r\n t = System.Array.type(t, rank);\r\n }\r\n\r\n return t;\r\n },\r\n\r\n getType: function (typeName, asm) {\r\n if (typeName == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"typeName\");\r\n }\r\n\r\n return typeName ? Bridge.Reflection._getType(typeName, asm) : null;\r\n },\r\n\r\n isPrimitive: function (type) {\r\n if (type === System.Int64 ||\r\n type === System.UInt64 ||\r\n type === System.Double ||\r\n type === System.Single ||\r\n type === System.Byte ||\r\n type === System.SByte ||\r\n type === System.Int16 ||\r\n type === System.UInt16 ||\r\n type === System.Int32 ||\r\n type === System.UInt32 ||\r\n type === System.Boolean ||\r\n type === Boolean ||\r\n type === System.Char ||\r\n type === Number) {\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n canAcceptNull: function (type) {\r\n if (type.$kind === \"struct\" ||\r\n type.$kind === \"enum\" ||\r\n type === System.Decimal ||\r\n type === System.Int64 ||\r\n type === System.UInt64 ||\r\n type === System.Double ||\r\n type === System.Single ||\r\n type === System.Byte ||\r\n type === System.SByte ||\r\n type === System.Int16 ||\r\n type === System.UInt16 ||\r\n type === System.Int32 ||\r\n type === System.UInt32 ||\r\n type === Bridge.Int ||\r\n type === System.Boolean ||\r\n type === System.DateTime ||\r\n type === Boolean ||\r\n type === Date ||\r\n type === Number) {\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n applyConstructor: function (constructor, args) {\r\n if (!args || args.length === 0) {\r\n return new constructor();\r\n }\r\n\r\n if (constructor.$$initCtor && constructor.$kind !== \"anonymous\") {\r\n var md = Bridge.getMetadata(constructor),\r\n count = 0;\r\n\r\n if (md) {\r\n var ctors = Bridge.Reflection.getMembers(constructor, 1, 28),\r\n found;\r\n\r\n for (var j = 0; j < ctors.length; j++) {\r\n var ctor = ctors[j];\r\n\r\n if (ctor.p && ctor.p.length === args.length) {\r\n found = true;\r\n\r\n for (var k = 0; k < ctor.p.length; k++) {\r\n var p = ctor.p[k];\r\n\r\n if (!Bridge.is(args[k], p) || args[k] == null && !Bridge.Reflection.canAcceptNull(p)) {\r\n found = false;\r\n\r\n break;\r\n }\r\n }\r\n\r\n if (found) {\r\n constructor = constructor[ctor.sn];\r\n count++;\r\n }\r\n }\r\n }\r\n } else {\r\n if (Bridge.isFunction(constructor.ctor) && constructor.ctor.length === args.length) {\r\n constructor = constructor.ctor;\r\n } else {\r\n var name = \"$ctor\",\r\n i = 1;\r\n\r\n while (Bridge.isFunction(constructor[name + i])) {\r\n if (constructor[name + i].length === args.length) {\r\n constructor = constructor[name + i];\r\n count++;\r\n }\r\n\r\n i++;\r\n }\r\n }\r\n }\r\n\r\n if (count > 1) {\r\n throw new System.Exception(\"The ambiguous constructor call\");\r\n }\r\n }\r\n\r\n var f = function () {\r\n constructor.apply(this, args);\r\n };\r\n\r\n f.prototype = constructor.prototype;\r\n\r\n return new f();\r\n },\r\n\r\n getAttributes: function (type, attrType, inherit) {\r\n var result = [],\r\n i,\r\n t,\r\n a,\r\n md,\r\n type_md;\r\n\r\n if (inherit) {\r\n var b = Bridge.Reflection.getBaseType(type);\r\n\r\n if (b) {\r\n a = Bridge.Reflection.getAttributes(b, attrType, true);\r\n\r\n for (i = 0; i < a.length; i++) {\r\n t = Bridge.getType(a[i]);\r\n md = Bridge.getMetadata(t);\r\n\r\n if (!md || !md.ni) {\r\n result.push(a[i]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n type_md = Bridge.getMetadata(type);\r\n\r\n if (type_md && type_md.at) {\r\n for (i = 0; i < type_md.at.length; i++) {\r\n a = type_md.at[i];\r\n\r\n if (attrType == null || Bridge.Reflection.isInstanceOfType(a, attrType)) {\r\n t = Bridge.getType(a);\r\n md = Bridge.getMetadata(t);\r\n\r\n if (!md || !md.am) {\r\n for (var j = result.length - 1; j >= 0; j--) {\r\n if (Bridge.Reflection.isInstanceOfType(result[j], t)) {\r\n result.splice(j, 1);\r\n }\r\n }\r\n }\r\n\r\n result.push(a);\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n },\r\n\r\n getMembers: function (type, memberTypes, bindingAttr, name, params) {\r\n var result = [];\r\n\r\n if ((bindingAttr & 72) === 72 || (bindingAttr & 6) === 4) {\r\n var b = Bridge.Reflection.getBaseType(type);\r\n\r\n if (b) {\r\n result = Bridge.Reflection.getMembers(b, memberTypes & ~1, bindingAttr & (bindingAttr & 64 ? 255 : 247) & (bindingAttr & 2 ? 251 : 255), name, params);\r\n }\r\n }\r\n\r\n var idx = 0,\r\n f = function (m) {\r\n if ((memberTypes & m.t) && (((bindingAttr & 4) && !m.is) || ((bindingAttr & 8) && m.is)) && (!name || ((bindingAttr & 1) === 1 ? (m.n.toUpperCase() === name.toUpperCase()) : (m.n === name)))) {\r\n if ((bindingAttr & 16) === 16 && m.a === 2 ||\r\n (bindingAttr & 32) === 32 && m.a !== 2) {\r\n if (params) {\r\n if ((m.p || []).length !== params.length) {\r\n return;\r\n }\r\n\r\n for (var i = 0; i < params.length; i++) {\r\n if (params[i] !== m.p[i]) {\r\n return;\r\n }\r\n }\r\n }\r\n\r\n if (m.ov || m.v) {\r\n result = result.filter(function (a) {\r\n return !(a.n == m.n && a.t == m.t);\r\n });\r\n }\r\n\r\n result.splice(idx++, 0, m);\r\n }\r\n }\r\n };\r\n\r\n var type_md = Bridge.getMetadata(type);\r\n\r\n if (type_md && type_md.m) {\r\n var mNames = [\"g\", \"s\", \"ad\", \"r\"];\r\n\r\n for (var i = 0; i < type_md.m.length; i++) {\r\n var m = type_md.m[i];\r\n\r\n f(m);\r\n\r\n for (var j = 0; j < 4; j++) {\r\n var a = mNames[j];\r\n\r\n if (m[a]) {\r\n f(m[a]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (bindingAttr & 256) {\r\n while (type) {\r\n var r = [];\r\n\r\n for (var i = 0; i < result.length; i++) {\r\n if (result[i].td === type) {\r\n r.push(result[i]);\r\n }\r\n }\r\n\r\n if (r.length > 1) {\r\n throw new System.Reflection.AmbiguousMatchException.$ctor1(\"Ambiguous match\");\r\n } else if (r.length === 1) {\r\n return r[0];\r\n }\r\n\r\n type = Bridge.Reflection.getBaseType(type);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n return result;\r\n },\r\n\r\n createDelegate: function (mi, firstArgument) {\r\n var isStatic = mi.is || mi.sm,\r\n bind = firstArgument != null && !isStatic,\r\n method = Bridge.Reflection.midel(mi, firstArgument, null, bind);\r\n\r\n if (!bind) {\r\n if (isStatic) {\r\n return function () {\r\n var args = firstArgument != null ? [firstArgument] : [];\r\n\r\n return method.apply(mi.td, args.concat(Array.prototype.slice.call(arguments, 0)));\r\n };\r\n } else {\r\n return function (target) {\r\n return method.apply(target, Array.prototype.slice.call(arguments, 1));\r\n };\r\n }\r\n }\r\n\r\n return method;\r\n },\r\n\r\n midel: function (mi, target, typeArguments, bind) {\r\n if (bind !== false) {\r\n if (mi.is && !!target) {\r\n throw new System.ArgumentException.$ctor1(\"Cannot specify target for static method\");\r\n } else if (!mi.is && !target) {\r\n throw new System.ArgumentException.$ctor1(\"Must specify target for instance method\");\r\n }\r\n }\r\n\r\n var method;\r\n\r\n if (mi.fg) {\r\n method = function () { return (mi.is ? mi.td : this)[mi.fg]; };\r\n } else if (mi.fs) {\r\n method = function (v) { (mi.is ? mi.td : this)[mi.fs] = v; };\r\n } else {\r\n method = mi.def || (mi.is || mi.sm ? mi.td[mi.sn] : (target ? target[mi.sn] : mi.td.prototype[mi.sn]));\r\n\r\n if (mi.tpc) {\r\n if (mi.constructed && (!typeArguments || typeArguments.length == 0)) {\r\n typeArguments = mi.tprm;\r\n }\r\n\r\n if (!typeArguments || typeArguments.length !== mi.tpc) {\r\n throw new System.ArgumentException.$ctor1(\"Wrong number of type arguments\");\r\n }\r\n\r\n var gMethod = method;\r\n\r\n method = function () {\r\n return gMethod.apply(this, typeArguments.concat(Array.prototype.slice.call(arguments)));\r\n }\r\n } else {\r\n if (typeArguments && typeArguments.length) {\r\n throw new System.ArgumentException.$ctor1(\"Cannot specify type arguments for non-generic method\");\r\n }\r\n }\r\n\r\n if (mi.exp) {\r\n var _m1 = method;\r\n\r\n method = function () { return _m1.apply(this, Array.prototype.slice.call(arguments, 0, arguments.length - 1).concat(arguments[arguments.length - 1])); };\r\n }\r\n\r\n if (mi.sm) {\r\n var _m2 = method;\r\n\r\n method = function () { return _m2.apply(null, [this].concat(Array.prototype.slice.call(arguments))); };\r\n }\r\n }\r\n\r\n var orig = method;\r\n\r\n method = function () {\r\n var args = [],\r\n params = mi.pi || [],\r\n v,\r\n p;\r\n\r\n if (!params.length && mi.p && mi.p.length) {\r\n params = mi.p.map(function (t) {\r\n return {pt: t};\r\n });\r\n }\r\n\r\n for (var i = 0; i < arguments.length; i++) {\r\n p = params[i] || params[params.length - 1];\r\n v = arguments[i];\r\n\r\n args[i] = p && p.pt === System.Object ? v : Bridge.unbox(arguments[i]);\r\n\r\n if (v == null && p && Bridge.Reflection.isValueType(p.pt)) {\r\n args[i] = Bridge.getDefaultValue(p.pt);\r\n }\r\n }\r\n\r\n var v = orig.apply(this, args);\r\n\r\n return v != null && mi.box ? mi.box(v) : v;\r\n };\r\n\r\n return bind !== false ? Bridge.fn.bind(target, method) : method;\r\n },\r\n\r\n invokeCI: function (ci, args) {\r\n if (ci.exp) {\r\n args = args.slice(0, args.length - 1).concat(args[args.length - 1]);\r\n }\r\n\r\n if (ci.def) {\r\n return ci.def.apply(null, args);\r\n } else if (ci.sm) {\r\n return ci.td[ci.sn].apply(null, args);\r\n } else {\r\n if (ci.td.$literal) {\r\n return (ci.sn ? ci.td[ci.sn] : ci.td).apply(ci.td, args);\r\n }\r\n\r\n return Bridge.Reflection.applyConstructor(ci.sn ? ci.td[ci.sn] : ci.td, args);\r\n }\r\n },\r\n\r\n fieldAccess: function (fi, obj) {\r\n if (fi.is && !!obj) {\r\n throw new System.ArgumentException.$ctor1(\"Cannot specify target for static field\");\r\n } else if (!fi.is && !obj) {\r\n throw new System.ArgumentException.$ctor1(\"Must specify target for instance field\");\r\n }\r\n\r\n obj = fi.is ? fi.td : obj;\r\n\r\n if (arguments.length === 3) {\r\n var v = arguments[2];\r\n\r\n if (v == null && Bridge.Reflection.isValueType(fi.rt)) {\r\n v = Bridge.getDefaultValue(fi.rt);\r\n }\r\n\r\n obj[fi.sn] = v;\r\n } else {\r\n return fi.box ? fi.box(obj[fi.sn]) : obj[fi.sn];\r\n }\r\n },\r\n\r\n getMetaValue: function (type, name, dv) {\r\n var md = type.$isTypeParameter ? type : Bridge.getMetadata(type);\r\n\r\n return md ? (md[name] || dv) : dv;\r\n },\r\n\r\n isArray: function (type) {\r\n return Bridge.arrayTypes.indexOf(type) >= 0;\r\n },\r\n\r\n isValueType: function (type) {\r\n return !Bridge.Reflection.canAcceptNull(type);\r\n },\r\n\r\n getNestedTypes: function (type, flags) {\r\n var types = Bridge.Reflection.getMetaValue(type, \"nested\", []);\r\n\r\n if (flags) {\r\n var tmp = [];\r\n for (var i = 0; i < types.length; i++) {\r\n var nestedType = types[i],\r\n attrs = Bridge.Reflection.getMetaValue(nestedType, \"att\", 0),\r\n access = attrs & 7,\r\n isPublic = access === 1 || access === 2;\r\n\r\n if ((flags & 16) === 16 && isPublic ||\r\n (flags & 32) === 32 && !isPublic) {\r\n tmp.push(nestedType);\r\n }\r\n }\r\n\r\n types = tmp;\r\n }\r\n\r\n return types;\r\n },\r\n\r\n getNestedType: function (type, name, flags) {\r\n var types = Bridge.Reflection.getNestedTypes(type, flags);\r\n\r\n for (var i = 0; i < types.length; i++) {\r\n if (Bridge.Reflection.getTypeName(types[i]) === name) {\r\n return types[i];\r\n }\r\n }\r\n\r\n return null;\r\n },\r\n\r\n isGenericMethodDefinition: function (mi) {\r\n return Bridge.Reflection.isGenericMethod(mi) && !mi.constructed;\r\n },\r\n\r\n isGenericMethod: function (mi) {\r\n return !!mi.tpc;\r\n },\r\n\r\n containsGenericParameters: function (mi) {\r\n if (mi.$typeArguments) {\r\n for (var i = 0; i < mi.$typeArguments.length; i++) {\r\n if (mi.$typeArguments[i].$isTypeParameter) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n var tprm = mi.tprm || [];\r\n\r\n for (var i = 0; i < tprm.length; i++) {\r\n if (tprm[i].$isTypeParameter) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n\r\n genericParameterPosition: function (type) {\r\n if (!type.$isTypeParameter) {\r\n throw new System.InvalidOperationException.$ctor1(\"The current type does not represent a type parameter.\");\r\n }\r\n return type.gPrmPos || 0;\r\n },\r\n\r\n makeGenericMethod: function (mi, args) {\r\n var cmi = Bridge.apply({}, mi);\r\n cmi.tprm = args;\r\n cmi.p = args;\r\n cmi.gd = mi;\r\n cmi.constructed = true;\r\n\r\n return cmi;\r\n },\r\n\r\n getGenericMethodDefinition: function (mi) {\r\n if (!mi.tpc) {\r\n throw new System.InvalidOperationException.$ctor1(\"The current method is not a generic method. \");\r\n }\r\n\r\n return mi.gd || mi;\r\n }\r\n };\r\n\r\n Bridge.setMetadata = Bridge.Reflection.setMetadata;\r\n\r\n System.Reflection.ConstructorInfo = {\r\n $is: function (obj) {\r\n return obj != null && obj.t === 1;\r\n }\r\n };\r\n\r\n System.Reflection.EventInfo = {\r\n $is: function (obj) {\r\n return obj != null && obj.t === 2;\r\n }\r\n };\r\n\r\n System.Reflection.FieldInfo = {\r\n $is: function (obj) {\r\n return obj != null && obj.t === 4;\r\n }\r\n };\r\n\r\n System.Reflection.MethodBase = {\r\n $is: function (obj) {\r\n return obj != null && (obj.t === 1 || obj.t === 8);\r\n }\r\n };\r\n\r\n System.Reflection.MethodInfo = {\r\n $is: function (obj) {\r\n return obj != null && obj.t === 8;\r\n }\r\n };\r\n\r\n System.Reflection.PropertyInfo = {\r\n $is: function (obj) {\r\n return obj != null && obj.t === 16;\r\n }\r\n };\r\n\r\n System.AppDomain = {\r\n getAssemblies: function () {\r\n return Object.keys(System.Reflection.Assembly.assemblies).map(function (n) { return System.Reflection.Assembly.assemblies[n]; });\r\n }\r\n };\r\n\r\n // @source Interfaces.js\r\n\r\n Bridge.define(\"System.IFormattable\", {\r\n $kind: \"interface\",\r\n statics: {\r\n $is: function (obj) {\r\n if (Bridge.isNumber(obj) || Bridge.isDate(obj)) {\r\n return true;\r\n }\r\n\r\n return Bridge.is(obj, System.IFormattable, true);\r\n }\r\n }\r\n });\r\n\r\n Bridge.define(\"System.IComparable\", {\r\n $kind: \"interface\",\r\n\r\n statics: {\r\n $is: function (obj) {\r\n if (Bridge.isNumber(obj) || Bridge.isDate(obj) || Bridge.isBoolean(obj) || Bridge.isString(obj)) {\r\n return true;\r\n }\r\n\r\n return Bridge.is(obj, System.IComparable, true);\r\n }\r\n }\r\n });\r\n\r\n Bridge.define(\"System.IFormatProvider\", {\r\n $kind: \"interface\"\r\n });\r\n\r\n Bridge.define(\"System.ICloneable\", {\r\n $kind: \"interface\"\r\n });\r\n\r\n Bridge.define(\"System.IComparable$1\", function (T) {\r\n return {\r\n $kind: \"interface\",\r\n\r\n statics: {\r\n $is: function (obj) {\r\n if (Bridge.isNumber(obj) && T.$number && T.$is(obj) || Bridge.isDate(obj) && (T === Date || T === System.DateTime) || Bridge.isBoolean(obj) && (T === Boolean || T === System.Boolean) || Bridge.isString(obj) && (T === String || T === System.String)) {\r\n return true;\r\n }\r\n\r\n return Bridge.is(obj, System.IComparable$1(T), true);\r\n },\r\n\r\n isAssignableFrom: function (type) {\r\n if (type === System.DateTime && T === Date) {\r\n return true;\r\n }\r\n\r\n return Bridge.Reflection.getInterfaces(type).indexOf(System.IComparable$1(T)) >= 0;\r\n }\r\n }\r\n };\r\n });\r\n\r\n Bridge.define(\"System.IEquatable$1\", function (T) {\r\n return {\r\n $kind: \"interface\",\r\n\r\n statics: {\r\n $is: function (obj) {\r\n if (Bridge.isNumber(obj) && T.$number && T.$is(obj) || Bridge.isDate(obj) && (T === Date || T === System.DateTime) || Bridge.isBoolean(obj) && (T === Boolean || T === System.Boolean) || Bridge.isString(obj) && (T === String || T === System.String)) {\r\n return true;\r\n }\r\n\r\n return Bridge.is(obj, System.IEquatable$1(T), true);\r\n },\r\n\r\n isAssignableFrom: function (type) {\r\n if (type === System.DateTime && T === Date) {\r\n return true;\r\n }\r\n\r\n return Bridge.Reflection.getInterfaces(type).indexOf(System.IEquatable$1(T)) >= 0;\r\n }\r\n }\r\n };\r\n });\r\n\r\n Bridge.define(\"Bridge.IPromise\", {\r\n $kind: \"interface\"\r\n });\r\n\r\n Bridge.define(\"System.IDisposable\", {\r\n $kind: \"interface\"\r\n });\r\n\r\n Bridge.define(\"System.IAsyncResult\", {\r\n $kind: \"interface\"\r\n });\r\n\r\n // @source ValueType.js\r\n\r\nBridge.define(\"System.ValueType\", {\r\n statics: {\r\n methods: {\r\n $is: function (obj) {\r\n return Bridge.Reflection.isValueType(Bridge.getType(obj));\r\n }\r\n }\r\n }\r\n});\r\n\r\n // @source Enum.js\r\n\r\n var enumMethods = {\r\n nameEquals: function (n1, n2, ignoreCase) {\r\n if (ignoreCase) {\r\n return n1.toLowerCase() === n2.toLowerCase();\r\n }\r\n\r\n return (n1.charAt(0).toLowerCase() + n1.slice(1)) === (n2.charAt(0).toLowerCase() + n2.slice(1));\r\n },\r\n\r\n checkEnumType: function (enumType) {\r\n if (!enumType) {\r\n throw new System.ArgumentNullException.$ctor1(\"enumType\");\r\n }\r\n\r\n if (enumType.prototype && enumType.$kind !== \"enum\") {\r\n throw new System.ArgumentException.$ctor1(\"\", \"enumType\");\r\n }\r\n },\r\n\r\n getUnderlyingType: function (type) {\r\n System.Enum.checkEnumType(type);\r\n\r\n return type.prototype.$utype || System.Int32;\r\n },\r\n\r\n toName: function (name) {\r\n return name;\r\n },\r\n\r\n toObject: function (enumType, value) {\r\n value = Bridge.unbox(value, true);\r\n\r\n if (value == null) {\r\n return null;\r\n }\r\n\r\n return enumMethods.parse(enumType, value.toString(), false, true);\r\n },\r\n\r\n parse: function (enumType, s, ignoreCase, silent) {\r\n System.Enum.checkEnumType(enumType);\r\n\r\n if (s != null) {\r\n if (enumType === Number || enumType === System.String || enumType.$number) {\r\n return s;\r\n }\r\n\r\n var intValue = {};\r\n\r\n if (System.Int32.tryParse(s, intValue)) {\r\n return Bridge.box(intValue.v, enumType, function (obj) { return System.Enum.toString(enumType, obj); });\r\n }\r\n\r\n var names = System.Enum.getNames(enumType),\r\n values = enumType;\r\n\r\n if (!enumType.prototype || !enumType.prototype.$flags) {\r\n for (var i = 0; i < names.length; i++) {\r\n var name = names[i];\r\n\r\n if (enumMethods.nameEquals(name, s, ignoreCase)) {\r\n return Bridge.box(values[name], enumType, function (obj) { return System.Enum.toString(enumType, obj); });\r\n }\r\n }\r\n } else {\r\n var parts = s.split(\",\"),\r\n value = 0,\r\n parsed = true;\r\n\r\n for (var i = parts.length - 1; i >= 0; i--) {\r\n var part = parts[i].trim(),\r\n found = false;\r\n\r\n for (var n = 0; n < names.length; n++) {\r\n var name = names[n];\r\n\r\n if (enumMethods.nameEquals(name, part, ignoreCase)) {\r\n value |= values[name];\r\n found = true;\r\n\r\n break;\r\n }\r\n }\r\n\r\n if (!found) {\r\n parsed = false;\r\n\r\n break;\r\n }\r\n }\r\n\r\n if (parsed) {\r\n return Bridge.box(value, enumType, function (obj) { return System.Enum.toString(enumType, obj); });\r\n }\r\n }\r\n }\r\n\r\n if (silent !== true) {\r\n throw new System.ArgumentException.$ctor3(\"silent\", \"Invalid Enumeration Value\");\r\n }\r\n\r\n return null;\r\n },\r\n\r\n toStringFn: function (type) {\r\n return function (value) {\r\n return System.Enum.toString(type, value);\r\n };\r\n },\r\n\r\n toString: function (enumType, value, forceFlags) {\r\n if (arguments.length === 0) {\r\n return \"System.Enum\";\r\n }\r\n\r\n if (value && value.$boxed && enumType === System.Enum) {\r\n enumType = value.type;\r\n }\r\n\r\n value = Bridge.unbox(value, true);\r\n\r\n if (enumType === Number || enumType === System.String || enumType.$number) {\r\n return value.toString();\r\n }\r\n\r\n System.Enum.checkEnumType(enumType);\r\n\r\n var values = enumType,\r\n names = System.Enum.getNames(enumType),\r\n isLong = System.Int64.is64Bit(value);\r\n\r\n if (((!enumType.prototype || !enumType.prototype.$flags) && forceFlags !== true) || (value === 0)) {\r\n for (var i = 0; i < names.length; i++) {\r\n var name = names[i];\r\n\r\n if (isLong && System.Int64.is64Bit(values[name]) ? (values[name].eq(value)) : (values[name] === value)) {\r\n return enumMethods.toName(name);\r\n }\r\n }\r\n\r\n return value.toString();\r\n } else {\r\n var parts = [],\r\n entries = System.Enum.getValuesAndNames(enumType),\r\n index = entries.length - 1,\r\n saveResult = value;\r\n\r\n while (index >= 0) {\r\n var entry = entries[index],\r\n long = isLong && System.Int64.is64Bit(entry.value);\r\n\r\n if ((index == 0) && (long ? entry.value.isZero() : entry.value == 0)) {\r\n break;\r\n }\r\n\r\n if (long ? (value.and(entry.value).eq(entry.value)) : ((value & entry.value) == entry.value)) {\r\n if (long) {\r\n value = value.sub(entry.value);\r\n } else {\r\n value -= entry.value;\r\n }\r\n\r\n parts.unshift(entry.name);\r\n }\r\n\r\n index--;\r\n }\r\n\r\n if (isLong ? !value.isZero() : value !== 0) {\r\n return saveResult.toString();\r\n }\r\n\r\n if (isLong ? saveResult.isZero() : saveResult === 0) {\r\n var entry = entries[0];\r\n\r\n if (entry && (System.Int64.is64Bit(entry.value) ? entry.value.isZero() : (entry.value == 0))) {\r\n return entry.name;\r\n }\r\n\r\n return \"0\";\r\n }\r\n\r\n return parts.join(\", \");\r\n }\r\n },\r\n\r\n getValuesAndNames: function (enumType) {\r\n System.Enum.checkEnumType(enumType);\r\n\r\n var parts = [],\r\n names = System.Enum.getNames(enumType),\r\n values = enumType;\r\n\r\n for (var i = 0; i < names.length; i++) {\r\n parts.push({ name: names[i], value: values[names[i]] });\r\n }\r\n\r\n return parts.sort(function (i1, i2) {\r\n return System.Int64.is64Bit(i1.value) ? i1.value.sub(i2.value).sign() : (i1.value - i2.value);\r\n });\r\n },\r\n\r\n getValues: function (enumType) {\r\n System.Enum.checkEnumType(enumType);\r\n\r\n var parts = [],\r\n names = System.Enum.getNames(enumType),\r\n values = enumType;\r\n\r\n for (var i = 0; i < names.length; i++) {\r\n parts.push(values[names[i]]);\r\n }\r\n\r\n return parts.sort(function (i1, i2) {\r\n return System.Int64.is64Bit(i1) ? i1.sub(i2).sign() : (i1 - i2);\r\n });\r\n },\r\n\r\n format: function (enumType, value, format) {\r\n System.Enum.checkEnumType(enumType);\r\n\r\n var name;\r\n\r\n if (!Bridge.hasValue(value) && (name = \"value\") || !Bridge.hasValue(format) && (name = \"format\")) {\r\n throw new System.ArgumentNullException.$ctor1(name);\r\n }\r\n\r\n value = Bridge.unbox(value, true);\r\n\r\n switch (format) {\r\n case \"G\":\r\n case \"g\":\r\n return System.Enum.toString(enumType, value);\r\n case \"x\":\r\n case \"X\":\r\n return value.toString(16);\r\n case \"d\":\r\n case \"D\":\r\n return value.toString();\r\n case \"f\":\r\n case \"F\":\r\n return System.Enum.toString(enumType, value, true);\r\n default:\r\n throw new System.FormatException();\r\n }\r\n },\r\n\r\n getNames: function (enumType) {\r\n System.Enum.checkEnumType(enumType);\r\n\r\n var parts = [],\r\n values = enumType;\r\n\r\n if (enumType.$names) {\r\n return enumType.$names.slice(0);\r\n }\r\n\r\n for (var i in values) {\r\n if (values.hasOwnProperty(i) && i.indexOf(\"$\") < 0 && typeof values[i] !== \"function\") {\r\n parts.push([enumMethods.toName(i), values[i]]);\r\n }\r\n }\r\n\r\n return parts.sort(function (i1, i2) {\r\n return System.Int64.is64Bit(i1[1]) ? i1[1].sub(i2[1]).sign() : (i1[1] - i2[1]);\r\n }).map(function (i) {\r\n return i[0];\r\n });\r\n },\r\n\r\n getName: function (enumType, value) {\r\n value = Bridge.unbox(value, true);\r\n\r\n if (value == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"value\");\r\n }\r\n\r\n var isLong = System.Int64.is64Bit(value);\r\n\r\n if (!isLong && !(typeof (value) === \"number\" && Math.floor(value, 0) === value)) {\r\n throw new System.ArgumentException.$ctor1(\"Argument must be integer\", \"value\");\r\n }\r\n\r\n System.Enum.checkEnumType(enumType);\r\n\r\n var names = System.Enum.getNames(enumType),\r\n values = enumType;\r\n\r\n for (var i = 0; i < names.length; i++) {\r\n var name = names[i];\r\n\r\n if (isLong ? value.eq(values[name]) : (values[name] === value)) {\r\n return name;\r\n }\r\n }\r\n\r\n return null;\r\n },\r\n\r\n hasFlag: function (value, flag) {\r\n flag = Bridge.unbox(flag, true);\r\n var isLong = System.Int64.is64Bit(value);\r\n\r\n return flag === 0 || (isLong ? !value.and(flag).isZero() : !!(value & flag));\r\n },\r\n\r\n isDefined: function (enumType, value) {\r\n value = Bridge.unbox(value, true);\r\n\r\n System.Enum.checkEnumType(enumType);\r\n\r\n var values = enumType,\r\n names = System.Enum.getNames(enumType),\r\n isString = Bridge.isString(value),\r\n isLong = System.Int64.is64Bit(value);\r\n\r\n for (var i = 0; i < names.length; i++) {\r\n var name = names[i];\r\n\r\n if (isString ? enumMethods.nameEquals(name, value, false) : (isLong ? value.eq(values[name]) : (values[name] === value))) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n\r\n tryParse: function (enumType, value, result, ignoreCase) {\r\n result.v = Bridge.unbox(enumMethods.parse(enumType, value, ignoreCase, true), true);\r\n\r\n if (result.v == null) {\r\n result.v = 0;\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n equals: function (v1, v2, T) {\r\n if (v2 && v2.$boxed && (v1 && v1.$boxed || T)) {\r\n if (v2.type !== (v1.type || T)) {\r\n return false;\r\n }\r\n }\r\n\r\n return System.Enum.equalsT(v1, v2);\r\n },\r\n\r\n equalsT: function (v1, v2) {\r\n return Bridge.equals(Bridge.unbox(v1, true), Bridge.unbox(v2, true));\r\n }\r\n };\r\n\r\n Bridge.define(\"System.Enum\", {\r\n inherits: [System.IComparable, System.IFormattable],\r\n statics: {\r\n methods: enumMethods\r\n }\r\n });\r\n\r\n // @source Nullable.js\r\n\r\n var nullable = {\r\n hasValue: Bridge.hasValue,\r\n\r\n getValue: function (obj) {\r\n obj = Bridge.unbox(obj, true);\r\n\r\n if (!Bridge.hasValue(obj)) {\r\n throw new System.InvalidOperationException.$ctor1(\"Nullable instance doesn't have a value.\");\r\n }\r\n\r\n return obj;\r\n },\r\n\r\n getValueOrDefault: function (obj, defValue) {\r\n return Bridge.hasValue(obj) ? obj : defValue;\r\n },\r\n\r\n add: function (a, b) {\r\n return Bridge.hasValue$1(a, b) ? a + b : null;\r\n },\r\n\r\n band: function (a, b) {\r\n return Bridge.hasValue$1(a, b) ? a & b : null;\r\n },\r\n\r\n bor: function (a, b) {\r\n return Bridge.hasValue$1(a, b) ? a | b : null;\r\n },\r\n\r\n and: function (a, b) {\r\n if (a === true && b === true) {\r\n return true;\r\n } else if (a === false || b === false) {\r\n return false;\r\n }\r\n\r\n return null;\r\n },\r\n\r\n or: function (a, b) {\r\n if (a === true || b === true) {\r\n return true;\r\n } else if (a === false && b === false) {\r\n return false;\r\n }\r\n\r\n return null;\r\n },\r\n\r\n div: function (a, b) {\r\n return Bridge.hasValue$1(a, b) ? a / b : null;\r\n },\r\n\r\n eq: function (a, b) {\r\n return !Bridge.hasValue(a) ? !Bridge.hasValue(b) : (a === b);\r\n },\r\n\r\n equals: function (a, b, fn) {\r\n return !Bridge.hasValue(a) ? !Bridge.hasValue(b) : (fn ? fn(a, b) : Bridge.equals(a, b));\r\n },\r\n\r\n toString: function (a, fn) {\r\n return !Bridge.hasValue(a) ? \"\" : (fn ? fn(a) : a.toString());\r\n },\r\n\r\n toStringFn: function (fn) {\r\n return function (v) {\r\n return System.Nullable.toString(v, fn);\r\n };\r\n },\r\n\r\n getHashCode: function (a, fn) {\r\n return !Bridge.hasValue(a) ? 0 : (fn ? fn(a) : Bridge.getHashCode(a));\r\n },\r\n\r\n getHashCodeFn: function (fn) {\r\n return function (v) {\r\n return System.Nullable.getHashCode(v, fn);\r\n };\r\n },\r\n\r\n xor: function (a, b) {\r\n if (Bridge.hasValue$1(a, b)) {\r\n if (Bridge.isBoolean(a) && Bridge.isBoolean(b)) {\r\n return a != b;\r\n }\r\n\r\n return a ^ b;\r\n }\r\n\r\n return null;\r\n },\r\n\r\n gt: function (a, b) {\r\n return Bridge.hasValue$1(a, b) && a > b;\r\n },\r\n\r\n gte: function (a, b) {\r\n return Bridge.hasValue$1(a, b) && a >= b;\r\n },\r\n\r\n neq: function (a, b) {\r\n return !Bridge.hasValue(a) ? Bridge.hasValue(b) : (a !== b);\r\n },\r\n\r\n lt: function (a, b) {\r\n return Bridge.hasValue$1(a, b) && a < b;\r\n },\r\n\r\n lte: function (a, b) {\r\n return Bridge.hasValue$1(a, b) && a <= b;\r\n },\r\n\r\n mod: function (a, b) {\r\n return Bridge.hasValue$1(a, b) ? a % b : null;\r\n },\r\n\r\n mul: function (a, b) {\r\n return Bridge.hasValue$1(a, b) ? a * b : null;\r\n },\r\n\r\n imul: function (a, b) {\r\n return Bridge.hasValue$1(a, b) ? Bridge.Int.mul(a, b) : null;\r\n },\r\n\r\n sl: function (a, b) {\r\n return Bridge.hasValue$1(a, b) ? a << b : null;\r\n },\r\n\r\n sr: function (a, b) {\r\n return Bridge.hasValue$1(a, b) ? a >> b : null;\r\n },\r\n\r\n srr: function (a, b) {\r\n return Bridge.hasValue$1(a, b) ? a >>> b : null;\r\n },\r\n\r\n sub: function (a, b) {\r\n return Bridge.hasValue$1(a, b) ? a - b : null;\r\n },\r\n\r\n bnot: function (a) {\r\n return Bridge.hasValue(a) ? ~a : null;\r\n },\r\n\r\n neg: function (a) {\r\n return Bridge.hasValue(a) ? -a : null;\r\n },\r\n\r\n not: function (a) {\r\n return Bridge.hasValue(a) ? !a : null;\r\n },\r\n\r\n pos: function (a) {\r\n return Bridge.hasValue(a) ? +a : null;\r\n },\r\n\r\n lift: function () {\r\n for (var i = 1; i < arguments.length; i++) {\r\n if (!Bridge.hasValue(arguments[i])) {\r\n return null;\r\n }\r\n }\r\n\r\n if (arguments[0] == null) {\r\n return null;\r\n }\r\n\r\n if (arguments[0].apply == undefined) {\r\n return arguments[0];\r\n }\r\n\r\n return arguments[0].apply(null, Array.prototype.slice.call(arguments, 1));\r\n },\r\n\r\n lift1: function (f, o) {\r\n return Bridge.hasValue(o) ? (typeof f === \"function\" ? f.apply(null, Array.prototype.slice.call(arguments, 1)) : o[f].apply(o, Array.prototype.slice.call(arguments, 2))) : null;\r\n },\r\n\r\n lift2: function (f, a, b) {\r\n return Bridge.hasValue$1(a, b) ? (typeof f === \"function\" ? f.apply(null, Array.prototype.slice.call(arguments, 1)) : a[f].apply(a, Array.prototype.slice.call(arguments, 2))) : null;\r\n },\r\n\r\n liftcmp: function (f, a, b) {\r\n return Bridge.hasValue$1(a, b) ? (typeof f === \"function\" ? f.apply(null, Array.prototype.slice.call(arguments, 1)) : a[f].apply(a, Array.prototype.slice.call(arguments, 2))) : false;\r\n },\r\n\r\n lifteq: function (f, a, b) {\r\n var va = Bridge.hasValue(a),\r\n vb = Bridge.hasValue(b);\r\n\r\n return (!va && !vb) || (va && vb && (typeof f === \"function\" ? f.apply(null, Array.prototype.slice.call(arguments, 1)) : a[f].apply(a, Array.prototype.slice.call(arguments, 2))));\r\n },\r\n\r\n liftne: function (f, a, b) {\r\n var va = Bridge.hasValue(a),\r\n vb = Bridge.hasValue(b);\r\n\r\n return (va !== vb) || (va && (typeof f === \"function\" ? f.apply(null, Array.prototype.slice.call(arguments, 1)) : a[f].apply(a, Array.prototype.slice.call(arguments, 2))));\r\n },\r\n\r\n getUnderlyingType: function (nullableType) {\r\n if (!nullableType) {\r\n throw new System.ArgumentNullException.$ctor1(\"nullableType\");\r\n }\r\n\r\n if (Bridge.Reflection.isGenericType(nullableType) &&\r\n !Bridge.Reflection.isGenericTypeDefinition(nullableType)) {\r\n var genericType = Bridge.Reflection.getGenericTypeDefinition(nullableType);\r\n\r\n if (genericType === System.Nullable$1) {\r\n return Bridge.Reflection.getGenericArguments(nullableType)[0];\r\n }\r\n }\r\n\r\n return null;\r\n },\r\n\r\n compare: function (n1, n2) {\r\n return System.Collections.Generic.Comparer$1.$default.compare(n1, n2);\r\n }\r\n };\r\n\r\n System.Nullable = nullable;\r\n\r\n Bridge.define(\"System.Nullable$1\", function (T) {\r\n return {\r\n $kind: \"struct\",\r\n\r\n statics: {\r\n $nullable: true,\r\n $nullableType: T,\r\n getDefaultValue: function () {\r\n return null;\r\n },\r\n\r\n $is: function (obj) {\r\n return Bridge.is(obj, T);\r\n }\r\n }\r\n };\r\n });\r\n\r\n // @source Char.js\r\n\r\n Bridge.define(\"System.Char\", {\r\n inherits: [System.IComparable, System.IFormattable],\r\n $kind: \"struct\",\r\n statics: {\r\n min: 0,\r\n\r\n max: 65535,\r\n\r\n $is: function (instance) {\r\n return typeof (instance) === \"number\" && Math.round(instance, 0) == instance && instance >= System.Char.min && instance <= System.Char.max;\r\n },\r\n\r\n getDefaultValue: function () {\r\n return 0;\r\n },\r\n\r\n parse: function (s) {\r\n if (!Bridge.hasValue(s)) {\r\n throw new System.ArgumentNullException.$ctor1(\"s\");\r\n }\r\n\r\n if (s.length !== 1) {\r\n throw new System.FormatException();\r\n }\r\n\r\n return s.charCodeAt(0);\r\n },\r\n\r\n tryParse: function (s, result) {\r\n var b = s && s.length === 1;\r\n\r\n result.v = b ? s.charCodeAt(0) : 0;\r\n\r\n return b;\r\n },\r\n\r\n format: function (number, format, provider) {\r\n return Bridge.Int.format(number, format, provider);\r\n },\r\n\r\n charCodeAt: function (str, index) {\r\n if (str == null) {\r\n throw new System.ArgumentNullException();\r\n }\r\n\r\n if (str.length != 1) {\r\n throw new System.FormatException.$ctor1(\"String must be exactly one character long\");\r\n }\r\n\r\n return str.charCodeAt(index);\r\n },\r\n\r\n _isWhiteSpaceMatch: /[^\\s\\x09-\\x0D\\x85\\xA0]/,\r\n\r\n isWhiteSpace: function (s) {\r\n return !System.Char._isWhiteSpaceMatch.test(s);\r\n },\r\n\r\n _isDigitMatch: new RegExp(/[0-9\\u0030-\\u0039\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19]/),\r\n\r\n isDigit: function (value) {\r\n if (value < 256) {\r\n return (value >= 48 && value <= 57);\r\n }\r\n\r\n return System.Char._isDigitMatch.test(String.fromCharCode(value));\r\n },\r\n\r\n _isLetterMatch: new RegExp(/[A-Za-z\\u0061-\\u007A\\u00B5\\u00DF-\\u00F6\\u00F8-\\u00FF\\u0101\\u0103\\u0105\\u0107\\u0109\\u010B\\u010D\\u010F\\u0111\\u0113\\u0115\\u0117\\u0119\\u011B\\u011D\\u011F\\u0121\\u0123\\u0125\\u0127\\u0129\\u012B\\u012D\\u012F\\u0131\\u0133\\u0135\\u0137\\u0138\\u013A\\u013C\\u013E\\u0140\\u0142\\u0144\\u0146\\u0148\\u0149\\u014B\\u014D\\u014F\\u0151\\u0153\\u0155\\u0157\\u0159\\u015B\\u015D\\u015F\\u0161\\u0163\\u0165\\u0167\\u0169\\u016B\\u016D\\u016F\\u0171\\u0173\\u0175\\u0177\\u017A\\u017C\\u017E-\\u0180\\u0183\\u0185\\u0188\\u018C\\u018D\\u0192\\u0195\\u0199-\\u019B\\u019E\\u01A1\\u01A3\\u01A5\\u01A8\\u01AA\\u01AB\\u01AD\\u01B0\\u01B4\\u01B6\\u01B9\\u01BA\\u01BD-\\u01BF\\u01C6\\u01C9\\u01CC\\u01CE\\u01D0\\u01D2\\u01D4\\u01D6\\u01D8\\u01DA\\u01DC\\u01DD\\u01DF\\u01E1\\u01E3\\u01E5\\u01E7\\u01E9\\u01EB\\u01ED\\u01EF\\u01F0\\u01F3\\u01F5\\u01F9\\u01FB\\u01FD\\u01FF\\u0201\\u0203\\u0205\\u0207\\u0209\\u020B\\u020D\\u020F\\u0211\\u0213\\u0215\\u0217\\u0219\\u021B\\u021D\\u021F\\u0221\\u0223\\u0225\\u0227\\u0229\\u022B\\u022D\\u022F\\u0231\\u0233-\\u0239\\u023C\\u023F\\u0240\\u0242\\u0247\\u0249\\u024B\\u024D\\u024F-\\u0293\\u0295-\\u02AF\\u0371\\u0373\\u0377\\u037B-\\u037D\\u0390\\u03AC-\\u03CE\\u03D0\\u03D1\\u03D5-\\u03D7\\u03D9\\u03DB\\u03DD\\u03DF\\u03E1\\u03E3\\u03E5\\u03E7\\u03E9\\u03EB\\u03ED\\u03EF-\\u03F3\\u03F5\\u03F8\\u03FB\\u03FC\\u0430-\\u045F\\u0461\\u0463\\u0465\\u0467\\u0469\\u046B\\u046D\\u046F\\u0471\\u0473\\u0475\\u0477\\u0479\\u047B\\u047D\\u047F\\u0481\\u048B\\u048D\\u048F\\u0491\\u0493\\u0495\\u0497\\u0499\\u049B\\u049D\\u049F\\u04A1\\u04A3\\u04A5\\u04A7\\u04A9\\u04AB\\u04AD\\u04AF\\u04B1\\u04B3\\u04B5\\u04B7\\u04B9\\u04BB\\u04BD\\u04BF\\u04C2\\u04C4\\u04C6\\u04C8\\u04CA\\u04CC\\u04CE\\u04CF\\u04D1\\u04D3\\u04D5\\u04D7\\u04D9\\u04DB\\u04DD\\u04DF\\u04E1\\u04E3\\u04E5\\u04E7\\u04E9\\u04EB\\u04ED\\u04EF\\u04F1\\u04F3\\u04F5\\u04F7\\u04F9\\u04FB\\u04FD\\u04FF\\u0501\\u0503\\u0505\\u0507\\u0509\\u050B\\u050D\\u050F\\u0511\\u0513\\u0515\\u0517\\u0519\\u051B\\u051D\\u051F\\u0521\\u0523\\u0525\\u0527\\u0561-\\u0587\\u1D00-\\u1D2B\\u1D6B-\\u1D77\\u1D79-\\u1D9A\\u1E01\\u1E03\\u1E05\\u1E07\\u1E09\\u1E0B\\u1E0D\\u1E0F\\u1E11\\u1E13\\u1E15\\u1E17\\u1E19\\u1E1B\\u1E1D\\u1E1F\\u1E21\\u1E23\\u1E25\\u1E27\\u1E29\\u1E2B\\u1E2D\\u1E2F\\u1E31\\u1E33\\u1E35\\u1E37\\u1E39\\u1E3B\\u1E3D\\u1E3F\\u1E41\\u1E43\\u1E45\\u1E47\\u1E49\\u1E4B\\u1E4D\\u1E4F\\u1E51\\u1E53\\u1E55\\u1E57\\u1E59\\u1E5B\\u1E5D\\u1E5F\\u1E61\\u1E63\\u1E65\\u1E67\\u1E69\\u1E6B\\u1E6D\\u1E6F\\u1E71\\u1E73\\u1E75\\u1E77\\u1E79\\u1E7B\\u1E7D\\u1E7F\\u1E81\\u1E83\\u1E85\\u1E87\\u1E89\\u1E8B\\u1E8D\\u1E8F\\u1E91\\u1E93\\u1E95-\\u1E9D\\u1E9F\\u1EA1\\u1EA3\\u1EA5\\u1EA7\\u1EA9\\u1EAB\\u1EAD\\u1EAF\\u1EB1\\u1EB3\\u1EB5\\u1EB7\\u1EB9\\u1EBB\\u1EBD\\u1EBF\\u1EC1\\u1EC3\\u1EC5\\u1EC7\\u1EC9\\u1ECB\\u1ECD\\u1ECF\\u1ED1\\u1ED3\\u1ED5\\u1ED7\\u1ED9\\u1EDB\\u1EDD\\u1EDF\\u1EE1\\u1EE3\\u1EE5\\u1EE7\\u1EE9\\u1EEB\\u1EED\\u1EEF\\u1EF1\\u1EF3\\u1EF5\\u1EF7\\u1EF9\\u1EFB\\u1EFD\\u1EFF-\\u1F07\\u1F10-\\u1F15\\u1F20-\\u1F27\\u1F30-\\u1F37\\u1F40-\\u1F45\\u1F50-\\u1F57\\u1F60-\\u1F67\\u1F70-\\u1F7D\\u1F80-\\u1F87\\u1F90-\\u1F97\\u1FA0-\\u1FA7\\u1FB0-\\u1FB4\\u1FB6\\u1FB7\\u1FBE\\u1FC2-\\u1FC4\\u1FC6\\u1FC7\\u1FD0-\\u1FD3\\u1FD6\\u1FD7\\u1FE0-\\u1FE7\\u1FF2-\\u1FF4\\u1FF6\\u1FF7\\u210A\\u210E\\u210F\\u2113\\u212F\\u2134\\u2139\\u213C\\u213D\\u2146-\\u2149\\u214E\\u2184\\u2C30-\\u2C5E\\u2C61\\u2C65\\u2C66\\u2C68\\u2C6A\\u2C6C\\u2C71\\u2C73\\u2C74\\u2C76-\\u2C7B\\u2C81\\u2C83\\u2C85\\u2C87\\u2C89\\u2C8B\\u2C8D\\u2C8F\\u2C91\\u2C93\\u2C95\\u2C97\\u2C99\\u2C9B\\u2C9D\\u2C9F\\u2CA1\\u2CA3\\u2CA5\\u2CA7\\u2CA9\\u2CAB\\u2CAD\\u2CAF\\u2CB1\\u2CB3\\u2CB5\\u2CB7\\u2CB9\\u2CBB\\u2CBD\\u2CBF\\u2CC1\\u2CC3\\u2CC5\\u2CC7\\u2CC9\\u2CCB\\u2CCD\\u2CCF\\u2CD1\\u2CD3\\u2CD5\\u2CD7\\u2CD9\\u2CDB\\u2CDD\\u2CDF\\u2CE1\\u2CE3\\u2CE4\\u2CEC\\u2CEE\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\uA641\\uA643\\uA645\\uA647\\uA649\\uA64B\\uA64D\\uA64F\\uA651\\uA653\\uA655\\uA657\\uA659\\uA65B\\uA65D\\uA65F\\uA661\\uA663\\uA665\\uA667\\uA669\\uA66B\\uA66D\\uA681\\uA683\\uA685\\uA687\\uA689\\uA68B\\uA68D\\uA68F\\uA691\\uA693\\uA695\\uA697\\uA723\\uA725\\uA727\\uA729\\uA72B\\uA72D\\uA72F-\\uA731\\uA733\\uA735\\uA737\\uA739\\uA73B\\uA73D\\uA73F\\uA741\\uA743\\uA745\\uA747\\uA749\\uA74B\\uA74D\\uA74F\\uA751\\uA753\\uA755\\uA757\\uA759\\uA75B\\uA75D\\uA75F\\uA761\\uA763\\uA765\\uA767\\uA769\\uA76B\\uA76D\\uA76F\\uA771-\\uA778\\uA77A\\uA77C\\uA77F\\uA781\\uA783\\uA785\\uA787\\uA78C\\uA78E\\uA791\\uA793\\uA7A1\\uA7A3\\uA7A5\\uA7A7\\uA7A9\\uA7FA\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFF41-\\uFF5A\\u0041-\\u005A\\u00C0-\\u00D6\\u00D8-\\u00DE\\u0100\\u0102\\u0104\\u0106\\u0108\\u010A\\u010C\\u010E\\u0110\\u0112\\u0114\\u0116\\u0118\\u011A\\u011C\\u011E\\u0120\\u0122\\u0124\\u0126\\u0128\\u012A\\u012C\\u012E\\u0130\\u0132\\u0134\\u0136\\u0139\\u013B\\u013D\\u013F\\u0141\\u0143\\u0145\\u0147\\u014A\\u014C\\u014E\\u0150\\u0152\\u0154\\u0156\\u0158\\u015A\\u015C\\u015E\\u0160\\u0162\\u0164\\u0166\\u0168\\u016A\\u016C\\u016E\\u0170\\u0172\\u0174\\u0176\\u0178\\u0179\\u017B\\u017D\\u0181\\u0182\\u0184\\u0186\\u0187\\u0189-\\u018B\\u018E-\\u0191\\u0193\\u0194\\u0196-\\u0198\\u019C\\u019D\\u019F\\u01A0\\u01A2\\u01A4\\u01A6\\u01A7\\u01A9\\u01AC\\u01AE\\u01AF\\u01B1-\\u01B3\\u01B5\\u01B7\\u01B8\\u01BC\\u01C4\\u01C7\\u01CA\\u01CD\\u01CF\\u01D1\\u01D3\\u01D5\\u01D7\\u01D9\\u01DB\\u01DE\\u01E0\\u01E2\\u01E4\\u01E6\\u01E8\\u01EA\\u01EC\\u01EE\\u01F1\\u01F4\\u01F6-\\u01F8\\u01FA\\u01FC\\u01FE\\u0200\\u0202\\u0204\\u0206\\u0208\\u020A\\u020C\\u020E\\u0210\\u0212\\u0214\\u0216\\u0218\\u021A\\u021C\\u021E\\u0220\\u0222\\u0224\\u0226\\u0228\\u022A\\u022C\\u022E\\u0230\\u0232\\u023A\\u023B\\u023D\\u023E\\u0241\\u0243-\\u0246\\u0248\\u024A\\u024C\\u024E\\u0370\\u0372\\u0376\\u0386\\u0388-\\u038A\\u038C\\u038E\\u038F\\u0391-\\u03A1\\u03A3-\\u03AB\\u03CF\\u03D2-\\u03D4\\u03D8\\u03DA\\u03DC\\u03DE\\u03E0\\u03E2\\u03E4\\u03E6\\u03E8\\u03EA\\u03EC\\u03EE\\u03F4\\u03F7\\u03F9\\u03FA\\u03FD-\\u042F\\u0460\\u0462\\u0464\\u0466\\u0468\\u046A\\u046C\\u046E\\u0470\\u0472\\u0474\\u0476\\u0478\\u047A\\u047C\\u047E\\u0480\\u048A\\u048C\\u048E\\u0490\\u0492\\u0494\\u0496\\u0498\\u049A\\u049C\\u049E\\u04A0\\u04A2\\u04A4\\u04A6\\u04A8\\u04AA\\u04AC\\u04AE\\u04B0\\u04B2\\u04B4\\u04B6\\u04B8\\u04BA\\u04BC\\u04BE\\u04C0\\u04C1\\u04C3\\u04C5\\u04C7\\u04C9\\u04CB\\u04CD\\u04D0\\u04D2\\u04D4\\u04D6\\u04D8\\u04DA\\u04DC\\u04DE\\u04E0\\u04E2\\u04E4\\u04E6\\u04E8\\u04EA\\u04EC\\u04EE\\u04F0\\u04F2\\u04F4\\u04F6\\u04F8\\u04FA\\u04FC\\u04FE\\u0500\\u0502\\u0504\\u0506\\u0508\\u050A\\u050C\\u050E\\u0510\\u0512\\u0514\\u0516\\u0518\\u051A\\u051C\\u051E\\u0520\\u0522\\u0524\\u0526\\u0531-\\u0556\\u10A0-\\u10C5\\u10C7\\u10CD\\u1E00\\u1E02\\u1E04\\u1E06\\u1E08\\u1E0A\\u1E0C\\u1E0E\\u1E10\\u1E12\\u1E14\\u1E16\\u1E18\\u1E1A\\u1E1C\\u1E1E\\u1E20\\u1E22\\u1E24\\u1E26\\u1E28\\u1E2A\\u1E2C\\u1E2E\\u1E30\\u1E32\\u1E34\\u1E36\\u1E38\\u1E3A\\u1E3C\\u1E3E\\u1E40\\u1E42\\u1E44\\u1E46\\u1E48\\u1E4A\\u1E4C\\u1E4E\\u1E50\\u1E52\\u1E54\\u1E56\\u1E58\\u1E5A\\u1E5C\\u1E5E\\u1E60\\u1E62\\u1E64\\u1E66\\u1E68\\u1E6A\\u1E6C\\u1E6E\\u1E70\\u1E72\\u1E74\\u1E76\\u1E78\\u1E7A\\u1E7C\\u1E7E\\u1E80\\u1E82\\u1E84\\u1E86\\u1E88\\u1E8A\\u1E8C\\u1E8E\\u1E90\\u1E92\\u1E94\\u1E9E\\u1EA0\\u1EA2\\u1EA4\\u1EA6\\u1EA8\\u1EAA\\u1EAC\\u1EAE\\u1EB0\\u1EB2\\u1EB4\\u1EB6\\u1EB8\\u1EBA\\u1EBC\\u1EBE\\u1EC0\\u1EC2\\u1EC4\\u1EC6\\u1EC8\\u1ECA\\u1ECC\\u1ECE\\u1ED0\\u1ED2\\u1ED4\\u1ED6\\u1ED8\\u1EDA\\u1EDC\\u1EDE\\u1EE0\\u1EE2\\u1EE4\\u1EE6\\u1EE8\\u1EEA\\u1EEC\\u1EEE\\u1EF0\\u1EF2\\u1EF4\\u1EF6\\u1EF8\\u1EFA\\u1EFC\\u1EFE\\u1F08-\\u1F0F\\u1F18-\\u1F1D\\u1F28-\\u1F2F\\u1F38-\\u1F3F\\u1F48-\\u1F4D\\u1F59\\u1F5B\\u1F5D\\u1F5F\\u1F68-\\u1F6F\\u1FB8-\\u1FBB\\u1FC8-\\u1FCB\\u1FD8-\\u1FDB\\u1FE8-\\u1FEC\\u1FF8-\\u1FFB\\u2102\\u2107\\u210B-\\u210D\\u2110-\\u2112\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u2130-\\u2133\\u213E\\u213F\\u2145\\u2183\\u2C00-\\u2C2E\\u2C60\\u2C62-\\u2C64\\u2C67\\u2C69\\u2C6B\\u2C6D-\\u2C70\\u2C72\\u2C75\\u2C7E-\\u2C80\\u2C82\\u2C84\\u2C86\\u2C88\\u2C8A\\u2C8C\\u2C8E\\u2C90\\u2C92\\u2C94\\u2C96\\u2C98\\u2C9A\\u2C9C\\u2C9E\\u2CA0\\u2CA2\\u2CA4\\u2CA6\\u2CA8\\u2CAA\\u2CAC\\u2CAE\\u2CB0\\u2CB2\\u2CB4\\u2CB6\\u2CB8\\u2CBA\\u2CBC\\u2CBE\\u2CC0\\u2CC2\\u2CC4\\u2CC6\\u2CC8\\u2CCA\\u2CCC\\u2CCE\\u2CD0\\u2CD2\\u2CD4\\u2CD6\\u2CD8\\u2CDA\\u2CDC\\u2CDE\\u2CE0\\u2CE2\\u2CEB\\u2CED\\u2CF2\\uA640\\uA642\\uA644\\uA646\\uA648\\uA64A\\uA64C\\uA64E\\uA650\\uA652\\uA654\\uA656\\uA658\\uA65A\\uA65C\\uA65E\\uA660\\uA662\\uA664\\uA666\\uA668\\uA66A\\uA66C\\uA680\\uA682\\uA684\\uA686\\uA688\\uA68A\\uA68C\\uA68E\\uA690\\uA692\\uA694\\uA696\\uA722\\uA724\\uA726\\uA728\\uA72A\\uA72C\\uA72E\\uA732\\uA734\\uA736\\uA738\\uA73A\\uA73C\\uA73E\\uA740\\uA742\\uA744\\uA746\\uA748\\uA74A\\uA74C\\uA74E\\uA750\\uA752\\uA754\\uA756\\uA758\\uA75A\\uA75C\\uA75E\\uA760\\uA762\\uA764\\uA766\\uA768\\uA76A\\uA76C\\uA76E\\uA779\\uA77B\\uA77D\\uA77E\\uA780\\uA782\\uA784\\uA786\\uA78B\\uA78D\\uA790\\uA792\\uA7A0\\uA7A2\\uA7A4\\uA7A6\\uA7A8\\uA7AA\\uFF21-\\uFF3A\\u01C5\\u01C8\\u01CB\\u01F2\\u1F88-\\u1F8F\\u1F98-\\u1F9F\\u1FA8-\\u1FAF\\u1FBC\\u1FCC\\u1FFC\\u02B0-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0374\\u037A\\u0559\\u0640\\u06E5\\u06E6\\u07F4\\u07F5\\u07FA\\u081A\\u0824\\u0828\\u0971\\u0E46\\u0EC6\\u10FC\\u17D7\\u1843\\u1AA7\\u1C78-\\u1C7D\\u1D2C-\\u1D6A\\u1D78\\u1D9B-\\u1DBF\\u2071\\u207F\\u2090-\\u209C\\u2C7C\\u2C7D\\u2D6F\\u2E2F\\u3005\\u3031-\\u3035\\u303B\\u309D\\u309E\\u30FC-\\u30FE\\uA015\\uA4F8-\\uA4FD\\uA60C\\uA67F\\uA717-\\uA71F\\uA770\\uA788\\uA7F8\\uA7F9\\uA9CF\\uAA70\\uAADD\\uAAF3\\uAAF4\\uFF70\\uFF9E\\uFF9F\\u00AA\\u00BA\\u01BB\\u01C0-\\u01C3\\u0294\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u063F\\u0641-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u0800-\\u0815\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0972-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E45\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10D0-\\u10FA\\u10FD-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17DC\\u1820-\\u1842\\u1844-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C77\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u2135-\\u2138\\u2D30-\\u2D67\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3006\\u303C\\u3041-\\u3096\\u309F\\u30A1-\\u30FA\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA014\\uA016-\\uA48C\\uA4D0-\\uA4F7\\uA500-\\uA60B\\uA610-\\uA61F\\uA62A\\uA62B\\uA66E\\uA6A0-\\uA6E5\\uA7FB-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA6F\\uAA71-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB\\uAADC\\uAAE0-\\uAAEA\\uAAF2\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF66-\\uFF6F\\uFF71-\\uFF9D\\uFFA0-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/),\r\n\r\n isLetter: function (value) {\r\n if (value < 256) {\r\n return (value >= 65 && value <= 90) || (value >= 97 && value <= 122);\r\n }\r\n\r\n return System.Char._isLetterMatch.test(String.fromCharCode(value));\r\n },\r\n\r\n _isHighSurrogateMatch: new RegExp(/[\\uD800-\\uDBFF]/),\r\n\r\n isHighSurrogate: function (value) {\r\n return System.Char._isHighSurrogateMatch.test(String.fromCharCode(value));\r\n },\r\n\r\n _isLowSurrogateMatch: new RegExp(/[\\uDC00-\\uDFFF]/),\r\n\r\n isLowSurrogate: function (value) {\r\n return System.Char._isLowSurrogateMatch.test(String.fromCharCode(value));\r\n },\r\n\r\n _isSurrogateMatch: new RegExp(/[\\uD800-\\uDFFF]/),\r\n\r\n isSurrogate: function (value) {\r\n return System.Char._isSurrogateMatch.test(String.fromCharCode(value));\r\n },\r\n\r\n _isNullMatch: new RegExp(\"\\u0000\"),\r\n\r\n isNull: function (value) {\r\n return System.Char._isNullMatch.test(String.fromCharCode(value));\r\n },\r\n\r\n _isSymbolMatch: new RegExp(/[\\u20A0-\\u20CF\\u20D0-\\u20FF\\u2100-\\u214F\\u2150-\\u218F\\u2190-\\u21FF\\u2200-\\u22FF\\u2300-\\u23FF\\u25A0-\\u25FF\\u2600-\\u26FF\\u2700-\\u27BF\\u27C0-\\u27EF\\u27F0-\\u27FF\\u2800-\\u28FF\\u2900-\\u297F\\u2980-\\u29FF\\u2A00-\\u2AFF\\u2B00-\\u2BFF]/),\r\n\r\n isSymbol: function (value) {\r\n if (value < 256) {\r\n return ([36, 43, 60, 61, 62, 94, 96, 124, 126, 162, 163, 164, 165, 166, 167, 168, 169, 172, 174, 175, 176, 177, 180, 182, 184, 215, 247].indexOf(value) != -1);\r\n }\r\n\r\n return System.Char._isSymbolMatch.test(String.fromCharCode(value));\r\n },\r\n\r\n _isSeparatorMatch: new RegExp(/[\\u2028\\u2029\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u200A\\u202F\\u205F\\u3000]/),\r\n\r\n isSeparator: function (value) {\r\n if (value < 256) {\r\n return (value == 32 || value == 160);\r\n }\r\n\r\n return System.Char._isSeparatorMatch.test(String.fromCharCode(value));\r\n },\r\n\r\n _isPunctuationMatch: new RegExp(/[\\u0021-\\u0023\\u0025-\\u002A\\u002C-\\u002F\\u003A\\u003B\\u003F\\u0040\\u005B-\\u005D\\u005F\\u007B\\u007D\\u00A1\\u00A7\\u00AB\\u00B6\\u00B7\\u00BB\\u00BF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u0AF0\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E3B\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65\\u002D\\u058A\\u05BE\\u1400\\u1806\\u2010-\\u2015\\u2E17\\u2E1A\\u2E3A\\u2E3B\\u301C\\u3030\\u30A0\\uFE31\\uFE32\\uFE58\\uFE63\\uFF0D\\u0028\\u005B\\u007B\\u0F3A\\u0F3C\\u169B\\u201A\\u201E\\u2045\\u207D\\u208D\\u2329\\u2768\\u276A\\u276C\\u276E\\u2770\\u2772\\u2774\\u27C5\\u27E6\\u27E8\\u27EA\\u27EC\\u27EE\\u2983\\u2985\\u2987\\u2989\\u298B\\u298D\\u298F\\u2991\\u2993\\u2995\\u2997\\u29D8\\u29DA\\u29FC\\u2E22\\u2E24\\u2E26\\u2E28\\u3008\\u300A\\u300C\\u300E\\u3010\\u3014\\u3016\\u3018\\u301A\\u301D\\uFD3E\\uFE17\\uFE35\\uFE37\\uFE39\\uFE3B\\uFE3D\\uFE3F\\uFE41\\uFE43\\uFE47\\uFE59\\uFE5B\\uFE5D\\uFF08\\uFF3B\\uFF5B\\uFF5F\\uFF62\\u0029\\u005D\\u007D\\u0F3B\\u0F3D\\u169C\\u2046\\u207E\\u208E\\u232A\\u2769\\u276B\\u276D\\u276F\\u2771\\u2773\\u2775\\u27C6\\u27E7\\u27E9\\u27EB\\u27ED\\u27EF\\u2984\\u2986\\u2988\\u298A\\u298C\\u298E\\u2990\\u2992\\u2994\\u2996\\u2998\\u29D9\\u29DB\\u29FD\\u2E23\\u2E25\\u2E27\\u2E29\\u3009\\u300B\\u300D\\u300F\\u3011\\u3015\\u3017\\u3019\\u301B\\u301E\\u301F\\uFD3F\\uFE18\\uFE36\\uFE38\\uFE3A\\uFE3C\\uFE3E\\uFE40\\uFE42\\uFE44\\uFE48\\uFE5A\\uFE5C\\uFE5E\\uFF09\\uFF3D\\uFF5D\\uFF60\\uFF63\\u00AB\\u2018\\u201B\\u201C\\u201F\\u2039\\u2E02\\u2E04\\u2E09\\u2E0C\\u2E1C\\u2E20\\u00BB\\u2019\\u201D\\u203A\\u2E03\\u2E05\\u2E0A\\u2E0D\\u2E1D\\u2E21\\u005F\\u203F\\u2040\\u2054\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFF3F\\u0021-\\u0023\\u0025-\\u0027\\u002A\\u002C\\u002E\\u002F\\u003A\\u003B\\u003F\\u0040\\u005C\\u00A1\\u00A7\\u00B6\\u00B7\\u00BF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u0AF0\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u166D\\u166E\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u1805\\u1807-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2016\\u2017\\u2020-\\u2027\\u2030-\\u2038\\u203B-\\u203E\\u2041-\\u2043\\u2047-\\u2051\\u2053\\u2055-\\u205E\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00\\u2E01\\u2E06-\\u2E08\\u2E0B\\u2E0E-\\u2E16\\u2E18\\u2E19\\u2E1B\\u2E1E\\u2E1F\\u2E2A-\\u2E2E\\u2E30-\\u2E39\\u3001-\\u3003\\u303D\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFE10-\\uFE16\\uFE19\\uFE30\\uFE45\\uFE46\\uFE49-\\uFE4C\\uFE50-\\uFE52\\uFE54-\\uFE57\\uFE5F-\\uFE61\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF07\\uFF0A\\uFF0C\\uFF0E\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3C\\uFF61\\uFF64\\uFF65]/),\r\n\r\n isPunctuation: function (value) {\r\n if (value < 256) {\r\n return ([33, 34, 35, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 58, 59, 63, 64, 91, 92, 93, 95, 123, 125, 161, 171, 173, 183, 187, 191].indexOf(value) != -1);\r\n }\r\n\r\n return System.Char._isPunctuationMatch.test(String.fromCharCode(value));\r\n },\r\n\r\n _isNumberMatch: new RegExp(/[\\u0030-\\u0039\\u00B2\\u00B3\\u00B9\\u00BC-\\u00BE\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u09F4-\\u09F9\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0B72-\\u0B77\\u0BE6-\\u0BF2\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0CE6-\\u0CEF\\u0D66-\\u0D75\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F33\\u1040-\\u1049\\u1090-\\u1099\\u1369-\\u137C\\u16EE-\\u16F0\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19DA\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\u2070\\u2074-\\u2079\\u2080-\\u2089\\u2150-\\u2182\\u2185-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2CFD\\u3007\\u3021-\\u3029\\u3038-\\u303A\\u3192-\\u3195\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\uA620-\\uA629\\uA6E6-\\uA6EF\\uA830-\\uA835\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19\\u0030-\\u0039\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19\\u16EE-\\u16F0\\u2160-\\u2182\\u2185-\\u2188\\u3007\\u3021-\\u3029\\u3038-\\u303A\\uA6E6-\\uA6EF\\u00B2\\u00B3\\u00B9\\u00BC-\\u00BE\\u09F4-\\u09F9\\u0B72-\\u0B77\\u0BF0-\\u0BF2\\u0C78-\\u0C7E\\u0D70-\\u0D75\\u0F2A-\\u0F33\\u1369-\\u137C\\u17F0-\\u17F9\\u19DA\\u2070\\u2074-\\u2079\\u2080-\\u2089\\u2150-\\u215F\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2CFD\\u3192-\\u3195\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\uA830-\\uA835]/),\r\n\r\n isNumber: function (value) {\r\n if (value < 256) {\r\n return ([48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 178, 179, 185, 188, 189, 190].indexOf(value) != -1);\r\n }\r\n\r\n return System.Char._isNumberMatch.test(String.fromCharCode(value));\r\n },\r\n\r\n _isControlMatch: new RegExp(/[\\u0000-\\u001F\\u007F\\u0080-\\u009F]/),\r\n\r\n isControl: function (value) {\r\n if (value < 256) {\r\n return (value >= 0 && value <= 31) || (value >= 127 && value <= 159);\r\n }\r\n\r\n return System.Char._isControlMatch.test(String.fromCharCode(value));\r\n },\r\n\r\n isLatin1: function (ch) {\r\n return (ch <= 255);\r\n },\r\n\r\n isAscii: function (ch) {\r\n return (ch <= 127);\r\n },\r\n\r\n isUpper: function (s, index) {\r\n if (s == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"s\");\r\n }\r\n\r\n if ((index >>> 0) >= ((s.length) >>> 0)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n\r\n var c = s.charCodeAt(index);\r\n\r\n if (System.Char.isLatin1(c)) {\r\n if (System.Char.isAscii(c)) {\r\n return (c >= 65 && c <= 90);\r\n }\r\n }\r\n\r\n return Bridge.isUpper(c);\r\n },\r\n\r\n equals: function (v1, v2) {\r\n if (Bridge.is(v1, System.Char) && Bridge.is(v2, System.Char)) {\r\n return Bridge.unbox(v1, true) === Bridge.unbox(v2, true);\r\n }\r\n\r\n return false;\r\n },\r\n\r\n equalsT: function (v1, v2) {\r\n return Bridge.unbox(v1, true) === Bridge.unbox(v2, true);\r\n },\r\n\r\n getHashCode: function (v) {\r\n return v | (v << 16);\r\n }\r\n }\r\n });\r\n\r\n Bridge.Class.addExtend(System.Char, [System.IComparable$1(System.Char), System.IEquatable$1(System.Char)]);\r\n\r\n // @source Ref.js\r\n\r\n Bridge.define(\"Bridge.Ref$1\", function (T) { return {\r\n statics: {\r\n methods: {\r\n op_Implicit: function (reference) {\r\n return reference.Value;\r\n }\r\n }\r\n },\r\n fields: {\r\n getter: null,\r\n setter: null\r\n },\r\n props: {\r\n Value: {\r\n get: function () {\r\n return this.getter();\r\n },\r\n set: function (value) {\r\n this.setter(value);\r\n }\r\n },\r\n v: {\r\n get: function () {\r\n return this.Value;\r\n },\r\n set: function (value) {\r\n this.Value = value;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function (getter, setter) {\r\n this.$initialize();\r\n this.getter = getter;\r\n this.setter = setter;\r\n }\r\n },\r\n methods: {\r\n toString: function () {\r\n return Bridge.toString(this.Value);\r\n },\r\n valueOf: function () {\r\n return this.Value;\r\n }\r\n }\r\n }; });\r\n\r\n // @source IConvertible.js\r\n\r\n Bridge.define(\"System.IConvertible\", {\r\n $kind: \"interface\"\r\n });\r\n\r\n // @source HResults.js\r\n\r\n Bridge.define(\"System.HResults\");\r\n\r\n // @source Exception.js\r\n\r\n Bridge.define(\"System.Exception\", {\r\n config: {\r\n properties: {\r\n Message: {\r\n get: function () {\r\n return this.message;\r\n }\r\n },\r\n\r\n InnerException: {\r\n get: function () {\r\n return this.innerException;\r\n }\r\n },\r\n\r\n StackTrace: {\r\n get: function () {\r\n return this.errorStack.stack;\r\n }\r\n },\r\n\r\n Data: {\r\n get: function () {\r\n return this.data;\r\n }\r\n },\r\n\r\n HResult: {\r\n get: function () {\r\n return this._HResult;\r\n },\r\n set: function (value) {\r\n this._HResult = value;\r\n }\r\n }\r\n }\r\n },\r\n\r\n ctor: function (message, innerException) {\r\n this.$initialize();\r\n this.message = message ? message : (\"Exception of type '\" + Bridge.getTypeName(this) + \"' was thrown.\");\r\n this.innerException = innerException ? innerException : null;\r\n this.errorStack = new Error(this.message);\r\n this.data = new (System.Collections.Generic.Dictionary$2(System.Object, System.Object))();\r\n },\r\n\r\n getBaseException: function () {\r\n var inner = this.innerException;\r\n var back = this;\r\n\r\n while (inner != null) {\r\n back = inner;\r\n inner = inner.innerException;\r\n }\r\n\r\n return back;\r\n },\r\n\r\n toString: function () {\r\n var builder = Bridge.getTypeName(this);\r\n\r\n if (this.Message != null) {\r\n builder += \": \" + this.Message + \"\\n\";\r\n } else {\r\n builder += \"\\n\";\r\n }\r\n\r\n if (this.StackTrace != null) {\r\n builder += this.StackTrace + \"\\n\";\r\n }\r\n\r\n return builder;\r\n },\r\n\r\n statics: {\r\n create: function (error) {\r\n if (Bridge.is(error, System.Exception)) {\r\n return error;\r\n }\r\n\r\n var ex;\r\n\r\n if (error instanceof TypeError) {\r\n ex = new System.NullReferenceException.$ctor1(error.message);\r\n } else if (error instanceof RangeError) {\r\n ex = new System.ArgumentOutOfRangeException.$ctor1(error.message);\r\n } else if (error instanceof Error) {\r\n return new System.SystemException.$ctor1(error);\r\n } else if (error && error.error && error.error.stack) {\r\n ex = new System.Exception(error.error.stack);\r\n } else {\r\n ex = new System.Exception(error ? error.message ? error.message : error.toString() : null);\r\n }\r\n\r\n ex.errorStack = error;\r\n\r\n return ex;\r\n }\r\n }\r\n });\r\n\r\n // @source SystemException.js\r\n\r\n Bridge.define(\"System.SystemException\", {\r\n inherits: [System.Exception],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.Exception.ctor.call(this, \"System error.\");\r\n this.HResult = -2146233087;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.Exception.ctor.call(this, message);\r\n this.HResult = -2146233087;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.Exception.ctor.call(this, message, innerException);\r\n this.HResult = -2146233087;\r\n }\r\n }\r\n });\r\n\r\n // @source OutOfMemoryException.js\r\n\r\n Bridge.define(\"System.OutOfMemoryException\", {\r\n inherits: [System.SystemException],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, \"Insufficient memory to continue the execution of the program.\");\r\n this.HResult = -2147024362;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2147024362;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, innerException);\r\n this.HResult = -2147024362;\r\n }\r\n }\r\n });\r\n\r\n // @source ArrayTypeMismatchException.js\r\n\r\n Bridge.define(\"System.ArrayTypeMismatchException\", {\r\n inherits: [System.SystemException],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, \"Attempted to access an element as a type incompatible with the array.\");\r\n this.HResult = -2146233085;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2146233085;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, innerException);\r\n this.HResult = -2146233085;\r\n }\r\n }\r\n });\r\n\r\n // @source MissingManifestResourceException.js\r\n\r\n Bridge.define(\"System.Resources.MissingManifestResourceException\", {\r\n inherits: [System.SystemException],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, \"Unable to find manifest resource.\");\r\n this.HResult = -2146233038;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2146233038;\r\n },\r\n $ctor2: function (message, inner) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, inner);\r\n this.HResult = -2146233038;\r\n }\r\n }\r\n });\r\n\r\n // @source TextInfo.js\r\n\r\n Bridge.define(\"System.Globalization.TextInfo\", {\r\n inherits: [System.ICloneable],\r\n fields: {\r\n listSeparator: null\r\n },\r\n props: {\r\n ANSICodePage: 0,\r\n CultureName: null,\r\n EBCDICCodePage: 0,\r\n IsReadOnly: false,\r\n IsRightToLeft: false,\r\n LCID: 0,\r\n ListSeparator: {\r\n get: function () {\r\n return this.listSeparator;\r\n },\r\n set: function (value) {\r\n this.VerifyWritable();\r\n\r\n this.listSeparator = value;\r\n }\r\n },\r\n MacCodePage: 0,\r\n OEMCodePage: 0\r\n },\r\n alias: [\"clone\", \"System$ICloneable$clone\"],\r\n methods: {\r\n clone: function () {\r\n return Bridge.copy(new System.Globalization.TextInfo(), this, System.Array.init([\"ANSICodePage\", \"CultureName\", \"EBCDICCodePage\", \"IsRightToLeft\", \"LCID\", \"listSeparator\", \"MacCodePage\", \"OEMCodePage\", \"IsReadOnly\"], System.String));\r\n },\r\n VerifyWritable: function () {\r\n if (this.IsReadOnly) {\r\n throw new System.InvalidOperationException.$ctor1(\"Instance is read-only.\");\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source BidiCategory.js\r\n\r\n Bridge.define(\"System.Globalization.BidiCategory\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n LeftToRight: 0,\r\n LeftToRightEmbedding: 1,\r\n LeftToRightOverride: 2,\r\n RightToLeft: 3,\r\n RightToLeftArabic: 4,\r\n RightToLeftEmbedding: 5,\r\n RightToLeftOverride: 6,\r\n PopDirectionalFormat: 7,\r\n EuropeanNumber: 8,\r\n EuropeanNumberSeparator: 9,\r\n EuropeanNumberTerminator: 10,\r\n ArabicNumber: 11,\r\n CommonNumberSeparator: 12,\r\n NonSpacingMark: 13,\r\n BoundaryNeutral: 14,\r\n ParagraphSeparator: 15,\r\n SegmentSeparator: 16,\r\n Whitespace: 17,\r\n OtherNeutrals: 18,\r\n LeftToRightIsolate: 19,\r\n RightToLeftIsolate: 20,\r\n FirstStrongIsolate: 21,\r\n PopDirectionIsolate: 22\r\n }\r\n }\r\n });\r\n\r\n // @source SortVersion.js\r\n\r\n Bridge.define(\"System.Globalization.SortVersion\", {\r\n inherits: function () { return [System.IEquatable$1(System.Globalization.SortVersion)]; },\r\n statics: {\r\n methods: {\r\n op_Equality: function (left, right) {\r\n if (left != null) {\r\n return left.equalsT(right);\r\n }\r\n\r\n if (right != null) {\r\n return right.equalsT(left);\r\n }\r\n\r\n return true;\r\n },\r\n op_Inequality: function (left, right) {\r\n return !(System.Globalization.SortVersion.op_Equality(left, right));\r\n }\r\n }\r\n },\r\n fields: {\r\n m_NlsVersion: 0,\r\n m_SortId: null\r\n },\r\n props: {\r\n FullVersion: {\r\n get: function () {\r\n return this.m_NlsVersion;\r\n }\r\n },\r\n SortId: {\r\n get: function () {\r\n return this.m_SortId;\r\n }\r\n }\r\n },\r\n alias: [\"equalsT\", \"System$IEquatable$1$System$Globalization$SortVersion$equalsT\"],\r\n ctors: {\r\n init: function () {\r\n this.m_SortId = new System.Guid();\r\n },\r\n ctor: function (fullVersion, sortId) {\r\n this.$initialize();\r\n this.m_SortId = sortId;\r\n this.m_NlsVersion = fullVersion;\r\n },\r\n $ctor1: function (nlsVersion, effectiveId, customVersion) {\r\n this.$initialize();\r\n this.m_NlsVersion = nlsVersion;\r\n\r\n if (System.Guid.op_Equality(customVersion, System.Guid.Empty)) {\r\n var b1 = (effectiveId >> 24) & 255;\r\n var b2 = ((effectiveId & 16711680) >> 16) & 255;\r\n var b3 = ((effectiveId & 65280) >> 8) & 255;\r\n var b4 = (effectiveId & 255) & 255;\r\n customVersion = new System.Guid.$ctor2(0, 0, 0, 0, 0, 0, 0, b1, b2, b3, b4);\r\n }\r\n\r\n this.m_SortId = customVersion;\r\n }\r\n },\r\n methods: {\r\n equals: function (obj) {\r\n var n = Bridge.as(obj, System.Globalization.SortVersion);\r\n if (System.Globalization.SortVersion.op_Inequality(n, null)) {\r\n return this.equalsT(n);\r\n }\r\n\r\n return false;\r\n },\r\n equalsT: function (other) {\r\n if (System.Globalization.SortVersion.op_Equality(other, null)) {\r\n return false;\r\n }\r\n\r\n return this.m_NlsVersion === other.m_NlsVersion && System.Guid.op_Equality(this.m_SortId, other.m_SortId);\r\n },\r\n getHashCode: function () {\r\n return Bridge.Int.mul(this.m_NlsVersion, 7) | this.m_SortId.getHashCode();\r\n }\r\n }\r\n });\r\n\r\n // @source UnicodeCategory.js\r\n\r\n Bridge.define(\"System.Globalization.UnicodeCategory\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n UppercaseLetter: 0,\r\n LowercaseLetter: 1,\r\n TitlecaseLetter: 2,\r\n ModifierLetter: 3,\r\n OtherLetter: 4,\r\n NonSpacingMark: 5,\r\n SpacingCombiningMark: 6,\r\n EnclosingMark: 7,\r\n DecimalDigitNumber: 8,\r\n LetterNumber: 9,\r\n OtherNumber: 10,\r\n SpaceSeparator: 11,\r\n LineSeparator: 12,\r\n ParagraphSeparator: 13,\r\n Control: 14,\r\n Format: 15,\r\n Surrogate: 16,\r\n PrivateUse: 17,\r\n ConnectorPunctuation: 18,\r\n DashPunctuation: 19,\r\n OpenPunctuation: 20,\r\n ClosePunctuation: 21,\r\n InitialQuotePunctuation: 22,\r\n FinalQuotePunctuation: 23,\r\n OtherPunctuation: 24,\r\n MathSymbol: 25,\r\n CurrencySymbol: 26,\r\n ModifierSymbol: 27,\r\n OtherSymbol: 28,\r\n OtherNotAssigned: 29\r\n }\r\n }\r\n });\r\n\r\n // @source DaylightTimeStruct.js\r\n\r\n Bridge.define(\"System.Globalization.DaylightTimeStruct\", {\r\n $kind: \"struct\",\r\n statics: {\r\n methods: {\r\n getDefaultValue: function () { return new System.Globalization.DaylightTimeStruct(); }\r\n }\r\n },\r\n fields: {\r\n Start: null,\r\n End: null,\r\n Delta: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.Start = System.DateTime.getDefaultValue();\r\n this.End = System.DateTime.getDefaultValue();\r\n this.Delta = new System.TimeSpan();\r\n },\r\n $ctor1: function (start, end, delta) {\r\n this.$initialize();\r\n this.Start = start;\r\n this.End = end;\r\n this.Delta = delta;\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n getHashCode: function () {\r\n var h = Bridge.addHash([7445027511, this.Start, this.End, this.Delta]);\r\n return h;\r\n },\r\n equals: function (o) {\r\n if (!Bridge.is(o, System.Globalization.DaylightTimeStruct)) {\r\n return false;\r\n }\r\n return Bridge.equals(this.Start, o.Start) && Bridge.equals(this.End, o.End) && Bridge.equals(this.Delta, o.Delta);\r\n },\r\n $clone: function (to) {\r\n var s = to || new System.Globalization.DaylightTimeStruct();\r\n s.Start = this.Start;\r\n s.End = this.End;\r\n s.Delta = this.Delta;\r\n return s;\r\n }\r\n }\r\n });\r\n\r\n // @source DaylightTime.js\r\n\r\n Bridge.define(\"System.Globalization.DaylightTime\", {\r\n fields: {\r\n _start: null,\r\n _end: null,\r\n _delta: null\r\n },\r\n props: {\r\n Start: {\r\n get: function () {\r\n return this._start;\r\n }\r\n },\r\n End: {\r\n get: function () {\r\n return this._end;\r\n }\r\n },\r\n Delta: {\r\n get: function () {\r\n return this._delta;\r\n }\r\n }\r\n },\r\n ctors: {\r\n init: function () {\r\n this._start = System.DateTime.getDefaultValue();\r\n this._end = System.DateTime.getDefaultValue();\r\n this._delta = new System.TimeSpan();\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n },\r\n $ctor1: function (start, end, delta) {\r\n this.$initialize();\r\n this._start = start;\r\n this._end = end;\r\n this._delta = delta;\r\n }\r\n }\r\n });\r\n\r\n // @source Globalization.js\r\n\r\n Bridge.define(\"System.Globalization.DateTimeFormatInfo\", {\r\n inherits: [System.IFormatProvider, System.ICloneable],\r\n\r\n config: {\r\n alias: [\r\n \"getFormat\", \"System$IFormatProvider$getFormat\"\r\n ]\r\n },\r\n\r\n statics: {\r\n $allStandardFormats: {\r\n \"d\": \"shortDatePattern\",\r\n \"D\": \"longDatePattern\",\r\n \"f\": \"longDatePattern shortTimePattern\",\r\n \"F\": \"longDatePattern longTimePattern\",\r\n \"g\": \"shortDatePattern shortTimePattern\",\r\n \"G\": \"shortDatePattern longTimePattern\",\r\n \"m\": \"monthDayPattern\",\r\n \"M\": \"monthDayPattern\",\r\n \"o\": \"roundtripFormat\",\r\n \"O\": \"roundtripFormat\",\r\n \"r\": \"rfc1123\",\r\n \"R\": \"rfc1123\",\r\n \"s\": \"sortableDateTimePattern\",\r\n \"S\": \"sortableDateTimePattern1\",\r\n \"t\": \"shortTimePattern\",\r\n \"T\": \"longTimePattern\",\r\n \"u\": \"universalSortableDateTimePattern\",\r\n \"U\": \"longDatePattern longTimePattern\",\r\n \"y\": \"yearMonthPattern\",\r\n \"Y\": \"yearMonthPattern\"\r\n },\r\n\r\n ctor: function () {\r\n this.invariantInfo = Bridge.merge(new System.Globalization.DateTimeFormatInfo(), {\r\n abbreviatedDayNames: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\r\n abbreviatedMonthGenitiveNames: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\", \"\"],\r\n abbreviatedMonthNames: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\", \"\"],\r\n amDesignator: \"AM\",\r\n dateSeparator: \"/\",\r\n dayNames: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\r\n firstDayOfWeek: 0,\r\n fullDateTimePattern: \"dddd, dd MMMM yyyy HH:mm:ss\",\r\n longDatePattern: \"dddd, dd MMMM yyyy\",\r\n longTimePattern: \"HH:mm:ss\",\r\n monthDayPattern: \"MMMM dd\",\r\n monthGenitiveNames: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\", \"\"],\r\n monthNames: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\", \"\"],\r\n pmDesignator: \"PM\",\r\n rfc1123: \"ddd, dd MMM yyyy HH':'mm':'ss 'GMT'\",\r\n shortDatePattern: \"MM/dd/yyyy\",\r\n shortestDayNames: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\r\n shortTimePattern: \"HH:mm\",\r\n sortableDateTimePattern: \"yyyy'-'MM'-'dd'T'HH':'mm':'ss\",\r\n sortableDateTimePattern1: \"yyyy'-'MM'-'dd\",\r\n timeSeparator: \":\",\r\n universalSortableDateTimePattern: \"yyyy'-'MM'-'dd HH':'mm':'ss'Z'\",\r\n yearMonthPattern: \"yyyy MMMM\",\r\n roundtripFormat: \"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffzzz\"\r\n });\r\n }\r\n },\r\n\r\n getFormat: function (type) {\r\n switch (type) {\r\n case System.Globalization.DateTimeFormatInfo:\r\n return this;\r\n default:\r\n return null;\r\n }\r\n },\r\n\r\n getAbbreviatedDayName: function (dayofweek) {\r\n if (dayofweek < 0 || dayofweek > 6) {\r\n throw new System.ArgumentOutOfRangeException$ctor1(\"dayofweek\");\r\n }\r\n\r\n return this.abbreviatedDayNames[dayofweek];\r\n },\r\n\r\n getAbbreviatedMonthName: function (month) {\r\n if (month < 1 || month > 13) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"month\");\r\n }\r\n\r\n return this.abbreviatedMonthNames[month - 1];\r\n },\r\n\r\n getAllDateTimePatterns: function (format, returnNull) {\r\n var f = System.Globalization.DateTimeFormatInfo.$allStandardFormats,\r\n formats,\r\n names,\r\n pattern,\r\n i,\r\n result = [];\r\n\r\n if (format) {\r\n if (!f[format]) {\r\n if (returnNull) {\r\n return null;\r\n }\r\n\r\n throw new System.ArgumentException.$ctor3(\"\", \"format\");\r\n }\r\n\r\n formats = {};\r\n formats[format] = f[format];\r\n } else {\r\n formats = f;\r\n }\r\n\r\n for (f in formats) {\r\n names = formats[f].split(\" \");\r\n pattern = \"\";\r\n\r\n for (i = 0; i < names.length; i++) {\r\n pattern = (i === 0 ? \"\" : (pattern + \" \")) + this[names[i]];\r\n }\r\n\r\n result.push(pattern);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n getDayName: function (dayofweek) {\r\n if (dayofweek < 0 || dayofweek > 6) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"dayofweek\");\r\n }\r\n\r\n return this.dayNames[dayofweek];\r\n },\r\n\r\n getMonthName: function (month) {\r\n if (month < 1 || month > 13) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"month\");\r\n }\r\n\r\n return this.monthNames[month - 1];\r\n },\r\n\r\n getShortestDayName: function (dayOfWeek) {\r\n if (dayOfWeek < 0 || dayOfWeek > 6) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"dayOfWeek\");\r\n }\r\n\r\n return this.shortestDayNames[dayOfWeek];\r\n },\r\n\r\n clone: function () {\r\n return Bridge.copy(new System.Globalization.DateTimeFormatInfo(), this, [\r\n \"abbreviatedDayNames\",\r\n \"abbreviatedMonthGenitiveNames\",\r\n \"abbreviatedMonthNames\",\r\n \"amDesignator\",\r\n \"dateSeparator\",\r\n \"dayNames\",\r\n \"firstDayOfWeek\",\r\n \"fullDateTimePattern\",\r\n \"longDatePattern\",\r\n \"longTimePattern\",\r\n \"monthDayPattern\",\r\n \"monthGenitiveNames\",\r\n \"monthNames\",\r\n \"pmDesignator\",\r\n \"rfc1123\",\r\n \"shortDatePattern\",\r\n \"shortestDayNames\",\r\n \"shortTimePattern\",\r\n \"sortableDateTimePattern\",\r\n \"timeSeparator\",\r\n \"universalSortableDateTimePattern\",\r\n \"yearMonthPattern\",\r\n \"roundtripFormat\"\r\n ]);\r\n }\r\n });\r\n\r\n Bridge.define(\"System.Globalization.NumberFormatInfo\", {\r\n inherits: [System.IFormatProvider, System.ICloneable],\r\n\r\n config: {\r\n alias: [\r\n \"getFormat\", \"System$IFormatProvider$getFormat\"\r\n ]\r\n },\r\n\r\n statics: {\r\n ctor: function () {\r\n this.numberNegativePatterns = [\"(n)\", \"-n\", \"- n\", \"n-\", \"n -\"];\r\n this.currencyNegativePatterns = [\"($n)\", \"-$n\", \"$-n\", \"$n-\", \"(n$)\", \"-n$\", \"n-$\", \"n$-\", \"-n $\", \"-$ n\", \"n $-\", \"$ n-\", \"$ -n\", \"n- $\", \"($ n)\", \"(n $)\"];\r\n this.currencyPositivePatterns = [\"$n\", \"n$\", \"$ n\", \"n $\"];\r\n this.percentNegativePatterns = [\"-n %\", \"-n%\", \"-%n\", \"%-n\", \"%n-\", \"n-%\", \"n%-\", \"-% n\", \"n %-\", \"% n-\", \"% -n\", \"n- %\"];\r\n this.percentPositivePatterns = [\"n %\", \"n%\", \"%n\", \"% n\"];\r\n\r\n this.invariantInfo = Bridge.merge(new System.Globalization.NumberFormatInfo(), {\r\n nanSymbol: \"NaN\",\r\n negativeSign: \"-\",\r\n positiveSign: \"+\",\r\n negativeInfinitySymbol: \"-Infinity\",\r\n positiveInfinitySymbol: \"Infinity\",\r\n\r\n percentSymbol: \"%\",\r\n percentGroupSizes: [3],\r\n percentDecimalDigits: 2,\r\n percentDecimalSeparator: \".\",\r\n percentGroupSeparator: \",\",\r\n percentPositivePattern: 0,\r\n percentNegativePattern: 0,\r\n\r\n currencySymbol: \"¤\",\r\n currencyGroupSizes: [3],\r\n currencyDecimalDigits: 2,\r\n currencyDecimalSeparator: \".\",\r\n currencyGroupSeparator: \",\",\r\n currencyNegativePattern: 0,\r\n currencyPositivePattern: 0,\r\n\r\n numberGroupSizes: [3],\r\n numberDecimalDigits: 2,\r\n numberDecimalSeparator: \".\",\r\n numberGroupSeparator: \",\",\r\n numberNegativePattern: 1\r\n });\r\n }\r\n },\r\n\r\n getFormat: function (type) {\r\n switch (type) {\r\n case System.Globalization.NumberFormatInfo:\r\n return this;\r\n default:\r\n return null;\r\n }\r\n },\r\n\r\n clone: function () {\r\n return Bridge.copy(new System.Globalization.NumberFormatInfo(), this, [\r\n \"nanSymbol\",\r\n \"negativeSign\",\r\n \"positiveSign\",\r\n \"negativeInfinitySymbol\",\r\n \"positiveInfinitySymbol\",\r\n \"percentSymbol\",\r\n \"percentGroupSizes\",\r\n \"percentDecimalDigits\",\r\n \"percentDecimalSeparator\",\r\n \"percentGroupSeparator\",\r\n \"percentPositivePattern\",\r\n \"percentNegativePattern\",\r\n \"currencySymbol\",\r\n \"currencyGroupSizes\",\r\n \"currencyDecimalDigits\",\r\n \"currencyDecimalSeparator\",\r\n \"currencyGroupSeparator\",\r\n \"currencyNegativePattern\",\r\n \"currencyPositivePattern\",\r\n \"numberGroupSizes\",\r\n \"numberDecimalDigits\",\r\n \"numberDecimalSeparator\",\r\n \"numberGroupSeparator\",\r\n \"numberNegativePattern\"\r\n ]);\r\n }\r\n });\r\n\r\n Bridge.define(\"System.Globalization.CultureInfo\", {\r\n inherits: [System.IFormatProvider, System.ICloneable],\r\n\r\n config: {\r\n alias: [\r\n \"getFormat\", \"System$IFormatProvider$getFormat\"\r\n ]\r\n },\r\n\r\n $entryPoint: true,\r\n\r\n statics: {\r\n ctor: function () {\r\n this.cultures = this.cultures || {};\r\n\r\n this.invariantCulture = Bridge.merge(new System.Globalization.CultureInfo(\"iv\", true), {\r\n englishName: \"Invariant Language (Invariant Country)\",\r\n nativeName: \"Invariant Language (Invariant Country)\",\r\n numberFormat: System.Globalization.NumberFormatInfo.invariantInfo,\r\n dateTimeFormat: System.Globalization.DateTimeFormatInfo.invariantInfo,\r\n TextInfo: Bridge.merge(new System.Globalization.TextInfo(), {\r\n ANSICodePage: 1252,\r\n CultureName: \"\",\r\n EBCDICCodePage: 37,\r\n listSeparator: \",\",\r\n IsRightToLeft: false,\r\n LCID: 127,\r\n MacCodePage: 10000,\r\n OEMCodePage: 437,\r\n IsReadOnly: true\r\n })\r\n });\r\n\r\n this.setCurrentCulture(System.Globalization.CultureInfo.invariantCulture);\r\n },\r\n\r\n getCurrentCulture: function () {\r\n return this.currentCulture;\r\n },\r\n\r\n setCurrentCulture: function (culture) {\r\n this.currentCulture = culture;\r\n\r\n System.Globalization.DateTimeFormatInfo.currentInfo = culture.dateTimeFormat;\r\n System.Globalization.NumberFormatInfo.currentInfo = culture.numberFormat;\r\n },\r\n\r\n getCultureInfo: function (name) {\r\n if (name == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"name\");\r\n } else if (name === \"\") {\r\n return System.Globalization.CultureInfo.invariantCulture;\r\n }\r\n\r\n var c = this.cultures[name];\r\n\r\n if (c == null) {\r\n throw new System.Globalization.CultureNotFoundException.$ctor5(\"name\", name);\r\n }\r\n\r\n return c;\r\n },\r\n\r\n getCultures: function () {\r\n var names = Bridge.getPropertyNames(this.cultures),\r\n result = [],\r\n i;\r\n\r\n for (i = 0; i < names.length; i++) {\r\n result.push(this.cultures[names[i]]);\r\n }\r\n\r\n return result;\r\n }\r\n },\r\n\r\n ctor: function (name, create) {\r\n this.$initialize();\r\n this.name = name;\r\n\r\n if (!System.Globalization.CultureInfo.cultures) {\r\n System.Globalization.CultureInfo.cultures = {};\r\n }\r\n\r\n if (name == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"name\");\r\n }\r\n\r\n var c;\r\n\r\n if (name === \"\") {\r\n c = System.Globalization.CultureInfo.invariantCulture;\r\n } else {\r\n c = System.Globalization.CultureInfo.cultures[name];\r\n }\r\n\r\n if (c == null) {\r\n if (!create) {\r\n throw new System.Globalization.CultureNotFoundException.$ctor5(\"name\", name);\r\n }\r\n\r\n System.Globalization.CultureInfo.cultures[name] = this;\r\n } else {\r\n Bridge.copy(this, c, [\r\n \"englishName\",\r\n \"nativeName\",\r\n \"numberFormat\",\r\n \"dateTimeFormat\",\r\n \"TextInfo\"\r\n ]);\r\n\r\n this.TextInfo.IsReadOnly = false;\r\n }\r\n },\r\n\r\n getFormat: function (type) {\r\n switch (type) {\r\n case System.Globalization.NumberFormatInfo:\r\n return this.numberFormat;\r\n case System.Globalization.DateTimeFormatInfo:\r\n return this.dateTimeFormat;\r\n default:\r\n return null;\r\n }\r\n },\r\n\r\n clone: function () {\r\n return new System.Globalization.CultureInfo(this.name);\r\n }\r\n });\r\n\r\n // @source Environment.js\r\n\r\n Bridge.define(\"System.Environment\", {\r\n statics: {\r\n fields: {\r\n Variables: null\r\n },\r\n props: {\r\n Location: {\r\n get: function () {\r\n var g = Bridge.global;\r\n\r\n if (g && g.location) {\r\n return g.location;\r\n }\r\n\r\n return null;\r\n }\r\n },\r\n CommandLine: {\r\n get: function () {\r\n return (System.Environment.GetCommandLineArgs()).join(\" \");\r\n }\r\n },\r\n CurrentDirectory: {\r\n get: function () {\r\n var l = System.Environment.Location;\r\n\r\n return l ? l.pathname : \"\";\r\n },\r\n set: function (value) {\r\n var l = System.Environment.Location;\r\n\r\n if (l) {\r\n l.pathname = value;\r\n }\r\n }\r\n },\r\n ExitCode: 0,\r\n Is64BitOperatingSystem: {\r\n get: function () {\r\n var n = Bridge.global ? Bridge.global.navigator : null;\r\n\r\n if (n && (!Bridge.referenceEquals(n.userAgent.indexOf(\"WOW64\"), -1) || !Bridge.referenceEquals(n.userAgent.indexOf(\"Win64\"), -1))) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n },\r\n ProcessorCount: {\r\n get: function () {\r\n var n = Bridge.global ? Bridge.global.navigator : null;\r\n\r\n if (n && n.hardwareConcurrency) {\r\n return n.hardwareConcurrency;\r\n }\r\n\r\n return 1;\r\n }\r\n },\r\n StackTrace: {\r\n get: function () {\r\n var err = new Error();\r\n var s = err.stack;\r\n\r\n if (!System.String.isNullOrEmpty(s)) {\r\n if (System.String.indexOf(s, \"at\") >= 0) {\r\n return s.substr(System.String.indexOf(s, \"at\"));\r\n }\r\n }\r\n\r\n return \"\";\r\n }\r\n },\r\n Version: {\r\n get: function () {\r\n var s = Bridge.SystemAssembly.compiler;\r\n\r\n var v = { };\r\n\r\n if (System.Version.tryParse(s, v)) {\r\n return v.v;\r\n }\r\n\r\n return new System.Version.ctor();\r\n }\r\n }\r\n },\r\n ctors: {\r\n init: function () {\r\n this.ExitCode = 0;\r\n },\r\n ctor: function () {\r\n System.Environment.Variables = new (System.Collections.Generic.Dictionary$2(System.String,System.String)).ctor();\r\n System.Environment.PatchDictionary(System.Environment.Variables);\r\n }\r\n },\r\n methods: {\r\n GetResourceString: function (key) {\r\n return key;\r\n },\r\n GetResourceString$1: function (key, values) {\r\n if (values === void 0) { values = []; }\r\n var s = System.Environment.GetResourceString(key);\r\n return System.String.formatProvider.apply(System.String, [System.Globalization.CultureInfo.getCurrentCulture(), s].concat(values));\r\n },\r\n PatchDictionary: function (d) {\r\n d.noKeyCheck = true;\r\n\r\n return d;\r\n },\r\n Exit: function (exitCode) {\r\n System.Environment.ExitCode = exitCode;\r\n },\r\n ExpandEnvironmentVariables: function (name) {\r\n var $t;\r\n if (name == null) {\r\n throw new System.ArgumentNullException.$ctor1(name);\r\n }\r\n\r\n $t = Bridge.getEnumerator(System.Environment.Variables);\r\n try {\r\n while ($t.moveNext()) {\r\n var pair = $t.Current;\r\n name = System.String.replaceAll(name, \"%\" + (pair.key || \"\") + \"%\", pair.value);\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n\r\n return name;\r\n },\r\n FailFast: function (message) {\r\n throw new System.Exception(message);\r\n },\r\n FailFast$1: function (message, exception) {\r\n throw new System.Exception(message, exception);\r\n },\r\n GetCommandLineArgs: function () {\r\n var l = System.Environment.Location;\r\n\r\n if (l) {\r\n var args = new (System.Collections.Generic.List$1(System.String)).ctor();\r\n\r\n var path = l.pathname;\r\n\r\n if (!System.String.isNullOrEmpty(path)) {\r\n args.add(path);\r\n }\r\n\r\n var search = l.search;\r\n\r\n if (!System.String.isNullOrEmpty(search) && search.length > 1) {\r\n var query = System.String.split(search.substr(1), [38].map(function (i) {{ return String.fromCharCode(i); }}));\r\n\r\n for (var i = 0; i < query.length; i = (i + 1) | 0) {\r\n var param = System.String.split(query[System.Array.index(i, query)], [61].map(function (i) {{ return String.fromCharCode(i); }}));\r\n\r\n for (var j = 0; j < param.length; j = (j + 1) | 0) {\r\n args.add(param[System.Array.index(j, param)]);\r\n }\r\n }\r\n }\r\n\r\n return args.ToArray();\r\n }\r\n\r\n return System.Array.init(0, null, System.String);\r\n },\r\n GetEnvironmentVariable: function (variable) {\r\n if (variable == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"variable\");\r\n }\r\n\r\n var r = { };\r\n\r\n if (System.Environment.Variables.tryGetValue(variable.toLowerCase(), r)) {\r\n return r.v;\r\n }\r\n\r\n return null;\r\n },\r\n GetEnvironmentVariable$1: function (variable, target) {\r\n return System.Environment.GetEnvironmentVariable(variable);\r\n },\r\n GetEnvironmentVariables: function () {\r\n return System.Environment.PatchDictionary(new (System.Collections.Generic.Dictionary$2(System.String,System.String)).$ctor1(System.Environment.Variables));\r\n },\r\n GetEnvironmentVariables$1: function (target) {\r\n return System.Environment.GetEnvironmentVariables();\r\n },\r\n GetLogicalDrives: function () {\r\n return System.Array.init(0, null, System.String);\r\n },\r\n SetEnvironmentVariable: function (variable, value) {\r\n if (variable == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"variable\");\r\n }\r\n\r\n if (System.String.isNullOrEmpty(variable) || System.String.startsWith(variable, String.fromCharCode(0)) || System.String.contains(variable,\"=\") || variable.length > 32767) {\r\n throw new System.ArgumentException.$ctor1(\"Incorrect variable (cannot be empty, contain zero character nor equal sign, be longer than 32767).\");\r\n }\r\n\r\n variable = variable.toLowerCase();\r\n\r\n if (System.String.isNullOrEmpty(value)) {\r\n if (System.Environment.Variables.containsKey(variable)) {\r\n System.Environment.Variables.remove(variable);\r\n }\r\n } else {\r\n System.Environment.Variables.setItem(variable, value);\r\n }\r\n },\r\n SetEnvironmentVariable$1: function (variable, value, target) {\r\n System.Environment.SetEnvironmentVariable(variable, value);\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source StringSplitOptions.js\r\n\r\n Bridge.define(\"System.StringSplitOptions\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n None: 0,\r\n RemoveEmptyEntries: 1\r\n }\r\n },\r\n $flags: true\r\n });\r\n\r\n // @source TypeCode.js\r\n\r\n Bridge.define(\"System.TypeCode\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n Empty: 0,\r\n Object: 1,\r\n DBNull: 2,\r\n Boolean: 3,\r\n Char: 4,\r\n SByte: 5,\r\n Byte: 6,\r\n Int16: 7,\r\n UInt16: 8,\r\n Int32: 9,\r\n UInt32: 10,\r\n Int64: 11,\r\n UInt64: 12,\r\n Single: 13,\r\n Double: 14,\r\n Decimal: 15,\r\n DateTime: 16,\r\n String: 18\r\n }\r\n }\r\n });\r\n\r\n // @source TypeCodeValues.js\r\n\r\n Bridge.define(\"System.TypeCodeValues\", {\r\n statics: {\r\n fields: {\r\n Empty: null,\r\n Object: null,\r\n DBNull: null,\r\n Boolean: null,\r\n Char: null,\r\n SByte: null,\r\n Byte: null,\r\n Int16: null,\r\n UInt16: null,\r\n Int32: null,\r\n UInt32: null,\r\n Int64: null,\r\n UInt64: null,\r\n Single: null,\r\n Double: null,\r\n Decimal: null,\r\n DateTime: null,\r\n String: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.Empty = \"0\";\r\n this.Object = \"1\";\r\n this.DBNull = \"2\";\r\n this.Boolean = \"3\";\r\n this.Char = \"4\";\r\n this.SByte = \"5\";\r\n this.Byte = \"6\";\r\n this.Int16 = \"7\";\r\n this.UInt16 = \"8\";\r\n this.Int32 = \"9\";\r\n this.UInt32 = \"10\";\r\n this.Int64 = \"11\";\r\n this.UInt64 = \"12\";\r\n this.Single = \"13\";\r\n this.Double = \"14\";\r\n this.Decimal = \"15\";\r\n this.DateTime = \"16\";\r\n this.String = \"18\";\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source Type.js\r\n\r\nBridge.define(\"System.Type\", {\r\n\r\n statics: {\r\n $is: function (instance) {\r\n return instance && instance.constructor === Function;\r\n },\r\n\r\n getTypeCode: function (t) {\r\n if (t == null) {\r\n return System.TypeCode.Empty;\r\n }\r\n if (t === System.Double) {\r\n return System.TypeCode.Double;\r\n }\r\n if (t === System.Single) {\r\n return System.TypeCode.Single;\r\n }\r\n if (t === System.Decimal) {\r\n return System.TypeCode.Decimal;\r\n }\r\n if (t === System.Byte) {\r\n return System.TypeCode.Byte;\r\n }\r\n if (t === System.SByte) {\r\n return System.TypeCode.SByte;\r\n }\r\n if (t === System.UInt16) {\r\n return System.TypeCode.UInt16;\r\n }\r\n if (t === System.Int16) {\r\n return System.TypeCode.Int16;\r\n }\r\n if (t === System.UInt32) {\r\n return System.TypeCode.UInt32;\r\n }\r\n if (t === System.Int32) {\r\n return System.TypeCode.Int32;\r\n }\r\n if (t === System.UInt64) {\r\n return System.TypeCode.UInt64;\r\n }\r\n if (t === System.Int64) {\r\n return System.TypeCode.Int64;\r\n }\r\n if (t === System.Boolean) {\r\n return System.TypeCode.Boolean;\r\n }\r\n if (t === System.Char) {\r\n return System.TypeCode.Char;\r\n }\r\n if (t === System.DateTime) {\r\n return System.TypeCode.DateTime;\r\n }\r\n if (t === System.String) {\r\n return System.TypeCode.String;\r\n }\r\n return System.TypeCode.Object;\r\n }\r\n }\r\n});\r\n // @source Math.js\r\n\r\n Bridge.Math = {\r\n divRem: function (a, b, result) {\r\n var remainder = a % b;\r\n\r\n result.v = remainder;\r\n\r\n return (a - remainder) / b;\r\n },\r\n\r\n round: function (n, d, rounding) {\r\n var m = Math.pow(10, d || 0);\r\n\r\n n *= m;\r\n\r\n var sign = (n > 0) | -(n < 0);\r\n\r\n if (n % 1 === 0.5 * sign) {\r\n var f = Math.floor(n);\r\n\r\n return (f + (rounding === 4 ? (sign > 0) : (f % 2 * sign))) / m;\r\n }\r\n\r\n return Math.round(n) / m;\r\n },\r\n\r\n log10: Math.log10 || function (x) {\r\n return Math.log(x) / Math.LN10;\r\n },\r\n\r\n logWithBase: function (x, newBase) {\r\n if (isNaN(x)) {\r\n return x;\r\n }\r\n\r\n if (isNaN(newBase)) {\r\n return newBase;\r\n }\r\n\r\n if (newBase === 1) {\r\n return NaN\r\n }\r\n\r\n if (x !== 1 && (newBase === 0 || newBase === Number.POSITIVE_INFINITY)) {\r\n return NaN;\r\n }\r\n\r\n return Bridge.Math.log10(x) / Bridge.Math.log10(newBase);\r\n },\r\n\r\n log: function (x) {\r\n if (x === 0.0) {\r\n return Number.NEGATIVE_INFINITY;\r\n }\r\n\r\n if (x < 0.0 || isNaN(x)) {\r\n return NaN;\r\n }\r\n\r\n if (x === Number.POSITIVE_INFINITY) {\r\n return Number.POSITIVE_INFINITY;\r\n }\r\n\r\n if (x === Number.NEGATIVE_INFINITY) {\r\n return NaN;\r\n }\r\n\r\n return Math.log(x);\r\n },\r\n\r\n sinh: Math.sinh || function (x) {\r\n return (Math.exp(x) - Math.exp(-x)) / 2;\r\n },\r\n\r\n cosh: Math.cosh || function (x) {\r\n return (Math.exp(x) + Math.exp(-x)) / 2;\r\n },\r\n\r\n tanh: Math.tanh || function (x) {\r\n if (x === Infinity) {\r\n return 1;\r\n } else if (x === -Infinity) {\r\n return -1;\r\n } else {\r\n var y = Math.exp(2 * x);\r\n\r\n return (y - 1) / (y + 1);\r\n }\r\n },\r\n\r\n IEEERemainder: function (x, y) {\r\n var regularMod = x % y;\r\n if (isNaN(regularMod)) {\r\n return Number.NaN;\r\n }\r\n if (regularMod === 0) {\r\n if (x < 0) {\r\n return -0;\r\n }\r\n }\r\n var alternativeResult;\r\n alternativeResult = regularMod - (Math.abs(y) * Bridge.Int.sign(x));\r\n if (Math.abs(alternativeResult) === Math.abs(regularMod)) {\r\n var divisionResult = x / y;\r\n var roundedResult = Bridge.Math.round(divisionResult, 0, 6);\r\n if (Math.abs(roundedResult) > Math.abs(divisionResult)) {\r\n return alternativeResult;\r\n } else {\r\n return regularMod;\r\n }\r\n }\r\n if (Math.abs(alternativeResult) < Math.abs(regularMod)) {\r\n return alternativeResult;\r\n } else {\r\n return regularMod;\r\n }\r\n }\r\n };\r\n\r\n // @source Bool.js\r\n\r\n Bridge.define(\"System.Boolean\", {\r\n inherits: [System.IComparable],\r\n\r\n statics: {\r\n trueString: \"True\",\r\n falseString: \"False\",\r\n\r\n $is: function (instance) {\r\n return typeof (instance) === \"boolean\";\r\n },\r\n\r\n getDefaultValue: function () {\r\n return false;\r\n },\r\n\r\n createInstance: function () {\r\n return false;\r\n },\r\n\r\n toString: function (v) {\r\n return v ? System.Boolean.trueString : System.Boolean.falseString;\r\n },\r\n\r\n parse: function (value) {\r\n if (!Bridge.hasValue(value)) {\r\n throw new System.ArgumentNullException.$ctor1(\"value\");\r\n }\r\n\r\n var result = {\r\n v: false\r\n };\r\n\r\n if (!System.Boolean.tryParse(value, result)) {\r\n throw new System.FormatException.$ctor1(\"Bad format for Boolean value\");\r\n }\r\n\r\n return result.v;\r\n },\r\n\r\n tryParse: function (value, result) {\r\n result.v = false;\r\n\r\n if (!Bridge.hasValue(value)) {\r\n return false;\r\n }\r\n\r\n if (System.String.equals(System.Boolean.trueString, value, 5)) {\r\n result.v = true;\r\n return true;\r\n }\r\n\r\n if (System.String.equals(System.Boolean.falseString, value, 5)) {\r\n result.v = false;\r\n return true;\r\n }\r\n\r\n var start = 0,\r\n end = value.length - 1;\r\n\r\n while (start < value.length) {\r\n if (!System.Char.isWhiteSpace(value[start]) && !System.Char.isNull(value.charCodeAt(start))) {\r\n break;\r\n }\r\n\r\n start++;\r\n }\r\n\r\n while (end >= start) {\r\n if (!System.Char.isWhiteSpace(value[end]) && !System.Char.isNull(value.charCodeAt(end))) {\r\n break;\r\n }\r\n\r\n end--;\r\n }\r\n\r\n value = value.substr(start, end - start + 1);\r\n\r\n if (System.String.equals(System.Boolean.trueString, value, 5)) {\r\n result.v = true;\r\n\r\n return true;\r\n }\r\n\r\n if (System.String.equals(System.Boolean.falseString, value, 5)) {\r\n result.v = false;\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n }\r\n });\r\n\r\n System.Boolean.$kind = \"\";\r\n Bridge.Class.addExtend(System.Boolean, [System.IComparable$1(System.Boolean), System.IEquatable$1(System.Boolean)]);\r\n\r\n // @source Integer.js\r\n\r\n\r\n Bridge.define(\"Bridge.Int\", {\r\n inherits: [System.IComparable, System.IFormattable],\r\n statics: {\r\n $number: true,\r\n\r\n MAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1,\r\n MIN_SAFE_INTEGER: Number.MIN_SAFE_INTEGER || -(Math.pow(2, 53) - 1),\r\n\r\n $is: function (instance) {\r\n return typeof (instance) === \"number\" && isFinite(instance) && Math.floor(instance, 0) === instance;\r\n },\r\n\r\n getDefaultValue: function () {\r\n return 0;\r\n },\r\n\r\n format: function (number, format, provider, T, toUnsign) {\r\n var nf = (provider || System.Globalization.CultureInfo.getCurrentCulture()).getFormat(System.Globalization.NumberFormatInfo),\r\n decimalSeparator = nf.numberDecimalSeparator,\r\n groupSeparator = nf.numberGroupSeparator,\r\n isDecimal = number instanceof System.Decimal,\r\n isLong = number instanceof System.Int64 || number instanceof System.UInt64,\r\n isNeg = isDecimal || isLong ? (number.isZero() ? false : number.isNegative()) : number < 0,\r\n match,\r\n precision,\r\n groups,\r\n fs;\r\n\r\n if (!isLong && (isDecimal ? !number.isFinite() : !isFinite(number))) {\r\n return Number.NEGATIVE_INFINITY === number || (isDecimal && isNeg) ? nf.negativeInfinitySymbol : (isNaN(number) ? nf.nanSymbol : nf.positiveInfinitySymbol);\r\n }\r\n\r\n if (!format) {\r\n format = \"G\";\r\n }\r\n\r\n match = format.match(/^([a-zA-Z])(\\d*)$/);\r\n\r\n if (match) {\r\n fs = match[1].toUpperCase();\r\n precision = parseInt(match[2], 10);\r\n //precision = precision > 15 ? 15 : precision;\r\n\r\n switch (fs) {\r\n case \"D\":\r\n return this.defaultFormat(number, isNaN(precision) ? 1 : precision, 0, 0, nf, true);\r\n case \"F\":\r\n case \"N\":\r\n if (isNaN(precision)) {\r\n precision = nf.numberDecimalDigits;\r\n }\r\n\r\n return this.defaultFormat(number, 1, precision, precision, nf, fs === \"F\");\r\n case \"G\":\r\n case \"E\":\r\n var exponent = 0,\r\n coefficient = isDecimal || isLong ? (isLong && number.eq(System.Int64.MinValue) ? System.Int64(number.value.toUnsigned()) : number.abs()) : Math.abs(number),\r\n exponentPrefix = match[1],\r\n exponentPrecision = 3,\r\n minDecimals,\r\n maxDecimals;\r\n\r\n while (isDecimal || isLong ? coefficient.gte(10) : (coefficient >= 10)) {\r\n if (isDecimal || isLong) {\r\n coefficient = coefficient.div(10);\r\n } else {\r\n coefficient /= 10;\r\n }\r\n\r\n exponent++;\r\n }\r\n\r\n while (isDecimal || isLong ? (coefficient.ne(0) && coefficient.lt(1)) : (coefficient !== 0 && coefficient < 1)) {\r\n if (isDecimal || isLong) {\r\n coefficient = coefficient.mul(10);\r\n } else {\r\n coefficient *= 10;\r\n }\r\n\r\n exponent--;\r\n }\r\n\r\n if (fs === \"G\") {\r\n var noPrecision = isNaN(precision);\r\n\r\n if (noPrecision) {\r\n if (isDecimal) {\r\n precision = 29;\r\n } else if (isLong) {\r\n precision = number instanceof System.Int64 ? 19 : 20;\r\n } else if (T && T.precision) {\r\n precision = T.precision;\r\n } else {\r\n precision = 15;\r\n }\r\n }\r\n\r\n if ((exponent > -5 && exponent < precision) || isDecimal && noPrecision) {\r\n minDecimals = 0;\r\n maxDecimals = precision - (exponent > 0 ? exponent + 1 : 1);\r\n\r\n return this.defaultFormat(number, 1, isDecimal ? Math.min(27, Math.max(minDecimals, number.$precision)) : minDecimals, maxDecimals, nf, true);\r\n }\r\n\r\n exponentPrefix = exponentPrefix === \"G\" ? \"E\" : \"e\";\r\n exponentPrecision = 2;\r\n minDecimals = 0;\r\n maxDecimals = (precision || 15) - 1;\r\n } else {\r\n minDecimals = maxDecimals = isNaN(precision) ? 6 : precision;\r\n }\r\n\r\n if (exponent >= 0) {\r\n exponentPrefix += nf.positiveSign;\r\n } else {\r\n exponentPrefix += nf.negativeSign;\r\n exponent = -exponent;\r\n }\r\n\r\n if (isNeg) {\r\n if (isDecimal || isLong) {\r\n coefficient = coefficient.mul(-1);\r\n } else {\r\n coefficient *= -1;\r\n }\r\n }\r\n\r\n return this.defaultFormat(coefficient, 1, isDecimal ? Math.min(27, Math.max(minDecimals, number.$precision)) : minDecimals, maxDecimals, nf) + exponentPrefix + this.defaultFormat(exponent, exponentPrecision, 0, 0, nf, true);\r\n case \"P\":\r\n if (isNaN(precision)) {\r\n precision = nf.percentDecimalDigits;\r\n }\r\n\r\n return this.defaultFormat(number * 100, 1, precision, precision, nf, false, \"percent\");\r\n case \"X\":\r\n var result;\r\n\r\n if (isDecimal) {\r\n result = number.round().value.toHex().substr(2);\r\n } else if (isLong) {\r\n var uvalue = toUnsign ? toUnsign(number) : number;\r\n result = uvalue.toString(16);\r\n } else {\r\n var uvalue = toUnsign ? toUnsign(Math.round(number)) : Math.round(number) >>> 0;\r\n result = uvalue.toString(16);\r\n }\r\n\r\n if (match[1] === \"X\") {\r\n result = result.toUpperCase();\r\n }\r\n\r\n precision -= result.length;\r\n\r\n while (precision-- > 0) {\r\n result = \"0\" + result;\r\n }\r\n\r\n return result;\r\n case \"C\":\r\n if (isNaN(precision)) {\r\n precision = nf.currencyDecimalDigits;\r\n }\r\n\r\n return this.defaultFormat(number, 1, precision, precision, nf, false, \"currency\");\r\n case \"R\":\r\n var r_result = isDecimal || isLong ? (number.toString()) : (\"\" + number);\r\n\r\n if (decimalSeparator !== \".\") {\r\n r_result = r_result.replace(\".\", decimalSeparator);\r\n }\r\n\r\n r_result = r_result.replace(\"e\", \"E\");\r\n\r\n return r_result;\r\n }\r\n }\r\n\r\n if (format.indexOf(\",.\") !== -1 || System.String.endsWith(format, \",\")) {\r\n var count = 0,\r\n index = format.indexOf(\",.\");\r\n\r\n if (index === -1) {\r\n index = format.length - 1;\r\n }\r\n\r\n while (index > -1 && format.charAt(index) === \",\") {\r\n count++;\r\n index--;\r\n }\r\n\r\n if (isDecimal || isLong) {\r\n number = number.div(Math.pow(1000, count));\r\n } else {\r\n number /= Math.pow(1000, count);\r\n }\r\n }\r\n\r\n if (format.indexOf(\"%\") !== -1) {\r\n if (isDecimal || isLong) {\r\n number = number.mul(100);\r\n } else {\r\n number *= 100;\r\n }\r\n }\r\n\r\n if (format.indexOf(\"‰\") !== -1) {\r\n if (isDecimal || isLong) {\r\n number = number.mul(1000);\r\n } else {\r\n number *= 1000;\r\n }\r\n }\r\n\r\n groups = format.split(\";\");\r\n\r\n if ((isDecimal || isLong ? number.lt(0) : (number < 0)) && groups.length > 1) {\r\n if (isDecimal || isLong) {\r\n number = number.mul(-1);\r\n } else {\r\n number *= -1;\r\n }\r\n\r\n format = groups[1];\r\n } else {\r\n format = groups[(isDecimal || isLong ? number.ne(0) : !number) && groups.length > 2 ? 2 : 0];\r\n }\r\n\r\n return this.customFormat(number, format, nf, !format.match(/^[^\\.]*[0#],[0#]/));\r\n },\r\n\r\n defaultFormat: function (number, minIntLen, minDecLen, maxDecLen, provider, noGroup, name) {\r\n name = name || \"number\";\r\n\r\n var nf = (provider || System.Globalization.CultureInfo.getCurrentCulture()).getFormat(System.Globalization.NumberFormatInfo),\r\n str,\r\n decimalIndex,\r\n pattern,\r\n roundingFactor,\r\n groupIndex,\r\n groupSize,\r\n groups = nf[name + \"GroupSizes\"],\r\n decimalPart,\r\n index,\r\n done,\r\n startIndex,\r\n length,\r\n part,\r\n sep,\r\n buffer = \"\",\r\n isDecimal = number instanceof System.Decimal,\r\n isLong = number instanceof System.Int64 || number instanceof System.UInt64,\r\n isNeg = isDecimal || isLong ? (number.isZero() ? false : number.isNegative()) : number < 0,\r\n isZero = false;\r\n\r\n roundingFactor = Math.pow(10, maxDecLen);\r\n\r\n if (isDecimal) {\r\n str = number.abs().toDecimalPlaces(maxDecLen).toFixed();\r\n } else if (isLong) {\r\n str = number.eq(System.Int64.MinValue) ? number.value.toUnsigned().toString() : number.abs().toString();\r\n } else {\r\n str = \"\" + (+Math.abs(number).toFixed(maxDecLen));\r\n }\r\n\r\n isZero = str.split(\"\").every(function (s) { return s === \"0\" || s === \".\"; });\r\n\r\n decimalIndex = str.indexOf(\".\");\r\n\r\n if (decimalIndex > 0) {\r\n decimalPart = nf[name + \"DecimalSeparator\"] + str.substr(decimalIndex + 1);\r\n str = str.substr(0, decimalIndex);\r\n }\r\n\r\n if (str.length < minIntLen) {\r\n str = Array(minIntLen - str.length + 1).join(\"0\") + str;\r\n }\r\n\r\n if (decimalPart) {\r\n if ((decimalPart.length - 1) < minDecLen) {\r\n decimalPart += Array(minDecLen - decimalPart.length + 2).join(\"0\");\r\n }\r\n\r\n if (maxDecLen === 0) {\r\n decimalPart = null;\r\n } else if ((decimalPart.length - 1) > maxDecLen) {\r\n decimalPart = decimalPart.substr(0, maxDecLen + 1);\r\n }\r\n } else if (minDecLen > 0) {\r\n decimalPart = nf[name + \"DecimalSeparator\"] + Array(minDecLen + 1).join(\"0\");\r\n }\r\n\r\n groupIndex = 0;\r\n groupSize = groups[groupIndex];\r\n\r\n if (str.length < groupSize) {\r\n buffer = str;\r\n\r\n if (decimalPart) {\r\n buffer += decimalPart;\r\n }\r\n } else {\r\n index = str.length;\r\n done = false;\r\n sep = noGroup ? \"\" : nf[name + \"GroupSeparator\"];\r\n\r\n while (!done) {\r\n length = groupSize;\r\n startIndex = index - length;\r\n\r\n if (startIndex < 0) {\r\n groupSize += startIndex;\r\n length += startIndex;\r\n startIndex = 0;\r\n done = true;\r\n }\r\n\r\n if (!length) {\r\n break;\r\n }\r\n\r\n part = str.substr(startIndex, length);\r\n\r\n if (buffer.length) {\r\n buffer = part + sep + buffer;\r\n } else {\r\n buffer = part;\r\n }\r\n\r\n index -= length;\r\n\r\n if (groupIndex < groups.length - 1) {\r\n groupIndex++;\r\n groupSize = groups[groupIndex];\r\n }\r\n }\r\n\r\n if (decimalPart) {\r\n buffer += decimalPart;\r\n }\r\n }\r\n\r\n if (isNeg && !isZero) {\r\n pattern = System.Globalization.NumberFormatInfo[name + \"NegativePatterns\"][nf[name + \"NegativePattern\"]];\r\n\r\n return pattern.replace(\"-\", nf.negativeSign).replace(\"%\", nf.percentSymbol).replace(\"$\", nf.currencySymbol).replace(\"n\", buffer);\r\n } else if (System.Globalization.NumberFormatInfo[name + \"PositivePatterns\"]) {\r\n pattern = System.Globalization.NumberFormatInfo[name + \"PositivePatterns\"][nf[name + \"PositivePattern\"]];\r\n\r\n return pattern.replace(\"%\", nf.percentSymbol).replace(\"$\", nf.currencySymbol).replace(\"n\", buffer);\r\n }\r\n\r\n return buffer;\r\n },\r\n\r\n customFormat: function (number, format, nf, noGroup) {\r\n var digits = 0,\r\n forcedDigits = -1,\r\n integralDigits = -1,\r\n decimals = 0,\r\n forcedDecimals = -1,\r\n atDecimals = 0,\r\n unused = 1,\r\n c, i, f,\r\n endIndex,\r\n roundingFactor,\r\n decimalIndex,\r\n isNegative = false,\r\n isZero = false,\r\n name,\r\n groupCfg,\r\n buffer = \"\",\r\n isZeroInt = false,\r\n wasSeparator = false,\r\n wasIntPart = false,\r\n isDecimal = number instanceof System.Decimal,\r\n isLong = number instanceof System.Int64 || number instanceof System.UInt64,\r\n isNeg = isDecimal || isLong ? (number.isZero() ? false : number.isNegative()) : number < 0;\r\n\r\n name = \"number\";\r\n\r\n if (format.indexOf(\"%\") !== -1) {\r\n name = \"percent\";\r\n } else if (format.indexOf(\"$\") !== -1) {\r\n name = \"currency\";\r\n }\r\n\r\n for (i = 0; i < format.length; i++) {\r\n c = format.charAt(i);\r\n\r\n if (c === \"'\" || c === '\"') {\r\n i = format.indexOf(c, i + 1);\r\n\r\n if (i < 0) {\r\n break;\r\n }\r\n } else if (c === \"\\\\\") {\r\n i++;\r\n } else {\r\n if (c === \"0\" || c === \"#\") {\r\n decimals += atDecimals;\r\n\r\n if (c === \"0\") {\r\n if (atDecimals) {\r\n forcedDecimals = decimals;\r\n } else if (forcedDigits < 0) {\r\n forcedDigits = digits;\r\n }\r\n }\r\n\r\n digits += !atDecimals;\r\n }\r\n\r\n atDecimals = atDecimals || c === \".\";\r\n }\r\n }\r\n forcedDigits = forcedDigits < 0 ? 1 : digits - forcedDigits;\r\n\r\n if (isNeg) {\r\n isNegative = true;\r\n }\r\n\r\n roundingFactor = Math.pow(10, decimals);\r\n\r\n if (isDecimal) {\r\n number = System.Decimal.round(number.abs().mul(roundingFactor), 4).div(roundingFactor).toString();\r\n } else if (isLong) {\r\n number = (number.eq(System.Int64.MinValue) ? System.Int64(number.value.toUnsigned()) : number.abs()).mul(roundingFactor).div(roundingFactor).toString();\r\n } else {\r\n number = \"\" + (Math.round(Math.abs(number) * roundingFactor) / roundingFactor);\r\n }\r\n\r\n isZero = number.split(\"\").every(function (s) { return s === \"0\" || s === \".\"; });\r\n\r\n decimalIndex = number.indexOf(\".\");\r\n integralDigits = decimalIndex < 0 ? number.length : decimalIndex;\r\n i = integralDigits - digits;\r\n\r\n groupCfg = {\r\n groupIndex: Math.max(integralDigits, forcedDigits),\r\n sep: noGroup ? \"\" : nf[name + \"GroupSeparator\"]\r\n };\r\n\r\n if (integralDigits === 1 && number.charAt(0) === \"0\") {\r\n isZeroInt = true;\r\n }\r\n\r\n for (f = 0; f < format.length; f++) {\r\n c = format.charAt(f);\r\n\r\n if (c === \"'\" || c === '\"') {\r\n endIndex = format.indexOf(c, f + 1);\r\n\r\n buffer += format.substring(f + 1, endIndex < 0 ? format.length : endIndex);\r\n\r\n if (endIndex < 0) {\r\n break;\r\n }\r\n\r\n f = endIndex;\r\n } else if (c === \"\\\\\") {\r\n buffer += format.charAt(f + 1);\r\n f++;\r\n } else if (c === \"#\" || c === \"0\") {\r\n wasIntPart = true;\r\n\r\n if (!wasSeparator && isZeroInt && c === \"#\") {\r\n i++;\r\n } else {\r\n groupCfg.buffer = buffer;\r\n\r\n if (i < integralDigits) {\r\n if (i >= 0) {\r\n if (unused) {\r\n this.addGroup(number.substr(0, i), groupCfg);\r\n }\r\n\r\n this.addGroup(number.charAt(i), groupCfg);\r\n } else if (i >= integralDigits - forcedDigits) {\r\n this.addGroup(\"0\", groupCfg);\r\n }\r\n\r\n unused = 0;\r\n } else if (forcedDecimals-- > 0 || i < number.length) {\r\n this.addGroup(i >= number.length ? \"0\" : number.charAt(i), groupCfg);\r\n }\r\n\r\n buffer = groupCfg.buffer;\r\n\r\n i++;\r\n }\r\n } else if (c === \".\") {\r\n if (!wasIntPart && !isZeroInt) {\r\n buffer += number.substr(0, integralDigits);\r\n wasIntPart = true;\r\n }\r\n\r\n if (number.length > ++i || forcedDecimals > 0) {\r\n wasSeparator = true;\r\n buffer += nf[name + \"DecimalSeparator\"];\r\n }\r\n } else if (c !== \",\") {\r\n buffer += c;\r\n }\r\n }\r\n\r\n if (isNegative && !isZero) {\r\n buffer = \"-\" + buffer;\r\n }\r\n\r\n return buffer;\r\n },\r\n\r\n addGroup: function (value, cfg) {\r\n var buffer = cfg.buffer,\r\n sep = cfg.sep,\r\n groupIndex = cfg.groupIndex;\r\n\r\n for (var i = 0, length = value.length; i < length; i++) {\r\n buffer += value.charAt(i);\r\n\r\n if (sep && groupIndex > 1 && groupIndex-- % 3 === 1) {\r\n buffer += sep;\r\n }\r\n }\r\n\r\n cfg.buffer = buffer;\r\n cfg.groupIndex = groupIndex;\r\n },\r\n\r\n parseFloat: function (s, provider) {\r\n var res = { };\r\n\r\n Bridge.Int.tryParseFloat(s, provider, res, false);\r\n\r\n return res.v;\r\n },\r\n\r\n tryParseFloat: function (s, provider, result, safe) {\r\n result.v = 0;\r\n\r\n if (safe == null) {\r\n safe = true;\r\n }\r\n\r\n if (s == null) {\r\n if (safe) {\r\n return false;\r\n }\r\n\r\n throw new System.ArgumentNullException.$ctor1(\"s\");\r\n }\r\n\r\n s = s.trim();\r\n\r\n var nfInfo = (provider || System.Globalization.CultureInfo.getCurrentCulture()).getFormat(System.Globalization.NumberFormatInfo),\r\n point = nfInfo.numberDecimalSeparator,\r\n thousands = nfInfo.numberGroupSeparator;\r\n\r\n var errMsg = \"Input string was not in a correct format.\";\r\n\r\n var pointIndex = s.indexOf(point);\r\n var thousandIndex = thousands ? s.indexOf(thousands) : -1;\r\n\r\n if (pointIndex > -1) {\r\n // point before thousands is not allowed\r\n // \"10.2,5\" -> FormatException\r\n // \"1,0.2,5\" -> FormatException\r\n if (((pointIndex < thousandIndex) || ((thousandIndex > -1) && (pointIndex < s.indexOf(thousands, pointIndex))))\r\n // only one point is allowed\r\n || (s.indexOf(point, pointIndex + 1) > -1)) {\r\n if (safe) {\r\n return false;\r\n }\r\n\r\n throw new System.FormatException.$ctor1(errMsg);\r\n }\r\n }\r\n\r\n if ((point !== \".\") && (thousands !== \".\") && (s.indexOf(\".\") > -1)) {\r\n if (safe) {\r\n return false;\r\n }\r\n\r\n throw new System.FormatException.$ctor1(errMsg);\r\n }\r\n\r\n if (thousandIndex > -1) {\r\n // mutiple thousands are allowed, so we remove them before going further\r\n var tmpStr = \"\";\r\n\r\n for (var i = 0; i < s.length; i++) {\r\n if (s[i] !== thousands) {\r\n tmpStr += s[i];\r\n }\r\n }\r\n\r\n s = tmpStr;\r\n }\r\n\r\n if (s === nfInfo.negativeInfinitySymbol) {\r\n result.v = Number.NEGATIVE_INFINITY;\r\n\r\n return true;\r\n } else if (s === nfInfo.positiveInfinitySymbol) {\r\n result.v = Number.POSITIVE_INFINITY;\r\n\r\n return true;\r\n } else if (s === nfInfo.nanSymbol) {\r\n result.v = Number.NaN;\r\n\r\n return true;\r\n }\r\n\r\n var countExp = 0,\r\n ePrev = false;\r\n\r\n for (var i = 0; i < s.length; i++) {\r\n if (!System.Char.isNumber(s[i].charCodeAt(0)) &&\r\n s[i] !== \".\" &&\r\n s[i] !== \",\" &&\r\n (s[i] !== nfInfo.positiveSign || i !== 0 && !ePrev) &&\r\n (s[i] !== nfInfo.negativeSign || i !== 0 && !ePrev) &&\r\n s[i] !== point &&\r\n s[i] !== thousands) {\r\n if (s[i].toLowerCase() === \"e\") {\r\n ePrev = true;\r\n countExp++;\r\n\r\n if (countExp > 1) {\r\n if (safe) {\r\n return false;\r\n }\r\n\r\n throw new System.FormatException.$ctor1(errMsg);\r\n }\r\n } else {\r\n ePrev = false;\r\n if (safe) {\r\n return false;\r\n }\r\n\r\n throw new System.FormatException.$ctor1(errMsg);\r\n }\r\n } else {\r\n ePrev = false;\r\n }\r\n }\r\n\r\n var r = parseFloat(s.replace(point, \".\"));\r\n\r\n if (isNaN(r)) {\r\n if (safe) {\r\n return false;\r\n }\r\n\r\n throw new System.FormatException.$ctor1(errMsg);\r\n }\r\n\r\n result.v = r;\r\n\r\n return true;\r\n },\r\n\r\n parseInt: function (str, min, max, radix) {\r\n radix = radix || 10;\r\n\r\n if (str == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"str\");\r\n }\r\n\r\n str = str.trim();\r\n\r\n if ((radix <= 10 && !/^[+-]?[0-9]+$/.test(str))\r\n || (radix == 16 && !/^[+-]?[0-9A-F]+$/gi.test(str))) {\r\n throw new System.FormatException.$ctor1(\"Input string was not in a correct format.\");\r\n }\r\n\r\n var result = parseInt(str, radix);\r\n\r\n if (isNaN(result)) {\r\n throw new System.FormatException.$ctor1(\"Input string was not in a correct format.\");\r\n }\r\n\r\n if (result < min || result > max) {\r\n throw new System.OverflowException();\r\n }\r\n\r\n return result;\r\n },\r\n\r\n tryParseInt: function (str, result, min, max, radix) {\r\n result.v = 0;\r\n radix = radix || 10;\r\n\r\n if (str != null && str.trim === \"\".trim) {\r\n str = str.trim();\r\n }\r\n\r\n if ((radix <= 10 && !/^[+-]?[0-9]+$/.test(str))\r\n || (radix == 16 && !/^[+-]?[0-9A-F]+$/gi.test(str))) {\r\n return false;\r\n }\r\n\r\n result.v = parseInt(str, radix);\r\n\r\n if (result.v < min || result.v > max) {\r\n result.v = 0;\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n isInfinite: function (x) {\r\n return x === Number.POSITIVE_INFINITY || x === Number.NEGATIVE_INFINITY;\r\n },\r\n\r\n trunc: function (num) {\r\n if (!Bridge.isNumber(num)) {\r\n return Bridge.Int.isInfinite(num) ? num : null;\r\n }\r\n\r\n return num > 0 ? Math.floor(num) : Math.ceil(num);\r\n },\r\n\r\n div: function (x, y) {\r\n if (x == null || y == null) {\r\n return null;\r\n }\r\n\r\n if (y === 0) {\r\n throw new System.DivideByZeroException();\r\n }\r\n\r\n return this.trunc(x / y);\r\n },\r\n\r\n mod: function (x, y) {\r\n if (x == null || y == null) {\r\n return null;\r\n }\r\n\r\n if (y === 0) {\r\n throw new System.DivideByZeroException();\r\n }\r\n\r\n return x % y;\r\n },\r\n\r\n check: function (x, type) {\r\n if (System.Int64.is64Bit(x)) {\r\n return System.Int64.check(x, type);\r\n } else if (x instanceof System.Decimal) {\r\n return System.Decimal.toInt(x, type);\r\n }\r\n\r\n if (Bridge.isNumber(x)) {\r\n if (System.Int64.is64BitType(type)) {\r\n if (type === System.UInt64 && x < 0) {\r\n throw new System.OverflowException();\r\n }\r\n\r\n return type === System.Int64 ? System.Int64(x) : System.UInt64(x);\r\n } else if (!type.$is(x)) {\r\n throw new System.OverflowException();\r\n }\r\n }\r\n\r\n if (Bridge.Int.isInfinite(x) || isNaN(x)) {\r\n if (System.Int64.is64BitType(type)) {\r\n return type.MinValue;\r\n }\r\n\r\n return type.min;\r\n }\r\n\r\n return x;\r\n },\r\n\r\n sxb: function (x) {\r\n return Bridge.isNumber(x) ? (x | (x & 0x80 ? 0xffffff00 : 0)) : ((Bridge.Int.isInfinite(x) || isNaN(x)) ? System.SByte.min : null);\r\n },\r\n\r\n sxs: function (x) {\r\n return Bridge.isNumber(x) ? (x | (x & 0x8000 ? 0xffff0000 : 0)) : ((Bridge.Int.isInfinite(x) || isNaN(x)) ? System.Int16.min : null);\r\n },\r\n\r\n clip8: function (x) {\r\n return Bridge.isNumber(x) ? Bridge.Int.sxb(x & 0xff) : ((Bridge.Int.isInfinite(x) || isNaN(x)) ? System.SByte.min : null);\r\n },\r\n\r\n clipu8: function (x) {\r\n return Bridge.isNumber(x) ? x & 0xff : ((Bridge.Int.isInfinite(x) || isNaN(x)) ? System.Byte.min : null);\r\n },\r\n\r\n clip16: function (x) {\r\n return Bridge.isNumber(x) ? Bridge.Int.sxs(x & 0xffff) : ((Bridge.Int.isInfinite(x) || isNaN(x)) ? System.Int16.min : null);\r\n },\r\n\r\n clipu16: function (x) {\r\n return Bridge.isNumber(x) ? x & 0xffff : ((Bridge.Int.isInfinite(x) || isNaN(x)) ? System.UInt16.min : null);\r\n },\r\n\r\n clip32: function (x) {\r\n return Bridge.isNumber(x) ? x | 0 : ((Bridge.Int.isInfinite(x) || isNaN(x)) ? System.Int32.min : null);\r\n },\r\n\r\n clipu32: function (x) {\r\n return Bridge.isNumber(x) ? x >>> 0 : ((Bridge.Int.isInfinite(x) || isNaN(x)) ? System.UInt32.min : null);\r\n },\r\n\r\n clip64: function (x) {\r\n return Bridge.isNumber(x) ? System.Int64(Bridge.Int.trunc(x)) : ((Bridge.Int.isInfinite(x) || isNaN(x)) ? System.Int64.MinValue : null);\r\n },\r\n\r\n clipu64: function (x) {\r\n return Bridge.isNumber(x) ? System.UInt64(Bridge.Int.trunc(x)) : ((Bridge.Int.isInfinite(x) || isNaN(x)) ? System.UInt64.MinValue : null);\r\n },\r\n\r\n sign: function (x) {\r\n if (x === Number.POSITIVE_INFINITY) {\r\n return 1;\r\n }\r\n\r\n if (x === Number.NEGATIVE_INFINITY) {\r\n return -1;\r\n }\r\n\r\n return Bridge.isNumber(x) ? (x === 0 ? 0 : (x < 0 ? -1 : 1)) : null;\r\n },\r\n\r\n $mul: Math.imul || function (a, b) {\r\n var ah = (a >>> 16) & 0xffff,\r\n al = a & 0xffff,\r\n bh = (b >>> 16) & 0xffff,\r\n bl = b & 0xffff;\r\n\r\n return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0) | 0);\r\n },\r\n\r\n mul: function (a, b, overflow) {\r\n if (a == null || b == null) {\r\n return null;\r\n }\r\n\r\n if (overflow) {\r\n Bridge.Int.check(a * b, System.Int32)\r\n }\r\n\r\n return Bridge.Int.$mul(a, b);\r\n },\r\n\r\n umul: function (a, b, overflow) {\r\n if (a == null || b == null) {\r\n return null;\r\n }\r\n\r\n if (overflow) {\r\n Bridge.Int.check(a * b, System.UInt32)\r\n }\r\n\r\n return Bridge.Int.$mul(a, b) >>> 0;\r\n }\r\n }\r\n });\r\n\r\n Bridge.Int.$kind = \"\";\r\n Bridge.Class.addExtend(Bridge.Int, [System.IComparable$1(Bridge.Int), System.IEquatable$1(Bridge.Int)]);\r\n\r\n (function () {\r\n var createIntType = function (name, min, max, precision, toUnsign) {\r\n var type = Bridge.define(name, {\r\n inherits: [System.IComparable, System.IFormattable],\r\n\r\n statics: {\r\n $number: true,\r\n toUnsign: toUnsign,\r\n min: min,\r\n max: max,\r\n precision: precision,\r\n\r\n $is: function (instance) {\r\n return typeof (instance) === \"number\" && Math.floor(instance, 0) === instance && instance >= min && instance <= max;\r\n },\r\n getDefaultValue: function () {\r\n return 0;\r\n },\r\n parse: function (s, radix) {\r\n return Bridge.Int.parseInt(s, min, max, radix);\r\n },\r\n tryParse: function (s, result, radix) {\r\n return Bridge.Int.tryParseInt(s, result, min, max, radix);\r\n },\r\n format: function (number, format, provider) {\r\n return Bridge.Int.format(number, format, provider, type, toUnsign);\r\n },\r\n equals: function (v1, v2) {\r\n if (Bridge.is(v1, type) && Bridge.is(v2, type)) {\r\n return Bridge.unbox(v1, true) === Bridge.unbox(v2, true);\r\n }\r\n\r\n return false;\r\n },\r\n equalsT: function (v1, v2) {\r\n return Bridge.unbox(v1, true) === Bridge.unbox(v2, true);\r\n }\r\n }\r\n });\r\n\r\n type.$kind = \"\";\r\n Bridge.Class.addExtend(type, [System.IComparable$1(type), System.IEquatable$1(type)]);\r\n };\r\n\r\n createIntType(\"System.Byte\", 0, 255, 3);\r\n createIntType(\"System.SByte\", -128, 127, 3, Bridge.Int.clipu8);\r\n createIntType(\"System.Int16\", -32768, 32767, 5, Bridge.Int.clipu16);\r\n createIntType(\"System.UInt16\", 0, 65535, 5);\r\n createIntType(\"System.Int32\", -2147483648, 2147483647, 10, Bridge.Int.clipu32);\r\n createIntType(\"System.UInt32\", 0, 4294967295, 10);\r\n })();\r\n\r\n // @source Double.js\r\n\r\n Bridge.define(\"System.Double\", {\r\n inherits: [System.IComparable, System.IFormattable],\r\n statics: {\r\n min: -Number.MAX_VALUE,\r\n\r\n max: Number.MAX_VALUE,\r\n\r\n precision: 15,\r\n\r\n $number: true,\r\n\r\n $is: function (instance) {\r\n return typeof (instance) === \"number\";\r\n },\r\n\r\n getDefaultValue: function () {\r\n return 0;\r\n },\r\n\r\n parse: function (s, provider) {\r\n return Bridge.Int.parseFloat(s, provider);\r\n },\r\n\r\n tryParse: function (s, provider, result) {\r\n return Bridge.Int.tryParseFloat(s, provider, result);\r\n },\r\n\r\n format: function (number, format, provider) {\r\n return Bridge.Int.format(number, format || 'G', provider, System.Double);\r\n },\r\n\r\n equals: function (v1, v2) {\r\n if (Bridge.is(v1, System.Double) && Bridge.is(v2, System.Double)) {\r\n v1 = Bridge.unbox(v1, true);\r\n v2 = Bridge.unbox(v2, true);\r\n\r\n if (isNaN(v1) && isNaN(v2)) {\r\n return true;\r\n }\r\n\r\n return v1 === v2;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n equalsT: function (v1, v2) {\r\n return Bridge.unbox(v1, true) === Bridge.unbox(v2, true);\r\n },\r\n\r\n getHashCode: function (v) {\r\n var value = Bridge.unbox(v, true);\r\n\r\n if (value === 0) {\r\n return 0;\r\n }\r\n\r\n if (value === Number.POSITIVE_INFINITY) {\r\n return 0x7FF00000;\r\n }\r\n\r\n if (value === Number.NEGATIVE_INFINITY) {\r\n return 0xFFF00000;\r\n }\r\n\r\n return Bridge.getHashCode(value.toExponential());\r\n }\r\n }\r\n });\r\n\r\n System.Double.$kind = \"\";\r\n Bridge.Class.addExtend(System.Double, [System.IComparable$1(System.Double), System.IEquatable$1(System.Double)]);\r\n\r\n Bridge.define(\"System.Single\", {\r\n inherits: [System.IComparable, System.IFormattable],\r\n statics: {\r\n min: -3.40282346638528859e+38,\r\n\r\n max: 3.40282346638528859e+38,\r\n\r\n precision: 7,\r\n\r\n $number: true,\r\n\r\n $is: System.Double.$is,\r\n\r\n getDefaultValue: System.Double.getDefaultValue,\r\n\r\n parse: System.Double.parse,\r\n\r\n tryParse: System.Double.tryParse,\r\n\r\n format: function (number, format, provider) {\r\n return Bridge.Int.format(number, format || 'G', provider, System.Single);\r\n },\r\n\r\n equals: function (v1, v2) {\r\n if (Bridge.is(v1, System.Single) && Bridge.is(v2, System.Single)) {\r\n v1 = Bridge.unbox(v1, true);\r\n v2 = Bridge.unbox(v2, true);\r\n\r\n if (isNaN(v1) && isNaN(v2)) {\r\n return true;\r\n }\r\n\r\n return v1 === v2;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n equalsT: function (v1, v2) {\r\n return Bridge.unbox(v1, true) === Bridge.unbox(v2, true);\r\n },\r\n\r\n getHashCode: System.Double.getHashCode\r\n }\r\n });\r\n\r\n System.Single.$kind = \"\";\r\n Bridge.Class.addExtend(System.Single, [System.IComparable$1(System.Single), System.IEquatable$1(System.Single)]);\r\n\r\n // @source Long.js\r\n\r\n /* long.js https://github.com/dcodeIO/long.js/blob/master/LICENSE */\r\n (function (b) {\r\n function d(a, b, c) { this.low = a | 0; this.high = b | 0; this.unsigned = !!c } function g(a) { return !0 === (a && a.__isLong__) } function m(a, b) { var c, u; if (b) { a >>>= 0; if (u = 0 <= a && 256 > a) if (c = A[a]) return c; c = e(a, 0 > (a | 0) ? -1 : 0, !0); u && (A[a] = c) } else { a |= 0; if (u = -128 <= a && 128 > a) if (c = B[a]) return c; c = e(a, 0 > a ? -1 : 0, !1); u && (B[a] = c) } return c } function n(a, b) {\r\n if (isNaN(a) || !isFinite(a)) return b ? p : k; if (b) { if (0 > a) return p; if (a >= C) return D } else { if (a <= -E) return l; if (a + 1 >= E) return F } return 0 > a ? n(-a, b).neg() : e(a % 4294967296 | 0, a / 4294967296 |\r\n 0, b)\r\n } function e(a, b, c) { return new d(a, b, c) } function y(a, b, c) {\r\n if (0 === a.length) throw Error(\"empty string\"); if (\"NaN\" === a || \"Infinity\" === a || \"+Infinity\" === a || \"-Infinity\" === a) return k; \"number\" === typeof b ? (c = b, b = !1) : b = !!b; c = c || 10; if (2 > c || 36 < c) throw RangeError(\"radix\"); var u; if (0 < (u = a.indexOf(\"-\"))) throw Error(\"interior hyphen\"); if (0 === u) return y(a.substring(1), b, c).neg(); u = n(w(c, 8)); for (var e = k, f = 0; f < a.length; f += 8) {\r\n var d = Math.min(8, a.length - f), g = parseInt(a.substring(f, f + d), c); 8 > d ? (d = n(w(c, d)), e = e.mul(d).add(n(g))) :\r\n (e = e.mul(u), e = e.add(n(g)))\r\n } e.unsigned = b; return e\r\n } function q(a) { return a instanceof d ? a : \"number\" === typeof a ? n(a) : \"string\" === typeof a ? y(a) : e(a.low, a.high, a.unsigned) } b.Bridge.$Long = d; d.__isLong__; Object.defineProperty(d.prototype, \"__isLong__\", { value: !0, enumerable: !1, configurable: !1 }); d.isLong = g; var B = {}, A = {}; d.fromInt = m; d.fromNumber = n; d.fromBits = e; var w = Math.pow; d.fromString = y; d.fromValue = q; var C = 4294967296 * 4294967296, E = C / 2, G = m(16777216), k = m(0); d.ZERO = k; var p = m(0, !0); d.UZERO = p; var r = m(1); d.ONE = r; var H =\r\n m(1, !0); d.UONE = H; var z = m(-1); d.NEG_ONE = z; var F = e(-1, 2147483647, !1); d.MAX_VALUE = F; var D = e(-1, -1, !0); d.MAX_UNSIGNED_VALUE = D; var l = e(0, -2147483648, !1); d.MIN_VALUE = l; b = d.prototype; b.toInt = function () { return this.unsigned ? this.low >>> 0 : this.low }; b.toNumber = function () { return this.unsigned ? 4294967296 * (this.high >>> 0) + (this.low >>> 0) : 4294967296 * this.high + (this.low >>> 0) }; b.toString = function (a) {\r\n a = a || 10; if (2 > a || 36 < a) throw RangeError(\"radix\"); if (this.isZero()) return \"0\"; if (this.isNegative()) {\r\n if (this.eq(l)) {\r\n var b =\r\n n(a), c = this.div(b), b = c.mul(b).sub(this); return c.toString(a) + b.toInt().toString(a)\r\n } return (\"undefined\" === typeof a || 10 === a ? \"-\" : \"\") + this.neg().toString(a)\r\n } for (var c = n(w(a, 6), this.unsigned), b = this, e = \"\"; ;) { var d = b.div(c), f = (b.sub(d.mul(c)).toInt() >>> 0).toString(a), b = d; if (b.isZero()) return f + e; for (; 6 > f.length;) f = \"0\" + f; e = \"\" + f + e }\r\n }; b.getHighBits = function () { return this.high }; b.getHighBitsUnsigned = function () { return this.high >>> 0 }; b.getLowBits = function () { return this.low }; b.getLowBitsUnsigned = function () {\r\n return this.low >>>\r\n 0\r\n }; b.getNumBitsAbs = function () { if (this.isNegative()) return this.eq(l) ? 64 : this.neg().getNumBitsAbs(); for (var a = 0 != this.high ? this.high : this.low, b = 31; 0 < b && 0 == (a & 1 << b) ; b--); return 0 != this.high ? b + 33 : b + 1 }; b.isZero = function () { return 0 === this.high && 0 === this.low }; b.isNegative = function () { return !this.unsigned && 0 > this.high }; b.isPositive = function () { return this.unsigned || 0 <= this.high }; b.isOdd = function () { return 1 === (this.low & 1) }; b.isEven = function () { return 0 === (this.low & 1) }; b.equals = function (a) {\r\n g(a) || (a = q(a)); return this.unsigned !==\r\n a.unsigned && 1 === this.high >>> 31 && 1 === a.high >>> 31 ? !1 : this.high === a.high && this.low === a.low\r\n }; b.eq = b.equals; b.notEquals = function (a) { return !this.eq(a) }; b.neq = b.notEquals; b.lessThan = function (a) { return 0 > this.comp(a) }; b.lt = b.lessThan; b.lessThanOrEqual = function (a) { return 0 >= this.comp(a) }; b.lte = b.lessThanOrEqual; b.greaterThan = function (a) { return 0 < this.comp(a) }; b.gt = b.greaterThan; b.greaterThanOrEqual = function (a) { return 0 <= this.comp(a) }; b.gte = b.greaterThanOrEqual; b.compare = function (a) {\r\n g(a) || (a = q(a)); if (this.eq(a)) return 0;\r\n var b = this.isNegative(), c = a.isNegative(); return b && !c ? -1 : !b && c ? 1 : this.unsigned ? a.high >>> 0 > this.high >>> 0 || a.high === this.high && a.low >>> 0 > this.low >>> 0 ? -1 : 1 : this.sub(a).isNegative() ? -1 : 1\r\n }; b.comp = b.compare; b.negate = function () { return !this.unsigned && this.eq(l) ? l : this.not().add(r) }; b.neg = b.negate; b.add = function (a) {\r\n g(a) || (a = q(a)); var b = this.high >>> 16, c = this.high & 65535, d = this.low >>> 16, l = a.high >>> 16, f = a.high & 65535, n = a.low >>> 16, k; k = 0 + ((this.low & 65535) + (a.low & 65535)); a = 0 + (k >>> 16); a += d + n; d = 0 + (a >>> 16); d += c + f; c =\r\n 0 + (d >>> 16); c = c + (b + l) & 65535; return e((a & 65535) << 16 | k & 65535, c << 16 | d & 65535, this.unsigned)\r\n }; b.subtract = function (a) { g(a) || (a = q(a)); return this.add(a.neg()) }; b.sub = b.subtract; b.multiply = function (a) {\r\n if (this.isZero()) return k; g(a) || (a = q(a)); if (a.isZero()) return k; if (this.eq(l)) return a.isOdd() ? l : k; if (a.eq(l)) return this.isOdd() ? l : k; if (this.isNegative()) return a.isNegative() ? this.neg().mul(a.neg()) : this.neg().mul(a).neg(); if (a.isNegative()) return this.mul(a.neg()).neg(); if (this.lt(G) && a.lt(G)) return n(this.toNumber() *\r\n a.toNumber(), this.unsigned); var b = this.high >>> 16, c = this.high & 65535, d = this.low >>> 16, x = this.low & 65535, f = a.high >>> 16, m = a.high & 65535, p = a.low >>> 16; a = a.low & 65535; var v, h, t, r; r = 0 + x * a; t = 0 + (r >>> 16); t += d * a; h = 0 + (t >>> 16); t = (t & 65535) + x * p; h += t >>> 16; t &= 65535; h += c * a; v = 0 + (h >>> 16); h = (h & 65535) + d * p; v += h >>> 16; h &= 65535; h += x * m; v += h >>> 16; h &= 65535; v = v + (b * a + c * p + d * m + x * f) & 65535; return e(t << 16 | r & 65535, v << 16 | h, this.unsigned)\r\n }; b.mul = b.multiply; b.divide = function (a) {\r\n g(a) || (a = q(a)); if (a.isZero()) throw Error(\"division by zero\"); if (this.isZero()) return this.unsigned ?\r\n p : k; var b, c, d; if (this.unsigned) a.unsigned || (a = a.toUnsigned()); else { if (this.eq(l)) { if (a.eq(r) || a.eq(z)) return l; if (a.eq(l)) return r; b = this.shr(1).div(a).shl(1); if (b.eq(k)) return a.isNegative() ? r : z; c = this.sub(a.mul(b)); return d = b.add(c.div(a)) } if (a.eq(l)) return this.unsigned ? p : k; if (this.isNegative()) return a.isNegative() ? this.neg().div(a.neg()) : this.neg().div(a).neg(); if (a.isNegative()) return this.div(a.neg()).neg() } if (this.unsigned) { if (a.gt(this)) return p; if (a.gt(this.shru(1))) return H; d = p } else d =\r\n k; for (c = this; c.gte(a) ;) { b = Math.max(1, Math.floor(c.toNumber() / a.toNumber())); for (var e = Math.ceil(Math.log(b) / Math.LN2), e = 48 >= e ? 1 : w(2, e - 48), f = n(b), m = f.mul(a) ; m.isNegative() || m.gt(c) ;) b -= e, f = n(b, this.unsigned), m = f.mul(a); f.isZero() && (f = r); d = d.add(f); c = c.sub(m) } return d\r\n }; b.div = b.divide; b.modulo = function (a) { g(a) || (a = q(a)); return this.sub(this.div(a).mul(a)) }; b.mod = b.modulo; b.not = function () { return e(~this.low, ~this.high, this.unsigned) }; b.and = function (a) {\r\n g(a) || (a = q(a)); return e(this.low & a.low, this.high &\r\n a.high, this.unsigned)\r\n }; b.or = function (a) { g(a) || (a = q(a)); return e(this.low | a.low, this.high | a.high, this.unsigned) }; b.xor = function (a) { g(a) || (a = q(a)); return e(this.low ^ a.low, this.high ^ a.high, this.unsigned) }; b.shiftLeft = function (a) { g(a) && (a = a.toInt()); return 0 === (a &= 63) ? this : 32 > a ? e(this.low << a, this.high << a | this.low >>> 32 - a, this.unsigned) : e(0, this.low << a - 32, this.unsigned) }; b.shl = b.shiftLeft; b.shiftRight = function (a) {\r\n g(a) && (a = a.toInt()); return 0 === (a &= 63) ? this : 32 > a ? e(this.low >>> a | this.high << 32 - a, this.high >>\r\n a, this.unsigned) : e(this.high >> a - 32, 0 <= this.high ? 0 : -1, this.unsigned)\r\n }; b.shr = b.shiftRight; b.shiftRightUnsigned = function (a) { g(a) && (a = a.toInt()); a &= 63; if (0 === a) return this; var b = this.high; return 32 > a ? e(this.low >>> a | b << 32 - a, b >>> a, this.unsigned) : 32 === a ? e(b, 0, this.unsigned) : e(b >>> a - 32, 0, this.unsigned) }; b.shru = b.shiftRightUnsigned; b.toSigned = function () { return this.unsigned ? e(this.low, this.high, !1) : this }; b.toUnsigned = function () { return this.unsigned ? this : e(this.low, this.high, !0) }\r\n })(Bridge.global);\r\n\r\n System.Int64 = function (l) {\r\n if (this.constructor !== System.Int64) {\r\n return new System.Int64(l);\r\n }\r\n\r\n if (!Bridge.hasValue(l)) {\r\n l = 0;\r\n }\r\n\r\n this.T = System.Int64;\r\n this.unsigned = false;\r\n this.value = System.Int64.getValue(l);\r\n }\r\n\r\n System.Int64.$number = true;\r\n System.Int64.TWO_PWR_16_DBL = 1 << 16;\r\n System.Int64.TWO_PWR_32_DBL = System.Int64.TWO_PWR_16_DBL * System.Int64.TWO_PWR_16_DBL;\r\n System.Int64.TWO_PWR_64_DBL = System.Int64.TWO_PWR_32_DBL * System.Int64.TWO_PWR_32_DBL;\r\n System.Int64.TWO_PWR_63_DBL = System.Int64.TWO_PWR_64_DBL / 2;\r\n\r\n System.Int64.$$name = \"System.Int64\";\r\n System.Int64.prototype.$$name = \"System.Int64\";\r\n System.Int64.$kind = \"struct\";\r\n System.Int64.prototype.$kind = \"struct\";\r\n\r\n System.Int64.$$inherits = [];\r\n Bridge.Class.addExtend(System.Int64, [System.IComparable, System.IFormattable, System.IComparable$1(System.Int64), System.IEquatable$1(System.Int64)]);\r\n\r\n System.Int64.$is = function (instance) {\r\n return instance instanceof System.Int64;\r\n };\r\n\r\n System.Int64.is64Bit = function (instance) {\r\n return instance instanceof System.Int64 || instance instanceof System.UInt64;\r\n };\r\n\r\n System.Int64.is64BitType = function (type) {\r\n return type === System.Int64 || type === System.UInt64;\r\n };\r\n\r\n System.Int64.getDefaultValue = function () {\r\n return System.Int64.Zero;\r\n };\r\n\r\n System.Int64.getValue = function (l) {\r\n if (!Bridge.hasValue(l)) {\r\n return null;\r\n }\r\n\r\n if (l instanceof Bridge.$Long) {\r\n return l;\r\n }\r\n\r\n if (l instanceof System.Int64) {\r\n return l.value;\r\n }\r\n\r\n if (l instanceof System.UInt64) {\r\n return l.value.toSigned();\r\n }\r\n\r\n if (Bridge.isArray(l)) {\r\n return new Bridge.$Long(l[0], l[1]);\r\n }\r\n\r\n if (Bridge.isString(l)) {\r\n return Bridge.$Long.fromString(l);\r\n }\r\n\r\n if (Bridge.isNumber(l)) {\r\n if (l + 1 >= System.Int64.TWO_PWR_63_DBL) {\r\n return (new System.UInt64(l)).value.toSigned();\r\n }\r\n return Bridge.$Long.fromNumber(l);\r\n }\r\n\r\n if (l instanceof System.Decimal) {\r\n return Bridge.$Long.fromString(l.toString());\r\n }\r\n\r\n return Bridge.$Long.fromValue(l);\r\n };\r\n\r\n System.Int64.create = function (l) {\r\n if (!Bridge.hasValue(l)) {\r\n return null;\r\n }\r\n\r\n if (l instanceof System.Int64) {\r\n return l;\r\n }\r\n\r\n return new System.Int64(l);\r\n };\r\n\r\n System.Int64.lift = function (l) {\r\n if (!Bridge.hasValue(l)) {\r\n return null;\r\n }\r\n return System.Int64.create(l);\r\n };\r\n\r\n System.Int64.toNumber = function (value) {\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n return value.toNumber();\r\n };\r\n\r\n System.Int64.prototype.toNumberDivided = function (divisor) {\r\n var integral = this.div(divisor),\r\n remainder = this.mod(divisor),\r\n scaledRemainder = remainder.toNumber() / divisor;\r\n\r\n return integral.toNumber() + scaledRemainder;\r\n };\r\n\r\n System.Int64.prototype.toJSON = function () {\r\n return this.gt(Bridge.Int.MAX_SAFE_INTEGER) || this.lt(Bridge.Int.MIN_SAFE_INTEGER) ? this.toString() : this.toNumber();\r\n };\r\n\r\n System.Int64.prototype.toString = function (format, provider) {\r\n if (!format && !provider) {\r\n return this.value.toString();\r\n }\r\n\r\n if (Bridge.isNumber(format) && !provider) {\r\n return this.value.toString(format);\r\n }\r\n\r\n return Bridge.Int.format(this, format, provider, System.Int64, System.Int64.clipu64);\r\n };\r\n\r\n System.Int64.prototype.format = function (format, provider) {\r\n return Bridge.Int.format(this, format, provider, System.Int64, System.Int64.clipu64);\r\n };\r\n\r\n System.Int64.prototype.isNegative = function () {\r\n return this.value.isNegative();\r\n };\r\n\r\n System.Int64.prototype.abs = function () {\r\n if (this.T === System.Int64 && this.eq(System.Int64.MinValue)) {\r\n throw new System.OverflowException();\r\n }\r\n return new this.T(this.value.isNegative() ? this.value.neg() : this.value);\r\n };\r\n\r\n System.Int64.prototype.compareTo = function (l) {\r\n return this.value.compare(this.T.getValue(l));\r\n };\r\n\r\n System.Int64.prototype.add = function (l, overflow) {\r\n var addl = this.T.getValue(l),\r\n r = new this.T(this.value.add(addl));\r\n\r\n if (overflow) {\r\n var neg1 = this.value.isNegative(),\r\n neg2 = addl.isNegative(),\r\n rneg = r.value.isNegative();\r\n\r\n if ((neg1 && neg2 && !rneg) ||\r\n (!neg1 && !neg2 && rneg) ||\r\n (this.T === System.UInt64 && r.lt(System.UInt64.max(this, addl)))) {\r\n throw new System.OverflowException();\r\n }\r\n }\r\n\r\n return r;\r\n };\r\n\r\n System.Int64.prototype.sub = function (l, overflow) {\r\n var subl = this.T.getValue(l),\r\n r = new this.T(this.value.sub(subl));\r\n\r\n if (overflow) {\r\n var neg1 = this.value.isNegative(),\r\n neg2 = subl.isNegative(),\r\n rneg = r.value.isNegative();\r\n\r\n if ((neg1 && !neg2 && !rneg) ||\r\n (!neg1 && neg2 && rneg) ||\r\n (this.T === System.UInt64 && this.value.lt(subl))) {\r\n throw new System.OverflowException();\r\n }\r\n }\r\n\r\n return r;\r\n };\r\n\r\n System.Int64.prototype.isZero = function () {\r\n return this.value.isZero();\r\n };\r\n\r\n System.Int64.prototype.mul = function (l, overflow) {\r\n var arg = this.T.getValue(l),\r\n r = new this.T(this.value.mul(arg));\r\n\r\n if (overflow) {\r\n var s1 = this.sign(),\r\n s2 = arg.isZero() ? 0 : (arg.isNegative() ? -1 : 1),\r\n rs = r.sign();\r\n\r\n if (this.T === System.Int64) {\r\n if (this.eq(System.Int64.MinValue) || this.eq(System.Int64.MaxValue)) {\r\n if (arg.neq(1) && arg.neq(0)) {\r\n throw new System.OverflowException();\r\n }\r\n\r\n return r;\r\n }\r\n\r\n if (arg.eq(Bridge.$Long.MIN_VALUE) || arg.eq(Bridge.$Long.MAX_VALUE)) {\r\n if (this.neq(1) && this.neq(0)) {\r\n throw new System.OverflowException();\r\n }\r\n\r\n return r;\r\n }\r\n\r\n if ((s1 === -1 && s2 === -1 && rs !== 1) ||\r\n (s1 === 1 && s2 === 1 && rs !== 1) ||\r\n (s1 === -1 && s2 === 1 && rs !== -1) ||\r\n (s1 === 1 && s2 === -1 && rs !== -1)) {\r\n throw new System.OverflowException();\r\n }\r\n\r\n var r_abs = r.abs();\r\n\r\n if (r_abs.lt(this.abs()) || r_abs.lt(System.Int64(arg).abs())) {\r\n throw new System.OverflowException();\r\n }\r\n } else {\r\n if (this.eq(System.UInt64.MaxValue)) {\r\n if (arg.neq(1) && arg.neq(0)) {\r\n throw new System.OverflowException();\r\n }\r\n\r\n return r;\r\n }\r\n\r\n if (arg.eq(Bridge.$Long.MAX_UNSIGNED_VALUE)) {\r\n if (this.neq(1) && this.neq(0)) {\r\n throw new System.OverflowException();\r\n }\r\n\r\n return r;\r\n }\r\n\r\n var r_abs = r.abs();\r\n\r\n if (r_abs.lt(this.abs()) || r_abs.lt(System.Int64(arg).abs())) {\r\n throw new System.OverflowException();\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n };\r\n\r\n System.Int64.prototype.div = function (l) {\r\n return new this.T(this.value.div(this.T.getValue(l)));\r\n };\r\n\r\n System.Int64.prototype.mod = function (l) {\r\n return new this.T(this.value.mod(this.T.getValue(l)));\r\n };\r\n\r\n System.Int64.prototype.neg = function (overflow) {\r\n if (overflow && this.T === System.Int64 && this.eq(System.Int64.MinValue)) {\r\n throw new System.OverflowException();\r\n }\r\n return new this.T(this.value.neg());\r\n };\r\n\r\n System.Int64.prototype.inc = function (overflow) {\r\n return this.add(1, overflow);\r\n };\r\n\r\n System.Int64.prototype.dec = function (overflow) {\r\n return this.sub(1, overflow);\r\n };\r\n\r\n System.Int64.prototype.sign = function () {\r\n return this.value.isZero() ? 0 : (this.value.isNegative() ? -1 : 1);\r\n };\r\n\r\n System.Int64.prototype.clone = function () {\r\n return new this.T(this);\r\n };\r\n\r\n System.Int64.prototype.ne = function (l) {\r\n return this.value.neq(this.T.getValue(l));\r\n };\r\n\r\n System.Int64.prototype.neq = function (l) {\r\n return this.value.neq(this.T.getValue(l));\r\n };\r\n\r\n System.Int64.prototype.eq = function (l) {\r\n return this.value.eq(this.T.getValue(l));\r\n };\r\n\r\n System.Int64.prototype.lt = function (l) {\r\n return this.value.lt(this.T.getValue(l));\r\n };\r\n\r\n System.Int64.prototype.lte = function (l) {\r\n return this.value.lte(this.T.getValue(l));\r\n };\r\n\r\n System.Int64.prototype.gt = function (l) {\r\n return this.value.gt(this.T.getValue(l));\r\n };\r\n\r\n System.Int64.prototype.gte = function (l) {\r\n return this.value.gte(this.T.getValue(l));\r\n };\r\n\r\n System.Int64.prototype.equals = function (l) {\r\n return this.value.eq(this.T.getValue(l));\r\n };\r\n\r\n System.Int64.prototype.equalsT = function (l) {\r\n return this.equals(l);\r\n };\r\n\r\n System.Int64.prototype.getHashCode = function () {\r\n var n = (this.sign() * 397 + this.value.high) | 0;\r\n n = (n * 397 + this.value.low) | 0;\r\n\r\n return n;\r\n };\r\n\r\n System.Int64.prototype.toNumber = function () {\r\n return this.value.toNumber();\r\n };\r\n\r\n System.Int64.parse = function (str) {\r\n if (str == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"str\");\r\n }\r\n\r\n if (!/^[+-]?[0-9]+$/.test(str)) {\r\n throw new System.FormatException.$ctor1(\"Input string was not in a correct format.\");\r\n }\r\n\r\n var result = new System.Int64(str);\r\n\r\n if (System.String.trimStartZeros(str) !== result.toString()) {\r\n throw new System.OverflowException();\r\n }\r\n\r\n return result;\r\n };\r\n\r\n System.Int64.tryParse = function (str, v) {\r\n try {\r\n if (str == null || !/^[+-]?[0-9]+$/.test(str)) {\r\n v.v = System.Int64(Bridge.$Long.ZERO);\r\n return false;\r\n }\r\n\r\n v.v = new System.Int64(str);\r\n\r\n if (System.String.trimStartZeros(str) !== v.v.toString()) {\r\n v.v = System.Int64(Bridge.$Long.ZERO);\r\n return false;\r\n }\r\n\r\n return true;\r\n } catch (e) {\r\n v.v = System.Int64(Bridge.$Long.ZERO);\r\n return false;\r\n }\r\n };\r\n\r\n System.Int64.divRem = function (a, b, result) {\r\n a = System.Int64(a);\r\n b = System.Int64(b);\r\n var remainder = a.mod(b);\r\n result.v = remainder;\r\n return a.sub(remainder).div(b);\r\n };\r\n\r\n System.Int64.min = function () {\r\n var values = [],\r\n min, i, len;\r\n\r\n for (i = 0, len = arguments.length; i < len; i++) {\r\n values.push(System.Int64.getValue(arguments[i]));\r\n }\r\n\r\n i = 0;\r\n min = values[0];\r\n for (; ++i < values.length;) {\r\n if (values[i].lt(min)) {\r\n min = values[i];\r\n }\r\n }\r\n\r\n return new System.Int64(min);\r\n };\r\n\r\n System.Int64.max = function () {\r\n var values = [],\r\n max, i, len;\r\n\r\n for (i = 0, len = arguments.length; i < len; i++) {\r\n values.push(System.Int64.getValue(arguments[i]));\r\n }\r\n\r\n i = 0;\r\n max = values[0];\r\n for (; ++i < values.length;) {\r\n if (values[i].gt(max)) {\r\n max = values[i];\r\n }\r\n }\r\n\r\n return new System.Int64(max);\r\n };\r\n\r\n System.Int64.prototype.and = function (l) {\r\n return new this.T(this.value.and(this.T.getValue(l)));\r\n };\r\n\r\n System.Int64.prototype.not = function () {\r\n return new this.T(this.value.not());\r\n };\r\n\r\n System.Int64.prototype.or = function (l) {\r\n return new this.T(this.value.or(this.T.getValue(l)));\r\n };\r\n\r\n System.Int64.prototype.shl = function (l) {\r\n return new this.T(this.value.shl(l));\r\n };\r\n\r\n System.Int64.prototype.shr = function (l) {\r\n return new this.T(this.value.shr(l));\r\n };\r\n\r\n System.Int64.prototype.shru = function (l) {\r\n return new this.T(this.value.shru(l));\r\n };\r\n\r\n System.Int64.prototype.xor = function (l) {\r\n return new this.T(this.value.xor(this.T.getValue(l)));\r\n };\r\n\r\n System.Int64.check = function (v, tp) {\r\n if (Bridge.Int.isInfinite(v)) {\r\n if (tp === System.Int64 || tp === System.UInt64) {\r\n return tp.MinValue;\r\n }\r\n return tp.min;\r\n }\r\n\r\n if (!v) {\r\n return null;\r\n }\r\n\r\n var str, r;\r\n if (tp === System.Int64) {\r\n if (v instanceof System.Int64) {\r\n return v;\r\n }\r\n\r\n str = v.value.toString();\r\n r = new System.Int64(str);\r\n\r\n if (str !== r.value.toString()) {\r\n throw new System.OverflowException();\r\n }\r\n\r\n return r;\r\n }\r\n\r\n if (tp === System.UInt64) {\r\n if (v instanceof System.UInt64) {\r\n return v;\r\n }\r\n\r\n if (v.value.isNegative()) {\r\n throw new System.OverflowException();\r\n }\r\n str = v.value.toString();\r\n r = new System.UInt64(str);\r\n\r\n if (str !== r.value.toString()) {\r\n throw new System.OverflowException();\r\n }\r\n\r\n return r;\r\n }\r\n\r\n return Bridge.Int.check(v.toNumber(), tp);\r\n };\r\n\r\n System.Int64.clip8 = function (x) {\r\n x = (x == null || System.Int64.is64Bit(x)) ? x : new System.Int64(x);\r\n return x ? Bridge.Int.sxb(x.value.low & 0xff) : (Bridge.Int.isInfinite(x) ? System.SByte.min : null);\r\n };\r\n\r\n System.Int64.clipu8 = function (x) {\r\n x = (x == null || System.Int64.is64Bit(x)) ? x : new System.Int64(x);\r\n return x ? x.value.low & 0xff : (Bridge.Int.isInfinite(x) ? System.Byte.min : null);\r\n };\r\n\r\n System.Int64.clip16 = function (x) {\r\n x = (x == null || System.Int64.is64Bit(x)) ? x : new System.Int64(x);\r\n return x ? Bridge.Int.sxs(x.value.low & 0xffff) : (Bridge.Int.isInfinite(x) ? System.Int16.min : null);\r\n };\r\n\r\n System.Int64.clipu16 = function (x) {\r\n x = (x == null || System.Int64.is64Bit(x)) ? x : new System.Int64(x);\r\n return x ? x.value.low & 0xffff : (Bridge.Int.isInfinite(x) ? System.UInt16.min : null);\r\n };\r\n\r\n System.Int64.clip32 = function (x) {\r\n x = (x == null || System.Int64.is64Bit(x)) ? x : new System.Int64(x);\r\n return x ? x.value.low | 0 : (Bridge.Int.isInfinite(x) ? System.Int32.min : null);\r\n };\r\n\r\n System.Int64.clipu32 = function (x) {\r\n x = (x == null || System.Int64.is64Bit(x)) ? x : new System.Int64(x);\r\n return x ? x.value.low >>> 0 : (Bridge.Int.isInfinite(x) ? System.UInt32.min : null);\r\n };\r\n\r\n System.Int64.clip64 = function (x) {\r\n x = (x == null || System.Int64.is64Bit(x)) ? x : new System.UInt64(x);\r\n return x ? new System.Int64(x.value.toSigned()) : (Bridge.Int.isInfinite(x) ? System.Int64.MinValue : null);\r\n };\r\n\r\n System.Int64.clipu64 = function (x) {\r\n x = (x == null || System.Int64.is64Bit(x)) ? x : new System.Int64(x);\r\n return x ? new System.UInt64(x.value.toUnsigned()) : (Bridge.Int.isInfinite(x) ? System.UInt64.MinValue : null);\r\n };\r\n\r\n System.Int64.Zero = System.Int64(Bridge.$Long.ZERO);\r\n System.Int64.MinValue = System.Int64(Bridge.$Long.MIN_VALUE);\r\n System.Int64.MaxValue = System.Int64(Bridge.$Long.MAX_VALUE);\r\n System.Int64.precision = 19;\r\n\r\n /* ULONG */\r\n\r\n System.UInt64 = function (l) {\r\n if (this.constructor !== System.UInt64) {\r\n return new System.UInt64(l);\r\n }\r\n\r\n if (!Bridge.hasValue(l)) {\r\n l = 0;\r\n }\r\n\r\n this.T = System.UInt64;\r\n this.unsigned = true;\r\n this.value = System.UInt64.getValue(l, true);\r\n }\r\n\r\n System.UInt64.$number = true;\r\n System.UInt64.$$name = \"System.UInt64\";\r\n System.UInt64.prototype.$$name = \"System.UInt64\";\r\n System.UInt64.$kind = \"struct\";\r\n System.UInt64.prototype.$kind = \"struct\";\r\n System.UInt64.$$inherits = [];\r\n Bridge.Class.addExtend(System.UInt64, [System.IComparable, System.IFormattable, System.IComparable$1(System.UInt64), System.IEquatable$1(System.UInt64)]);\r\n\r\n System.UInt64.$is = function (instance) {\r\n return instance instanceof System.UInt64;\r\n };\r\n\r\n System.UInt64.getDefaultValue = function () {\r\n return System.UInt64.Zero;\r\n };\r\n\r\n System.UInt64.getValue = function (l) {\r\n if (!Bridge.hasValue(l)) {\r\n return null;\r\n }\r\n\r\n if (l instanceof Bridge.$Long) {\r\n return l;\r\n }\r\n\r\n if (l instanceof System.UInt64) {\r\n return l.value;\r\n }\r\n\r\n if (l instanceof System.Int64) {\r\n return l.value.toUnsigned();\r\n }\r\n\r\n if (Bridge.isArray(l)) {\r\n return new Bridge.$Long(l[0], l[1], true);\r\n }\r\n\r\n if (Bridge.isString(l)) {\r\n return Bridge.$Long.fromString(l, true);\r\n }\r\n\r\n if (Bridge.isNumber(l)) {\r\n if (l < 0) {\r\n return (new System.Int64(l)).value.toUnsigned();\r\n }\r\n\r\n return Bridge.$Long.fromNumber(l, true);\r\n }\r\n\r\n if (l instanceof System.Decimal) {\r\n return Bridge.$Long.fromString(l.toString(), true);\r\n }\r\n\r\n return Bridge.$Long.fromValue(l);\r\n };\r\n\r\n System.UInt64.create = function (l) {\r\n if (!Bridge.hasValue(l)) {\r\n return null;\r\n }\r\n\r\n if (l instanceof System.UInt64) {\r\n return l;\r\n }\r\n\r\n return new System.UInt64(l);\r\n };\r\n\r\n System.UInt64.lift = function (l) {\r\n if (!Bridge.hasValue(l)) {\r\n return null;\r\n }\r\n return System.UInt64.create(l);\r\n };\r\n\r\n System.UInt64.prototype.toString = System.Int64.prototype.toString;\r\n System.UInt64.prototype.format = System.Int64.prototype.format;\r\n System.UInt64.prototype.isNegative = System.Int64.prototype.isNegative;\r\n System.UInt64.prototype.abs = System.Int64.prototype.abs;\r\n System.UInt64.prototype.compareTo = System.Int64.prototype.compareTo;\r\n System.UInt64.prototype.add = System.Int64.prototype.add;\r\n System.UInt64.prototype.sub = System.Int64.prototype.sub;\r\n System.UInt64.prototype.isZero = System.Int64.prototype.isZero;\r\n System.UInt64.prototype.mul = System.Int64.prototype.mul;\r\n System.UInt64.prototype.div = System.Int64.prototype.div;\r\n System.UInt64.prototype.toNumberDivided = System.Int64.prototype.toNumberDivided;\r\n System.UInt64.prototype.mod = System.Int64.prototype.mod;\r\n System.UInt64.prototype.neg = System.Int64.prototype.neg;\r\n System.UInt64.prototype.inc = System.Int64.prototype.inc;\r\n System.UInt64.prototype.dec = System.Int64.prototype.dec;\r\n System.UInt64.prototype.sign = System.Int64.prototype.sign;\r\n System.UInt64.prototype.clone = System.Int64.prototype.clone;\r\n System.UInt64.prototype.ne = System.Int64.prototype.ne;\r\n System.UInt64.prototype.neq = System.Int64.prototype.neq;\r\n System.UInt64.prototype.eq = System.Int64.prototype.eq;\r\n System.UInt64.prototype.lt = System.Int64.prototype.lt;\r\n System.UInt64.prototype.lte = System.Int64.prototype.lte;\r\n System.UInt64.prototype.gt = System.Int64.prototype.gt;\r\n System.UInt64.prototype.gte = System.Int64.prototype.gte;\r\n System.UInt64.prototype.equals = System.Int64.prototype.equals;\r\n System.UInt64.prototype.equalsT = System.Int64.prototype.equalsT;\r\n System.UInt64.prototype.getHashCode = System.Int64.prototype.getHashCode;\r\n System.UInt64.prototype.toNumber = System.Int64.prototype.toNumber;\r\n\r\n System.UInt64.parse = function (str) {\r\n if (str == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"str\");\r\n }\r\n\r\n if (!/^[+-]?[0-9]+$/.test(str)) {\r\n throw new System.FormatException.$ctor1(\"Input string was not in a correct format.\");\r\n }\r\n\r\n var result = new System.UInt64(str);\r\n\r\n if (result.value.isNegative()) {\r\n throw new System.OverflowException();\r\n }\r\n\r\n if (System.String.trimStartZeros(str) !== result.toString()) {\r\n throw new System.OverflowException();\r\n }\r\n\r\n return result;\r\n };\r\n\r\n System.UInt64.tryParse = function (str, v) {\r\n try {\r\n if (str == null || !/^[+-]?[0-9]+$/.test(str)) {\r\n v.v = System.UInt64(Bridge.$Long.UZERO);\r\n return false;\r\n }\r\n\r\n v.v = new System.UInt64(str);\r\n\r\n if (v.v.isNegative()) {\r\n v.v = System.UInt64(Bridge.$Long.UZERO);\r\n return false;\r\n }\r\n\r\n if (System.String.trimStartZeros(str) !== v.v.toString()) {\r\n v.v = System.UInt64(Bridge.$Long.UZERO);\r\n return false;\r\n }\r\n\r\n return true;\r\n } catch (e) {\r\n v.v = System.UInt64(Bridge.$Long.UZERO);\r\n return false;\r\n }\r\n };\r\n\r\n System.UInt64.min = function () {\r\n var values = [],\r\n min, i, len;\r\n\r\n for (i = 0, len = arguments.length; i < len; i++) {\r\n values.push(System.UInt64.getValue(arguments[i]));\r\n }\r\n\r\n i = 0;\r\n min = values[0];\r\n for (; ++i < values.length;) {\r\n if (values[i].lt(min)) {\r\n min = values[i];\r\n }\r\n }\r\n\r\n return new System.UInt64(min);\r\n };\r\n\r\n System.UInt64.max = function () {\r\n var values = [],\r\n max, i, len;\r\n\r\n for (i = 0, len = arguments.length; i < len; i++) {\r\n values.push(System.UInt64.getValue(arguments[i]));\r\n }\r\n\r\n i = 0;\r\n max = values[0];\r\n for (; ++i < values.length;) {\r\n if (values[i].gt(max)) {\r\n max = values[i];\r\n }\r\n }\r\n\r\n return new System.UInt64(max);\r\n };\r\n\r\n System.UInt64.divRem = function (a, b, result) {\r\n a = System.UInt64(a);\r\n b = System.UInt64(b);\r\n var remainder = a.mod(b);\r\n result.v = remainder;\r\n return a.sub(remainder).div(b);\r\n };\r\n\r\n System.UInt64.prototype.toJSON = function () {\r\n return this.gt(Bridge.Int.MAX_SAFE_INTEGER) ? this.toString() : this.toNumber();\r\n };\r\n\r\n System.UInt64.prototype.and = System.Int64.prototype.and;\r\n System.UInt64.prototype.not = System.Int64.prototype.not;\r\n System.UInt64.prototype.or = System.Int64.prototype.or;\r\n System.UInt64.prototype.shl = System.Int64.prototype.shl;\r\n System.UInt64.prototype.shr = System.Int64.prototype.shr;\r\n System.UInt64.prototype.shru = System.Int64.prototype.shru;\r\n System.UInt64.prototype.xor = System.Int64.prototype.xor;\r\n\r\n System.UInt64.Zero = System.UInt64(Bridge.$Long.UZERO);\r\n System.UInt64.MinValue = System.UInt64.Zero;\r\n System.UInt64.MaxValue = System.UInt64(Bridge.$Long.MAX_UNSIGNED_VALUE);\r\n System.UInt64.precision = 20;\r\n\r\n // @source Decimal.js\r\n\r\n /* decimal.js v7.1.0 https://github.com/MikeMcl/decimal.js/LICENCE */\r\n !function (n) { \"use strict\"; function e(n) { var e, i, t, r = n.length - 1, s = \"\", o = n[0]; if (r > 0) { for (s += o, e = 1; r > e; e++) t = n[e] + \"\", i = Rn - t.length, i && (s += l(i)), s += t; o = n[e], t = o + \"\", i = Rn - t.length, i && (s += l(i)) } else if (0 === o) return \"0\"; for (; o % 10 === 0;) o /= 10; return s + o } function i(n, e, i) { if (n !== ~~n || e > n || n > i) throw Error(En + n) } function t(n, e, i, t) { var r, s, o, u; for (s = n[0]; s >= 10; s /= 10)--e; return --e < 0 ? (e += Rn, r = 0) : (r = Math.ceil((e + 1) / Rn), e %= Rn), s = On(10, Rn - e), u = n[r] % s | 0, null == t ? 3 > e ? (0 == e ? u = u / 100 | 0 : 1 == e && (u = u / 10 | 0), o = 4 > i && 99999 == u || i > 3 && 49999 == u || 5e4 == u || 0 == u) : o = (4 > i && u + 1 == s || i > 3 && u + 1 == s / 2) && (n[r + 1] / s / 100 | 0) == On(10, e - 2) - 1 || (u == s / 2 || 0 == u) && 0 == (n[r + 1] / s / 100 | 0) : 4 > e ? (0 == e ? u = u / 1e3 | 0 : 1 == e ? u = u / 100 | 0 : 2 == e && (u = u / 10 | 0), o = (t || 4 > i) && 9999 == u || !t && i > 3 && 4999 == u) : o = ((t || 4 > i) && u + 1 == s || !t && i > 3 && u + 1 == s / 2) && (n[r + 1] / s / 1e3 | 0) == On(10, e - 3) - 1, o } function r(n, e, i) { for (var t, r, s = [0], o = 0, u = n.length; u > o;) { for (r = s.length; r--;) s[r] *= e; for (s[0] += wn.indexOf(n.charAt(o++)), t = 0; t < s.length; t++) s[t] > i - 1 && (void 0 === s[t + 1] && (s[t + 1] = 0), s[t + 1] += s[t] / i | 0, s[t] %= i) } return s.reverse() } function s(n, e) { var i, t, r = e.d.length; 32 > r ? (i = Math.ceil(r / 3), t = Math.pow(4, -i).toString()) : (i = 16, t = \"2.3283064365386962890625e-10\"), n.precision += i, e = E(n, 1, e.times(t), new n(1)); for (var s = i; s--;) { var o = e.times(e); e = o.times(o).minus(o).times(8).plus(1) } return n.precision -= i, e } function o(n, e, i, t) { var r, s, o, u, c, f, a, h, l, d = n.constructor; n: if (null != e) { if (h = n.d, !h) return n; for (r = 1, u = h[0]; u >= 10; u /= 10) r++; if (s = e - r, 0 > s) s += Rn, o = e, a = h[l = 0], c = a / On(10, r - o - 1) % 10 | 0; else if (l = Math.ceil((s + 1) / Rn), u = h.length, l >= u) { if (!t) break n; for (; u++ <= l;) h.push(0); a = c = 0, r = 1, s %= Rn, o = s - Rn + 1 } else { for (a = u = h[l], r = 1; u >= 10; u /= 10) r++; s %= Rn, o = s - Rn + r, c = 0 > o ? 0 : a / On(10, r - o - 1) % 10 | 0 } if (t = t || 0 > e || void 0 !== h[l + 1] || (0 > o ? a : a % On(10, r - o - 1)), f = 4 > i ? (c || t) && (0 == i || i == (n.s < 0 ? 3 : 2)) : c > 5 || 5 == c && (4 == i || t || 6 == i && (s > 0 ? o > 0 ? a / On(10, r - o) : 0 : h[l - 1]) % 10 & 1 || i == (n.s < 0 ? 8 : 7)), 1 > e || !h[0]) return h.length = 0, f ? (e -= n.e + 1, h[0] = On(10, (Rn - e % Rn) % Rn), n.e = -e || 0) : h[0] = n.e = 0, n; if (0 == s ? (h.length = l, u = 1, l--) : (h.length = l + 1, u = On(10, Rn - s), h[l] = o > 0 ? (a / On(10, r - o) % On(10, o) | 0) * u : 0), f) for (; ;) { if (0 == l) { for (s = 1, o = h[0]; o >= 10; o /= 10) s++; for (o = h[0] += u, u = 1; o >= 10; o /= 10) u++; s != u && (n.e++, h[0] == Pn && (h[0] = 1)); break } if (h[l] += u, h[l] != Pn) break; h[l--] = 0, u = 1 } for (s = h.length; 0 === h[--s];) h.pop() } return bn && (n.e > d.maxE ? (n.d = null, n.e = NaN) : n.e < d.minE && (n.e = 0, n.d = [0])), n } function u(n, i, t) { if (!n.isFinite()) return v(n); var r, s = n.e, o = e(n.d), u = o.length; return i ? (t && (r = t - u) > 0 ? o = o.charAt(0) + \".\" + o.slice(1) + l(r) : u > 1 && (o = o.charAt(0) + \".\" + o.slice(1)), o = o + (n.e < 0 ? \"e\" : \"e+\") + n.e) : 0 > s ? (o = \"0.\" + l(-s - 1) + o, t && (r = t - u) > 0 && (o += l(r))) : s >= u ? (o += l(s + 1 - u), t && (r = t - s - 1) > 0 && (o = o + \".\" + l(r))) : ((r = s + 1) < u && (o = o.slice(0, r) + \".\" + o.slice(r)), t && (r = t - u) > 0 && (s + 1 === u && (o += \".\"), o += l(r))), o } function c(n, e) { for (var i = 1, t = n[0]; t >= 10; t /= 10) i++; return i + e * Rn - 1 } function f(n, e, i) { if (e > Un) throw bn = !0, i && (n.precision = i), Error(Mn); return o(new n(mn), e, 1, !0) } function a(n, e, i) { if (e > _n) throw Error(Mn); return o(new n(vn), e, i, !0) } function h(n) { var e = n.length - 1, i = e * Rn + 1; if (e = n[e]) { for (; e % 10 == 0; e /= 10) i--; for (e = n[0]; e >= 10; e /= 10) i++ } return i } function l(n) { for (var e = \"\"; n--;) e += \"0\"; return e } function d(n, e, i, t) { var r, s = new n(1), o = Math.ceil(t / Rn + 4); for (bn = !1; ;) { if (i % 2 && (s = s.times(e), q(s.d, o) && (r = !0)), i = qn(i / 2), 0 === i) { i = s.d.length - 1, r && 0 === s.d[i] && ++s.d[i]; break } e = e.times(e), q(e.d, o) } return bn = !0, s } function p(n) { return 1 & n.d[n.d.length - 1] } function g(n, e, i) { for (var t, r = new n(e[0]), s = 0; ++s < e.length;) { if (t = new n(e[s]), !t.s) { r = t; break } r[i](t) && (r = t) } return r } function w(n, i) { var r, s, u, c, f, a, h, l = 0, d = 0, p = 0, g = n.constructor, w = g.rounding, m = g.precision; if (!n.d || !n.d[0] || n.e > 17) return new g(n.d ? n.d[0] ? n.s < 0 ? 0 : 1 / 0 : 1 : n.s ? n.s < 0 ? 0 : n : NaN); for (null == i ? (bn = !1, h = m) : h = i, a = new g(.03125) ; n.e > -2;) n = n.times(a), p += 5; for (s = Math.log(On(2, p)) / Math.LN10 * 2 + 5 | 0, h += s, r = c = f = new g(1), g.precision = h; ;) { if (c = o(c.times(n), h, 1), r = r.times(++d), a = f.plus(Sn(c, r, h, 1)), e(a.d).slice(0, h) === e(f.d).slice(0, h)) { for (u = p; u--;) f = o(f.times(f), h, 1); if (null != i) return g.precision = m, f; if (!(3 > l && t(f.d, h - s, w, l))) return o(f, g.precision = m, w, bn = !0); g.precision = h += 10, r = c = a = new g(1), d = 0, l++ } f = a } } function m(n, i) { var r, s, u, c, a, h, l, d, p, g, w, v = 1, N = 10, b = n, x = b.d, E = b.constructor, M = E.rounding, y = E.precision; if (b.s < 0 || !x || !x[0] || !b.e && 1 == x[0] && 1 == x.length) return new E(x && !x[0] ? -1 / 0 : 1 != b.s ? NaN : x ? 0 : b); if (null == i ? (bn = !1, p = y) : p = i, E.precision = p += N, r = e(x), s = r.charAt(0), !(Math.abs(c = b.e) < 15e14)) return d = f(E, p + 2, y).times(c + \"\"), b = m(new E(s + \".\" + r.slice(1)), p - N).plus(d), E.precision = y, null == i ? o(b, y, M, bn = !0) : b; for (; 7 > s && 1 != s || 1 == s && r.charAt(1) > 3;) b = b.times(n), r = e(b.d), s = r.charAt(0), v++; for (c = b.e, s > 1 ? (b = new E(\"0.\" + r), c++) : b = new E(s + \".\" + r.slice(1)), g = b, l = a = b = Sn(b.minus(1), b.plus(1), p, 1), w = o(b.times(b), p, 1), u = 3; ;) { if (a = o(a.times(w), p, 1), d = l.plus(Sn(a, new E(u), p, 1)), e(d.d).slice(0, p) === e(l.d).slice(0, p)) { if (l = l.times(2), 0 !== c && (l = l.plus(f(E, p + 2, y).times(c + \"\"))), l = Sn(l, new E(v), p, 1), null != i) return E.precision = y, l; if (!t(l.d, p - N, M, h)) return o(l, E.precision = y, M, bn = !0); E.precision = p += N, d = a = b = Sn(g.minus(1), g.plus(1), p, 1), w = o(b.times(b), p, 1), u = h = 1 } l = d, u += 2 } } function v(n) { return String(n.s * n.s / 0) } function N(n, e) { var i, t, r; for ((i = e.indexOf(\".\")) > -1 && (e = e.replace(\".\", \"\")), (t = e.search(/e/i)) > 0 ? (0 > i && (i = t), i += +e.slice(t + 1), e = e.substring(0, t)) : 0 > i && (i = e.length), t = 0; 48 === e.charCodeAt(t) ; t++); for (r = e.length; 48 === e.charCodeAt(r - 1) ; --r); if (e = e.slice(t, r)) { if (r -= t, n.e = i = i - t - 1, n.d = [], t = (i + 1) % Rn, 0 > i && (t += Rn), r > t) { for (t && n.d.push(+e.slice(0, t)), r -= Rn; r > t;) n.d.push(+e.slice(t, t += Rn)); e = e.slice(t), t = Rn - e.length } else t -= r; for (; t--;) e += \"0\"; n.d.push(+e), bn && (n.e > n.constructor.maxE ? (n.d = null, n.e = NaN) : n.e < n.constructor.minE && (n.e = 0, n.d = [0])) } else n.e = 0, n.d = [0]; return n } function b(n, e) { var i, t, s, o, u, f, a, h, l; if (\"Infinity\" === e || \"NaN\" === e) return +e || (n.s = NaN), n.e = NaN, n.d = null, n; if (An.test(e)) i = 16, e = e.toLowerCase(); else if (Fn.test(e)) i = 2; else { if (!Dn.test(e)) throw Error(En + e); i = 8 } for (o = e.search(/p/i), o > 0 ? (a = +e.slice(o + 1), e = e.substring(2, o)) : e = e.slice(2), o = e.indexOf(\".\"), u = o >= 0, t = n.constructor, u && (e = e.replace(\".\", \"\"), f = e.length, o = f - o, s = d(t, new t(i), o, 2 * o)), h = r(e, i, Pn), l = h.length - 1, o = l; 0 === h[o]; --o) h.pop(); return 0 > o ? new t(0 * n.s) : (n.e = c(h, l), n.d = h, bn = !1, u && (n = Sn(n, s, 4 * f)), a && (n = n.times(Math.abs(a) < 54 ? Math.pow(2, a) : Nn.pow(2, a))), bn = !0, n) } function x(n, e) { var i, t = e.d.length; if (3 > t) return E(n, 2, e, e); i = 1.4 * Math.sqrt(t), i = i > 16 ? 16 : 0 | i, e = e.times(Math.pow(5, -i)), e = E(n, 2, e, e); for (var r, s = new n(5), o = new n(16), u = new n(20) ; i--;) r = e.times(e), e = e.times(s.plus(r.times(o.times(r).minus(u)))); return e } function E(n, e, i, t, r) { var s, o, u, c, f = 1, a = n.precision, h = Math.ceil(a / Rn); for (bn = !1, c = i.times(i), u = new n(t) ; ;) { if (o = Sn(u.times(c), new n(e++ * e++), a, 1), u = r ? t.plus(o) : t.minus(o), t = Sn(o.times(c), new n(e++ * e++), a, 1), o = u.plus(t), void 0 !== o.d[h]) { for (s = h; o.d[s] === u.d[s] && s--;); if (-1 == s) break } s = u, u = t, t = o, o = s, f++ } return bn = !0, o.d.length = h + 1, o } function M(n, e) { var i, t = e.s < 0, r = a(n, n.precision, 1), s = r.times(.5); if (e = e.abs(), e.lte(s)) return dn = t ? 4 : 1, e; if (i = e.divToInt(r), i.isZero()) dn = t ? 3 : 2; else { if (e = e.minus(i.times(r)), e.lte(s)) return dn = p(i) ? t ? 2 : 3 : t ? 4 : 1, e; dn = p(i) ? t ? 1 : 4 : t ? 3 : 2 } return e.minus(r).abs() } function y(n, e, t, s) { var o, c, f, a, h, l, d, p, g, w = n.constructor, m = void 0 !== t; if (m ? (i(t, 1, gn), void 0 === s ? s = w.rounding : i(s, 0, 8)) : (t = w.precision, s = w.rounding), n.isFinite()) { for (d = u(n), f = d.indexOf(\".\"), m ? (o = 2, 16 == e ? t = 4 * t - 3 : 8 == e && (t = 3 * t - 2)) : o = e, f >= 0 && (d = d.replace(\".\", \"\"), g = new w(1), g.e = d.length - f, g.d = r(u(g), 10, o), g.e = g.d.length), p = r(d, 10, o), c = h = p.length; 0 == p[--h];) p.pop(); if (p[0]) { if (0 > f ? c-- : (n = new w(n), n.d = p, n.e = c, n = Sn(n, g, t, s, 0, o), p = n.d, c = n.e, l = hn), f = p[t], a = o / 2, l = l || void 0 !== p[t + 1], l = 4 > s ? (void 0 !== f || l) && (0 === s || s === (n.s < 0 ? 3 : 2)) : f > a || f === a && (4 === s || l || 6 === s && 1 & p[t - 1] || s === (n.s < 0 ? 8 : 7)), p.length = t, l) for (; ++p[--t] > o - 1;) p[t] = 0, t || (++c, p.unshift(1)); for (h = p.length; !p[h - 1]; --h); for (f = 0, d = \"\"; h > f; f++) d += wn.charAt(p[f]); if (m) { if (h > 1) if (16 == e || 8 == e) { for (f = 16 == e ? 4 : 3, --h; h % f; h++) d += \"0\"; for (p = r(d, o, e), h = p.length; !p[h - 1]; --h); for (f = 1, d = \"1.\"; h > f; f++) d += wn.charAt(p[f]) } else d = d.charAt(0) + \".\" + d.slice(1); d = d + (0 > c ? \"p\" : \"p+\") + c } else if (0 > c) { for (; ++c;) d = \"0\" + d; d = \"0.\" + d } else if (++c > h) for (c -= h; c--;) d += \"0\"; else h > c && (d = d.slice(0, c) + \".\" + d.slice(c)) } else d = m ? \"0p+0\" : \"0\"; d = (16 == e ? \"0x\" : 2 == e ? \"0b\" : 8 == e ? \"0o\" : \"\") + d } else d = v(n); return n.s < 0 ? \"-\" + d : d } function q(n, e) { return n.length > e ? (n.length = e, !0) : void 0 } function O(n) { return new this(n).abs() } function F(n) { return new this(n).acos() } function A(n) { return new this(n).acosh() } function D(n, e) { return new this(n).plus(e) } function Z(n) { return new this(n).asin() } function P(n) { return new this(n).asinh() } function R(n) { return new this(n).atan() } function L(n) { return new this(n).atanh() } function U(n, e) { n = new this(n), e = new this(e); var i, t = this.precision, r = this.rounding, s = t + 4; return n.s && e.s ? n.d || e.d ? !e.d || n.isZero() ? (i = e.s < 0 ? a(this, t, r) : new this(0), i.s = n.s) : !n.d || e.isZero() ? (i = a(this, s, 1).times(.5), i.s = n.s) : e.s < 0 ? (this.precision = s, this.rounding = 1, i = this.atan(Sn(n, e, s, 1)), e = a(this, s, 1), this.precision = t, this.rounding = r, i = n.s < 0 ? i.minus(e) : i.plus(e)) : i = this.atan(Sn(n, e, s, 1)) : (i = a(this, s, 1).times(e.s > 0 ? .25 : .75), i.s = n.s) : i = new this(NaN), i } function _(n) { return new this(n).cbrt() } function k(n) { return o(n = new this(n), n.e + 1, 2) } function S(n) { if (!n || \"object\" != typeof n) throw Error(xn + \"Object expected\"); var e, i, t, r = [\"precision\", 1, gn, \"rounding\", 0, 8, \"toExpNeg\", -pn, 0, \"toExpPos\", 0, pn, \"maxE\", 0, pn, \"minE\", -pn, 0, \"modulo\", 0, 9]; for (e = 0; e < r.length; e += 3) if (void 0 !== (t = n[i = r[e]])) { if (!(qn(t) === t && t >= r[e + 1] && t <= r[e + 2])) throw Error(En + i + \": \" + t); this[i] = t } if (void 0 !== (t = n[i = \"crypto\"])) { if (t !== !0 && t !== !1 && 0 !== t && 1 !== t) throw Error(En + i + \": \" + t); if (t) { if (\"undefined\" == typeof crypto || !crypto || !crypto.getRandomValues && !crypto.randomBytes) throw Error(yn); this[i] = !0 } else this[i] = !1 } return this } function T(n) { return new this(n).cos() } function C(n) { return new this(n).cosh() } function I(n) { function e(n) { var i, t, r, s = this; if (!(s instanceof e)) return new e(n); if (s.constructor = e, n instanceof e) return s.s = n.s, s.e = n.e, void (s.d = (n = n.d) ? n.slice() : n); if (r = typeof n, \"number\" === r) { if (0 === n) return s.s = 0 > 1 / n ? -1 : 1, s.e = 0, void (s.d = [0]); if (0 > n ? (n = -n, s.s = -1) : s.s = 1, n === ~~n && 1e7 > n) { for (i = 0, t = n; t >= 10; t /= 10) i++; return s.e = i, void (s.d = [n]) } return 0 * n !== 0 ? (n || (s.s = NaN), s.e = NaN, void (s.d = null)) : N(s, n.toString()) } if (\"string\" !== r) throw Error(En + n); return 45 === n.charCodeAt(0) ? (n = n.slice(1), s.s = -1) : s.s = 1, Zn.test(n) ? N(s, n) : b(s, n) } var i, t, r; if (e.prototype = kn, e.ROUND_UP = 0, e.ROUND_DOWN = 1, e.ROUND_CEIL = 2, e.ROUND_FLOOR = 3, e.ROUND_HALF_UP = 4, e.ROUND_HALF_DOWN = 5, e.ROUND_HALF_EVEN = 6, e.ROUND_HALF_CEIL = 7, e.ROUND_HALF_FLOOR = 8, e.EUCLID = 9, e.config = e.set = S, e.clone = I, e.abs = O, e.acos = F, e.acosh = A, e.add = D, e.asin = Z, e.asinh = P, e.atan = R, e.atanh = L, e.atan2 = U, e.cbrt = _, e.ceil = k, e.cos = T, e.cosh = C, e.div = H, e.exp = B, e.floor = V, e.hypot = $, e.ln = j, e.log = W, e.log10 = z, e.log2 = J, e.max = G, e.min = K, e.mod = Q, e.mul = X, e.pow = Y, e.random = nn, e.round = en, e.sign = tn, e.sin = rn, e.sinh = sn, e.sqrt = on, e.sub = un, e.tan = cn, e.tanh = fn, e.trunc = an, void 0 === n && (n = {}), n) for (r = [\"precision\", \"rounding\", \"toExpNeg\", \"toExpPos\", \"maxE\", \"minE\", \"modulo\", \"crypto\"], i = 0; i < r.length;) n.hasOwnProperty(t = r[i++]) || (n[t] = this[t]); return e.config(n), e } function H(n, e) { return new this(n).div(e) } function B(n) { return new this(n).exp() } function V(n) { return o(n = new this(n), n.e + 1, 3) } function $() { var n, e, i = new this(0); for (bn = !1, n = 0; n < arguments.length;) if (e = new this(arguments[n++]), e.d) i.d && (i = i.plus(e.times(e))); else { if (e.s) return bn = !0, new this(1 / 0); i = e } return bn = !0, i.sqrt() } function j(n) { return new this(n).ln() } function W(n, e) { return new this(n).log(e) } function J(n) { return new this(n).log(2) } function z(n) { return new this(n).log(10) } function G() { return g(this, arguments, \"lt\") } function K() { return g(this, arguments, \"gt\") } function Q(n, e) { return new this(n).mod(e) } function X(n, e) { return new this(n).mul(e) } function Y(n, e) { return new this(n).pow(e) } function nn(n) { var e, t, r, s, o = 0, u = new this(1), c = []; if (void 0 === n ? n = this.precision : i(n, 1, gn), r = Math.ceil(n / Rn), this.crypto) if (crypto.getRandomValues) for (e = crypto.getRandomValues(new Uint32Array(r)) ; r > o;) s = e[o], s >= 429e7 ? e[o] = crypto.getRandomValues(new Uint32Array(1))[0] : c[o++] = s % 1e7; else { if (!crypto.randomBytes) throw Error(yn); for (e = crypto.randomBytes(r *= 4) ; r > o;) s = e[o] + (e[o + 1] << 8) + (e[o + 2] << 16) + ((127 & e[o + 3]) << 24), s >= 214e7 ? crypto.randomBytes(4).copy(e, o) : (c.push(s % 1e7), o += 4); o = r / 4 } else for (; r > o;) c[o++] = 1e7 * Math.random() | 0; for (r = c[--o], n %= Rn, r && n && (s = On(10, Rn - n), c[o] = (r / s | 0) * s) ; 0 === c[o]; o--) c.pop(); if (0 > o) t = 0, c = [0]; else { for (t = -1; 0 === c[0]; t -= Rn) c.shift(); for (r = 1, s = c[0]; s >= 10; s /= 10) r++; Rn > r && (t -= Rn - r) } return u.e = t, u.d = c, u } function en(n) { return o(n = new this(n), n.e + 1, this.rounding) } function tn(n) { return n = new this(n), n.d ? n.d[0] ? n.s : 0 * n.s : n.s || NaN } function rn(n) { return new this(n).sin() } function sn(n) { return new this(n).sinh() } function on(n) { return new this(n).sqrt() } function un(n, e) { return new this(n).sub(e) } function cn(n) { return new this(n).tan() } function fn(n) { return new this(n).tanh() } function an(n) { return o(n = new this(n), n.e + 1, 1) } var hn, ln, dn, pn = 9e15, gn = 1e9, wn = \"0123456789abcdef\", mn = \"2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058\", vn = \"3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789\", Nn = { precision: 20, rounding: 4, modulo: 1, toExpNeg: -7, toExpPos: 21, minE: -pn, maxE: pn, crypto: !1 }, bn = !0, xn = \"[DecimalError] \", En = xn + \"Invalid argument: \", Mn = xn + \"Precision limit exceeded\", yn = xn + \"crypto unavailable\", qn = Math.floor, On = Math.pow, Fn = /^0b([01]+(\\.[01]*)?|\\.[01]+)(p[+-]?\\d+)?$/i, An = /^0x([0-9a-f]+(\\.[0-9a-f]*)?|\\.[0-9a-f]+)(p[+-]?\\d+)?$/i, Dn = /^0o([0-7]+(\\.[0-7]*)?|\\.[0-7]+)(p[+-]?\\d+)?$/i, Zn = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i, Pn = 1e7, Rn = 7, Ln = 9007199254740991, Un = mn.length - 1, _n = vn.length - 1, kn = {}; kn.absoluteValue = kn.abs = function () { var n = new this.constructor(this); return n.s < 0 && (n.s = 1), o(n) }, kn.ceil = function () { return o(new this.constructor(this), this.e + 1, 2) }, kn.comparedTo = kn.cmp = function (n) { var e, i, t, r, s = this, o = s.d, u = (n = new s.constructor(n)).d, c = s.s, f = n.s; if (!o || !u) return c && f ? c !== f ? c : o === u ? 0 : !o ^ 0 > c ? 1 : -1 : NaN; if (!o[0] || !u[0]) return o[0] ? c : u[0] ? -f : 0; if (c !== f) return c; if (s.e !== n.e) return s.e > n.e ^ 0 > c ? 1 : -1; for (t = o.length, r = u.length, e = 0, i = r > t ? t : r; i > e; ++e) if (o[e] !== u[e]) return o[e] > u[e] ^ 0 > c ? 1 : -1; return t === r ? 0 : t > r ^ 0 > c ? 1 : -1 }, kn.cosine = kn.cos = function () { var n, e, i = this, t = i.constructor; return i.d ? i.d[0] ? (n = t.precision, e = t.rounding, t.precision = n + Math.max(i.e, i.sd()) + Rn, t.rounding = 1, i = s(t, M(t, i)), t.precision = n, t.rounding = e, o(2 == dn || 3 == dn ? i.neg() : i, n, e, !0)) : new t(1) : new t(NaN) }, kn.cubeRoot = kn.cbrt = function () { var n, i, t, r, s, u, c, f, a, h, l = this, d = l.constructor; if (!l.isFinite() || l.isZero()) return new d(l); for (bn = !1, u = l.s * Math.pow(l.s * l, 1 / 3), u && Math.abs(u) != 1 / 0 ? r = new d(u.toString()) : (t = e(l.d), n = l.e, (u = (n - t.length + 1) % 3) && (t += 1 == u || -2 == u ? \"0\" : \"00\"), u = Math.pow(t, 1 / 3), n = qn((n + 1) / 3) - (n % 3 == (0 > n ? -1 : 2)), u == 1 / 0 ? t = \"5e\" + n : (t = u.toExponential(), t = t.slice(0, t.indexOf(\"e\") + 1) + n), r = new d(t), r.s = l.s), c = (n = d.precision) + 3; ;) if (f = r, a = f.times(f).times(f), h = a.plus(l), r = Sn(h.plus(l).times(f), h.plus(a), c + 2, 1), e(f.d).slice(0, c) === (t = e(r.d)).slice(0, c)) { if (t = t.slice(c - 3, c + 1), \"9999\" != t && (s || \"4999\" != t)) { (!+t || !+t.slice(1) && \"5\" == t.charAt(0)) && (o(r, n + 1, 1), i = !r.times(r).times(r).eq(l)); break } if (!s && (o(f, n + 1, 0), f.times(f).times(f).eq(l))) { r = f; break } c += 4, s = 1 } return bn = !0, o(r, n, d.rounding, i) }, kn.decimalPlaces = kn.dp = function () { var n, e = this.d, i = NaN; if (e) { if (n = e.length - 1, i = (n - qn(this.e / Rn)) * Rn, n = e[n]) for (; n % 10 == 0; n /= 10) i--; 0 > i && (i = 0) } return i }, kn.dividedBy = kn.div = function (n) { return Sn(this, new this.constructor(n)) }, kn.dividedToIntegerBy = kn.divToInt = function (n) { var e = this, i = e.constructor; return o(Sn(e, new i(n), 0, 1, 1), i.precision, i.rounding) }, kn.equals = kn.eq = function (n) { return 0 === this.cmp(n) }, kn.floor = function () { return o(new this.constructor(this), this.e + 1, 3) }, kn.greaterThan = kn.gt = function (n) { return this.cmp(n) > 0 }, kn.greaterThanOrEqualTo = kn.gte = function (n) { var e = this.cmp(n); return 1 == e || 0 === e }, kn.hyperbolicCosine = kn.cosh = function () { var n, e, i, t, r, s = this, u = s.constructor, c = new u(1); if (!s.isFinite()) return new u(s.s ? 1 / 0 : NaN); if (s.isZero()) return c; i = u.precision, t = u.rounding, u.precision = i + Math.max(s.e, s.sd()) + 4, u.rounding = 1, r = s.d.length, 32 > r ? (n = Math.ceil(r / 3), e = Math.pow(4, -n).toString()) : (n = 16, e = \"2.3283064365386962890625e-10\"), s = E(u, 1, s.times(e), new u(1), !0); for (var f, a = n, h = new u(8) ; a--;) f = s.times(s), s = c.minus(f.times(h.minus(f.times(h)))); return o(s, u.precision = i, u.rounding = t, !0) }, kn.hyperbolicSine = kn.sinh = function () { var n, e, i, t, r = this, s = r.constructor; if (!r.isFinite() || r.isZero()) return new s(r); if (e = s.precision, i = s.rounding, s.precision = e + Math.max(r.e, r.sd()) + 4, s.rounding = 1, t = r.d.length, 3 > t) r = E(s, 2, r, r, !0); else { n = 1.4 * Math.sqrt(t), n = n > 16 ? 16 : 0 | n, r = r.times(Math.pow(5, -n)), r = E(s, 2, r, r, !0); for (var u, c = new s(5), f = new s(16), a = new s(20) ; n--;) u = r.times(r), r = r.times(c.plus(u.times(f.times(u).plus(a)))) } return s.precision = e, s.rounding = i, o(r, e, i, !0) }, kn.hyperbolicTangent = kn.tanh = function () { var n, e, i = this, t = i.constructor; return i.isFinite() ? i.isZero() ? new t(i) : (n = t.precision, e = t.rounding, t.precision = n + 7, t.rounding = 1, Sn(i.sinh(), i.cosh(), t.precision = n, t.rounding = e)) : new t(i.s) }, kn.inverseCosine = kn.acos = function () { var n, e = this, i = e.constructor, t = e.abs().cmp(1), r = i.precision, s = i.rounding; return -1 !== t ? 0 === t ? e.isNeg() ? a(i, r, s) : new i(0) : new i(NaN) : e.isZero() ? a(i, r + 4, s).times(.5) : (i.precision = r + 6, i.rounding = 1, e = e.asin(), n = a(i, r + 4, s).times(.5), i.precision = r, i.rounding = s, n.minus(e)) }, kn.inverseHyperbolicCosine = kn.acosh = function () { var n, e, i = this, t = i.constructor; return i.lte(1) ? new t(i.eq(1) ? 0 : NaN) : i.isFinite() ? (n = t.precision, e = t.rounding, t.precision = n + Math.max(Math.abs(i.e), i.sd()) + 4, t.rounding = 1, bn = !1, i = i.times(i).minus(1).sqrt().plus(i), bn = !0, t.precision = n, t.rounding = e, i.ln()) : new t(i) }, kn.inverseHyperbolicSine = kn.asinh = function () { var n, e, i = this, t = i.constructor; return !i.isFinite() || i.isZero() ? new t(i) : (n = t.precision, e = t.rounding, t.precision = n + 2 * Math.max(Math.abs(i.e), i.sd()) + 6, t.rounding = 1, bn = !1, i = i.times(i).plus(1).sqrt().plus(i), bn = !0, t.precision = n, t.rounding = e, i.ln()) }, kn.inverseHyperbolicTangent = kn.atanh = function () { var n, e, i, t, r = this, s = r.constructor; return r.isFinite() ? r.e >= 0 ? new s(r.abs().eq(1) ? r.s / 0 : r.isZero() ? r : NaN) : (n = s.precision, e = s.rounding, t = r.sd(), Math.max(t, n) < 2 * -r.e - 1 ? o(new s(r), n, e, !0) : (s.precision = i = t - r.e, r = Sn(r.plus(1), new s(1).minus(r), i + n, 1), s.precision = n + 4, s.rounding = 1, r = r.ln(), s.precision = n, s.rounding = e, r.times(.5))) : new s(NaN) }, kn.inverseSine = kn.asin = function () { var n, e, i, t, r = this, s = r.constructor; return r.isZero() ? new s(r) : (e = r.abs().cmp(1), i = s.precision, t = s.rounding, -1 !== e ? 0 === e ? (n = a(s, i + 4, t).times(.5), n.s = r.s, n) : new s(NaN) : (s.precision = i + 6, s.rounding = 1, r = r.div(new s(1).minus(r.times(r)).sqrt().plus(1)).atan(), s.precision = i, s.rounding = t, r.times(2))) }, kn.inverseTangent = kn.atan = function () { var n, e, i, t, r, s, u, c, f, h = this, l = h.constructor, d = l.precision, p = l.rounding; if (h.isFinite()) { if (h.isZero()) return new l(h); if (h.abs().eq(1) && _n >= d + 4) return u = a(l, d + 4, p).times(.25), u.s = h.s, u } else { if (!h.s) return new l(NaN); if (_n >= d + 4) return u = a(l, d + 4, p).times(.5), u.s = h.s, u } for (l.precision = c = d + 10, l.rounding = 1, i = Math.min(28, c / Rn + 2 | 0), n = i; n; --n) h = h.div(h.times(h).plus(1).sqrt().plus(1)); for (bn = !1, e = Math.ceil(c / Rn), t = 1, f = h.times(h), u = new l(h), r = h; -1 !== n;) if (r = r.times(f), s = u.minus(r.div(t += 2)), r = r.times(f), u = s.plus(r.div(t += 2)), void 0 !== u.d[e]) for (n = e; u.d[n] === s.d[n] && n--;); return i && (u = u.times(2 << i - 1)), bn = !0, o(u, l.precision = d, l.rounding = p, !0) }, kn.isFinite = function () { return !!this.d }, kn.isInteger = kn.isInt = function () { return !!this.d && qn(this.e / Rn) > this.d.length - 2 }, kn.isNaN = function () { return !this.s }, kn.isNegative = kn.isNeg = function () { return this.s < 0 }, kn.isPositive = kn.isPos = function () { return this.s > 0 }, kn.isZero = function () { return !!this.d && 0 === this.d[0] }, kn.lessThan = kn.lt = function (n) { return this.cmp(n) < 0 }, kn.lessThanOrEqualTo = kn.lte = function (n) { return this.cmp(n) < 1 }, kn.logarithm = kn.log = function (n) { var i, r, s, u, c, a, h, l, d = this, p = d.constructor, g = p.precision, w = p.rounding, v = 5; if (null == n) n = new p(10), i = !0; else { if (n = new p(n), r = n.d, n.s < 0 || !r || !r[0] || n.eq(1)) return new p(NaN); i = n.eq(10) } if (r = d.d, d.s < 0 || !r || !r[0] || d.eq(1)) return new p(r && !r[0] ? -1 / 0 : 1 != d.s ? NaN : r ? 0 : 1 / 0); if (i) if (r.length > 1) c = !0; else { for (u = r[0]; u % 10 === 0;) u /= 10; c = 1 !== u } if (bn = !1, h = g + v, a = m(d, h), s = i ? f(p, h + 10) : m(n, h), l = Sn(a, s, h, 1), t(l.d, u = g, w)) do if (h += 10, a = m(d, h), s = i ? f(p, h + 10) : m(n, h), l = Sn(a, s, h, 1), !c) { +e(l.d).slice(u + 1, u + 15) + 1 == 1e14 && (l = o(l, g + 1, 0)); break } while (t(l.d, u += 10, w)); return bn = !0, o(l, g, w) }, kn.minus = kn.sub = function (n) { var e, i, t, r, s, u, f, a, h, l, d, p, g = this, w = g.constructor; if (n = new w(n), !g.d || !n.d) return g.s && n.s ? g.d ? n.s = -n.s : n = new w(n.d || g.s !== n.s ? g : NaN) : n = new w(NaN), n; if (g.s != n.s) return n.s = -n.s, g.plus(n); if (h = g.d, p = n.d, f = w.precision, a = w.rounding, !h[0] || !p[0]) { if (p[0]) n.s = -n.s; else { if (!h[0]) return new w(3 === a ? -0 : 0); n = new w(g) } return bn ? o(n, f, a) : n } if (i = qn(n.e / Rn), l = qn(g.e / Rn), h = h.slice(), s = l - i) { for (d = 0 > s, d ? (e = h, s = -s, u = p.length) : (e = p, i = l, u = h.length), t = Math.max(Math.ceil(f / Rn), u) + 2, s > t && (s = t, e.length = 1), e.reverse(), t = s; t--;) e.push(0); e.reverse() } else { for (t = h.length, u = p.length, d = u > t, d && (u = t), t = 0; u > t; t++) if (h[t] != p[t]) { d = h[t] < p[t]; break } s = 0 } for (d && (e = h, h = p, p = e, n.s = -n.s), u = h.length, t = p.length - u; t > 0; --t) h[u++] = 0; for (t = p.length; t > s;) { if (h[--t] < p[t]) { for (r = t; r && 0 === h[--r];) h[r] = Pn - 1; --h[r], h[t] += Pn } h[t] -= p[t] } for (; 0 === h[--u];) h.pop(); for (; 0 === h[0]; h.shift())--i; return h[0] ? (n.d = h, n.e = c(h, i), bn ? o(n, f, a) : n) : new w(3 === a ? -0 : 0) }, kn.modulo = kn.mod = function (n) { var e, i = this, t = i.constructor; return n = new t(n), !i.d || !n.s || n.d && !n.d[0] ? new t(NaN) : !n.d || i.d && !i.d[0] ? o(new t(i), t.precision, t.rounding) : (bn = !1, 9 == t.modulo ? (e = Sn(i, n.abs(), 0, 3, 1), e.s *= n.s) : e = Sn(i, n, 0, t.modulo, 1), e = e.times(n), bn = !0, i.minus(e)) }, kn.naturalExponential = kn.exp = function () { return w(this) }, kn.naturalLogarithm = kn.ln = function () { return m(this) }, kn.negated = kn.neg = function () { var n = new this.constructor(this); return n.s = -n.s, o(n) }, kn.plus = kn.add = function (n) { var e, i, t, r, s, u, f, a, h, l, d = this, p = d.constructor; if (n = new p(n), !d.d || !n.d) return d.s && n.s ? d.d || (n = new p(n.d || d.s === n.s ? d : NaN)) : n = new p(NaN), n; if (d.s != n.s) return n.s = -n.s, d.minus(n); if (h = d.d, l = n.d, f = p.precision, a = p.rounding, !h[0] || !l[0]) return l[0] || (n = new p(d)), bn ? o(n, f, a) : n; if (s = qn(d.e / Rn), t = qn(n.e / Rn), h = h.slice(), r = s - t) { for (0 > r ? (i = h, r = -r, u = l.length) : (i = l, t = s, u = h.length), s = Math.ceil(f / Rn), u = s > u ? s + 1 : u + 1, r > u && (r = u, i.length = 1), i.reverse() ; r--;) i.push(0); i.reverse() } for (u = h.length, r = l.length, 0 > u - r && (r = u, i = l, l = h, h = i), e = 0; r;) e = (h[--r] = h[r] + l[r] + e) / Pn | 0, h[r] %= Pn; for (e && (h.unshift(e), ++t), u = h.length; 0 == h[--u];) h.pop(); return n.d = h, n.e = c(h, t), bn ? o(n, f, a) : n }, kn.precision = kn.sd = function (n) { var e, i = this; if (void 0 !== n && n !== !!n && 1 !== n && 0 !== n) throw Error(En + n); return i.d ? (e = h(i.d), n && i.e + 1 > e && (e = i.e + 1)) : e = NaN, e }, kn.round = function () { var n = this, e = n.constructor; return o(new e(n), n.e + 1, e.rounding) }, kn.sine = kn.sin = function () { var n, e, i = this, t = i.constructor; return i.isFinite() ? i.isZero() ? new t(i) : (n = t.precision, e = t.rounding, t.precision = n + Math.max(i.e, i.sd()) + Rn, t.rounding = 1, i = x(t, M(t, i)), t.precision = n, t.rounding = e, o(dn > 2 ? i.neg() : i, n, e, !0)) : new t(NaN) }, kn.squareRoot = kn.sqrt = function () { var n, i, t, r, s, u, c = this, f = c.d, a = c.e, h = c.s, l = c.constructor; if (1 !== h || !f || !f[0]) return new l(!h || 0 > h && (!f || f[0]) ? NaN : f ? c : 1 / 0); for (bn = !1, h = Math.sqrt(+c), 0 == h || h == 1 / 0 ? (i = e(f), (i.length + a) % 2 == 0 && (i += \"0\"), h = Math.sqrt(i), a = qn((a + 1) / 2) - (0 > a || a % 2), h == 1 / 0 ? i = \"1e\" + a : (i = h.toExponential(), i = i.slice(0, i.indexOf(\"e\") + 1) + a), r = new l(i)) : r = new l(h.toString()), t = (a = l.precision) + 3; ;) if (u = r, r = u.plus(Sn(c, u, t + 2, 1)).times(.5), e(u.d).slice(0, t) === (i = e(r.d)).slice(0, t)) { if (i = i.slice(t - 3, t + 1), \"9999\" != i && (s || \"4999\" != i)) { (!+i || !+i.slice(1) && \"5\" == i.charAt(0)) && (o(r, a + 1, 1), n = !r.times(r).eq(c)); break } if (!s && (o(u, a + 1, 0), u.times(u).eq(c))) { r = u; break } t += 4, s = 1 } return bn = !0, o(r, a, l.rounding, n) }, kn.tangent = kn.tan = function () { var n, e, i = this, t = i.constructor; return i.isFinite() ? i.isZero() ? new t(i) : (n = t.precision, e = t.rounding, t.precision = n + 10, t.rounding = 1, i = i.sin(), i.s = 1, i = Sn(i, new t(1).minus(i.times(i)).sqrt(), n + 10, 0), t.precision = n, t.rounding = e, o(2 == dn || 4 == dn ? i.neg() : i, n, e, !0)) : new t(NaN) }, kn.times = kn.mul = function (n) { var e, i, t, r, s, u, f, a, h, l = this, d = l.constructor, p = l.d, g = (n = new d(n)).d; if (n.s *= l.s, !(p && p[0] && g && g[0])) return new d(!n.s || p && !p[0] && !g || g && !g[0] && !p ? NaN : p && g ? 0 * n.s : n.s / 0); for (i = qn(l.e / Rn) + qn(n.e / Rn), a = p.length, h = g.length, h > a && (s = p, p = g, g = s, u = a, a = h, h = u), s = [], u = a + h, t = u; t--;) s.push(0); for (t = h; --t >= 0;) { for (e = 0, r = a + t; r > t;) f = s[r] + g[t] * p[r - t - 1] + e, s[r--] = f % Pn | 0, e = f / Pn | 0; s[r] = (s[r] + e) % Pn | 0 } for (; !s[--u];) s.pop(); for (e ? ++i : s.shift(), t = s.length; !s[--t];) s.pop(); return n.d = s, n.e = c(s, i), bn ? o(n, d.precision, d.rounding) : n }, kn.toBinary = function (n, e) { return y(this, 2, n, e) }, kn.toDecimalPlaces = kn.toDP = function (n, e) { var t = this, r = t.constructor; return t = new r(t), void 0 === n ? t : (i(n, 0, gn), void 0 === e ? e = r.rounding : i(e, 0, 8), o(t, n + t.e + 1, e)) }, kn.toExponential = function (n, e) { var t, r = this, s = r.constructor; return void 0 === n ? t = u(r, !0) : (i(n, 0, gn), void 0 === e ? e = s.rounding : i(e, 0, 8), r = o(new s(r), n + 1, e), t = u(r, !0, n + 1)), r.isNeg() && !r.isZero() ? \"-\" + t : t }, kn.toFixed = function (n, e) { var t, r, s = this, c = s.constructor; return void 0 === n ? t = u(s) : (i(n, 0, gn), void 0 === e ? e = c.rounding : i(e, 0, 8), r = o(new c(s), n + s.e + 1, e), t = u(r, !1, n + r.e + 1)), s.isNeg() && !s.isZero() ? \"-\" + t : t }, kn.toFraction = function (n) { var i, t, r, s, o, u, c, f, a, l, d, p, g = this, w = g.d, m = g.constructor; if (!w) return new m(g); if (a = t = new m(1), r = f = new m(0), i = new m(r), o = i.e = h(w) - g.e - 1, u = o % Rn, i.d[0] = On(10, 0 > u ? Rn + u : u), null == n) n = o > 0 ? i : a; else { if (c = new m(n), !c.isInt() || c.lt(a)) throw Error(En + c); n = c.gt(i) ? o > 0 ? i : a : c } for (bn = !1, c = new m(e(w)), l = m.precision, m.precision = o = w.length * Rn * 2; d = Sn(c, i, 0, 1, 1), s = t.plus(d.times(r)), 1 != s.cmp(n) ;) t = r, r = s, s = a, a = f.plus(d.times(s)), f = s, s = i, i = c.minus(d.times(s)), c = s; return s = Sn(n.minus(t), r, 0, 1, 1), f = f.plus(s.times(a)), t = t.plus(s.times(r)), f.s = a.s = g.s, p = Sn(a, r, o, 1).minus(g).abs().cmp(Sn(f, t, o, 1).minus(g).abs()) < 1 ? [a, r] : [f, t], m.precision = l, bn = !0, p }, kn.toHexadecimal = kn.toHex = function (n, e) { return y(this, 16, n, e) }, kn.toNearest = function (n, e) { var t = this, r = t.constructor; if (t = new r(t), null == n) { if (!t.d) return t; n = new r(1), e = r.rounding } else { if (n = new r(n), void 0 !== e && i(e, 0, 8), !t.d) return n.s ? t : n; if (!n.d) return n.s && (n.s = t.s), n } return n.d[0] ? (bn = !1, 4 > e && (e = [4, 5, 7, 8][e]), t = Sn(t, n, 0, e, 1).times(n), bn = !0, o(t)) : (n.s = t.s, t = n), t }, kn.toNumber = function () { return +this }, kn.toOctal = function (n, e) { return y(this, 8, n, e) }, kn.toPower = kn.pow = function (n) { var i, r, s, u, c, f, a, h = this, l = h.constructor, p = +(n = new l(n)); if (!(h.d && n.d && h.d[0] && n.d[0])) return new l(On(+h, p)); if (h = new l(h), h.eq(1)) return h; if (s = l.precision, c = l.rounding, n.eq(1)) return o(h, s, c); if (i = qn(n.e / Rn), r = n.d.length - 1, a = i >= r, f = h.s, a) { if ((r = 0 > p ? -p : p) <= Ln) return u = d(l, h, r, s), n.s < 0 ? new l(1).div(u) : o(u, s, c) } else if (0 > f) return new l(NaN); return f = 0 > f && 1 & n.d[Math.max(i, r)] ? -1 : 1, r = On(+h, p), i = 0 != r && isFinite(r) ? new l(r + \"\").e : qn(p * (Math.log(\"0.\" + e(h.d)) / Math.LN10 + h.e + 1)), i > l.maxE + 1 || i < l.minE - 1 ? new l(i > 0 ? f / 0 : 0) : (bn = !1, l.rounding = h.s = 1, r = Math.min(12, (i + \"\").length), u = w(n.times(m(h, s + r)), s), u = o(u, s + 5, 1), t(u.d, s, c) && (i = s + 10, u = o(w(n.times(m(h, i + r)), i), i + 5, 1), +e(u.d).slice(s + 1, s + 15) + 1 == 1e14 && (u = o(u, s + 1, 0))), u.s = f, bn = !0, l.rounding = c, o(u, s, c)) }, kn.toPrecision = function (n, e) { var t, r = this, s = r.constructor; return void 0 === n ? t = u(r, r.e <= s.toExpNeg || r.e >= s.toExpPos) : (i(n, 1, gn), void 0 === e ? e = s.rounding : i(e, 0, 8), r = o(new s(r), n, e), t = u(r, n <= r.e || r.e <= s.toExpNeg, n)), r.isNeg() && !r.isZero() ? \"-\" + t : t }, kn.toSignificantDigits = kn.toSD = function (n, e) { var t = this, r = t.constructor; return void 0 === n ? (n = r.precision, e = r.rounding) : (i(n, 1, gn), void 0 === e ? e = r.rounding : i(e, 0, 8)), o(new r(t), n, e) }, kn.toString = function () { var n = this, e = n.constructor, i = u(n, n.e <= e.toExpNeg || n.e >= e.toExpPos); return n.isNeg() && !n.isZero() ? \"-\" + i : i }, kn.truncated = kn.trunc = function () { return o(new this.constructor(this), this.e + 1, 1) }, kn.valueOf = kn.toJSON = function () { var n = this, e = n.constructor, i = u(n, n.e <= e.toExpNeg || n.e >= e.toExpPos); return n.isNeg() ? \"-\" + i : i }; var Sn = function () { function n(n, e, i) { var t, r = 0, s = n.length; for (n = n.slice() ; s--;) t = n[s] * e + r, n[s] = t % i | 0, r = t / i | 0; return r && n.unshift(r), n } function e(n, e, i, t) { var r, s; if (i != t) s = i > t ? 1 : -1; else for (r = s = 0; i > r; r++) if (n[r] != e[r]) { s = n[r] > e[r] ? 1 : -1; break } return s } function i(n, e, i, t) { for (var r = 0; i--;) n[i] -= r, r = n[i] < e[i] ? 1 : 0, n[i] = r * t + n[i] - e[i]; for (; !n[0] && n.length > 1;) n.shift() } return function (t, r, s, u, c, f) { var a, h, l, d, p, g, w, m, v, N, b, x, E, M, y, q, O, F, A, D, Z = t.constructor, P = t.s == r.s ? 1 : -1, R = t.d, L = r.d; if (!(R && R[0] && L && L[0])) return new Z(t.s && r.s && (R ? !L || R[0] != L[0] : L) ? R && 0 == R[0] || !L ? 0 * P : P / 0 : NaN); for (f ? (p = 1, h = t.e - r.e) : (f = Pn, p = Rn, h = qn(t.e / p) - qn(r.e / p)), A = L.length, O = R.length, v = new Z(P), N = v.d = [], l = 0; L[l] == (R[l] || 0) ; l++); if (L[l] > (R[l] || 0) && h--, null == s ? (M = s = Z.precision, u = Z.rounding) : M = c ? s + (t.e - r.e) + 1 : s, 0 > M) N.push(1), g = !0; else { if (M = M / p + 2 | 0, l = 0, 1 == A) { for (d = 0, L = L[0], M++; (O > l || d) && M--; l++) y = d * f + (R[l] || 0), N[l] = y / L | 0, d = y % L | 0; g = d || O > l } else { for (d = f / (L[0] + 1) | 0, d > 1 && (L = n(L, d, f), R = n(R, d, f), A = L.length, O = R.length), q = A, b = R.slice(0, A), x = b.length; A > x;) b[x++] = 0; D = L.slice(), D.unshift(0), F = L[0], L[1] >= f / 2 && ++F; do d = 0, a = e(L, b, A, x), 0 > a ? (E = b[0], A != x && (E = E * f + (b[1] || 0)), d = E / F | 0, d > 1 ? (d >= f && (d = f - 1), w = n(L, d, f), m = w.length, x = b.length, a = e(w, b, m, x), 1 == a && (d--, i(w, m > A ? D : L, m, f))) : (0 == d && (a = d = 1), w = L.slice()), m = w.length, x > m && w.unshift(0), i(b, w, x, f), -1 == a && (x = b.length, a = e(L, b, A, x), 1 > a && (d++, i(b, x > A ? D : L, x, f))), x = b.length) : 0 === a && (d++, b = [0]), N[l++] = d, a && b[0] ? b[x++] = R[q] || 0 : (b = [R[q]], x = 1); while ((q++ < O || void 0 !== b[0]) && M--); g = void 0 !== b[0] } N[0] || N.shift() } if (1 == p) v.e = h, hn = g; else { for (l = 1, d = N[0]; d >= 10; d /= 10) l++; v.e = l + h * p - 1, o(v, c ? s + v.e + 1 : s, u, g) } return v } }(); Nn = I(Nn), mn = new Nn(mn), vn = new Nn(vn), Bridge.$Decimal = Nn, \"function\" == typeof define && define.amd ? define(\"decimal.js\", function () { return Nn }) : \"undefined\" != typeof module && module.exports ? module.exports = Nn[\"default\"] = Nn.Decimal = Nn : (n || (n = \"undefined\" != typeof self && self && self.self == self ? self : Function(\"return this\")()), ln = n.Decimal, Nn.noConflict = function () { return n.Decimal = ln, Nn }/*, n.Decimal = Nn*/) }(Bridge.global);\r\n\r\n System.Decimal = function (v, provider, T) {\r\n if (this.constructor !== System.Decimal) {\r\n return new System.Decimal(v, provider, T);\r\n }\r\n\r\n if (v == null) {\r\n v = 0;\r\n }\r\n\r\n if (Bridge.isNumber(provider)) {\r\n this.$precision = provider;\r\n provider = undefined;\r\n } else {\r\n this.$precision = 0;\r\n }\r\n\r\n if (typeof v === \"string\") {\r\n provider = provider || System.Globalization.CultureInfo.getCurrentCulture();\r\n\r\n var nfInfo = provider && provider.getFormat(System.Globalization.NumberFormatInfo),\r\n dot;\r\n\r\n if (nfInfo && nfInfo.numberDecimalSeparator !== \".\") {\r\n v = v.replace(nfInfo.numberDecimalSeparator, \".\");\r\n }\r\n\r\n // Native .NET accepts the sign in postfixed form. Yet, it is documented otherwise.\r\n // https://docs.microsoft.com/en-us/dotnet/api/system.decimal.parse\r\n // True at least as with: Microsoft (R) Build Engine version 16.1.76+g14b0a930a7 for .NET Framework\r\n if (!/^\\s*[+-]?(\\d+|\\d+\\.|\\d*\\.\\d+)((e|E)[+-]?\\d+)?\\s*$/.test(v) &&\r\n !/^\\s*(\\d+|\\d+\\.|\\d*\\.\\d+)((e|E)[+-]?\\d+)?[+-]\\s*$/.test(v)) {\r\n throw new System.FormatException();\r\n }\r\n\r\n v = v.replace(/\\s/g, \"\");\r\n\r\n // Move the postfixed - to front, or remove \"+\" so the underlying\r\n // decimal handler knows what to do with the string.\r\n if (/[+-]$/.test(v)) {\r\n var vlastpos = v.length - 1;\r\n if (v.indexOf(\"-\", vlastpos) === vlastpos) {\r\n v = v.replace(/(.*)(-)$/, \"$2$1\");\r\n } else {\r\n v = v.substr(0, vlastpos);\r\n }\r\n } else if (v.lastIndexOf(\"+\", 0) === 0) {\r\n v = v.substr(1);\r\n }\r\n\r\n if (!this.$precision && (dot = v.indexOf(\".\")) >= 0) {\r\n this.$precision = v.length - dot - 1;\r\n }\r\n }\r\n\r\n if (isNaN(v) || System.Decimal.MaxValue && typeof v === \"number\" && (System.Decimal.MinValue.gt(v) || System.Decimal.MaxValue.lt(v))) {\r\n throw new System.OverflowException();\r\n }\r\n\r\n if (T && T.precision && typeof v === \"number\" && Number.isFinite(v)) {\r\n var i = Bridge.Int.trunc(v);\r\n var length = (i + \"\").length;\r\n var p = T.precision - length;\r\n if (p < 0) {\r\n p = 0;\r\n }\r\n v = v.toFixed(p);\r\n }\r\n\r\n if (v instanceof System.Decimal) {\r\n this.$precision = v.$precision;\r\n }\r\n\r\n this.value = System.Decimal.getValue(v);\r\n }\r\n\r\n System.Decimal.$number = true;\r\n System.Decimal.$$name = \"System.Decimal\";\r\n System.Decimal.prototype.$$name = \"System.Decimal\";\r\n System.Decimal.$kind = \"struct\";\r\n System.Decimal.prototype.$kind = \"struct\";\r\n System.Decimal.$$inherits = [];\r\n Bridge.Class.addExtend(System.Decimal, [System.IComparable, System.IFormattable, System.IComparable$1(System.Decimal), System.IEquatable$1(System.Decimal)]);\r\n\r\n System.Decimal.$is = function (instance) {\r\n return instance instanceof System.Decimal;\r\n };\r\n\r\n System.Decimal.getDefaultValue = function () {\r\n return new System.Decimal(0);\r\n };\r\n\r\n System.Decimal.getValue = function (d) {\r\n if (!Bridge.hasValue(d)) {\r\n return this.getDefaultValue();\r\n }\r\n\r\n if (d instanceof System.Decimal) {\r\n return d.value;\r\n }\r\n\r\n if (d instanceof System.Int64 || d instanceof System.UInt64) {\r\n return new Bridge.$Decimal(d.toString());\r\n }\r\n\r\n return new Bridge.$Decimal(d);\r\n };\r\n\r\n System.Decimal.create = function (d) {\r\n if (!Bridge.hasValue(d)) {\r\n return null;\r\n }\r\n\r\n if (d instanceof System.Decimal) {\r\n return d;\r\n }\r\n\r\n return new System.Decimal(d);\r\n };\r\n\r\n System.Decimal.lift = function (d) {\r\n return d == null ? null : System.Decimal.create(d);\r\n };\r\n\r\n System.Decimal.prototype.toString = function (format, provider) {\r\n return Bridge.Int.format(this, format || \"G\", provider);\r\n };\r\n\r\n System.Decimal.prototype.toFloat = function () {\r\n return this.value.toNumber();\r\n };\r\n\r\n System.Decimal.prototype.toJSON = function () {\r\n return this.value.toNumber();\r\n };\r\n\r\n System.Decimal.prototype.format = function (format, provider) {\r\n return Bridge.Int.format(this, format, provider);\r\n };\r\n\r\n System.Decimal.prototype.decimalPlaces = function () {\r\n return this.value.decimalPlaces();\r\n };\r\n\r\n System.Decimal.prototype.dividedToIntegerBy = function (d) {\r\n var d = new System.Decimal(this.value.dividedToIntegerBy(System.Decimal.getValue(d)), this.$precision);\r\n d.$precision = Math.max(d.value.decimalPlaces(), this.$precision);\r\n return d;\r\n };\r\n\r\n System.Decimal.prototype.exponential = function () {\r\n return new System.Decimal(this.value.exponential(), this.$precision);\r\n };\r\n\r\n System.Decimal.prototype.abs = function () {\r\n return new System.Decimal(this.value.abs(), this.$precision);\r\n };\r\n\r\n System.Decimal.prototype.floor = function () {\r\n return new System.Decimal(this.value.floor());\r\n };\r\n\r\n System.Decimal.prototype.ceil = function () {\r\n return new System.Decimal(this.value.ceil());\r\n };\r\n\r\n System.Decimal.prototype.trunc = function () {\r\n return new System.Decimal(this.value.trunc());\r\n };\r\n\r\n System.Decimal.round = function (obj, mode) {\r\n obj = System.Decimal.create(obj);\r\n\r\n var old = Bridge.$Decimal.rounding;\r\n\r\n Bridge.$Decimal.rounding = mode;\r\n\r\n var d = new System.Decimal(obj.value.round());\r\n\r\n Bridge.$Decimal.rounding = old;\r\n\r\n return d;\r\n };\r\n\r\n System.Decimal.toDecimalPlaces = function (obj, decimals, mode) {\r\n obj = System.Decimal.create(obj);\r\n var d = new System.Decimal(obj.value.toDecimalPlaces(decimals, mode));\r\n return d;\r\n };\r\n\r\n System.Decimal.prototype.compareTo = function (another) {\r\n return this.value.comparedTo(System.Decimal.getValue(another));\r\n };\r\n\r\n System.Decimal.prototype.add = function (another) {\r\n var d = new System.Decimal(this.value.plus(System.Decimal.getValue(another)));\r\n d.$precision = Math.max(d.value.decimalPlaces(), Math.max(another.$precision || 0, this.$precision));\r\n return d;\r\n };\r\n\r\n System.Decimal.prototype.sub = function (another) {\r\n var d = new System.Decimal(this.value.minus(System.Decimal.getValue(another)));\r\n d.$precision = Math.max(d.value.decimalPlaces(), Math.max(another.$precision || 0, this.$precision));\r\n return d;\r\n };\r\n\r\n System.Decimal.prototype.isZero = function () {\r\n return this.value.isZero;\r\n };\r\n\r\n System.Decimal.prototype.mul = function (another) {\r\n var d = new System.Decimal(this.value.times(System.Decimal.getValue(another)));\r\n d.$precision = Math.max(d.value.decimalPlaces(), Math.max(another.$precision || 0, this.$precision));\r\n return d;\r\n };\r\n\r\n System.Decimal.prototype.div = function (another) {\r\n var d = new System.Decimal(this.value.dividedBy(System.Decimal.getValue(another)));\r\n d.$precision = Math.max(d.value.decimalPlaces(), Math.max(another.$precision || 0, this.$precision));\r\n return d;\r\n };\r\n\r\n System.Decimal.prototype.mod = function (another) {\r\n var d = new System.Decimal(this.value.modulo(System.Decimal.getValue(another)));\r\n d.$precision = Math.max(d.value.decimalPlaces(), Math.max(another.$precision || 0, this.$precision));\r\n return d;\r\n };\r\n\r\n System.Decimal.prototype.neg = function () {\r\n return new System.Decimal(this.value.negated(), this.$precision);\r\n };\r\n\r\n System.Decimal.prototype.inc = function () {\r\n return new System.Decimal(this.value.plus(System.Decimal.getValue(1)), this.$precision);\r\n };\r\n\r\n System.Decimal.prototype.dec = function () {\r\n return new System.Decimal(this.value.minus(System.Decimal.getValue(1)), this.$precision);\r\n };\r\n\r\n System.Decimal.prototype.sign = function () {\r\n return this.value.isZero() ? 0 : (this.value.isNegative() ? -1 : 1);\r\n };\r\n\r\n System.Decimal.prototype.clone = function () {\r\n return new System.Decimal(this, this.$precision);\r\n };\r\n\r\n System.Decimal.prototype.ne = function (v) {\r\n return !!this.compareTo(v);\r\n };\r\n\r\n System.Decimal.prototype.lt = function (v) {\r\n return this.compareTo(v) < 0;\r\n };\r\n\r\n System.Decimal.prototype.lte = function (v) {\r\n return this.compareTo(v) <= 0;\r\n };\r\n\r\n System.Decimal.prototype.gt = function (v) {\r\n return this.compareTo(v) > 0;\r\n };\r\n\r\n System.Decimal.prototype.gte = function (v) {\r\n return this.compareTo(v) >= 0;\r\n };\r\n\r\n System.Decimal.prototype.equals = function (v) {\r\n if (v instanceof System.Decimal || typeof v === \"number\") {\r\n return !this.compareTo(v);\r\n }\r\n\r\n return false;\r\n };\r\n\r\n System.Decimal.prototype.equalsT = function (v) {\r\n return !this.compareTo(v);\r\n };\r\n\r\n System.Decimal.prototype.getHashCode = function () {\r\n var n = (this.sign() * 397 + this.value.e) | 0;\r\n\r\n for (var i = 0; i < this.value.d.length; i++) {\r\n n = (n * 397 + this.value.d[i]) | 0;\r\n }\r\n\r\n return n;\r\n };\r\n\r\n System.Decimal.toInt = function (v, tp) {\r\n if (!v) {\r\n return null;\r\n }\r\n\r\n if (tp) {\r\n var str,\r\n r;\r\n\r\n if (tp === System.Int64) {\r\n str = v.value.trunc().toString();\r\n r = new System.Int64(str);\r\n\r\n if (str !== r.value.toString()) {\r\n throw new System.OverflowException();\r\n }\r\n\r\n return r;\r\n }\r\n\r\n if (tp === System.UInt64) {\r\n if (v.value.isNegative()) {\r\n throw new System.OverflowException();\r\n }\r\n\r\n str = v.value.trunc().toString();\r\n r = new System.UInt64(str);\r\n\r\n if (str !== r.value.toString()) {\r\n throw new System.OverflowException();\r\n }\r\n\r\n return r;\r\n }\r\n\r\n return Bridge.Int.check(Bridge.Int.trunc(v.value.toNumber()), tp);\r\n }\r\n\r\n var i = Bridge.Int.trunc(System.Decimal.getValue(v).toNumber());\r\n\r\n if (!Bridge.Int.$is(i)) {\r\n throw new System.OverflowException();\r\n }\r\n\r\n return i;\r\n };\r\n\r\n System.Decimal.tryParse = function (s, provider, v) {\r\n try {\r\n v.v = new System.Decimal(s, provider);\r\n\r\n return true;\r\n } catch (e) {\r\n v.v = new System.Decimal(0);\r\n\r\n return false;\r\n }\r\n };\r\n\r\n System.Decimal.toFloat = function (v) {\r\n if (!v) {\r\n return null;\r\n }\r\n\r\n return System.Decimal.getValue(v).toNumber();\r\n };\r\n\r\n System.Decimal.setConfig = function (config) {\r\n Bridge.$Decimal.config(config);\r\n };\r\n\r\n System.Decimal.min = function () {\r\n var values = [],\r\n d, p;\r\n\r\n for (var i = 0, len = arguments.length; i < len; i++) {\r\n values.push(System.Decimal.getValue(arguments[i]));\r\n }\r\n\r\n d = Bridge.$Decimal.min.apply(Bridge.$Decimal, values);\r\n\r\n for (var i = 0; i < arguments.length; i++) {\r\n if (d.eq(values[i])) {\r\n p = arguments[i].$precision;\r\n }\r\n }\r\n\r\n return new System.Decimal(d, p);\r\n };\r\n\r\n System.Decimal.max = function () {\r\n var values = [],\r\n d, p;\r\n\r\n for (var i = 0, len = arguments.length; i < len; i++) {\r\n values.push(System.Decimal.getValue(arguments[i]));\r\n }\r\n\r\n d = Bridge.$Decimal.max.apply(Bridge.$Decimal, values);\r\n\r\n for (var i = 0; i < arguments.length; i++) {\r\n if (d.eq(values[i])) {\r\n p = arguments[i].$precision;\r\n }\r\n }\r\n\r\n return new System.Decimal(d, p);\r\n };\r\n\r\n System.Decimal.random = function (dp) {\r\n return new System.Decimal(Bridge.$Decimal.random(dp));\r\n };\r\n\r\n System.Decimal.exp = function (d) {\r\n return new System.Decimal(System.Decimal.getValue(d).exp());\r\n };\r\n\r\n System.Decimal.exp = function (d) {\r\n return new System.Decimal(System.Decimal.getValue(d).exp());\r\n };\r\n\r\n System.Decimal.ln = function (d) {\r\n return new System.Decimal(System.Decimal.getValue(d).ln());\r\n };\r\n\r\n System.Decimal.log = function (d, logBase) {\r\n return new System.Decimal(System.Decimal.getValue(d).log(logBase));\r\n };\r\n\r\n System.Decimal.pow = function (d, exponent) {\r\n return new System.Decimal(System.Decimal.getValue(d).pow(exponent));\r\n };\r\n\r\n System.Decimal.sqrt = function (d) {\r\n return new System.Decimal(System.Decimal.getValue(d).sqrt());\r\n };\r\n\r\n System.Decimal.prototype.isFinite = function () {\r\n return this.value.isFinite();\r\n };\r\n\r\n System.Decimal.prototype.isInteger = function () {\r\n return this.value.isInteger();\r\n };\r\n\r\n System.Decimal.prototype.isNaN = function () {\r\n return this.value.isNaN();\r\n };\r\n\r\n System.Decimal.prototype.isNegative = function () {\r\n return this.value.isNegative();\r\n };\r\n\r\n System.Decimal.prototype.isZero = function () {\r\n return this.value.isZero();\r\n };\r\n\r\n System.Decimal.prototype.log = function (logBase) {\r\n var d = new System.Decimal(this.value.log(logBase));\r\n d.$precision = Math.max(d.value.decimalPlaces(), this.$precision);\r\n return d;\r\n };\r\n\r\n System.Decimal.prototype.ln = function () {\r\n var d = new System.Decimal(this.value.ln());\r\n d.$precision = Math.max(d.value.decimalPlaces(), this.$precision);\r\n return d;\r\n };\r\n\r\n System.Decimal.prototype.precision = function () {\r\n return this.value.precision();\r\n };\r\n\r\n System.Decimal.prototype.round = function () {\r\n var old = Bridge.$Decimal.rounding,\r\n r;\r\n\r\n Bridge.$Decimal.rounding = 6;\r\n r = new System.Decimal(this.value.round());\r\n Bridge.$Decimal.rounding = old;\r\n\r\n return r;\r\n };\r\n\r\n System.Decimal.prototype.sqrt = function () {\r\n var d = new System.Decimal(this.value.sqrt());\r\n d.$precision = Math.max(d.value.decimalPlaces(), this.$precision);\r\n return d;\r\n };\r\n\r\n System.Decimal.prototype.toDecimalPlaces = function (dp, rm) {\r\n return new System.Decimal(this.value.toDecimalPlaces(dp, rm));\r\n };\r\n\r\n System.Decimal.prototype.toExponential = function (dp, rm) {\r\n return this.value.toExponential(dp, rm);\r\n };\r\n\r\n System.Decimal.prototype.toFixed = function (dp, rm) {\r\n return this.value.toFixed(dp, rm);\r\n };\r\n\r\n System.Decimal.prototype.pow = function (n) {\r\n var d = new System.Decimal(this.value.pow(n));\r\n d.$precision = Math.max(d.value.decimalPlaces(), this.$precision);\r\n return d;\r\n };\r\n\r\n System.Decimal.prototype.toPrecision = function (dp, rm) {\r\n return this.value.toPrecision(dp, rm);\r\n };\r\n\r\n System.Decimal.prototype.toSignificantDigits = function (dp, rm) {\r\n var d = new System.Decimal(this.value.toSignificantDigits(dp, rm));\r\n d.$precision = Math.max(d.value.decimalPlaces(), this.$precision);\r\n return d;\r\n };\r\n\r\n System.Decimal.prototype.valueOf = function () {\r\n return this.value.valueOf();\r\n };\r\n\r\n System.Decimal.prototype._toFormat = function (dp, rm, f) {\r\n var x = this.value;\r\n\r\n if (!x.isFinite()) {\r\n return x.toString();\r\n }\r\n\r\n var i,\r\n isNeg = x.isNeg(),\r\n groupSeparator = f.groupSeparator,\r\n g1 = +f.groupSize,\r\n g2 = +f.secondaryGroupSize,\r\n arr = x.toFixed(dp, rm).split(\".\"),\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) {\r\n len -= (i = g1, g1 = g2, g2 = i);\r\n }\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n\r\n for (; i < len; i += g1) {\r\n intPart += groupSeparator + intDigits.substr(i, g1);\r\n }\r\n\r\n if (g2 > 0) {\r\n intPart += groupSeparator + intDigits.slice(i);\r\n }\r\n\r\n if (isNeg) {\r\n intPart = \"-\" + intPart;\r\n }\r\n }\r\n\r\n return fractionPart\r\n ? intPart + f.decimalSeparator + ((g2 = +f.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp(\"\\\\d{\" + g2 + \"}\\\\B\", \"g\"),\r\n \"$&\" + f.fractionGroupSeparator)\r\n : fractionPart)\r\n : intPart;\r\n };\r\n\r\n System.Decimal.prototype.toFormat = function (dp, rm, provider) {\r\n var config = {\r\n decimalSeparator: \".\",\r\n groupSeparator: \",\",\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n fractionGroupSeparator: \"\\xA0\",\r\n fractionGroupSize: 0\r\n },\r\n d;\r\n\r\n if (provider && !provider.getFormat) {\r\n config = Bridge.merge(config, provider);\r\n d = this._toFormat(dp, rm, config);\r\n } else {\r\n provider = provider || System.Globalization.CultureInfo.getCurrentCulture();\r\n\r\n var nfInfo = provider && provider.getFormat(System.Globalization.NumberFormatInfo);\r\n\r\n if (nfInfo) {\r\n config.decimalSeparator = nfInfo.numberDecimalSeparator;\r\n config.groupSeparator = nfInfo.numberGroupSeparator;\r\n config.groupSize = nfInfo.numberGroupSizes[0];\r\n }\r\n\r\n d = this._toFormat(dp, rm, config);\r\n }\r\n\r\n return d;\r\n };\r\n\r\n System.Decimal.prototype.getBytes = function () {\r\n var s = this.value.s,\r\n e = this.value.e,\r\n d = this.value.d,\r\n bytes = System.Array.init(23, 0, System.Byte);\r\n\r\n bytes[0] = s & 255;\r\n bytes[1] = e;\r\n\r\n if (d && d.length > 0) {\r\n bytes[2] = d.length * 4;\r\n\r\n for (var i = 0; i < d.length; i++) {\r\n bytes[i * 4 + 3] = d[i] & 255;\r\n bytes[i * 4 + 4] = (d[i] >> 8) & 255;\r\n bytes[i * 4 + 5] = (d[i] >> 16) & 255;\r\n bytes[i * 4 + 6] = (d[i] >> 24) & 255;\r\n }\r\n } else {\r\n bytes[2] = 0;\r\n }\r\n\r\n return bytes;\r\n };\r\n\r\n System.Decimal.fromBytes = function (bytes) {\r\n var value = new System.Decimal(0),\r\n s = Bridge.Int.sxb(bytes[0] & 255),\r\n e = bytes[1],\r\n ln = bytes[2],\r\n d = [];\r\n\r\n value.value.s = s;\r\n value.value.e = e;\r\n\r\n if (ln > 0) {\r\n for (var i = 3; i < (ln + 3);) {\r\n d.push(bytes[i] | bytes[i + 1] << 8 | bytes[i + 2] << 16 | bytes[i + 3] << 24);\r\n i = i + 4;\r\n }\r\n }\r\n\r\n value.value.d = d;\r\n\r\n return value;\r\n };\r\n\r\n Bridge.$Decimal.config({ precision: 29 });\r\n\r\n System.Decimal.Zero = System.Decimal(0);\r\n System.Decimal.One = System.Decimal(1);\r\n System.Decimal.MinusOne = System.Decimal(-1);\r\n System.Decimal.MinValue = System.Decimal(\"-79228162514264337593543950335\");\r\n System.Decimal.MaxValue = System.Decimal(\"79228162514264337593543950335\");\r\n System.Decimal.precision = 29;\r\n\r\n // @source Date.js\r\n\r\n Bridge.define(\"System.DateTime\", {\r\n inherits: function () { return [System.IComparable, System.IComparable$1(System.DateTime), System.IEquatable$1(System.DateTime), System.IFormattable]; },\r\n $kind: \"struct\",\r\n fields: {\r\n kind: 0\r\n },\r\n methods: {\r\n $clone: function (to) { return this; }\r\n },\r\n statics: {\r\n $minTicks: null,\r\n $maxTicks: null,\r\n $minOffset: null,\r\n $maxOffset: null,\r\n $default: null,\r\n $min: null,\r\n $max: null,\r\n\r\n TicksPerDay: System.Int64(864e9),\r\n\r\n DaysTo1970: 719162,\r\n YearDaysByMonth: [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\r\n\r\n getMinTicks: function () {\r\n if (this.$minTicks === null) {\r\n this.$minTicks = System.Int64(0);\r\n }\r\n\r\n return this.$minTicks;\r\n },\r\n\r\n getMaxTicks: function () {\r\n if (this.$maxTicks === null) {\r\n this.$maxTicks = System.Int64(\"3652059\").mul(this.TicksPerDay).sub(1);\r\n }\r\n\r\n return this.$maxTicks;\r\n },\r\n\r\n // Difference in Ticks from 1-Jan-0001 to 1-Jan-1970 at UTC\r\n $getMinOffset: function () {\r\n if (this.$minOffset === null) {\r\n this.$minOffset = System.Int64(621355968e9);\r\n }\r\n\r\n return this.$minOffset;\r\n },\r\n\r\n // Difference in Ticks between 1970-01-01 and 100 nanoseconds before 10000-01-01 UTC\r\n $getMaxOffset: function () {\r\n if (this.$maxOffset === null) {\r\n this.$maxOffset = this.getMaxTicks().sub(this.$getMinOffset());\r\n }\r\n\r\n return this.$maxOffset;\r\n },\r\n\r\n $is: function (instance) {\r\n return Bridge.isDate(instance);\r\n },\r\n\r\n getDefaultValue: function () {\r\n if (this.$default === null) {\r\n this.$default = this.getMinValue();\r\n }\r\n\r\n return this.$default;\r\n },\r\n\r\n getMinValue: function () {\r\n if (this.$min === null) {\r\n var d = new Date(1, 0, 1, 0, 0, 0, 0);\r\n\r\n d.setFullYear(1);\r\n d.setSeconds(0);\r\n\r\n d.kind = 0;\r\n d.ticks = this.getMinTicks();\r\n\r\n this.$min = d;\r\n }\r\n\r\n return this.$min;\r\n },\r\n\r\n getMaxValue: function () {\r\n if (this.$max === null) {\r\n var d = new Date(9999, 11, 31, 23, 59, 59, 999);\r\n\r\n d.kind = 0;\r\n d.ticks = this.getMaxTicks();\r\n\r\n this.$max = d;\r\n }\r\n\r\n return this.$max;\r\n },\r\n\r\n $getTzOffset: function (d) {\r\n // 60 seconds * 1000 milliseconds * 10000\r\n return System.Int64(d.getTimezoneOffset()).mul(6e8);\r\n },\r\n\r\n toLocalTime: function (d, throwOnOverflow) {\r\n var kind = (d.kind !== undefined) ? d.kind : 0,\r\n ticks = this.getTicks(d),\r\n d1;\r\n\r\n if (kind === 2) {\r\n d1 = new Date(d.getTime());\r\n d1.kind = 2;\r\n d1.ticks = ticks;\r\n\r\n return d1;\r\n }\r\n\r\n d1 = new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds()));\r\n\r\n d1.kind = 2;\r\n d1.ticks = ticks;\r\n\r\n // Check if Ticks are out of range\r\n if (d1.ticks.gt(this.getMaxTicks()) || d1.ticks.lt(0)) {\r\n if (throwOnOverflow && throwOnOverflow === true) {\r\n throw new System.ArgumentException.$ctor1(\"Specified argument was out of the range of valid values.\");\r\n } else {\r\n d1 = this.create$2(ticks.add(this.$getTzOffset(d1)), 2);\r\n }\r\n }\r\n\r\n return d1;\r\n },\r\n\r\n toUniversalTime: function (d) {\r\n var kind = (d.kind !== undefined) ? d.kind : 0,\r\n ticks = this.getTicks(d),\r\n d1;\r\n\r\n if (kind === 1) {\r\n d1 = new Date(d.getTime());\r\n d1.kind = 1;\r\n d1.ticks = ticks;\r\n\r\n return d1;\r\n }\r\n\r\n d1 = new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds()));\r\n\r\n d1.kind = 1;\r\n d1.ticks = ticks;\r\n\r\n // Check if Ticks are out of range\r\n if (d1.ticks.gt(this.getMaxTicks()) || d1.ticks.lt(0)) {\r\n d1 = this.create$2(ticks.add(this.$getTzOffset(d1)), 1);\r\n }\r\n\r\n return d1;\r\n },\r\n\r\n // Get the number of ticks since 0001-01-01T00:00:00.0000000 UTC\r\n getTicks: function (d) {\r\n if (d.ticks) {\r\n return d.ticks;\r\n }\r\n\r\n var kind = (d.kind !== undefined) ? d.kind : 0;\r\n\r\n if (kind === 1) {\r\n d.ticks = System.Int64(d.getTime()).mul(10000).add(this.$getMinOffset());\r\n } else {\r\n d.ticks = System.Int64(d.getTime()).mul(10000).add(this.$getMinOffset()).sub(this.$getTzOffset(d));\r\n }\r\n\r\n return d.ticks;\r\n },\r\n\r\n create: function (year, month, day, hour, minute, second, millisecond, kind) {\r\n year = (year !== undefined) ? year : new Date().getFullYear();\r\n month = (month !== undefined) ? month : new Date().getMonth() + 1;\r\n day = (day !== undefined) ? day : 1;\r\n hour = (hour !== undefined) ? hour : 0;\r\n minute = (minute !== undefined) ? minute : 0;\r\n second = (second !== undefined) ? second : 0;\r\n millisecond = (millisecond !== undefined) ? millisecond : 0;\r\n kind = (kind !== undefined) ? kind : 0;\r\n\r\n var d;\r\n\r\n if (kind === 1) {\r\n d = new Date(Date.UTC(year, month - 1, day, hour, minute, second, millisecond));\r\n d.setUTCFullYear(year);\r\n } else {\r\n d = new Date(year, month - 1, day, hour, minute, second, millisecond);\r\n d.setFullYear(year);\r\n }\r\n\r\n d.kind = kind;\r\n d.ticks = this.getTicks(d);\r\n\r\n return d;\r\n },\r\n\r\n create$2: function (ticks, kind) {\r\n ticks = System.Int64.is64Bit(ticks) ? ticks : System.Int64(ticks);\r\n\r\n var d;\r\n\r\n if (ticks.lt(this.TicksPerDay)) {\r\n d = new Date(0);\r\n d.setMilliseconds(d.getMilliseconds() + this.$getTzOffset(d).div(10000).toNumber());\r\n d.setFullYear(1);\r\n } else {\r\n d = new Date(ticks.sub(this.$getMinOffset()).div(10000).toNumber());\r\n\r\n if (kind !== 1) {\r\n d.setTime(d.getTime() + (d.getTimezoneOffset() * 60000));\r\n }\r\n }\r\n\r\n d.kind = (kind !== undefined) ? kind : 0;\r\n d.ticks = ticks;\r\n\r\n return d;\r\n },\r\n\r\n getToday: function () {\r\n var d = this.getNow()\r\n\r\n d.setHours(0);\r\n d.setMinutes(0);\r\n d.setSeconds(0);\r\n d.setMilliseconds(0);\r\n\r\n return d;\r\n },\r\n\r\n getNow: function () {\r\n var d = new Date();\r\n\r\n d.kind = 2;\r\n\r\n return d;\r\n },\r\n\r\n getUtcNow: function () {\r\n var d = new Date();\r\n\r\n d.kind = 1;\r\n\r\n return d;\r\n },\r\n\r\n getTimeOfDay: function (d) {\r\n var dt = this.getDate(d);\r\n\r\n return new System.TimeSpan((d - dt) * 10000);\r\n },\r\n\r\n getKind: function (d) {\r\n d.kind = (d.kind !== undefined) ? d.kind : 0\r\n\r\n return d.kind;\r\n },\r\n\r\n specifyKind: function (d, kind) {\r\n var dt = new Date(d.getTime());\r\n dt.kind = kind;\r\n dt.ticks = d.ticks !== undefined ? d.ticks : this.getTicks(dt);\r\n\r\n return dt;\r\n },\r\n\r\n $FileTimeOffset: System.Int64(\"584388\").mul(System.Int64(864e9)),\r\n\r\n FromFileTime: function (fileTime) {\r\n return this.toLocalTime(this.FromFileTimeUtc(fileTime));\r\n },\r\n\r\n FromFileTimeUtc: function (fileTime) {\r\n fileTime = System.Int64.is64Bit(fileTime) ? fileTime : System.Int64(fileTime);\r\n\r\n return this.create$2(fileTime.add(this.$FileTimeOffset), 1);\r\n },\r\n\r\n ToFileTime: function (d) {\r\n return this.ToFileTimeUtc(this.toUniversalTime(d));\r\n },\r\n\r\n ToFileTimeUtc: function (d) {\r\n return (this.getKind(d) !== 0) ? this.getTicks(this.toUniversalTime(d)) : this.getTicks(d);\r\n },\r\n\r\n isUseGenitiveForm: function (format, index, tokenLen, patternToMatch) {\r\n var i,\r\n repeat = 0;\r\n\r\n for (i = index - 1; i >= 0 && format[i] !== patternToMatch; i--) { }\r\n\r\n if (i >= 0) {\r\n while (--i >= 0 && format[i] === patternToMatch) {\r\n repeat++;\r\n }\r\n\r\n if (repeat <= 1) {\r\n return true;\r\n }\r\n }\r\n\r\n for (i = index + tokenLen; i < format.length && format[i] !== patternToMatch; i++) { }\r\n\r\n if (i < format.length) {\r\n repeat = 0;\r\n\r\n while (++i < format.length && format[i] === patternToMatch) {\r\n repeat++;\r\n }\r\n\r\n if (repeat <= 1) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n\r\n format: function (d, f, p) {\r\n var me = this,\r\n kind = d.kind || 0,\r\n isUtc = (kind === 1 || [\"u\", \"r\", \"R\"].indexOf(f) > -1),\r\n df = (p || System.Globalization.CultureInfo.getCurrentCulture()).getFormat(System.Globalization.DateTimeFormatInfo),\r\n year = isUtc ? d.getUTCFullYear() : d.getFullYear(),\r\n month = isUtc ? d.getUTCMonth() : d.getMonth(),\r\n dayOfMonth = isUtc ? d.getUTCDate() : d.getDate(),\r\n dayOfWeek = isUtc ? d.getUTCDay() : d.getDay(),\r\n hour = isUtc ? d.getUTCHours() : d.getHours(),\r\n minute = isUtc ? d.getUTCMinutes() : d.getMinutes(),\r\n second = isUtc ? d.getUTCSeconds() : d.getSeconds(),\r\n millisecond = isUtc ? d.getUTCMilliseconds() : d.getMilliseconds(),\r\n timezoneOffset = d.getTimezoneOffset(),\r\n formats;\r\n\r\n f = f || \"G\";\r\n\r\n if (f.length === 1) {\r\n formats = df.getAllDateTimePatterns(f, true);\r\n f = formats ? formats[0] : f;\r\n } else if (f.length === 2 && f.charAt(0) === \"%\") {\r\n f = f.charAt(1);\r\n }\r\n\r\n var removeDot = false;\r\n\r\n f = f.replace(/(\\\\.|'[^']*'|\"[^\"]*\"|d{1,4}|M{1,4}|yyyy|yy|y|HH?|hh?|mm?|ss?|tt?|u|f{1,7}|F{1,7}|K|z{1,3}|\\:|\\/)/g,\r\n function (match, group, index) {\r\n var part = match;\r\n\r\n switch (match) {\r\n case \"dddd\":\r\n part = df.dayNames[dayOfWeek];\r\n\r\n break;\r\n case \"ddd\":\r\n part = df.abbreviatedDayNames[dayOfWeek];\r\n\r\n break;\r\n case \"dd\":\r\n part = dayOfMonth < 10 ? \"0\" + dayOfMonth : dayOfMonth;\r\n\r\n break;\r\n case \"d\":\r\n part = dayOfMonth;\r\n\r\n break;\r\n case \"MMMM\":\r\n if (me.isUseGenitiveForm(f, index, 4, \"d\")) {\r\n part = df.monthGenitiveNames[month];\r\n } else {\r\n part = df.monthNames[month];\r\n }\r\n\r\n break;\r\n case \"MMM\":\r\n if (me.isUseGenitiveForm(f, index, 3, \"d\")) {\r\n part = df.abbreviatedMonthGenitiveNames[month];\r\n } else {\r\n part = df.abbreviatedMonthNames[month];\r\n }\r\n\r\n break;\r\n case \"MM\":\r\n part = (month + 1) < 10 ? \"0\" + (month + 1) : (month + 1);\r\n\r\n break;\r\n case \"M\":\r\n part = month + 1;\r\n\r\n break;\r\n case \"yyyy\":\r\n part = (\"0000\" + year).substring(year.toString().length);\r\n\r\n break;\r\n case \"yy\":\r\n part = (year % 100).toString();\r\n\r\n if (part.length === 1) {\r\n part = \"0\" + part;\r\n }\r\n\r\n break;\r\n case \"y\":\r\n part = year % 100;\r\n\r\n break;\r\n case \"h\":\r\n case \"hh\":\r\n part = hour % 12;\r\n\r\n if (!part) {\r\n part = \"12\";\r\n } else if (match === \"hh\" && part.length === 1) {\r\n part = \"0\" + part;\r\n }\r\n\r\n break;\r\n case \"HH\":\r\n part = hour.toString();\r\n\r\n if (part.length === 1) {\r\n part = \"0\" + part;\r\n }\r\n\r\n break;\r\n case \"H\":\r\n part = hour;\r\n break;\r\n case \"mm\":\r\n part = minute.toString();\r\n\r\n if (part.length === 1) {\r\n part = \"0\" + part;\r\n }\r\n\r\n break;\r\n case \"m\":\r\n part = minute;\r\n\r\n break;\r\n case \"ss\":\r\n part = second.toString();\r\n\r\n if (part.length === 1) {\r\n part = \"0\" + part;\r\n }\r\n\r\n break;\r\n case \"s\":\r\n part = second;\r\n break;\r\n case \"t\":\r\n case \"tt\":\r\n part = (hour < 12) ? df.amDesignator : df.pmDesignator;\r\n\r\n if (match === \"t\") {\r\n part = part.charAt(0);\r\n }\r\n\r\n break;\r\n case \"F\":\r\n case \"FF\":\r\n case \"FFF\":\r\n case \"FFFF\":\r\n case \"FFFFF\":\r\n case \"FFFFFF\":\r\n case \"FFFFFFF\":\r\n part = millisecond.toString();\r\n\r\n if (part.length < 3) {\r\n part = Array(4 - part.length).join(\"0\") + part;\r\n }\r\n\r\n part = part.substr(0, match.length);\r\n\r\n var c = '0',\r\n i = part.length - 1;\r\n\r\n for (; i >= 0 && part.charAt(i) === c; i--);\r\n part = part.substring(0, i + 1);\r\n\r\n removeDot = part.length == 0;\r\n\r\n break;\r\n case \"f\":\r\n case \"ff\":\r\n case \"fff\":\r\n case \"ffff\":\r\n case \"fffff\":\r\n case \"ffffff\":\r\n case \"fffffff\":\r\n part = millisecond.toString();\r\n\r\n if (part.length < 3) {\r\n part = Array(4 - part.length).join(\"0\") + part;\r\n }\r\n\r\n var ln = match === \"u\" ? 7 : match.length;\r\n if (part.length < ln) {\r\n part = part + Array(8 - part.length).join(\"0\");\r\n }\r\n\r\n part = part.substr(0, ln);\r\n\r\n break;\r\n case \"z\":\r\n part = timezoneOffset / 60;\r\n part = ((part >= 0) ? \"-\" : \"+\") + Math.floor(Math.abs(part));\r\n\r\n break;\r\n case \"K\":\r\n case \"zz\":\r\n case \"zzz\":\r\n if (kind === 0) {\r\n part = \"\";\r\n } else if (kind === 1) {\r\n part = \"Z\";\r\n } else {\r\n part = timezoneOffset / 60;\r\n part = ((part > 0) ? \"-\" : \"+\") + System.String.alignString(Math.floor(Math.abs(part)).toString(), 2, \"0\", 2);\r\n\r\n if (match === \"zzz\" || match === \"K\") {\r\n part += df.timeSeparator + System.String.alignString(Math.floor(Math.abs(timezoneOffset % 60)).toString(), 2, \"0\", 2);\r\n }\r\n }\r\n\r\n break;\r\n case \":\":\r\n part = df.timeSeparator;\r\n\r\n break;\r\n case \"/\":\r\n part = df.dateSeparator;\r\n\r\n break;\r\n default:\r\n part = match.substr(1, match.length - 1 - (match.charAt(0) !== \"\\\\\"));\r\n\r\n break;\r\n }\r\n\r\n return part;\r\n });\r\n\r\n if (removeDot) {\r\n if (System.String.endsWith(f, \".\")) {\r\n f = f.substring(0, f.length - 1);\r\n } else if (System.String.endsWith(f, \".Z\")) {\r\n f = f.substring(0, f.length - 2) + \"Z\";\r\n } else if (kind === 2 && f.match(/\\.([+-])/g) !== null) {\r\n f = f.replace(/\\.([+-])/g, '$1');\r\n }\r\n }\r\n\r\n return f;\r\n },\r\n\r\n parse: function (value, provider, utc, silent) {\r\n var d = this.parseExact(value, null, provider, utc, true);\r\n\r\n if (d !== null) {\r\n return d;\r\n }\r\n\r\n d = Date.parse(value);\r\n\r\n if (!isNaN(d)) {\r\n return new Date(d);\r\n } else if (!silent) {\r\n throw new System.FormatException.$ctor1(\"String does not contain a valid string representation of a date and time.\");\r\n }\r\n },\r\n\r\n parseExact: function (str, format, provider, utc, silent) {\r\n if (!format) {\r\n format = [\"G\", \"g\", \"F\", \"f\", \"D\", \"d\", \"R\", \"r\", \"s\", \"S\", \"U\", \"u\", \"O\", \"o\", \"Y\", \"y\", \"M\", \"m\", \"T\", \"t\"];\r\n }\r\n\r\n if (Bridge.isArray(format)) {\r\n var j = 0,\r\n d;\r\n\r\n for (j; j < format.length; j++) {\r\n d = this.parseExact(str, format[j], provider, utc, true);\r\n\r\n if (d != null) {\r\n return d;\r\n }\r\n }\r\n\r\n if (silent) {\r\n return null;\r\n }\r\n\r\n throw new System.FormatException.$ctor1(\"String does not contain a valid string representation of a date and time.\");\r\n } else {\r\n // TODO: The code below assumes that there are no quotation marks around the UTC/Z format token (the format patterns\r\n // used by Bridge appear to use quotation marks throughout (see universalSortableDateTimePattern), including\r\n // in the recent Newtonsoft.Json.JsonConvert release).\r\n // Until the above is sorted out, manually remove quotation marks to get UTC times parsed correctly.\r\n format = format.replace(\"'Z'\", \"Z\");\r\n }\r\n\r\n var now = new Date(),\r\n df = (provider || System.Globalization.CultureInfo.getCurrentCulture()).getFormat(System.Globalization.DateTimeFormatInfo),\r\n am = df.amDesignator,\r\n pm = df.pmDesignator,\r\n idx = 0,\r\n index = 0,\r\n i = 0,\r\n c,\r\n token,\r\n year = now.getFullYear(),\r\n month = now.getMonth() + 1,\r\n date = now.getDate(),\r\n hh = 0,\r\n mm = 0,\r\n ss = 0,\r\n ff = 0,\r\n tt = \"\",\r\n zzh = 0,\r\n zzm = 0,\r\n zzi,\r\n sign,\r\n neg,\r\n names,\r\n name,\r\n invalid = false,\r\n inQuotes = false,\r\n tokenMatched,\r\n formats,\r\n kind = 0,\r\n adjust = false,\r\n offset = 0;\r\n\r\n if (str == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"str\");\r\n }\r\n\r\n format = format || \"G\";\r\n\r\n if (format.length === 1) {\r\n formats = df.getAllDateTimePatterns(format, true);\r\n format = formats ? formats[0] : format;\r\n } else if (format.length === 2 && format.charAt(0) === \"%\") {\r\n format = format.charAt(1);\r\n }\r\n\r\n while (index < format.length) {\r\n c = format.charAt(index);\r\n token = \"\";\r\n\r\n if (inQuotes === \"\\\\\") {\r\n token += c;\r\n index++;\r\n } else {\r\n var nextChar = format.charAt(index + 1);\r\n if (c === '.' && str.charAt(idx) !== c && (nextChar === 'F' || nextChar === 'f')) {\r\n index++;\r\n c = nextChar;\r\n }\r\n\r\n while ((format.charAt(index) === c) && (index < format.length)) {\r\n token += c;\r\n index++;\r\n }\r\n }\r\n\r\n tokenMatched = true;\r\n\r\n if (!inQuotes) {\r\n if (token === \"yyyy\" || token === \"yy\" || token === \"y\") {\r\n if (token === \"yyyy\") {\r\n year = this.subparseInt(str, idx, 4, 4);\r\n } else if (token === \"yy\") {\r\n year = this.subparseInt(str, idx, 2, 2);\r\n } else if (token === \"y\") {\r\n year = this.subparseInt(str, idx, 2, 4);\r\n }\r\n\r\n if (year == null) {\r\n invalid = true;\r\n break;\r\n }\r\n\r\n idx += year.length;\r\n\r\n if (year.length === 2) {\r\n year = ~~year;\r\n year = (year > 30 ? 1900 : 2000) + year;\r\n }\r\n } else if (token === \"MMM\" || token === \"MMMM\") {\r\n month = 0;\r\n\r\n if (token === \"MMM\") {\r\n if (this.isUseGenitiveForm(format, index, 3, \"d\")) {\r\n names = df.abbreviatedMonthGenitiveNames;\r\n } else {\r\n names = df.abbreviatedMonthNames;\r\n }\r\n } else {\r\n if (this.isUseGenitiveForm(format, index, 4, \"d\")) {\r\n names = df.monthGenitiveNames;\r\n } else {\r\n names = df.monthNames;\r\n }\r\n }\r\n\r\n for (i = 0; i < names.length; i++) {\r\n name = names[i];\r\n\r\n if (str.substring(idx, idx + name.length).toLowerCase() === name.toLowerCase()) {\r\n month = (i % 12) + 1;\r\n idx += name.length;\r\n\r\n break;\r\n }\r\n }\r\n\r\n if ((month < 1) || (month > 12)) {\r\n invalid = true;\r\n\r\n break;\r\n }\r\n } else if (token === \"MM\" || token === \"M\") {\r\n month = this.subparseInt(str, idx, token.length, 2);\r\n\r\n if (month == null || month < 1 || month > 12) {\r\n invalid = true;\r\n\r\n break;\r\n }\r\n\r\n idx += month.length;\r\n } else if (token === \"dddd\" || token === \"ddd\") {\r\n names = token === \"ddd\" ? df.abbreviatedDayNames : df.dayNames;\r\n\r\n for (i = 0; i < names.length; i++) {\r\n name = names[i];\r\n\r\n if (str.substring(idx, idx + name.length).toLowerCase() === name.toLowerCase()) {\r\n idx += name.length;\r\n\r\n break;\r\n }\r\n }\r\n } else if (token === \"dd\" || token === \"d\") {\r\n date = this.subparseInt(str, idx, token.length, 2);\r\n\r\n if (date == null || date < 1 || date > 31) {\r\n invalid = true;\r\n\r\n break;\r\n }\r\n\r\n idx += date.length;\r\n } else if (token === \"hh\" || token === \"h\") {\r\n hh = this.subparseInt(str, idx, token.length, 2);\r\n\r\n if (hh == null || hh < 1 || hh > 12) {\r\n invalid = true;\r\n\r\n break;\r\n }\r\n\r\n idx += hh.length;\r\n } else if (token === \"HH\" || token === \"H\") {\r\n hh = this.subparseInt(str, idx, token.length, 2);\r\n\r\n if (hh == null || hh < 0 || hh > 23) {\r\n invalid = true;\r\n\r\n break;\r\n }\r\n\r\n idx += hh.length;\r\n } else if (token === \"mm\" || token === \"m\") {\r\n mm = this.subparseInt(str, idx, token.length, 2);\r\n\r\n if (mm == null || mm < 0 || mm > 59) {\r\n return null;\r\n }\r\n\r\n idx += mm.length;\r\n } else if (token === \"ss\" || token === \"s\") {\r\n ss = this.subparseInt(str, idx, token.length, 2);\r\n\r\n if (ss == null || ss < 0 || ss > 59) {\r\n invalid = true;\r\n\r\n break;\r\n }\r\n\r\n idx += ss.length;\r\n } else if (token === \"u\") {\r\n ff = this.subparseInt(str, idx, 1, 7);\r\n\r\n if (ff == null) {\r\n invalid = true;\r\n\r\n break;\r\n }\r\n\r\n idx += ff.length;\r\n\r\n if (ff.length > 3) {\r\n ff = ff.substring(0, 3);\r\n }\r\n } else if (token.match(/f{1,7}/) !== null) {\r\n ff = this.subparseInt(str, idx, token.length, 7);\r\n\r\n if (ff == null) {\r\n invalid = true;\r\n\r\n break;\r\n }\r\n\r\n idx += ff.length;\r\n\r\n if (ff.length > 3) {\r\n ff = ff.substring(0, 3);\r\n }\r\n } else if (token.match(/F{1,7}/) !== null) {\r\n ff = this.subparseInt(str, idx, 0, 7);\r\n\r\n if (ff !== null) {\r\n idx += ff.length;\r\n\r\n if (ff.length > 3) {\r\n ff = ff.substring(0, 3);\r\n }\r\n }\r\n } else if (token === \"t\") {\r\n if (str.substring(idx, idx + 1).toLowerCase() === am.charAt(0).toLowerCase()) {\r\n tt = am;\r\n } else if (str.substring(idx, idx + 1).toLowerCase() === pm.charAt(0).toLowerCase()) {\r\n tt = pm;\r\n } else {\r\n invalid = true;\r\n\r\n break;\r\n }\r\n\r\n idx += 1;\r\n } else if (token === \"tt\") {\r\n if (str.substring(idx, idx + 2).toLowerCase() === am.toLowerCase()) {\r\n tt = am;\r\n } else if (str.substring(idx, idx + 2).toLowerCase() === pm.toLowerCase()) {\r\n tt = pm;\r\n } else {\r\n invalid = true;\r\n\r\n break;\r\n }\r\n\r\n idx += 2;\r\n } else if (token === \"z\" || token === \"zz\") {\r\n sign = str.charAt(idx);\r\n\r\n if (sign === \"-\") {\r\n neg = true;\r\n } else if (sign === \"+\") {\r\n neg = false;\r\n } else {\r\n invalid = true;\r\n\r\n break;\r\n }\r\n\r\n idx++;\r\n\r\n zzh = this.subparseInt(str, idx, 1, 2);\r\n\r\n if (zzh == null || zzh > 14) {\r\n invalid = true;\r\n\r\n break;\r\n }\r\n\r\n idx += zzh.length;\r\n\r\n offset = zzh * 60 * 60 * 1000;\r\n\r\n if (neg) {\r\n offset = -offset;\r\n }\r\n } else if (token === \"Z\") {\r\n var ch = str.substring(idx, idx + 1);\r\n if (ch === \"Z\" || ch === \"z\") {\r\n kind = 1;\r\n idx += 1;\r\n } else {\r\n invalid = true;\r\n }\r\n\r\n break;\r\n\r\n } else if (token === \"zzz\" || token === \"K\") {\r\n if (str.substring(idx, idx + 1) === \"Z\") {\r\n kind = 2;\r\n adjust = true;\r\n idx += 1;\r\n\r\n break;\r\n }\r\n\r\n name = str.substring(idx, idx + 6);\r\n\r\n if (name === \"\") {\r\n kind = 0;\r\n\r\n break;\r\n }\r\n\r\n idx += name.length;\r\n\r\n if (name.length !== 6 && name.length !== 5) {\r\n invalid = true;\r\n\r\n break;\r\n }\r\n\r\n sign = name.charAt(0);\r\n\r\n if (sign === \"-\") {\r\n neg = true;\r\n } else if (sign === \"+\") {\r\n neg = false;\r\n } else {\r\n invalid = true;\r\n\r\n break;\r\n }\r\n\r\n zzi = 1;\r\n zzh = this.subparseInt(name, zzi, 1, name.length === 6 ? 2 : 1);\r\n\r\n if (zzh == null || zzh > 14) {\r\n invalid = true;\r\n\r\n break;\r\n }\r\n\r\n zzi += zzh.length;\r\n\r\n if (name.charAt(zzi) !== df.timeSeparator) {\r\n invalid = true;\r\n\r\n break;\r\n }\r\n\r\n zzi++;\r\n\r\n zzm = this.subparseInt(name, zzi, 1, 2);\r\n\r\n if (zzm == null || zzh > 59) {\r\n invalid = true;\r\n\r\n break;\r\n }\r\n\r\n offset = zzh * 60 * 60 * 1000 + zzm * 60 * 1000;\r\n\r\n if (neg) {\r\n offset = -offset;\r\n }\r\n\r\n kind = 2;\r\n } else {\r\n tokenMatched = false;\r\n }\r\n }\r\n\r\n if (inQuotes || !tokenMatched) {\r\n name = str.substring(idx, idx + token.length);\r\n\r\n if (!inQuotes && name === \":\" && (token === df.timeSeparator || token === \":\")) {\r\n\r\n } else if ((!inQuotes && ((token === \":\" && name !== df.timeSeparator) || (token === \"/\" && name !== df.dateSeparator))) || (name !== token && token !== \"'\" && token !== '\"' && token !== \"\\\\\")) {\r\n invalid = true;\r\n\r\n break;\r\n }\r\n\r\n if (inQuotes === \"\\\\\") {\r\n inQuotes = false;\r\n }\r\n\r\n if (token !== \"'\" && token !== '\"' && token !== \"\\\\\") {\r\n idx += token.length;\r\n } else {\r\n if (inQuotes === false) {\r\n inQuotes = token;\r\n } else {\r\n if (inQuotes !== token) {\r\n invalid = true;\r\n break;\r\n }\r\n\r\n inQuotes = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (inQuotes) {\r\n invalid = true;\r\n }\r\n\r\n if (!invalid) {\r\n if (idx !== str.length) {\r\n invalid = true;\r\n } else if (month === 2) {\r\n if (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0)) {\r\n if (date > 29) {\r\n invalid = true;\r\n }\r\n } else if (date > 28) {\r\n invalid = true;\r\n }\r\n } else if ((month === 4) || (month === 6) || (month === 9) || (month === 11)) {\r\n if (date > 30) {\r\n invalid = true;\r\n }\r\n }\r\n }\r\n\r\n if (invalid) {\r\n if (silent) {\r\n return null;\r\n }\r\n\r\n throw new System.FormatException.$ctor1(\"String does not contain a valid string representation of a date and time.\");\r\n }\r\n\r\n if (tt) {\r\n if (hh < 12 && tt === pm) {\r\n hh = hh - 0 + 12;\r\n } else if (hh > 11 && tt === am) {\r\n hh -= 12;\r\n }\r\n }\r\n\r\n var d = this.create(year, month, date, hh, mm, ss, ff, kind);\r\n\r\n if (kind === 2) {\r\n if (adjust === true) {\r\n d = new Date(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\r\n } else if (offset !== 0) {\r\n d = new Date(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\r\n d = this.addMilliseconds(d, -offset);\r\n }\r\n\r\n d.kind = kind;\r\n }\r\n\r\n return d;\r\n },\r\n\r\n subparseInt: function (str, index, min, max) {\r\n var x,\r\n token;\r\n\r\n for (x = max; x >= min; x--) {\r\n token = str.substring(index, index + x);\r\n\r\n if (token.length < min) {\r\n return null;\r\n }\r\n\r\n if (/^\\d+$/.test(token)) {\r\n return token;\r\n }\r\n }\r\n\r\n return null;\r\n },\r\n\r\n tryParse: function (value, provider, result, utc) {\r\n result.v = this.parse(value, provider, utc, true);\r\n\r\n if (result.v == null) {\r\n result.v = this.getMinValue();\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n tryParseExact: function (v, f, p, r, utc) {\r\n r.v = this.parseExact(v, f, p, utc, true);\r\n\r\n if (r.v == null) {\r\n r.v = this.getMinValue();\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n isDaylightSavingTime: function (d) {\r\n if (d.kind !== undefined && d.kind === 1) {\r\n return false;\r\n }\r\n\r\n var tmp = new Date(d.getTime());\r\n\r\n tmp.setMonth(0);\r\n tmp.setDate(1);\r\n\r\n return tmp.getTimezoneOffset() !== d.getTimezoneOffset();\r\n },\r\n\r\n dateAddSubTimeSpan: function (d, t, direction) {\r\n var ticks = t.getTicks().mul(direction),\r\n dt = new Date(d.getTime() + ticks.div(10000).toNumber());\r\n\r\n dt.kind = d.kind;\r\n dt.ticks = this.getTicks(dt);\r\n\r\n return dt;\r\n },\r\n\r\n subdt: function (d, t) {\r\n return this.dateAddSubTimeSpan(d, t, -1);\r\n },\r\n\r\n adddt: function (d, t) {\r\n return this.dateAddSubTimeSpan(d, t, 1);\r\n },\r\n\r\n subdd: function (a, b) {\r\n var offset = 0,\r\n ticksA = this.getTicks(a),\r\n ticksB = this.getTicks(b),\r\n valA = ticksA.toNumber(),\r\n valB = ticksB.toNumber(),\r\n spread = ticksA.sub(ticksB);\r\n\r\n if ((valA === 0 && valB !== 0) || (valB === 0 && valA !== 0)) {\r\n offset = Math.round((spread.toNumberDivided(6e8) - (Math.round(spread.toNumberDivided(9e9)) * 15)) * 6e8);\r\n }\r\n\r\n return new System.TimeSpan(spread.sub(offset));\r\n },\r\n\r\n addYears: function (d, v) {\r\n return this.addMonths(d, v * 12);\r\n },\r\n\r\n addMonths: function (d, v) {\r\n var dt = new Date(d.getTime()),\r\n day = d.getDate();\r\n\r\n dt.setDate(1);\r\n dt.setMonth(dt.getMonth() + v);\r\n dt.setDate(Math.min(day, this.getDaysInMonth(dt.getFullYear(), dt.getMonth() + 1)));\r\n dt.kind = (d.kind !== undefined) ? d.kind : 0;\r\n dt.ticks = this.getTicks(dt);\r\n\r\n return dt;\r\n },\r\n\r\n addDays: function (d, v) {\r\n var kind = (d.kind !== undefined) ? d.kind : 0,\r\n dt = new Date(d.getTime());\r\n\r\n if (kind === 1) {\r\n dt.setUTCDate(dt.getUTCDate() + (Math.floor(v) * 1));\r\n\r\n if (v % 1 !== 0) {\r\n dt.setUTCMilliseconds(dt.getUTCMilliseconds() + Math.round((v % 1) * 864e5));\r\n }\r\n } else {\r\n dt.setDate(dt.getDate() + (Math.floor(v) * 1));\r\n\r\n if (v % 1 !== 0) {\r\n dt.setMilliseconds(dt.getMilliseconds() + Math.round((v % 1) * 864e5));\r\n }\r\n }\r\n\r\n dt.kind = kind;\r\n dt.ticks = this.getTicks(dt);\r\n\r\n return dt;\r\n },\r\n\r\n addHours: function (d, v) {\r\n return this.addMilliseconds(d, v * 36e5);\r\n },\r\n\r\n addMinutes: function (d, v) {\r\n return this.addMilliseconds(d, v * 6e4);\r\n },\r\n\r\n addSeconds: function (d, v) {\r\n return this.addMilliseconds(d, v * 1e3);\r\n },\r\n\r\n addMilliseconds: function (d, v) {\r\n var dt = new Date(d.getTime());\r\n dt.setMilliseconds(dt.getMilliseconds() + v)\r\n dt.kind = (d.kind !== undefined) ? d.kind : 0;\r\n dt.ticks = this.getTicks(dt);\r\n\r\n return dt;\r\n },\r\n\r\n addTicks: function (d, v) {\r\n v = System.Int64.is64Bit(v) ? v : System.Int64(v);\r\n\r\n var dt = new Date(d.getTime()),\r\n ticks = this.getTicks(d).add(v);\r\n\r\n dt.setMilliseconds(dt.getMilliseconds() + v.div(10000).toNumber())\r\n dt.ticks = ticks;\r\n dt.kind = (d.kind !== undefined) ? d.kind : 0;\r\n\r\n return dt;\r\n },\r\n\r\n add: function (d, value) {\r\n return this.addTicks(d, value.getTicks());\r\n },\r\n\r\n subtract: function (d, value) {\r\n return this.addTicks(d, value.getTicks().mul(-1));\r\n },\r\n\r\n // Replaced leap year calculation for performance:\r\n // https://jsperf.com/leapyear-calculation/1\r\n getIsLeapYear: function (year) {\r\n if ((year & 3) != 0) {\r\n return false;\r\n }\r\n\r\n return ((year % 100) != 0 || (year % 400) == 0);\r\n },\r\n\r\n getDaysInMonth: function (year, month) {\r\n return [31, (this.getIsLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month - 1];\r\n },\r\n\r\n // Optimized as per: https://jsperf.com/get-day-of-year\r\n getDayOfYear: function (d) {\r\n var dt = this.getDate(d),\r\n mn = dt.getMonth(),\r\n dn = dt.getDate(),\r\n dayOfYear = this.YearDaysByMonth[mn] + dn;\r\n\r\n if (mn > 1 && this.getIsLeapYear(dt.getFullYear())) {\r\n dayOfYear++;\r\n }\r\n\r\n return dayOfYear;\r\n },\r\n\r\n getDate: function (d) {\r\n var kind = (d.kind !== undefined) ? d.kind : 0,\r\n dt = new Date(d.getTime());\r\n\r\n if (kind === 1) {\r\n dt.setUTCHours(0);\r\n dt.setUTCMinutes(0);\r\n dt.setUTCSeconds(0);\r\n dt.setUTCMilliseconds(0);\r\n } else {\r\n dt.setHours(0);\r\n dt.setMinutes(0);\r\n dt.setSeconds(0);\r\n dt.setMilliseconds(0);\r\n }\r\n\r\n dt.ticks = this.getTicks(dt);\r\n dt.kind = kind;\r\n\r\n return dt;\r\n },\r\n\r\n getDayOfWeek: function (d) {\r\n return d.getDay();\r\n },\r\n\r\n getYear: function (d) {\r\n var kind = (d.kind !== undefined) ? d.kind : 0,\r\n ticks = this.getTicks(d);\r\n\r\n if (ticks.lt(this.TicksPerDay)) {\r\n return 1;\r\n }\r\n\r\n return kind === 1 ? d.getUTCFullYear() : d.getFullYear();\r\n },\r\n\r\n getMonth: function (d) {\r\n var kind = (d.kind !== undefined) ? d.kind : 0,\r\n ticks = this.getTicks(d);\r\n\r\n if (ticks.lt(this.TicksPerDay)) {\r\n return 1;\r\n }\r\n\r\n return kind === 1 ? d.getUTCMonth() + 1 : d.getMonth() + 1;\r\n },\r\n\r\n getDay: function (d) {\r\n var kind = (d.kind !== undefined) ? d.kind : 0,\r\n ticks = this.getTicks(d);\r\n\r\n if (ticks.lt(this.TicksPerDay)) {\r\n return 1;\r\n }\r\n\r\n return kind === 1 ? d.getUTCDate() : d.getDate();\r\n },\r\n\r\n getHour: function (d) {\r\n var kind = (d.kind !== undefined) ? d.kind : 0;\r\n\r\n return kind === 1 ? d.getUTCHours() : d.getHours();\r\n },\r\n\r\n getMinute: function (d) {\r\n var kind = (d.kind !== undefined) ? d.kind : 0;\r\n\r\n return kind === 1 ? d.getUTCMinutes() : d.getMinutes();\r\n },\r\n\r\n getSecond: function (d) {\r\n return d.getSeconds();\r\n },\r\n\r\n getMillisecond: function (d) {\r\n return d.getMilliseconds();\r\n },\r\n\r\n gt: function (a, b) {\r\n return (a != null && b != null) ? (this.getTicks(a).gt(this.getTicks(b))) : false;\r\n },\r\n\r\n gte: function (a, b) {\r\n return (a != null && b != null) ? (this.getTicks(a).gte(this.getTicks(b))) : false;\r\n },\r\n\r\n lt: function (a, b) {\r\n return (a != null && b != null) ? (this.getTicks(a).lt(this.getTicks(b))) : false;\r\n },\r\n\r\n lte: function (a, b) {\r\n return (a != null && b != null) ? (this.getTicks(a).lte(this.getTicks(b))) : false;\r\n }\r\n }\r\n });\r\n\r\n // @source TimeSpan.js\r\n\r\n Bridge.define(\"System.TimeSpan\", {\r\n inherits: [System.IComparable],\r\n\r\n config: {\r\n alias: [\r\n \"compareTo\", [\"System$IComparable$compareTo\", \"System$IComparable$1$compareTo\", \"System$IComparable$1System$TimeSpan$compareTo\"]\r\n ]\r\n },\r\n\r\n $kind: \"struct\",\r\n statics: {\r\n fromDays: function (value) {\r\n return new System.TimeSpan(value * 864e9);\r\n },\r\n\r\n fromHours: function (value) {\r\n return new System.TimeSpan(value * 36e9);\r\n },\r\n\r\n fromMilliseconds: function (value) {\r\n return new System.TimeSpan(value * 1e4);\r\n },\r\n\r\n fromMinutes: function (value) {\r\n return new System.TimeSpan(value * 6e8);\r\n },\r\n\r\n fromSeconds: function (value) {\r\n return new System.TimeSpan(value * 1e7);\r\n },\r\n\r\n fromTicks: function (value) {\r\n return new System.TimeSpan(value);\r\n },\r\n\r\n ctor: function () {\r\n this.zero = new System.TimeSpan(System.Int64.Zero);\r\n this.maxValue = new System.TimeSpan(System.Int64.MaxValue);\r\n this.minValue = new System.TimeSpan(System.Int64.MinValue);\r\n },\r\n\r\n getDefaultValue: function () {\r\n return new System.TimeSpan(System.Int64.Zero);\r\n },\r\n\r\n neg: function (t) {\r\n return Bridge.hasValue(t) ? (new System.TimeSpan(t.ticks.neg())) : null;\r\n },\r\n\r\n sub: function (t1, t2) {\r\n return Bridge.hasValue$1(t1, t2) ? (new System.TimeSpan(t1.ticks.sub(t2.ticks))) : null;\r\n },\r\n\r\n eq: function (t1, t2) {\r\n if (t1 === null && t2 === null) {\r\n return true;\r\n }\r\n\r\n return Bridge.hasValue$1(t1, t2) ? (t1.ticks.eq(t2.ticks)) : false;\r\n },\r\n\r\n neq: function (t1, t2) {\r\n if (t1 === null && t2 === null) {\r\n return false;\r\n }\r\n\r\n return Bridge.hasValue$1(t1, t2) ? (t1.ticks.ne(t2.ticks)) : true;\r\n },\r\n\r\n plus: function (t) {\r\n return Bridge.hasValue(t) ? (new System.TimeSpan(t.ticks)) : null;\r\n },\r\n\r\n add: function (t1, t2) {\r\n return Bridge.hasValue$1(t1, t2) ? (new System.TimeSpan(t1.ticks.add(t2.ticks))) : null;\r\n },\r\n\r\n gt: function (a, b) {\r\n return Bridge.hasValue$1(a, b) ? (a.ticks.gt(b.ticks)) : false;\r\n },\r\n\r\n gte: function (a, b) {\r\n return Bridge.hasValue$1(a, b) ? (a.ticks.gte(b.ticks)) : false;\r\n },\r\n\r\n lt: function (a, b) {\r\n return Bridge.hasValue$1(a, b) ? (a.ticks.lt(b.ticks)) : false;\r\n },\r\n\r\n lte: function (a, b) {\r\n return Bridge.hasValue$1(a, b) ? (a.ticks.lte(b.ticks)) : false;\r\n },\r\n\r\n timeSpanWithDays: /^(\\-)?(\\d+)[\\.|:](\\d+):(\\d+):(\\d+)(\\.\\d+)?/,\r\n timeSpanNoDays: /^(\\-)?(\\d+):(\\d+):(\\d+)(\\.\\d+)?/,\r\n\r\n parse: function(value) {\r\n var match,\r\n milliseconds;\r\n\r\n function parseMilliseconds(value) {\r\n return value ? parseFloat('0' + value) * 1000 : 0;\r\n }\r\n\r\n if ((match = value.match(System.TimeSpan.timeSpanWithDays))) {\r\n var ts = new System.TimeSpan(match[2], match[3], match[4], match[5], parseMilliseconds(match[6]));\r\n\r\n return match[1] ? new System.TimeSpan(ts.ticks.neg()) : ts;\r\n }\r\n\r\n if ((match = value.match(System.TimeSpan.timeSpanNoDays))) {\r\n var ts = new System.TimeSpan(0, match[2], match[3], match[4], parseMilliseconds(match[5]));\r\n\r\n return match[1] ? new System.TimeSpan(ts.ticks.neg()) : ts;\r\n }\r\n\r\n return null;\r\n },\r\n\r\n tryParse: function (value, provider, result) {\r\n result.v = this.parse(value);\r\n\r\n if (result.v == null) {\r\n result.v = this.minValue;\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n },\r\n\r\n ctor: function () {\r\n this.$initialize();\r\n this.ticks = System.Int64.Zero;\r\n\r\n if (arguments.length === 1) {\r\n this.ticks = arguments[0] instanceof System.Int64 ? arguments[0] : new System.Int64(arguments[0]);\r\n } else if (arguments.length === 3) {\r\n this.ticks = new System.Int64(arguments[0]).mul(60).add(arguments[1]).mul(60).add(arguments[2]).mul(1e7);\r\n } else if (arguments.length === 4) {\r\n this.ticks = new System.Int64(arguments[0]).mul(24).add(arguments[1]).mul(60).add(arguments[2]).mul(60).add(arguments[3]).mul(1e7);\r\n } else if (arguments.length === 5) {\r\n this.ticks = new System.Int64(arguments[0]).mul(24).add(arguments[1]).mul(60).add(arguments[2]).mul(60).add(arguments[3]).mul(1e3).add(arguments[4]).mul(1e4);\r\n }\r\n },\r\n\r\n TimeToTicks: function (hour, minute, second) {\r\n var totalSeconds = System.Int64(hour).mul(\"3600\").add(System.Int64(minute).mul(\"60\")).add(System.Int64(second));\r\n return totalSeconds.mul(\"10000000\");\r\n },\r\n\r\n getTicks: function () {\r\n return this.ticks;\r\n },\r\n\r\n getDays: function () {\r\n return this.ticks.div(864e9).toNumber();\r\n },\r\n\r\n getHours: function () {\r\n return this.ticks.div(36e9).mod(24).toNumber();\r\n },\r\n\r\n getMilliseconds: function () {\r\n return this.ticks.div(1e4).mod(1e3).toNumber();\r\n },\r\n\r\n getMinutes: function () {\r\n return this.ticks.div(6e8).mod(60).toNumber();\r\n },\r\n\r\n getSeconds: function () {\r\n return this.ticks.div(1e7).mod(60).toNumber();\r\n },\r\n\r\n getTotalDays: function () {\r\n return this.ticks.toNumberDivided(864e9);\r\n },\r\n\r\n getTotalHours: function () {\r\n return this.ticks.toNumberDivided(36e9);\r\n },\r\n\r\n getTotalMilliseconds: function () {\r\n return this.ticks.toNumberDivided(1e4);\r\n },\r\n\r\n getTotalMinutes: function () {\r\n return this.ticks.toNumberDivided(6e8);\r\n },\r\n\r\n getTotalSeconds: function () {\r\n return this.ticks.toNumberDivided(1e7);\r\n },\r\n\r\n get12HourHour: function () {\r\n return (this.getHours() > 12) ? this.getHours() - 12 : (this.getHours() === 0) ? 12 : this.getHours();\r\n },\r\n\r\n add: function (ts) {\r\n return new System.TimeSpan(this.ticks.add(ts.ticks));\r\n },\r\n\r\n subtract: function (ts) {\r\n return new System.TimeSpan(this.ticks.sub(ts.ticks));\r\n },\r\n\r\n duration: function () {\r\n return new System.TimeSpan(this.ticks.abs());\r\n },\r\n\r\n negate: function () {\r\n return new System.TimeSpan(this.ticks.neg());\r\n },\r\n\r\n compareTo: function (other) {\r\n return this.ticks.compareTo(other.ticks);\r\n },\r\n\r\n equals: function (other) {\r\n return Bridge.is(other, System.TimeSpan) ? other.ticks.eq(this.ticks) : false;\r\n },\r\n\r\n equalsT: function (other) {\r\n return other.ticks.eq(this.ticks);\r\n },\r\n\r\n format: function (formatStr, provider) {\r\n return this.toString(formatStr, provider);\r\n },\r\n\r\n getHashCode: function () {\r\n return this.ticks.getHashCode();\r\n },\r\n\r\n toString: function (formatStr, provider) {\r\n var ticks = this.ticks,\r\n result = \"\",\r\n me = this,\r\n dtInfo = (provider || System.Globalization.CultureInfo.getCurrentCulture()).getFormat(System.Globalization.DateTimeFormatInfo),\r\n format = function (t, n, dir, cut) {\r\n return System.String.alignString(Math.abs(t | 0).toString(), n || 2, \"0\", dir || 2, cut || false);\r\n },\r\n isNeg = ticks < 0;\r\n\r\n if (formatStr) {\r\n return formatStr.replace(/(\\\\.|'[^']*'|\"[^\"]*\"|dd?|HH?|hh?|mm?|ss?|tt?|f{1,7}|\\:|\\/)/g,\r\n function (match, group, index) {\r\n var part = match;\r\n\r\n switch (match) {\r\n case \"d\":\r\n return me.getDays();\r\n case \"dd\":\r\n return format(me.getDays());\r\n case \"H\":\r\n return me.getHours();\r\n case \"HH\":\r\n return format(me.getHours());\r\n case \"h\":\r\n return me.get12HourHour();\r\n case \"hh\":\r\n return format(me.get12HourHour());\r\n case \"m\":\r\n return me.getMinutes();\r\n case \"mm\":\r\n return format(me.getMinutes());\r\n case \"s\":\r\n return me.getSeconds();\r\n case \"ss\":\r\n return format(me.getSeconds());\r\n case \"t\":\r\n return ((me.getHours() < 12) ? dtInfo.amDesignator : dtInfo.pmDesignator).substring(0, 1);\r\n case \"tt\":\r\n return (me.getHours() < 12) ? dtInfo.amDesignator : dtInfo.pmDesignator;\r\n case \"f\":\r\n case \"ff\":\r\n case \"fff\":\r\n case \"ffff\":\r\n case \"fffff\":\r\n case \"ffffff\":\r\n case \"fffffff\":\r\n return format(me.getMilliseconds(), match.length, 1, true);\r\n default:\r\n return match.substr(1, match.length - 1 - (match.charAt(0) !== \"\\\\\"));\r\n }\r\n }\r\n );\r\n }\r\n\r\n if (ticks.abs().gte(864e9)) {\r\n result += format(ticks.toNumberDivided(864e9), 1) + \".\";\r\n ticks = ticks.mod(864e9);\r\n }\r\n\r\n result += format(ticks.toNumberDivided(36e9)) + \":\";\r\n ticks = ticks.mod(36e9);\r\n result += format(ticks.toNumberDivided(6e8) | 0) + \":\";\r\n ticks = ticks.mod(6e8);\r\n result += format(ticks.toNumberDivided(1e7));\r\n ticks = ticks.mod(1e7);\r\n\r\n if (ticks.gt(0)) {\r\n result += \".\" + format(ticks.toNumber(), 7);\r\n }\r\n\r\n return (isNeg ? \"-\" : \"\") + result;\r\n }\r\n });\r\n\r\n Bridge.Class.addExtend(System.TimeSpan, [System.IComparable$1(System.TimeSpan), System.IEquatable$1(System.TimeSpan)]);\r\n\r\n // @source StringBuilder.js\r\n\r\n Bridge.define(\"System.Text.StringBuilder\", {\r\n ctor: function () {\r\n this.$initialize();\r\n this.buffer = [],\r\n this.capacity = 16;\r\n\r\n if (arguments.length === 1) {\r\n this.append(arguments[0]);\r\n } else if (arguments.length === 2) {\r\n this.append(arguments[0]);\r\n this.setCapacity(arguments[1]);\r\n } else if (arguments.length >= 3) {\r\n this.append(arguments[0], arguments[1], arguments[2]);\r\n if (arguments.length === 4) {\r\n this.setCapacity(arguments[3]);\r\n }\r\n }\r\n },\r\n\r\n getLength: function () {\r\n if (this.buffer.length < 2) {\r\n return this.buffer[0] ? this.buffer[0].length : 0;\r\n }\r\n\r\n var s = this.getString();\r\n\r\n return s.length;\r\n },\r\n\r\n setLength: function (value) {\r\n if (value === 0) {\r\n this.clear();\r\n } else if (value < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"value\", \"Length cannot be less than zero\");\r\n } else {\r\n var l = this.getLength();\r\n\r\n if (value === l) {\r\n return;\r\n }\r\n\r\n var delta = value - l;\r\n\r\n if (delta > 0) {\r\n this.append(\"\\0\", delta);\r\n } else {\r\n this.remove(l + delta, -delta);\r\n }\r\n }\r\n },\r\n\r\n getCapacity: function () {\r\n var length = this.getLength();\r\n\r\n return (this.capacity > length) ? this.capacity : length;\r\n },\r\n\r\n setCapacity: function (value) {\r\n var length = this.getLength();\r\n\r\n if (value > length) {\r\n this.capacity = value;\r\n }\r\n },\r\n\r\n toString: function () {\r\n var s = this.getString();\r\n\r\n if (arguments.length === 2) {\r\n var startIndex = arguments[0],\r\n length = arguments[1];\r\n\r\n this.checkLimits(s, startIndex, length);\r\n\r\n return s.substr(startIndex, length);\r\n }\r\n\r\n return s;\r\n },\r\n\r\n append: function (value) {\r\n if (value == null) {\r\n return this;\r\n }\r\n\r\n if (arguments.length === 2) {\r\n // append a char repeated count times\r\n var count = arguments[1];\r\n\r\n if (count === 0) {\r\n return this;\r\n } else if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"count\", \"cannot be less than zero\");\r\n }\r\n\r\n value = Array(count + 1).join(value).toString();\r\n } else if (arguments.length === 3) {\r\n // append a (startIndex, count) substring of value\r\n var startIndex = arguments[1],\r\n count = arguments[2];\r\n\r\n if (count === 0) {\r\n return this;\r\n }\r\n\r\n this.checkLimits(value, startIndex, count);\r\n value = value.substr(startIndex, count);\r\n }\r\n\r\n this.buffer[this.buffer.length] = value;\r\n this.clearString();\r\n\r\n return this;\r\n },\r\n\r\n appendFormat: function (format) {\r\n return this.append(System.String.format.apply(System.String, arguments));\r\n },\r\n\r\n clear: function () {\r\n this.buffer = [];\r\n this.clearString();\r\n\r\n return this;\r\n },\r\n\r\n appendLine: function () {\r\n if (arguments.length === 1) {\r\n this.append(arguments[0]);\r\n }\r\n\r\n return this.append(\"\\r\\n\");\r\n },\r\n\r\n equals: function (sb) {\r\n if (sb == null) {\r\n return false;\r\n }\r\n\r\n if (sb === this) {\r\n return true;\r\n }\r\n\r\n return this.toString() === sb.toString();\r\n },\r\n\r\n remove: function (startIndex, length) {\r\n var s = this.getString();\r\n\r\n this.checkLimits(s, startIndex, length);\r\n\r\n if (s.length === length && startIndex === 0) {\r\n // Optimization. If we are deleting everything\r\n return this.clear();\r\n }\r\n\r\n if (length > 0) {\r\n this.buffer = [];\r\n this.buffer[0] = s.substring(0, startIndex);\r\n this.buffer[1] = s.substring(startIndex + length, s.length);\r\n this.clearString();\r\n }\r\n\r\n return this;\r\n },\r\n\r\n insert: function (index, value) {\r\n if (value == null) {\r\n return this;\r\n }\r\n\r\n if (arguments.length === 3) {\r\n // insert value repeated count times\r\n var count = arguments[2];\r\n\r\n if (count === 0) {\r\n return this;\r\n } else if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"count\", \"cannot be less than zero\");\r\n }\r\n\r\n value = Array(count + 1).join(value).toString();\r\n }\r\n\r\n var s = this.getString();\r\n\r\n this.buffer = [];\r\n\r\n if (index < 1) {\r\n this.buffer[0] = value;\r\n this.buffer[1] = s;\r\n } else if (index >= s.length) {\r\n this.buffer[0] = s;\r\n this.buffer[1] = value;\r\n } else {\r\n this.buffer[0] = s.substring(0, index);\r\n this.buffer[1] = value;\r\n this.buffer[2] = s.substring(index, s.length);\r\n }\r\n\r\n this.clearString();\r\n\r\n return this;\r\n },\r\n\r\n replace: function (oldValue, newValue) {\r\n var r = new RegExp(oldValue, \"g\"),\r\n s = this.buffer.join(\"\");\r\n\r\n this.buffer = [];\r\n\r\n if (arguments.length === 4) {\r\n var startIndex = arguments[2],\r\n count = arguments[3],\r\n b = s.substr(startIndex, count);\r\n\r\n this.checkLimits(s, startIndex, count);\r\n\r\n this.buffer[0] = s.substring(0, startIndex);\r\n this.buffer[1] = b.replace(r, newValue);\r\n this.buffer[2] = s.substring(startIndex + count, s.length);\r\n } else {\r\n this.buffer[0] = s.replace(r, newValue);\r\n }\r\n\r\n this.clearString();\r\n return this;\r\n },\r\n\r\n checkLimits: function (value, startIndex, length) {\r\n if (length < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"length\", \"must be non-negative\");\r\n }\r\n\r\n if (startIndex < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"startIndex\", \"startIndex cannot be less than zero\");\r\n }\r\n\r\n if (length > value.length - startIndex) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"Index and length must refer to a location within the string\");\r\n }\r\n },\r\n\r\n clearString: function () {\r\n this.$str = null;\r\n },\r\n\r\n getString: function () {\r\n if (!this.$str) {\r\n this.$str = this.buffer.join(\"\");\r\n this.buffer = [];\r\n this.buffer[0] = this.$str;\r\n }\r\n\r\n return this.$str;\r\n },\r\n\r\n getChar: function (index) {\r\n var str = this.getString();\r\n\r\n if (index < 0 || index >= str.length) {\r\n throw new System.IndexOutOfRangeException();\r\n }\r\n\r\n return str.charCodeAt(index);\r\n },\r\n\r\n setChar: function (index, value) {\r\n var str = this.getString();\r\n\r\n if (index < 0 || index >= str.length) {\r\n throw new System.ArgumentOutOfRangeException();\r\n }\r\n\r\n value = String.fromCharCode(value);\r\n this.buffer = [];\r\n this.buffer[0] = str.substring(0, index);\r\n this.buffer[1] = value;\r\n this.buffer[2] = str.substring(index + 1, str.length);\r\n this.clearString();\r\n }\r\n });\r\n\r\n // @source BridgeRegex.js\r\n\r\n (function () {\r\n var specials = [\r\n // order matters for these\r\n \"-\"\r\n , \"[\"\r\n , \"]\"\r\n // order doesn't matter for any of these\r\n , \"/\"\r\n , \"{\"\r\n , \"}\"\r\n , \"(\"\r\n , \")\"\r\n , \"*\"\r\n , \"+\"\r\n , \"?\"\r\n , \".\"\r\n , \"\\\\\"\r\n , \"^\"\r\n , \"$\"\r\n , \"|\"\r\n ],\r\n\r\n regex = RegExp(\"[\" + specials.join(\"\\\\\") + \"]\", \"g\"),\r\n\r\n regexpEscape = function (s) {\r\n return s.replace(regex, \"\\\\$&\");\r\n };\r\n\r\n Bridge.regexpEscape = regexpEscape;\r\n })();\r\n\r\n // @source DebugAssertException.js\r\n\r\n Bridge.define(\"System.Diagnostics.Debug.DebugAssertException\", {\r\n inherits: [System.Exception],\r\n $kind: \"nested class\",\r\n ctors: {\r\n ctor: function (message, detailMessage, stackTrace) {\r\n this.$initialize();\r\n System.Exception.ctor.call(this, (message || \"\") + (\"\\n\" || \"\") + (detailMessage || \"\") + (\"\\n\" || \"\") + (stackTrace || \"\"));\r\n }\r\n }\r\n });\r\n\r\n // @source Debug.js\r\n\r\n Bridge.define(\"System.Diagnostics.Debug\", {\r\n statics: {\r\n fields: {\r\n s_lock: null,\r\n s_indentLevel: 0,\r\n s_indentSize: 0,\r\n s_needIndent: false,\r\n s_indentString: null,\r\n s_ShowAssertDialog: null,\r\n s_WriteCore: null,\r\n s_shouldWriteToStdErr: false\r\n },\r\n props: {\r\n AutoFlush: {\r\n get: function () {\r\n return true;\r\n },\r\n set: function (value) { }\r\n },\r\n IndentLevel: {\r\n get: function () {\r\n return System.Diagnostics.Debug.s_indentLevel;\r\n },\r\n set: function (value) {\r\n System.Diagnostics.Debug.s_indentLevel = value < 0 ? 0 : value;\r\n }\r\n },\r\n IndentSize: {\r\n get: function () {\r\n return System.Diagnostics.Debug.s_indentSize;\r\n },\r\n set: function (value) {\r\n System.Diagnostics.Debug.s_indentSize = value < 0 ? 0 : value;\r\n }\r\n }\r\n },\r\n ctors: {\r\n init: function () {\r\n this.s_lock = { };\r\n this.s_indentSize = 4;\r\n this.s_ShowAssertDialog = System.Diagnostics.Debug.ShowAssertDialog;\r\n this.s_WriteCore = System.Diagnostics.Debug.WriteCore;\r\n this.s_shouldWriteToStdErr = Bridge.referenceEquals(System.Environment.GetEnvironmentVariable(\"COMPlus_DebugWriteToStdErr\"), \"1\");\r\n }\r\n },\r\n methods: {\r\n Close: function () { },\r\n Flush: function () { },\r\n Indent: function () {\r\n System.Diagnostics.Debug.IndentLevel = (System.Diagnostics.Debug.IndentLevel + 1) | 0;\r\n },\r\n Unindent: function () {\r\n System.Diagnostics.Debug.IndentLevel = (System.Diagnostics.Debug.IndentLevel - 1) | 0;\r\n },\r\n Print: function (message) {\r\n System.Diagnostics.Debug.Write$2(message);\r\n },\r\n Print$1: function (format, args) {\r\n if (args === void 0) { args = []; }\r\n System.Diagnostics.Debug.Write$2(System.String.formatProvider.apply(System.String, [null, format].concat(args)));\r\n },\r\n Assert: function (condition) {\r\n System.Diagnostics.Debug.Assert$2(condition, \"\", \"\");\r\n },\r\n Assert$1: function (condition, message) {\r\n System.Diagnostics.Debug.Assert$2(condition, message, \"\");\r\n },\r\n Assert$2: function (condition, message, detailMessage) {\r\n if (!condition) {\r\n var stackTrace;\r\n\r\n try {\r\n throw System.NotImplemented.ByDesign;\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n stackTrace = \"\";\r\n }\r\n\r\n System.Diagnostics.Debug.WriteLine$2(System.Diagnostics.Debug.FormatAssert(stackTrace, message, detailMessage));\r\n System.Diagnostics.Debug.s_ShowAssertDialog(stackTrace, message, detailMessage);\r\n }\r\n },\r\n Assert$3: function (condition, message, detailMessageFormat, args) {\r\n if (args === void 0) { args = []; }\r\n System.Diagnostics.Debug.Assert$2(condition, message, System.String.format.apply(System.String, [detailMessageFormat].concat(args)));\r\n },\r\n Fail: function (message) {\r\n System.Diagnostics.Debug.Assert$2(false, message, \"\");\r\n },\r\n Fail$1: function (message, detailMessage) {\r\n System.Diagnostics.Debug.Assert$2(false, message, detailMessage);\r\n },\r\n FormatAssert: function (stackTrace, message, detailMessage) {\r\n var newLine = (System.Diagnostics.Debug.GetIndentString() || \"\") + (\"\\n\" || \"\");\r\n return \"---- DEBUG ASSERTION FAILED ----\" + (newLine || \"\") + \"---- Assert Short Message ----\" + (newLine || \"\") + (message || \"\") + (newLine || \"\") + \"---- Assert Long Message ----\" + (newLine || \"\") + (detailMessage || \"\") + (newLine || \"\") + (stackTrace || \"\");\r\n },\r\n WriteLine$2: function (message) {\r\n System.Diagnostics.Debug.Write$2((message || \"\") + (\"\\n\" || \"\"));\r\n },\r\n WriteLine: function (value) {\r\n System.Diagnostics.Debug.WriteLine$2(value != null ? Bridge.toString(value) : null);\r\n },\r\n WriteLine$1: function (value, category) {\r\n System.Diagnostics.Debug.WriteLine$4(value != null ? Bridge.toString(value) : null, category);\r\n },\r\n WriteLine$3: function (format, args) {\r\n if (args === void 0) { args = []; }\r\n System.Diagnostics.Debug.WriteLine$2(System.String.formatProvider.apply(System.String, [null, format].concat(args)));\r\n },\r\n WriteLine$4: function (message, category) {\r\n if (category == null) {\r\n System.Diagnostics.Debug.WriteLine$2(message);\r\n } else {\r\n System.Diagnostics.Debug.WriteLine$2((category || \"\") + \":\" + (message || \"\"));\r\n }\r\n },\r\n Write$2: function (message) {\r\n System.Diagnostics.Debug.s_lock;\r\n {\r\n if (message == null) {\r\n System.Diagnostics.Debug.s_WriteCore(\"\");\r\n return;\r\n }\r\n if (System.Diagnostics.Debug.s_needIndent) {\r\n message = (System.Diagnostics.Debug.GetIndentString() || \"\") + (message || \"\");\r\n System.Diagnostics.Debug.s_needIndent = false;\r\n }\r\n System.Diagnostics.Debug.s_WriteCore(message);\r\n if (System.String.endsWith(message, \"\\n\")) {\r\n System.Diagnostics.Debug.s_needIndent = true;\r\n }\r\n }\r\n },\r\n Write: function (value) {\r\n System.Diagnostics.Debug.Write$2(value != null ? Bridge.toString(value) : null);\r\n },\r\n Write$3: function (message, category) {\r\n if (category == null) {\r\n System.Diagnostics.Debug.Write$2(message);\r\n } else {\r\n System.Diagnostics.Debug.Write$2((category || \"\") + \":\" + (message || \"\"));\r\n }\r\n },\r\n Write$1: function (value, category) {\r\n System.Diagnostics.Debug.Write$3(value != null ? Bridge.toString(value) : null, category);\r\n },\r\n WriteIf$2: function (condition, message) {\r\n if (condition) {\r\n System.Diagnostics.Debug.Write$2(message);\r\n }\r\n },\r\n WriteIf: function (condition, value) {\r\n if (condition) {\r\n System.Diagnostics.Debug.Write(value);\r\n }\r\n },\r\n WriteIf$3: function (condition, message, category) {\r\n if (condition) {\r\n System.Diagnostics.Debug.Write$3(message, category);\r\n }\r\n },\r\n WriteIf$1: function (condition, value, category) {\r\n if (condition) {\r\n System.Diagnostics.Debug.Write$1(value, category);\r\n }\r\n },\r\n WriteLineIf: function (condition, value) {\r\n if (condition) {\r\n System.Diagnostics.Debug.WriteLine(value);\r\n }\r\n },\r\n WriteLineIf$1: function (condition, value, category) {\r\n if (condition) {\r\n System.Diagnostics.Debug.WriteLine$1(value, category);\r\n }\r\n },\r\n WriteLineIf$2: function (condition, message) {\r\n if (condition) {\r\n System.Diagnostics.Debug.WriteLine$2(message);\r\n }\r\n },\r\n WriteLineIf$3: function (condition, message, category) {\r\n if (condition) {\r\n System.Diagnostics.Debug.WriteLine$4(message, category);\r\n }\r\n },\r\n GetIndentString: function () {\r\n var $t;\r\n var indentCount = Bridge.Int.mul(System.Diagnostics.Debug.IndentSize, System.Diagnostics.Debug.IndentLevel);\r\n if (System.Nullable.eq((System.Diagnostics.Debug.s_indentString != null ? System.Diagnostics.Debug.s_indentString.length : null), indentCount)) {\r\n return System.Diagnostics.Debug.s_indentString;\r\n }\r\n return ($t = System.String.fromCharCount(32, indentCount), System.Diagnostics.Debug.s_indentString = $t, $t);\r\n },\r\n ShowAssertDialog: function (stackTrace, message, detailMessage) {\r\n if (System.Diagnostics.Debugger.IsAttached) {\r\n debugger;\r\n } else {\r\n var ex = new System.Diagnostics.Debug.DebugAssertException(message, detailMessage, stackTrace);\r\n System.Environment.FailFast$1(ex.Message, ex);\r\n }\r\n },\r\n WriteCore: function (message) {\r\n System.Diagnostics.Debug.WriteToDebugger(message);\r\n\r\n if (System.Diagnostics.Debug.s_shouldWriteToStdErr) {\r\n System.Diagnostics.Debug.WriteToStderr(message);\r\n }\r\n },\r\n WriteToDebugger: function (message) {\r\n if (System.Diagnostics.Debugger.IsLogging()) {\r\n System.Diagnostics.Debugger.Log(0, null, message);\r\n } else {\r\n System.Console.WriteLine(message);\r\n\r\n }\r\n },\r\n WriteToStderr: function (message) {\r\n System.Console.WriteLine(message);\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source Debugger.js\r\n\r\n Bridge.define(\"System.Diagnostics.Debugger\", {\r\n statics: {\r\n fields: {\r\n DefaultCategory: null\r\n },\r\n props: {\r\n IsAttached: {\r\n get: function () {\r\n return true;\r\n }\r\n }\r\n },\r\n methods: {\r\n IsLogging: function () {\r\n return true;\r\n },\r\n Launch: function () {\r\n return true;\r\n },\r\n Log: function (level, category, message) { },\r\n NotifyOfCrossThreadDependency: function () { }\r\n }\r\n }\r\n });\r\n\r\n // @source Diagnostics.js\r\n\r\n Bridge.define(\"System.Diagnostics.Stopwatch\", {\r\n ctor: function () {\r\n this.$initialize();\r\n this.reset();\r\n },\r\n\r\n start: function () {\r\n if (this.isRunning) {\r\n return;\r\n }\r\n\r\n this._startTime = System.Diagnostics.Stopwatch.getTimestamp();\r\n this.isRunning = true;\r\n },\r\n\r\n stop: function () {\r\n if (!this.isRunning) {\r\n return;\r\n }\r\n\r\n var endTimeStamp = System.Diagnostics.Stopwatch.getTimestamp();\r\n var elapsedThisPeriod = endTimeStamp.sub(this._startTime);\r\n this._elapsed = this._elapsed.add(elapsedThisPeriod);\r\n this.isRunning = false;\r\n },\r\n\r\n reset: function () {\r\n this._startTime = System.Int64.Zero;\r\n this._elapsed = System.Int64.Zero;\r\n this.isRunning = false;\r\n },\r\n\r\n restart: function () {\r\n this.isRunning = false;\r\n this._elapsed = System.Int64.Zero;\r\n this._startTime = System.Diagnostics.Stopwatch.getTimestamp();\r\n this.start();\r\n },\r\n\r\n ticks: function () {\r\n var timeElapsed = this._elapsed;\r\n\r\n if (this.isRunning)\r\n {\r\n var currentTimeStamp = System.Diagnostics.Stopwatch.getTimestamp();\r\n var elapsedUntilNow = currentTimeStamp.sub(this._startTime);\r\n\r\n timeElapsed = timeElapsed.add(elapsedUntilNow);\r\n }\r\n\r\n return timeElapsed;\r\n },\r\n\r\n milliseconds: function () {\r\n return this.ticks().mul(1000).div(System.Diagnostics.Stopwatch.frequency);\r\n },\r\n\r\n timeSpan: function () {\r\n return new System.TimeSpan(this.milliseconds().mul(10000));\r\n },\r\n\r\n statics: {\r\n startNew: function () {\r\n var s = new System.Diagnostics.Stopwatch();\r\n s.start();\r\n\r\n return s;\r\n }\r\n }\r\n });\r\n\r\nif (typeof window !== 'undefined' && window.performance && window.performance.now) {\r\n System.Diagnostics.Stopwatch.frequency = new System.Int64(1e6);\r\n System.Diagnostics.Stopwatch.isHighResolution = true;\r\n System.Diagnostics.Stopwatch.getTimestamp = function () {\r\n return new System.Int64(Math.round(window.performance.now() * 1000));\r\n };\r\n } else if (typeof (process) !== \"undefined\" && process.hrtime) {\r\n System.Diagnostics.Stopwatch.frequency = new System.Int64(1e9);\r\n System.Diagnostics.Stopwatch.isHighResolution = true;\r\n System.Diagnostics.Stopwatch.getTimestamp = function () {\r\n var hr = process.hrtime();\r\n return new System.Int64(hr[0]).mul(1e9).add(hr[1]);\r\n };\r\n } else {\r\n System.Diagnostics.Stopwatch.frequency = new System.Int64(1e3);\r\n System.Diagnostics.Stopwatch.isHighResolution = false;\r\n System.Diagnostics.Stopwatch.getTimestamp = function () {\r\n return new System.Int64(new Date().valueOf());\r\n };\r\n }\r\n\r\n System.Diagnostics.Contracts.Contract = {\r\n reportFailure: function (failureKind, userMessage, condition, innerException, TException) {\r\n var conditionText = condition.toString();\r\n\r\n conditionText = conditionText.substring(conditionText.indexOf(\"return\") + 7);\r\n conditionText = conditionText.substr(0, conditionText.lastIndexOf(\";\"));\r\n\r\n var failureMessage = (conditionText) ? \"Contract '\" + conditionText + \"' failed\" : \"Contract failed\",\r\n displayMessage = (userMessage) ? failureMessage + \": \" + userMessage : failureMessage;\r\n\r\n if (TException) {\r\n throw new TException(conditionText, userMessage);\r\n } else {\r\n throw new System.Diagnostics.Contracts.ContractException(failureKind, displayMessage, userMessage, conditionText, innerException);\r\n }\r\n },\r\n assert: function (failureKind, scope, condition, message) {\r\n if (!condition.call(scope)) {\r\n System.Diagnostics.Contracts.Contract.reportFailure(failureKind, message, condition, null);\r\n }\r\n },\r\n requires: function (TException, scope, condition, message) {\r\n if (!condition.call(scope)) {\r\n System.Diagnostics.Contracts.Contract.reportFailure(0, message, condition, null, TException);\r\n }\r\n },\r\n forAll: function (fromInclusive, toExclusive, predicate) {\r\n if (!predicate) {\r\n throw new System.ArgumentNullException.$ctor1(\"predicate\");\r\n }\r\n\r\n for (; fromInclusive < toExclusive; fromInclusive++) {\r\n if (!predicate(fromInclusive)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n forAll$1: function (collection, predicate) {\r\n if (!collection) {\r\n throw new System.ArgumentNullException.$ctor1(\"collection\");\r\n }\r\n\r\n if (!predicate) {\r\n throw new System.ArgumentNullException.$ctor1(\"predicate\");\r\n }\r\n\r\n var enumerator = Bridge.getEnumerator(collection);\r\n\r\n try {\r\n while (enumerator.moveNext()) {\r\n if (!predicate(enumerator.Current)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n } finally {\r\n enumerator.Dispose();\r\n }\r\n },\r\n exists: function (fromInclusive, toExclusive, predicate) {\r\n if (!predicate) {\r\n throw new System.ArgumentNullException.$ctor1(\"predicate\");\r\n }\r\n\r\n for (; fromInclusive < toExclusive; fromInclusive++) {\r\n if (predicate(fromInclusive)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n exists$1: function (collection, predicate) {\r\n if (!collection) {\r\n throw new System.ArgumentNullException.$ctor1(\"collection\");\r\n }\r\n\r\n if (!predicate) {\r\n throw new System.ArgumentNullException.$ctor1(\"predicate\");\r\n }\r\n\r\n var enumerator = Bridge.getEnumerator(collection);\r\n\r\n try {\r\n while (enumerator.moveNext()) {\r\n if (predicate(enumerator.Current)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n } finally {\r\n enumerator.Dispose();\r\n }\r\n }\r\n };\r\n\r\n Bridge.define(\"System.Diagnostics.Contracts.ContractFailureKind\", {\r\n $kind: \"enum\",\r\n $statics: {\r\n precondition: 0,\r\n postcondition: 1,\r\n postconditionOnException: 2,\r\n invarian: 3,\r\n assert: 4,\r\n assume: 5\r\n }\r\n });\r\n\r\n Bridge.define(\"System.Diagnostics.Contracts.ContractException\", {\r\n inherits: [System.Exception],\r\n\r\n config: {\r\n properties: {\r\n Kind: {\r\n get: function () {\r\n return this._kind;\r\n }\r\n },\r\n\r\n Failure: {\r\n get: function () {\r\n return this._failureMessage;\r\n }\r\n },\r\n\r\n UserMessage: {\r\n get: function () {\r\n return this._userMessage;\r\n }\r\n },\r\n\r\n Condition: {\r\n get: function () {\r\n return this._condition;\r\n }\r\n }\r\n }\r\n },\r\n\r\n ctor: function (failureKind, failureMessage, userMessage, condition, innerException) {\r\n this.$initialize();\r\n System.Exception.ctor.call(this, failureMessage, innerException);\r\n this._kind = failureKind;\r\n this._failureMessage = failureMessage || null;\r\n this._userMessage = userMessage || null;\r\n this._condition = condition || null;\r\n }\r\n });\r\n\r\n // @source Array.js\r\n\r\n var array = {\r\n toIndex: function (arr, indices) {\r\n if (indices.length !== (arr.$s ? arr.$s.length : 1)) {\r\n throw new System.ArgumentException.$ctor1(\"Invalid number of indices\");\r\n }\r\n\r\n if (indices[0] < 0 || indices[0] >= (arr.$s ? arr.$s[0] : arr.length)) {\r\n throw new System.IndexOutOfRangeException.$ctor1(\"Index 0 out of range\");\r\n }\r\n\r\n var idx = indices[0],\r\n i;\r\n\r\n if (arr.$s) {\r\n for (i = 1; i < arr.$s.length; i++) {\r\n if (indices[i] < 0 || indices[i] >= arr.$s[i]) {\r\n throw new System.IndexOutOfRangeException.$ctor1(\"Index \" + i + \" out of range\");\r\n }\r\n\r\n idx = idx * arr.$s[i] + indices[i];\r\n }\r\n }\r\n\r\n return idx;\r\n },\r\n\r\n index: function (index, arr) {\r\n if (index < 0 || index >= arr.length) {\r\n throw new System.IndexOutOfRangeException();\r\n }\r\n return index;\r\n },\r\n\r\n $get: function (indices) {\r\n var r = this[System.Array.toIndex(this, indices)];\r\n\r\n return typeof r !== \"undefined\" ? r : this.$v;\r\n },\r\n\r\n get: function (arr) {\r\n if (arguments.length < 2) {\r\n throw new System.ArgumentNullException.$ctor1(\"indices\");\r\n }\r\n\r\n var idx = Array.prototype.slice.call(arguments, 1);\r\n\r\n for (var i = 0; i < idx.length; i++) {\r\n if (!Bridge.hasValue(idx[i])) {\r\n throw new System.ArgumentNullException.$ctor1(\"indices\");\r\n }\r\n }\r\n\r\n var r = arr[System.Array.toIndex(arr, idx)];\r\n\r\n return typeof r !== \"undefined\" ? r : arr.$v;\r\n },\r\n\r\n $set: function (indices, value) {\r\n this[System.Array.toIndex(this, indices)] = value;\r\n },\r\n\r\n set: function (arr, value) {\r\n var indices = Array.prototype.slice.call(arguments, 2);\r\n\r\n arr[System.Array.toIndex(arr, indices)] = value;\r\n },\r\n\r\n getLength: function (arr, dimension) {\r\n if (dimension < 0 || dimension >= (arr.$s ? arr.$s.length : 1)) {\r\n throw new System.IndexOutOfRangeException();\r\n }\r\n\r\n return arr.$s ? arr.$s[dimension] : arr.length;\r\n },\r\n\r\n getRank: function (arr) {\r\n return arr.$type ? arr.$type.$rank : (arr.$s ? arr.$s.length : 1);\r\n },\r\n\r\n getLower: function (arr, d) {\r\n System.Array.getLength(arr, d);\r\n\r\n return 0;\r\n },\r\n\r\n create: function (defvalue, initValues, T, sizes) {\r\n if (sizes === null) {\r\n throw new System.ArgumentNullException.$ctor1(\"length\");\r\n }\r\n\r\n var arr = [],\r\n length = arguments.length > 3 ? 1 : 0,\r\n i, s, v, j,\r\n idx,\r\n indices,\r\n flatIdx;\r\n\r\n arr.$v = defvalue;\r\n arr.$s = [];\r\n arr.get = System.Array.$get;\r\n arr.set = System.Array.$set;\r\n\r\n if (sizes && Bridge.isArray(sizes)) {\r\n for (i = 0; i < sizes.length; i++) {\r\n j = sizes[i];\r\n\r\n if (isNaN(j) || j < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"length\");\r\n }\r\n\r\n length *= j;\r\n arr.$s[i] = j;\r\n }\r\n } else {\r\n for (i = 3; i < arguments.length; i++) {\r\n j = arguments[i];\r\n\r\n if (isNaN(j) || j < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"length\");\r\n }\r\n\r\n length *= j;\r\n arr.$s[i - 3] = j;\r\n }\r\n }\r\n\r\n arr.length = length;\r\n var isFn = Bridge.isFunction(defvalue);\r\n\r\n if (isFn) {\r\n var v = defvalue();\r\n\r\n if (!v || (!v.$kind && typeof v !== \"object\")) {\r\n isFn = false;\r\n defvalue = v;\r\n }\r\n }\r\n\r\n for (var k = 0; k < length; k++) {\r\n arr[k] = isFn ? defvalue() : defvalue;\r\n }\r\n\r\n if (initValues) {\r\n for (i = 0; i < arr.length; i++) {\r\n indices = [];\r\n flatIdx = i;\r\n\r\n for (s = arr.$s.length - 1; s >= 0; s--) {\r\n idx = flatIdx % arr.$s[s];\r\n indices.unshift(idx);\r\n flatIdx = Bridge.Int.div(flatIdx - idx, arr.$s[s]);\r\n }\r\n\r\n v = initValues;\r\n\r\n for (idx = 0; idx < indices.length; idx++) {\r\n v = v[indices[idx]];\r\n }\r\n\r\n arr[i] = v;\r\n }\r\n }\r\n\r\n System.Array.init(arr, T, arr.$s.length);\r\n\r\n return arr;\r\n },\r\n\r\n init: function (length, value, T, addFn) {\r\n if (length == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"length\");\r\n }\r\n\r\n if (Bridge.isArray(length)) {\r\n var elementType = value,\r\n rank = T || 1;\r\n\r\n System.Array.type(elementType, rank, length);\r\n\r\n return length;\r\n }\r\n\r\n if (isNaN(length) || length < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"length\");\r\n }\r\n\r\n var arr = new Array(length),\r\n isFn = addFn !== true && Bridge.isFunction(value);\r\n\r\n if (isFn) {\r\n var v = value();\r\n\r\n if (!v || (!v.$kind && typeof v !== \"object\")) {\r\n isFn = false;\r\n value = v;\r\n }\r\n }\r\n\r\n for (var i = 0; i < length; i++) {\r\n arr[i] = isFn ? value() : value;\r\n }\r\n\r\n return System.Array.init(arr, T, 1);\r\n },\r\n\r\n toEnumerable: function (array) {\r\n return new Bridge.ArrayEnumerable(array);\r\n },\r\n\r\n toEnumerator: function (array, T) {\r\n return new Bridge.ArrayEnumerator(array, T);\r\n },\r\n\r\n _typedArrays: {\r\n Float32Array: System.Single,\r\n Float64Array: System.Double,\r\n Int8Array: System.SByte,\r\n Int16Array: System.Int16,\r\n Int32Array: System.Int32,\r\n Uint8Array: System.Byte,\r\n Uint8ClampedArray: System.Byte,\r\n Uint16Array: System.UInt16,\r\n Uint32Array: System.UInt32\r\n },\r\n\r\n is: function (obj, type) {\r\n if (obj instanceof Bridge.ArrayEnumerator) {\r\n if ((obj.constructor === type) || (obj instanceof type) ||\r\n type === Bridge.ArrayEnumerator ||\r\n type.$$name && System.String.startsWith(type.$$name, \"System.Collections.IEnumerator\") ||\r\n type.$$name && System.String.startsWith(type.$$name, \"System.Collections.Generic.IEnumerator\")) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n if (!Bridge.isArray(obj)) {\r\n return false;\r\n }\r\n\r\n if (type.$elementType && type.$isArray) {\r\n var et = Bridge.getType(obj).$elementType;\r\n\r\n if (et) {\r\n\r\n if (Bridge.Reflection.isValueType(et) !== Bridge.Reflection.isValueType(type.$elementType)) {\r\n return false;\r\n }\r\n\r\n return System.Array.getRank(obj) === type.$rank && Bridge.Reflection.isAssignableFrom(type.$elementType, et);\r\n }\r\n\r\n type = Array;\r\n }\r\n\r\n if ((obj.constructor === type) || (obj instanceof type)) {\r\n return true;\r\n }\r\n\r\n if (type === System.Collections.IEnumerable ||\r\n type === System.Collections.ICollection ||\r\n type === System.ICloneable ||\r\n type === System.Collections.IList ||\r\n type.$$name && System.String.startsWith(type.$$name, \"System.Collections.Generic.IEnumerable$1\") ||\r\n type.$$name && System.String.startsWith(type.$$name, \"System.Collections.Generic.ICollection$1\") ||\r\n type.$$name && System.String.startsWith(type.$$name, \"System.Collections.Generic.IList$1\") ||\r\n type.$$name && System.String.startsWith(type.$$name, \"System.Collections.Generic.IReadOnlyCollection$1\") ||\r\n type.$$name && System.String.startsWith(type.$$name, \"System.Collections.Generic.IReadOnlyList$1\")) {\r\n return true;\r\n }\r\n\r\n var isTypedArray = !!System.Array._typedArrays[String.prototype.slice.call(Object.prototype.toString.call(obj), 8, -1)];\r\n\r\n if (isTypedArray && !!System.Array._typedArrays[type.name]) {\r\n return obj instanceof type;\r\n }\r\n\r\n return isTypedArray;\r\n },\r\n\r\n clone: function (arr) {\r\n var newArr;\r\n\r\n if (arr.length === 1) {\r\n newArr = [arr[0]];\r\n } else {\r\n newArr = arr.slice(0);\r\n }\r\n\r\n newArr.$type = arr.$type;\r\n newArr.$v = arr.$v;\r\n newArr.$s = arr.$s;\r\n newArr.get = System.Array.$get;\r\n newArr.set = System.Array.$set;\r\n\r\n return newArr;\r\n },\r\n\r\n getCount: function (obj, T) {\r\n var name,\r\n v;\r\n\r\n if (Bridge.isArray(obj)) {\r\n return obj.length;\r\n } else if (T && Bridge.isFunction(obj[name = \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$getCount\"])) {\r\n return obj[name]();\r\n } else if (Bridge.isFunction(obj[name = \"System$Collections$ICollection$getCount\"])) {\r\n return obj[name]();\r\n } else if (T && (v = obj[\"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$Count\"]) !== undefined) {\r\n return v;\r\n } else if ((v = obj[\"System$Collections$ICollection$Count\"]) !== undefined) {\r\n return v;\r\n } else if ((v = obj.Count) !== undefined) {\r\n return v;\r\n } else if (Bridge.isFunction(obj.getCount)) {\r\n return obj.getCount();\r\n }\r\n\r\n return 0;\r\n },\r\n\r\n getIsReadOnly: function (obj, T) {\r\n var name,\r\n v;\r\n\r\n if (Bridge.isArray(obj)) {\r\n return T ? true : false;\r\n } else if (T && Bridge.isFunction(obj[name = \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$getIsReadOnly\"])) {\r\n return obj[name]();\r\n } else if (T && (v = obj[\"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$IsReadOnly\"]) !== undefined) {\r\n return v;\r\n } else if (Bridge.isFunction(obj[name = \"System$Collections$IList$getIsReadOnly\"])) {\r\n return obj[name]();\r\n } else if ((v = obj[\"System$Collections$IList$IsReadOnly\"]) !== undefined) {\r\n return v;\r\n } else if ((v = obj.IsReadOnly) !== undefined) {\r\n return v;\r\n } else if (Bridge.isFunction(obj.getIsReadOnly)) {\r\n return obj.getIsReadOnly();\r\n }\r\n\r\n return false;\r\n },\r\n\r\n checkReadOnly: function (obj, T, msg) {\r\n if (Bridge.isArray(obj)) {\r\n if (T) {\r\n throw new System.NotSupportedException.$ctor1(msg || \"Collection was of a fixed size.\");\r\n }\r\n } else if (System.Array.getIsReadOnly(obj, T)) {\r\n throw new System.NotSupportedException.$ctor1(msg || \"Collection is read-only.\");\r\n }\r\n },\r\n\r\n add: function (obj, item, T) {\r\n var name;\r\n\r\n System.Array.checkReadOnly(obj, T);\r\n\r\n if (T) {\r\n item = System.Array.checkNewElementType(item, T);\r\n }\r\n\r\n if (T && Bridge.isFunction(obj[name = \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$add\"])) {\r\n return obj[name](item);\r\n } else if (Bridge.isFunction(obj[name = \"System$Collections$IList$add\"])) {\r\n return obj[name](item);\r\n } else if (Bridge.isFunction(obj.add)) {\r\n return obj.add(item);\r\n }\r\n\r\n return -1;\r\n },\r\n\r\n checkNewElementType: function (v, type) {\r\n var unboxed = Bridge.unbox(v, true);\r\n\r\n if (Bridge.isNumber(unboxed)) {\r\n if (type === System.Decimal) {\r\n return new System.Decimal(unboxed);\r\n }\r\n\r\n if (type === System.Int64) {\r\n return new System.Int64(unboxed);\r\n }\r\n\r\n if (type === System.UInt64) {\r\n return new System.UInt64(unboxed);\r\n }\r\n }\r\n\r\n var is = Bridge.is(v, type);\r\n\r\n if (!is) {\r\n if (v == null && Bridge.getDefaultValue(type) == null) {\r\n return null;\r\n }\r\n\r\n throw new System.ArgumentException.$ctor1(\"The value \" + unboxed + \"is not of type \" + Bridge.getTypeName(type) + \" and cannot be used in this generic collection.\");\r\n }\r\n\r\n return unboxed;\r\n },\r\n\r\n clear: function (obj, T) {\r\n var name;\r\n\r\n System.Array.checkReadOnly(obj, T, \"Collection is read-only.\");\r\n\r\n if (Bridge.isArray(obj)) {\r\n System.Array.fill(obj, T ? (T.getDefaultValue || Bridge.getDefaultValue(T)) : null, 0, obj.length);\r\n } else if (T && Bridge.isFunction(obj[name = \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$clear\"])) {\r\n obj[name]();\r\n } else if (Bridge.isFunction(obj[name = \"System$Collections$IList$clear\"])) {\r\n obj[name]();\r\n } else if (Bridge.isFunction(obj.clear)) {\r\n obj.clear();\r\n }\r\n },\r\n\r\n fill: function (dst, val, index, count) {\r\n if (!Bridge.hasValue(dst)) {\r\n throw new System.ArgumentNullException.$ctor1(\"dst\");\r\n }\r\n\r\n if (index < 0 || count < 0 || (index + count) > dst.length) {\r\n throw new System.IndexOutOfRangeException();\r\n }\r\n\r\n var isFn = Bridge.isFunction(val);\r\n\r\n if (isFn) {\r\n var v = val();\r\n\r\n if (!v || (!v.$kind && typeof v !== \"object\")) {\r\n isFn = false;\r\n val = v;\r\n }\r\n }\r\n\r\n while (--count >= 0) {\r\n dst[index + count] = isFn ? val() : val;\r\n }\r\n },\r\n\r\n copy: function (src, spos, dest, dpos, len) {\r\n if (!dest) {\r\n throw new System.ArgumentNullException.$ctor3(\"dest\", \"Value cannot be null\");\r\n }\r\n\r\n if (!src) {\r\n throw new System.ArgumentNullException.$ctor3(\"src\", \"Value cannot be null\");\r\n }\r\n\r\n if (spos < 0 || dpos < 0 || len < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"bound\", \"Number was less than the array's lower bound in the first dimension\");\r\n }\r\n\r\n if (len > (src.length - spos) || len > (dest.length - dpos)) {\r\n throw new System.ArgumentException.$ctor1(\"Destination array was not long enough. Check destIndex and length, and the array's lower bounds\");\r\n }\r\n\r\n if (spos < dpos && src === dest) {\r\n while (--len >= 0) {\r\n dest[dpos + len] = src[spos + len];\r\n }\r\n } else {\r\n for (var i = 0; i < len; i++) {\r\n dest[dpos + i] = src[spos + i];\r\n }\r\n }\r\n },\r\n\r\n copyTo: function (obj, dest, index, T) {\r\n var name;\r\n\r\n if (Bridge.isArray(obj)) {\r\n System.Array.copy(obj, 0, dest, index, obj ? obj.length : 0);\r\n } else if (Bridge.isFunction(obj.copyTo)) {\r\n obj.copyTo(dest, index);\r\n } else if (T && Bridge.isFunction(obj[name = \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$copyTo\"])) {\r\n obj[name](dest, index);\r\n } else if (Bridge.isFunction(obj[name = \"System$Collections$ICollection$copyTo\"])) {\r\n obj[name](dest, index);\r\n } else {\r\n throw new System.NotImplementedException.$ctor1(\"copyTo\");\r\n }\r\n },\r\n\r\n indexOf: function (arr, item, startIndex, count, T) {\r\n var name;\r\n\r\n if (Bridge.isArray(arr)) {\r\n var i,\r\n el,\r\n endIndex;\r\n\r\n startIndex = startIndex || 0;\r\n count = Bridge.isNumber(count) ? count : arr.length;\r\n endIndex = startIndex + count;\r\n\r\n for (i = startIndex; i < endIndex; i++) {\r\n el = arr[i];\r\n\r\n if (el === item || System.Collections.Generic.EqualityComparer$1.$default.equals2(el, item)) {\r\n return i;\r\n }\r\n }\r\n } else if (T && Bridge.isFunction(arr[name = \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(T) + \"$indexOf\"])) {\r\n return arr[name](item);\r\n } else if (Bridge.isFunction(arr[name = \"System$Collections$IList$indexOf\"])) {\r\n return arr[name](item);\r\n } else if (Bridge.isFunction(arr.indexOf)) {\r\n return arr.indexOf(item);\r\n }\r\n\r\n return -1;\r\n },\r\n\r\n contains: function (obj, item, T) {\r\n var name;\r\n\r\n if (Bridge.isArray(obj)) {\r\n return System.Array.indexOf(obj, item) > -1;\r\n } else if (T && Bridge.isFunction(obj[name = \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$contains\"])) {\r\n return obj[name](item);\r\n } else if (Bridge.isFunction(obj[name = \"System$Collections$IList$contains\"])) {\r\n return obj[name](item);\r\n } else if (Bridge.isFunction(obj.contains)) {\r\n return obj.contains(item);\r\n }\r\n\r\n return false;\r\n },\r\n\r\n remove: function (obj, item, T) {\r\n var name;\r\n\r\n System.Array.checkReadOnly(obj, T);\r\n\r\n if (Bridge.isArray(obj)) {\r\n var index = System.Array.indexOf(obj, item);\r\n\r\n if (index > -1) {\r\n obj.splice(index, 1);\r\n\r\n return true;\r\n }\r\n } else if (T && Bridge.isFunction(obj[name = \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$remove\"])) {\r\n return obj[name](item);\r\n } else if (Bridge.isFunction(obj[name = \"System$Collections$IList$remove\"])) {\r\n return obj[name](item);\r\n } else if (Bridge.isFunction(obj.remove)) {\r\n return obj.remove(item);\r\n }\r\n\r\n return false;\r\n },\r\n\r\n insert: function (obj, index, item, T) {\r\n var name;\r\n\r\n System.Array.checkReadOnly(obj, T);\r\n\r\n if (T) {\r\n item = System.Array.checkNewElementType(item, T);\r\n }\r\n\r\n if (T && Bridge.isFunction(obj[name = \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(T) + \"$insert\"])) {\r\n obj[name](index, item);\r\n } else if (Bridge.isFunction(obj[name = \"System$Collections$IList$insert\"])) {\r\n obj[name](index, item);\r\n } else if (Bridge.isFunction(obj.insert)) {\r\n obj.insert(index, item);\r\n }\r\n },\r\n\r\n removeAt: function (obj, index, T) {\r\n var name;\r\n\r\n System.Array.checkReadOnly(obj, T);\r\n\r\n if (Bridge.isArray(obj)) {\r\n obj.splice(index, 1);\r\n } else if (T && Bridge.isFunction(obj[name = \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(T) + \"$removeAt\"])) {\r\n obj[name](index);\r\n } else if (Bridge.isFunction(obj[name = \"System$Collections$IList$removeAt\"])) {\r\n obj[name](index);\r\n } else if (Bridge.isFunction(obj.removeAt)) {\r\n obj.removeAt(index);\r\n }\r\n },\r\n\r\n getItem: function (obj, idx, T) {\r\n var name,\r\n v;\r\n\r\n if (Bridge.isArray(obj)) {\r\n v = obj[idx];\r\n if (T) {\r\n return v;\r\n }\r\n\r\n return (obj.$type && (Bridge.isNumber(v) || Bridge.isBoolean(v) || Bridge.isDate(v))) ? Bridge.box(v, obj.$type.$elementType) : v;\r\n } else if (T && Bridge.isFunction(obj[name = \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(T) + \"$getItem\"])) {\r\n v = obj[name](idx);\r\n return v;\r\n } else if (Bridge.isFunction(obj.get)) {\r\n v = obj.get(idx);\r\n } else if (Bridge.isFunction(obj.getItem)) {\r\n v = obj.getItem(idx);\r\n } else if (Bridge.isFunction(obj[name = \"System$Collections$IList$$getItem\"])) {\r\n v = obj[name](idx);\r\n } else if (Bridge.isFunction(obj.get_Item)) {\r\n v = obj.get_Item(idx);\r\n }\r\n\r\n return T && Bridge.getDefaultValue(T) != null ? Bridge.box(v, T) : v;\r\n },\r\n\r\n setItem: function (obj, idx, value, T) {\r\n var name;\r\n\r\n if (Bridge.isArray(obj)) {\r\n if (obj.$type) {\r\n value = System.Array.checkElementType(value, obj.$type.$elementType);\r\n }\r\n\r\n obj[idx] = value;\r\n } else {\r\n if (T) {\r\n value = System.Array.checkElementType(value, T);\r\n }\r\n\r\n if (Bridge.isFunction(obj.set)) {\r\n obj.set(idx, value);\r\n } else if (Bridge.isFunction(obj.setItem)) {\r\n obj.setItem(idx, value);\r\n } else if (T && Bridge.isFunction(obj[name = \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(T) + \"$setItem\"])) {\r\n return obj[name](idx, value);\r\n } else if (T && Bridge.isFunction(obj[name = \"System$Collections$IList$setItem\"])) {\r\n return obj[name](idx, value);\r\n } else if (Bridge.isFunction(obj.set_Item)) {\r\n obj.set_Item(idx, value);\r\n }\r\n }\r\n },\r\n\r\n checkElementType: function (v, type) {\r\n var unboxed = Bridge.unbox(v, true);\r\n\r\n if (Bridge.isNumber(unboxed)) {\r\n if (type === System.Decimal) {\r\n return new System.Decimal(unboxed);\r\n }\r\n\r\n if (type === System.Int64) {\r\n return new System.Int64(unboxed);\r\n }\r\n\r\n if (type === System.UInt64) {\r\n return new System.UInt64(unboxed);\r\n }\r\n }\r\n\r\n var is = Bridge.is(v, type);\r\n\r\n if (!is) {\r\n if (v == null) {\r\n return Bridge.getDefaultValue(type);\r\n }\r\n\r\n throw new System.ArgumentException.$ctor1(\"Cannot widen from source type to target type either because the source type is a not a primitive type or the conversion cannot be accomplished.\");\r\n }\r\n\r\n return unboxed;\r\n },\r\n\r\n resize: function (arr, newSize, val, T) {\r\n if (newSize < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor3(\"newSize\", newSize, \"newSize cannot be less than 0.\");\r\n }\r\n\r\n var oldSize = 0,\r\n isFn = Bridge.isFunction(val),\r\n ref = arr.v;\r\n\r\n if (isFn) {\r\n var v = val();\r\n\r\n if (!v || (!v.$kind && typeof v !== \"object\")) {\r\n isFn = false;\r\n val = v;\r\n }\r\n }\r\n\r\n if (!ref) {\r\n ref = System.Array.init(new Array(newSize), T);\r\n } else {\r\n oldSize = ref.length;\r\n ref.length = newSize;\r\n }\r\n\r\n for (var i = oldSize; i < newSize; i++) {\r\n ref[i] = isFn ? val() : val;\r\n }\r\n\r\n ref.$s = [ref.length];\r\n\r\n arr.v = ref;\r\n },\r\n\r\n reverse: function (arr, index, length) {\r\n if (!array) {\r\n throw new System.ArgumentNullException.$ctor1(\"arr\");\r\n }\r\n\r\n if (!index && index !== 0) {\r\n index = 0;\r\n length = arr.length;\r\n }\r\n\r\n if (index < 0 || length < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4((index < 0 ? \"index\" : \"length\"), \"Non-negative number required.\");\r\n }\r\n\r\n if ((array.length - index) < length) {\r\n throw new System.ArgumentException.$ctor1(\"Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.\");\r\n }\r\n\r\n if (System.Array.getRank(arr) !== 1) {\r\n throw new System.Exception(\"Only single dimension arrays are supported here.\");\r\n }\r\n\r\n var i = index,\r\n j = index + length - 1;\r\n\r\n while (i < j) {\r\n var temp = arr[i];\r\n arr[i] = arr[j];\r\n arr[j] = temp;\r\n i++;\r\n j--;\r\n }\r\n },\r\n\r\n binarySearch: function (array, index, length, value, comparer) {\r\n if (!array) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n var lb = 0;\r\n\r\n if (index < lb || length < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(index < lb ? \"index\" : \"length\", \"Non-negative number required.\");\r\n }\r\n\r\n if (array.length - (index - lb) < length) {\r\n throw new System.ArgumentException.$ctor1(\"Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.\");\r\n }\r\n\r\n if (System.Array.getRank(array) !== 1) {\r\n throw new System.RankException.$ctor1(\"Only single dimensional arrays are supported for the requested action.\");\r\n }\r\n\r\n if (!comparer) {\r\n comparer = System.Collections.Generic.Comparer$1.$default;\r\n }\r\n\r\n var lo = index,\r\n hi = index + length - 1,\r\n i,\r\n c;\r\n\r\n while (lo <= hi) {\r\n i = lo + ((hi - lo) >> 1);\r\n\r\n try {\r\n c = System.Collections.Generic.Comparer$1.get(comparer)(array[i], value);\r\n } catch (e) {\r\n throw new System.InvalidOperationException.$ctor2(\"Failed to compare two elements in the array.\", e);\r\n }\r\n\r\n if (c === 0) {\r\n return i;\r\n }\r\n\r\n if (c < 0) {\r\n lo = i + 1;\r\n } else {\r\n hi = i - 1;\r\n }\r\n }\r\n\r\n return ~lo;\r\n },\r\n\r\n sortDict: function (keys, values, index, length, comparer) {\r\n if (!comparer) {\r\n comparer = System.Collections.Generic.Comparer$1.$default;\r\n }\r\n\r\n var list = [],\r\n fn = Bridge.fn.bind(comparer, System.Collections.Generic.Comparer$1.get(comparer));\r\n\r\n if (length == null) {\r\n length = keys.length;\r\n }\r\n\r\n for (var j = 0; j < keys.length; j++) {\r\n list.push({ key: keys[j], value: values[j] });\r\n }\r\n\r\n if (index === 0 && length === list.length) {\r\n list.sort(function (x, y) {\r\n return fn(x.key, y.key);\r\n });\r\n } else {\r\n var newarray = list.slice(index, index + length);\r\n\r\n newarray.sort(function (x, y) {\r\n return fn(x.key, y.key);\r\n });\r\n\r\n for (var i = index; i < (index + length); i++) {\r\n list[i] = newarray[i - index];\r\n }\r\n }\r\n\r\n for (var k = 0; k < list.length; k++) {\r\n keys[k] = list[k].key;\r\n values[k] = list[k].value;\r\n }\r\n },\r\n\r\n sort: function (array, index, length, comparer) {\r\n if (!array) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n if (arguments.length === 2 && typeof index === \"function\") {\r\n array.sort(index);\r\n return;\r\n }\r\n\r\n if (arguments.length === 2 && typeof index === \"object\") {\r\n comparer = index;\r\n index = null;\r\n }\r\n\r\n if (!Bridge.isNumber(index)) {\r\n index = 0;\r\n }\r\n\r\n if (!Bridge.isNumber(length)) {\r\n length = array.length;\r\n }\r\n\r\n if (!comparer) {\r\n comparer = System.Collections.Generic.Comparer$1.$default;\r\n }\r\n\r\n if (index === 0 && length === array.length) {\r\n array.sort(Bridge.fn.bind(comparer, System.Collections.Generic.Comparer$1.get(comparer)));\r\n } else {\r\n var newarray = array.slice(index, index + length);\r\n\r\n newarray.sort(Bridge.fn.bind(comparer, System.Collections.Generic.Comparer$1.get(comparer)));\r\n\r\n for (var i = index; i < (index + length) ; i++) {\r\n array[i] = newarray[i - index];\r\n }\r\n }\r\n },\r\n\r\n min: function (arr, minValue) {\r\n var min = arr[0],\r\n len = arr.length;\r\n\r\n for (var i = 0; i < len; i++) {\r\n if ((arr[i] < min || min < minValue) && !(arr[i] < minValue)) {\r\n min = arr[i];\r\n }\r\n }\r\n\r\n return min;\r\n },\r\n\r\n max: function (arr, maxValue) {\r\n var max = arr[0],\r\n len = arr.length;\r\n\r\n for (var i = 0; i < len; i++) {\r\n if ((arr[i] > max || max > maxValue) && !(arr[i] > maxValue)) {\r\n max = arr[i];\r\n }\r\n }\r\n\r\n return max;\r\n },\r\n\r\n addRange: function (arr, items) {\r\n if (Bridge.isArray(items)) {\r\n arr.push.apply(arr, items);\r\n } else {\r\n var e = Bridge.getEnumerator(items);\r\n\r\n try {\r\n while (e.moveNext()) {\r\n arr.push(e.Current);\r\n }\r\n } finally {\r\n if (Bridge.is(e, System.IDisposable)) {\r\n e.Dispose();\r\n }\r\n }\r\n }\r\n },\r\n\r\n convertAll: function (array, converter) {\r\n if (!Bridge.hasValue(array)) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n if (!Bridge.hasValue(converter)) {\r\n throw new System.ArgumentNullException.$ctor1(\"converter\");\r\n }\r\n\r\n var array2 = array.map(converter);\r\n\r\n return array2;\r\n },\r\n\r\n find: function (T, array, match) {\r\n if (!Bridge.hasValue(array)) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n if (!Bridge.hasValue(match)) {\r\n throw new System.ArgumentNullException.$ctor1(\"match\");\r\n }\r\n\r\n for (var i = 0; i < array.length; i++) {\r\n if (match(array[i])) {\r\n return array[i];\r\n }\r\n }\r\n\r\n return Bridge.getDefaultValue(T);\r\n },\r\n\r\n findAll: function (array, match) {\r\n if (!Bridge.hasValue(array)) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n if (!Bridge.hasValue(match)) {\r\n throw new System.ArgumentNullException.$ctor1(\"match\");\r\n }\r\n\r\n var list = [];\r\n\r\n for (var i = 0; i < array.length; i++) {\r\n if (match(array[i])) {\r\n list.push(array[i]);\r\n }\r\n }\r\n\r\n return list;\r\n },\r\n\r\n findIndex: function (array, startIndex, count, match) {\r\n if (!Bridge.hasValue(array)) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n if (arguments.length === 2) {\r\n match = startIndex;\r\n startIndex = 0;\r\n count = array.length;\r\n } else if (arguments.length === 3) {\r\n match = count;\r\n count = array.length - startIndex;\r\n }\r\n\r\n if (startIndex < 0 || startIndex > array.length) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"startIndex\");\r\n }\r\n\r\n if (count < 0 || startIndex > array.length - count) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n\r\n if (!Bridge.hasValue(match)) {\r\n throw new System.ArgumentNullException.$ctor1(\"match\");\r\n }\r\n\r\n var endIndex = startIndex + count;\r\n\r\n for (var i = startIndex; i < endIndex; i++) {\r\n if (match(array[i])) {\r\n return i;\r\n }\r\n }\r\n\r\n return -1;\r\n },\r\n\r\n findLast: function (T, array, match) {\r\n if (!Bridge.hasValue(array)) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n if (!Bridge.hasValue(match)) {\r\n throw new System.ArgumentNullException.$ctor1(\"match\");\r\n }\r\n\r\n for (var i = array.length - 1; i >= 0; i--) {\r\n if (match(array[i])) {\r\n return array[i];\r\n }\r\n }\r\n\r\n return Bridge.getDefaultValue(T);\r\n },\r\n\r\n findLastIndex: function (array, startIndex, count, match) {\r\n if (!Bridge.hasValue(array)) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n if (arguments.length === 2) {\r\n match = startIndex;\r\n startIndex = array.length - 1;\r\n count = array.length;\r\n } else if (arguments.length === 3) {\r\n match = count;\r\n count = startIndex + 1;\r\n }\r\n\r\n if (!Bridge.hasValue(match)) {\r\n throw new System.ArgumentNullException.$ctor1(\"match\");\r\n }\r\n\r\n if (array.length === 0) {\r\n if (startIndex !== -1) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"startIndex\");\r\n }\r\n } else {\r\n if (startIndex < 0 || startIndex >= array.length) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"startIndex\");\r\n }\r\n }\r\n\r\n if (count < 0 || startIndex - count + 1 < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n\r\n var endIndex = startIndex - count;\r\n\r\n for (var i = startIndex; i > endIndex; i--) {\r\n if (match(array[i])) {\r\n return i;\r\n }\r\n }\r\n\r\n return -1;\r\n },\r\n\r\n forEach: function (array, action) {\r\n if (!Bridge.hasValue(array)) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n if (!Bridge.hasValue(action)) {\r\n throw new System.ArgumentNullException.$ctor1(\"action\");\r\n }\r\n\r\n for (var i = 0; i < array.length; i++) {\r\n action(array[i], i, array);\r\n }\r\n },\r\n\r\n indexOfT: function (array, value, startIndex, count) {\r\n if (!Bridge.hasValue(array)) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n if (arguments.length === 2) {\r\n startIndex = 0;\r\n count = array.length;\r\n } else if (arguments.length === 3) {\r\n count = array.length - startIndex;\r\n }\r\n\r\n if (startIndex < 0 || (startIndex >= array.length && array.length > 0)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"startIndex\", \"out of range\");\r\n }\r\n\r\n if (count < 0 || count > array.length - startIndex) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"count\", \"out of range\");\r\n }\r\n\r\n return System.Array.indexOf(array, value, startIndex, count);\r\n },\r\n\r\n isFixedSize: function (array) {\r\n if (Bridge.isArray(array)) {\r\n return true;\r\n } else if (array[\"System$Collections$IList$isFixedSize\"] != null) {\r\n return array[\"System$Collections$IList$isFixedSize\"];\r\n } else if(array[\"System$Collections$IList$IsFixedSize\"] != null) {\r\n return array[\"System$Collections$IList$IsFixedSize\"];\r\n } else if (array.isFixedSize != null) {\r\n return array.isFixedSize;\r\n } else if (array.IsFixedSize != null) {\r\n return array.IsFixedSize;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n isSynchronized: function (array) {\r\n return false;\r\n },\r\n\r\n lastIndexOfT: function (array, value, startIndex, count) {\r\n if (!Bridge.hasValue(array)) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n if (arguments.length === 2) {\r\n startIndex = array.length - 1;\r\n count = array.length;\r\n } else if (arguments.length === 3) {\r\n count = (array.length === 0) ? 0 : (startIndex + 1);\r\n }\r\n\r\n if (startIndex < 0 || (startIndex >= array.length && array.length > 0)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"startIndex\", \"out of range\");\r\n }\r\n\r\n if (count < 0 || startIndex - count + 1 < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"count\", \"out of range\");\r\n }\r\n\r\n var endIndex = startIndex - count + 1;\r\n\r\n for (var i = startIndex; i >= endIndex; i--) {\r\n var el = array[i];\r\n\r\n if (el === value || System.Collections.Generic.EqualityComparer$1.$default.equals2(el, value)) {\r\n return i;\r\n }\r\n }\r\n\r\n return -1;\r\n },\r\n\r\n syncRoot: function (array) {\r\n return array;\r\n },\r\n\r\n trueForAll: function (array, match) {\r\n if (!Bridge.hasValue(array)) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n if (!Bridge.hasValue(match)) {\r\n throw new System.ArgumentNullException.$ctor1(\"match\");\r\n }\r\n\r\n for (var i = 0; i < array.length; i++) {\r\n if (!match(array[i])) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n\r\n type: function (t, rank, arr) {\r\n rank = rank || 1;\r\n\r\n var typeCache = System.Array.$cache[rank],\r\n result,\r\n name;\r\n\r\n if (!typeCache) {\r\n typeCache = [];\r\n System.Array.$cache[rank] = typeCache;\r\n }\r\n\r\n for (var i = 0; i < typeCache.length; i++) {\r\n if (typeCache[i].$elementType === t) {\r\n result = typeCache[i];\r\n break;\r\n }\r\n }\r\n\r\n if (!result) {\r\n name = Bridge.getTypeName(t) + \"[\" + System.String.fromCharCount(\",\".charCodeAt(0), rank - 1) + \"]\";\r\n\r\n var old = Bridge.Class.staticInitAllow;\r\n\r\n result = Bridge.define(name, {\r\n $inherits: [System.Array, System.Collections.ICollection, System.ICloneable, System.Collections.Generic.IList$1(t), System.Collections.Generic.IReadOnlyCollection$1(t)],\r\n $noRegister: true,\r\n statics: {\r\n $elementType: t,\r\n $rank: rank,\r\n $isArray: true,\r\n $is: function (obj) {\r\n return System.Array.is(obj, this);\r\n },\r\n getDefaultValue: function () {\r\n return null;\r\n },\r\n createInstance: function () {\r\n var arr;\r\n\r\n if (this.$rank === 1) {\r\n arr = [];\r\n } else {\r\n var args = [Bridge.getDefaultValue(this.$elementType), null, this.$elementType];\r\n\r\n for (var j = 0; j < this.$rank; j++) {\r\n args.push(0);\r\n }\r\n\r\n arr = System.Array.create.apply(System.Array, args);\r\n }\r\n\r\n arr.$type = this;\r\n\r\n return arr;\r\n }\r\n }\r\n });\r\n\r\n typeCache.push(result);\r\n\r\n Bridge.Class.staticInitAllow = true;\r\n\r\n if (result.$staticInit) {\r\n result.$staticInit();\r\n }\r\n\r\n Bridge.Class.staticInitAllow = old;\r\n }\r\n\r\n if (arr) {\r\n arr.$type = result;\r\n }\r\n\r\n return arr || result;\r\n },\r\n getLongLength: function (array) {\r\n return System.Int64(array.length);\r\n }\r\n };\r\n\r\n Bridge.define(\"System.Array\", {\r\n statics: array\r\n });\r\n\r\n System.Array.$cache = {};\r\n\r\n // @source ArraySegment.js\r\n\r\n Bridge.define(\"System.ArraySegment\", {\r\n $kind: \"struct\",\r\n\r\n statics: {\r\n getDefaultValue: function () {\r\n return new System.ArraySegment();\r\n }\r\n },\r\n\r\n ctor: function (array, offset, count) {\r\n this.$initialize();\r\n\r\n if (arguments.length === 0) {\r\n this.array = null;\r\n this.offset = 0;\r\n this.count = 0;\r\n\r\n return;\r\n }\r\n\r\n if (array == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n this.array = array;\r\n\r\n if (Bridge.isNumber(offset)) {\r\n if (offset < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"offset\");\r\n }\r\n\r\n this.offset = offset;\r\n } else {\r\n this.offset = 0;\r\n }\r\n\r\n if (Bridge.isNumber(count)) {\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n\r\n this.count = count;\r\n } else {\r\n this.count = array.length;\r\n }\r\n\r\n if (array.length - this.offset < this.count) {\r\n throw new ArgumentException();\r\n }\r\n },\r\n\r\n getArray: function () {\r\n return this.array;\r\n },\r\n\r\n getCount: function () {\r\n return this.count;\r\n },\r\n\r\n getOffset: function () {\r\n return this.offset;\r\n },\r\n\r\n getHashCode: function () {\r\n var h = Bridge.addHash([5322976039, this.array, this.count, this.offset]);\r\n\r\n return h;\r\n },\r\n\r\n equals: function (o) {\r\n if (!Bridge.is(o, System.ArraySegment)) {\r\n return false;\r\n }\r\n\r\n return Bridge.equals(this.array, o.array) && Bridge.equals(this.count, o.count) && Bridge.equals(this.offset, o.offset);\r\n },\r\n\r\n $clone: function (to) { return this; }\r\n });\r\n\r\n // @source Interfaces.js\r\n\r\n Bridge.define(\"System.Collections.IEnumerable\", {\r\n $kind: \"interface\"\r\n });\r\n Bridge.define(\"System.Collections.ICollection\", {\r\n inherits: [System.Collections.IEnumerable],\r\n $kind: \"interface\"\r\n });\r\n Bridge.define(\"System.Collections.IList\", {\r\n inherits: [System.Collections.ICollection],\r\n $kind: \"interface\"\r\n });\r\n Bridge.define(\"System.Collections.IDictionary\", {\r\n inherits: [System.Collections.ICollection],\r\n $kind: \"interface\"\r\n });\r\n\r\n Bridge.define(\"System.Collections.Generic.IEnumerable$1\", function (T) {\r\n return {\r\n inherits: [System.Collections.IEnumerable],\r\n $kind: \"interface\",\r\n $variance: [1]\r\n };\r\n });\r\n\r\n Bridge.define(\"System.Collections.Generic.ICollection$1\", function (T) {\r\n return {\r\n inherits: [System.Collections.Generic.IEnumerable$1(T)],\r\n $kind: \"interface\"\r\n };\r\n });\r\n\r\n Bridge.define(\"System.Collections.Generic.IEqualityComparer$1\", function (T) {\r\n return {\r\n $kind: \"interface\",\r\n $variance: [2]\r\n };\r\n });\r\n\r\n Bridge.define(\"System.Collections.Generic.IDictionary$2\", function (TKey, TValue) {\r\n return {\r\n inherits: [System.Collections.Generic.ICollection$1(System.Collections.Generic.KeyValuePair$2(TKey, TValue))],\r\n $kind: \"interface\"\r\n };\r\n });\r\n\r\n Bridge.define(\"System.Collections.Generic.IList$1\", function (T) {\r\n return {\r\n inherits: [System.Collections.Generic.ICollection$1(T)],\r\n $kind: \"interface\"\r\n };\r\n });\r\n\r\n Bridge.define(\"System.Collections.Generic.ISet$1\", function (T) {\r\n return {\r\n inherits: [System.Collections.Generic.ICollection$1(T)],\r\n $kind: \"interface\"\r\n };\r\n });\r\n\r\n Bridge.define(\"System.Collections.Generic.IReadOnlyCollection$1\", function (T) {\r\n return {\r\n inherits: [System.Collections.Generic.IEnumerable$1(T)],\r\n $kind: \"interface\"\r\n };\r\n });\r\n\r\n Bridge.define(\"System.Collections.Generic.IReadOnlyList$1\", function (T) {\r\n return {\r\n inherits: [System.Collections.Generic.IReadOnlyCollection$1(T)],\r\n $kind: \"interface\",\r\n $variance: [1]\r\n };\r\n });\r\n\r\n Bridge.define(\"System.Collections.Generic.IReadOnlyDictionary$2\", function (TKey, TValue) {\r\n return {\r\n inherits: [System.Collections.Generic.IReadOnlyCollection$1(System.Collections.Generic.KeyValuePair$2(TKey, TValue))],\r\n $kind: \"interface\"\r\n };\r\n });\r\n\r\n // @source String.js\r\n\r\n Bridge.define(\"System.String\", {\r\n inherits: [System.IComparable, System.ICloneable, System.Collections.IEnumerable, System.Collections.Generic.IEnumerable$1(System.Char)],\r\n\r\n statics: {\r\n $is: function (instance) {\r\n return typeof (instance) === \"string\";\r\n },\r\n\r\n charCodeAt: function (str, idx) {\r\n idx = idx || 0;\r\n\r\n var code = str.charCodeAt(idx),\r\n hi,\r\n low;\r\n\r\n if (0xD800 <= code && code <= 0xDBFF) {\r\n hi = code;\r\n low = str.charCodeAt(idx + 1);\r\n\r\n if (isNaN(low)) {\r\n throw new System.Exception(\"High surrogate not followed by low surrogate\");\r\n }\r\n\r\n return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;\r\n }\r\n\r\n if (0xDC00 <= code && code <= 0xDFFF) {\r\n return false;\r\n }\r\n\r\n return code;\r\n },\r\n\r\n fromCharCode: function (codePt) {\r\n if (codePt > 0xFFFF) {\r\n codePt -= 0x10000;\r\n\r\n return String.fromCharCode(0xD800 + (codePt >> 10), 0xDC00 + (codePt & 0x3FF));\r\n }\r\n\r\n return String.fromCharCode(codePt);\r\n },\r\n\r\n fromCharArray: function (chars, startIndex, length) {\r\n if (chars == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"chars\");\r\n }\r\n\r\n if (startIndex < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"startIndex\");\r\n }\r\n\r\n if (length < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"length\");\r\n }\r\n\r\n if (chars.length - startIndex < length) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"startIndex\");\r\n }\r\n\r\n var result = \"\";\r\n\r\n startIndex = startIndex || 0;\r\n length = Bridge.isNumber(length) ? length : chars.length;\r\n\r\n if ((startIndex + length) > chars.length) {\r\n length = chars.length - startIndex;\r\n }\r\n\r\n for (var i = 0; i < length; i++) {\r\n var ch = chars[i + startIndex] | 0;\r\n\r\n result += String.fromCharCode(ch);\r\n }\r\n\r\n return result;\r\n },\r\n\r\n lastIndexOf: function (s, search, startIndex, count) {\r\n var index = s.lastIndexOf(search, startIndex);\r\n\r\n return (index < (startIndex - count + 1)) ? -1 : index;\r\n },\r\n\r\n lastIndexOfAny: function (s, chars, startIndex, count) {\r\n var length = s.length;\r\n\r\n if (!length) {\r\n return -1;\r\n }\r\n\r\n chars = String.fromCharCode.apply(null, chars);\r\n startIndex = startIndex || length - 1;\r\n count = count || length;\r\n\r\n var endIndex = startIndex - count + 1;\r\n\r\n if (endIndex < 0) {\r\n endIndex = 0;\r\n }\r\n\r\n for (var i = startIndex; i >= endIndex; i--) {\r\n if (chars.indexOf(s.charAt(i)) >= 0) {\r\n return i;\r\n }\r\n }\r\n\r\n return -1;\r\n },\r\n\r\n isNullOrWhiteSpace: function (s) {\r\n if (!s) {\r\n return true;\r\n }\r\n\r\n return System.Char.isWhiteSpace(s);\r\n },\r\n\r\n isNullOrEmpty: function (s) {\r\n return !s;\r\n },\r\n\r\n fromCharCount: function (c, count) {\r\n if (count >= 0) {\r\n return String(Array(count + 1).join(String.fromCharCode(c)));\r\n } else {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"count\", \"cannot be less than zero\");\r\n }\r\n },\r\n\r\n format: function (format, args) {\r\n return System.String._format(System.Globalization.CultureInfo.getCurrentCulture(), format, Array.isArray(args) && arguments.length == 2 ? args : Array.prototype.slice.call(arguments, 1));\r\n },\r\n\r\n formatProvider: function (provider, format, args) {\r\n return System.String._format(provider, format, Array.isArray(args) && arguments.length == 3 ? args : Array.prototype.slice.call(arguments, 2));\r\n },\r\n\r\n _format: function (provider, format, args) {\r\n if (format == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"format\");\r\n }\r\n\r\n var reverse = function (s) {\r\n return s.split(\"\").reverse().join(\"\");\r\n };\r\n\r\n format = reverse(reverse(format.replace(/\\{\\{/g, function (m) {\r\n return String.fromCharCode(1, 1);\r\n })).replace(/\\}\\}/g, function (m) {\r\n return String.fromCharCode(2, 2);\r\n }));\r\n\r\n var me = this,\r\n _formatRe = /(\\{+)((\\d+|[a-zA-Z_$]\\w+(?:\\.[a-zA-Z_$]\\w+|\\[\\d+\\])*)(?:\\,(-?\\d*))?(?:\\:([^\\}]*))?)(\\}+)|(\\{+)|(\\}+)/g,\r\n fn = this.decodeBraceSequence;\r\n\r\n format = format.replace(_formatRe, function (m, openBrace, elementContent, index, align, format, closeBrace, repeatOpenBrace, repeatCloseBrace) {\r\n if (repeatOpenBrace) {\r\n return fn(repeatOpenBrace);\r\n }\r\n\r\n if (repeatCloseBrace) {\r\n return fn(repeatCloseBrace);\r\n }\r\n\r\n if (openBrace.length % 2 === 0 || closeBrace.length % 2 === 0) {\r\n return fn(openBrace) + elementContent + fn(closeBrace);\r\n }\r\n\r\n return fn(openBrace, true) + me.handleElement(provider, index, align, format, args) + fn(closeBrace, true);\r\n });\r\n\r\n return format.replace(/(\\x01\\x01)|(\\x02\\x02)/g, function (m) {\r\n if (m == String.fromCharCode(1, 1)) {\r\n return \"{\";\r\n }\r\n\r\n if (m == String.fromCharCode(2, 2)) {\r\n return \"}\";\r\n }\r\n });\r\n },\r\n\r\n handleElement: function (provider, index, alignment, formatStr, args) {\r\n var value;\r\n\r\n index = parseInt(index, 10);\r\n\r\n if (index > args.length - 1) {\r\n throw new System.FormatException.$ctor1(\"Input string was not in a correct format.\");\r\n }\r\n\r\n value = args[index];\r\n\r\n if (value == null) {\r\n value = \"\";\r\n }\r\n\r\n if (formatStr && value.$boxed && value.type.$kind === \"enum\") {\r\n value = System.Enum.format(value.type, value.v, formatStr);\r\n } else if (formatStr && value.$boxed && value.type.format) {\r\n value = value.type.format(Bridge.unbox(value, true), formatStr, provider);\r\n } else if (formatStr && Bridge.is(value, System.IFormattable)) {\r\n value = Bridge.format(Bridge.unbox(value, true), formatStr, provider);\r\n } if (Bridge.isNumber(value)) {\r\n value = Bridge.Int.format(value, formatStr, provider);\r\n } else if (Bridge.isDate(value)) {\r\n value = System.DateTime.format(value, formatStr, provider);\r\n } else {\r\n value = \"\" + Bridge.toString(value);\r\n }\r\n\r\n if (alignment) {\r\n alignment = parseInt(alignment, 10);\r\n\r\n if (!Bridge.isNumber(alignment)) {\r\n alignment = null;\r\n }\r\n }\r\n\r\n return System.String.alignString(Bridge.toString(value), alignment);\r\n },\r\n\r\n decodeBraceSequence: function (braces, remove) {\r\n return braces.substr(0, (braces.length + (remove ? 0 : 1)) / 2);\r\n },\r\n\r\n alignString: function (str, alignment, pad, dir, cut) {\r\n if (str == null || !alignment) {\r\n return str;\r\n }\r\n\r\n if (!pad) {\r\n pad = \" \";\r\n }\r\n\r\n if (Bridge.isNumber(pad)) {\r\n pad = String.fromCharCode(pad);\r\n }\r\n\r\n if (!dir) {\r\n dir = alignment < 0 ? 1 : 2;\r\n }\r\n\r\n alignment = Math.abs(alignment);\r\n\r\n if (cut && (str.length > alignment)) {\r\n str = str.substring(0, alignment);\r\n }\r\n\r\n if (alignment + 1 >= str.length) {\r\n switch (dir) {\r\n case 2:\r\n str = Array(alignment + 1 - str.length).join(pad) + str;\r\n break;\r\n\r\n case 3:\r\n var padlen = alignment - str.length,\r\n right = Math.ceil(padlen / 2),\r\n left = padlen - right;\r\n\r\n str = Array(left + 1).join(pad) + str + Array(right + 1).join(pad);\r\n break;\r\n\r\n case 1:\r\n default:\r\n str = str + Array(alignment + 1 - str.length).join(pad);\r\n break;\r\n }\r\n }\r\n\r\n return str;\r\n },\r\n\r\n startsWith: function (str, prefix) {\r\n if (!prefix.length) {\r\n return true;\r\n }\r\n\r\n if (prefix.length > str.length) {\r\n return false;\r\n }\r\n\r\n return System.String.equals(str.slice(0, prefix.length), prefix, arguments[2]);\r\n },\r\n\r\n endsWith: function (str, suffix) {\r\n if (!suffix.length) {\r\n return true;\r\n }\r\n\r\n if (suffix.length > str.length) {\r\n return false;\r\n }\r\n\r\n return System.String.equals(str.slice(str.length - suffix.length, str.length), suffix, arguments[2]);\r\n },\r\n\r\n contains: function (str, value) {\r\n if (value == null) {\r\n throw new System.ArgumentNullException();\r\n }\r\n\r\n if (str == null) {\r\n return false;\r\n }\r\n\r\n return str.indexOf(value) > -1;\r\n },\r\n\r\n indexOfAny: function (str, anyOf) {\r\n if (anyOf == null) {\r\n throw new System.ArgumentNullException();\r\n }\r\n\r\n if (str == null || str === \"\") {\r\n return -1;\r\n }\r\n\r\n var startIndex = (arguments.length > 2) ? arguments[2] : 0;\r\n\r\n if (startIndex < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"startIndex\", \"startIndex cannot be less than zero\");\r\n }\r\n\r\n var length = str.length - startIndex;\r\n\r\n if (arguments.length > 3 && arguments[3] != null) {\r\n length = arguments[3];\r\n }\r\n\r\n if (length < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"length\", \"must be non-negative\");\r\n }\r\n\r\n if (length > str.length - startIndex) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"length\", \"Index and length must refer to a location within the string\");\r\n }\r\n\r\n length = startIndex + length;\r\n anyOf = String.fromCharCode.apply(null, anyOf);\r\n\r\n for (var i = startIndex; i < length; i++) {\r\n if (anyOf.indexOf(str.charAt(i)) >= 0) {\r\n return i;\r\n }\r\n }\r\n\r\n return -1;\r\n },\r\n\r\n indexOf: function (str, value) {\r\n if (value == null) {\r\n throw new System.ArgumentNullException();\r\n }\r\n\r\n if (str == null || str === \"\") {\r\n return -1;\r\n }\r\n\r\n var startIndex = (arguments.length > 2) ? arguments[2] : 0;\r\n\r\n if (startIndex < 0 || startIndex > str.length) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"startIndex\", \"startIndex cannot be less than zero and must refer to a location within the string\");\r\n }\r\n\r\n if (value === \"\") {\r\n return (arguments.length > 2) ? startIndex : 0;\r\n }\r\n\r\n var length = str.length - startIndex;\r\n\r\n if (arguments.length > 3 && arguments[3] != null) {\r\n length = arguments[3];\r\n }\r\n\r\n if (length < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"length\", \"must be non-negative\");\r\n }\r\n\r\n if (length > str.length - startIndex) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"length\", \"Index and length must refer to a location within the string\");\r\n }\r\n\r\n var s = str.substr(startIndex, length),\r\n index = (arguments.length === 5 && arguments[4] % 2 !== 0) ? s.toLocaleUpperCase().indexOf(value.toLocaleUpperCase()) : s.indexOf(value);\r\n\r\n if (index > -1) {\r\n if (arguments.length === 5) {\r\n // StringComparison\r\n return (System.String.compare(value, s.substr(index, value.length), arguments[4]) === 0) ? index + startIndex : -1;\r\n } else {\r\n return index + startIndex;\r\n }\r\n }\r\n\r\n return -1;\r\n },\r\n\r\n equals: function () {\r\n return System.String.compare.apply(this, arguments) === 0;\r\n },\r\n\r\n swapCase: function (letters) {\r\n return letters.replace(/\\w/g, function (c) {\r\n if (c === c.toLowerCase()) {\r\n return c.toUpperCase();\r\n } else {\r\n return c.toLowerCase();\r\n }\r\n });\r\n },\r\n\r\n compare: function (strA, strB) {\r\n if (strA == null) {\r\n return (strB == null) ? 0 : -1;\r\n }\r\n\r\n if (strB == null) {\r\n return 1;\r\n }\r\n\r\n if (arguments.length >= 3) {\r\n if (!Bridge.isBoolean(arguments[2])) {\r\n // StringComparison\r\n switch (arguments[2]) {\r\n case 1: // CurrentCultureIgnoreCase\r\n return strA.localeCompare(strB, System.Globalization.CultureInfo.getCurrentCulture().name, {\r\n sensitivity: \"accent\"\r\n });\r\n case 2: // InvariantCulture\r\n return strA.localeCompare(strB, System.Globalization.CultureInfo.invariantCulture.name);\r\n case 3: // InvariantCultureIgnoreCase\r\n return strA.localeCompare(strB, System.Globalization.CultureInfo.invariantCulture.name, {\r\n sensitivity: \"accent\"\r\n });\r\n case 4: // Ordinal\r\n return (strA === strB) ? 0 : ((strA > strB) ? 1 : -1);\r\n case 5: // OrdinalIgnoreCase\r\n return (strA.toUpperCase() === strB.toUpperCase()) ? 0 : ((strA.toUpperCase() > strB.toUpperCase()) ? 1 : -1);\r\n case 0: // CurrentCulture\r\n default:\r\n break;\r\n }\r\n } else {\r\n // ignoreCase\r\n if (arguments[2]) {\r\n strA = strA.toLocaleUpperCase();\r\n strB = strB.toLocaleUpperCase();\r\n }\r\n\r\n if (arguments.length === 4) {\r\n // CultureInfo\r\n return strA.localeCompare(strB, arguments[3].name);\r\n }\r\n }\r\n }\r\n\r\n return strA.localeCompare(strB);\r\n },\r\n\r\n toCharArray: function (str, startIndex, length) {\r\n if (startIndex < 0 || startIndex > str.length || startIndex > str.length - length) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"startIndex\", \"startIndex cannot be less than zero and must refer to a location within the string\");\r\n }\r\n\r\n if (length < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"length\", \"must be non-negative\");\r\n }\r\n\r\n if (!Bridge.hasValue(startIndex)) {\r\n startIndex = 0;\r\n }\r\n\r\n if (!Bridge.hasValue(length)) {\r\n length = str.length;\r\n }\r\n\r\n var arr = [];\r\n\r\n for (var i = startIndex; i < startIndex + length; i++) {\r\n arr.push(str.charCodeAt(i));\r\n }\r\n\r\n return arr;\r\n },\r\n\r\n escape: function (str) {\r\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\r\n },\r\n\r\n replaceAll: function (str, a, b) {\r\n var reg = new RegExp(System.String.escape(a), \"g\");\r\n\r\n return str.replace(reg, b);\r\n },\r\n\r\n insert: function (index, strA, strB) {\r\n return index > 0 ? (strA.substring(0, index) + strB + strA.substring(index, strA.length)) : (strB + strA);\r\n },\r\n\r\n remove: function (s, index, count) {\r\n if (s == null) {\r\n throw new System.NullReferenceException();\r\n }\r\n\r\n if (index < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"startIndex\", \"StartIndex cannot be less than zero\");\r\n }\r\n\r\n if (count != null) {\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"count\", \"Count cannot be less than zero\");\r\n }\r\n\r\n if (count > s.length - index) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"count\", \"Index and count must refer to a location within the string\");\r\n }\r\n } else {\r\n if (index >= s.length) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"startIndex\", \"startIndex must be less than length of string\");\r\n }\r\n }\r\n\r\n if (count == null || ((index + count) > s.length)) {\r\n return s.substr(0, index);\r\n }\r\n\r\n return s.substr(0, index) + s.substr(index + count);\r\n },\r\n\r\n split: function (s, strings, limit, options) {\r\n var re = (!Bridge.hasValue(strings) || strings.length === 0) ? new RegExp(\"\\\\s\", \"g\") : new RegExp(strings.map(System.String.escape).join(\"|\"), \"g\"),\r\n res = [],\r\n m,\r\n i;\r\n\r\n for (i = 0; ; i = re.lastIndex) {\r\n if (m = re.exec(s)) {\r\n if (options !== 1 || m.index > i) {\r\n if (res.length === limit - 1) {\r\n res.push(s.substr(i));\r\n\r\n return res;\r\n } else {\r\n res.push(s.substring(i, m.index));\r\n }\r\n }\r\n } else {\r\n if (options !== 1 || i !== s.length) {\r\n res.push(s.substr(i));\r\n }\r\n\r\n return res;\r\n }\r\n }\r\n },\r\n\r\n trimEnd: function (str, chars) {\r\n return str.replace(chars ? new RegExp(\"[\" + System.String.escape(String.fromCharCode.apply(null, chars)) + \"]+$\") : /\\s*$/, \"\");\r\n },\r\n\r\n trimStart: function (str, chars) {\r\n return str.replace(chars ? new RegExp(\"^[\" + System.String.escape(String.fromCharCode.apply(null, chars)) + \"]+\") : /^\\s*/, \"\");\r\n },\r\n\r\n trim: function (str, chars) {\r\n return System.String.trimStart(System.String.trimEnd(str, chars), chars);\r\n },\r\n\r\n trimStartZeros: function (str) {\r\n return str.replace(new RegExp(\"^[ 0+]+(?=.)\"), \"\");\r\n },\r\n\r\n concat: function (values) {\r\n var list = (arguments.length == 1 && Array.isArray(values)) ? values : [].slice.call(arguments),\r\n s = \"\";\r\n\r\n for (var i = 0; i < list.length; i++) {\r\n s += list[i] == null ? \"\" : Bridge.toString(list[i]);\r\n }\r\n\r\n return s;\r\n },\r\n\r\n copyTo: function (str, sourceIndex, destination, destinationIndex, count) {\r\n if (destination == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"destination\");\r\n }\r\n\r\n if (str == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"str\");\r\n }\r\n\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n\r\n if (sourceIndex < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"sourceIndex\");\r\n }\r\n\r\n if (count > str.length - sourceIndex) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"sourceIndex\");\r\n }\r\n\r\n if (destinationIndex > destination.length - count || destinationIndex < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"destinationIndex\");\r\n }\r\n\r\n if (count > 0) {\r\n for (var i = 0; i < count; i++) {\r\n destination[destinationIndex + i] = str.charCodeAt(sourceIndex + i);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n Bridge.Class.addExtend(System.String, [System.IComparable$1(System.String), System.IEquatable$1(System.String)]);\r\n\r\n // @source KeyValuePair.js\r\n\r\n Bridge.define(\"System.Collections.Generic.KeyValuePair$2\", function (TKey, TValue) { return {\r\n $kind: \"struct\",\r\n statics: {\r\n methods: {\r\n getDefaultValue: function () { return new (System.Collections.Generic.KeyValuePair$2(TKey,TValue))(); }\r\n }\r\n },\r\n fields: {\r\n key$1: Bridge.getDefaultValue(TKey),\r\n value$1: Bridge.getDefaultValue(TValue)\r\n },\r\n props: {\r\n key: {\r\n get: function () {\r\n return this.key$1;\r\n }\r\n },\r\n value: {\r\n get: function () {\r\n return this.value$1;\r\n }\r\n }\r\n },\r\n ctors: {\r\n $ctor1: function (key, value) {\r\n this.$initialize();\r\n this.key$1 = key;\r\n this.value$1 = value;\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n toString: function () {\r\n var s = System.Text.StringBuilderCache.Acquire();\r\n s.append(String.fromCharCode(91));\r\n if (this.key != null) {\r\n s.append(Bridge.toString(this.key));\r\n }\r\n s.append(\", \");\r\n if (this.value != null) {\r\n s.append(Bridge.toString(this.value));\r\n }\r\n s.append(String.fromCharCode(93));\r\n return System.Text.StringBuilderCache.GetStringAndRelease(s);\r\n },\r\n Deconstruct: function (key, value) {\r\n key.v = this.key;\r\n value.v = this.value;\r\n },\r\n getHashCode: function () {\r\n var h = Bridge.addHash([5072499452, this.key$1, this.value$1]);\r\n return h;\r\n },\r\n equals: function (o) {\r\n if (!Bridge.is(o, System.Collections.Generic.KeyValuePair$2(TKey,TValue))) {\r\n return false;\r\n }\r\n return Bridge.equals(this.key$1, o.key$1) && Bridge.equals(this.value$1, o.value$1);\r\n },\r\n $clone: function (to) { return this; }\r\n }\r\n }; });\r\n\r\n // @source IEnumerator.js\r\n\r\n Bridge.define(\"System.Collections.IEnumerator\", {\r\n $kind: \"interface\"\r\n });\r\n\r\n // @source IComparer.js\r\n\r\n Bridge.define(\"System.Collections.IComparer\", {\r\n $kind: \"interface\"\r\n });\r\n\r\n // @source IDictionaryEnumerator.js\r\n\r\n Bridge.define(\"System.Collections.IDictionaryEnumerator\", {\r\n inherits: [System.Collections.IEnumerator],\r\n $kind: \"interface\"\r\n });\r\n\r\n // @source IEqualityComparer.js\r\n\r\n Bridge.define(\"System.Collections.IEqualityComparer\", {\r\n $kind: \"interface\"\r\n });\r\n\r\n // @source IStructuralComparable.js\r\n\r\n Bridge.define(\"System.Collections.IStructuralComparable\", {\r\n $kind: \"interface\"\r\n });\r\n\r\n // @source IStructuralEquatable.js\r\n\r\n Bridge.define(\"System.Collections.IStructuralEquatable\", {\r\n $kind: \"interface\"\r\n });\r\n\r\n // @source IEnumerator.js\r\n\r\n Bridge.definei(\"System.Collections.Generic.IEnumerator$1\", function (T) { return {\r\n inherits: [System.IDisposable,System.Collections.IEnumerator],\r\n $kind: \"interface\",\r\n $variance: [1]\r\n }; });\r\n\r\n // @source IComparer.js\r\n\r\n Bridge.definei(\"System.Collections.Generic.IComparer$1\", function (T) { return {\r\n $kind: \"interface\",\r\n $variance: [2]\r\n }; });\r\n\r\n // @source KeyValuePairs.js\r\n\r\n Bridge.define(\"System.Collections.KeyValuePairs\", {\r\n fields: {\r\n key: null,\r\n value: null\r\n },\r\n props: {\r\n Key: {\r\n get: function () {\r\n return this.key;\r\n }\r\n },\r\n Value: {\r\n get: function () {\r\n return this.value;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function (key, value) {\r\n this.$initialize();\r\n this.value = value;\r\n this.key = key;\r\n }\r\n }\r\n });\r\n\r\n // @source SortedList.js\r\n\r\n Bridge.define(\"System.Collections.SortedList\", {\r\n inherits: [System.Collections.IDictionary,System.ICloneable],\r\n statics: {\r\n fields: {\r\n emptyArray: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.emptyArray = System.Array.init(0, null, System.Object);\r\n }\r\n },\r\n methods: {\r\n Synchronized: function (list) {\r\n if (list == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"list\");\r\n }\r\n\r\n return new System.Collections.SortedList.SyncSortedList(list);\r\n }\r\n }\r\n },\r\n fields: {\r\n keys: null,\r\n values: null,\r\n _size: 0,\r\n version: 0,\r\n comparer: null,\r\n keyList: null,\r\n valueList: null\r\n },\r\n props: {\r\n Capacity: {\r\n get: function () {\r\n return this.keys.length;\r\n },\r\n set: function (value) {\r\n if (value < this.Count) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"value\");\r\n }\r\n\r\n if (value !== this.keys.length) {\r\n if (value > 0) {\r\n var newKeys = System.Array.init(value, null, System.Object);\r\n var newValues = System.Array.init(value, null, System.Object);\r\n if (this._size > 0) {\r\n System.Array.copy(this.keys, 0, newKeys, 0, this._size);\r\n System.Array.copy(this.values, 0, newValues, 0, this._size);\r\n }\r\n this.keys = newKeys;\r\n this.values = newValues;\r\n } else {\r\n this.keys = System.Collections.SortedList.emptyArray;\r\n this.values = System.Collections.SortedList.emptyArray;\r\n }\r\n }\r\n }\r\n },\r\n Count: {\r\n get: function () {\r\n return this._size;\r\n }\r\n },\r\n Keys: {\r\n get: function () {\r\n return this.GetKeyList();\r\n }\r\n },\r\n Values: {\r\n get: function () {\r\n return this.GetValueList();\r\n }\r\n },\r\n IsReadOnly: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n IsFixedSize: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n IsSynchronized: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n SyncRoot: {\r\n get: function () {\r\n return null;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"add\", \"System$Collections$IDictionary$add\",\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"Keys\", \"System$Collections$IDictionary$Keys\",\r\n \"Values\", \"System$Collections$IDictionary$Values\",\r\n \"IsReadOnly\", \"System$Collections$IDictionary$IsReadOnly\",\r\n \"IsFixedSize\", \"System$Collections$IDictionary$IsFixedSize\",\r\n \"IsSynchronized\", \"System$Collections$ICollection$IsSynchronized\",\r\n \"SyncRoot\", \"System$Collections$ICollection$SyncRoot\",\r\n \"clear\", \"System$Collections$IDictionary$clear\",\r\n \"clone\", \"System$ICloneable$clone\",\r\n \"contains\", \"System$Collections$IDictionary$contains\",\r\n \"copyTo\", \"System$Collections$ICollection$copyTo\",\r\n \"GetEnumerator\", \"System$Collections$IDictionary$GetEnumerator\",\r\n \"getItem\", \"System$Collections$IDictionary$getItem\",\r\n \"setItem\", \"System$Collections$IDictionary$setItem\",\r\n \"remove\", \"System$Collections$IDictionary$remove\"\r\n ],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n this.Init();\r\n },\r\n $ctor5: function (initialCapacity) {\r\n this.$initialize();\r\n if (initialCapacity < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"initialCapacity\");\r\n }\r\n\r\n this.keys = System.Array.init(initialCapacity, null, System.Object);\r\n this.values = System.Array.init(initialCapacity, null, System.Object);\r\n this.comparer = new (System.Collections.Generic.Comparer$1(Object))(System.Collections.Generic.Comparer$1.$default.fn);\r\n },\r\n $ctor1: function (comparer) {\r\n System.Collections.SortedList.ctor.call(this);\r\n if (comparer != null) {\r\n this.comparer = comparer;\r\n }\r\n },\r\n $ctor2: function (comparer, capacity) {\r\n System.Collections.SortedList.$ctor1.call(this, comparer);\r\n this.Capacity = capacity;\r\n },\r\n $ctor3: function (d) {\r\n System.Collections.SortedList.$ctor4.call(this, d, null);\r\n },\r\n $ctor4: function (d, comparer) {\r\n System.Collections.SortedList.$ctor2.call(this, comparer, (d != null ? System.Array.getCount(d) : 0));\r\n if (d == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"d\");\r\n }\r\n\r\n System.Array.copyTo(d.System$Collections$IDictionary$Keys, this.keys, 0);\r\n System.Array.copyTo(d.System$Collections$IDictionary$Values, this.values, 0);\r\n System.Array.sortDict(this.keys, this.values, 0, null, comparer);\r\n this._size = System.Array.getCount(d);\r\n }\r\n },\r\n methods: {\r\n getItem: function (key) {\r\n var i = this.IndexOfKey(key);\r\n if (i >= 0) {\r\n return this.values[System.Array.index(i, this.values)];\r\n }\r\n return null;\r\n },\r\n setItem: function (key, value) {\r\n if (key == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"key\");\r\n }\r\n\r\n var i = System.Array.binarySearch(this.keys, 0, this._size, key, this.comparer);\r\n if (i >= 0) {\r\n this.values[System.Array.index(i, this.values)] = value;\r\n this.version = (this.version + 1) | 0;\r\n return;\r\n }\r\n this.Insert(~i, key, value);\r\n },\r\n Init: function () {\r\n this.keys = System.Collections.SortedList.emptyArray;\r\n this.values = System.Collections.SortedList.emptyArray;\r\n this._size = 0;\r\n this.comparer = new (System.Collections.Generic.Comparer$1(Object))(System.Collections.Generic.Comparer$1.$default.fn);\r\n },\r\n add: function (key, value) {\r\n if (key == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"key\");\r\n }\r\n\r\n var i = System.Array.binarySearch(this.keys, 0, this._size, key, this.comparer);\r\n if (i >= 0) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n this.Insert(~i, key, value);\r\n },\r\n clear: function () {\r\n this.version = (this.version + 1) | 0;\r\n System.Array.fill(this.keys, null, 0, this._size);\r\n System.Array.fill(this.values, null, 0, this._size);\r\n this._size = 0;\r\n\r\n },\r\n clone: function () {\r\n var sl = new System.Collections.SortedList.$ctor5(this._size);\r\n System.Array.copy(this.keys, 0, sl.keys, 0, this._size);\r\n System.Array.copy(this.values, 0, sl.values, 0, this._size);\r\n sl._size = this._size;\r\n sl.version = this.version;\r\n sl.comparer = this.comparer;\r\n return sl;\r\n },\r\n contains: function (key) {\r\n return this.IndexOfKey(key) >= 0;\r\n },\r\n ContainsKey: function (key) {\r\n return this.IndexOfKey(key) >= 0;\r\n },\r\n ContainsValue: function (value) {\r\n return this.IndexOfValue(value) >= 0;\r\n },\r\n copyTo: function (array, arrayIndex) {\r\n if (array == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n if (System.Array.getRank(array) !== 1) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n if (arrayIndex < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"arrayIndex\");\r\n }\r\n if (((array.length - arrayIndex) | 0) < this.Count) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n for (var i = 0; i < this.Count; i = (i + 1) | 0) {\r\n var entry = new System.Collections.DictionaryEntry.$ctor1(this.keys[System.Array.index(i, this.keys)], this.values[System.Array.index(i, this.values)]);\r\n System.Array.set(array, entry.$clone(), ((i + arrayIndex) | 0));\r\n }\r\n },\r\n ToKeyValuePairsArray: function () {\r\n var array = System.Array.init(this.Count, null, System.Collections.KeyValuePairs);\r\n for (var i = 0; i < this.Count; i = (i + 1) | 0) {\r\n array[System.Array.index(i, array)] = new System.Collections.KeyValuePairs(this.keys[System.Array.index(i, this.keys)], this.values[System.Array.index(i, this.values)]);\r\n }\r\n return array;\r\n },\r\n EnsureCapacity: function (min) {\r\n var newCapacity = this.keys.length === 0 ? 16 : Bridge.Int.mul(this.keys.length, 2);\r\n\r\n if ((newCapacity >>> 0) > 2146435071) {\r\n newCapacity = 2146435071;\r\n }\r\n if (newCapacity < min) {\r\n newCapacity = min;\r\n }\r\n this.Capacity = newCapacity;\r\n },\r\n GetByIndex: function (index) {\r\n if (index < 0 || index >= this.Count) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n\r\n return this.values[System.Array.index(index, this.values)];\r\n },\r\n System$Collections$IEnumerable$GetEnumerator: function () {\r\n return new System.Collections.SortedList.SortedListEnumerator(this, 0, this._size, System.Collections.SortedList.SortedListEnumerator.DictEntry);\r\n },\r\n GetEnumerator: function () {\r\n return new System.Collections.SortedList.SortedListEnumerator(this, 0, this._size, System.Collections.SortedList.SortedListEnumerator.DictEntry);\r\n },\r\n GetKey: function (index) {\r\n if (index < 0 || index >= this.Count) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n return this.keys[System.Array.index(index, this.keys)];\r\n },\r\n GetKeyList: function () {\r\n if (this.keyList == null) {\r\n this.keyList = new System.Collections.SortedList.KeyList(this);\r\n }\r\n return this.keyList;\r\n },\r\n GetValueList: function () {\r\n if (this.valueList == null) {\r\n this.valueList = new System.Collections.SortedList.ValueList(this);\r\n }\r\n return this.valueList;\r\n },\r\n IndexOfKey: function (key) {\r\n if (key == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"key\");\r\n }\r\n\r\n var ret = System.Array.binarySearch(this.keys, 0, this._size, key, this.comparer);\r\n return ret >= 0 ? ret : -1;\r\n },\r\n IndexOfValue: function (value) {\r\n return System.Array.indexOfT(this.values, value, 0, this._size);\r\n },\r\n Insert: function (index, key, value) {\r\n if (this._size === this.keys.length) {\r\n this.EnsureCapacity(((this._size + 1) | 0));\r\n }\r\n if (index < this._size) {\r\n System.Array.copy(this.keys, index, this.keys, ((index + 1) | 0), ((this._size - index) | 0));\r\n System.Array.copy(this.values, index, this.values, ((index + 1) | 0), ((this._size - index) | 0));\r\n }\r\n this.keys[System.Array.index(index, this.keys)] = key;\r\n this.values[System.Array.index(index, this.values)] = value;\r\n this._size = (this._size + 1) | 0;\r\n this.version = (this.version + 1) | 0;\r\n },\r\n RemoveAt: function (index) {\r\n if (index < 0 || index >= this.Count) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n\r\n this._size = (this._size - 1) | 0;\r\n if (index < this._size) {\r\n System.Array.copy(this.keys, ((index + 1) | 0), this.keys, index, ((this._size - index) | 0));\r\n System.Array.copy(this.values, ((index + 1) | 0), this.values, index, ((this._size - index) | 0));\r\n }\r\n this.keys[System.Array.index(this._size, this.keys)] = null;\r\n this.values[System.Array.index(this._size, this.values)] = null;\r\n this.version = (this.version + 1) | 0;\r\n },\r\n remove: function (key) {\r\n var i = this.IndexOfKey(key);\r\n if (i >= 0) {\r\n this.RemoveAt(i);\r\n }\r\n },\r\n SetByIndex: function (index, value) {\r\n if (index < 0 || index >= this.Count) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n\r\n this.values[System.Array.index(index, this.values)] = value;\r\n this.version = (this.version + 1) | 0;\r\n },\r\n TrimToSize: function () {\r\n this.Capacity = this._size;\r\n }\r\n }\r\n });\r\n\r\n // @source KeyList.js\r\n\r\n Bridge.define(\"System.Collections.SortedList.KeyList\", {\r\n inherits: [System.Collections.IList],\r\n $kind: \"nested class\",\r\n fields: {\r\n sortedList: null\r\n },\r\n props: {\r\n Count: {\r\n get: function () {\r\n return this.sortedList._size;\r\n }\r\n },\r\n IsReadOnly: {\r\n get: function () {\r\n return true;\r\n }\r\n },\r\n IsFixedSize: {\r\n get: function () {\r\n return true;\r\n }\r\n },\r\n IsSynchronized: {\r\n get: function () {\r\n return this.sortedList.IsSynchronized;\r\n }\r\n },\r\n SyncRoot: {\r\n get: function () {\r\n return this.sortedList.SyncRoot;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"IsReadOnly\", \"System$Collections$IList$IsReadOnly\",\r\n \"IsFixedSize\", \"System$Collections$IList$IsFixedSize\",\r\n \"IsSynchronized\", \"System$Collections$ICollection$IsSynchronized\",\r\n \"SyncRoot\", \"System$Collections$ICollection$SyncRoot\",\r\n \"add\", \"System$Collections$IList$add\",\r\n \"clear\", \"System$Collections$IList$clear\",\r\n \"contains\", \"System$Collections$IList$contains\",\r\n \"copyTo\", \"System$Collections$ICollection$copyTo\",\r\n \"insert\", \"System$Collections$IList$insert\",\r\n \"getItem\", \"System$Collections$IList$getItem\",\r\n \"setItem\", \"System$Collections$IList$setItem\",\r\n \"GetEnumerator\", \"System$Collections$IEnumerable$GetEnumerator\",\r\n \"indexOf\", \"System$Collections$IList$indexOf\",\r\n \"remove\", \"System$Collections$IList$remove\",\r\n \"removeAt\", \"System$Collections$IList$removeAt\"\r\n ],\r\n ctors: {\r\n ctor: function (sortedList) {\r\n this.$initialize();\r\n this.sortedList = sortedList;\r\n }\r\n },\r\n methods: {\r\n getItem: function (index) {\r\n return this.sortedList.GetKey(index);\r\n },\r\n setItem: function (index, value) {\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n add: function (key) {\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n clear: function () {\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n contains: function (key) {\r\n return this.sortedList.contains(key);\r\n },\r\n copyTo: function (array, arrayIndex) {\r\n if (array != null && System.Array.getRank(array) !== 1) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n System.Array.copy(this.sortedList.keys, 0, array, arrayIndex, this.sortedList.Count);\r\n },\r\n insert: function (index, value) {\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n GetEnumerator: function () {\r\n return new System.Collections.SortedList.SortedListEnumerator(this.sortedList, 0, this.sortedList.Count, System.Collections.SortedList.SortedListEnumerator.Keys);\r\n },\r\n indexOf: function (key) {\r\n if (key == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"key\");\r\n }\r\n\r\n var i = System.Array.binarySearch(this.sortedList.keys, 0, this.sortedList.Count, key, this.sortedList.comparer);\r\n if (i >= 0) {\r\n return i;\r\n }\r\n return -1;\r\n },\r\n remove: function (key) {\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n removeAt: function (index) {\r\n throw new System.NotSupportedException.ctor();\r\n }\r\n }\r\n });\r\n\r\n // @source SortedListDebugView.js\r\n\r\n Bridge.define(\"System.Collections.SortedList.SortedListDebugView\", {\r\n $kind: \"nested class\",\r\n fields: {\r\n sortedList: null\r\n },\r\n props: {\r\n Items: {\r\n get: function () {\r\n return this.sortedList.ToKeyValuePairsArray();\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function (sortedList) {\r\n this.$initialize();\r\n if (sortedList == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"sortedList\");\r\n }\r\n\r\n this.sortedList = sortedList;\r\n }\r\n }\r\n });\r\n\r\n // @source SortedListEnumerator.js\r\n\r\n Bridge.define(\"System.Collections.SortedList.SortedListEnumerator\", {\r\n inherits: [System.Collections.IDictionaryEnumerator,System.ICloneable],\r\n $kind: \"nested class\",\r\n statics: {\r\n fields: {\r\n Keys: 0,\r\n Values: 0,\r\n DictEntry: 0\r\n },\r\n ctors: {\r\n init: function () {\r\n this.Keys = 1;\r\n this.Values = 2;\r\n this.DictEntry = 3;\r\n }\r\n }\r\n },\r\n fields: {\r\n sortedList: null,\r\n key: null,\r\n value: null,\r\n index: 0,\r\n startIndex: 0,\r\n endIndex: 0,\r\n version: 0,\r\n current: false,\r\n getObjectRetType: 0\r\n },\r\n props: {\r\n Key: {\r\n get: function () {\r\n if (this.version !== this.sortedList.version) {\r\n throw new System.InvalidOperationException.ctor();\r\n }\r\n if (this.current === false) {\r\n throw new System.InvalidOperationException.ctor();\r\n }\r\n return this.key;\r\n }\r\n },\r\n Entry: {\r\n get: function () {\r\n if (this.version !== this.sortedList.version) {\r\n throw new System.InvalidOperationException.ctor();\r\n }\r\n if (this.current === false) {\r\n throw new System.InvalidOperationException.ctor();\r\n }\r\n return new System.Collections.DictionaryEntry.$ctor1(this.key, this.value);\r\n }\r\n },\r\n Current: {\r\n get: function () {\r\n if (this.current === false) {\r\n throw new System.InvalidOperationException.ctor();\r\n }\r\n\r\n if (this.getObjectRetType === System.Collections.SortedList.SortedListEnumerator.Keys) {\r\n return this.key;\r\n } else {\r\n if (this.getObjectRetType === System.Collections.SortedList.SortedListEnumerator.Values) {\r\n return this.value;\r\n } else {\r\n return new System.Collections.DictionaryEntry.$ctor1(this.key, this.value).$clone();\r\n }\r\n }\r\n }\r\n },\r\n Value: {\r\n get: function () {\r\n if (this.version !== this.sortedList.version) {\r\n throw new System.InvalidOperationException.ctor();\r\n }\r\n if (this.current === false) {\r\n throw new System.InvalidOperationException.ctor();\r\n }\r\n return this.value;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"clone\", \"System$ICloneable$clone\",\r\n \"Key\", \"System$Collections$IDictionaryEnumerator$Key\",\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"Entry\", \"System$Collections$IDictionaryEnumerator$Entry\",\r\n \"Current\", \"System$Collections$IEnumerator$Current\",\r\n \"Value\", \"System$Collections$IDictionaryEnumerator$Value\",\r\n \"reset\", \"System$Collections$IEnumerator$reset\"\r\n ],\r\n ctors: {\r\n ctor: function (sortedList, index, count, getObjRetType) {\r\n this.$initialize();\r\n this.sortedList = sortedList;\r\n this.index = index;\r\n this.startIndex = index;\r\n this.endIndex = (index + count) | 0;\r\n this.version = sortedList.version;\r\n this.getObjectRetType = getObjRetType;\r\n this.current = false;\r\n }\r\n },\r\n methods: {\r\n clone: function () {\r\n return Bridge.clone(this);\r\n },\r\n moveNext: function () {\r\n var $t, $t1;\r\n if (this.version !== this.sortedList.version) {\r\n throw new System.InvalidOperationException.ctor();\r\n }\r\n if (this.index < this.endIndex) {\r\n this.key = ($t = this.sortedList.keys)[System.Array.index(this.index, $t)];\r\n this.value = ($t1 = this.sortedList.values)[System.Array.index(this.index, $t1)];\r\n this.index = (this.index + 1) | 0;\r\n this.current = true;\r\n return true;\r\n }\r\n this.key = null;\r\n this.value = null;\r\n this.current = false;\r\n return false;\r\n },\r\n reset: function () {\r\n if (this.version !== this.sortedList.version) {\r\n throw new System.InvalidOperationException.ctor();\r\n }\r\n this.index = this.startIndex;\r\n this.current = false;\r\n this.key = null;\r\n this.value = null;\r\n }\r\n }\r\n });\r\n\r\n // @source SyncSortedList.js\r\n\r\n Bridge.define(\"System.Collections.SortedList.SyncSortedList\", {\r\n inherits: [System.Collections.SortedList],\r\n $kind: \"nested class\",\r\n fields: {\r\n _list: null,\r\n _root: null\r\n },\r\n props: {\r\n Count: {\r\n get: function () {\r\n this._root;\r\n {\r\n return this._list.Count;\r\n }\r\n }\r\n },\r\n SyncRoot: {\r\n get: function () {\r\n return this._root;\r\n }\r\n },\r\n IsReadOnly: {\r\n get: function () {\r\n return this._list.IsReadOnly;\r\n }\r\n },\r\n IsFixedSize: {\r\n get: function () {\r\n return this._list.IsFixedSize;\r\n }\r\n },\r\n IsSynchronized: {\r\n get: function () {\r\n return true;\r\n }\r\n },\r\n Capacity: {\r\n get: function () {\r\n this._root;\r\n {\r\n return this._list.Capacity;\r\n }\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"SyncRoot\", \"System$Collections$ICollection$SyncRoot\",\r\n \"IsReadOnly\", \"System$Collections$IDictionary$IsReadOnly\",\r\n \"IsFixedSize\", \"System$Collections$IDictionary$IsFixedSize\",\r\n \"IsSynchronized\", \"System$Collections$ICollection$IsSynchronized\",\r\n \"getItem\", \"System$Collections$IDictionary$getItem\",\r\n \"setItem\", \"System$Collections$IDictionary$setItem\",\r\n \"add\", \"System$Collections$IDictionary$add\",\r\n \"clear\", \"System$Collections$IDictionary$clear\",\r\n \"clone\", \"System$ICloneable$clone\",\r\n \"contains\", \"System$Collections$IDictionary$contains\",\r\n \"copyTo\", \"System$Collections$ICollection$copyTo\",\r\n \"GetEnumerator\", \"System$Collections$IDictionary$GetEnumerator\",\r\n \"GetEnumerator\", \"System$Collections$IEnumerable$GetEnumerator\",\r\n \"remove\", \"System$Collections$IDictionary$remove\"\r\n ],\r\n ctors: {\r\n ctor: function (list) {\r\n this.$initialize();\r\n System.Collections.SortedList.ctor.call(this);\r\n this._list = list;\r\n this._root = list.SyncRoot;\r\n }\r\n },\r\n methods: {\r\n getItem: function (key) {\r\n this._root;\r\n {\r\n return this._list.getItem(key);\r\n }\r\n },\r\n setItem: function (key, value) {\r\n this._root;\r\n {\r\n this._list.setItem(key, value);\r\n }\r\n },\r\n add: function (key, value) {\r\n this._root;\r\n {\r\n this._list.add(key, value);\r\n }\r\n },\r\n clear: function () {\r\n this._root;\r\n {\r\n this._list.clear();\r\n }\r\n },\r\n clone: function () {\r\n this._root;\r\n {\r\n return this._list.clone();\r\n }\r\n },\r\n contains: function (key) {\r\n this._root;\r\n {\r\n return this._list.contains(key);\r\n }\r\n },\r\n ContainsKey: function (key) {\r\n this._root;\r\n {\r\n return this._list.ContainsKey(key);\r\n }\r\n },\r\n ContainsValue: function (key) {\r\n this._root;\r\n {\r\n return this._list.ContainsValue(key);\r\n }\r\n },\r\n copyTo: function (array, index) {\r\n this._root;\r\n {\r\n this._list.copyTo(array, index);\r\n }\r\n },\r\n GetByIndex: function (index) {\r\n this._root;\r\n {\r\n return this._list.GetByIndex(index);\r\n }\r\n },\r\n GetEnumerator: function () {\r\n this._root;\r\n {\r\n return this._list.GetEnumerator();\r\n }\r\n },\r\n GetKey: function (index) {\r\n this._root;\r\n {\r\n return this._list.GetKey(index);\r\n }\r\n },\r\n GetKeyList: function () {\r\n this._root;\r\n {\r\n return this._list.GetKeyList();\r\n }\r\n },\r\n GetValueList: function () {\r\n this._root;\r\n {\r\n return this._list.GetValueList();\r\n }\r\n },\r\n IndexOfKey: function (key) {\r\n if (key == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"key\");\r\n }\r\n\r\n return this._list.IndexOfKey(key);\r\n },\r\n IndexOfValue: function (value) {\r\n this._root;\r\n {\r\n return this._list.IndexOfValue(value);\r\n }\r\n },\r\n RemoveAt: function (index) {\r\n this._root;\r\n {\r\n this._list.RemoveAt(index);\r\n }\r\n },\r\n remove: function (key) {\r\n this._root;\r\n {\r\n this._list.remove(key);\r\n }\r\n },\r\n SetByIndex: function (index, value) {\r\n this._root;\r\n {\r\n this._list.SetByIndex(index, value);\r\n }\r\n },\r\n ToKeyValuePairsArray: function () {\r\n return this._list.ToKeyValuePairsArray();\r\n },\r\n TrimToSize: function () {\r\n this._root;\r\n {\r\n this._list.TrimToSize();\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source ValueList.js\r\n\r\n Bridge.define(\"System.Collections.SortedList.ValueList\", {\r\n inherits: [System.Collections.IList],\r\n $kind: \"nested class\",\r\n fields: {\r\n sortedList: null\r\n },\r\n props: {\r\n Count: {\r\n get: function () {\r\n return this.sortedList._size;\r\n }\r\n },\r\n IsReadOnly: {\r\n get: function () {\r\n return true;\r\n }\r\n },\r\n IsFixedSize: {\r\n get: function () {\r\n return true;\r\n }\r\n },\r\n IsSynchronized: {\r\n get: function () {\r\n return this.sortedList.IsSynchronized;\r\n }\r\n },\r\n SyncRoot: {\r\n get: function () {\r\n return this.sortedList.SyncRoot;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"IsReadOnly\", \"System$Collections$IList$IsReadOnly\",\r\n \"IsFixedSize\", \"System$Collections$IList$IsFixedSize\",\r\n \"IsSynchronized\", \"System$Collections$ICollection$IsSynchronized\",\r\n \"SyncRoot\", \"System$Collections$ICollection$SyncRoot\",\r\n \"add\", \"System$Collections$IList$add\",\r\n \"clear\", \"System$Collections$IList$clear\",\r\n \"contains\", \"System$Collections$IList$contains\",\r\n \"copyTo\", \"System$Collections$ICollection$copyTo\",\r\n \"insert\", \"System$Collections$IList$insert\",\r\n \"getItem\", \"System$Collections$IList$getItem\",\r\n \"setItem\", \"System$Collections$IList$setItem\",\r\n \"GetEnumerator\", \"System$Collections$IEnumerable$GetEnumerator\",\r\n \"indexOf\", \"System$Collections$IList$indexOf\",\r\n \"remove\", \"System$Collections$IList$remove\",\r\n \"removeAt\", \"System$Collections$IList$removeAt\"\r\n ],\r\n ctors: {\r\n ctor: function (sortedList) {\r\n this.$initialize();\r\n this.sortedList = sortedList;\r\n }\r\n },\r\n methods: {\r\n getItem: function (index) {\r\n return this.sortedList.GetByIndex(index);\r\n },\r\n setItem: function (index, value) {\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n add: function (key) {\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n clear: function () {\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n contains: function (value) {\r\n return this.sortedList.ContainsValue(value);\r\n },\r\n copyTo: function (array, arrayIndex) {\r\n if (array != null && System.Array.getRank(array) !== 1) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n System.Array.copy(this.sortedList.values, 0, array, arrayIndex, this.sortedList.Count);\r\n },\r\n insert: function (index, value) {\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n GetEnumerator: function () {\r\n return new System.Collections.SortedList.SortedListEnumerator(this.sortedList, 0, this.sortedList.Count, System.Collections.SortedList.SortedListEnumerator.Values);\r\n },\r\n indexOf: function (value) {\r\n return System.Array.indexOfT(this.sortedList.values, value, 0, this.sortedList.Count);\r\n },\r\n remove: function (value) {\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n removeAt: function (index) {\r\n throw new System.NotSupportedException.ctor();\r\n }\r\n }\r\n });\r\n\r\n // @source SortedList.js\r\n\r\n Bridge.define(\"System.Collections.Generic.SortedList$2\", function (TKey, TValue) { return {\r\n inherits: [System.Collections.Generic.IDictionary$2(TKey,TValue),System.Collections.IDictionary,System.Collections.Generic.IReadOnlyDictionary$2(TKey,TValue)],\r\n statics: {\r\n fields: {\r\n _defaultCapacity: 0,\r\n MaxArrayLength: 0,\r\n emptyKeys: null,\r\n emptyValues: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this._defaultCapacity = 4;\r\n this.MaxArrayLength = 2146435071;\r\n this.emptyKeys = System.Array.init(0, function (){\r\n return Bridge.getDefaultValue(TKey);\r\n }, TKey);\r\n this.emptyValues = System.Array.init(0, function (){\r\n return Bridge.getDefaultValue(TValue);\r\n }, TValue);\r\n }\r\n },\r\n methods: {\r\n IsCompatibleKey: function (key) {\r\n if (key == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.key);\r\n }\r\n\r\n return (Bridge.is(key, TKey));\r\n }\r\n }\r\n },\r\n fields: {\r\n keys: null,\r\n values: null,\r\n _size: 0,\r\n version: 0,\r\n comparer: null,\r\n keyList: null,\r\n valueList: null\r\n },\r\n props: {\r\n Capacity: {\r\n get: function () {\r\n return this.keys.length;\r\n },\r\n set: function (value) {\r\n if (value !== this.keys.length) {\r\n if (value < this._size) {\r\n System.ThrowHelper.ThrowArgumentOutOfRangeException$2(System.ExceptionArgument.value, System.ExceptionResource.ArgumentOutOfRange_SmallCapacity);\r\n }\r\n\r\n if (value > 0) {\r\n var newKeys = System.Array.init(value, function (){\r\n return Bridge.getDefaultValue(TKey);\r\n }, TKey);\r\n var newValues = System.Array.init(value, function (){\r\n return Bridge.getDefaultValue(TValue);\r\n }, TValue);\r\n if (this._size > 0) {\r\n System.Array.copy(this.keys, 0, newKeys, 0, this._size);\r\n System.Array.copy(this.values, 0, newValues, 0, this._size);\r\n }\r\n this.keys = newKeys;\r\n this.values = newValues;\r\n } else {\r\n this.keys = System.Collections.Generic.SortedList$2(TKey,TValue).emptyKeys;\r\n this.values = System.Collections.Generic.SortedList$2(TKey,TValue).emptyValues;\r\n }\r\n }\r\n }\r\n },\r\n Comparer: {\r\n get: function () {\r\n return this.comparer;\r\n }\r\n },\r\n Count: {\r\n get: function () {\r\n return this._size;\r\n }\r\n },\r\n Keys: {\r\n get: function () {\r\n return this.GetKeyListHelper();\r\n }\r\n },\r\n System$Collections$Generic$IDictionary$2$Keys: {\r\n get: function () {\r\n return this.GetKeyListHelper();\r\n }\r\n },\r\n System$Collections$IDictionary$Keys: {\r\n get: function () {\r\n return this.GetKeyListHelper();\r\n }\r\n },\r\n System$Collections$Generic$IReadOnlyDictionary$2$Keys: {\r\n get: function () {\r\n return this.GetKeyListHelper();\r\n }\r\n },\r\n Values: {\r\n get: function () {\r\n return this.GetValueListHelper();\r\n }\r\n },\r\n System$Collections$Generic$IDictionary$2$Values: {\r\n get: function () {\r\n return this.GetValueListHelper();\r\n }\r\n },\r\n System$Collections$IDictionary$Values: {\r\n get: function () {\r\n return this.GetValueListHelper();\r\n }\r\n },\r\n System$Collections$Generic$IReadOnlyDictionary$2$Values: {\r\n get: function () {\r\n return this.GetValueListHelper();\r\n }\r\n },\r\n System$Collections$Generic$ICollection$1$IsReadOnly: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$IDictionary$IsReadOnly: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$IDictionary$IsFixedSize: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$ICollection$IsSynchronized: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$ICollection$SyncRoot: {\r\n get: function () {\r\n return null;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"add\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$add\",\r\n \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$add\", \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$add\",\r\n \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$contains\", \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$contains\",\r\n \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$remove\", \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$remove\",\r\n \"Count\", [\"System$Collections$Generic$IReadOnlyCollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Count\", \"System$Collections$Generic$IReadOnlyCollection$1$Count\"],\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"Count\", \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Count\",\r\n \"System$Collections$Generic$IDictionary$2$Keys\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Keys\",\r\n \"System$Collections$Generic$IReadOnlyDictionary$2$Keys\", \"System$Collections$Generic$IReadOnlyDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Keys\",\r\n \"System$Collections$Generic$IDictionary$2$Values\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Values\",\r\n \"System$Collections$Generic$IReadOnlyDictionary$2$Values\", \"System$Collections$Generic$IReadOnlyDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Values\",\r\n \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$IsReadOnly\", \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$IsReadOnly\",\r\n \"clear\", \"System$Collections$IDictionary$clear\",\r\n \"clear\", \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$clear\",\r\n \"containsKey\", \"System$Collections$Generic$IReadOnlyDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$containsKey\",\r\n \"containsKey\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$containsKey\",\r\n \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$copyTo\", \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$copyTo\",\r\n \"System$Collections$Generic$IEnumerable$1$System$Collections$Generic$KeyValuePair$2$GetEnumerator\", \"System$Collections$Generic$IEnumerable$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$GetEnumerator\",\r\n \"getItem\", \"System$Collections$Generic$IReadOnlyDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$getItem\",\r\n \"setItem\", \"System$Collections$Generic$IReadOnlyDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$setItem\",\r\n \"getItem\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$getItem\",\r\n \"setItem\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$setItem\",\r\n \"getItem$1\", \"System$Collections$IDictionary$getItem\",\r\n \"setItem$1\", \"System$Collections$IDictionary$setItem\",\r\n \"tryGetValue\", \"System$Collections$Generic$IReadOnlyDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$tryGetValue\",\r\n \"tryGetValue\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$tryGetValue\",\r\n \"remove\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$remove\"\r\n ],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n this.keys = System.Collections.Generic.SortedList$2(TKey,TValue).emptyKeys;\r\n this.values = System.Collections.Generic.SortedList$2(TKey,TValue).emptyValues;\r\n this._size = 0;\r\n this.comparer = new (System.Collections.Generic.Comparer$1(TKey))(System.Collections.Generic.Comparer$1.$default.fn);\r\n },\r\n $ctor4: function (capacity) {\r\n this.$initialize();\r\n if (capacity < 0) {\r\n System.ThrowHelper.ThrowArgumentOutOfRangeException$1(System.ExceptionArgument.capacity);\r\n }\r\n this.keys = System.Array.init(capacity, function (){\r\n return Bridge.getDefaultValue(TKey);\r\n }, TKey);\r\n this.values = System.Array.init(capacity, function (){\r\n return Bridge.getDefaultValue(TValue);\r\n }, TValue);\r\n this.comparer = new (System.Collections.Generic.Comparer$1(TKey))(System.Collections.Generic.Comparer$1.$default.fn);\r\n },\r\n $ctor1: function (comparer) {\r\n System.Collections.Generic.SortedList$2(TKey,TValue).ctor.call(this);\r\n if (comparer != null) {\r\n this.comparer = comparer;\r\n }\r\n },\r\n $ctor5: function (capacity, comparer) {\r\n System.Collections.Generic.SortedList$2(TKey,TValue).$ctor1.call(this, comparer);\r\n this.Capacity = capacity;\r\n },\r\n $ctor2: function (dictionary) {\r\n System.Collections.Generic.SortedList$2(TKey,TValue).$ctor3.call(this, dictionary, null);\r\n },\r\n $ctor3: function (dictionary, comparer) {\r\n System.Collections.Generic.SortedList$2(TKey,TValue).$ctor5.call(this, (dictionary != null ? System.Array.getCount(dictionary, System.Collections.Generic.KeyValuePair$2(TKey,TValue)) : 0), comparer);\r\n if (dictionary == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.dictionary);\r\n }\r\n\r\n System.Array.copyTo(dictionary[\"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Keys\"], this.keys, 0, TKey);\r\n System.Array.copyTo(dictionary[\"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Values\"], this.values, 0, TValue);\r\n System.Array.sortDict(this.keys, this.values, 0, null, this.comparer);\r\n this._size = System.Array.getCount(dictionary, System.Collections.Generic.KeyValuePair$2(TKey,TValue));\r\n }\r\n },\r\n methods: {\r\n getItem: function (key) {\r\n var i = this.IndexOfKey(key);\r\n if (i >= 0) {\r\n return this.values[System.Array.index(i, this.values)];\r\n }\r\n\r\n throw new System.Collections.Generic.KeyNotFoundException.ctor();\r\n },\r\n setItem: function (key, value) {\r\n if (key == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.key);\r\n }\r\n var i = System.Array.binarySearch(this.keys, 0, this._size, key, this.comparer);\r\n if (i >= 0) {\r\n this.values[System.Array.index(i, this.values)] = value;\r\n this.version = (this.version + 1) | 0;\r\n return;\r\n }\r\n this.Insert(~i, key, value);\r\n },\r\n getItem$1: function (key) {\r\n if (System.Collections.Generic.SortedList$2(TKey,TValue).IsCompatibleKey(key)) {\r\n var i = this.IndexOfKey(Bridge.cast(Bridge.unbox(key, TKey), TKey));\r\n if (i >= 0) {\r\n return this.values[System.Array.index(i, this.values)];\r\n }\r\n }\r\n\r\n return null;\r\n },\r\n setItem$1: function (key, value) {\r\n if (!System.Collections.Generic.SortedList$2(TKey,TValue).IsCompatibleKey(key)) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.key);\r\n }\r\n\r\n System.ThrowHelper.IfNullAndNullsAreIllegalThenThrow(TValue, value, System.ExceptionArgument.value);\r\n\r\n try {\r\n var tempKey = Bridge.cast(Bridge.unbox(key, TKey), TKey);\r\n try {\r\n this.setItem(tempKey, Bridge.cast(Bridge.unbox(value, TValue), TValue));\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.InvalidCastException)) {\r\n System.ThrowHelper.ThrowWrongValueTypeArgumentException(System.Object, value, TValue);\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n } catch ($e2) {\r\n $e2 = System.Exception.create($e2);\r\n if (Bridge.is($e2, System.InvalidCastException)) {\r\n System.ThrowHelper.ThrowWrongKeyTypeArgumentException(System.Object, key, TKey);\r\n } else {\r\n throw $e2;\r\n }\r\n }\r\n },\r\n add: function (key, value) {\r\n if (key == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.key);\r\n }\r\n var i = System.Array.binarySearch(this.keys, 0, this._size, key, this.comparer);\r\n if (i >= 0) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Argument_AddingDuplicate);\r\n }\r\n this.Insert(~i, key, value);\r\n },\r\n System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$add: function (keyValuePair) {\r\n this.add(keyValuePair.key, keyValuePair.value);\r\n },\r\n System$Collections$IDictionary$add: function (key, value) {\r\n if (key == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.key);\r\n }\r\n\r\n System.ThrowHelper.IfNullAndNullsAreIllegalThenThrow(TValue, value, System.ExceptionArgument.value);\r\n\r\n try {\r\n var tempKey = Bridge.cast(Bridge.unbox(key, TKey), TKey);\r\n\r\n try {\r\n this.add(tempKey, Bridge.cast(Bridge.unbox(value, TValue), TValue));\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.InvalidCastException)) {\r\n System.ThrowHelper.ThrowWrongValueTypeArgumentException(System.Object, value, TValue);\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n } catch ($e2) {\r\n $e2 = System.Exception.create($e2);\r\n if (Bridge.is($e2, System.InvalidCastException)) {\r\n System.ThrowHelper.ThrowWrongKeyTypeArgumentException(System.Object, key, TKey);\r\n } else {\r\n throw $e2;\r\n }\r\n }\r\n },\r\n System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$contains: function (keyValuePair) {\r\n var index = this.IndexOfKey(keyValuePair.key);\r\n if (index >= 0 && System.Collections.Generic.EqualityComparer$1(TValue).def.equals2(this.values[System.Array.index(index, this.values)], keyValuePair.value)) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n System$Collections$IDictionary$contains: function (key) {\r\n if (System.Collections.Generic.SortedList$2(TKey,TValue).IsCompatibleKey(key)) {\r\n return this.containsKey(Bridge.cast(Bridge.unbox(key, TKey), TKey));\r\n }\r\n return false;\r\n },\r\n System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$remove: function (keyValuePair) {\r\n var index = this.IndexOfKey(keyValuePair.key);\r\n if (index >= 0 && System.Collections.Generic.EqualityComparer$1(TValue).def.equals2(this.values[System.Array.index(index, this.values)], keyValuePair.value)) {\r\n this.RemoveAt(index);\r\n return true;\r\n }\r\n return false;\r\n },\r\n remove: function (key) {\r\n var i = this.IndexOfKey(key);\r\n if (i >= 0) {\r\n this.RemoveAt(i);\r\n }\r\n return i >= 0;\r\n },\r\n System$Collections$IDictionary$remove: function (key) {\r\n if (System.Collections.Generic.SortedList$2(TKey,TValue).IsCompatibleKey(key)) {\r\n this.remove(Bridge.cast(Bridge.unbox(key, TKey), TKey));\r\n }\r\n },\r\n GetKeyListHelper: function () {\r\n if (this.keyList == null) {\r\n this.keyList = new (System.Collections.Generic.SortedList$2.KeyList(TKey,TValue))(this);\r\n }\r\n return this.keyList;\r\n },\r\n GetValueListHelper: function () {\r\n if (this.valueList == null) {\r\n this.valueList = new (System.Collections.Generic.SortedList$2.ValueList(TKey,TValue))(this);\r\n }\r\n return this.valueList;\r\n },\r\n clear: function () {\r\n this.version = (this.version + 1) | 0;\r\n System.Array.fill(this.keys, function () {\r\n return Bridge.getDefaultValue(TKey);\r\n }, 0, this._size);\r\n System.Array.fill(this.values, function () {\r\n return Bridge.getDefaultValue(TValue);\r\n }, 0, this._size);\r\n this._size = 0;\r\n },\r\n containsKey: function (key) {\r\n return this.IndexOfKey(key) >= 0;\r\n },\r\n ContainsValue: function (value) {\r\n return this.IndexOfValue(value) >= 0;\r\n },\r\n System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$copyTo: function (array, arrayIndex) {\r\n if (array == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.array);\r\n }\r\n\r\n if (arrayIndex < 0 || arrayIndex > array.length) {\r\n System.ThrowHelper.ThrowArgumentOutOfRangeException$2(System.ExceptionArgument.arrayIndex, System.ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);\r\n }\r\n\r\n if (((array.length - arrayIndex) | 0) < this.Count) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_ArrayPlusOffTooSmall);\r\n }\r\n\r\n for (var i = 0; i < this.Count; i = (i + 1) | 0) {\r\n var entry = new (System.Collections.Generic.KeyValuePair$2(TKey,TValue)).$ctor1(this.keys[System.Array.index(i, this.keys)], this.values[System.Array.index(i, this.values)]);\r\n array[System.Array.index(((arrayIndex + i) | 0), array)] = entry;\r\n }\r\n },\r\n System$Collections$ICollection$copyTo: function (array, arrayIndex) {\r\n if (array == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.array);\r\n }\r\n\r\n if (System.Array.getRank(array) !== 1) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_RankMultiDimNotSupported);\r\n }\r\n\r\n if (System.Array.getLower(array, 0) !== 0) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_NonZeroLowerBound);\r\n }\r\n\r\n if (arrayIndex < 0 || arrayIndex > array.length) {\r\n System.ThrowHelper.ThrowArgumentOutOfRangeException$2(System.ExceptionArgument.arrayIndex, System.ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);\r\n }\r\n\r\n if (((array.length - arrayIndex) | 0) < this.Count) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_ArrayPlusOffTooSmall);\r\n }\r\n\r\n var keyValuePairArray = Bridge.as(array, System.Array.type(System.Collections.Generic.KeyValuePair$2(TKey,TValue)));\r\n if (keyValuePairArray != null) {\r\n for (var i = 0; i < this.Count; i = (i + 1) | 0) {\r\n keyValuePairArray[System.Array.index(((i + arrayIndex) | 0), keyValuePairArray)] = new (System.Collections.Generic.KeyValuePair$2(TKey,TValue)).$ctor1(this.keys[System.Array.index(i, this.keys)], this.values[System.Array.index(i, this.values)]);\r\n }\r\n } else {\r\n var objects = Bridge.as(array, System.Array.type(System.Object));\r\n if (objects == null) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Argument_InvalidArrayType);\r\n }\r\n\r\n try {\r\n for (var i1 = 0; i1 < this.Count; i1 = (i1 + 1) | 0) {\r\n objects[System.Array.index(((i1 + arrayIndex) | 0), objects)] = new (System.Collections.Generic.KeyValuePair$2(TKey,TValue)).$ctor1(this.keys[System.Array.index(i1, this.keys)], this.values[System.Array.index(i1, this.values)]);\r\n }\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.ArrayTypeMismatchException)) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Argument_InvalidArrayType);\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n\r\n }\r\n },\r\n EnsureCapacity: function (min) {\r\n var newCapacity = this.keys.length === 0 ? System.Collections.Generic.SortedList$2(TKey,TValue)._defaultCapacity : Bridge.Int.mul(this.keys.length, 2);\r\n if ((newCapacity >>> 0) > System.Collections.Generic.SortedList$2(TKey,TValue).MaxArrayLength) {\r\n newCapacity = System.Collections.Generic.SortedList$2(TKey,TValue).MaxArrayLength;\r\n }\r\n if (newCapacity < min) {\r\n newCapacity = min;\r\n }\r\n this.Capacity = newCapacity;\r\n },\r\n GetByIndex: function (index) {\r\n if (index < 0 || index >= this._size) {\r\n System.ThrowHelper.ThrowArgumentOutOfRangeException$2(System.ExceptionArgument.index, System.ExceptionResource.ArgumentOutOfRange_Index);\r\n }\r\n return this.values[System.Array.index(index, this.values)];\r\n },\r\n GetEnumerator: function () {\r\n return new (System.Collections.Generic.SortedList$2.Enumerator(TKey,TValue)).$ctor1(this, System.Collections.Generic.SortedList$2.Enumerator(TKey,TValue).KeyValuePair).$clone();\r\n },\r\n System$Collections$Generic$IEnumerable$1$System$Collections$Generic$KeyValuePair$2$GetEnumerator: function () {\r\n return new (System.Collections.Generic.SortedList$2.Enumerator(TKey,TValue)).$ctor1(this, System.Collections.Generic.SortedList$2.Enumerator(TKey,TValue).KeyValuePair).$clone();\r\n },\r\n System$Collections$IDictionary$GetEnumerator: function () {\r\n return new (System.Collections.Generic.SortedList$2.Enumerator(TKey,TValue)).$ctor1(this, System.Collections.Generic.SortedList$2.Enumerator(TKey,TValue).DictEntry).$clone();\r\n },\r\n System$Collections$IEnumerable$GetEnumerator: function () {\r\n return new (System.Collections.Generic.SortedList$2.Enumerator(TKey,TValue)).$ctor1(this, System.Collections.Generic.SortedList$2.Enumerator(TKey,TValue).KeyValuePair).$clone();\r\n },\r\n GetKey: function (index) {\r\n if (index < 0 || index >= this._size) {\r\n System.ThrowHelper.ThrowArgumentOutOfRangeException$2(System.ExceptionArgument.index, System.ExceptionResource.ArgumentOutOfRange_Index);\r\n }\r\n return this.keys[System.Array.index(index, this.keys)];\r\n },\r\n IndexOfKey: function (key) {\r\n if (key == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.key);\r\n }\r\n var ret = System.Array.binarySearch(this.keys, 0, this._size, key, this.comparer);\r\n return ret >= 0 ? ret : -1;\r\n },\r\n IndexOfValue: function (value) {\r\n return System.Array.indexOfT(this.values, value, 0, this._size);\r\n },\r\n Insert: function (index, key, value) {\r\n if (this._size === this.keys.length) {\r\n this.EnsureCapacity(((this._size + 1) | 0));\r\n }\r\n if (index < this._size) {\r\n System.Array.copy(this.keys, index, this.keys, ((index + 1) | 0), ((this._size - index) | 0));\r\n System.Array.copy(this.values, index, this.values, ((index + 1) | 0), ((this._size - index) | 0));\r\n }\r\n this.keys[System.Array.index(index, this.keys)] = key;\r\n this.values[System.Array.index(index, this.values)] = value;\r\n this._size = (this._size + 1) | 0;\r\n this.version = (this.version + 1) | 0;\r\n },\r\n tryGetValue: function (key, value) {\r\n var i = this.IndexOfKey(key);\r\n if (i >= 0) {\r\n value.v = this.values[System.Array.index(i, this.values)];\r\n return true;\r\n }\r\n\r\n value.v = Bridge.getDefaultValue(TValue);\r\n return false;\r\n },\r\n RemoveAt: function (index) {\r\n if (index < 0 || index >= this._size) {\r\n System.ThrowHelper.ThrowArgumentOutOfRangeException$2(System.ExceptionArgument.index, System.ExceptionResource.ArgumentOutOfRange_Index);\r\n }\r\n this._size = (this._size - 1) | 0;\r\n if (index < this._size) {\r\n System.Array.copy(this.keys, ((index + 1) | 0), this.keys, index, ((this._size - index) | 0));\r\n System.Array.copy(this.values, ((index + 1) | 0), this.values, index, ((this._size - index) | 0));\r\n }\r\n this.keys[System.Array.index(this._size, this.keys)] = Bridge.getDefaultValue(TKey);\r\n this.values[System.Array.index(this._size, this.values)] = Bridge.getDefaultValue(TValue);\r\n this.version = (this.version + 1) | 0;\r\n },\r\n TrimExcess: function () {\r\n var threshold = Bridge.Int.clip32(this.keys.length * 0.9);\r\n if (this._size < threshold) {\r\n this.Capacity = this._size;\r\n }\r\n }\r\n }\r\n }; });\r\n\r\n // @source Enumerator.js\r\n\r\n Bridge.define(\"System.Collections.Generic.SortedList$2.Enumerator\", function (TKey, TValue) { return {\r\n inherits: [System.Collections.Generic.IEnumerator$1(System.Collections.Generic.KeyValuePair$2(TKey,TValue)),System.Collections.IDictionaryEnumerator],\r\n $kind: \"nested struct\",\r\n statics: {\r\n fields: {\r\n KeyValuePair: 0,\r\n DictEntry: 0\r\n },\r\n ctors: {\r\n init: function () {\r\n this.KeyValuePair = 1;\r\n this.DictEntry = 2;\r\n }\r\n },\r\n methods: {\r\n getDefaultValue: function () { return new (System.Collections.Generic.SortedList$2.Enumerator(TKey,TValue))(); }\r\n }\r\n },\r\n fields: {\r\n _sortedList: null,\r\n key: Bridge.getDefaultValue(TKey),\r\n value: Bridge.getDefaultValue(TValue),\r\n index: 0,\r\n version: 0,\r\n getEnumeratorRetType: 0\r\n },\r\n props: {\r\n System$Collections$IDictionaryEnumerator$Key: {\r\n get: function () {\r\n if (this.index === 0 || (this.index === ((this._sortedList.Count + 1) | 0))) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumOpCantHappen);\r\n }\r\n\r\n return this.key;\r\n }\r\n },\r\n System$Collections$IDictionaryEnumerator$Entry: {\r\n get: function () {\r\n if (this.index === 0 || (this.index === ((this._sortedList.Count + 1) | 0))) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumOpCantHappen);\r\n }\r\n\r\n return new System.Collections.DictionaryEntry.$ctor1(this.key, this.value);\r\n }\r\n },\r\n Current: {\r\n get: function () {\r\n return new (System.Collections.Generic.KeyValuePair$2(TKey,TValue)).$ctor1(this.key, this.value);\r\n }\r\n },\r\n System$Collections$IEnumerator$Current: {\r\n get: function () {\r\n if (this.index === 0 || (this.index === ((this._sortedList.Count + 1) | 0))) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumOpCantHappen);\r\n }\r\n\r\n if (this.getEnumeratorRetType === System.Collections.Generic.SortedList$2.Enumerator(TKey,TValue).DictEntry) {\r\n return new System.Collections.DictionaryEntry.$ctor1(this.key, this.value).$clone();\r\n } else {\r\n return new (System.Collections.Generic.KeyValuePair$2(TKey,TValue)).$ctor1(this.key, this.value);\r\n }\r\n }\r\n },\r\n System$Collections$IDictionaryEnumerator$Value: {\r\n get: function () {\r\n if (this.index === 0 || (this.index === ((this._sortedList.Count + 1) | 0))) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumOpCantHappen);\r\n }\r\n\r\n return this.value;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Dispose\", \"System$IDisposable$Dispose\",\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"Current\", [\"System$Collections$Generic$IEnumerator$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\"]\r\n ],\r\n ctors: {\r\n $ctor1: function (sortedList, getEnumeratorRetType) {\r\n this.$initialize();\r\n this._sortedList = sortedList;\r\n this.index = 0;\r\n this.version = this._sortedList.version;\r\n this.getEnumeratorRetType = getEnumeratorRetType;\r\n this.key = Bridge.getDefaultValue(TKey);\r\n this.value = Bridge.getDefaultValue(TValue);\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n Dispose: function () {\r\n this.index = 0;\r\n this.key = Bridge.getDefaultValue(TKey);\r\n this.value = Bridge.getDefaultValue(TValue);\r\n },\r\n moveNext: function () {\r\n var $t, $t1;\r\n if (this.version !== this._sortedList.version) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumFailedVersion);\r\n }\r\n\r\n if ((this.index >>> 0) < ((this._sortedList.Count) >>> 0)) {\r\n this.key = ($t = this._sortedList.keys)[System.Array.index(this.index, $t)];\r\n this.value = ($t1 = this._sortedList.values)[System.Array.index(this.index, $t1)];\r\n this.index = (this.index + 1) | 0;\r\n return true;\r\n }\r\n\r\n this.index = (this._sortedList.Count + 1) | 0;\r\n this.key = Bridge.getDefaultValue(TKey);\r\n this.value = Bridge.getDefaultValue(TValue);\r\n return false;\r\n },\r\n System$Collections$IEnumerator$reset: function () {\r\n if (this.version !== this._sortedList.version) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumFailedVersion);\r\n }\r\n\r\n this.index = 0;\r\n this.key = Bridge.getDefaultValue(TKey);\r\n this.value = Bridge.getDefaultValue(TValue);\r\n },\r\n getHashCode: function () {\r\n var h = Bridge.addHash([3788985113, this._sortedList, this.key, this.value, this.index, this.version, this.getEnumeratorRetType]);\r\n return h;\r\n },\r\n equals: function (o) {\r\n if (!Bridge.is(o, System.Collections.Generic.SortedList$2.Enumerator(TKey,TValue))) {\r\n return false;\r\n }\r\n return Bridge.equals(this._sortedList, o._sortedList) && Bridge.equals(this.key, o.key) && Bridge.equals(this.value, o.value) && Bridge.equals(this.index, o.index) && Bridge.equals(this.version, o.version) && Bridge.equals(this.getEnumeratorRetType, o.getEnumeratorRetType);\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.Collections.Generic.SortedList$2.Enumerator(TKey,TValue))();\r\n s._sortedList = this._sortedList;\r\n s.key = this.key;\r\n s.value = this.value;\r\n s.index = this.index;\r\n s.version = this.version;\r\n s.getEnumeratorRetType = this.getEnumeratorRetType;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n // @source KeyList.js\r\n\r\n Bridge.define(\"System.Collections.Generic.SortedList$2.KeyList\", function (TKey, TValue) { return {\r\n inherits: [System.Collections.Generic.IList$1(TKey),System.Collections.ICollection],\r\n $kind: \"nested class\",\r\n fields: {\r\n _dict: null\r\n },\r\n props: {\r\n Count: {\r\n get: function () {\r\n return this._dict._size;\r\n }\r\n },\r\n IsReadOnly: {\r\n get: function () {\r\n return true;\r\n }\r\n },\r\n System$Collections$ICollection$IsSynchronized: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$ICollection$SyncRoot: {\r\n get: function () {\r\n return Bridge.cast(this._dict, System.Collections.ICollection).System$Collections$ICollection$SyncRoot;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"Count\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TKey) + \"$Count\",\r\n \"IsReadOnly\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TKey) + \"$IsReadOnly\",\r\n \"add\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TKey) + \"$add\",\r\n \"clear\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TKey) + \"$clear\",\r\n \"contains\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TKey) + \"$contains\",\r\n \"copyTo\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TKey) + \"$copyTo\",\r\n \"insert\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(TKey) + \"$insert\",\r\n \"getItem\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(TKey) + \"$getItem\",\r\n \"setItem\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(TKey) + \"$setItem\",\r\n \"GetEnumerator\", [\"System$Collections$Generic$IEnumerable$1$\" + Bridge.getTypeAlias(TKey) + \"$GetEnumerator\", \"System$Collections$Generic$IEnumerable$1$GetEnumerator\"],\r\n \"indexOf\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(TKey) + \"$indexOf\",\r\n \"remove\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TKey) + \"$remove\",\r\n \"removeAt\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(TKey) + \"$removeAt\"\r\n ],\r\n ctors: {\r\n ctor: function (dictionary) {\r\n this.$initialize();\r\n this._dict = dictionary;\r\n }\r\n },\r\n methods: {\r\n getItem: function (index) {\r\n return this._dict.GetKey(index);\r\n },\r\n setItem: function (index, value) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_KeyCollectionSet);\r\n },\r\n add: function (key) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_SortedListNestedWrite);\r\n },\r\n clear: function () {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_SortedListNestedWrite);\r\n },\r\n contains: function (key) {\r\n return this._dict.containsKey(key);\r\n },\r\n copyTo: function (array, arrayIndex) {\r\n System.Array.copy(this._dict.keys, 0, array, arrayIndex, this._dict.Count);\r\n },\r\n System$Collections$ICollection$copyTo: function (array, arrayIndex) {\r\n if (array != null && System.Array.getRank(array) !== 1) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_RankMultiDimNotSupported);\r\n }\r\n\r\n try {\r\n System.Array.copy(this._dict.keys, 0, array, arrayIndex, this._dict.Count);\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.ArrayTypeMismatchException)) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Argument_InvalidArrayType);\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n },\r\n insert: function (index, value) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_SortedListNestedWrite);\r\n },\r\n GetEnumerator: function () {\r\n return new (System.Collections.Generic.SortedList$2.SortedListKeyEnumerator(TKey,TValue))(this._dict);\r\n },\r\n System$Collections$IEnumerable$GetEnumerator: function () {\r\n return new (System.Collections.Generic.SortedList$2.SortedListKeyEnumerator(TKey,TValue))(this._dict);\r\n },\r\n indexOf: function (key) {\r\n if (key == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.key);\r\n }\r\n\r\n var i = System.Array.binarySearch(this._dict.keys, 0, this._dict.Count, key, this._dict.comparer);\r\n if (i >= 0) {\r\n return i;\r\n }\r\n return -1;\r\n },\r\n remove: function (key) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_SortedListNestedWrite);\r\n return false;\r\n },\r\n removeAt: function (index) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_SortedListNestedWrite);\r\n }\r\n }\r\n }; });\r\n\r\n // @source SortedListKeyEnumerator.js\r\n\r\n Bridge.define(\"System.Collections.Generic.SortedList$2.SortedListKeyEnumerator\", function (TKey, TValue) { return {\r\n inherits: [System.Collections.Generic.IEnumerator$1(TKey),System.Collections.IEnumerator],\r\n $kind: \"nested class\",\r\n fields: {\r\n _sortedList: null,\r\n index: 0,\r\n version: 0,\r\n currentKey: Bridge.getDefaultValue(TKey)\r\n },\r\n props: {\r\n Current: {\r\n get: function () {\r\n return this.currentKey;\r\n }\r\n },\r\n System$Collections$IEnumerator$Current: {\r\n get: function () {\r\n if (this.index === 0 || (this.index === ((this._sortedList.Count + 1) | 0))) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumOpCantHappen);\r\n }\r\n\r\n return this.currentKey;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Dispose\", \"System$IDisposable$Dispose\",\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"Current\", [\"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(TKey) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\"]\r\n ],\r\n ctors: {\r\n ctor: function (sortedList) {\r\n this.$initialize();\r\n this._sortedList = sortedList;\r\n this.version = sortedList.version;\r\n }\r\n },\r\n methods: {\r\n Dispose: function () {\r\n this.index = 0;\r\n this.currentKey = Bridge.getDefaultValue(TKey);\r\n },\r\n moveNext: function () {\r\n var $t;\r\n if (this.version !== this._sortedList.version) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumFailedVersion);\r\n }\r\n\r\n if ((this.index >>> 0) < ((this._sortedList.Count) >>> 0)) {\r\n this.currentKey = ($t = this._sortedList.keys)[System.Array.index(this.index, $t)];\r\n this.index = (this.index + 1) | 0;\r\n return true;\r\n }\r\n\r\n this.index = (this._sortedList.Count + 1) | 0;\r\n this.currentKey = Bridge.getDefaultValue(TKey);\r\n return false;\r\n },\r\n System$Collections$IEnumerator$reset: function () {\r\n if (this.version !== this._sortedList.version) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumFailedVersion);\r\n }\r\n this.index = 0;\r\n this.currentKey = Bridge.getDefaultValue(TKey);\r\n }\r\n }\r\n }; });\r\n\r\n // @source SortedListValueEnumerator.js\r\n\r\n Bridge.define(\"System.Collections.Generic.SortedList$2.SortedListValueEnumerator\", function (TKey, TValue) { return {\r\n inherits: [System.Collections.Generic.IEnumerator$1(TValue),System.Collections.IEnumerator],\r\n $kind: \"nested class\",\r\n fields: {\r\n _sortedList: null,\r\n index: 0,\r\n version: 0,\r\n currentValue: Bridge.getDefaultValue(TValue)\r\n },\r\n props: {\r\n Current: {\r\n get: function () {\r\n return this.currentValue;\r\n }\r\n },\r\n System$Collections$IEnumerator$Current: {\r\n get: function () {\r\n if (this.index === 0 || (this.index === ((this._sortedList.Count + 1) | 0))) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumOpCantHappen);\r\n }\r\n\r\n return this.currentValue;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Dispose\", \"System$IDisposable$Dispose\",\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"Current\", [\"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(TValue) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\"]\r\n ],\r\n ctors: {\r\n ctor: function (sortedList) {\r\n this.$initialize();\r\n this._sortedList = sortedList;\r\n this.version = sortedList.version;\r\n }\r\n },\r\n methods: {\r\n Dispose: function () {\r\n this.index = 0;\r\n this.currentValue = Bridge.getDefaultValue(TValue);\r\n },\r\n moveNext: function () {\r\n var $t;\r\n if (this.version !== this._sortedList.version) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumFailedVersion);\r\n }\r\n\r\n if ((this.index >>> 0) < ((this._sortedList.Count) >>> 0)) {\r\n this.currentValue = ($t = this._sortedList.values)[System.Array.index(this.index, $t)];\r\n this.index = (this.index + 1) | 0;\r\n return true;\r\n }\r\n\r\n this.index = (this._sortedList.Count + 1) | 0;\r\n this.currentValue = Bridge.getDefaultValue(TValue);\r\n return false;\r\n },\r\n System$Collections$IEnumerator$reset: function () {\r\n if (this.version !== this._sortedList.version) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumFailedVersion);\r\n }\r\n this.index = 0;\r\n this.currentValue = Bridge.getDefaultValue(TValue);\r\n }\r\n }\r\n }; });\r\n\r\n // @source ValueList.js\r\n\r\n Bridge.define(\"System.Collections.Generic.SortedList$2.ValueList\", function (TKey, TValue) { return {\r\n inherits: [System.Collections.Generic.IList$1(TValue),System.Collections.ICollection],\r\n $kind: \"nested class\",\r\n fields: {\r\n _dict: null\r\n },\r\n props: {\r\n Count: {\r\n get: function () {\r\n return this._dict._size;\r\n }\r\n },\r\n IsReadOnly: {\r\n get: function () {\r\n return true;\r\n }\r\n },\r\n System$Collections$ICollection$IsSynchronized: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$ICollection$SyncRoot: {\r\n get: function () {\r\n return Bridge.cast(this._dict, System.Collections.ICollection).System$Collections$ICollection$SyncRoot;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"Count\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TValue) + \"$Count\",\r\n \"IsReadOnly\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TValue) + \"$IsReadOnly\",\r\n \"add\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TValue) + \"$add\",\r\n \"clear\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TValue) + \"$clear\",\r\n \"contains\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TValue) + \"$contains\",\r\n \"copyTo\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TValue) + \"$copyTo\",\r\n \"insert\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(TValue) + \"$insert\",\r\n \"getItem\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(TValue) + \"$getItem\",\r\n \"setItem\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(TValue) + \"$setItem\",\r\n \"GetEnumerator\", [\"System$Collections$Generic$IEnumerable$1$\" + Bridge.getTypeAlias(TValue) + \"$GetEnumerator\", \"System$Collections$Generic$IEnumerable$1$GetEnumerator\"],\r\n \"indexOf\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(TValue) + \"$indexOf\",\r\n \"remove\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TValue) + \"$remove\",\r\n \"removeAt\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(TValue) + \"$removeAt\"\r\n ],\r\n ctors: {\r\n ctor: function (dictionary) {\r\n this.$initialize();\r\n this._dict = dictionary;\r\n }\r\n },\r\n methods: {\r\n getItem: function (index) {\r\n return this._dict.GetByIndex(index);\r\n },\r\n setItem: function (index, value) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_SortedListNestedWrite);\r\n },\r\n add: function (key) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_SortedListNestedWrite);\r\n },\r\n clear: function () {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_SortedListNestedWrite);\r\n },\r\n contains: function (value) {\r\n return this._dict.ContainsValue(value);\r\n },\r\n copyTo: function (array, arrayIndex) {\r\n System.Array.copy(this._dict.values, 0, array, arrayIndex, this._dict.Count);\r\n },\r\n System$Collections$ICollection$copyTo: function (array, arrayIndex) {\r\n if (array != null && System.Array.getRank(array) !== 1) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_RankMultiDimNotSupported);\r\n }\r\n\r\n try {\r\n System.Array.copy(this._dict.values, 0, array, arrayIndex, this._dict.Count);\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.ArrayTypeMismatchException)) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Argument_InvalidArrayType);\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n },\r\n insert: function (index, value) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_SortedListNestedWrite);\r\n },\r\n GetEnumerator: function () {\r\n return new (System.Collections.Generic.SortedList$2.SortedListValueEnumerator(TKey,TValue))(this._dict);\r\n },\r\n System$Collections$IEnumerable$GetEnumerator: function () {\r\n return new (System.Collections.Generic.SortedList$2.SortedListValueEnumerator(TKey,TValue))(this._dict);\r\n },\r\n indexOf: function (value) {\r\n return System.Array.indexOfT(this._dict.values, value, 0, this._dict.Count);\r\n },\r\n remove: function (value) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_SortedListNestedWrite);\r\n return false;\r\n },\r\n removeAt: function (index) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_SortedListNestedWrite);\r\n }\r\n }\r\n }; });\r\n\r\n // @source SortedSet.js\r\n\r\n Bridge.define(\"System.Collections.Generic.SortedSet$1\", function (T) { return {\r\n inherits: [System.Collections.Generic.ISet$1(T),System.Collections.Generic.ICollection$1(T),System.Collections.ICollection,System.Collections.Generic.IReadOnlyCollection$1(T)],\r\n statics: {\r\n fields: {\r\n ComparerName: null,\r\n CountName: null,\r\n ItemsName: null,\r\n VersionName: null,\r\n TreeName: null,\r\n NodeValueName: null,\r\n EnumStartName: null,\r\n ReverseName: null,\r\n EnumVersionName: null,\r\n minName: null,\r\n maxName: null,\r\n lBoundActiveName: null,\r\n uBoundActiveName: null,\r\n StackAllocThreshold: 0\r\n },\r\n ctors: {\r\n init: function () {\r\n this.ComparerName = \"Comparer\";\r\n this.CountName = \"Count\";\r\n this.ItemsName = \"Items\";\r\n this.VersionName = \"Version\";\r\n this.TreeName = \"Tree\";\r\n this.NodeValueName = \"Item\";\r\n this.EnumStartName = \"EnumStarted\";\r\n this.ReverseName = \"Reverse\";\r\n this.EnumVersionName = \"EnumVersion\";\r\n this.minName = \"Min\";\r\n this.maxName = \"Max\";\r\n this.lBoundActiveName = \"lBoundActive\";\r\n this.uBoundActiveName = \"uBoundActive\";\r\n this.StackAllocThreshold = 100;\r\n }\r\n },\r\n methods: {\r\n GetSibling: function (node, parent) {\r\n if (Bridge.referenceEquals(parent.Left, node)) {\r\n return parent.Right;\r\n }\r\n return parent.Left;\r\n },\r\n Is2Node: function (node) {\r\n return System.Collections.Generic.SortedSet$1(T).IsBlack(node) && System.Collections.Generic.SortedSet$1(T).IsNullOrBlack(node.Left) && System.Collections.Generic.SortedSet$1(T).IsNullOrBlack(node.Right);\r\n },\r\n Is4Node: function (node) {\r\n return System.Collections.Generic.SortedSet$1(T).IsRed(node.Left) && System.Collections.Generic.SortedSet$1(T).IsRed(node.Right);\r\n },\r\n IsBlack: function (node) {\r\n return (node != null && !node.IsRed);\r\n },\r\n IsNullOrBlack: function (node) {\r\n return (node == null || !node.IsRed);\r\n },\r\n IsRed: function (node) {\r\n return (node != null && node.IsRed);\r\n },\r\n Merge2Nodes: function (parent, child1, child2) {\r\n parent.IsRed = false;\r\n child1.IsRed = true;\r\n child2.IsRed = true;\r\n },\r\n RotateLeft: function (node) {\r\n var x = node.Right;\r\n node.Right = x.Left;\r\n x.Left = node;\r\n return x;\r\n },\r\n RotateLeftRight: function (node) {\r\n var child = node.Left;\r\n var grandChild = child.Right;\r\n\r\n node.Left = grandChild.Right;\r\n grandChild.Right = node;\r\n child.Right = grandChild.Left;\r\n grandChild.Left = child;\r\n return grandChild;\r\n },\r\n RotateRight: function (node) {\r\n var x = node.Left;\r\n node.Left = x.Right;\r\n x.Right = node;\r\n return x;\r\n },\r\n RotateRightLeft: function (node) {\r\n var child = node.Right;\r\n var grandChild = child.Left;\r\n\r\n node.Right = grandChild.Left;\r\n grandChild.Left = node;\r\n child.Left = grandChild.Right;\r\n grandChild.Right = child;\r\n return grandChild;\r\n },\r\n RotationNeeded: function (parent, current, sibling) {\r\n if (System.Collections.Generic.SortedSet$1(T).IsRed(sibling.Left)) {\r\n if (Bridge.referenceEquals(parent.Left, current)) {\r\n return System.Collections.Generic.TreeRotation.RightLeftRotation;\r\n }\r\n return System.Collections.Generic.TreeRotation.RightRotation;\r\n } else {\r\n if (Bridge.referenceEquals(parent.Left, current)) {\r\n return System.Collections.Generic.TreeRotation.LeftRotation;\r\n }\r\n return System.Collections.Generic.TreeRotation.LeftRightRotation;\r\n }\r\n },\r\n CreateSetComparer: function () {\r\n return new (System.Collections.Generic.SortedSetEqualityComparer$1(T)).ctor();\r\n },\r\n CreateSetComparer$1: function (memberEqualityComparer) {\r\n return new (System.Collections.Generic.SortedSetEqualityComparer$1(T)).$ctor3(memberEqualityComparer);\r\n },\r\n SortedSetEquals: function (set1, set2, comparer) {\r\n var $t, $t1;\r\n if (set1 == null) {\r\n return (set2 == null);\r\n } else if (set2 == null) {\r\n return false;\r\n }\r\n\r\n if (System.Collections.Generic.SortedSet$1(T).AreComparersEqual(set1, set2)) {\r\n if (set1.Count !== set2.Count) {\r\n return false;\r\n }\r\n\r\n return set1.setEquals(set2);\r\n } else {\r\n var found = false;\r\n $t = Bridge.getEnumerator(set1);\r\n try {\r\n while ($t.moveNext()) {\r\n var item1 = $t.Current;\r\n found = false;\r\n $t1 = Bridge.getEnumerator(set2);\r\n try {\r\n while ($t1.moveNext()) {\r\n var item2 = $t1.Current;\r\n if (comparer[Bridge.geti(comparer, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](item1, item2) === 0) {\r\n found = true;\r\n break;\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t1, System.IDisposable)) {\r\n $t1.System$IDisposable$Dispose();\r\n }\r\n }\r\n if (!found) {\r\n return false;\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n },\r\n AreComparersEqual: function (set1, set2) {\r\n return Bridge.equals(set1.Comparer, set2.Comparer);\r\n },\r\n Split4Node: function (node) {\r\n node.IsRed = true;\r\n node.Left.IsRed = false;\r\n node.Right.IsRed = false;\r\n },\r\n ConstructRootFromSortedArray: function (arr, startIndex, endIndex, redNode) {\r\n\r\n\r\n\r\n\r\n\r\n var size = (((endIndex - startIndex) | 0) + 1) | 0;\r\n if (size === 0) {\r\n return null;\r\n }\r\n var root = null;\r\n if (size === 1) {\r\n root = new (System.Collections.Generic.SortedSet$1.Node(T)).$ctor1(arr[System.Array.index(startIndex, arr)], false);\r\n if (redNode != null) {\r\n root.Left = redNode;\r\n }\r\n } else if (size === 2) {\r\n root = new (System.Collections.Generic.SortedSet$1.Node(T)).$ctor1(arr[System.Array.index(startIndex, arr)], false);\r\n root.Right = new (System.Collections.Generic.SortedSet$1.Node(T)).$ctor1(arr[System.Array.index(endIndex, arr)], false);\r\n root.Right.IsRed = true;\r\n if (redNode != null) {\r\n root.Left = redNode;\r\n }\r\n } else if (size === 3) {\r\n root = new (System.Collections.Generic.SortedSet$1.Node(T)).$ctor1(arr[System.Array.index(((startIndex + 1) | 0), arr)], false);\r\n root.Left = new (System.Collections.Generic.SortedSet$1.Node(T)).$ctor1(arr[System.Array.index(startIndex, arr)], false);\r\n root.Right = new (System.Collections.Generic.SortedSet$1.Node(T)).$ctor1(arr[System.Array.index(endIndex, arr)], false);\r\n if (redNode != null) {\r\n root.Left.Left = redNode;\r\n\r\n }\r\n } else {\r\n var midpt = (((Bridge.Int.div((((startIndex + endIndex) | 0)), 2)) | 0));\r\n root = new (System.Collections.Generic.SortedSet$1.Node(T)).$ctor1(arr[System.Array.index(midpt, arr)], false);\r\n root.Left = System.Collections.Generic.SortedSet$1(T).ConstructRootFromSortedArray(arr, startIndex, ((midpt - 1) | 0), redNode);\r\n if (size % 2 === 0) {\r\n root.Right = System.Collections.Generic.SortedSet$1(T).ConstructRootFromSortedArray(arr, ((midpt + 2) | 0), endIndex, new (System.Collections.Generic.SortedSet$1.Node(T)).$ctor1(arr[System.Array.index(((midpt + 1) | 0), arr)], true));\r\n } else {\r\n root.Right = System.Collections.Generic.SortedSet$1(T).ConstructRootFromSortedArray(arr, ((midpt + 1) | 0), endIndex, null);\r\n }\r\n }\r\n return root;\r\n\r\n },\r\n log2: function (value) {\r\n var c = 0;\r\n while (value > 0) {\r\n c = (c + 1) | 0;\r\n value = value >> 1;\r\n }\r\n return c;\r\n }\r\n }\r\n },\r\n fields: {\r\n root: null,\r\n comparer: null,\r\n count: 0,\r\n version: 0\r\n },\r\n props: {\r\n Count: {\r\n get: function () {\r\n this.VersionCheck();\r\n return this.count;\r\n }\r\n },\r\n Comparer: {\r\n get: function () {\r\n return this.comparer;\r\n }\r\n },\r\n System$Collections$Generic$ICollection$1$IsReadOnly: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$ICollection$IsSynchronized: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$ICollection$SyncRoot: {\r\n get: function () {\r\n return null;\r\n }\r\n },\r\n Min: {\r\n get: function () {\r\n var ret = Bridge.getDefaultValue(T);\r\n this.InOrderTreeWalk(function (n) {\r\n ret = n.Item;\r\n return false;\r\n });\r\n return ret;\r\n }\r\n },\r\n Max: {\r\n get: function () {\r\n var ret = Bridge.getDefaultValue(T);\r\n this.InOrderTreeWalk$1(function (n) {\r\n ret = n.Item;\r\n return false;\r\n }, true);\r\n return ret;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Count\", [\"System$Collections$Generic$IReadOnlyCollection$1$\" + Bridge.getTypeAlias(T) + \"$Count\", \"System$Collections$Generic$IReadOnlyCollection$1$Count\"],\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"Count\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$Count\",\r\n \"System$Collections$Generic$ICollection$1$IsReadOnly\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$IsReadOnly\",\r\n \"add\", \"System$Collections$Generic$ISet$1$\" + Bridge.getTypeAlias(T) + \"$add\",\r\n \"System$Collections$Generic$ICollection$1$add\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$add\",\r\n \"remove\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$remove\",\r\n \"clear\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$clear\",\r\n \"contains\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$contains\",\r\n \"copyTo\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$copyTo\",\r\n \"System$Collections$Generic$IEnumerable$1$GetEnumerator\", \"System$Collections$Generic$IEnumerable$1$\" + Bridge.getTypeAlias(T) + \"$GetEnumerator\",\r\n \"unionWith\", \"System$Collections$Generic$ISet$1$\" + Bridge.getTypeAlias(T) + \"$unionWith\",\r\n \"intersectWith\", \"System$Collections$Generic$ISet$1$\" + Bridge.getTypeAlias(T) + \"$intersectWith\",\r\n \"exceptWith\", \"System$Collections$Generic$ISet$1$\" + Bridge.getTypeAlias(T) + \"$exceptWith\",\r\n \"symmetricExceptWith\", \"System$Collections$Generic$ISet$1$\" + Bridge.getTypeAlias(T) + \"$symmetricExceptWith\",\r\n \"isSubsetOf\", \"System$Collections$Generic$ISet$1$\" + Bridge.getTypeAlias(T) + \"$isSubsetOf\",\r\n \"isProperSubsetOf\", \"System$Collections$Generic$ISet$1$\" + Bridge.getTypeAlias(T) + \"$isProperSubsetOf\",\r\n \"isSupersetOf\", \"System$Collections$Generic$ISet$1$\" + Bridge.getTypeAlias(T) + \"$isSupersetOf\",\r\n \"isProperSupersetOf\", \"System$Collections$Generic$ISet$1$\" + Bridge.getTypeAlias(T) + \"$isProperSupersetOf\",\r\n \"setEquals\", \"System$Collections$Generic$ISet$1$\" + Bridge.getTypeAlias(T) + \"$setEquals\",\r\n \"overlaps\", \"System$Collections$Generic$ISet$1$\" + Bridge.getTypeAlias(T) + \"$overlaps\"\r\n ],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n this.comparer = new (System.Collections.Generic.Comparer$1(T))(System.Collections.Generic.Comparer$1.$default.fn);\r\n\r\n },\r\n $ctor1: function (comparer) {\r\n this.$initialize();\r\n if (comparer == null) {\r\n this.comparer = new (System.Collections.Generic.Comparer$1(T))(System.Collections.Generic.Comparer$1.$default.fn);\r\n } else {\r\n this.comparer = comparer;\r\n }\r\n },\r\n $ctor2: function (collection) {\r\n System.Collections.Generic.SortedSet$1(T).$ctor3.call(this, collection, new (System.Collections.Generic.Comparer$1(T))(System.Collections.Generic.Comparer$1.$default.fn));\r\n },\r\n $ctor3: function (collection, comparer) {\r\n System.Collections.Generic.SortedSet$1(T).$ctor1.call(this, comparer);\r\n\r\n if (collection == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"collection\");\r\n }\r\n\r\n var baseSortedSet = Bridge.as(collection, System.Collections.Generic.SortedSet$1(T));\r\n var baseTreeSubSet = Bridge.as(collection, System.Collections.Generic.SortedSet$1.TreeSubSet(T));\r\n if (baseSortedSet != null && baseTreeSubSet == null && System.Collections.Generic.SortedSet$1(T).AreComparersEqual(this, baseSortedSet)) {\r\n if (baseSortedSet.Count === 0) {\r\n this.count = 0;\r\n this.version = 0;\r\n this.root = null;\r\n return;\r\n }\r\n\r\n\r\n var theirStack = new (System.Collections.Generic.Stack$1(System.Collections.Generic.SortedSet$1.Node(T))).$ctor2(((Bridge.Int.mul(2, System.Collections.Generic.SortedSet$1(T).log2(baseSortedSet.Count)) + 2) | 0));\r\n var myStack = new (System.Collections.Generic.Stack$1(System.Collections.Generic.SortedSet$1.Node(T))).$ctor2(((Bridge.Int.mul(2, System.Collections.Generic.SortedSet$1(T).log2(baseSortedSet.Count)) + 2) | 0));\r\n var theirCurrent = baseSortedSet.root;\r\n var myCurrent = (theirCurrent != null ? new (System.Collections.Generic.SortedSet$1.Node(T)).$ctor1(theirCurrent.Item, theirCurrent.IsRed) : null);\r\n this.root = myCurrent;\r\n while (theirCurrent != null) {\r\n theirStack.Push(theirCurrent);\r\n myStack.Push(myCurrent);\r\n myCurrent.Left = (theirCurrent.Left != null ? new (System.Collections.Generic.SortedSet$1.Node(T)).$ctor1(theirCurrent.Left.Item, theirCurrent.Left.IsRed) : null);\r\n theirCurrent = theirCurrent.Left;\r\n myCurrent = myCurrent.Left;\r\n }\r\n while (theirStack.Count !== 0) {\r\n theirCurrent = theirStack.Pop();\r\n myCurrent = myStack.Pop();\r\n var theirRight = theirCurrent.Right;\r\n var myRight = null;\r\n if (theirRight != null) {\r\n myRight = new (System.Collections.Generic.SortedSet$1.Node(T)).$ctor1(theirRight.Item, theirRight.IsRed);\r\n }\r\n myCurrent.Right = myRight;\r\n\r\n while (theirRight != null) {\r\n theirStack.Push(theirRight);\r\n myStack.Push(myRight);\r\n myRight.Left = (theirRight.Left != null ? new (System.Collections.Generic.SortedSet$1.Node(T)).$ctor1(theirRight.Left.Item, theirRight.Left.IsRed) : null);\r\n theirRight = theirRight.Left;\r\n myRight = myRight.Left;\r\n }\r\n }\r\n this.count = baseSortedSet.count;\r\n this.version = 0;\r\n } else {\r\n\r\n var els = new (System.Collections.Generic.List$1(T)).$ctor1(collection);\r\n els.Sort$1(this.comparer);\r\n for (var i = 1; i < els.Count; i = (i + 1) | 0) {\r\n if (this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](els.getItem(i), els.getItem(((i - 1) | 0))) === 0) {\r\n els.removeAt(i);\r\n i = (i - 1) | 0;\r\n }\r\n }\r\n this.root = System.Collections.Generic.SortedSet$1(T).ConstructRootFromSortedArray(els.ToArray(), 0, ((els.Count - 1) | 0), null);\r\n this.count = els.Count;\r\n this.version = 0;\r\n }\r\n }\r\n },\r\n methods: {\r\n AddAllElements: function (collection) {\r\n var $t;\r\n\r\n $t = Bridge.getEnumerator(collection, T);\r\n try {\r\n while ($t.moveNext()) {\r\n var item = $t.Current;\r\n if (!this.contains(item)) {\r\n this.add(item);\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n },\r\n RemoveAllElements: function (collection) {\r\n var $t;\r\n var min = this.Min;\r\n var max = this.Max;\r\n $t = Bridge.getEnumerator(collection, T);\r\n try {\r\n while ($t.moveNext()) {\r\n var item = $t.Current;\r\n if (!(this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](item, min) < 0 || this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](item, max) > 0) && this.contains(item)) {\r\n this.remove(item);\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n },\r\n ContainsAllElements: function (collection) {\r\n var $t;\r\n $t = Bridge.getEnumerator(collection, T);\r\n try {\r\n while ($t.moveNext()) {\r\n var item = $t.Current;\r\n if (!this.contains(item)) {\r\n return false;\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n return true;\r\n },\r\n InOrderTreeWalk: function (action) {\r\n return this.InOrderTreeWalk$1(action, false);\r\n },\r\n InOrderTreeWalk$1: function (action, reverse) {\r\n if (this.root == null) {\r\n return true;\r\n }\r\n\r\n var stack = new (System.Collections.Generic.Stack$1(System.Collections.Generic.SortedSet$1.Node(T))).$ctor2(Bridge.Int.mul(2, (System.Collections.Generic.SortedSet$1(T).log2(((this.Count + 1) | 0)))));\r\n var current = this.root;\r\n while (current != null) {\r\n stack.Push(current);\r\n current = (reverse ? current.Right : current.Left);\r\n }\r\n while (stack.Count !== 0) {\r\n current = stack.Pop();\r\n if (!action(current)) {\r\n return false;\r\n }\r\n\r\n var node = (reverse ? current.Left : current.Right);\r\n while (node != null) {\r\n stack.Push(node);\r\n node = (reverse ? node.Right : node.Left);\r\n }\r\n }\r\n return true;\r\n },\r\n BreadthFirstTreeWalk: function (action) {\r\n if (this.root == null) {\r\n return true;\r\n }\r\n\r\n var processQueue = new (System.Collections.Generic.List$1(System.Collections.Generic.SortedSet$1.Node(T))).ctor();\r\n processQueue.add(this.root);\r\n var current;\r\n\r\n while (processQueue.Count !== 0) {\r\n current = processQueue.getItem(0);\r\n processQueue.removeAt(0);\r\n if (!action(current)) {\r\n return false;\r\n }\r\n if (current.Left != null) {\r\n processQueue.add(current.Left);\r\n }\r\n if (current.Right != null) {\r\n processQueue.add(current.Right);\r\n }\r\n }\r\n return true;\r\n },\r\n VersionCheck: function () { },\r\n IsWithinRange: function (item) {\r\n return true;\r\n\r\n },\r\n add: function (item) {\r\n return this.AddIfNotPresent(item);\r\n },\r\n System$Collections$Generic$ICollection$1$add: function (item) {\r\n this.AddIfNotPresent(item);\r\n },\r\n AddIfNotPresent: function (item) {\r\n if (this.root == null) {\r\n this.root = new (System.Collections.Generic.SortedSet$1.Node(T)).$ctor1(item, false);\r\n this.count = 1;\r\n this.version = (this.version + 1) | 0;\r\n return true;\r\n }\r\n\r\n var current = this.root;\r\n var parent = { v : null };\r\n var grandParent = null;\r\n var greatGrandParent = null;\r\n\r\n this.version = (this.version + 1) | 0;\r\n\r\n\r\n var order = 0;\r\n while (current != null) {\r\n order = this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](item, current.Item);\r\n if (order === 0) {\r\n this.root.IsRed = false;\r\n return false;\r\n }\r\n\r\n if (System.Collections.Generic.SortedSet$1(T).Is4Node(current)) {\r\n System.Collections.Generic.SortedSet$1(T).Split4Node(current);\r\n if (System.Collections.Generic.SortedSet$1(T).IsRed(parent.v)) {\r\n this.InsertionBalance(current, parent, grandParent, greatGrandParent);\r\n }\r\n }\r\n greatGrandParent = grandParent;\r\n grandParent = parent.v;\r\n parent.v = current;\r\n current = (order < 0) ? current.Left : current.Right;\r\n }\r\n\r\n var node = new (System.Collections.Generic.SortedSet$1.Node(T)).ctor(item);\r\n if (order > 0) {\r\n parent.v.Right = node;\r\n } else {\r\n parent.v.Left = node;\r\n }\r\n\r\n if (parent.v.IsRed) {\r\n this.InsertionBalance(node, parent, grandParent, greatGrandParent);\r\n }\r\n\r\n this.root.IsRed = false;\r\n this.count = (this.count + 1) | 0;\r\n return true;\r\n },\r\n remove: function (item) {\r\n return this.DoRemove(item);\r\n },\r\n DoRemove: function (item) {\r\n\r\n if (this.root == null) {\r\n return false;\r\n }\r\n\r\n\r\n\r\n this.version = (this.version + 1) | 0;\r\n\r\n var current = this.root;\r\n var parent = null;\r\n var grandParent = null;\r\n var match = null;\r\n var parentOfMatch = null;\r\n var foundMatch = false;\r\n while (current != null) {\r\n if (System.Collections.Generic.SortedSet$1(T).Is2Node(current)) {\r\n if (parent == null) {\r\n current.IsRed = true;\r\n } else {\r\n var sibling = System.Collections.Generic.SortedSet$1(T).GetSibling(current, parent);\r\n if (sibling.IsRed) {\r\n if (Bridge.referenceEquals(parent.Right, sibling)) {\r\n System.Collections.Generic.SortedSet$1(T).RotateLeft(parent);\r\n } else {\r\n System.Collections.Generic.SortedSet$1(T).RotateRight(parent);\r\n }\r\n\r\n parent.IsRed = true;\r\n sibling.IsRed = false;\r\n this.ReplaceChildOfNodeOrRoot(grandParent, parent, sibling);\r\n grandParent = sibling;\r\n if (Bridge.referenceEquals(parent, match)) {\r\n parentOfMatch = sibling;\r\n }\r\n\r\n sibling = (Bridge.referenceEquals(parent.Left, current)) ? parent.Right : parent.Left;\r\n }\r\n\r\n if (System.Collections.Generic.SortedSet$1(T).Is2Node(sibling)) {\r\n System.Collections.Generic.SortedSet$1(T).Merge2Nodes(parent, current, sibling);\r\n } else {\r\n var rotation = System.Collections.Generic.SortedSet$1(T).RotationNeeded(parent, current, sibling);\r\n var newGrandParent = null;\r\n switch (rotation) {\r\n case System.Collections.Generic.TreeRotation.RightRotation: \r\n sibling.Left.IsRed = false;\r\n newGrandParent = System.Collections.Generic.SortedSet$1(T).RotateRight(parent);\r\n break;\r\n case System.Collections.Generic.TreeRotation.LeftRotation: \r\n sibling.Right.IsRed = false;\r\n newGrandParent = System.Collections.Generic.SortedSet$1(T).RotateLeft(parent);\r\n break;\r\n case System.Collections.Generic.TreeRotation.RightLeftRotation: \r\n newGrandParent = System.Collections.Generic.SortedSet$1(T).RotateRightLeft(parent);\r\n break;\r\n case System.Collections.Generic.TreeRotation.LeftRightRotation: \r\n newGrandParent = System.Collections.Generic.SortedSet$1(T).RotateLeftRight(parent);\r\n break;\r\n }\r\n\r\n newGrandParent.IsRed = parent.IsRed;\r\n parent.IsRed = false;\r\n current.IsRed = true;\r\n this.ReplaceChildOfNodeOrRoot(grandParent, parent, newGrandParent);\r\n if (Bridge.referenceEquals(parent, match)) {\r\n parentOfMatch = newGrandParent;\r\n }\r\n grandParent = newGrandParent;\r\n }\r\n }\r\n }\r\n\r\n var order = foundMatch ? -1 : this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](item, current.Item);\r\n if (order === 0) {\r\n foundMatch = true;\r\n match = current;\r\n parentOfMatch = parent;\r\n }\r\n\r\n grandParent = parent;\r\n parent = current;\r\n\r\n if (order < 0) {\r\n current = current.Left;\r\n } else {\r\n current = current.Right;\r\n }\r\n }\r\n\r\n if (match != null) {\r\n this.ReplaceNode(match, parentOfMatch, parent, grandParent);\r\n this.count = (this.count - 1) | 0;\r\n }\r\n\r\n if (this.root != null) {\r\n this.root.IsRed = false;\r\n }\r\n return foundMatch;\r\n },\r\n clear: function () {\r\n this.root = null;\r\n this.count = 0;\r\n this.version = (this.version + 1) | 0;\r\n },\r\n contains: function (item) {\r\n\r\n return this.FindNode(item) != null;\r\n },\r\n CopyTo: function (array) {\r\n this.CopyTo$1(array, 0, this.Count);\r\n },\r\n copyTo: function (array, index) {\r\n this.CopyTo$1(array, index, this.Count);\r\n },\r\n CopyTo$1: function (array, index, count) {\r\n if (array == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.array);\r\n }\r\n\r\n if (index < 0) {\r\n System.ThrowHelper.ThrowArgumentOutOfRangeException$1(System.ExceptionArgument.index);\r\n }\r\n\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n\r\n if (index > array.length || count > ((array.length - index) | 0)) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n count = (count + index) | 0;\r\n\r\n this.InOrderTreeWalk(function (node) {\r\n if (index >= count) {\r\n return false;\r\n } else {\r\n array[System.Array.index(Bridge.identity(index, ((index = (index + 1) | 0))), array)] = node.Item;\r\n return true;\r\n }\r\n });\r\n },\r\n System$Collections$ICollection$copyTo: function (array, index) {\r\n if (array == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.array);\r\n }\r\n\r\n if (System.Array.getRank(array) !== 1) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_RankMultiDimNotSupported);\r\n }\r\n\r\n if (System.Array.getLower(array, 0) !== 0) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_NonZeroLowerBound);\r\n }\r\n\r\n if (index < 0) {\r\n System.ThrowHelper.ThrowArgumentOutOfRangeException$2(System.ExceptionArgument.arrayIndex, System.ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);\r\n }\r\n\r\n if (((array.length - index) | 0) < this.Count) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_ArrayPlusOffTooSmall);\r\n }\r\n\r\n var tarray = Bridge.as(array, System.Array.type(T));\r\n if (tarray != null) {\r\n this.copyTo(tarray, index);\r\n } else {\r\n var objects = Bridge.as(array, System.Array.type(System.Object));\r\n if (objects == null) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Argument_InvalidArrayType);\r\n }\r\n\r\n try {\r\n this.InOrderTreeWalk(function (node) {\r\n objects[System.Array.index(Bridge.identity(index, ((index = (index + 1) | 0))), objects)] = node.Item;\r\n return true;\r\n });\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.ArrayTypeMismatchException)) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Argument_InvalidArrayType);\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n }\r\n },\r\n GetEnumerator: function () {\r\n return new (System.Collections.Generic.SortedSet$1.Enumerator(T)).$ctor1(this);\r\n },\r\n System$Collections$Generic$IEnumerable$1$GetEnumerator: function () {\r\n return new (System.Collections.Generic.SortedSet$1.Enumerator(T)).$ctor1(this).$clone();\r\n },\r\n System$Collections$IEnumerable$GetEnumerator: function () {\r\n return new (System.Collections.Generic.SortedSet$1.Enumerator(T)).$ctor1(this).$clone();\r\n },\r\n InsertionBalance: function (current, parent, grandParent, greatGrandParent) {\r\n var parentIsOnRight = (Bridge.referenceEquals(grandParent.Right, parent.v));\r\n var currentIsOnRight = (Bridge.referenceEquals(parent.v.Right, current));\r\n\r\n var newChildOfGreatGrandParent;\r\n if (parentIsOnRight === currentIsOnRight) {\r\n newChildOfGreatGrandParent = currentIsOnRight ? System.Collections.Generic.SortedSet$1(T).RotateLeft(grandParent) : System.Collections.Generic.SortedSet$1(T).RotateRight(grandParent);\r\n } else {\r\n newChildOfGreatGrandParent = currentIsOnRight ? System.Collections.Generic.SortedSet$1(T).RotateLeftRight(grandParent) : System.Collections.Generic.SortedSet$1(T).RotateRightLeft(grandParent);\r\n parent.v = greatGrandParent;\r\n }\r\n grandParent.IsRed = true;\r\n newChildOfGreatGrandParent.IsRed = false;\r\n\r\n this.ReplaceChildOfNodeOrRoot(greatGrandParent, grandParent, newChildOfGreatGrandParent);\r\n },\r\n ReplaceChildOfNodeOrRoot: function (parent, child, newChild) {\r\n if (parent != null) {\r\n if (Bridge.referenceEquals(parent.Left, child)) {\r\n parent.Left = newChild;\r\n } else {\r\n parent.Right = newChild;\r\n }\r\n } else {\r\n this.root = newChild;\r\n }\r\n },\r\n ReplaceNode: function (match, parentOfMatch, succesor, parentOfSuccesor) {\r\n if (Bridge.referenceEquals(succesor, match)) {\r\n succesor = match.Left;\r\n } else {\r\n if (succesor.Right != null) {\r\n succesor.Right.IsRed = false;\r\n }\r\n\r\n if (!Bridge.referenceEquals(parentOfSuccesor, match)) {\r\n parentOfSuccesor.Left = succesor.Right;\r\n succesor.Right = match.Right;\r\n }\r\n\r\n succesor.Left = match.Left;\r\n }\r\n\r\n if (succesor != null) {\r\n succesor.IsRed = match.IsRed;\r\n }\r\n\r\n this.ReplaceChildOfNodeOrRoot(parentOfMatch, match, succesor);\r\n\r\n },\r\n FindNode: function (item) {\r\n var current = this.root;\r\n while (current != null) {\r\n var order = this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](item, current.Item);\r\n if (order === 0) {\r\n return current;\r\n } else {\r\n current = (order < 0) ? current.Left : current.Right;\r\n }\r\n }\r\n\r\n return null;\r\n },\r\n InternalIndexOf: function (item) {\r\n var current = this.root;\r\n var count = 0;\r\n while (current != null) {\r\n var order = this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](item, current.Item);\r\n if (order === 0) {\r\n return count;\r\n } else {\r\n current = (order < 0) ? current.Left : current.Right;\r\n count = (order < 0) ? (((Bridge.Int.mul(2, count) + 1) | 0)) : (((Bridge.Int.mul(2, count) + 2) | 0));\r\n }\r\n }\r\n return -1;\r\n },\r\n FindRange: function (from, to) {\r\n return this.FindRange$1(from, to, true, true);\r\n },\r\n FindRange$1: function (from, to, lowerBoundActive, upperBoundActive) {\r\n var current = this.root;\r\n while (current != null) {\r\n if (lowerBoundActive && this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](from, current.Item) > 0) {\r\n current = current.Right;\r\n } else {\r\n if (upperBoundActive && this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](to, current.Item) < 0) {\r\n current = current.Left;\r\n } else {\r\n return current;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n },\r\n UpdateVersion: function () {\r\n this.version = (this.version + 1) | 0;\r\n },\r\n ToArray: function () {\r\n var newArray = System.Array.init(this.Count, function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n this.CopyTo(newArray);\r\n return newArray;\r\n },\r\n unionWith: function (other) {\r\n var $t;\r\n if (other == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"other\");\r\n }\r\n\r\n var s = Bridge.as(other, System.Collections.Generic.SortedSet$1(T));\r\n var t = Bridge.as(this, System.Collections.Generic.SortedSet$1.TreeSubSet(T));\r\n\r\n if (t != null) {\r\n this.VersionCheck();\r\n }\r\n\r\n if (s != null && t == null && this.count === 0) {\r\n var dummy = new (System.Collections.Generic.SortedSet$1(T)).$ctor3(s, this.comparer);\r\n this.root = dummy.root;\r\n this.count = dummy.count;\r\n this.version = (this.version + 1) | 0;\r\n return;\r\n }\r\n\r\n\r\n if (s != null && t == null && System.Collections.Generic.SortedSet$1(T).AreComparersEqual(this, s) && (s.Count > ((Bridge.Int.div(this.Count, 2)) | 0))) {\r\n var merged = System.Array.init(((s.Count + this.Count) | 0), function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n var c = 0;\r\n var mine = this.GetEnumerator();\r\n var theirs = s.GetEnumerator();\r\n var mineEnded = !mine.moveNext(), theirsEnded = !theirs.moveNext();\r\n while (!mineEnded && !theirsEnded) {\r\n var comp = ($t = this.Comparer)[Bridge.geti($t, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](mine.Current, theirs.Current);\r\n if (comp < 0) {\r\n merged[System.Array.index(Bridge.identity(c, ((c = (c + 1) | 0))), merged)] = mine.Current;\r\n mineEnded = !mine.moveNext();\r\n } else if (comp === 0) {\r\n merged[System.Array.index(Bridge.identity(c, ((c = (c + 1) | 0))), merged)] = theirs.Current;\r\n mineEnded = !mine.moveNext();\r\n theirsEnded = !theirs.moveNext();\r\n } else {\r\n merged[System.Array.index(Bridge.identity(c, ((c = (c + 1) | 0))), merged)] = theirs.Current;\r\n theirsEnded = !theirs.moveNext();\r\n }\r\n }\r\n\r\n if (!mineEnded || !theirsEnded) {\r\n var remaining = (mineEnded ? theirs : mine);\r\n do {\r\n merged[System.Array.index(Bridge.identity(c, ((c = (c + 1) | 0))), merged)] = remaining.Current;\r\n } while (remaining.moveNext());\r\n }\r\n\r\n\r\n this.root = null;\r\n\r\n\r\n this.root = System.Collections.Generic.SortedSet$1(T).ConstructRootFromSortedArray(merged, 0, ((c - 1) | 0), null);\r\n this.count = c;\r\n this.version = (this.version + 1) | 0;\r\n } else {\r\n this.AddAllElements(other);\r\n }\r\n },\r\n intersectWith: function (other) {\r\n var $t, $t1;\r\n if (other == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"other\");\r\n }\r\n\r\n if (this.Count === 0) {\r\n return;\r\n }\r\n\r\n\r\n var s = Bridge.as(other, System.Collections.Generic.SortedSet$1(T));\r\n var t = Bridge.as(this, System.Collections.Generic.SortedSet$1.TreeSubSet(T));\r\n if (t != null) {\r\n this.VersionCheck();\r\n }\r\n if (s != null && t == null && System.Collections.Generic.SortedSet$1(T).AreComparersEqual(this, s)) {\r\n\r\n\r\n var merged = System.Array.init(this.Count, function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n var c = 0;\r\n var mine = this.GetEnumerator();\r\n var theirs = s.GetEnumerator();\r\n var mineEnded = !mine.moveNext(), theirsEnded = !theirs.moveNext();\r\n var max = this.Max;\r\n var min = this.Min;\r\n\r\n while (!mineEnded && !theirsEnded && ($t = this.Comparer)[Bridge.geti($t, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](theirs.Current, max) <= 0) {\r\n var comp = ($t1 = this.Comparer)[Bridge.geti($t1, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](mine.Current, theirs.Current);\r\n if (comp < 0) {\r\n mineEnded = !mine.moveNext();\r\n } else if (comp === 0) {\r\n merged[System.Array.index(Bridge.identity(c, ((c = (c + 1) | 0))), merged)] = theirs.Current;\r\n mineEnded = !mine.moveNext();\r\n theirsEnded = !theirs.moveNext();\r\n } else {\r\n theirsEnded = !theirs.moveNext();\r\n }\r\n }\r\n\r\n\r\n this.root = null;\r\n\r\n this.root = System.Collections.Generic.SortedSet$1(T).ConstructRootFromSortedArray(merged, 0, ((c - 1) | 0), null);\r\n this.count = c;\r\n this.version = (this.version + 1) | 0;\r\n } else {\r\n this.IntersectWithEnumerable(other);\r\n }\r\n },\r\n IntersectWithEnumerable: function (other) {\r\n var $t;\r\n var toSave = new (System.Collections.Generic.List$1(T)).$ctor2(this.Count);\r\n $t = Bridge.getEnumerator(other, T);\r\n try {\r\n while ($t.moveNext()) {\r\n var item = $t.Current;\r\n if (this.contains(item)) {\r\n toSave.add(item);\r\n this.remove(item);\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n this.clear();\r\n this.AddAllElements(toSave);\r\n\r\n },\r\n exceptWith: function (other) {\r\n var $t;\r\n if (other == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"other\");\r\n }\r\n\r\n if (this.count === 0) {\r\n return;\r\n }\r\n\r\n if (Bridge.referenceEquals(other, this)) {\r\n this.clear();\r\n return;\r\n }\r\n\r\n var asSorted = Bridge.as(other, System.Collections.Generic.SortedSet$1(T));\r\n\r\n if (asSorted != null && System.Collections.Generic.SortedSet$1(T).AreComparersEqual(this, asSorted)) {\r\n if (!(this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](asSorted.Max, this.Min) < 0 || this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](asSorted.Min, this.Max) > 0)) {\r\n var min = this.Min;\r\n var max = this.Max;\r\n $t = Bridge.getEnumerator(other, T);\r\n try {\r\n while ($t.moveNext()) {\r\n var item = $t.Current;\r\n if (this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](item, min) < 0) {\r\n continue;\r\n }\r\n if (this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](item, max) > 0) {\r\n break;\r\n }\r\n this.remove(item);\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n }\r\n\r\n } else {\r\n this.RemoveAllElements(other);\r\n }\r\n },\r\n symmetricExceptWith: function (other) {\r\n if (other == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"other\");\r\n }\r\n\r\n if (this.Count === 0) {\r\n this.unionWith(other);\r\n return;\r\n }\r\n\r\n if (Bridge.referenceEquals(other, this)) {\r\n this.clear();\r\n return;\r\n }\r\n\r\n\r\n var asSorted = Bridge.as(other, System.Collections.Generic.SortedSet$1(T));\r\n var asHash = Bridge.as(other, System.Collections.Generic.HashSet$1(T));\r\n\r\n if (asSorted != null && System.Collections.Generic.SortedSet$1(T).AreComparersEqual(this, asSorted)) {\r\n this.SymmetricExceptWithSameEC$1(asSorted);\r\n } else if (asHash != null && Bridge.equals(this.comparer, new (System.Collections.Generic.Comparer$1(T))(System.Collections.Generic.Comparer$1.$default.fn)) && Bridge.equals(asHash.Comparer, System.Collections.Generic.EqualityComparer$1(T).def)) {\r\n this.SymmetricExceptWithSameEC$1(asHash);\r\n } else {\r\n var elements = (new (System.Collections.Generic.List$1(T)).$ctor1(other)).ToArray();\r\n System.Array.sort(elements, this.Comparer);\r\n this.SymmetricExceptWithSameEC(elements);\r\n }\r\n },\r\n SymmetricExceptWithSameEC$1: function (other) {\r\n var $t;\r\n $t = Bridge.getEnumerator(other, T);\r\n try {\r\n while ($t.moveNext()) {\r\n var item = $t.Current;\r\n if (this.contains(item)) {\r\n this.remove(item);\r\n } else {\r\n this.add(item);\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n },\r\n SymmetricExceptWithSameEC: function (other) {\r\n if (other.length === 0) {\r\n return;\r\n }\r\n var last = other[System.Array.index(0, other)];\r\n for (var i = 0; i < other.length; i = (i + 1) | 0) {\r\n while (i < other.length && i !== 0 && this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](other[System.Array.index(i, other)], last) === 0) {\r\n i = (i + 1) | 0;\r\n }\r\n if (i >= other.length) {\r\n break;\r\n }\r\n if (this.contains(other[System.Array.index(i, other)])) {\r\n this.remove(other[System.Array.index(i, other)]);\r\n } else {\r\n this.add(other[System.Array.index(i, other)]);\r\n }\r\n last = other[System.Array.index(i, other)];\r\n }\r\n },\r\n isSubsetOf: function (other) {\r\n if (other == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"other\");\r\n }\r\n\r\n if (this.Count === 0) {\r\n return true;\r\n }\r\n\r\n\r\n var asSorted = Bridge.as(other, System.Collections.Generic.SortedSet$1(T));\r\n if (asSorted != null && System.Collections.Generic.SortedSet$1(T).AreComparersEqual(this, asSorted)) {\r\n if (this.Count > asSorted.Count) {\r\n return false;\r\n }\r\n return this.IsSubsetOfSortedSetWithSameEC(asSorted);\r\n } else {\r\n\r\n var result = this.CheckUniqueAndUnfoundElements(other, false);\r\n return (result.uniqueCount === this.Count && result.unfoundCount >= 0);\r\n }\r\n },\r\n IsSubsetOfSortedSetWithSameEC: function (asSorted) {\r\n var $t;\r\n var prunedOther = asSorted.GetViewBetween(this.Min, this.Max);\r\n $t = Bridge.getEnumerator(this);\r\n try {\r\n while ($t.moveNext()) {\r\n var item = $t.Current;\r\n if (!prunedOther.contains(item)) {\r\n return false;\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n return true;\r\n\r\n },\r\n isProperSubsetOf: function (other) {\r\n if (other == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"other\");\r\n }\r\n\r\n if ((Bridge.as(other, System.Collections.ICollection)) != null) {\r\n if (this.Count === 0) {\r\n return System.Array.getCount((Bridge.as(other, System.Collections.ICollection))) > 0;\r\n }\r\n }\r\n\r\n\r\n\r\n var asHash = Bridge.as(other, System.Collections.Generic.HashSet$1(T));\r\n if (asHash != null && Bridge.equals(this.comparer, new (System.Collections.Generic.Comparer$1(T))(System.Collections.Generic.Comparer$1.$default.fn)) && Bridge.equals(asHash.Comparer, System.Collections.Generic.EqualityComparer$1(T).def)) {\r\n return asHash.isProperSupersetOf(this);\r\n }\r\n\r\n var asSorted = Bridge.as(other, System.Collections.Generic.SortedSet$1(T));\r\n if (asSorted != null && System.Collections.Generic.SortedSet$1(T).AreComparersEqual(this, asSorted)) {\r\n if (this.Count >= asSorted.Count) {\r\n return false;\r\n }\r\n return this.IsSubsetOfSortedSetWithSameEC(asSorted);\r\n }\r\n\r\n\r\n var result = this.CheckUniqueAndUnfoundElements(other, false);\r\n return (result.uniqueCount === this.Count && result.unfoundCount > 0);\r\n },\r\n isSupersetOf: function (other) {\r\n var $t;\r\n if (other == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"other\");\r\n }\r\n\r\n if ((Bridge.as(other, System.Collections.ICollection)) != null && System.Array.getCount((Bridge.as(other, System.Collections.ICollection))) === 0) {\r\n return true;\r\n }\r\n\r\n\r\n var asHash = Bridge.as(other, System.Collections.Generic.HashSet$1(T));\r\n if (asHash != null && Bridge.equals(this.comparer, new (System.Collections.Generic.Comparer$1(T))(System.Collections.Generic.Comparer$1.$default.fn)) && Bridge.equals(asHash.Comparer, System.Collections.Generic.EqualityComparer$1(T).def)) {\r\n return asHash.isSubsetOf(this);\r\n }\r\n\r\n var asSorted = Bridge.as(other, System.Collections.Generic.SortedSet$1(T));\r\n if (asSorted != null && System.Collections.Generic.SortedSet$1(T).AreComparersEqual(this, asSorted)) {\r\n if (this.Count < asSorted.Count) {\r\n return false;\r\n }\r\n var pruned = this.GetViewBetween(asSorted.Min, asSorted.Max);\r\n $t = Bridge.getEnumerator(asSorted);\r\n try {\r\n while ($t.moveNext()) {\r\n var item = $t.Current;\r\n if (!pruned.contains(item)) {\r\n return false;\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n return true;\r\n }\r\n return this.ContainsAllElements(other);\r\n },\r\n isProperSupersetOf: function (other) {\r\n var $t;\r\n if (other == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"other\");\r\n }\r\n\r\n if (this.Count === 0) {\r\n return false;\r\n }\r\n\r\n if ((Bridge.as(other, System.Collections.ICollection)) != null && System.Array.getCount((Bridge.as(other, System.Collections.ICollection))) === 0) {\r\n return true;\r\n }\r\n\r\n\r\n\r\n var asHash = Bridge.as(other, System.Collections.Generic.HashSet$1(T));\r\n if (asHash != null && Bridge.equals(this.comparer, new (System.Collections.Generic.Comparer$1(T))(System.Collections.Generic.Comparer$1.$default.fn)) && Bridge.equals(asHash.Comparer, System.Collections.Generic.EqualityComparer$1(T).def)) {\r\n return asHash.isProperSubsetOf(this);\r\n }\r\n\r\n var asSorted = Bridge.as(other, System.Collections.Generic.SortedSet$1(T));\r\n if (asSorted != null && System.Collections.Generic.SortedSet$1(T).AreComparersEqual(asSorted, this)) {\r\n if (asSorted.Count >= this.Count) {\r\n return false;\r\n }\r\n var pruned = this.GetViewBetween(asSorted.Min, asSorted.Max);\r\n $t = Bridge.getEnumerator(asSorted);\r\n try {\r\n while ($t.moveNext()) {\r\n var item = $t.Current;\r\n if (!pruned.contains(item)) {\r\n return false;\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n\r\n var result = this.CheckUniqueAndUnfoundElements(other, true);\r\n return (result.uniqueCount < this.Count && result.unfoundCount === 0);\r\n },\r\n setEquals: function (other) {\r\n var $t;\r\n if (other == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"other\");\r\n }\r\n\r\n var asHash = Bridge.as(other, System.Collections.Generic.HashSet$1(T));\r\n if (asHash != null && Bridge.equals(this.comparer, new (System.Collections.Generic.Comparer$1(T))(System.Collections.Generic.Comparer$1.$default.fn)) && Bridge.equals(asHash.Comparer, System.Collections.Generic.EqualityComparer$1(T).def)) {\r\n return asHash.setEquals(this);\r\n }\r\n\r\n var asSorted = Bridge.as(other, System.Collections.Generic.SortedSet$1(T));\r\n if (asSorted != null && System.Collections.Generic.SortedSet$1(T).AreComparersEqual(this, asSorted)) {\r\n var mine = this.GetEnumerator().$clone();\r\n var theirs = asSorted.GetEnumerator().$clone();\r\n var mineEnded = !mine.System$Collections$IEnumerator$moveNext();\r\n var theirsEnded = !theirs.System$Collections$IEnumerator$moveNext();\r\n while (!mineEnded && !theirsEnded) {\r\n if (($t = this.Comparer)[Bridge.geti($t, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](mine[Bridge.geti(mine, \"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(T) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\")], theirs[Bridge.geti(theirs, \"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(T) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\")]) !== 0) {\r\n return false;\r\n }\r\n mineEnded = !mine.System$Collections$IEnumerator$moveNext();\r\n theirsEnded = !theirs.System$Collections$IEnumerator$moveNext();\r\n }\r\n return mineEnded && theirsEnded;\r\n }\r\n\r\n var result = this.CheckUniqueAndUnfoundElements(other, true);\r\n return (result.uniqueCount === this.Count && result.unfoundCount === 0);\r\n },\r\n overlaps: function (other) {\r\n var $t;\r\n if (other == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"other\");\r\n }\r\n\r\n if (this.Count === 0) {\r\n return false;\r\n }\r\n\r\n if ((Bridge.as(other, System.Collections.Generic.ICollection$1(T)) != null) && System.Array.getCount((Bridge.as(other, System.Collections.Generic.ICollection$1(T))), T) === 0) {\r\n return false;\r\n }\r\n\r\n var asSorted = Bridge.as(other, System.Collections.Generic.SortedSet$1(T));\r\n if (asSorted != null && System.Collections.Generic.SortedSet$1(T).AreComparersEqual(this, asSorted) && (this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](this.Min, asSorted.Max) > 0 || this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](this.Max, asSorted.Min) < 0)) {\r\n return false;\r\n }\r\n\r\n var asHash = Bridge.as(other, System.Collections.Generic.HashSet$1(T));\r\n if (asHash != null && Bridge.equals(this.comparer, new (System.Collections.Generic.Comparer$1(T))(System.Collections.Generic.Comparer$1.$default.fn)) && Bridge.equals(asHash.Comparer, System.Collections.Generic.EqualityComparer$1(T).def)) {\r\n return asHash.overlaps(this);\r\n }\r\n\r\n $t = Bridge.getEnumerator(other, T);\r\n try {\r\n while ($t.moveNext()) {\r\n var item = $t.Current;\r\n if (this.contains(item)) {\r\n return true;\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n return false;\r\n },\r\n CheckUniqueAndUnfoundElements: function (other, returnIfUnfound) {\r\n var $t, $t1;\r\n var result = new (System.Collections.Generic.SortedSet$1.ElementCount(T))();\r\n\r\n if (this.Count === 0) {\r\n var numElementsInOther = 0;\r\n $t = Bridge.getEnumerator(other, T);\r\n try {\r\n while ($t.moveNext()) {\r\n var item = $t.Current;\r\n numElementsInOther = (numElementsInOther + 1) | 0;\r\n break;\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n result.uniqueCount = 0;\r\n result.unfoundCount = numElementsInOther;\r\n return result.$clone();\r\n }\r\n\r\n\r\n var originalLastIndex = this.Count;\r\n var intArrayLength = System.Collections.Generic.BitHelper.ToIntArrayLength(originalLastIndex);\r\n\r\n var bitHelper;\r\n var bitArray = System.Array.init(intArrayLength, 0, System.Int32);\r\n bitHelper = new System.Collections.Generic.BitHelper(bitArray, intArrayLength);\r\n\r\n var unfoundCount = 0;\r\n var uniqueFoundCount = 0;\r\n\r\n $t1 = Bridge.getEnumerator(other, T);\r\n try {\r\n while ($t1.moveNext()) {\r\n var item1 = $t1.Current;\r\n var index = this.InternalIndexOf(item1);\r\n if (index >= 0) {\r\n if (!bitHelper.IsMarked(index)) {\r\n bitHelper.MarkBit(index);\r\n uniqueFoundCount = (uniqueFoundCount + 1) | 0;\r\n }\r\n } else {\r\n unfoundCount = (unfoundCount + 1) | 0;\r\n if (returnIfUnfound) {\r\n break;\r\n }\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t1, System.IDisposable)) {\r\n $t1.System$IDisposable$Dispose();\r\n }\r\n }\r\n\r\n result.uniqueCount = uniqueFoundCount;\r\n result.unfoundCount = unfoundCount;\r\n return result.$clone();\r\n },\r\n RemoveWhere: function (match) {\r\n if (Bridge.staticEquals(match, null)) {\r\n throw new System.ArgumentNullException.$ctor1(\"match\");\r\n }\r\n var matches = new (System.Collections.Generic.List$1(T)).$ctor2(this.Count);\r\n\r\n this.BreadthFirstTreeWalk(function (n) {\r\n if (match(n.Item)) {\r\n matches.add(n.Item);\r\n }\r\n return true;\r\n });\r\n var actuallyRemoved = 0;\r\n for (var i = (matches.Count - 1) | 0; i >= 0; i = (i - 1) | 0) {\r\n if (this.remove(matches.getItem(i))) {\r\n actuallyRemoved = (actuallyRemoved + 1) | 0;\r\n }\r\n }\r\n\r\n return actuallyRemoved;\r\n\r\n },\r\n Reverse: function () {\r\n return new (Bridge.GeneratorEnumerable$1(T))(Bridge.fn.bind(this, function () {\r\n var $step = 0,\r\n $jumpFromFinally,\r\n $returnValue,\r\n e,\r\n $async_e;\r\n\r\n var $enumerator = new (Bridge.GeneratorEnumerator$1(T))(Bridge.fn.bind(this, function () {\r\n try {\r\n for (;;) {\r\n switch ($step) {\r\n case 0: {\r\n e = new (System.Collections.Generic.SortedSet$1.Enumerator(T)).$ctor2(this, true);\r\n $step = 1;\r\n continue;\r\n }\r\n case 1: {\r\n if ( e.moveNext() ) {\r\n $step = 2;\r\n continue;\r\n } \r\n $step = 4;\r\n continue;\r\n }\r\n case 2: {\r\n $enumerator.current = e.Current;\r\n $step = 3;\r\n return true;\r\n }\r\n case 3: {\r\n \r\n $step = 1;\r\n continue;\r\n }\r\n case 4: {\r\n\r\n }\r\n default: {\r\n return false;\r\n }\r\n }\r\n }\r\n } catch($async_e1) {\r\n $async_e = System.Exception.create($async_e1);\r\n throw $async_e;\r\n }\r\n }));\r\n return $enumerator;\r\n }));\r\n },\r\n GetViewBetween: function (lowerValue, upperValue) {\r\n var $t;\r\n if (($t = this.Comparer)[Bridge.geti($t, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](lowerValue, upperValue) > 0) {\r\n throw new System.ArgumentException.$ctor1(\"lowerBound is greater than upperBound\");\r\n }\r\n return new (System.Collections.Generic.SortedSet$1.TreeSubSet(T)).$ctor1(this, lowerValue, upperValue, true, true);\r\n },\r\n TryGetValue: function (equalValue, actualValue) {\r\n var node = this.FindNode(equalValue);\r\n if (node != null) {\r\n actualValue.v = node.Item;\r\n return true;\r\n }\r\n actualValue.v = Bridge.getDefaultValue(T);\r\n return false;\r\n }\r\n }\r\n }; });\r\n\r\n // @source SortedSetEqualityComparer.js\r\n\r\n Bridge.define(\"System.Collections.Generic.SortedSetEqualityComparer$1\", function (T) { return {\r\n inherits: [System.Collections.Generic.IEqualityComparer$1(System.Collections.Generic.SortedSet$1(T))],\r\n fields: {\r\n comparer: null,\r\n e_comparer: null\r\n },\r\n alias: [\r\n \"equals2\", [\"System$Collections$Generic$IEqualityComparer$1$System$Collections$Generic$SortedSet$1$\" + Bridge.getTypeAlias(T) + \"$equals2\", \"System$Collections$Generic$IEqualityComparer$1$equals2\"],\r\n \"getHashCode2\", [\"System$Collections$Generic$IEqualityComparer$1$System$Collections$Generic$SortedSet$1$\" + Bridge.getTypeAlias(T) + \"$getHashCode2\", \"System$Collections$Generic$IEqualityComparer$1$getHashCode2\"]\r\n ],\r\n ctors: {\r\n ctor: function () {\r\n System.Collections.Generic.SortedSetEqualityComparer$1(T).$ctor2.call(this, null, null);\r\n },\r\n $ctor1: function (comparer) {\r\n System.Collections.Generic.SortedSetEqualityComparer$1(T).$ctor2.call(this, comparer, null);\r\n },\r\n $ctor3: function (memberEqualityComparer) {\r\n System.Collections.Generic.SortedSetEqualityComparer$1(T).$ctor2.call(this, null, memberEqualityComparer);\r\n },\r\n $ctor2: function (comparer, memberEqualityComparer) {\r\n this.$initialize();\r\n if (comparer == null) {\r\n this.comparer = new (System.Collections.Generic.Comparer$1(T))(System.Collections.Generic.Comparer$1.$default.fn);\r\n } else {\r\n this.comparer = comparer;\r\n }\r\n if (memberEqualityComparer == null) {\r\n this.e_comparer = System.Collections.Generic.EqualityComparer$1(T).def;\r\n } else {\r\n this.e_comparer = memberEqualityComparer;\r\n }\r\n }\r\n },\r\n methods: {\r\n equals2: function (x, y) {\r\n return System.Collections.Generic.SortedSet$1(T).SortedSetEquals(x, y, this.comparer);\r\n },\r\n equals: function (obj) {\r\n var comparer = Bridge.as(obj, System.Collections.Generic.SortedSetEqualityComparer$1(T));\r\n if (comparer == null) {\r\n return false;\r\n }\r\n return (Bridge.referenceEquals(this.comparer, comparer.comparer));\r\n },\r\n getHashCode2: function (obj) {\r\n var $t;\r\n var hashCode = 0;\r\n if (obj != null) {\r\n $t = Bridge.getEnumerator(obj);\r\n try {\r\n while ($t.moveNext()) {\r\n var t = $t.Current;\r\n hashCode = hashCode ^ (this.e_comparer[Bridge.geti(this.e_comparer, \"System$Collections$Generic$IEqualityComparer$1$\" + Bridge.getTypeAlias(T) + \"$getHashCode2\", \"System$Collections$Generic$IEqualityComparer$1$getHashCode2\")](t) & 2147483647);\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n }\r\n return hashCode;\r\n },\r\n getHashCode: function () {\r\n return Bridge.getHashCode(this.comparer) ^ Bridge.getHashCode(this.e_comparer);\r\n }\r\n }\r\n }; });\r\n\r\n // @source ElementCount.js\r\n\r\n Bridge.define(\"System.Collections.Generic.SortedSet$1.ElementCount\", function (T) { return {\r\n $kind: \"nested struct\",\r\n statics: {\r\n methods: {\r\n getDefaultValue: function () { return new (System.Collections.Generic.SortedSet$1.ElementCount(T))(); }\r\n }\r\n },\r\n fields: {\r\n uniqueCount: 0,\r\n unfoundCount: 0\r\n },\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n getHashCode: function () {\r\n var h = Bridge.addHash([4920463385, this.uniqueCount, this.unfoundCount]);\r\n return h;\r\n },\r\n equals: function (o) {\r\n if (!Bridge.is(o, System.Collections.Generic.SortedSet$1.ElementCount(T))) {\r\n return false;\r\n }\r\n return Bridge.equals(this.uniqueCount, o.uniqueCount) && Bridge.equals(this.unfoundCount, o.unfoundCount);\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.Collections.Generic.SortedSet$1.ElementCount(T))();\r\n s.uniqueCount = this.uniqueCount;\r\n s.unfoundCount = this.unfoundCount;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n // @source Enumerator.js\r\n\r\n Bridge.define(\"System.Collections.Generic.SortedSet$1.Enumerator\", function (T) { return {\r\n inherits: [System.Collections.Generic.IEnumerator$1(T),System.Collections.IEnumerator],\r\n $kind: \"nested struct\",\r\n statics: {\r\n fields: {\r\n dummyNode: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.dummyNode = new (System.Collections.Generic.SortedSet$1.Node(T)).ctor(Bridge.getDefaultValue(T));\r\n }\r\n },\r\n methods: {\r\n getDefaultValue: function () { return new (System.Collections.Generic.SortedSet$1.Enumerator(T))(); }\r\n }\r\n },\r\n fields: {\r\n tree: null,\r\n version: 0,\r\n stack: null,\r\n current: null,\r\n reverse: false\r\n },\r\n props: {\r\n Current: {\r\n get: function () {\r\n if (this.current != null) {\r\n return this.current.Item;\r\n }\r\n return Bridge.getDefaultValue(T);\r\n }\r\n },\r\n System$Collections$IEnumerator$Current: {\r\n get: function () {\r\n if (this.current == null) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumOpCantHappen);\r\n }\r\n\r\n return this.current.Item;\r\n }\r\n },\r\n NotStartedOrEnded: {\r\n get: function () {\r\n return this.current == null;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"Dispose\", \"System$IDisposable$Dispose\",\r\n \"Current\", [\"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(T) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\"]\r\n ],\r\n ctors: {\r\n $ctor1: function (set) {\r\n this.$initialize();\r\n this.tree = set;\r\n this.tree.VersionCheck();\r\n\r\n this.version = this.tree.version;\r\n\r\n this.stack = new (System.Collections.Generic.Stack$1(System.Collections.Generic.SortedSet$1.Node(T))).$ctor2(Bridge.Int.mul(2, System.Collections.Generic.SortedSet$1(T).log2(((set.Count + 1) | 0))));\r\n this.current = null;\r\n this.reverse = false;\r\n\r\n this.Intialize();\r\n },\r\n $ctor2: function (set, reverse) {\r\n this.$initialize();\r\n this.tree = set;\r\n this.tree.VersionCheck();\r\n this.version = this.tree.version;\r\n\r\n this.stack = new (System.Collections.Generic.Stack$1(System.Collections.Generic.SortedSet$1.Node(T))).$ctor2(Bridge.Int.mul(2, System.Collections.Generic.SortedSet$1(T).log2(((set.Count + 1) | 0))));\r\n this.current = null;\r\n this.reverse = reverse;\r\n\r\n this.Intialize();\r\n\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n Intialize: function () {\r\n\r\n this.current = null;\r\n var node = this.tree.root;\r\n var next = null, other = null;\r\n while (node != null) {\r\n next = (this.reverse ? node.Right : node.Left);\r\n other = (this.reverse ? node.Left : node.Right);\r\n if (this.tree.IsWithinRange(node.Item)) {\r\n this.stack.Push(node);\r\n node = next;\r\n } else if (next == null || !this.tree.IsWithinRange(next.Item)) {\r\n node = other;\r\n } else {\r\n node = next;\r\n }\r\n }\r\n },\r\n moveNext: function () {\r\n\r\n this.tree.VersionCheck();\r\n\r\n if (this.version !== this.tree.version) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumFailedVersion);\r\n }\r\n\r\n if (this.stack.Count === 0) {\r\n this.current = null;\r\n return false;\r\n }\r\n\r\n this.current = this.stack.Pop();\r\n var node = (this.reverse ? this.current.Left : this.current.Right);\r\n var next = null, other = null;\r\n while (node != null) {\r\n next = (this.reverse ? node.Right : node.Left);\r\n other = (this.reverse ? node.Left : node.Right);\r\n if (this.tree.IsWithinRange(node.Item)) {\r\n this.stack.Push(node);\r\n node = next;\r\n } else if (other == null || !this.tree.IsWithinRange(other.Item)) {\r\n node = next;\r\n } else {\r\n node = other;\r\n }\r\n }\r\n return true;\r\n },\r\n Dispose: function () { },\r\n Reset: function () {\r\n if (this.version !== this.tree.version) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumFailedVersion);\r\n }\r\n\r\n this.stack.Clear();\r\n this.Intialize();\r\n },\r\n System$Collections$IEnumerator$reset: function () {\r\n this.Reset();\r\n },\r\n getHashCode: function () {\r\n var h = Bridge.addHash([3788985113, this.tree, this.version, this.stack, this.current, this.reverse]);\r\n return h;\r\n },\r\n equals: function (o) {\r\n if (!Bridge.is(o, System.Collections.Generic.SortedSet$1.Enumerator(T))) {\r\n return false;\r\n }\r\n return Bridge.equals(this.tree, o.tree) && Bridge.equals(this.version, o.version) && Bridge.equals(this.stack, o.stack) && Bridge.equals(this.current, o.current) && Bridge.equals(this.reverse, o.reverse);\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.Collections.Generic.SortedSet$1.Enumerator(T))();\r\n s.tree = this.tree;\r\n s.version = this.version;\r\n s.stack = this.stack;\r\n s.current = this.current;\r\n s.reverse = this.reverse;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n // @source Node.js\r\n\r\n Bridge.define(\"System.Collections.Generic.SortedSet$1.Node\", function (T) { return {\r\n $kind: \"nested class\",\r\n fields: {\r\n IsRed: false,\r\n Item: Bridge.getDefaultValue(T),\r\n Left: null,\r\n Right: null\r\n },\r\n ctors: {\r\n ctor: function (item) {\r\n this.$initialize();\r\n this.Item = item;\r\n this.IsRed = true;\r\n },\r\n $ctor1: function (item, isRed) {\r\n this.$initialize();\r\n this.Item = item;\r\n this.IsRed = isRed;\r\n }\r\n }\r\n }; });\r\n\r\n // @source TreeSubSet.js\r\n\r\n Bridge.define(\"System.Collections.Generic.SortedSet$1.TreeSubSet\", function (T) { return {\r\n inherits: [System.Collections.Generic.SortedSet$1(T)],\r\n $kind: \"nested class\",\r\n fields: {\r\n underlying: null,\r\n min: Bridge.getDefaultValue(T),\r\n max: Bridge.getDefaultValue(T),\r\n lBoundActive: false,\r\n uBoundActive: false\r\n },\r\n alias: [\r\n \"contains\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$contains\",\r\n \"clear\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$clear\"\r\n ],\r\n ctors: {\r\n $ctor1: function (Underlying, Min, Max, lowerBoundActive, upperBoundActive) {\r\n this.$initialize();\r\n System.Collections.Generic.SortedSet$1(T).$ctor1.call(this, Underlying.Comparer);\r\n this.underlying = Underlying;\r\n this.min = Min;\r\n this.max = Max;\r\n this.lBoundActive = lowerBoundActive;\r\n this.uBoundActive = upperBoundActive;\r\n this.root = this.underlying.FindRange$1(this.min, this.max, this.lBoundActive, this.uBoundActive);\r\n this.count = 0;\r\n this.version = -1;\r\n this.VersionCheckImpl();\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n System.Collections.Generic.SortedSet$1(T).ctor.call(this);\r\n this.comparer = null;\r\n }\r\n },\r\n methods: {\r\n AddIfNotPresent: function (item) {\r\n\r\n if (!this.IsWithinRange(item)) {\r\n System.ThrowHelper.ThrowArgumentOutOfRangeException$1(System.ExceptionArgument.collection);\r\n }\r\n\r\n var ret = this.underlying.AddIfNotPresent(item);\r\n this.VersionCheck();\r\n\r\n return ret;\r\n },\r\n contains: function (item) {\r\n this.VersionCheck();\r\n return System.Collections.Generic.SortedSet$1(T).prototype.contains.call(this, item);\r\n },\r\n DoRemove: function (item) {\r\n\r\n if (!this.IsWithinRange(item)) {\r\n return false;\r\n }\r\n\r\n var ret = this.underlying.remove(item);\r\n this.VersionCheck();\r\n return ret;\r\n },\r\n clear: function () {\r\n\r\n\r\n if (this.count === 0) {\r\n return;\r\n }\r\n\r\n var toRemove = new (System.Collections.Generic.List$1(T)).ctor();\r\n this.BreadthFirstTreeWalk(function (n) {\r\n toRemove.add(n.Item);\r\n return true;\r\n });\r\n while (toRemove.Count !== 0) {\r\n this.underlying.remove(toRemove.getItem(((toRemove.Count - 1) | 0)));\r\n toRemove.removeAt(((toRemove.Count - 1) | 0));\r\n }\r\n this.root = null;\r\n this.count = 0;\r\n this.version = this.underlying.version;\r\n },\r\n IsWithinRange: function (item) {\r\n var $t, $t1;\r\n\r\n var comp = (this.lBoundActive ? ($t = this.Comparer)[Bridge.geti($t, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](this.min, item) : -1);\r\n if (comp > 0) {\r\n return false;\r\n }\r\n comp = (this.uBoundActive ? ($t1 = this.Comparer)[Bridge.geti($t1, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](this.max, item) : 1);\r\n if (comp < 0) {\r\n return false;\r\n }\r\n return true;\r\n },\r\n InOrderTreeWalk$1: function (action, reverse) {\r\n var $t, $t1;\r\n this.VersionCheck();\r\n\r\n if (this.root == null) {\r\n return true;\r\n }\r\n\r\n var stack = new (System.Collections.Generic.Stack$1(System.Collections.Generic.SortedSet$1.Node(T))).$ctor2(Bridge.Int.mul(2, System.Collections.Generic.SortedSet$1(T).log2(((this.count + 1) | 0))));\r\n var current = this.root;\r\n while (current != null) {\r\n if (this.IsWithinRange(current.Item)) {\r\n stack.Push(current);\r\n current = (reverse ? current.Right : current.Left);\r\n } else if (this.lBoundActive && ($t = this.Comparer)[Bridge.geti($t, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](this.min, current.Item) > 0) {\r\n current = current.Right;\r\n } else {\r\n current = current.Left;\r\n }\r\n }\r\n\r\n while (stack.Count !== 0) {\r\n current = stack.Pop();\r\n if (!action(current)) {\r\n return false;\r\n }\r\n\r\n var node = (reverse ? current.Left : current.Right);\r\n while (node != null) {\r\n if (this.IsWithinRange(node.Item)) {\r\n stack.Push(node);\r\n node = (reverse ? node.Right : node.Left);\r\n } else if (this.lBoundActive && ($t1 = this.Comparer)[Bridge.geti($t1, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](this.min, node.Item) > 0) {\r\n node = node.Right;\r\n } else {\r\n node = node.Left;\r\n }\r\n }\r\n }\r\n return true;\r\n },\r\n BreadthFirstTreeWalk: function (action) {\r\n var $t, $t1;\r\n this.VersionCheck();\r\n\r\n if (this.root == null) {\r\n return true;\r\n }\r\n\r\n var processQueue = new (System.Collections.Generic.List$1(System.Collections.Generic.SortedSet$1.Node(T))).ctor();\r\n processQueue.add(this.root);\r\n var current;\r\n\r\n while (processQueue.Count !== 0) {\r\n current = processQueue.getItem(0);\r\n processQueue.removeAt(0);\r\n if (this.IsWithinRange(current.Item) && !action(current)) {\r\n return false;\r\n }\r\n if (current.Left != null && (!this.lBoundActive || ($t = this.Comparer)[Bridge.geti($t, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](this.min, current.Item) < 0)) {\r\n processQueue.add(current.Left);\r\n }\r\n if (current.Right != null && (!this.uBoundActive || ($t1 = this.Comparer)[Bridge.geti($t1, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](this.max, current.Item) > 0)) {\r\n processQueue.add(current.Right);\r\n }\r\n\r\n }\r\n return true;\r\n },\r\n FindNode: function (item) {\r\n\r\n if (!this.IsWithinRange(item)) {\r\n return null;\r\n }\r\n this.VersionCheck();\r\n return System.Collections.Generic.SortedSet$1(T).prototype.FindNode.call(this, item);\r\n },\r\n InternalIndexOf: function (item) {\r\n var $t, $t1;\r\n var count = -1;\r\n $t = Bridge.getEnumerator(this);\r\n try {\r\n while ($t.moveNext()) {\r\n var i = $t.Current;\r\n count = (count + 1) | 0;\r\n if (($t1 = this.Comparer)[Bridge.geti($t1, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](item, i) === 0) {\r\n return count;\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n return -1;\r\n },\r\n VersionCheck: function () {\r\n this.VersionCheckImpl();\r\n },\r\n VersionCheckImpl: function () {\r\n if (this.version !== this.underlying.version) {\r\n this.root = this.underlying.FindRange$1(this.min, this.max, this.lBoundActive, this.uBoundActive);\r\n this.version = this.underlying.version;\r\n this.count = 0;\r\n this.InOrderTreeWalk(Bridge.fn.bind(this, $asm.$.System.Collections.Generic.SortedSet$1.TreeSubSet.f1));\r\n }\r\n },\r\n GetViewBetween: function (lowerValue, upperValue) {\r\n var $t, $t1;\r\n\r\n if (this.lBoundActive && ($t = this.Comparer)[Bridge.geti($t, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](this.min, lowerValue) > 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"lowerValue\");\r\n }\r\n if (this.uBoundActive && ($t1 = this.Comparer)[Bridge.geti($t1, \"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\", \"System$Collections$Generic$IComparer$1$compare\")](this.max, upperValue) < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"upperValue\");\r\n }\r\n var ret = Bridge.cast(this.underlying.GetViewBetween(lowerValue, upperValue), System.Collections.Generic.SortedSet$1.TreeSubSet(T));\r\n return ret;\r\n },\r\n IntersectWithEnumerable: function (other) {\r\n var $t;\r\n\r\n var toSave = new (System.Collections.Generic.List$1(T)).$ctor2(this.Count);\r\n $t = Bridge.getEnumerator(other, T);\r\n try {\r\n while ($t.moveNext()) {\r\n var item = $t.Current;\r\n if (this.contains(item)) {\r\n toSave.add(item);\r\n this.remove(item);\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n this.clear();\r\n this.AddAllElements(toSave);\r\n }\r\n }\r\n }; });\r\n\r\n Bridge.ns(\"System.Collections.Generic.SortedSet$1.TreeSubSet\", $asm.$);\r\n\r\n Bridge.apply($asm.$.System.Collections.Generic.SortedSet$1.TreeSubSet, {\r\n f1: function (n) {\r\n this.count = (this.count + 1) | 0;\r\n return true;\r\n }\r\n });\r\n\r\n // @source LinkedList.js\r\n\r\n Bridge.define(\"System.Collections.Generic.LinkedList$1\", function (T) { return {\r\n inherits: [System.Collections.Generic.ICollection$1(T),System.Collections.ICollection,System.Collections.Generic.IReadOnlyCollection$1(T)],\r\n statics: {\r\n fields: {\r\n VersionName: null,\r\n CountName: null,\r\n ValuesName: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.VersionName = \"Version\";\r\n this.CountName = \"Count\";\r\n this.ValuesName = \"Data\";\r\n }\r\n }\r\n },\r\n fields: {\r\n head: null,\r\n count: 0,\r\n version: 0\r\n },\r\n props: {\r\n Count: {\r\n get: function () {\r\n return this.count;\r\n }\r\n },\r\n First: {\r\n get: function () {\r\n return this.head;\r\n }\r\n },\r\n Last: {\r\n get: function () {\r\n return this.head == null ? null : this.head.prev;\r\n }\r\n },\r\n System$Collections$Generic$ICollection$1$IsReadOnly: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$ICollection$IsSynchronized: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$ICollection$SyncRoot: {\r\n get: function () {\r\n return null;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Count\", [\"System$Collections$Generic$IReadOnlyCollection$1$\" + Bridge.getTypeAlias(T) + \"$Count\", \"System$Collections$Generic$IReadOnlyCollection$1$Count\"],\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"Count\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$Count\",\r\n \"System$Collections$Generic$ICollection$1$IsReadOnly\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$IsReadOnly\",\r\n \"System$Collections$Generic$ICollection$1$add\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$add\",\r\n \"clear\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$clear\",\r\n \"contains\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$contains\",\r\n \"copyTo\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$copyTo\",\r\n \"System$Collections$Generic$IEnumerable$1$GetEnumerator\", \"System$Collections$Generic$IEnumerable$1$\" + Bridge.getTypeAlias(T) + \"$GetEnumerator\",\r\n \"remove\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$remove\"\r\n ],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n },\r\n $ctor1: function (collection) {\r\n var $t;\r\n this.$initialize();\r\n if (collection == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"collection\");\r\n }\r\n\r\n $t = Bridge.getEnumerator(collection, T);\r\n try {\r\n while ($t.moveNext()) {\r\n var item = $t.Current;\r\n this.AddLast(item);\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n }\r\n },\r\n methods: {\r\n System$Collections$Generic$ICollection$1$add: function (value) {\r\n this.AddLast(value);\r\n },\r\n AddAfter: function (node, value) {\r\n this.ValidateNode(node);\r\n var result = new (System.Collections.Generic.LinkedListNode$1(T)).$ctor1(node.list, value);\r\n this.InternalInsertNodeBefore(node.next, result);\r\n return result;\r\n },\r\n AddAfter$1: function (node, newNode) {\r\n this.ValidateNode(node);\r\n this.ValidateNewNode(newNode);\r\n this.InternalInsertNodeBefore(node.next, newNode);\r\n newNode.list = this;\r\n },\r\n AddBefore: function (node, value) {\r\n this.ValidateNode(node);\r\n var result = new (System.Collections.Generic.LinkedListNode$1(T)).$ctor1(node.list, value);\r\n this.InternalInsertNodeBefore(node, result);\r\n if (Bridge.referenceEquals(node, this.head)) {\r\n this.head = result;\r\n }\r\n return result;\r\n },\r\n AddBefore$1: function (node, newNode) {\r\n this.ValidateNode(node);\r\n this.ValidateNewNode(newNode);\r\n this.InternalInsertNodeBefore(node, newNode);\r\n newNode.list = this;\r\n if (Bridge.referenceEquals(node, this.head)) {\r\n this.head = newNode;\r\n }\r\n },\r\n AddFirst: function (value) {\r\n var result = new (System.Collections.Generic.LinkedListNode$1(T)).$ctor1(this, value);\r\n if (this.head == null) {\r\n this.InternalInsertNodeToEmptyList(result);\r\n } else {\r\n this.InternalInsertNodeBefore(this.head, result);\r\n this.head = result;\r\n }\r\n return result;\r\n },\r\n AddFirst$1: function (node) {\r\n this.ValidateNewNode(node);\r\n\r\n if (this.head == null) {\r\n this.InternalInsertNodeToEmptyList(node);\r\n } else {\r\n this.InternalInsertNodeBefore(this.head, node);\r\n this.head = node;\r\n }\r\n node.list = this;\r\n },\r\n AddLast: function (value) {\r\n var result = new (System.Collections.Generic.LinkedListNode$1(T)).$ctor1(this, value);\r\n if (this.head == null) {\r\n this.InternalInsertNodeToEmptyList(result);\r\n } else {\r\n this.InternalInsertNodeBefore(this.head, result);\r\n }\r\n return result;\r\n },\r\n AddLast$1: function (node) {\r\n this.ValidateNewNode(node);\r\n\r\n if (this.head == null) {\r\n this.InternalInsertNodeToEmptyList(node);\r\n } else {\r\n this.InternalInsertNodeBefore(this.head, node);\r\n }\r\n node.list = this;\r\n },\r\n clear: function () {\r\n var current = this.head;\r\n while (current != null) {\r\n var temp = current;\r\n current = current.Next;\r\n temp.Invalidate();\r\n }\r\n\r\n this.head = null;\r\n this.count = 0;\r\n this.version = (this.version + 1) | 0;\r\n },\r\n contains: function (value) {\r\n return this.Find(value) != null;\r\n },\r\n copyTo: function (array, index) {\r\n if (array == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n if (index < 0 || index > array.length) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n\r\n if (((array.length - index) | 0) < this.Count) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n var node = this.head;\r\n if (node != null) {\r\n do {\r\n array[System.Array.index(Bridge.identity(index, ((index = (index + 1) | 0))), array)] = node.item;\r\n node = node.next;\r\n } while (!Bridge.referenceEquals(node, this.head));\r\n }\r\n },\r\n System$Collections$ICollection$copyTo: function (array, index) {\r\n if (array == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n if (System.Array.getRank(array) !== 1) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n if (System.Array.getLower(array, 0) !== 0) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n if (index < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n\r\n if (((array.length - index) | 0) < this.Count) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n var tArray = Bridge.as(array, System.Array.type(T));\r\n if (tArray != null) {\r\n this.copyTo(tArray, index);\r\n } else {\r\n var targetType = (Bridge.getType(array).$elementType || null);\r\n var sourceType = T;\r\n if (!(Bridge.Reflection.isAssignableFrom(targetType, sourceType) || Bridge.Reflection.isAssignableFrom(sourceType, targetType))) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n var objects = Bridge.as(array, System.Array.type(System.Object));\r\n if (objects == null) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n var node = this.head;\r\n try {\r\n if (node != null) {\r\n do {\r\n objects[System.Array.index(Bridge.identity(index, ((index = (index + 1) | 0))), objects)] = node.item;\r\n node = node.next;\r\n } while (!Bridge.referenceEquals(node, this.head));\r\n }\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.ArrayTypeMismatchException)) {\r\n throw new System.ArgumentException.ctor();\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n }\r\n },\r\n Find: function (value) {\r\n var node = this.head;\r\n var c = System.Collections.Generic.EqualityComparer$1(T).def;\r\n if (node != null) {\r\n if (value != null) {\r\n do {\r\n if (c.equals2(node.item, value)) {\r\n return node;\r\n }\r\n node = node.next;\r\n } while (!Bridge.referenceEquals(node, this.head));\r\n } else {\r\n do {\r\n if (node.item == null) {\r\n return node;\r\n }\r\n node = node.next;\r\n } while (!Bridge.referenceEquals(node, this.head));\r\n }\r\n }\r\n return null;\r\n },\r\n FindLast: function (value) {\r\n if (this.head == null) {\r\n return null;\r\n }\r\n\r\n var last = this.head.prev;\r\n var node = last;\r\n var c = System.Collections.Generic.EqualityComparer$1(T).def;\r\n if (node != null) {\r\n if (value != null) {\r\n do {\r\n if (c.equals2(node.item, value)) {\r\n return node;\r\n }\r\n\r\n node = node.prev;\r\n } while (!Bridge.referenceEquals(node, last));\r\n } else {\r\n do {\r\n if (node.item == null) {\r\n return node;\r\n }\r\n node = node.prev;\r\n } while (!Bridge.referenceEquals(node, last));\r\n }\r\n }\r\n return null;\r\n },\r\n GetEnumerator: function () {\r\n return new (System.Collections.Generic.LinkedList$1.Enumerator(T)).$ctor1(this);\r\n },\r\n System$Collections$Generic$IEnumerable$1$GetEnumerator: function () {\r\n return this.GetEnumerator().$clone();\r\n },\r\n System$Collections$IEnumerable$GetEnumerator: function () {\r\n return this.GetEnumerator().$clone();\r\n },\r\n remove: function (value) {\r\n var node = this.Find(value);\r\n if (node != null) {\r\n this.InternalRemoveNode(node);\r\n return true;\r\n }\r\n return false;\r\n },\r\n Remove: function (node) {\r\n this.ValidateNode(node);\r\n this.InternalRemoveNode(node);\r\n },\r\n RemoveFirst: function () {\r\n if (this.head == null) {\r\n throw new System.InvalidOperationException.ctor();\r\n }\r\n this.InternalRemoveNode(this.head);\r\n },\r\n RemoveLast: function () {\r\n if (this.head == null) {\r\n throw new System.InvalidOperationException.ctor();\r\n }\r\n this.InternalRemoveNode(this.head.prev);\r\n },\r\n InternalInsertNodeBefore: function (node, newNode) {\r\n newNode.next = node;\r\n newNode.prev = node.prev;\r\n node.prev.next = newNode;\r\n node.prev = newNode;\r\n this.version = (this.version + 1) | 0;\r\n this.count = (this.count + 1) | 0;\r\n },\r\n InternalInsertNodeToEmptyList: function (newNode) {\r\n newNode.next = newNode;\r\n newNode.prev = newNode;\r\n this.head = newNode;\r\n this.version = (this.version + 1) | 0;\r\n this.count = (this.count + 1) | 0;\r\n },\r\n InternalRemoveNode: function (node) {\r\n if (Bridge.referenceEquals(node.next, node)) {\r\n this.head = null;\r\n } else {\r\n node.next.prev = node.prev;\r\n node.prev.next = node.next;\r\n if (Bridge.referenceEquals(this.head, node)) {\r\n this.head = node.next;\r\n }\r\n }\r\n node.Invalidate();\r\n this.count = (this.count - 1) | 0;\r\n this.version = (this.version + 1) | 0;\r\n },\r\n ValidateNewNode: function (node) {\r\n if (node == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"node\");\r\n }\r\n\r\n if (node.list != null) {\r\n throw new System.InvalidOperationException.ctor();\r\n }\r\n },\r\n ValidateNode: function (node) {\r\n if (node == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"node\");\r\n }\r\n\r\n if (!Bridge.referenceEquals(node.list, this)) {\r\n throw new System.InvalidOperationException.ctor();\r\n }\r\n }\r\n }\r\n }; });\r\n\r\n // @source LinkedListNode.js\r\n\r\n Bridge.define(\"System.Collections.Generic.LinkedListNode$1\", function (T) { return {\r\n fields: {\r\n list: null,\r\n next: null,\r\n prev: null,\r\n item: Bridge.getDefaultValue(T)\r\n },\r\n props: {\r\n List: {\r\n get: function () {\r\n return this.list;\r\n }\r\n },\r\n Next: {\r\n get: function () {\r\n return this.next == null || Bridge.referenceEquals(this.next, this.list.head) ? null : this.next;\r\n }\r\n },\r\n Previous: {\r\n get: function () {\r\n return this.prev == null || Bridge.referenceEquals(this, this.list.head) ? null : this.prev;\r\n }\r\n },\r\n Value: {\r\n get: function () {\r\n return this.item;\r\n },\r\n set: function (value) {\r\n this.item = value;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function (value) {\r\n this.$initialize();\r\n this.item = value;\r\n },\r\n $ctor1: function (list, value) {\r\n this.$initialize();\r\n this.list = list;\r\n this.item = value;\r\n }\r\n },\r\n methods: {\r\n Invalidate: function () {\r\n this.list = null;\r\n this.next = null;\r\n this.prev = null;\r\n }\r\n }\r\n }; });\r\n\r\n // @source Enumerator.js\r\n\r\n Bridge.define(\"System.Collections.Generic.LinkedList$1.Enumerator\", function (T) { return {\r\n inherits: [System.Collections.Generic.IEnumerator$1(T),System.Collections.IEnumerator],\r\n $kind: \"nested struct\",\r\n statics: {\r\n fields: {\r\n LinkedListName: null,\r\n CurrentValueName: null,\r\n VersionName: null,\r\n IndexName: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.LinkedListName = \"LinkedList\";\r\n this.CurrentValueName = \"Current\";\r\n this.VersionName = \"Version\";\r\n this.IndexName = \"Index\";\r\n }\r\n },\r\n methods: {\r\n getDefaultValue: function () { return new (System.Collections.Generic.LinkedList$1.Enumerator(T))(); }\r\n }\r\n },\r\n fields: {\r\n list: null,\r\n node: null,\r\n version: 0,\r\n current: Bridge.getDefaultValue(T),\r\n index: 0\r\n },\r\n props: {\r\n Current: {\r\n get: function () {\r\n return this.current;\r\n }\r\n },\r\n System$Collections$IEnumerator$Current: {\r\n get: function () {\r\n if (this.index === 0 || (this.index === ((this.list.Count + 1) | 0))) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumOpCantHappen);\r\n }\r\n\r\n return this.current;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Current\", [\"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(T) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\"],\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"Dispose\", \"System$IDisposable$Dispose\"\r\n ],\r\n ctors: {\r\n $ctor1: function (list) {\r\n this.$initialize();\r\n this.list = list;\r\n this.version = list.version;\r\n this.node = list.head;\r\n this.current = Bridge.getDefaultValue(T);\r\n this.index = 0;\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n moveNext: function () {\r\n if (this.version !== this.list.version) {\r\n throw new System.InvalidOperationException.ctor();\r\n }\r\n\r\n if (this.node == null) {\r\n this.index = (this.list.Count + 1) | 0;\r\n return false;\r\n }\r\n\r\n this.index = (this.index + 1) | 0;\r\n this.current = this.node.item;\r\n this.node = this.node.next;\r\n if (Bridge.referenceEquals(this.node, this.list.head)) {\r\n this.node = null;\r\n }\r\n return true;\r\n },\r\n System$Collections$IEnumerator$reset: function () {\r\n if (this.version !== this.list.version) {\r\n throw new System.InvalidOperationException.ctor();\r\n }\r\n\r\n this.current = Bridge.getDefaultValue(T);\r\n this.node = this.list.head;\r\n this.index = 0;\r\n },\r\n Dispose: function () { },\r\n getHashCode: function () {\r\n var h = Bridge.addHash([3788985113, this.list, this.node, this.version, this.current, this.index]);\r\n return h;\r\n },\r\n equals: function (o) {\r\n if (!Bridge.is(o, System.Collections.Generic.LinkedList$1.Enumerator(T))) {\r\n return false;\r\n }\r\n return Bridge.equals(this.list, o.list) && Bridge.equals(this.node, o.node) && Bridge.equals(this.version, o.version) && Bridge.equals(this.current, o.current) && Bridge.equals(this.index, o.index);\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.Collections.Generic.LinkedList$1.Enumerator(T))();\r\n s.list = this.list;\r\n s.node = this.node;\r\n s.version = this.version;\r\n s.current = this.current;\r\n s.index = this.index;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n // @source TreeRotation.js\r\n\r\n Bridge.define(\"System.Collections.Generic.TreeRotation\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n LeftRotation: 1,\r\n RightRotation: 2,\r\n RightLeftRotation: 3,\r\n LeftRightRotation: 4\r\n }\r\n }\r\n });\r\n\r\n // @source Dictionary.js\r\n\r\n Bridge.define(\"System.Collections.Generic.Dictionary$2\", function (TKey, TValue) { return {\r\n inherits: [System.Collections.Generic.IDictionary$2(TKey,TValue),System.Collections.IDictionary,System.Collections.Generic.IReadOnlyDictionary$2(TKey,TValue)],\r\n statics: {\r\n fields: {\r\n VersionName: null,\r\n HashSizeName: null,\r\n KeyValuePairsName: null,\r\n ComparerName: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.VersionName = \"Version\";\r\n this.HashSizeName = \"HashSize\";\r\n this.KeyValuePairsName = \"KeyValuePairs\";\r\n this.ComparerName = \"Comparer\";\r\n }\r\n },\r\n methods: {\r\n IsCompatibleKey: function (key) {\r\n if (key == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.key);\r\n }\r\n return (Bridge.is(key, TKey));\r\n }\r\n }\r\n },\r\n fields: {\r\n buckets: null,\r\n simpleBuckets: null,\r\n entries: null,\r\n count: 0,\r\n version: 0,\r\n freeList: 0,\r\n freeCount: 0,\r\n comparer: null,\r\n keys: null,\r\n values: null,\r\n isSimpleKey: false\r\n },\r\n props: {\r\n Comparer: {\r\n get: function () {\r\n return this.comparer;\r\n }\r\n },\r\n Count: {\r\n get: function () {\r\n return ((this.count - this.freeCount) | 0);\r\n }\r\n },\r\n Keys: {\r\n get: function () {\r\n if (this.keys == null) {\r\n this.keys = new (System.Collections.Generic.Dictionary$2.KeyCollection(TKey,TValue))(this);\r\n }\r\n return this.keys;\r\n }\r\n },\r\n System$Collections$Generic$IDictionary$2$Keys: {\r\n get: function () {\r\n if (this.keys == null) {\r\n this.keys = new (System.Collections.Generic.Dictionary$2.KeyCollection(TKey,TValue))(this);\r\n }\r\n return this.keys;\r\n }\r\n },\r\n System$Collections$Generic$IReadOnlyDictionary$2$Keys: {\r\n get: function () {\r\n if (this.keys == null) {\r\n this.keys = new (System.Collections.Generic.Dictionary$2.KeyCollection(TKey,TValue))(this);\r\n }\r\n return this.keys;\r\n }\r\n },\r\n Values: {\r\n get: function () {\r\n if (this.values == null) {\r\n this.values = new (System.Collections.Generic.Dictionary$2.ValueCollection(TKey,TValue))(this);\r\n }\r\n return this.values;\r\n }\r\n },\r\n System$Collections$Generic$IDictionary$2$Values: {\r\n get: function () {\r\n if (this.values == null) {\r\n this.values = new (System.Collections.Generic.Dictionary$2.ValueCollection(TKey,TValue))(this);\r\n }\r\n return this.values;\r\n }\r\n },\r\n System$Collections$Generic$IReadOnlyDictionary$2$Values: {\r\n get: function () {\r\n if (this.values == null) {\r\n this.values = new (System.Collections.Generic.Dictionary$2.ValueCollection(TKey,TValue))(this);\r\n }\r\n return this.values;\r\n }\r\n },\r\n System$Collections$Generic$ICollection$1$IsReadOnly: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$ICollection$IsSynchronized: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$ICollection$SyncRoot: {\r\n get: function () {\r\n return null;\r\n }\r\n },\r\n System$Collections$IDictionary$IsFixedSize: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$IDictionary$IsReadOnly: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$IDictionary$Keys: {\r\n get: function () {\r\n return Bridge.cast(this.Keys, System.Collections.ICollection);\r\n }\r\n },\r\n System$Collections$IDictionary$Values: {\r\n get: function () {\r\n return Bridge.cast(this.Values, System.Collections.ICollection);\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Count\", [\"System$Collections$Generic$IReadOnlyCollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Count\", \"System$Collections$Generic$IReadOnlyCollection$1$Count\"],\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"Count\", \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Count\",\r\n \"System$Collections$Generic$IDictionary$2$Keys\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Keys\",\r\n \"System$Collections$Generic$IReadOnlyDictionary$2$Keys\", \"System$Collections$Generic$IReadOnlyDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Keys\",\r\n \"System$Collections$Generic$IDictionary$2$Values\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Values\",\r\n \"System$Collections$Generic$IReadOnlyDictionary$2$Values\", \"System$Collections$Generic$IReadOnlyDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Values\",\r\n \"getItem\", \"System$Collections$Generic$IReadOnlyDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$getItem\",\r\n \"setItem\", \"System$Collections$Generic$IReadOnlyDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$setItem\",\r\n \"getItem\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$getItem\",\r\n \"setItem\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$setItem\",\r\n \"add\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$add\",\r\n \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$add\", \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$add\",\r\n \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$contains\", \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$contains\",\r\n \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$remove\", \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$remove\",\r\n \"clear\", \"System$Collections$IDictionary$clear\",\r\n \"clear\", \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$clear\",\r\n \"containsKey\", \"System$Collections$Generic$IReadOnlyDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$containsKey\",\r\n \"containsKey\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$containsKey\",\r\n \"System$Collections$Generic$IEnumerable$1$System$Collections$Generic$KeyValuePair$2$GetEnumerator\", \"System$Collections$Generic$IEnumerable$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$GetEnumerator\",\r\n \"remove\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$remove\",\r\n \"tryGetValue\", \"System$Collections$Generic$IReadOnlyDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$tryGetValue\",\r\n \"tryGetValue\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$tryGetValue\",\r\n \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$IsReadOnly\", \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$IsReadOnly\",\r\n \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$copyTo\", \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$copyTo\"\r\n ],\r\n ctors: {\r\n ctor: function () {\r\n System.Collections.Generic.Dictionary$2(TKey,TValue).$ctor5.call(this, 0, null);\r\n },\r\n $ctor4: function (capacity) {\r\n System.Collections.Generic.Dictionary$2(TKey,TValue).$ctor5.call(this, capacity, null);\r\n },\r\n $ctor3: function (comparer) {\r\n System.Collections.Generic.Dictionary$2(TKey,TValue).$ctor5.call(this, 0, comparer);\r\n },\r\n $ctor5: function (capacity, comparer) {\r\n this.$initialize();\r\n if (capacity < 0) {\r\n System.ThrowHelper.ThrowArgumentOutOfRangeException$1(System.ExceptionArgument.capacity);\r\n }\r\n if (capacity > 0) {\r\n this.Initialize(capacity);\r\n }\r\n this.comparer = comparer || System.Collections.Generic.EqualityComparer$1(TKey).def;\r\n\r\n this.isSimpleKey = ((Bridge.referenceEquals(TKey, System.String)) || (TKey.$number === true && !Bridge.referenceEquals(TKey, System.Int64) && !Bridge.referenceEquals(TKey, System.UInt64)) || (Bridge.referenceEquals(TKey, System.Char))) && (Bridge.referenceEquals(this.comparer, System.Collections.Generic.EqualityComparer$1(TKey).def));\r\n },\r\n $ctor1: function (dictionary) {\r\n System.Collections.Generic.Dictionary$2(TKey,TValue).$ctor2.call(this, dictionary, null);\r\n },\r\n $ctor2: function (dictionary, comparer) {\r\n var $t;\r\n System.Collections.Generic.Dictionary$2(TKey,TValue).$ctor5.call(this, dictionary != null ? System.Array.getCount(dictionary, System.Collections.Generic.KeyValuePair$2(TKey,TValue)) : 0, comparer);\r\n\r\n if (dictionary == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.dictionary);\r\n }\r\n\r\n $t = Bridge.getEnumerator(dictionary, System.Collections.Generic.KeyValuePair$2(TKey,TValue));\r\n try {\r\n while ($t.moveNext()) {\r\n var pair = $t.Current;\r\n this.add(pair.key, pair.value);\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n }\r\n },\r\n methods: {\r\n getItem: function (key) {\r\n var i = this.FindEntry(key);\r\n if (i >= 0) {\r\n return this.entries[System.Array.index(i, this.entries)].value;\r\n }\r\n throw new System.Collections.Generic.KeyNotFoundException.ctor();\r\n },\r\n setItem: function (key, value) {\r\n this.Insert(key, value, false);\r\n },\r\n System$Collections$IDictionary$getItem: function (key) {\r\n if (System.Collections.Generic.Dictionary$2(TKey,TValue).IsCompatibleKey(key)) {\r\n var i = this.FindEntry(Bridge.cast(Bridge.unbox(key, TKey), TKey));\r\n if (i >= 0) {\r\n return this.entries[System.Array.index(i, this.entries)].value;\r\n }\r\n }\r\n return null;\r\n },\r\n System$Collections$IDictionary$setItem: function (key, value) {\r\n if (key == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.key);\r\n }\r\n System.ThrowHelper.IfNullAndNullsAreIllegalThenThrow(TValue, value, System.ExceptionArgument.value);\r\n\r\n try {\r\n var tempKey = Bridge.cast(Bridge.unbox(key, TKey), TKey);\r\n try {\r\n this.setItem(tempKey, Bridge.cast(Bridge.unbox(value, TValue), TValue));\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.InvalidCastException)) {\r\n System.ThrowHelper.ThrowWrongValueTypeArgumentException(System.Object, value, TValue);\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n } catch ($e2) {\r\n $e2 = System.Exception.create($e2);\r\n if (Bridge.is($e2, System.InvalidCastException)) {\r\n System.ThrowHelper.ThrowWrongKeyTypeArgumentException(System.Object, key, TKey);\r\n } else {\r\n throw $e2;\r\n }\r\n }\r\n },\r\n add: function (key, value) {\r\n this.Insert(key, value, true);\r\n },\r\n System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$add: function (keyValuePair) {\r\n this.add(keyValuePair.key, keyValuePair.value);\r\n },\r\n System$Collections$IDictionary$add: function (key, value) {\r\n if (key == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.key);\r\n }\r\n System.ThrowHelper.IfNullAndNullsAreIllegalThenThrow(TValue, value, System.ExceptionArgument.value);\r\n\r\n try {\r\n var tempKey = Bridge.cast(Bridge.unbox(key, TKey), TKey);\r\n\r\n try {\r\n this.add(tempKey, Bridge.cast(Bridge.unbox(value, TValue), TValue));\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.InvalidCastException)) {\r\n System.ThrowHelper.ThrowWrongValueTypeArgumentException(System.Object, value, TValue);\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n } catch ($e2) {\r\n $e2 = System.Exception.create($e2);\r\n if (Bridge.is($e2, System.InvalidCastException)) {\r\n System.ThrowHelper.ThrowWrongKeyTypeArgumentException(System.Object, key, TKey);\r\n } else {\r\n throw $e2;\r\n }\r\n }\r\n },\r\n System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$contains: function (keyValuePair) {\r\n var i = this.FindEntry(keyValuePair.key);\r\n if (i >= 0 && System.Collections.Generic.EqualityComparer$1(TValue).def.equals2(this.entries[System.Array.index(i, this.entries)].value, keyValuePair.value)) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n System$Collections$IDictionary$contains: function (key) {\r\n if (System.Collections.Generic.Dictionary$2(TKey,TValue).IsCompatibleKey(key)) {\r\n return this.containsKey(Bridge.cast(Bridge.unbox(key, TKey), TKey));\r\n }\r\n\r\n return false;\r\n },\r\n System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$remove: function (keyValuePair) {\r\n var i = this.FindEntry(keyValuePair.key);\r\n if (i >= 0 && System.Collections.Generic.EqualityComparer$1(TValue).def.equals2(this.entries[System.Array.index(i, this.entries)].value, keyValuePair.value)) {\r\n this.remove(keyValuePair.key);\r\n return true;\r\n }\r\n return false;\r\n },\r\n remove: function (key) {\r\n if (key == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.key);\r\n }\r\n\r\n if (this.isSimpleKey) {\r\n if (this.simpleBuckets != null) {\r\n if (this.simpleBuckets.hasOwnProperty(key)) {\r\n var i = this.simpleBuckets[key];\r\n delete this.simpleBuckets[key];\r\n this.entries[System.Array.index(i, this.entries)].hashCode = -1;\r\n this.entries[System.Array.index(i, this.entries)].next = this.freeList;\r\n this.entries[System.Array.index(i, this.entries)].key = Bridge.getDefaultValue(TKey);\r\n this.entries[System.Array.index(i, this.entries)].value = Bridge.getDefaultValue(TValue);\r\n this.freeList = i;\r\n this.freeCount = (this.freeCount + 1) | 0;\r\n this.version = (this.version + 1) | 0;\r\n return true;\r\n }\r\n }\r\n } else if (this.buckets != null) {\r\n var hashCode = this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IEqualityComparer$1$\" + Bridge.getTypeAlias(TKey) + \"$getHashCode2\", \"System$Collections$Generic$IEqualityComparer$1$getHashCode2\")](key) & 2147483647;\r\n var bucket = hashCode % this.buckets.length;\r\n var last = -1;\r\n for (var i1 = this.buckets[System.Array.index(bucket, this.buckets)]; i1 >= 0; last = i1, i1 = this.entries[System.Array.index(i1, this.entries)].next) {\r\n if (this.entries[System.Array.index(i1, this.entries)].hashCode === hashCode && this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IEqualityComparer$1$\" + Bridge.getTypeAlias(TKey) + \"$equals2\", \"System$Collections$Generic$IEqualityComparer$1$equals2\")](this.entries[System.Array.index(i1, this.entries)].key, key)) {\r\n if (last < 0) {\r\n this.buckets[System.Array.index(bucket, this.buckets)] = this.entries[System.Array.index(i1, this.entries)].next;\r\n } else {\r\n this.entries[System.Array.index(last, this.entries)].next = this.entries[System.Array.index(i1, this.entries)].next;\r\n }\r\n this.entries[System.Array.index(i1, this.entries)].hashCode = -1;\r\n this.entries[System.Array.index(i1, this.entries)].next = this.freeList;\r\n this.entries[System.Array.index(i1, this.entries)].key = Bridge.getDefaultValue(TKey);\r\n this.entries[System.Array.index(i1, this.entries)].value = Bridge.getDefaultValue(TValue);\r\n this.freeList = i1;\r\n this.freeCount = (this.freeCount + 1) | 0;\r\n this.version = (this.version + 1) | 0;\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n },\r\n System$Collections$IDictionary$remove: function (key) {\r\n if (System.Collections.Generic.Dictionary$2(TKey,TValue).IsCompatibleKey(key)) {\r\n this.remove(Bridge.cast(Bridge.unbox(key, TKey), TKey));\r\n }\r\n },\r\n clear: function () {\r\n if (this.count > 0) {\r\n for (var i = 0; i < this.buckets.length; i = (i + 1) | 0) {\r\n this.buckets[System.Array.index(i, this.buckets)] = -1;\r\n }\r\n if (this.isSimpleKey) {\r\n this.simpleBuckets = { };\r\n }\r\n System.Array.fill(this.entries, function () {\r\n return Bridge.getDefaultValue(System.Collections.Generic.Dictionary$2.Entry(TKey,TValue));\r\n }, 0, this.count);\r\n this.freeList = -1;\r\n this.count = 0;\r\n this.freeCount = 0;\r\n this.version = (this.version + 1) | 0;\r\n }\r\n },\r\n containsKey: function (key) {\r\n return this.FindEntry(key) >= 0;\r\n },\r\n ContainsValue: function (value) {\r\n if (value == null) {\r\n for (var i = 0; i < this.count; i = (i + 1) | 0) {\r\n if (this.entries[System.Array.index(i, this.entries)].hashCode >= 0 && this.entries[System.Array.index(i, this.entries)].value == null) {\r\n return true;\r\n }\r\n }\r\n } else {\r\n var c = System.Collections.Generic.EqualityComparer$1(TValue).def;\r\n for (var i1 = 0; i1 < this.count; i1 = (i1 + 1) | 0) {\r\n if (this.entries[System.Array.index(i1, this.entries)].hashCode >= 0 && c.equals2(this.entries[System.Array.index(i1, this.entries)].value, value)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n },\r\n CopyTo: function (array, index) {\r\n if (array == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.array);\r\n }\r\n\r\n if (index < 0 || index > array.length) {\r\n System.ThrowHelper.ThrowArgumentOutOfRangeException$2(System.ExceptionArgument.index, System.ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);\r\n }\r\n\r\n if (((array.length - index) | 0) < this.Count) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_ArrayPlusOffTooSmall);\r\n }\r\n\r\n var count = this.count;\r\n var entries = this.entries;\r\n for (var i = 0; i < count; i = (i + 1) | 0) {\r\n if (entries[System.Array.index(i, entries)].hashCode >= 0) {\r\n array[System.Array.index(Bridge.identity(index, ((index = (index + 1) | 0))), array)] = new (System.Collections.Generic.KeyValuePair$2(TKey,TValue)).$ctor1(entries[System.Array.index(i, entries)].key, entries[System.Array.index(i, entries)].value);\r\n }\r\n }\r\n },\r\n System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$copyTo: function (array, index) {\r\n this.CopyTo(array, index);\r\n },\r\n System$Collections$ICollection$copyTo: function (array, index) {\r\n if (array == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.array);\r\n }\r\n\r\n if (System.Array.getRank(array) !== 1) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_RankMultiDimNotSupported);\r\n }\r\n\r\n if (System.Array.getLower(array, 0) !== 0) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_NonZeroLowerBound);\r\n }\r\n\r\n if (index < 0 || index > array.length) {\r\n System.ThrowHelper.ThrowArgumentOutOfRangeException$2(System.ExceptionArgument.index, System.ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);\r\n }\r\n\r\n if (((array.length - index) | 0) < this.Count) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_ArrayPlusOffTooSmall);\r\n }\r\n\r\n var pairs = Bridge.as(array, System.Array.type(System.Collections.Generic.KeyValuePair$2(TKey,TValue)));\r\n if (pairs != null) {\r\n this.CopyTo(pairs, index);\r\n } else if (Bridge.is(array, System.Array.type(System.Collections.DictionaryEntry))) {\r\n var dictEntryArray = Bridge.as(array, System.Array.type(System.Collections.DictionaryEntry));\r\n var entries = this.entries;\r\n for (var i = 0; i < this.count; i = (i + 1) | 0) {\r\n if (entries[System.Array.index(i, entries)].hashCode >= 0) {\r\n dictEntryArray[System.Array.index(Bridge.identity(index, ((index = (index + 1) | 0))), dictEntryArray)] = new System.Collections.DictionaryEntry.$ctor1(entries[System.Array.index(i, entries)].key, entries[System.Array.index(i, entries)].value);\r\n }\r\n }\r\n } else {\r\n var objects = Bridge.as(array, System.Array.type(System.Object));\r\n if (objects == null) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Argument_InvalidArrayType);\r\n }\r\n\r\n try {\r\n var count = this.count;\r\n var entries1 = this.entries;\r\n for (var i1 = 0; i1 < count; i1 = (i1 + 1) | 0) {\r\n if (entries1[System.Array.index(i1, entries1)].hashCode >= 0) {\r\n objects[System.Array.index(Bridge.identity(index, ((index = (index + 1) | 0))), objects)] = new (System.Collections.Generic.KeyValuePair$2(TKey,TValue)).$ctor1(entries1[System.Array.index(i1, entries1)].key, entries1[System.Array.index(i1, entries1)].value);\r\n }\r\n }\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.ArrayTypeMismatchException)) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Argument_InvalidArrayType);\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n }\r\n },\r\n GetEnumerator: function () {\r\n return new (System.Collections.Generic.Dictionary$2.Enumerator(TKey,TValue)).$ctor1(this, System.Collections.Generic.Dictionary$2.Enumerator(TKey,TValue).KeyValuePair);\r\n },\r\n System$Collections$Generic$IEnumerable$1$System$Collections$Generic$KeyValuePair$2$GetEnumerator: function () {\r\n return new (System.Collections.Generic.Dictionary$2.Enumerator(TKey,TValue)).$ctor1(this, System.Collections.Generic.Dictionary$2.Enumerator(TKey,TValue).KeyValuePair).$clone();\r\n },\r\n System$Collections$IEnumerable$GetEnumerator: function () {\r\n return new (System.Collections.Generic.Dictionary$2.Enumerator(TKey,TValue)).$ctor1(this, System.Collections.Generic.Dictionary$2.Enumerator(TKey,TValue).KeyValuePair).$clone();\r\n },\r\n System$Collections$IDictionary$GetEnumerator: function () {\r\n return new (System.Collections.Generic.Dictionary$2.Enumerator(TKey,TValue)).$ctor1(this, System.Collections.Generic.Dictionary$2.Enumerator(TKey,TValue).DictEntry).$clone();\r\n },\r\n FindEntry: function (key) {\r\n if (key == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.key);\r\n }\r\n\r\n if (this.isSimpleKey) {\r\n if (this.simpleBuckets != null && this.simpleBuckets.hasOwnProperty(key)) {\r\n return this.simpleBuckets[key];\r\n }\r\n } else if (this.buckets != null) {\r\n var hashCode = this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IEqualityComparer$1$\" + Bridge.getTypeAlias(TKey) + \"$getHashCode2\", \"System$Collections$Generic$IEqualityComparer$1$getHashCode2\")](key) & 2147483647;\r\n for (var i = this.buckets[System.Array.index(hashCode % this.buckets.length, this.buckets)]; i >= 0; i = this.entries[System.Array.index(i, this.entries)].next) {\r\n if (this.entries[System.Array.index(i, this.entries)].hashCode === hashCode && this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IEqualityComparer$1$\" + Bridge.getTypeAlias(TKey) + \"$equals2\", \"System$Collections$Generic$IEqualityComparer$1$equals2\")](this.entries[System.Array.index(i, this.entries)].key, key)) {\r\n return i;\r\n }\r\n }\r\n }\r\n return -1;\r\n },\r\n Initialize: function (capacity) {\r\n var size = System.Collections.HashHelpers.GetPrime(capacity);\r\n this.buckets = System.Array.init(size, 0, System.Int32);\r\n for (var i = 0; i < this.buckets.length; i = (i + 1) | 0) {\r\n this.buckets[System.Array.index(i, this.buckets)] = -1;\r\n }\r\n this.entries = System.Array.init(size, function (){\r\n return new (System.Collections.Generic.Dictionary$2.Entry(TKey,TValue))();\r\n }, System.Collections.Generic.Dictionary$2.Entry(TKey,TValue));\r\n this.freeList = -1;\r\n this.simpleBuckets = { };\r\n },\r\n Insert: function (key, value, add) {\r\n\r\n if (key == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.key);\r\n }\r\n\r\n if (this.buckets == null) {\r\n this.Initialize(0);\r\n }\r\n\r\n if (this.isSimpleKey) {\r\n if (this.simpleBuckets.hasOwnProperty(key)) {\r\n if (add) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Argument_AddingDuplicate);\r\n }\r\n\r\n this.entries[System.Array.index(this.simpleBuckets[key], this.entries)].value = value;\r\n this.version = (this.version + 1) | 0;\r\n return;\r\n }\r\n\r\n var simpleIndex;\r\n if (this.freeCount > 0) {\r\n simpleIndex = this.freeList;\r\n this.freeList = this.entries[System.Array.index(simpleIndex, this.entries)].next;\r\n this.freeCount = (this.freeCount - 1) | 0;\r\n } else {\r\n if (this.count === this.entries.length) {\r\n this.Resize();\r\n }\r\n simpleIndex = this.count;\r\n this.count = (this.count + 1) | 0;\r\n }\r\n\r\n this.entries[System.Array.index(simpleIndex, this.entries)].hashCode = 1;\r\n this.entries[System.Array.index(simpleIndex, this.entries)].next = -1;\r\n this.entries[System.Array.index(simpleIndex, this.entries)].key = key;\r\n this.entries[System.Array.index(simpleIndex, this.entries)].value = value;\r\n\r\n this.simpleBuckets[key] = simpleIndex;\r\n this.version = (this.version + 1) | 0;\r\n\r\n return;\r\n }\r\n\r\n var hashCode = this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IEqualityComparer$1$\" + Bridge.getTypeAlias(TKey) + \"$getHashCode2\", \"System$Collections$Generic$IEqualityComparer$1$getHashCode2\")](key) & 2147483647;\r\n var targetBucket = hashCode % this.buckets.length;\r\n\r\n for (var i = this.buckets[System.Array.index(targetBucket, this.buckets)]; i >= 0; i = this.entries[System.Array.index(i, this.entries)].next) {\r\n if (this.entries[System.Array.index(i, this.entries)].hashCode === hashCode && this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IEqualityComparer$1$\" + Bridge.getTypeAlias(TKey) + \"$equals2\", \"System$Collections$Generic$IEqualityComparer$1$equals2\")](this.entries[System.Array.index(i, this.entries)].key, key)) {\r\n if (add) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Argument_AddingDuplicate);\r\n }\r\n this.entries[System.Array.index(i, this.entries)].value = value;\r\n this.version = (this.version + 1) | 0;\r\n return;\r\n }\r\n }\r\n var index;\r\n if (this.freeCount > 0) {\r\n index = this.freeList;\r\n this.freeList = this.entries[System.Array.index(index, this.entries)].next;\r\n this.freeCount = (this.freeCount - 1) | 0;\r\n } else {\r\n if (this.count === this.entries.length) {\r\n this.Resize();\r\n targetBucket = hashCode % this.buckets.length;\r\n }\r\n index = this.count;\r\n this.count = (this.count + 1) | 0;\r\n }\r\n\r\n this.entries[System.Array.index(index, this.entries)].hashCode = hashCode;\r\n this.entries[System.Array.index(index, this.entries)].next = this.buckets[System.Array.index(targetBucket, this.buckets)];\r\n this.entries[System.Array.index(index, this.entries)].key = key;\r\n this.entries[System.Array.index(index, this.entries)].value = value;\r\n this.buckets[System.Array.index(targetBucket, this.buckets)] = index;\r\n this.version = (this.version + 1) | 0;\r\n },\r\n Resize: function () {\r\n this.Resize$1(System.Collections.HashHelpers.ExpandPrime(this.count), false);\r\n },\r\n Resize$1: function (newSize, forceNewHashCodes) {\r\n var newBuckets = System.Array.init(newSize, 0, System.Int32);\r\n for (var i = 0; i < newBuckets.length; i = (i + 1) | 0) {\r\n newBuckets[System.Array.index(i, newBuckets)] = -1;\r\n }\r\n if (this.isSimpleKey) {\r\n this.simpleBuckets = { };\r\n }\r\n var newEntries = System.Array.init(newSize, function (){\r\n return new (System.Collections.Generic.Dictionary$2.Entry(TKey,TValue))();\r\n }, System.Collections.Generic.Dictionary$2.Entry(TKey,TValue));\r\n System.Array.copy(this.entries, 0, newEntries, 0, this.count);\r\n if (forceNewHashCodes) {\r\n for (var i1 = 0; i1 < this.count; i1 = (i1 + 1) | 0) {\r\n if (newEntries[System.Array.index(i1, newEntries)].hashCode !== -1) {\r\n newEntries[System.Array.index(i1, newEntries)].hashCode = (this.comparer[Bridge.geti(this.comparer, \"System$Collections$Generic$IEqualityComparer$1$\" + Bridge.getTypeAlias(TKey) + \"$getHashCode2\", \"System$Collections$Generic$IEqualityComparer$1$getHashCode2\")](newEntries[System.Array.index(i1, newEntries)].key) & 2147483647);\r\n }\r\n }\r\n }\r\n for (var i2 = 0; i2 < this.count; i2 = (i2 + 1) | 0) {\r\n if (newEntries[System.Array.index(i2, newEntries)].hashCode >= 0) {\r\n if (this.isSimpleKey) {\r\n newEntries[System.Array.index(i2, newEntries)].next = -1;\r\n this.simpleBuckets[newEntries[System.Array.index(i2, newEntries)].key] = i2;\r\n } else {\r\n var bucket = newEntries[System.Array.index(i2, newEntries)].hashCode % newSize;\r\n newEntries[System.Array.index(i2, newEntries)].next = newBuckets[System.Array.index(bucket, newBuckets)];\r\n newBuckets[System.Array.index(bucket, newBuckets)] = i2;\r\n }\r\n }\r\n }\r\n this.buckets = newBuckets;\r\n this.entries = newEntries;\r\n },\r\n tryGetValue: function (key, value) {\r\n var i = this.FindEntry(key);\r\n if (i >= 0) {\r\n value.v = this.entries[System.Array.index(i, this.entries)].value;\r\n return true;\r\n }\r\n value.v = Bridge.getDefaultValue(TValue);\r\n return false;\r\n },\r\n GetValueOrDefault: function (key) {\r\n var i = this.FindEntry(key);\r\n if (i >= 0) {\r\n return this.entries[System.Array.index(i, this.entries)].value;\r\n }\r\n return Bridge.getDefaultValue(TValue);\r\n }\r\n }\r\n }; });\r\n\r\n // @source Entry.js\r\n\r\n Bridge.define(\"System.Collections.Generic.Dictionary$2.Entry\", function (TKey, TValue) { return {\r\n $kind: \"nested struct\",\r\n statics: {\r\n methods: {\r\n getDefaultValue: function () { return new (System.Collections.Generic.Dictionary$2.Entry(TKey,TValue))(); }\r\n }\r\n },\r\n fields: {\r\n hashCode: 0,\r\n next: 0,\r\n key: Bridge.getDefaultValue(TKey),\r\n value: Bridge.getDefaultValue(TValue)\r\n },\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n getHashCode: function () {\r\n var h = Bridge.addHash([1920233150, this.hashCode, this.next, this.key, this.value]);\r\n return h;\r\n },\r\n equals: function (o) {\r\n if (!Bridge.is(o, System.Collections.Generic.Dictionary$2.Entry(TKey,TValue))) {\r\n return false;\r\n }\r\n return Bridge.equals(this.hashCode, o.hashCode) && Bridge.equals(this.next, o.next) && Bridge.equals(this.key, o.key) && Bridge.equals(this.value, o.value);\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.Collections.Generic.Dictionary$2.Entry(TKey,TValue))();\r\n s.hashCode = this.hashCode;\r\n s.next = this.next;\r\n s.key = this.key;\r\n s.value = this.value;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n // @source Enumerator.js\r\n\r\n Bridge.define(\"System.Collections.Generic.Dictionary$2.Enumerator\", function (TKey, TValue) { return {\r\n inherits: [System.Collections.Generic.IEnumerator$1(System.Collections.Generic.KeyValuePair$2(TKey,TValue)),System.Collections.IDictionaryEnumerator],\r\n $kind: \"nested struct\",\r\n statics: {\r\n fields: {\r\n DictEntry: 0,\r\n KeyValuePair: 0\r\n },\r\n ctors: {\r\n init: function () {\r\n this.DictEntry = 1;\r\n this.KeyValuePair = 2;\r\n }\r\n },\r\n methods: {\r\n getDefaultValue: function () { return new (System.Collections.Generic.Dictionary$2.Enumerator(TKey,TValue))(); }\r\n }\r\n },\r\n fields: {\r\n dictionary: null,\r\n version: 0,\r\n index: 0,\r\n current: null,\r\n getEnumeratorRetType: 0\r\n },\r\n props: {\r\n Current: {\r\n get: function () {\r\n return this.current;\r\n }\r\n },\r\n System$Collections$IEnumerator$Current: {\r\n get: function () {\r\n if (this.index === 0 || (this.index === ((this.dictionary.count + 1) | 0))) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumOpCantHappen);\r\n }\r\n\r\n if (this.getEnumeratorRetType === System.Collections.Generic.Dictionary$2.Enumerator(TKey,TValue).DictEntry) {\r\n return new System.Collections.DictionaryEntry.$ctor1(this.current.key, this.current.value).$clone();\r\n } else {\r\n return new (System.Collections.Generic.KeyValuePair$2(TKey,TValue)).$ctor1(this.current.key, this.current.value);\r\n }\r\n }\r\n },\r\n System$Collections$IDictionaryEnumerator$Entry: {\r\n get: function () {\r\n if (this.index === 0 || (this.index === ((this.dictionary.count + 1) | 0))) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumOpCantHappen);\r\n }\r\n\r\n return new System.Collections.DictionaryEntry.$ctor1(this.current.key, this.current.value);\r\n }\r\n },\r\n System$Collections$IDictionaryEnumerator$Key: {\r\n get: function () {\r\n if (this.index === 0 || (this.index === ((this.dictionary.count + 1) | 0))) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumOpCantHappen);\r\n }\r\n\r\n return this.current.key;\r\n }\r\n },\r\n System$Collections$IDictionaryEnumerator$Value: {\r\n get: function () {\r\n if (this.index === 0 || (this.index === ((this.dictionary.count + 1) | 0))) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumOpCantHappen);\r\n }\r\n\r\n return this.current.value;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"Current\", [\"System$Collections$Generic$IEnumerator$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\"],\r\n \"Dispose\", \"System$IDisposable$Dispose\"\r\n ],\r\n ctors: {\r\n init: function () {\r\n this.current = new (System.Collections.Generic.KeyValuePair$2(TKey,TValue))();\r\n },\r\n $ctor1: function (dictionary, getEnumeratorRetType) {\r\n this.$initialize();\r\n this.dictionary = dictionary;\r\n this.version = dictionary.version;\r\n this.index = 0;\r\n this.getEnumeratorRetType = getEnumeratorRetType;\r\n this.current = new (System.Collections.Generic.KeyValuePair$2(TKey,TValue)).ctor();\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n moveNext: function () {\r\n var $t, $t1, $t2;\r\n if (this.version !== this.dictionary.version) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumFailedVersion);\r\n }\r\n\r\n while ((this.index >>> 0) < ((this.dictionary.count) >>> 0)) {\r\n if (($t = this.dictionary.entries)[System.Array.index(this.index, $t)].hashCode >= 0) {\r\n this.current = new (System.Collections.Generic.KeyValuePair$2(TKey,TValue)).$ctor1(($t1 = this.dictionary.entries)[System.Array.index(this.index, $t1)].key, ($t2 = this.dictionary.entries)[System.Array.index(this.index, $t2)].value);\r\n this.index = (this.index + 1) | 0;\r\n return true;\r\n }\r\n this.index = (this.index + 1) | 0;\r\n }\r\n\r\n this.index = (this.dictionary.count + 1) | 0;\r\n this.current = new (System.Collections.Generic.KeyValuePair$2(TKey,TValue)).ctor();\r\n return false;\r\n },\r\n Dispose: function () { },\r\n System$Collections$IEnumerator$reset: function () {\r\n if (this.version !== this.dictionary.version) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumFailedVersion);\r\n }\r\n\r\n this.index = 0;\r\n this.current = new (System.Collections.Generic.KeyValuePair$2(TKey,TValue)).ctor();\r\n },\r\n getHashCode: function () {\r\n var h = Bridge.addHash([3788985113, this.dictionary, this.version, this.index, this.current, this.getEnumeratorRetType]);\r\n return h;\r\n },\r\n equals: function (o) {\r\n if (!Bridge.is(o, System.Collections.Generic.Dictionary$2.Enumerator(TKey,TValue))) {\r\n return false;\r\n }\r\n return Bridge.equals(this.dictionary, o.dictionary) && Bridge.equals(this.version, o.version) && Bridge.equals(this.index, o.index) && Bridge.equals(this.current, o.current) && Bridge.equals(this.getEnumeratorRetType, o.getEnumeratorRetType);\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.Collections.Generic.Dictionary$2.Enumerator(TKey,TValue))();\r\n s.dictionary = this.dictionary;\r\n s.version = this.version;\r\n s.index = this.index;\r\n s.current = this.current;\r\n s.getEnumeratorRetType = this.getEnumeratorRetType;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n // @source KeyCollection.js\r\n\r\n Bridge.define(\"System.Collections.Generic.Dictionary$2.KeyCollection\", function (TKey, TValue) { return {\r\n inherits: [System.Collections.Generic.ICollection$1(TKey),System.Collections.ICollection,System.Collections.Generic.IReadOnlyCollection$1(TKey)],\r\n $kind: \"nested class\",\r\n fields: {\r\n dictionary: null\r\n },\r\n props: {\r\n Count: {\r\n get: function () {\r\n return this.dictionary.Count;\r\n }\r\n },\r\n System$Collections$Generic$ICollection$1$IsReadOnly: {\r\n get: function () {\r\n return true;\r\n }\r\n },\r\n System$Collections$ICollection$IsSynchronized: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$ICollection$SyncRoot: {\r\n get: function () {\r\n return Bridge.cast(this.dictionary, System.Collections.ICollection).System$Collections$ICollection$SyncRoot;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"copyTo\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TKey) + \"$copyTo\",\r\n \"Count\", [\"System$Collections$Generic$IReadOnlyCollection$1$\" + Bridge.getTypeAlias(TKey) + \"$Count\", \"System$Collections$Generic$IReadOnlyCollection$1$Count\"],\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"Count\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TKey) + \"$Count\",\r\n \"System$Collections$Generic$ICollection$1$IsReadOnly\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TKey) + \"$IsReadOnly\",\r\n \"System$Collections$Generic$ICollection$1$add\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TKey) + \"$add\",\r\n \"System$Collections$Generic$ICollection$1$clear\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TKey) + \"$clear\",\r\n \"System$Collections$Generic$ICollection$1$contains\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TKey) + \"$contains\",\r\n \"System$Collections$Generic$ICollection$1$remove\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TKey) + \"$remove\",\r\n \"System$Collections$Generic$IEnumerable$1$GetEnumerator\", \"System$Collections$Generic$IEnumerable$1$\" + Bridge.getTypeAlias(TKey) + \"$GetEnumerator\"\r\n ],\r\n ctors: {\r\n ctor: function (dictionary) {\r\n this.$initialize();\r\n if (dictionary == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.dictionary);\r\n }\r\n this.dictionary = dictionary;\r\n }\r\n },\r\n methods: {\r\n GetEnumerator: function () {\r\n return new (System.Collections.Generic.Dictionary$2.KeyCollection.Enumerator(TKey,TValue)).$ctor1(this.dictionary);\r\n },\r\n System$Collections$Generic$IEnumerable$1$GetEnumerator: function () {\r\n return new (System.Collections.Generic.Dictionary$2.KeyCollection.Enumerator(TKey,TValue)).$ctor1(this.dictionary).$clone();\r\n },\r\n System$Collections$IEnumerable$GetEnumerator: function () {\r\n return new (System.Collections.Generic.Dictionary$2.KeyCollection.Enumerator(TKey,TValue)).$ctor1(this.dictionary).$clone();\r\n },\r\n copyTo: function (array, index) {\r\n if (array == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.array);\r\n }\r\n\r\n if (index < 0 || index > array.length) {\r\n System.ThrowHelper.ThrowArgumentOutOfRangeException$2(System.ExceptionArgument.index, System.ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);\r\n }\r\n\r\n if (((array.length - index) | 0) < this.dictionary.Count) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_ArrayPlusOffTooSmall);\r\n }\r\n\r\n var count = this.dictionary.count;\r\n var entries = this.dictionary.entries;\r\n for (var i = 0; i < count; i = (i + 1) | 0) {\r\n if (entries[System.Array.index(i, entries)].hashCode >= 0) {\r\n array[System.Array.index(Bridge.identity(index, ((index = (index + 1) | 0))), array)] = entries[System.Array.index(i, entries)].key;\r\n }\r\n }\r\n },\r\n System$Collections$ICollection$copyTo: function (array, index) {\r\n if (array == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.array);\r\n }\r\n\r\n if (System.Array.getRank(array) !== 1) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_RankMultiDimNotSupported);\r\n }\r\n\r\n if (System.Array.getLower(array, 0) !== 0) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_NonZeroLowerBound);\r\n }\r\n\r\n if (index < 0 || index > array.length) {\r\n System.ThrowHelper.ThrowArgumentOutOfRangeException$2(System.ExceptionArgument.index, System.ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);\r\n }\r\n\r\n if (((array.length - index) | 0) < this.dictionary.Count) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_ArrayPlusOffTooSmall);\r\n }\r\n\r\n var keys = Bridge.as(array, System.Array.type(TKey));\r\n if (keys != null) {\r\n this.copyTo(keys, index);\r\n } else {\r\n var objects = Bridge.as(array, System.Array.type(System.Object));\r\n if (objects == null) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Argument_InvalidArrayType);\r\n }\r\n\r\n var count = this.dictionary.count;\r\n var entries = this.dictionary.entries;\r\n try {\r\n for (var i = 0; i < count; i = (i + 1) | 0) {\r\n if (entries[System.Array.index(i, entries)].hashCode >= 0) {\r\n objects[System.Array.index(Bridge.identity(index, ((index = (index + 1) | 0))), objects)] = entries[System.Array.index(i, entries)].key;\r\n }\r\n }\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.ArrayTypeMismatchException)) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Argument_InvalidArrayType);\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n }\r\n },\r\n System$Collections$Generic$ICollection$1$add: function (item) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_KeyCollectionSet);\r\n },\r\n System$Collections$Generic$ICollection$1$clear: function () {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_KeyCollectionSet);\r\n },\r\n System$Collections$Generic$ICollection$1$contains: function (item) {\r\n return this.dictionary.containsKey(item);\r\n },\r\n System$Collections$Generic$ICollection$1$remove: function (item) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_KeyCollectionSet);\r\n return false;\r\n }\r\n }\r\n }; });\r\n\r\n // @source Enumerator.js\r\n\r\n Bridge.define(\"System.Collections.Generic.Dictionary$2.KeyCollection.Enumerator\", function (TKey, TValue) { return {\r\n inherits: [System.Collections.Generic.IEnumerator$1(TKey),System.Collections.IEnumerator],\r\n $kind: \"nested struct\",\r\n statics: {\r\n methods: {\r\n getDefaultValue: function () { return new (System.Collections.Generic.Dictionary$2.KeyCollection.Enumerator(TKey,TValue))(); }\r\n }\r\n },\r\n fields: {\r\n dictionary: null,\r\n index: 0,\r\n version: 0,\r\n currentKey: Bridge.getDefaultValue(TKey)\r\n },\r\n props: {\r\n Current: {\r\n get: function () {\r\n return this.currentKey;\r\n }\r\n },\r\n System$Collections$IEnumerator$Current: {\r\n get: function () {\r\n if (this.index === 0 || (this.index === ((this.dictionary.count + 1) | 0))) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumOpCantHappen);\r\n }\r\n\r\n return this.currentKey;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Dispose\", \"System$IDisposable$Dispose\",\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"Current\", [\"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(TKey) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\"]\r\n ],\r\n ctors: {\r\n $ctor1: function (dictionary) {\r\n this.$initialize();\r\n this.dictionary = dictionary;\r\n this.version = dictionary.version;\r\n this.index = 0;\r\n this.currentKey = Bridge.getDefaultValue(TKey);\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n Dispose: function () { },\r\n moveNext: function () {\r\n var $t, $t1;\r\n if (this.version !== this.dictionary.version) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumFailedVersion);\r\n }\r\n\r\n while ((this.index >>> 0) < ((this.dictionary.count) >>> 0)) {\r\n if (($t = this.dictionary.entries)[System.Array.index(this.index, $t)].hashCode >= 0) {\r\n this.currentKey = ($t1 = this.dictionary.entries)[System.Array.index(this.index, $t1)].key;\r\n this.index = (this.index + 1) | 0;\r\n return true;\r\n }\r\n this.index = (this.index + 1) | 0;\r\n }\r\n\r\n this.index = (this.dictionary.count + 1) | 0;\r\n this.currentKey = Bridge.getDefaultValue(TKey);\r\n return false;\r\n },\r\n System$Collections$IEnumerator$reset: function () {\r\n if (this.version !== this.dictionary.version) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumFailedVersion);\r\n }\r\n\r\n this.index = 0;\r\n this.currentKey = Bridge.getDefaultValue(TKey);\r\n },\r\n getHashCode: function () {\r\n var h = Bridge.addHash([3788985113, this.dictionary, this.index, this.version, this.currentKey]);\r\n return h;\r\n },\r\n equals: function (o) {\r\n if (!Bridge.is(o, System.Collections.Generic.Dictionary$2.KeyCollection.Enumerator(TKey,TValue))) {\r\n return false;\r\n }\r\n return Bridge.equals(this.dictionary, o.dictionary) && Bridge.equals(this.index, o.index) && Bridge.equals(this.version, o.version) && Bridge.equals(this.currentKey, o.currentKey);\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.Collections.Generic.Dictionary$2.KeyCollection.Enumerator(TKey,TValue))();\r\n s.dictionary = this.dictionary;\r\n s.index = this.index;\r\n s.version = this.version;\r\n s.currentKey = this.currentKey;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n // @source ValueCollection.js\r\n\r\n Bridge.define(\"System.Collections.Generic.Dictionary$2.ValueCollection\", function (TKey, TValue) { return {\r\n inherits: [System.Collections.Generic.ICollection$1(TValue),System.Collections.ICollection,System.Collections.Generic.IReadOnlyCollection$1(TValue)],\r\n $kind: \"nested class\",\r\n fields: {\r\n dictionary: null\r\n },\r\n props: {\r\n Count: {\r\n get: function () {\r\n return this.dictionary.Count;\r\n }\r\n },\r\n System$Collections$Generic$ICollection$1$IsReadOnly: {\r\n get: function () {\r\n return true;\r\n }\r\n },\r\n System$Collections$ICollection$IsSynchronized: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$ICollection$SyncRoot: {\r\n get: function () {\r\n return Bridge.cast(this.dictionary, System.Collections.ICollection).System$Collections$ICollection$SyncRoot;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"copyTo\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TValue) + \"$copyTo\",\r\n \"Count\", [\"System$Collections$Generic$IReadOnlyCollection$1$\" + Bridge.getTypeAlias(TValue) + \"$Count\", \"System$Collections$Generic$IReadOnlyCollection$1$Count\"],\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"Count\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TValue) + \"$Count\",\r\n \"System$Collections$Generic$ICollection$1$IsReadOnly\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TValue) + \"$IsReadOnly\",\r\n \"System$Collections$Generic$ICollection$1$add\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TValue) + \"$add\",\r\n \"System$Collections$Generic$ICollection$1$remove\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TValue) + \"$remove\",\r\n \"System$Collections$Generic$ICollection$1$clear\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TValue) + \"$clear\",\r\n \"System$Collections$Generic$ICollection$1$contains\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TValue) + \"$contains\",\r\n \"System$Collections$Generic$IEnumerable$1$GetEnumerator\", \"System$Collections$Generic$IEnumerable$1$\" + Bridge.getTypeAlias(TValue) + \"$GetEnumerator\"\r\n ],\r\n ctors: {\r\n ctor: function (dictionary) {\r\n this.$initialize();\r\n if (dictionary == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.dictionary);\r\n }\r\n this.dictionary = dictionary;\r\n }\r\n },\r\n methods: {\r\n GetEnumerator: function () {\r\n return new (System.Collections.Generic.Dictionary$2.ValueCollection.Enumerator(TKey,TValue)).$ctor1(this.dictionary);\r\n },\r\n System$Collections$Generic$IEnumerable$1$GetEnumerator: function () {\r\n return new (System.Collections.Generic.Dictionary$2.ValueCollection.Enumerator(TKey,TValue)).$ctor1(this.dictionary).$clone();\r\n },\r\n System$Collections$IEnumerable$GetEnumerator: function () {\r\n return new (System.Collections.Generic.Dictionary$2.ValueCollection.Enumerator(TKey,TValue)).$ctor1(this.dictionary).$clone();\r\n },\r\n copyTo: function (array, index) {\r\n if (array == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.array);\r\n }\r\n\r\n if (index < 0 || index > array.length) {\r\n System.ThrowHelper.ThrowArgumentOutOfRangeException$2(System.ExceptionArgument.index, System.ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);\r\n }\r\n\r\n if (((array.length - index) | 0) < this.dictionary.Count) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_ArrayPlusOffTooSmall);\r\n }\r\n\r\n var count = this.dictionary.count;\r\n var entries = this.dictionary.entries;\r\n for (var i = 0; i < count; i = (i + 1) | 0) {\r\n if (entries[System.Array.index(i, entries)].hashCode >= 0) {\r\n array[System.Array.index(Bridge.identity(index, ((index = (index + 1) | 0))), array)] = entries[System.Array.index(i, entries)].value;\r\n }\r\n }\r\n },\r\n System$Collections$ICollection$copyTo: function (array, index) {\r\n if (array == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.array);\r\n }\r\n\r\n if (System.Array.getRank(array) !== 1) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_RankMultiDimNotSupported);\r\n }\r\n\r\n if (System.Array.getLower(array, 0) !== 0) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_NonZeroLowerBound);\r\n }\r\n\r\n if (index < 0 || index > array.length) {\r\n System.ThrowHelper.ThrowArgumentOutOfRangeException$2(System.ExceptionArgument.index, System.ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);\r\n }\r\n\r\n if (((array.length - index) | 0) < this.dictionary.Count) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_ArrayPlusOffTooSmall);\r\n }\r\n\r\n var values = Bridge.as(array, System.Array.type(TValue));\r\n if (values != null) {\r\n this.copyTo(values, index);\r\n } else {\r\n var objects = Bridge.as(array, System.Array.type(System.Object));\r\n if (objects == null) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Argument_InvalidArrayType);\r\n }\r\n\r\n var count = this.dictionary.count;\r\n var entries = this.dictionary.entries;\r\n try {\r\n for (var i = 0; i < count; i = (i + 1) | 0) {\r\n if (entries[System.Array.index(i, entries)].hashCode >= 0) {\r\n objects[System.Array.index(Bridge.identity(index, ((index = (index + 1) | 0))), objects)] = entries[System.Array.index(i, entries)].value;\r\n }\r\n }\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.ArrayTypeMismatchException)) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Argument_InvalidArrayType);\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n }\r\n },\r\n System$Collections$Generic$ICollection$1$add: function (item) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_ValueCollectionSet);\r\n },\r\n System$Collections$Generic$ICollection$1$remove: function (item) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_ValueCollectionSet);\r\n return false;\r\n },\r\n System$Collections$Generic$ICollection$1$clear: function () {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_ValueCollectionSet);\r\n },\r\n System$Collections$Generic$ICollection$1$contains: function (item) {\r\n return this.dictionary.ContainsValue(item);\r\n }\r\n }\r\n }; });\r\n\r\n // @source Enumerator.js\r\n\r\n Bridge.define(\"System.Collections.Generic.Dictionary$2.ValueCollection.Enumerator\", function (TKey, TValue) { return {\r\n inherits: [System.Collections.Generic.IEnumerator$1(TValue),System.Collections.IEnumerator],\r\n $kind: \"nested struct\",\r\n statics: {\r\n methods: {\r\n getDefaultValue: function () { return new (System.Collections.Generic.Dictionary$2.ValueCollection.Enumerator(TKey,TValue))(); }\r\n }\r\n },\r\n fields: {\r\n dictionary: null,\r\n index: 0,\r\n version: 0,\r\n currentValue: Bridge.getDefaultValue(TValue)\r\n },\r\n props: {\r\n Current: {\r\n get: function () {\r\n return this.currentValue;\r\n }\r\n },\r\n System$Collections$IEnumerator$Current: {\r\n get: function () {\r\n if (this.index === 0 || (this.index === ((this.dictionary.count + 1) | 0))) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumOpCantHappen);\r\n }\r\n\r\n return this.currentValue;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Dispose\", \"System$IDisposable$Dispose\",\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"Current\", [\"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(TValue) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\"]\r\n ],\r\n ctors: {\r\n $ctor1: function (dictionary) {\r\n this.$initialize();\r\n this.dictionary = dictionary;\r\n this.version = dictionary.version;\r\n this.index = 0;\r\n this.currentValue = Bridge.getDefaultValue(TValue);\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n Dispose: function () { },\r\n moveNext: function () {\r\n var $t, $t1;\r\n if (this.version !== this.dictionary.version) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumFailedVersion);\r\n }\r\n\r\n while ((this.index >>> 0) < ((this.dictionary.count) >>> 0)) {\r\n if (($t = this.dictionary.entries)[System.Array.index(this.index, $t)].hashCode >= 0) {\r\n this.currentValue = ($t1 = this.dictionary.entries)[System.Array.index(this.index, $t1)].value;\r\n this.index = (this.index + 1) | 0;\r\n return true;\r\n }\r\n this.index = (this.index + 1) | 0;\r\n }\r\n this.index = (this.dictionary.count + 1) | 0;\r\n this.currentValue = Bridge.getDefaultValue(TValue);\r\n return false;\r\n },\r\n System$Collections$IEnumerator$reset: function () {\r\n if (this.version !== this.dictionary.version) {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumFailedVersion);\r\n }\r\n this.index = 0;\r\n this.currentValue = Bridge.getDefaultValue(TValue);\r\n },\r\n getHashCode: function () {\r\n var h = Bridge.addHash([3788985113, this.dictionary, this.index, this.version, this.currentValue]);\r\n return h;\r\n },\r\n equals: function (o) {\r\n if (!Bridge.is(o, System.Collections.Generic.Dictionary$2.ValueCollection.Enumerator(TKey,TValue))) {\r\n return false;\r\n }\r\n return Bridge.equals(this.dictionary, o.dictionary) && Bridge.equals(this.index, o.index) && Bridge.equals(this.version, o.version) && Bridge.equals(this.currentValue, o.currentValue);\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.Collections.Generic.Dictionary$2.ValueCollection.Enumerator(TKey,TValue))();\r\n s.dictionary = this.dictionary;\r\n s.index = this.index;\r\n s.version = this.version;\r\n s.currentValue = this.currentValue;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n // @source ReadOnlyDictionary.js\r\n\r\n Bridge.define(\"System.Collections.ObjectModel.ReadOnlyDictionary$2\", function (TKey, TValue) { return {\r\n inherits: [System.Collections.Generic.IDictionary$2(TKey,TValue),System.Collections.IDictionary,System.Collections.Generic.IReadOnlyDictionary$2(TKey,TValue)],\r\n statics: {\r\n fields: {\r\n NotSupported_ReadOnlyCollection: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.NotSupported_ReadOnlyCollection = \"Collection is read-only.\";\r\n }\r\n },\r\n methods: {\r\n IsCompatibleKey: function (key) {\r\n if (key == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"key\");\r\n }\r\n return Bridge.is(key, TKey);\r\n }\r\n }\r\n },\r\n fields: {\r\n m_dictionary: null,\r\n _keys: null,\r\n _values: null\r\n },\r\n props: {\r\n Dictionary: {\r\n get: function () {\r\n return this.m_dictionary;\r\n }\r\n },\r\n Keys: {\r\n get: function () {\r\n if (this._keys == null) {\r\n this._keys = new (System.Collections.ObjectModel.ReadOnlyDictionary$2.KeyCollection(TKey,TValue))(this.m_dictionary[\"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Keys\"]);\r\n }\r\n return this._keys;\r\n }\r\n },\r\n Values: {\r\n get: function () {\r\n if (this._values == null) {\r\n this._values = new (System.Collections.ObjectModel.ReadOnlyDictionary$2.ValueCollection(TKey,TValue))(this.m_dictionary[\"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Values\"]);\r\n }\r\n return this._values;\r\n }\r\n },\r\n System$Collections$Generic$IDictionary$2$Keys: {\r\n get: function () {\r\n return this.Keys;\r\n }\r\n },\r\n System$Collections$Generic$IDictionary$2$Values: {\r\n get: function () {\r\n return this.Values;\r\n }\r\n },\r\n Count: {\r\n get: function () {\r\n return System.Array.getCount(this.m_dictionary, System.Collections.Generic.KeyValuePair$2(TKey,TValue));\r\n }\r\n },\r\n System$Collections$Generic$ICollection$1$IsReadOnly: {\r\n get: function () {\r\n return true;\r\n }\r\n },\r\n System$Collections$IDictionary$IsFixedSize: {\r\n get: function () {\r\n return true;\r\n }\r\n },\r\n System$Collections$IDictionary$IsReadOnly: {\r\n get: function () {\r\n return true;\r\n }\r\n },\r\n System$Collections$IDictionary$Keys: {\r\n get: function () {\r\n return this.Keys;\r\n }\r\n },\r\n System$Collections$IDictionary$Values: {\r\n get: function () {\r\n return this.Values;\r\n }\r\n },\r\n System$Collections$ICollection$IsSynchronized: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$ICollection$SyncRoot: {\r\n get: function () {\r\n return null;\r\n }\r\n },\r\n System$Collections$Generic$IReadOnlyDictionary$2$Keys: {\r\n get: function () {\r\n return this.Keys;\r\n }\r\n },\r\n System$Collections$Generic$IReadOnlyDictionary$2$Values: {\r\n get: function () {\r\n return this.Values;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"containsKey\", \"System$Collections$Generic$IReadOnlyDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$containsKey\",\r\n \"containsKey\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$containsKey\",\r\n \"System$Collections$Generic$IDictionary$2$Keys\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Keys\",\r\n \"tryGetValue\", \"System$Collections$Generic$IReadOnlyDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$tryGetValue\",\r\n \"tryGetValue\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$tryGetValue\",\r\n \"System$Collections$Generic$IDictionary$2$Values\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Values\",\r\n \"getItem\", \"System$Collections$Generic$IReadOnlyDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$getItem\",\r\n \"System$Collections$Generic$IDictionary$2$add\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$add\",\r\n \"System$Collections$Generic$IDictionary$2$remove\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$remove\",\r\n \"System$Collections$Generic$IDictionary$2$getItem\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$getItem\",\r\n \"System$Collections$Generic$IDictionary$2$setItem\", \"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$setItem\",\r\n \"Count\", [\"System$Collections$Generic$IReadOnlyCollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Count\", \"System$Collections$Generic$IReadOnlyCollection$1$Count\"],\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"Count\", \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Count\",\r\n \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$contains\", \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$contains\",\r\n \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$copyTo\", \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$copyTo\",\r\n \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$IsReadOnly\", \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$IsReadOnly\",\r\n \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$add\", \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$add\",\r\n \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$clear\", \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$clear\",\r\n \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$remove\", \"System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$remove\",\r\n \"GetEnumerator\", [\"System$Collections$Generic$IEnumerable$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$GetEnumerator\", \"System$Collections$Generic$IEnumerable$1$GetEnumerator\"],\r\n \"System$Collections$Generic$IReadOnlyDictionary$2$Keys\", \"System$Collections$Generic$IReadOnlyDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Keys\",\r\n \"System$Collections$Generic$IReadOnlyDictionary$2$Values\", \"System$Collections$Generic$IReadOnlyDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Values\"\r\n ],\r\n ctors: {\r\n ctor: function (dictionary) {\r\n this.$initialize();\r\n if (dictionary == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"dictionary\");\r\n }\r\n this.m_dictionary = dictionary;\r\n }\r\n },\r\n methods: {\r\n getItem: function (key) {\r\n return this.m_dictionary[\"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$getItem\"](key);\r\n },\r\n System$Collections$Generic$IDictionary$2$getItem: function (key) {\r\n return this.m_dictionary[\"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$getItem\"](key);\r\n },\r\n System$Collections$Generic$IDictionary$2$setItem: function (key, value) {\r\n throw new System.NotSupportedException.$ctor1(System.Collections.ObjectModel.ReadOnlyDictionary$2(TKey,TValue).NotSupported_ReadOnlyCollection);\r\n },\r\n System$Collections$IDictionary$getItem: function (key) {\r\n if (System.Collections.ObjectModel.ReadOnlyDictionary$2(TKey,TValue).IsCompatibleKey(key)) {\r\n return this.getItem(Bridge.cast(Bridge.unbox(key, TKey), TKey));\r\n }\r\n return null;\r\n },\r\n System$Collections$IDictionary$setItem: function (key, value) {\r\n throw new System.NotSupportedException.$ctor1(System.Collections.ObjectModel.ReadOnlyDictionary$2(TKey,TValue).NotSupported_ReadOnlyCollection);\r\n },\r\n containsKey: function (key) {\r\n return this.m_dictionary[\"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$containsKey\"](key);\r\n },\r\n tryGetValue: function (key, value) {\r\n return this.m_dictionary[\"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$tryGetValue\"](key, value);\r\n },\r\n System$Collections$Generic$IDictionary$2$add: function (key, value) {\r\n throw new System.NotSupportedException.$ctor1(System.Collections.ObjectModel.ReadOnlyDictionary$2(TKey,TValue).NotSupported_ReadOnlyCollection);\r\n },\r\n System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$add: function (item) {\r\n throw new System.NotSupportedException.$ctor1(System.Collections.ObjectModel.ReadOnlyDictionary$2(TKey,TValue).NotSupported_ReadOnlyCollection);\r\n },\r\n System$Collections$IDictionary$add: function (key, value) {\r\n throw new System.NotSupportedException.$ctor1(System.Collections.ObjectModel.ReadOnlyDictionary$2(TKey,TValue).NotSupported_ReadOnlyCollection);\r\n },\r\n System$Collections$Generic$IDictionary$2$remove: function (key) {\r\n throw new System.NotSupportedException.$ctor1(System.Collections.ObjectModel.ReadOnlyDictionary$2(TKey,TValue).NotSupported_ReadOnlyCollection);\r\n },\r\n System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$remove: function (item) {\r\n throw new System.NotSupportedException.$ctor1(System.Collections.ObjectModel.ReadOnlyDictionary$2(TKey,TValue).NotSupported_ReadOnlyCollection);\r\n },\r\n System$Collections$IDictionary$remove: function (key) {\r\n throw new System.NotSupportedException.$ctor1(System.Collections.ObjectModel.ReadOnlyDictionary$2(TKey,TValue).NotSupported_ReadOnlyCollection);\r\n },\r\n System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$contains: function (item) {\r\n return System.Array.contains(this.m_dictionary, item, System.Collections.Generic.KeyValuePair$2(TKey,TValue));\r\n },\r\n System$Collections$IDictionary$contains: function (key) {\r\n return System.Collections.ObjectModel.ReadOnlyDictionary$2(TKey,TValue).IsCompatibleKey(key) && this.containsKey(Bridge.cast(Bridge.unbox(key, TKey), TKey));\r\n },\r\n System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$copyTo: function (array, arrayIndex) {\r\n System.Array.copyTo(this.m_dictionary, array, arrayIndex, System.Collections.Generic.KeyValuePair$2(TKey,TValue));\r\n },\r\n System$Collections$ICollection$copyTo: function (array, index) {\r\n var $t, $t1;\r\n if (array == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n if (System.Array.getRank(array) !== 1) {\r\n throw new System.ArgumentException.$ctor1(\"Only single dimensional arrays are supported for the requested action.\");\r\n }\r\n\r\n if (System.Array.getLower(array, 0) !== 0) {\r\n throw new System.ArgumentException.$ctor1(\"The lower bound of target array must be zero.\");\r\n }\r\n\r\n if (index < 0 || index > array.length) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"index\", \"Non-negative number required.\");\r\n }\r\n\r\n if (((array.length - index) | 0) < this.Count) {\r\n throw new System.ArgumentException.$ctor1(\"Destination array is not long enough to copy all the items in the collection. Check array index and length.\");\r\n }\r\n\r\n var pairs = Bridge.as(array, System.Array.type(System.Collections.Generic.KeyValuePair$2(TKey,TValue)));\r\n if (pairs != null) {\r\n System.Array.copyTo(this.m_dictionary, pairs, index, System.Collections.Generic.KeyValuePair$2(TKey,TValue));\r\n } else {\r\n var dictEntryArray = Bridge.as(array, System.Array.type(System.Collections.DictionaryEntry));\r\n if (dictEntryArray != null) {\r\n $t = Bridge.getEnumerator(this.m_dictionary, System.Collections.Generic.KeyValuePair$2(TKey,TValue));\r\n try {\r\n while ($t.moveNext()) {\r\n var item = $t.Current;\r\n dictEntryArray[System.Array.index(Bridge.identity(index, ((index = (index + 1) | 0))), dictEntryArray)] = new System.Collections.DictionaryEntry.$ctor1(item.key, item.value);\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n } else {\r\n var objects = Bridge.as(array, System.Array.type(System.Object));\r\n if (objects == null) {\r\n throw new System.ArgumentException.$ctor1(\"Target array type is not compatible with the type of items in the collection.\");\r\n }\r\n\r\n try {\r\n $t1 = Bridge.getEnumerator(this.m_dictionary, System.Collections.Generic.KeyValuePair$2(TKey,TValue));\r\n try {\r\n while ($t1.moveNext()) {\r\n var item1 = $t1.Current;\r\n objects[System.Array.index(Bridge.identity(index, ((index = (index + 1) | 0))), objects)] = new (System.Collections.Generic.KeyValuePair$2(TKey,TValue)).$ctor1(item1.key, item1.value);\r\n }\r\n } finally {\r\n if (Bridge.is($t1, System.IDisposable)) {\r\n $t1.System$IDisposable$Dispose();\r\n }\r\n }\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.ArrayTypeMismatchException)) {\r\n throw new System.ArgumentException.$ctor1(\"Target array type is not compatible with the type of items in the collection.\");\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n }\r\n }\r\n },\r\n System$Collections$Generic$ICollection$1$System$Collections$Generic$KeyValuePair$2$clear: function () {\r\n throw new System.NotSupportedException.$ctor1(System.Collections.ObjectModel.ReadOnlyDictionary$2(TKey,TValue).NotSupported_ReadOnlyCollection);\r\n },\r\n System$Collections$IDictionary$clear: function () {\r\n throw new System.NotSupportedException.$ctor1(System.Collections.ObjectModel.ReadOnlyDictionary$2(TKey,TValue).NotSupported_ReadOnlyCollection);\r\n },\r\n GetEnumerator: function () {\r\n return Bridge.getEnumerator(this.m_dictionary, System.Collections.Generic.KeyValuePair$2(TKey,TValue));\r\n },\r\n System$Collections$IEnumerable$GetEnumerator: function () {\r\n return Bridge.getEnumerator(Bridge.cast(this.m_dictionary, System.Collections.IEnumerable));\r\n },\r\n System$Collections$IDictionary$GetEnumerator: function () {\r\n var d = Bridge.as(this.m_dictionary, System.Collections.IDictionary);\r\n if (d != null) {\r\n return d.System$Collections$IDictionary$GetEnumerator();\r\n }\r\n return new (System.Collections.ObjectModel.ReadOnlyDictionary$2.DictionaryEnumerator(TKey,TValue)).$ctor1(this.m_dictionary).$clone();\r\n }\r\n }\r\n }; });\r\n\r\n // @source DictionaryEnumerator.js\r\n\r\n Bridge.define(\"System.Collections.ObjectModel.ReadOnlyDictionary$2.DictionaryEnumerator\", function (TKey, TValue) { return {\r\n inherits: [System.Collections.IDictionaryEnumerator],\r\n $kind: \"nested struct\",\r\n statics: {\r\n methods: {\r\n getDefaultValue: function () { return new (System.Collections.ObjectModel.ReadOnlyDictionary$2.DictionaryEnumerator(TKey,TValue))(); }\r\n }\r\n },\r\n fields: {\r\n _dictionary: null,\r\n _enumerator: null\r\n },\r\n props: {\r\n Entry: {\r\n get: function () {\r\n return new System.Collections.DictionaryEntry.$ctor1(this._enumerator[Bridge.geti(this._enumerator, \"System$Collections$Generic$IEnumerator$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\")].key, this._enumerator[Bridge.geti(this._enumerator, \"System$Collections$Generic$IEnumerator$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\")].value);\r\n }\r\n },\r\n Key: {\r\n get: function () {\r\n return this._enumerator[Bridge.geti(this._enumerator, \"System$Collections$Generic$IEnumerator$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\")].key;\r\n }\r\n },\r\n Value: {\r\n get: function () {\r\n return this._enumerator[Bridge.geti(this._enumerator, \"System$Collections$Generic$IEnumerator$1$System$Collections$Generic$KeyValuePair$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\")].value;\r\n }\r\n },\r\n Current: {\r\n get: function () {\r\n return this.Entry.$clone();\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Entry\", \"System$Collections$IDictionaryEnumerator$Entry\",\r\n \"Key\", \"System$Collections$IDictionaryEnumerator$Key\",\r\n \"Value\", \"System$Collections$IDictionaryEnumerator$Value\",\r\n \"Current\", \"System$Collections$IEnumerator$Current\",\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"reset\", \"System$Collections$IEnumerator$reset\"\r\n ],\r\n ctors: {\r\n $ctor1: function (dictionary) {\r\n this.$initialize();\r\n this._dictionary = dictionary;\r\n this._enumerator = Bridge.getEnumerator(this._dictionary, System.Collections.Generic.KeyValuePair$2(TKey,TValue));\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n moveNext: function () {\r\n return this._enumerator.System$Collections$IEnumerator$moveNext();\r\n },\r\n reset: function () {\r\n this._enumerator.System$Collections$IEnumerator$reset();\r\n },\r\n getHashCode: function () {\r\n var h = Bridge.addHash([9276503029, this._dictionary, this._enumerator]);\r\n return h;\r\n },\r\n equals: function (o) {\r\n if (!Bridge.is(o, System.Collections.ObjectModel.ReadOnlyDictionary$2.DictionaryEnumerator(TKey,TValue))) {\r\n return false;\r\n }\r\n return Bridge.equals(this._dictionary, o._dictionary) && Bridge.equals(this._enumerator, o._enumerator);\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.Collections.ObjectModel.ReadOnlyDictionary$2.DictionaryEnumerator(TKey,TValue))();\r\n s._dictionary = this._dictionary;\r\n s._enumerator = this._enumerator;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n // @source KeyCollection.js\r\n\r\n Bridge.define(\"System.Collections.ObjectModel.ReadOnlyDictionary$2.KeyCollection\", function (TKey, TValue) { return {\r\n inherits: [System.Collections.Generic.ICollection$1(TKey),System.Collections.ICollection,System.Collections.Generic.IReadOnlyCollection$1(TKey)],\r\n $kind: \"nested class\",\r\n fields: {\r\n _collection: null\r\n },\r\n props: {\r\n Count: {\r\n get: function () {\r\n return System.Array.getCount(this._collection, TKey);\r\n }\r\n },\r\n System$Collections$Generic$ICollection$1$IsReadOnly: {\r\n get: function () {\r\n return true;\r\n }\r\n },\r\n System$Collections$ICollection$IsSynchronized: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$ICollection$SyncRoot: {\r\n get: function () {\r\n return null;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"System$Collections$Generic$ICollection$1$add\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TKey) + \"$add\",\r\n \"System$Collections$Generic$ICollection$1$clear\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TKey) + \"$clear\",\r\n \"System$Collections$Generic$ICollection$1$contains\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TKey) + \"$contains\",\r\n \"copyTo\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TKey) + \"$copyTo\",\r\n \"Count\", [\"System$Collections$Generic$IReadOnlyCollection$1$\" + Bridge.getTypeAlias(TKey) + \"$Count\", \"System$Collections$Generic$IReadOnlyCollection$1$Count\"],\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"Count\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TKey) + \"$Count\",\r\n \"System$Collections$Generic$ICollection$1$IsReadOnly\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TKey) + \"$IsReadOnly\",\r\n \"System$Collections$Generic$ICollection$1$remove\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TKey) + \"$remove\",\r\n \"GetEnumerator\", [\"System$Collections$Generic$IEnumerable$1$\" + Bridge.getTypeAlias(TKey) + \"$GetEnumerator\", \"System$Collections$Generic$IEnumerable$1$GetEnumerator\"]\r\n ],\r\n ctors: {\r\n ctor: function (collection) {\r\n this.$initialize();\r\n if (collection == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"collection\");\r\n }\r\n this._collection = collection;\r\n }\r\n },\r\n methods: {\r\n System$Collections$Generic$ICollection$1$add: function (item) {\r\n throw new System.NotSupportedException.$ctor1(System.Collections.ObjectModel.ReadOnlyDictionary$2(TKey,TValue).NotSupported_ReadOnlyCollection);\r\n },\r\n System$Collections$Generic$ICollection$1$clear: function () {\r\n throw new System.NotSupportedException.$ctor1(System.Collections.ObjectModel.ReadOnlyDictionary$2(TKey,TValue).NotSupported_ReadOnlyCollection);\r\n },\r\n System$Collections$Generic$ICollection$1$contains: function (item) {\r\n return System.Array.contains(this._collection, item, TKey);\r\n },\r\n copyTo: function (array, arrayIndex) {\r\n System.Array.copyTo(this._collection, array, arrayIndex, TKey);\r\n },\r\n System$Collections$ICollection$copyTo: function (array, index) {\r\n System.Collections.ObjectModel.ReadOnlyDictionaryHelpers.CopyToNonGenericICollectionHelper(TKey, this._collection, array, index);\r\n },\r\n System$Collections$Generic$ICollection$1$remove: function (item) {\r\n throw new System.NotSupportedException.$ctor1(System.Collections.ObjectModel.ReadOnlyDictionary$2(TKey,TValue).NotSupported_ReadOnlyCollection);\r\n },\r\n GetEnumerator: function () {\r\n return Bridge.getEnumerator(this._collection, TKey);\r\n },\r\n System$Collections$IEnumerable$GetEnumerator: function () {\r\n return Bridge.getEnumerator(Bridge.cast(this._collection, System.Collections.IEnumerable));\r\n }\r\n }\r\n }; });\r\n\r\n // @source ValueCollection.js\r\n\r\n Bridge.define(\"System.Collections.ObjectModel.ReadOnlyDictionary$2.ValueCollection\", function (TKey, TValue) { return {\r\n inherits: [System.Collections.Generic.ICollection$1(TValue),System.Collections.ICollection,System.Collections.Generic.IReadOnlyCollection$1(TValue)],\r\n $kind: \"nested class\",\r\n fields: {\r\n _collection: null\r\n },\r\n props: {\r\n Count: {\r\n get: function () {\r\n return System.Array.getCount(this._collection, TValue);\r\n }\r\n },\r\n System$Collections$Generic$ICollection$1$IsReadOnly: {\r\n get: function () {\r\n return true;\r\n }\r\n },\r\n System$Collections$ICollection$IsSynchronized: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$ICollection$SyncRoot: {\r\n get: function () {\r\n return null;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"System$Collections$Generic$ICollection$1$add\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TValue) + \"$add\",\r\n \"System$Collections$Generic$ICollection$1$clear\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TValue) + \"$clear\",\r\n \"System$Collections$Generic$ICollection$1$contains\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TValue) + \"$contains\",\r\n \"copyTo\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TValue) + \"$copyTo\",\r\n \"Count\", [\"System$Collections$Generic$IReadOnlyCollection$1$\" + Bridge.getTypeAlias(TValue) + \"$Count\", \"System$Collections$Generic$IReadOnlyCollection$1$Count\"],\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"Count\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TValue) + \"$Count\",\r\n \"System$Collections$Generic$ICollection$1$IsReadOnly\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TValue) + \"$IsReadOnly\",\r\n \"System$Collections$Generic$ICollection$1$remove\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(TValue) + \"$remove\",\r\n \"GetEnumerator\", [\"System$Collections$Generic$IEnumerable$1$\" + Bridge.getTypeAlias(TValue) + \"$GetEnumerator\", \"System$Collections$Generic$IEnumerable$1$GetEnumerator\"]\r\n ],\r\n ctors: {\r\n ctor: function (collection) {\r\n this.$initialize();\r\n if (collection == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"collection\");\r\n }\r\n this._collection = collection;\r\n }\r\n },\r\n methods: {\r\n System$Collections$Generic$ICollection$1$add: function (item) {\r\n throw new System.NotSupportedException.$ctor1(System.Collections.ObjectModel.ReadOnlyDictionary$2(TKey,TValue).NotSupported_ReadOnlyCollection);\r\n },\r\n System$Collections$Generic$ICollection$1$clear: function () {\r\n throw new System.NotSupportedException.$ctor1(System.Collections.ObjectModel.ReadOnlyDictionary$2(TKey,TValue).NotSupported_ReadOnlyCollection);\r\n },\r\n System$Collections$Generic$ICollection$1$contains: function (item) {\r\n return System.Array.contains(this._collection, item, TValue);\r\n },\r\n copyTo: function (array, arrayIndex) {\r\n System.Array.copyTo(this._collection, array, arrayIndex, TValue);\r\n },\r\n System$Collections$ICollection$copyTo: function (array, index) {\r\n System.Collections.ObjectModel.ReadOnlyDictionaryHelpers.CopyToNonGenericICollectionHelper(TValue, this._collection, array, index);\r\n },\r\n System$Collections$Generic$ICollection$1$remove: function (item) {\r\n throw new System.NotSupportedException.$ctor1(System.Collections.ObjectModel.ReadOnlyDictionary$2(TKey,TValue).NotSupported_ReadOnlyCollection);\r\n },\r\n GetEnumerator: function () {\r\n return Bridge.getEnumerator(this._collection, TValue);\r\n },\r\n System$Collections$IEnumerable$GetEnumerator: function () {\r\n return Bridge.getEnumerator(Bridge.cast(this._collection, System.Collections.IEnumerable));\r\n }\r\n }\r\n }; });\r\n\r\n // @source ReadOnlyDictionaryHelpers.js\r\n\r\n Bridge.define(\"System.Collections.ObjectModel.ReadOnlyDictionaryHelpers\", {\r\n statics: {\r\n methods: {\r\n CopyToNonGenericICollectionHelper: function (T, collection, array, index) {\r\n var $t;\r\n if (array == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n if (System.Array.getRank(array) !== 1) {\r\n throw new System.ArgumentException.$ctor1(\"Only single dimensional arrays are supported for the requested action.\");\r\n }\r\n\r\n if (System.Array.getLower(array, 0) !== 0) {\r\n throw new System.ArgumentException.$ctor1(\"The lower bound of target array must be zero.\");\r\n }\r\n\r\n if (index < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"index\", \"Index is less than zero.\");\r\n }\r\n\r\n if (((array.length - index) | 0) < System.Array.getCount(collection, T)) {\r\n throw new System.ArgumentException.$ctor1(\"Destination array is not long enough to copy all the items in the collection. Check array index and length.\");\r\n }\r\n\r\n var nonGenericCollection = Bridge.as(collection, System.Collections.ICollection);\r\n if (nonGenericCollection != null) {\r\n System.Array.copyTo(nonGenericCollection, array, index);\r\n return;\r\n }\r\n\r\n var items = Bridge.as(array, System.Array.type(T));\r\n if (items != null) {\r\n System.Array.copyTo(collection, items, index, T);\r\n } else {\r\n /* \r\n FxOverRh: Type.IsAssignableNot() not an api on that platform.\r\n\r\n //\r\n // Catch the obvious case assignment will fail.\r\n // We can found all possible problems by doing the check though.\r\n // For example, if the element type of the Array is derived from T,\r\n // we can't figure out if we can successfully copy the element beforehand.\r\n //\r\n Type targetType = array.GetType().GetElementType();\r\n Type sourceType = typeof(T);\r\n if (!(targetType.IsAssignableFrom(sourceType) || sourceType.IsAssignableFrom(targetType))) {\r\n throw new ArgumentException(SR.Argument_InvalidArrayType);\r\n }\r\n */\r\n\r\n var objects = Bridge.as(array, System.Array.type(System.Object));\r\n if (objects == null) {\r\n throw new System.ArgumentException.$ctor1(\"Target array type is not compatible with the type of items in the collection.\");\r\n }\r\n\r\n try {\r\n $t = Bridge.getEnumerator(collection, T);\r\n try {\r\n while ($t.moveNext()) {\r\n var item = $t.Current;\r\n objects[System.Array.index(Bridge.identity(index, ((index = (index + 1) | 0))), objects)] = item;\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.ArrayTypeMismatchException)) {\r\n throw new System.ArgumentException.$ctor1(\"Target array type is not compatible with the type of items in the collection.\");\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source CollectionExtensions.js\r\n\r\n Bridge.define(\"System.Collections.Generic.CollectionExtensions\", {\r\n statics: {\r\n methods: {\r\n GetValueOrDefault: function (TKey, TValue, dictionary, key) {\r\n return System.Collections.Generic.CollectionExtensions.GetValueOrDefault$1(TKey, TValue, dictionary, key, Bridge.getDefaultValue(TValue));\r\n },\r\n GetValueOrDefault$1: function (TKey, TValue, dictionary, key, defaultValue) {\r\n if (dictionary == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"dictionary\");\r\n }\r\n\r\n var value = { };\r\n return dictionary[\"System$Collections$Generic$IReadOnlyDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$tryGetValue\"](key, value) ? value.v : defaultValue;\r\n },\r\n TryAdd: function (TKey, TValue, dictionary, key, value) {\r\n if (dictionary == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"dictionary\");\r\n }\r\n\r\n if (!dictionary[\"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$containsKey\"](key)) {\r\n dictionary[\"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$add\"](key, value);\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n Remove: function (TKey, TValue, dictionary, key, value) {\r\n if (dictionary == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"dictionary\");\r\n }\r\n\r\n if (dictionary[\"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$tryGetValue\"](key, value)) {\r\n dictionary[\"System$Collections$Generic$IDictionary$2$\" + Bridge.getTypeAlias(TKey) + \"$\" + Bridge.getTypeAlias(TValue) + \"$remove\"](key);\r\n return true;\r\n }\r\n\r\n value.v = Bridge.getDefaultValue(TValue);\r\n return false;\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source StringComparer.js\r\n\r\n Bridge.define(\"System.StringComparer\", {\r\n inherits: [System.Collections.Generic.IComparer$1(System.String),System.Collections.Generic.IEqualityComparer$1(System.String)],\r\n statics: {\r\n fields: {\r\n _ordinal: null,\r\n _ordinalIgnoreCase: null\r\n },\r\n props: {\r\n Ordinal: {\r\n get: function () {\r\n return System.StringComparer._ordinal;\r\n }\r\n },\r\n OrdinalIgnoreCase: {\r\n get: function () {\r\n return System.StringComparer._ordinalIgnoreCase;\r\n }\r\n }\r\n },\r\n ctors: {\r\n init: function () {\r\n this._ordinal = new System.OrdinalComparer(false);\r\n this._ordinalIgnoreCase = new System.OrdinalComparer(true);\r\n }\r\n }\r\n },\r\n methods: {\r\n Compare: function (x, y) {\r\n if (Bridge.referenceEquals(x, y)) {\r\n return 0;\r\n }\r\n if (x == null) {\r\n return -1;\r\n }\r\n if (y == null) {\r\n return 1;\r\n }\r\n\r\n var sa = Bridge.as(x, System.String);\r\n if (sa != null) {\r\n var sb = Bridge.as(y, System.String);\r\n if (sb != null) {\r\n return this.compare(sa, sb);\r\n }\r\n }\r\n\r\n var ia = Bridge.as(x, System.IComparable);\r\n if (ia != null) {\r\n return Bridge.compare(ia, y);\r\n }\r\n\r\n throw new System.ArgumentException.$ctor1(\"At least one object must implement IComparable.\");\r\n },\r\n Equals: function (x, y) {\r\n if (Bridge.referenceEquals(x, y)) {\r\n return true;\r\n }\r\n if (x == null || y == null) {\r\n return false;\r\n }\r\n\r\n var sa = Bridge.as(x, System.String);\r\n if (sa != null) {\r\n var sb = Bridge.as(y, System.String);\r\n if (sb != null) {\r\n return this.equals2(sa, sb);\r\n }\r\n }\r\n return Bridge.equals(x, y);\r\n },\r\n GetHashCode: function (obj) {\r\n if (obj == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"obj\");\r\n }\r\n\r\n var s = Bridge.as(obj, System.String);\r\n if (s != null) {\r\n return this.getHashCode2(s);\r\n }\r\n return Bridge.getHashCode(obj);\r\n }\r\n }\r\n });\r\n\r\n // @source OrdinalComparer.js\r\n\r\n Bridge.define(\"System.OrdinalComparer\", {\r\n inherits: [System.StringComparer],\r\n fields: {\r\n _ignoreCase: false\r\n },\r\n alias: [\r\n \"compare\", [\"System$Collections$Generic$IComparer$1$System$String$compare\", \"System$Collections$Generic$IComparer$1$compare\"],\r\n \"equals2\", [\"System$Collections$Generic$IEqualityComparer$1$System$String$equals2\", \"System$Collections$Generic$IEqualityComparer$1$equals2\"],\r\n \"getHashCode2\", [\"System$Collections$Generic$IEqualityComparer$1$System$String$getHashCode2\", \"System$Collections$Generic$IEqualityComparer$1$getHashCode2\"]\r\n ],\r\n ctors: {\r\n ctor: function (ignoreCase) {\r\n this.$initialize();\r\n System.StringComparer.ctor.call(this);\r\n this._ignoreCase = ignoreCase;\r\n }\r\n },\r\n methods: {\r\n compare: function (x, y) {\r\n if (Bridge.referenceEquals(x, y)) {\r\n return 0;\r\n }\r\n if (x == null) {\r\n return -1;\r\n }\r\n if (y == null) {\r\n return 1;\r\n }\r\n\r\n if (this._ignoreCase) {\r\n return System.String.compare(x, y, 5);\r\n }\r\n\r\n return System.String.compare(x, y, false);\r\n },\r\n equals2: function (x, y) {\r\n if (Bridge.referenceEquals(x, y)) {\r\n return true;\r\n }\r\n if (x == null || y == null) {\r\n return false;\r\n }\r\n\r\n if (this._ignoreCase) {\r\n if (x.length !== y.length) {\r\n return false;\r\n }\r\n return (System.String.compare(x, y, 5) === 0);\r\n }\r\n return System.String.equals(x, y);\r\n },\r\n equals: function (obj) {\r\n var comparer = Bridge.as(obj, System.OrdinalComparer);\r\n if (comparer == null) {\r\n return false;\r\n }\r\n return (this._ignoreCase === comparer._ignoreCase);\r\n },\r\n getHashCode2: function (obj) {\r\n if (obj == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"obj\");\r\n }\r\n\r\n if (this._ignoreCase && obj != null) {\r\n return Bridge.getHashCode(obj.toLowerCase());\r\n }\r\n\r\n return Bridge.getHashCode(obj);\r\n },\r\n getHashCode: function () {\r\n var name = \"OrdinalComparer\";\r\n var hashCode = Bridge.getHashCode(name);\r\n return this._ignoreCase ? (~hashCode) : hashCode;\r\n }\r\n }\r\n });\r\n\r\n // @source CustomEnumerator.js\r\n\r\n Bridge.define(\"Bridge.CustomEnumerator\", {\r\n inherits: [System.Collections.IEnumerator, System.IDisposable],\r\n\r\n config: {\r\n properties: {\r\n Current: {\r\n get: function () {\r\n return this.getCurrent();\r\n }\r\n },\r\n\r\n Current$1: {\r\n get: function () {\r\n return this.getCurrent();\r\n }\r\n }\r\n },\r\n\r\n alias: [\r\n \"getCurrent\", \"System$Collections$IEnumerator$getCurrent\",\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"reset\", \"System$Collections$IEnumerator$reset\",\r\n \"Dispose\", \"System$IDisposable$Dispose\",\r\n \"Current\", \"System$Collections$IEnumerator$Current\"\r\n ]\r\n },\r\n\r\n ctor: function (moveNext, getCurrent, reset, dispose, scope, T) {\r\n this.$initialize();\r\n this.$moveNext = moveNext;\r\n this.$getCurrent = getCurrent;\r\n this.$Dispose = dispose;\r\n this.$reset = reset;\r\n this.scope = scope;\r\n\r\n if (T) {\r\n this[\"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(T) + \"$getCurrent$1\"] = this.getCurrent;\r\n this[\"System$Collections$Generic$IEnumerator$1$getCurrent$1\"] = this.getCurrent;\r\n\r\n Object.defineProperty(this, \"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(T) + \"$Current$1\", {\r\n get: this.getCurrent,\r\n enumerable: true\r\n });\r\n\r\n Object.defineProperty(this, \"System$Collections$Generic$IEnumerator$1$Current$1\", {\r\n get: this.getCurrent,\r\n enumerable: true\r\n });\r\n }\r\n },\r\n\r\n moveNext: function () {\r\n try {\r\n return this.$moveNext.call(this.scope);\r\n }\r\n catch (ex) {\r\n this.Dispose.call(this.scope);\r\n\r\n throw ex;\r\n }\r\n },\r\n\r\n getCurrent: function () {\r\n return this.$getCurrent.call(this.scope);\r\n },\r\n\r\n getCurrent$1: function () {\r\n return this.$getCurrent.call(this.scope);\r\n },\r\n\r\n reset: function () {\r\n if (this.$reset) {\r\n this.$reset.call(this.scope);\r\n }\r\n },\r\n\r\n Dispose: function () {\r\n if (this.$Dispose) {\r\n this.$Dispose.call(this.scope);\r\n }\r\n }\r\n });\r\n\r\n // @source ArrayEnumerator.js\r\n\r\n Bridge.define(\"Bridge.ArrayEnumerator\", {\r\n inherits: [System.Collections.IEnumerator, System.IDisposable],\r\n\r\n statics: {\r\n $isArrayEnumerator: true\r\n },\r\n\r\n config: {\r\n properties: {\r\n Current: {\r\n get: function () {\r\n return this.getCurrent();\r\n }\r\n },\r\n\r\n Current$1: {\r\n get: function () {\r\n return this.getCurrent();\r\n }\r\n }\r\n },\r\n\r\n alias: [\r\n \"getCurrent\", \"System$Collections$IEnumerator$getCurrent\",\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"reset\", \"System$Collections$IEnumerator$reset\",\r\n \"Dispose\", \"System$IDisposable$Dispose\",\r\n \"Current\", \"System$Collections$IEnumerator$Current\"\r\n ]\r\n },\r\n\r\n ctor: function (array, T) {\r\n this.$initialize();\r\n this.array = array;\r\n this.reset();\r\n\r\n if (T) {\r\n this[\"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(T) + \"$getCurrent$1\"] = this.getCurrent;\r\n this[\"System$Collections$Generic$IEnumerator$1$getCurrent$1\"] = this.getCurrent;\r\n\r\n Object.defineProperty(this, \"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(T) + \"$Current$1\", {\r\n get: this.getCurrent,\r\n enumerable: true\r\n });\r\n\r\n Object.defineProperty(this, \"System$Collections$Generic$IEnumerator$1$Current$1\", {\r\n get: this.getCurrent,\r\n enumerable: true\r\n });\r\n }\r\n },\r\n\r\n moveNext: function () {\r\n this.index++;\r\n\r\n return this.index < this.array.length;\r\n },\r\n\r\n getCurrent: function () {\r\n return this.array[this.index];\r\n },\r\n\r\n getCurrent$1: function () {\r\n return this.array[this.index];\r\n },\r\n\r\n reset: function () {\r\n this.index = -1;\r\n },\r\n\r\n Dispose: Bridge.emptyFn\r\n });\r\n\r\n Bridge.define(\"Bridge.ArrayEnumerable\", {\r\n inherits: [System.Collections.IEnumerable],\r\n\r\n config: {\r\n alias: [\r\n \"GetEnumerator\", \"System$Collections$IEnumerable$GetEnumerator\"\r\n ]\r\n },\r\n\r\n ctor: function (array) {\r\n this.$initialize();\r\n this.array = array;\r\n },\r\n\r\n GetEnumerator: function () {\r\n return new Bridge.ArrayEnumerator(this.array);\r\n }\r\n });\r\n\r\n // @source EqualityComparer.js\r\n\r\n Bridge.define(\"System.Collections.Generic.EqualityComparer$1\", function (T) {\r\n return {\r\n inherits: [System.Collections.Generic.IEqualityComparer$1(T)],\r\n\r\n statics: {\r\n config: {\r\n init: function () {\r\n this.def = new (System.Collections.Generic.EqualityComparer$1(T))();\r\n }\r\n }\r\n },\r\n\r\n config: {\r\n alias: [\r\n \"equals2\", [\"System$Collections$Generic$IEqualityComparer$1$\" + Bridge.getTypeAlias(T) + \"$equals2\", \"System$Collections$Generic$IEqualityComparer$1$equals2\"],\r\n \"getHashCode2\", [\"System$Collections$Generic$IEqualityComparer$1$\" + Bridge.getTypeAlias(T) + \"$getHashCode2\", \"System$Collections$Generic$IEqualityComparer$1$getHashCode2\"]\r\n ]\r\n },\r\n\r\n equals2: function (x, y) {\r\n if (!Bridge.isDefined(x, true)) {\r\n return !Bridge.isDefined(y, true);\r\n } else if (Bridge.isDefined(y, true)) {\r\n var isBridge = x && x.$$name;\r\n\r\n if (Bridge.isFunction(x) && Bridge.isFunction(y)) {\r\n return Bridge.fn.equals.call(x, y);\r\n } else if (!isBridge || x && x.$boxed || y && y.$boxed) {\r\n return Bridge.equals(x, y);\r\n } else if (Bridge.isFunction(x.equalsT)) {\r\n return Bridge.equalsT(x, y);\r\n } else if (Bridge.isFunction(x.equals)) {\r\n return Bridge.equals(x, y);\r\n }\r\n\r\n return x === y;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n getHashCode2: function (obj) {\r\n return Bridge.isDefined(obj, true) ? Bridge.getHashCode(obj) : 0;\r\n }\r\n };\r\n });\r\n\r\n System.Collections.Generic.EqualityComparer$1.$default = new (System.Collections.Generic.EqualityComparer$1(System.Object))();\r\n\r\n // @source Comparer.js\r\n\r\n Bridge.define(\"System.Collections.Generic.Comparer$1\", function (T) {\r\n return {\r\n inherits: [System.Collections.Generic.IComparer$1(T)],\r\n\r\n ctor: function (fn) {\r\n this.$initialize();\r\n this.fn = fn;\r\n this.compare = fn;\r\n this[\"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\"] = fn;\r\n this[\"System$Collections$Generic$IComparer$1$compare\"] = fn;\r\n }\r\n }\r\n });\r\n\r\n System.Collections.Generic.Comparer$1.$default = new (System.Collections.Generic.Comparer$1(System.Object))(function (x, y) {\r\n if (!Bridge.hasValue(x)) {\r\n return !Bridge.hasValue(y) ? 0 : -1;\r\n } else if (!Bridge.hasValue(y)) {\r\n return 1;\r\n }\r\n\r\n return Bridge.compare(x, y);\r\n });\r\n\r\n System.Collections.Generic.Comparer$1.get = function (obj, T) {\r\n var m;\r\n\r\n if (T && (m = obj[\"System$Collections$Generic$IComparer$1$\" + Bridge.getTypeAlias(T) + \"$compare\"])) {\r\n return m.bind(obj);\r\n }\r\n\r\n if (m = obj[\"System$Collections$Generic$IComparer$1$compare\"]) {\r\n return m.bind(obj);\r\n }\r\n\r\n return obj.compare.bind(obj);\r\n };\r\n\r\n // @source Dictionary.js\r\n\r\n System.Collections.Generic.Dictionary$2.getTypeParameters = function (type) {\r\n var interfaceType;\r\n\r\n if (System.String.startsWith(type.$$name, \"System.Collections.Generic.IDictionary\")) {\r\n interfaceType = type;\r\n } else {\r\n var interfaces = Bridge.Reflection.getInterfaces(type);\r\n\r\n for (var j = 0; j < interfaces.length; j++) {\r\n if (System.String.startsWith(interfaces[j].$$name, \"System.Collections.Generic.IDictionary\")) {\r\n interfaceType = interfaces[j];\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n var typesGeneric = interfaceType ? Bridge.Reflection.getGenericArguments(interfaceType) : null;\r\n var typeKey = typesGeneric ? typesGeneric[0] : null;\r\n var typeValue = typesGeneric ? typesGeneric[1] : null;\r\n\r\n return [typeKey, typeValue];\r\n };\r\n // @source List.js\r\n\r\n Bridge.define(\"System.Collections.Generic.List$1\", function (T) { return {\r\n inherits: [System.Collections.Generic.IList$1(T),System.Collections.IList,System.Collections.Generic.IReadOnlyList$1(T)],\r\n statics: {\r\n fields: {\r\n _defaultCapacity: 0,\r\n _emptyArray: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this._defaultCapacity = 4;\r\n this._emptyArray = System.Array.init(0, function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n }\r\n },\r\n methods: {\r\n IsCompatibleObject: function (value) {\r\n return ((Bridge.is(value, T)) || (value == null && Bridge.getDefaultValue(T) == null));\r\n }\r\n }\r\n },\r\n fields: {\r\n _items: null,\r\n _size: 0,\r\n _version: 0\r\n },\r\n props: {\r\n Capacity: {\r\n get: function () {\r\n return this._items.length;\r\n },\r\n set: function (value) {\r\n if (value < this._size) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"value\");\r\n }\r\n\r\n if (value !== this._items.length) {\r\n if (value > 0) {\r\n var newItems = System.Array.init(value, function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n if (this._size > 0) {\r\n System.Array.copy(this._items, 0, newItems, 0, this._size);\r\n }\r\n this._items = newItems;\r\n } else {\r\n this._items = System.Collections.Generic.List$1(T)._emptyArray;\r\n }\r\n }\r\n }\r\n },\r\n Count: {\r\n get: function () {\r\n return this._size;\r\n }\r\n },\r\n System$Collections$IList$IsFixedSize: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$Generic$ICollection$1$IsReadOnly: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$IList$IsReadOnly: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$ICollection$IsSynchronized: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$ICollection$SyncRoot: {\r\n get: function () {\r\n return this;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Count\", [\"System$Collections$Generic$IReadOnlyCollection$1$\" + Bridge.getTypeAlias(T) + \"$Count\", \"System$Collections$Generic$IReadOnlyCollection$1$Count\"],\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"Count\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$Count\",\r\n \"System$Collections$Generic$ICollection$1$IsReadOnly\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$IsReadOnly\",\r\n \"getItem\", [\"System$Collections$Generic$IReadOnlyList$1$\" + Bridge.getTypeAlias(T) + \"$getItem\", \"System$Collections$Generic$IReadOnlyList$1$getItem\"],\r\n \"setItem\", [\"System$Collections$Generic$IReadOnlyList$1$\" + Bridge.getTypeAlias(T) + \"$setItem\", \"System$Collections$Generic$IReadOnlyList$1$setItem\"],\r\n \"getItem\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(T) + \"$getItem\",\r\n \"setItem\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(T) + \"$setItem\",\r\n \"add\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$add\",\r\n \"clear\", \"System$Collections$IList$clear\",\r\n \"clear\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$clear\",\r\n \"contains\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$contains\",\r\n \"copyTo\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$copyTo\",\r\n \"System$Collections$Generic$IEnumerable$1$GetEnumerator\", \"System$Collections$Generic$IEnumerable$1$\" + Bridge.getTypeAlias(T) + \"$GetEnumerator\",\r\n \"indexOf\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(T) + \"$indexOf\",\r\n \"insert\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(T) + \"$insert\",\r\n \"remove\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$remove\",\r\n \"removeAt\", \"System$Collections$IList$removeAt\",\r\n \"removeAt\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(T) + \"$removeAt\"\r\n ],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n this._items = System.Collections.Generic.List$1(T)._emptyArray;\r\n },\r\n $ctor2: function (capacity) {\r\n this.$initialize();\r\n if (capacity < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"capacity\");\r\n }\r\n\r\n if (capacity === 0) {\r\n this._items = System.Collections.Generic.List$1(T)._emptyArray;\r\n } else {\r\n this._items = System.Array.init(capacity, function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n }\r\n },\r\n $ctor1: function (collection) {\r\n this.$initialize();\r\n if (collection == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"collection\");\r\n }\r\n\r\n var c = Bridge.as(collection, System.Collections.Generic.ICollection$1(T));\r\n if (c != null) {\r\n var count = System.Array.getCount(c, T);\r\n if (count === 0) {\r\n this._items = System.Collections.Generic.List$1(T)._emptyArray;\r\n } else {\r\n this._items = System.Array.init(count, function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n System.Array.copyTo(c, this._items, 0, T);\r\n this._size = count;\r\n }\r\n } else {\r\n this._size = 0;\r\n this._items = System.Collections.Generic.List$1(T)._emptyArray;\r\n\r\n var en = Bridge.getEnumerator(collection, T);\r\n try {\r\n while (en.System$Collections$IEnumerator$moveNext()) {\r\n this.add(en[Bridge.geti(en, \"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(T) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\")]);\r\n }\r\n }\r\n finally {\r\n if (Bridge.hasValue(en)) {\r\n en.System$IDisposable$Dispose();\r\n }\r\n }\r\n }\r\n }\r\n },\r\n methods: {\r\n getItem: function (index) {\r\n if ((index >>> 0) >= (this._size >>> 0)) {\r\n throw new System.ArgumentOutOfRangeException.ctor();\r\n }\r\n return this._items[System.Array.index(index, this._items)];\r\n },\r\n setItem: function (index, value) {\r\n if ((index >>> 0) >= (this._size >>> 0)) {\r\n throw new System.ArgumentOutOfRangeException.ctor();\r\n }\r\n this._items[System.Array.index(index, this._items)] = value;\r\n this._version = (this._version + 1) | 0;\r\n },\r\n System$Collections$IList$getItem: function (index) {\r\n return this.getItem(index);\r\n },\r\n System$Collections$IList$setItem: function (index, value) {\r\n if (value == null && !(Bridge.getDefaultValue(T) == null)) {\r\n throw new System.ArgumentNullException.$ctor1(\"value\");\r\n }\r\n\r\n try {\r\n this.setItem(index, Bridge.cast(Bridge.unbox(value, T), T));\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.InvalidCastException)) {\r\n throw new System.ArgumentException.$ctor1(\"value\");\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n },\r\n add: function (item) {\r\n if (this._size === this._items.length) {\r\n this.EnsureCapacity(((this._size + 1) | 0));\r\n }\r\n this._items[System.Array.index(Bridge.identity(this._size, ((this._size = (this._size + 1) | 0))), this._items)] = item;\r\n this._version = (this._version + 1) | 0;\r\n },\r\n System$Collections$IList$add: function (item) {\r\n if (item == null && !(Bridge.getDefaultValue(T) == null)) {\r\n throw new System.ArgumentNullException.$ctor1(\"item\");\r\n }\r\n\r\n try {\r\n this.add(Bridge.cast(Bridge.unbox(item, T), T));\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.InvalidCastException)) {\r\n throw new System.ArgumentException.$ctor1(\"item\");\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n\r\n return ((this.Count - 1) | 0);\r\n },\r\n AddRange: function (collection) {\r\n this.InsertRange(this._size, collection);\r\n },\r\n AsReadOnly: function () {\r\n return new (System.Collections.ObjectModel.ReadOnlyCollection$1(T))(this);\r\n },\r\n BinarySearch$2: function (index, count, item, comparer) {\r\n if (index < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n if (((this._size - index) | 0) < count) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n return System.Array.binarySearch(this._items, index, count, item, comparer);\r\n },\r\n BinarySearch: function (item) {\r\n return this.BinarySearch$2(0, this.Count, item, null);\r\n },\r\n BinarySearch$1: function (item, comparer) {\r\n return this.BinarySearch$2(0, this.Count, item, comparer);\r\n },\r\n clear: function () {\r\n if (this._size > 0) {\r\n System.Array.fill(this._items, function () {\r\n return Bridge.getDefaultValue(T);\r\n }, 0, this._size);\r\n this._size = 0;\r\n }\r\n this._version = (this._version + 1) | 0;\r\n },\r\n contains: function (item) {\r\n if (item == null) {\r\n for (var i = 0; i < this._size; i = (i + 1) | 0) {\r\n if (this._items[System.Array.index(i, this._items)] == null) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n } else {\r\n var c = System.Collections.Generic.EqualityComparer$1(T).def;\r\n for (var i1 = 0; i1 < this._size; i1 = (i1 + 1) | 0) {\r\n if (c.equals2(this._items[System.Array.index(i1, this._items)], item)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n },\r\n System$Collections$IList$contains: function (item) {\r\n if (System.Collections.Generic.List$1(T).IsCompatibleObject(item)) {\r\n return this.contains(Bridge.cast(Bridge.unbox(item, T), T));\r\n }\r\n return false;\r\n },\r\n ConvertAll: function (TOutput, converter) {\r\n if (Bridge.staticEquals(converter, null)) {\r\n throw new System.ArgumentNullException.$ctor1(\"converter\");\r\n }\r\n\r\n var list = new (System.Collections.Generic.List$1(TOutput)).$ctor2(this._size);\r\n for (var i = 0; i < this._size; i = (i + 1) | 0) {\r\n list._items[System.Array.index(i, list._items)] = converter(this._items[System.Array.index(i, this._items)]);\r\n }\r\n list._size = this._size;\r\n return list;\r\n },\r\n CopyTo: function (array) {\r\n this.copyTo(array, 0);\r\n },\r\n System$Collections$ICollection$copyTo: function (array, arrayIndex) {\r\n if ((array != null) && (System.Array.getRank(array) !== 1)) {\r\n throw new System.ArgumentException.$ctor1(\"array\");\r\n }\r\n\r\n System.Array.copy(this._items, 0, array, arrayIndex, this._size);\r\n },\r\n CopyTo$1: function (index, array, arrayIndex, count) {\r\n if (((this._size - index) | 0) < count) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n System.Array.copy(this._items, index, array, arrayIndex, count);\r\n },\r\n copyTo: function (array, arrayIndex) {\r\n System.Array.copy(this._items, 0, array, arrayIndex, this._size);\r\n },\r\n EnsureCapacity: function (min) {\r\n if (this._items.length < min) {\r\n var newCapacity = this._items.length === 0 ? System.Collections.Generic.List$1(T)._defaultCapacity : Bridge.Int.mul(this._items.length, 2);\r\n if ((newCapacity >>> 0) > 2146435071) {\r\n newCapacity = 2146435071;\r\n }\r\n if (newCapacity < min) {\r\n newCapacity = min;\r\n }\r\n this.Capacity = newCapacity;\r\n }\r\n },\r\n Exists: function (match) {\r\n return this.FindIndex$2(match) !== -1;\r\n },\r\n Find: function (match) {\r\n if (Bridge.staticEquals(match, null)) {\r\n throw new System.ArgumentNullException.$ctor1(\"match\");\r\n }\r\n\r\n for (var i = 0; i < this._size; i = (i + 1) | 0) {\r\n if (match(this._items[System.Array.index(i, this._items)])) {\r\n return this._items[System.Array.index(i, this._items)];\r\n }\r\n }\r\n return Bridge.getDefaultValue(T);\r\n },\r\n FindAll: function (match) {\r\n if (Bridge.staticEquals(match, null)) {\r\n throw new System.ArgumentNullException.$ctor1(\"match\");\r\n }\r\n\r\n var list = new (System.Collections.Generic.List$1(T)).ctor();\r\n for (var i = 0; i < this._size; i = (i + 1) | 0) {\r\n if (match(this._items[System.Array.index(i, this._items)])) {\r\n list.add(this._items[System.Array.index(i, this._items)]);\r\n }\r\n }\r\n return list;\r\n },\r\n FindIndex$2: function (match) {\r\n return this.FindIndex(0, this._size, match);\r\n },\r\n FindIndex$1: function (startIndex, match) {\r\n return this.FindIndex(startIndex, ((this._size - startIndex) | 0), match);\r\n },\r\n FindIndex: function (startIndex, count, match) {\r\n if ((startIndex >>> 0) > (this._size >>> 0)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"startIndex\");\r\n }\r\n\r\n if (count < 0 || startIndex > ((this._size - count) | 0)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n\r\n if (Bridge.staticEquals(match, null)) {\r\n throw new System.ArgumentNullException.$ctor1(\"match\");\r\n }\r\n\r\n var endIndex = (startIndex + count) | 0;\r\n for (var i = startIndex; i < endIndex; i = (i + 1) | 0) {\r\n if (match(this._items[System.Array.index(i, this._items)])) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n },\r\n FindLast: function (match) {\r\n if (Bridge.staticEquals(match, null)) {\r\n throw new System.ArgumentNullException.$ctor1(\"match\");\r\n }\r\n\r\n for (var i = (this._size - 1) | 0; i >= 0; i = (i - 1) | 0) {\r\n if (match(this._items[System.Array.index(i, this._items)])) {\r\n return this._items[System.Array.index(i, this._items)];\r\n }\r\n }\r\n return Bridge.getDefaultValue(T);\r\n },\r\n FindLastIndex$2: function (match) {\r\n return this.FindLastIndex(((this._size - 1) | 0), this._size, match);\r\n },\r\n FindLastIndex$1: function (startIndex, match) {\r\n return this.FindLastIndex(startIndex, ((startIndex + 1) | 0), match);\r\n },\r\n FindLastIndex: function (startIndex, count, match) {\r\n if (Bridge.staticEquals(match, null)) {\r\n throw new System.ArgumentNullException.$ctor1(\"match\");\r\n }\r\n\r\n if (this._size === 0) {\r\n if (startIndex !== -1) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"startIndex\");\r\n }\r\n } else {\r\n if ((startIndex >>> 0) >= (this._size >>> 0)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"startIndex\");\r\n }\r\n }\r\n\r\n if (count < 0 || ((((startIndex - count) | 0) + 1) | 0) < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n\r\n var endIndex = (startIndex - count) | 0;\r\n for (var i = startIndex; i > endIndex; i = (i - 1) | 0) {\r\n if (match(this._items[System.Array.index(i, this._items)])) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n },\r\n ForEach: function (action) {\r\n if (Bridge.staticEquals(action, null)) {\r\n throw new System.ArgumentNullException.$ctor1(\"match\");\r\n }\r\n\r\n var version = this._version;\r\n\r\n for (var i = 0; i < this._size; i = (i + 1) | 0) {\r\n if (version !== this._version) {\r\n break;\r\n }\r\n action(this._items[System.Array.index(i, this._items)]);\r\n }\r\n\r\n if (version !== this._version) {\r\n throw new System.InvalidOperationException.ctor();\r\n }\r\n },\r\n GetEnumerator: function () {\r\n return new (System.Collections.Generic.List$1.Enumerator(T)).$ctor1(this);\r\n },\r\n System$Collections$Generic$IEnumerable$1$GetEnumerator: function () {\r\n return new (System.Collections.Generic.List$1.Enumerator(T)).$ctor1(this).$clone();\r\n },\r\n System$Collections$IEnumerable$GetEnumerator: function () {\r\n return new (System.Collections.Generic.List$1.Enumerator(T)).$ctor1(this).$clone();\r\n },\r\n GetRange: function (index, count) {\r\n if (index < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n\r\n if (((this._size - index) | 0) < count) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n var list = new (System.Collections.Generic.List$1(T)).$ctor2(count);\r\n System.Array.copy(this._items, index, list._items, 0, count);\r\n list._size = count;\r\n return list;\r\n },\r\n indexOf: function (item) {\r\n return System.Array.indexOfT(this._items, item, 0, this._size);\r\n },\r\n System$Collections$IList$indexOf: function (item) {\r\n if (System.Collections.Generic.List$1(T).IsCompatibleObject(item)) {\r\n return this.indexOf(Bridge.cast(Bridge.unbox(item, T), T));\r\n }\r\n return -1;\r\n },\r\n IndexOf: function (item, index) {\r\n if (index > this._size) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n return System.Array.indexOfT(this._items, item, index, ((this._size - index) | 0));\r\n },\r\n IndexOf$1: function (item, index, count) {\r\n if (index > this._size) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n\r\n if (count < 0 || index > ((this._size - count) | 0)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n\r\n return System.Array.indexOfT(this._items, item, index, count);\r\n },\r\n insert: function (index, item) {\r\n if ((index >>> 0) > (this._size >>> 0)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n if (this._size === this._items.length) {\r\n this.EnsureCapacity(((this._size + 1) | 0));\r\n }\r\n if (index < this._size) {\r\n System.Array.copy(this._items, index, this._items, ((index + 1) | 0), ((this._size - index) | 0));\r\n }\r\n this._items[System.Array.index(index, this._items)] = item;\r\n this._size = (this._size + 1) | 0;\r\n this._version = (this._version + 1) | 0;\r\n },\r\n System$Collections$IList$insert: function (index, item) {\r\n if (item == null && !(Bridge.getDefaultValue(T) == null)) {\r\n throw new System.ArgumentNullException.$ctor1(\"item\");\r\n }\r\n\r\n try {\r\n this.insert(index, Bridge.cast(Bridge.unbox(item, T), T));\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.InvalidCastException)) {\r\n throw new System.ArgumentException.$ctor1(\"item\");\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n },\r\n InsertRange: function (index, collection) {\r\n if (collection == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"collection\");\r\n }\r\n\r\n if ((index >>> 0) > (this._size >>> 0)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n\r\n var c = Bridge.as(collection, System.Collections.Generic.ICollection$1(T));\r\n if (c != null) {\r\n var count = System.Array.getCount(c, T);\r\n if (count > 0) {\r\n this.EnsureCapacity(((this._size + count) | 0));\r\n if (index < this._size) {\r\n System.Array.copy(this._items, index, this._items, ((index + count) | 0), ((this._size - index) | 0));\r\n }\r\n\r\n if (Bridge.referenceEquals(this, c)) {\r\n System.Array.copy(this._items, 0, this._items, index, index);\r\n System.Array.copy(this._items, ((index + count) | 0), this._items, Bridge.Int.mul(index, 2), ((this._size - index) | 0));\r\n } else {\r\n var itemsToInsert = System.Array.init(count, function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n System.Array.copyTo(c, itemsToInsert, 0, T);\r\n System.Array.copy(itemsToInsert, 0, this._items, index, itemsToInsert.length);\r\n }\r\n this._size = (this._size + count) | 0;\r\n }\r\n } else {\r\n var en = Bridge.getEnumerator(collection, T);\r\n try {\r\n while (en.System$Collections$IEnumerator$moveNext()) {\r\n this.insert(Bridge.identity(index, ((index = (index + 1) | 0))), en[Bridge.geti(en, \"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(T) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\")]);\r\n }\r\n }\r\n finally {\r\n if (Bridge.hasValue(en)) {\r\n en.System$IDisposable$Dispose();\r\n }\r\n }\r\n }\r\n this._version = (this._version + 1) | 0;\r\n },\r\n LastIndexOf: function (item) {\r\n if (this._size === 0) {\r\n return -1;\r\n } else {\r\n return this.LastIndexOf$2(item, ((this._size - 1) | 0), this._size);\r\n }\r\n },\r\n LastIndexOf$1: function (item, index) {\r\n if (index >= this._size) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n return this.LastIndexOf$2(item, index, ((index + 1) | 0));\r\n },\r\n LastIndexOf$2: function (item, index, count) {\r\n if ((this.Count !== 0) && (index < 0)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n\r\n if ((this.Count !== 0) && (count < 0)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n\r\n if (this._size === 0) {\r\n return -1;\r\n }\r\n\r\n if (index >= this._size) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n\r\n if (count > ((index + 1) | 0)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n\r\n return System.Array.lastIndexOfT(this._items, item, index, count);\r\n },\r\n remove: function (item) {\r\n var index = this.indexOf(item);\r\n if (index >= 0) {\r\n this.removeAt(index);\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n System$Collections$IList$remove: function (item) {\r\n if (System.Collections.Generic.List$1(T).IsCompatibleObject(item)) {\r\n this.remove(Bridge.cast(Bridge.unbox(item, T), T));\r\n }\r\n },\r\n RemoveAll: function (match) {\r\n if (Bridge.staticEquals(match, null)) {\r\n throw new System.ArgumentNullException.$ctor1(\"match\");\r\n }\r\n\r\n var freeIndex = 0;\r\n\r\n while (freeIndex < this._size && !match(this._items[System.Array.index(freeIndex, this._items)])) {\r\n freeIndex = (freeIndex + 1) | 0;\r\n }\r\n if (freeIndex >= this._size) {\r\n return 0;\r\n }\r\n\r\n var current = (freeIndex + 1) | 0;\r\n while (current < this._size) {\r\n while (current < this._size && match(this._items[System.Array.index(current, this._items)])) {\r\n current = (current + 1) | 0;\r\n }\r\n\r\n if (current < this._size) {\r\n this._items[System.Array.index(Bridge.identity(freeIndex, ((freeIndex = (freeIndex + 1) | 0))), this._items)] = this._items[System.Array.index(Bridge.identity(current, ((current = (current + 1) | 0))), this._items)];\r\n }\r\n }\r\n\r\n System.Array.fill(this._items, function () {\r\n return Bridge.getDefaultValue(T);\r\n }, freeIndex, ((this._size - freeIndex) | 0));\r\n var result = (this._size - freeIndex) | 0;\r\n this._size = freeIndex;\r\n this._version = (this._version + 1) | 0;\r\n return result;\r\n },\r\n removeAt: function (index) {\r\n if ((index >>> 0) >= (this._size >>> 0)) {\r\n throw new System.ArgumentOutOfRangeException.ctor();\r\n }\r\n this._size = (this._size - 1) | 0;\r\n if (index < this._size) {\r\n System.Array.copy(this._items, ((index + 1) | 0), this._items, index, ((this._size - index) | 0));\r\n }\r\n this._items[System.Array.index(this._size, this._items)] = Bridge.getDefaultValue(T);\r\n this._version = (this._version + 1) | 0;\r\n },\r\n RemoveRange: function (index, count) {\r\n if (index < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n\r\n if (((this._size - index) | 0) < count) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n if (count > 0) {\r\n var i = this._size;\r\n this._size = (this._size - count) | 0;\r\n if (index < this._size) {\r\n System.Array.copy(this._items, ((index + count) | 0), this._items, index, ((this._size - index) | 0));\r\n }\r\n System.Array.fill(this._items, function () {\r\n return Bridge.getDefaultValue(T);\r\n }, this._size, count);\r\n this._version = (this._version + 1) | 0;\r\n }\r\n },\r\n Reverse: function () {\r\n this.Reverse$1(0, this.Count);\r\n },\r\n Reverse$1: function (index, count) {\r\n if (index < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n\r\n if (((this._size - index) | 0) < count) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n System.Array.reverse(this._items, index, count);\r\n this._version = (this._version + 1) | 0;\r\n },\r\n Sort: function () {\r\n this.Sort$3(0, this.Count, null);\r\n },\r\n Sort$1: function (comparer) {\r\n this.Sort$3(0, this.Count, comparer);\r\n },\r\n Sort$3: function (index, count, comparer) {\r\n if (index < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n\r\n if (((this._size - index) | 0) < count) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n System.Array.sort(this._items, index, count, comparer);\r\n this._version = (this._version + 1) | 0;\r\n },\r\n Sort$2: function (comparison) {\r\n if (Bridge.staticEquals(comparison, null)) {\r\n throw new System.ArgumentNullException.$ctor1(\"comparison\");\r\n }\r\n\r\n if (this._size > 0) {\r\n if (this._items.length === this._size) {\r\n System.Array.sort(this._items, comparison);\r\n } else {\r\n var newItems = System.Array.init(this._size, function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n System.Array.copy(this._items, 0, newItems, 0, this._size);\r\n System.Array.sort(newItems, comparison);\r\n System.Array.copy(newItems, 0, this._items, 0, this._size);\r\n }\r\n }\r\n },\r\n ToArray: function () {\r\n\r\n var array = System.Array.init(this._size, function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n System.Array.copy(this._items, 0, array, 0, this._size);\r\n return array;\r\n },\r\n TrimExcess: function () {\r\n var threshold = Bridge.Int.clip32(this._items.length * 0.9);\r\n if (this._size < threshold) {\r\n this.Capacity = this._size;\r\n }\r\n },\r\n TrueForAll: function (match) {\r\n if (Bridge.staticEquals(match, null)) {\r\n throw new System.ArgumentNullException.$ctor1(\"match\");\r\n }\r\n\r\n for (var i = 0; i < this._size; i = (i + 1) | 0) {\r\n if (!match(this._items[System.Array.index(i, this._items)])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n },\r\n toJSON: function () {\r\n var newItems = System.Array.init(this._size, function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n if (this._size > 0) {\r\n System.Array.copy(this._items, 0, newItems, 0, this._size);\r\n }\r\n\r\n return newItems;\r\n }\r\n }\r\n }; });\r\n\r\n // @source KeyNotFoundException.js\r\n\r\n Bridge.define(\"System.Collections.Generic.KeyNotFoundException\", {\r\n inherits: [System.SystemException],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, \"The given key was not present in the dictionary.\");\r\n this.HResult = -2146232969;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2146232969;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, innerException);\r\n this.HResult = -2146232969;\r\n }\r\n }\r\n });\r\n\r\n // @source List.js\r\n\r\n System.Collections.Generic.List$1.getElementType = function (type) {\r\n var interfaceType;\r\n\r\n if (System.String.startsWith(type.$$name, \"System.Collections.Generic.IList\")) {\r\n interfaceType = type;\r\n } else {\r\n var interfaces = Bridge.Reflection.getInterfaces(type);\r\n\r\n for (var j = 0; j < interfaces.length; j++) {\r\n if (System.String.startsWith(interfaces[j].$$name, \"System.Collections.Generic.IList\")) {\r\n interfaceType = interfaces[j];\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return interfaceType ? Bridge.Reflection.getGenericArguments(interfaceType)[0] : null;\r\n };\r\n\r\n // @source CharEnumerator.js\r\n\r\n Bridge.define(\"System.CharEnumerator\", {\r\n inherits: [System.Collections.IEnumerator,System.Collections.Generic.IEnumerator$1(System.Char),System.IDisposable,System.ICloneable],\r\n fields: {\r\n _str: null,\r\n _index: 0,\r\n _currentElement: 0\r\n },\r\n props: {\r\n System$Collections$IEnumerator$Current: {\r\n get: function () {\r\n return Bridge.box(this.Current, System.Char, String.fromCharCode, System.Char.getHashCode);\r\n }\r\n },\r\n Current: {\r\n get: function () {\r\n if (this._index === -1) {\r\n throw new System.InvalidOperationException.$ctor1(\"Enumeration has not started. Call MoveNext.\");\r\n }\r\n if (this._index >= this._str.length) {\r\n throw new System.InvalidOperationException.$ctor1(\"Enumeration already finished.\");\r\n }\r\n return this._currentElement;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"clone\", \"System$ICloneable$clone\",\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"Dispose\", \"System$IDisposable$Dispose\",\r\n \"Current\", [\"System$Collections$Generic$IEnumerator$1$System$Char$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\"],\r\n \"reset\", \"System$Collections$IEnumerator$reset\"\r\n ],\r\n ctors: {\r\n ctor: function (str) {\r\n this.$initialize();\r\n this._str = str;\r\n this._index = -1;\r\n }\r\n },\r\n methods: {\r\n clone: function () {\r\n return Bridge.clone(this);\r\n },\r\n moveNext: function () {\r\n if (this._index < (((this._str.length - 1) | 0))) {\r\n this._index = (this._index + 1) | 0;\r\n this._currentElement = this._str.charCodeAt(this._index);\r\n return true;\r\n } else {\r\n this._index = this._str.length;\r\n }\r\n return false;\r\n },\r\n Dispose: function () {\r\n if (this._str != null) {\r\n this._index = this._str.length;\r\n }\r\n this._str = null;\r\n },\r\n reset: function () {\r\n this._currentElement = 0;\r\n this._index = -1;\r\n }\r\n }\r\n });\r\n\r\n // @source Task.js\r\n\r\n Bridge.define(\"System.Threading.Tasks.Task\", {\r\n inherits: [System.IDisposable, System.IAsyncResult],\r\n\r\n config: {\r\n alias: [\r\n \"dispose\", \"System$IDisposable$Dispose\",\r\n \"AsyncState\", \"System$IAsyncResult$AsyncState\",\r\n \"CompletedSynchronously\", \"System$IAsyncResult$CompletedSynchronously\",\r\n \"IsCompleted\", \"System$IAsyncResult$IsCompleted\"\r\n ],\r\n\r\n properties: {\r\n IsCompleted: {\r\n get: function () {\r\n return this.isCompleted();\r\n }\r\n }\r\n }\r\n },\r\n\r\n ctor: function (action, state) {\r\n this.$initialize();\r\n this.action = action;\r\n this.state = state;\r\n this.AsyncState = state;\r\n this.CompletedSynchronously = false;\r\n this.exception = null;\r\n this.status = System.Threading.Tasks.TaskStatus.created;\r\n this.callbacks = [];\r\n this.result = null;\r\n },\r\n\r\n statics: {\r\n queue: [],\r\n\r\n runQueue: function () {\r\n var queue = System.Threading.Tasks.Task.queue.slice(0);\r\n System.Threading.Tasks.Task.queue = [];\r\n\r\n for (var i = 0; i < queue.length; i++) {\r\n queue[i]();\r\n }\r\n },\r\n\r\n schedule: function (fn) {\r\n System.Threading.Tasks.Task.queue.push(fn);\r\n Bridge.setImmediate(System.Threading.Tasks.Task.runQueue);\r\n },\r\n\r\n delay: function (delay, state) {\r\n var tcs = new System.Threading.Tasks.TaskCompletionSource(),\r\n token,\r\n cancelCallback = false;\r\n\r\n if (Bridge.is(state, System.Threading.CancellationToken)) {\r\n token = state;\r\n state = undefined;\r\n }\r\n\r\n if (token) {\r\n token.cancelWasRequested = function () {\r\n if (!cancelCallback) {\r\n cancelCallback = true;\r\n clearTimeout(clear);\r\n\r\n tcs.setCanceled();\r\n }\r\n };\r\n }\r\n\r\n var ms = delay;\r\n if (Bridge.is(delay, System.TimeSpan)) {\r\n ms = delay.getTotalMilliseconds();\r\n }\r\n\r\n var clear = setTimeout(function () {\r\n if (!cancelCallback) {\r\n cancelCallback = true;\r\n tcs.setResult(state);\r\n }\r\n }, ms);\r\n\r\n if (token && token.getIsCancellationRequested()) {\r\n Bridge.setImmediate(token.cancelWasRequested);\r\n }\r\n\r\n return tcs.task;\r\n },\r\n\r\n fromResult: function (result, T) {\r\n var t = new (System.Threading.Tasks.Task$1(T || System.Object))();\r\n\r\n t.status = System.Threading.Tasks.TaskStatus.ranToCompletion;\r\n t.result = result;\r\n\r\n return t;\r\n },\r\n\r\n run: function (fn) {\r\n var tcs = new System.Threading.Tasks.TaskCompletionSource();\r\n\r\n System.Threading.Tasks.Task.schedule(function () {\r\n try {\r\n var result = fn();\r\n\r\n if (Bridge.is(result, System.Threading.Tasks.Task)) {\r\n result.continueWith(function () {\r\n if (result.isFaulted() || result.isCanceled()) {\r\n tcs.setException(result.exception.innerExceptions.Count > 0 ? result.exception.innerExceptions.getItem(0) : result.exception);\r\n } else {\r\n tcs.setResult(result.getAwaitedResult());\r\n }\r\n });\r\n } else {\r\n tcs.setResult(result);\r\n }\r\n } catch (e) {\r\n tcs.setException(System.Exception.create(e));\r\n }\r\n });\r\n\r\n return tcs.task;\r\n },\r\n\r\n whenAll: function (tasks) {\r\n var tcs = new System.Threading.Tasks.TaskCompletionSource(),\r\n result,\r\n executing,\r\n cancelled = false,\r\n exceptions = [],\r\n i;\r\n\r\n if (Bridge.is(tasks, System.Collections.IEnumerable)) {\r\n tasks = Bridge.toArray(tasks);\r\n } else if (!Bridge.isArray(tasks)) {\r\n tasks = Array.prototype.slice.call(arguments, 0);\r\n }\r\n\r\n if (tasks.length === 0) {\r\n tcs.setResult([]);\r\n\r\n return tcs.task;\r\n }\r\n\r\n executing = tasks.length;\r\n result = new Array(tasks.length);\r\n\r\n for (i = 0; i < tasks.length; i++) {\r\n (function (i) {\r\n tasks[i].continueWith(function (t) {\r\n switch (t.status) {\r\n case System.Threading.Tasks.TaskStatus.ranToCompletion:\r\n result[i] = t.getResult();\r\n break;\r\n case System.Threading.Tasks.TaskStatus.canceled:\r\n cancelled = true;\r\n break;\r\n case System.Threading.Tasks.TaskStatus.faulted:\r\n System.Array.addRange(exceptions, t.exception.innerExceptions);\r\n break;\r\n default:\r\n throw new System.InvalidOperationException.$ctor1(\"Invalid task status: \" + t.status);\r\n }\r\n\r\n if (--executing === 0) {\r\n if (exceptions.length > 0) {\r\n tcs.setException(exceptions);\r\n } else if (cancelled) {\r\n tcs.setCanceled();\r\n } else {\r\n tcs.setResult(result);\r\n }\r\n }\r\n });\r\n })(i);\r\n }\r\n\r\n return tcs.task;\r\n },\r\n\r\n whenAny: function (tasks) {\r\n if (Bridge.is(tasks, System.Collections.IEnumerable)) {\r\n tasks = Bridge.toArray(tasks);\r\n } else if (!Bridge.isArray(tasks)) {\r\n tasks = Array.prototype.slice.call(arguments, 0);\r\n }\r\n\r\n if (!tasks.length) {\r\n throw new System.ArgumentException.$ctor1(\"At least one task is required\");\r\n }\r\n\r\n var tcs = new System.Threading.Tasks.TaskCompletionSource(),\r\n i;\r\n\r\n for (i = 0; i < tasks.length; i++) {\r\n tasks[i].continueWith(function (t) {\r\n switch (t.status) {\r\n case System.Threading.Tasks.TaskStatus.ranToCompletion:\r\n tcs.trySetResult(t);\r\n break;\r\n case System.Threading.Tasks.TaskStatus.canceled:\r\n case System.Threading.Tasks.TaskStatus.faulted:\r\n tcs.trySetException(t.exception.innerExceptions);\r\n break;\r\n default:\r\n throw new System.InvalidOperationException.$ctor1(\"Invalid task status: \" + t.status);\r\n }\r\n });\r\n }\r\n\r\n return tcs.task;\r\n },\r\n\r\n fromCallback: function (target, method) {\r\n var tcs = new System.Threading.Tasks.TaskCompletionSource(),\r\n args = Array.prototype.slice.call(arguments, 2),\r\n callback;\r\n\r\n callback = function (value) {\r\n tcs.setResult(value);\r\n };\r\n\r\n args.push(callback);\r\n\r\n target[method].apply(target, args);\r\n\r\n return tcs.task;\r\n },\r\n\r\n fromCallbackResult: function (target, method, resultHandler) {\r\n var tcs = new System.Threading.Tasks.TaskCompletionSource(),\r\n args = Array.prototype.slice.call(arguments, 3),\r\n callback;\r\n\r\n callback = function (value) {\r\n tcs.setResult(value);\r\n };\r\n\r\n resultHandler(args, callback);\r\n\r\n target[method].apply(target, args);\r\n\r\n return tcs.task;\r\n },\r\n\r\n fromCallbackOptions: function (target, method, name) {\r\n var tcs = new System.Threading.Tasks.TaskCompletionSource(),\r\n args = Array.prototype.slice.call(arguments, 3),\r\n callback;\r\n\r\n callback = function (value) {\r\n tcs.setResult(value);\r\n };\r\n\r\n args[0] = args[0] || {};\r\n args[0][name] = callback;\r\n\r\n target[method].apply(target, args);\r\n\r\n return tcs.task;\r\n },\r\n\r\n fromPromise: function (promise, handler, errorHandler, progressHandler) {\r\n var tcs = new System.Threading.Tasks.TaskCompletionSource();\r\n\r\n if (!promise.then) {\r\n promise = promise.promise();\r\n }\r\n\r\n if (typeof (handler) === 'number') {\r\n handler = (function (i) {\r\n return function () {\r\n return arguments[i >= 0 ? i : (arguments.length + i)];\r\n };\r\n })(handler);\r\n } else if (typeof (handler) !== 'function') {\r\n handler = function () {\r\n return Array.prototype.slice.call(arguments, 0);\r\n };\r\n }\r\n\r\n promise.then(function () {\r\n tcs.setResult(handler ? handler.apply(null, arguments) : Array.prototype.slice.call(arguments, 0));\r\n }, function () {\r\n tcs.setException(errorHandler ? errorHandler.apply(null, arguments) : new Bridge.PromiseException(Array.prototype.slice.call(arguments, 0)));\r\n }, progressHandler);\r\n\r\n return tcs.task;\r\n }\r\n },\r\n\r\n getException: function () {\r\n return this.isCanceled() ? null : this.exception;\r\n },\r\n\r\n waitt: function (timeout, token) {\r\n var ms = timeout,\r\n tcs = new System.Threading.Tasks.TaskCompletionSource(),\r\n cancelCallback = false;\r\n\r\n if (token) {\r\n token.cancelWasRequested = function () {\r\n if (!cancelCallback) {\r\n cancelCallback = true;\r\n clearTimeout(clear);\r\n tcs.setException(new System.OperationCanceledException.$ctor1(token));\r\n }\r\n };\r\n }\r\n\r\n if (Bridge.is(timeout, System.TimeSpan)) {\r\n ms = timeout.getTotalMilliseconds();\r\n }\r\n\r\n var clear = setTimeout(function () {\r\n cancelCallback = true;\r\n tcs.setResult(false);\r\n }, ms);\r\n\r\n this.continueWith(function () {\r\n clearTimeout(clear);\r\n if (!cancelCallback) {\r\n cancelCallback = true;\r\n tcs.setResult(true);\r\n }\r\n })\r\n\r\n return tcs.task;\r\n },\r\n\r\n wait: function (token) {\r\n var me = this,\r\n tcs = new System.Threading.Tasks.TaskCompletionSource(),\r\n complete = false;\r\n\r\n if (token) {\r\n token.cancelWasRequested = function () {\r\n if (!complete) {\r\n complete = true;\r\n tcs.setException(new System.OperationCanceledException.$ctor1(token));\r\n }\r\n };\r\n }\r\n\r\n this.continueWith(function () {\r\n if (!complete) {\r\n complete = true;\r\n if (me.isFaulted() || me.isCanceled()) {\r\n tcs.setException(me.exception);\r\n } else {\r\n tcs.setResult();\r\n }\r\n }\r\n })\r\n\r\n return tcs.task;\r\n },\r\n\r\n continue: function (continuationAction) {\r\n if (this.isCompleted()) {\r\n System.Threading.Tasks.Task.queue.push(continuationAction);\r\n System.Threading.Tasks.Task.runQueue();\r\n } else {\r\n this.callbacks.push(continuationAction);\r\n }\r\n },\r\n\r\n continueWith: function (continuationAction, raise) {\r\n var tcs = new System.Threading.Tasks.TaskCompletionSource(),\r\n me = this,\r\n fn = raise ? function () {\r\n tcs.setResult(continuationAction(me));\r\n } : function () {\r\n try {\r\n tcs.setResult(continuationAction(me));\r\n } catch (e) {\r\n tcs.setException(System.Exception.create(e));\r\n }\r\n };\r\n\r\n if (this.isCompleted()) {\r\n //System.Threading.Tasks.Task.schedule(fn);\r\n System.Threading.Tasks.Task.queue.push(fn);\r\n System.Threading.Tasks.Task.runQueue();\r\n } else {\r\n this.callbacks.push(fn);\r\n }\r\n\r\n return tcs.task;\r\n },\r\n\r\n start: function () {\r\n if (this.status !== System.Threading.Tasks.TaskStatus.created) {\r\n throw new System.InvalidOperationException.$ctor1(\"Task was already started.\");\r\n }\r\n\r\n var me = this;\r\n\r\n this.status = System.Threading.Tasks.TaskStatus.running;\r\n\r\n System.Threading.Tasks.Task.schedule(function () {\r\n try {\r\n var result = me.action(me.state);\r\n\r\n delete me.action;\r\n delete me.state;\r\n\r\n me.complete(result);\r\n } catch (e) {\r\n me.fail(new System.AggregateException(null, [System.Exception.create(e)]));\r\n }\r\n });\r\n },\r\n\r\n runCallbacks: function () {\r\n var me = this;\r\n\r\n for (var i = 0; i < me.callbacks.length; i++) {\r\n me.callbacks[i](me);\r\n }\r\n\r\n delete me.callbacks;\r\n },\r\n\r\n complete: function (result) {\r\n if (this.isCompleted()) {\r\n return false;\r\n }\r\n\r\n this.result = result;\r\n this.status = System.Threading.Tasks.TaskStatus.ranToCompletion;\r\n this.runCallbacks();\r\n\r\n return true;\r\n },\r\n\r\n fail: function (error) {\r\n if (this.isCompleted()) {\r\n return false;\r\n }\r\n\r\n this.exception = error;\r\n this.status = this.exception.hasTaskCanceledException && this.exception.hasTaskCanceledException() ? System.Threading.Tasks.TaskStatus.canceled : System.Threading.Tasks.TaskStatus.faulted;\r\n this.runCallbacks();\r\n\r\n return true;\r\n },\r\n\r\n cancel: function (error) {\r\n if (this.isCompleted()) {\r\n return false;\r\n }\r\n\r\n this.exception = error || new System.AggregateException(null, [new System.Threading.Tasks.TaskCanceledException.$ctor3(this)]);\r\n this.status = System.Threading.Tasks.TaskStatus.canceled;\r\n this.runCallbacks();\r\n\r\n return true;\r\n },\r\n\r\n isCanceled: function () {\r\n return this.status === System.Threading.Tasks.TaskStatus.canceled;\r\n },\r\n\r\n isCompleted: function () {\r\n return this.status === System.Threading.Tasks.TaskStatus.ranToCompletion || this.status === System.Threading.Tasks.TaskStatus.canceled || this.status === System.Threading.Tasks.TaskStatus.faulted;\r\n },\r\n\r\n isFaulted: function () {\r\n return this.status === System.Threading.Tasks.TaskStatus.faulted;\r\n },\r\n\r\n _getResult: function (awaiting) {\r\n switch (this.status) {\r\n case System.Threading.Tasks.TaskStatus.ranToCompletion:\r\n return this.result;\r\n case System.Threading.Tasks.TaskStatus.canceled:\r\n if (this.exception && this.exception.innerExceptions) {\r\n throw awaiting ? (this.exception.innerExceptions.Count > 0 ? this.exception.innerExceptions.getItem(0) : null) : this.exception;\r\n }\r\n\r\n var ex = new System.Threading.Tasks.TaskCanceledException.$ctor3(this);\r\n throw awaiting ? ex : new System.AggregateException(null, [ex]);\r\n case System.Threading.Tasks.TaskStatus.faulted:\r\n throw awaiting ? (this.exception.innerExceptions.Count > 0 ? this.exception.innerExceptions.getItem(0) : null) : this.exception;\r\n default:\r\n throw new System.InvalidOperationException.$ctor1(\"Task is not yet completed.\");\r\n }\r\n },\r\n\r\n getResult: function () {\r\n return this._getResult(false);\r\n },\r\n\r\n dispose: function () {},\r\n\r\n getAwaiter: function () {\r\n return this;\r\n },\r\n\r\n getAwaitedResult: function () {\r\n return this._getResult(true);\r\n }\r\n });\r\n\r\n Bridge.define(\"System.Threading.Tasks.Task$1\", function (T) {\r\n return {\r\n inherits: [System.Threading.Tasks.Task],\r\n ctor: function (action, state) {\r\n this.$initialize();\r\n System.Threading.Tasks.Task.ctor.call(this, action, state);\r\n }\r\n };\r\n });\r\n\r\n Bridge.define(\"System.Threading.Tasks.TaskStatus\", {\r\n $kind: \"enum\",\r\n $statics: {\r\n created: 0,\r\n waitingForActivation: 1,\r\n waitingToRun: 2,\r\n running: 3,\r\n waitingForChildrenToComplete: 4,\r\n ranToCompletion: 5,\r\n canceled: 6,\r\n faulted: 7\r\n }\r\n });\r\n\r\n Bridge.define(\"System.Threading.Tasks.TaskCompletionSource\", {\r\n ctor: function (state) {\r\n this.$initialize();\r\n this.task = new System.Threading.Tasks.Task(null, state);\r\n this.task.status = System.Threading.Tasks.TaskStatus.running;\r\n },\r\n\r\n setCanceled: function () {\r\n if (!this.task.cancel()) {\r\n throw new System.InvalidOperationException.$ctor1(\"Task was already completed.\");\r\n }\r\n },\r\n\r\n setResult: function (result) {\r\n if (!this.task.complete(result)) {\r\n throw new System.InvalidOperationException.$ctor1(\"Task was already completed.\");\r\n }\r\n },\r\n\r\n setException: function (exception) {\r\n if (!this.trySetException(exception)) {\r\n throw new System.InvalidOperationException.$ctor1(\"Task was already completed.\");\r\n }\r\n },\r\n\r\n trySetCanceled: function () {\r\n return this.task.cancel();\r\n },\r\n\r\n trySetResult: function (result) {\r\n return this.task.complete(result);\r\n },\r\n\r\n trySetException: function (exception) {\r\n if (Bridge.is(exception, System.Exception)) {\r\n exception = [exception];\r\n }\r\n\r\n exception = new System.AggregateException(null, exception);\r\n\r\n if (exception.hasTaskCanceledException()) {\r\n return this.task.cancel(exception);\r\n }\r\n\r\n return this.task.fail(exception);\r\n }\r\n });\r\n\r\n Bridge.define(\"System.Threading.CancellationTokenSource\", {\r\n inherits: [System.IDisposable],\r\n\r\n config: {\r\n alias: [\r\n \"dispose\", \"System$IDisposable$Dispose\"\r\n ]\r\n },\r\n\r\n ctor: function (delay) {\r\n this.$initialize();\r\n this.timeout = typeof delay === \"number\" && delay >= 0 ? setTimeout(Bridge.fn.bind(this, this.cancel), delay, -1) : null;\r\n this.isCancellationRequested = false;\r\n this.token = new System.Threading.CancellationToken(this);\r\n this.handlers = [];\r\n },\r\n\r\n cancel: function (throwFirst) {\r\n if (this.isCancellationRequested) {\r\n return;\r\n }\r\n\r\n this.isCancellationRequested = true;\r\n\r\n var x = [],\r\n h = this.handlers;\r\n\r\n this.clean();\r\n this.token.cancelWasRequested();\r\n\r\n for (var i = 0; i < h.length; i++) {\r\n try {\r\n h[i].f(h[i].s);\r\n } catch (ex) {\r\n if (throwFirst && throwFirst !== -1) {\r\n throw ex;\r\n }\r\n\r\n x.push(ex);\r\n }\r\n }\r\n\r\n if (x.length > 0 && throwFirst !== -1) {\r\n throw new System.AggregateException(null, x);\r\n }\r\n },\r\n\r\n cancelAfter: function (delay) {\r\n if (this.isCancellationRequested) {\r\n return;\r\n }\r\n\r\n if (this.timeout) {\r\n clearTimeout(this.timeout);\r\n }\r\n\r\n this.timeout = setTimeout(Bridge.fn.bind(this, this.cancel), delay, -1);\r\n },\r\n\r\n register: function (f, s) {\r\n if (this.isCancellationRequested) {\r\n f(s);\r\n\r\n return new System.Threading.CancellationTokenRegistration();\r\n } else {\r\n var o = {\r\n f: f,\r\n s: s\r\n };\r\n\r\n this.handlers.push(o);\r\n\r\n return new System.Threading.CancellationTokenRegistration(this, o);\r\n }\r\n },\r\n\r\n deregister: function (o) {\r\n var ix = this.handlers.indexOf(o);\r\n\r\n if (ix >= 0) {\r\n this.handlers.splice(ix, 1);\r\n }\r\n },\r\n\r\n dispose: function () {\r\n this.clean();\r\n },\r\n\r\n clean: function () {\r\n if (this.timeout) {\r\n clearTimeout(this.timeout);\r\n }\r\n\r\n this.timeout = null;\r\n this.handlers = [];\r\n\r\n if (this.links) {\r\n for (var i = 0; i < this.links.length; i++) {\r\n this.links[i].dispose();\r\n }\r\n\r\n this.links = null;\r\n }\r\n },\r\n\r\n statics: {\r\n createLinked: function () {\r\n var cts = new System.Threading.CancellationTokenSource();\r\n\r\n cts.links = [];\r\n\r\n var d = Bridge.fn.bind(cts, cts.cancel);\r\n\r\n for (var i = 0; i < arguments.length; i++) {\r\n cts.links.push(arguments[i].register(d));\r\n }\r\n\r\n return cts;\r\n }\r\n }\r\n });\r\n\r\n Bridge.define(\"System.Threading.CancellationToken\", {\r\n $kind: \"struct\",\r\n\r\n ctor: function (source) {\r\n this.$initialize();\r\n\r\n if (!Bridge.is(source, System.Threading.CancellationTokenSource)) {\r\n source = source ? System.Threading.CancellationToken.sourceTrue : System.Threading.CancellationToken.sourceFalse;\r\n }\r\n\r\n this.source = source;\r\n },\r\n\r\n cancelWasRequested: function () {\r\n\r\n },\r\n\r\n getCanBeCanceled: function () {\r\n return !this.source.uncancellable;\r\n },\r\n\r\n getIsCancellationRequested: function () {\r\n return this.source.isCancellationRequested;\r\n },\r\n\r\n throwIfCancellationRequested: function () {\r\n if (this.source.isCancellationRequested) {\r\n throw new System.OperationCanceledException.$ctor1(this);\r\n }\r\n },\r\n\r\n register: function (cb, s) {\r\n return this.source.register(cb, s);\r\n },\r\n\r\n getHashCode: function () {\r\n return Bridge.getHashCode(this.source);\r\n },\r\n\r\n equals: function (other) {\r\n return other.source === this.source;\r\n },\r\n\r\n equalsT: function (other) {\r\n return other.source === this.source;\r\n },\r\n\r\n statics: {\r\n sourceTrue: {\r\n isCancellationRequested: true,\r\n register: function (f, s) {\r\n f(s);\r\n\r\n return new System.Threading.CancellationTokenRegistration();\r\n }\r\n },\r\n sourceFalse: {\r\n uncancellable: true,\r\n isCancellationRequested: false,\r\n register: function () {\r\n return new System.Threading.CancellationTokenRegistration();\r\n }\r\n },\r\n getDefaultValue: function () {\r\n return new System.Threading.CancellationToken();\r\n }\r\n }\r\n });\r\n\r\n System.Threading.CancellationToken.none = new System.Threading.CancellationToken();\r\n\r\n Bridge.define(\"System.Threading.CancellationTokenRegistration\", {\r\n inherits: function () {\r\n return [System.IDisposable, System.IEquatable$1(System.Threading.CancellationTokenRegistration)];\r\n },\r\n\r\n $kind: \"struct\",\r\n\r\n config: {\r\n alias: [\r\n \"dispose\", \"System$IDisposable$Dispose\"\r\n ]\r\n },\r\n\r\n ctor: function (cts, o) {\r\n this.$initialize();\r\n this.cts = cts;\r\n this.o = o;\r\n },\r\n\r\n dispose: function () {\r\n if (this.cts) {\r\n this.cts.deregister(this.o);\r\n this.cts = this.o = null;\r\n }\r\n },\r\n\r\n equalsT: function (o) {\r\n return this === o;\r\n },\r\n\r\n equals: function (o) {\r\n return this === o;\r\n },\r\n\r\n statics: {\r\n getDefaultValue: function () {\r\n return new System.Threading.CancellationTokenRegistration();\r\n }\r\n }\r\n });\r\n\r\n // @source Validation.js\r\n\r\n var validation = {\r\n isNull: function (value) {\r\n return !Bridge.isDefined(value, true);\r\n },\r\n\r\n isEmpty: function (value) {\r\n return value == null || value.length === 0 || Bridge.is(value, System.Collections.ICollection) ? value.getCount() === 0 : false;\r\n },\r\n\r\n isNotEmptyOrWhitespace: function (value) {\r\n return Bridge.isDefined(value, true) && !(/^$|\\s+/.test(value));\r\n },\r\n\r\n isNotNull: function (value) {\r\n return Bridge.isDefined(value, true);\r\n },\r\n\r\n isNotEmpty: function (value) {\r\n return !Bridge.Validation.isEmpty(value);\r\n },\r\n\r\n email: function (value) {\r\n var re = /^(\")?(?:[^\\.\"])(?:(?:[\\.])?(?:[\\w\\-!#$%&'*+/=?^_`{|}~]))*\\1@(\\w[\\-\\w]*\\.){1,5}([A-Za-z]){2,6}$/;\r\n\r\n return re.test(value);\r\n },\r\n\r\n url: function (value) {\r\n var re = /(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:\\.\\d{1,3}){3})(?!(?:\\.\\d{1,3}){2})(?!\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))\\.?)(?::\\d{2,5})?(?:[/?#]\\S*)?$/;\r\n\r\n return re.test(value);\r\n },\r\n\r\n alpha: function (value) {\r\n var re = /^[a-zA-Z_]+$/;\r\n\r\n return re.test(value);\r\n },\r\n\r\n alphaNum: function (value) {\r\n var re = /^[a-zA-Z_]+$/;\r\n\r\n return re.test(value);\r\n },\r\n\r\n creditCard: function (value, type) {\r\n var re,\r\n checksum,\r\n i,\r\n digit,\r\n notype = false;\r\n\r\n if (type === \"Visa\") {\r\n // Visa: length 16, prefix 4, dashes optional.\r\n re = /^4\\d{3}[- ]?\\d{4}[- ]?\\d{4}[- ]?\\d{4}$/;\r\n } else if (type === \"MasterCard\") {\r\n // Mastercard: length 16, prefix 51-55, dashes optional.\r\n re = /^5[1-5]\\d{2}[- ]?\\d{4}[- ]?\\d{4}[- ]?\\d{4}$/;\r\n } else if (type === \"Discover\") {\r\n // Discover: length 16, prefix 6011, dashes optional.\r\n re = /^6011[- ]?\\d{4}[- ]?\\d{4}[- ]?\\d{4}$/;\r\n } else if (type === \"AmericanExpress\") {\r\n // American Express: length 15, prefix 34 or 37.\r\n re = /^3[4,7]\\d{13}$/;\r\n } else if (type === \"DinersClub\") {\r\n // Diners: length 14, prefix 30, 36, or 38.\r\n re = /^(3[0,6,8]\\d{12})|(5[45]\\d{14})$/;\r\n } else {\r\n // Basing min and max length on\r\n // http://developer.ean.com/general_info/Valid_Credit_Card_Types\r\n if (!value || value.length < 13 || value.length > 19) {\r\n return false;\r\n }\r\n\r\n re = /[^0-9 \\-]+/;\r\n notype = true;\r\n }\r\n\r\n if (!re.test(value)) {\r\n return false;\r\n }\r\n\r\n // Remove all dashes for the checksum checks to eliminate negative numbers\r\n value = value.split(notype ? \"-\" : /[- ]/).join(\"\");\r\n\r\n // Checksum (\"Mod 10\")\r\n // Add even digits in even length strings or odd digits in odd length strings.\r\n checksum = 0;\r\n\r\n for (i = (2 - (value.length % 2)); i <= value.length; i += 2) {\r\n checksum += parseInt(value.charAt(i - 1));\r\n }\r\n\r\n // Analyze odd digits in even length strings or even digits in odd length strings.\r\n for (i = (value.length % 2) + 1; i < value.length; i += 2) {\r\n digit = parseInt(value.charAt(i - 1)) * 2;\r\n\r\n if (digit < 10) {\r\n checksum += digit;\r\n } else {\r\n checksum += (digit - 9);\r\n }\r\n }\r\n\r\n return (checksum % 10) === 0;\r\n }\r\n };\r\n\r\n Bridge.Validation = validation;\r\n\r\n // @source Attribute.js\r\n\r\n Bridge.define(\"System.Attribute\", {\r\n statics: {\r\n getCustomAttributes: function (o, t, b) {\r\n if (o == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"element\");\r\n }\r\n\r\n if (t == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"attributeType\");\r\n }\r\n\r\n var r = o.at || [];\r\n\r\n if (o.ov === true) {\r\n var baseType = Bridge.Reflection.getBaseType(o.td),\r\n baseAttrs = [],\r\n baseMember = null;\r\n\r\n while (baseType != null && baseMember == null) {\r\n baseMember = Bridge.Reflection.getMembers(baseType, 31, 28, o.n);\r\n\r\n if (baseMember.length == 0) {\r\n var newBaseType = Bridge.Reflection.getBaseType(baseType);\r\n\r\n if (newBaseType != baseType) {\r\n baseType = newBaseType;\r\n }\r\n\r\n baseMember = null;\r\n } else {\r\n baseMember = baseMember[0];\r\n }\r\n }\r\n\r\n if (baseMember != null) {\r\n baseAttrs = System.Attribute.getCustomAttributes(baseMember, t);\r\n }\r\n\r\n for (var i = 0; i < baseAttrs.length; i++) {\r\n var baseAttr = baseAttrs[i],\r\n attrType = Bridge.getType(baseAttr),\r\n meta = Bridge.getMetadata(attrType);\r\n\r\n if (meta && meta.am || !r.some(function (a) { return Bridge.is(a, t); })) {\r\n r.push(baseAttr);\r\n }\r\n }\r\n }\r\n\r\n if (!t) {\r\n return r;\r\n }\r\n\r\n return r.filter(function (a) { return Bridge.is(a, t); });\r\n },\r\n\r\n getCustomAttributes$1: function (a, t, b) {\r\n if (a == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"element\");\r\n }\r\n\r\n if (t == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"attributeType\");\r\n }\r\n\r\n return a.getCustomAttributes(t || b);\r\n },\r\n\r\n isDefined: function (o, t, b) {\r\n var attrs = System.Attribute.getCustomAttributes(o, t, b);\r\n\r\n return attrs.length > 0;\r\n }\r\n }\r\n });\r\n\r\n // @source SerializableAttribute.js\r\n\r\n Bridge.define(\"System.SerializableAttribute\", {\r\n inherits: [System.Attribute],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n }\r\n }\r\n });\r\n\r\n // @source INotifyPropertyChanged.js\r\n\r\n Bridge.define(\"System.ComponentModel.INotifyPropertyChanged\", {\r\n $kind: \"interface\"\r\n });\r\n\r\n Bridge.define(\"System.ComponentModel.PropertyChangedEventArgs\", {\r\n ctor: function (propertyName, newValue, oldValue) {\r\n this.$initialize();\r\n this.propertyName = propertyName;\r\n this.newValue = newValue;\r\n this.oldValue = oldValue;\r\n }\r\n });\r\n\r\n // @source Convert.js\r\n\r\n var scope = {};\r\n\r\n scope.convert = {\r\n typeCodes: {\r\n Empty: 0,\r\n Object: 1,\r\n DBNull: 2,\r\n Boolean: 3,\r\n Char: 4,\r\n SByte: 5,\r\n Byte: 6,\r\n Int16: 7,\r\n UInt16: 8,\r\n Int32: 9,\r\n UInt32: 10,\r\n Int64: 11,\r\n UInt64: 12,\r\n Single: 13,\r\n Double: 14,\r\n Decimal: 15,\r\n DateTime: 16,\r\n String: 18\r\n },\r\n\r\n convertTypes: [\r\n null,\r\n System.Object,\r\n null,\r\n System.Boolean,\r\n System.Char,\r\n System.SByte,\r\n System.Byte,\r\n System.Int16,\r\n System.UInt16,\r\n System.Int32,\r\n System.UInt32,\r\n System.Int64,\r\n System.UInt64,\r\n System.Single,\r\n System.Double,\r\n System.Decimal,\r\n System.DateTime,\r\n System.Object,\r\n System.String\r\n ],\r\n\r\n toBoolean: function (value, formatProvider) {\r\n value = Bridge.unbox(value, true);\r\n\r\n switch (typeof (value)) {\r\n case \"boolean\":\r\n return value;\r\n\r\n case \"number\":\r\n return value !== 0; // non-zero int/float value is always converted to True;\r\n\r\n case \"string\":\r\n var lowCaseVal = value.toLowerCase().trim();\r\n\r\n if (lowCaseVal === \"true\") {\r\n return true;\r\n } else if (lowCaseVal === \"false\") {\r\n return false;\r\n } else {\r\n throw new System.FormatException.$ctor1(\"String was not recognized as a valid Boolean.\");\r\n }\r\n\r\n case \"object\":\r\n if (value == null) {\r\n return false;\r\n }\r\n\r\n if (value instanceof System.Decimal) {\r\n return !value.isZero();\r\n }\r\n\r\n if (System.Int64.is64Bit(value)) {\r\n return value.ne(0);\r\n }\r\n\r\n break;\r\n }\r\n\r\n // TODO: #822 When IConvertible is implemented, try it before throwing InvalidCastEx\r\n var typeCode = scope.internal.suggestTypeCode(value);\r\n scope.internal.throwInvalidCastEx(typeCode, scope.convert.typeCodes.Boolean);\r\n\r\n // try converting using IConvertible\r\n return scope.convert.convertToType(scope.convert.typeCodes.Boolean, value, formatProvider || null);\r\n },\r\n\r\n toChar: function (value, formatProvider, valueTypeCode) {\r\n var typeCodes = scope.convert.typeCodes,\r\n isChar = Bridge.is(value, System.Char);\r\n\r\n value = Bridge.unbox(value, true);\r\n\r\n if (value instanceof System.Decimal) {\r\n value = value.toFloat();\r\n }\r\n\r\n if (value instanceof System.Int64 || value instanceof System.UInt64) {\r\n value = value.toNumber();\r\n }\r\n\r\n var type = typeof (value);\r\n\r\n valueTypeCode = valueTypeCode || scope.internal.suggestTypeCode(value);\r\n\r\n if (valueTypeCode === typeCodes.String && value == null) {\r\n type = \"string\";\r\n }\r\n\r\n if (valueTypeCode !== typeCodes.Object || isChar) {\r\n switch (type) {\r\n case \"boolean\":\r\n scope.internal.throwInvalidCastEx(typeCodes.Boolean, typeCodes.Char);\r\n\r\n case \"number\":\r\n var isFloatingType = scope.internal.isFloatingType(valueTypeCode);\r\n\r\n if (isFloatingType || value % 1 !== 0) {\r\n scope.internal.throwInvalidCastEx(valueTypeCode, typeCodes.Char);\r\n }\r\n\r\n scope.internal.validateNumberRange(value, typeCodes.Char, true);\r\n\r\n return value;\r\n\r\n case \"string\":\r\n if (value == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"value\");\r\n }\r\n\r\n if (value.length !== 1) {\r\n throw new System.FormatException.$ctor1(\"String must be exactly one character long.\");\r\n }\r\n\r\n return value.charCodeAt(0);\r\n }\r\n }\r\n\r\n if (valueTypeCode === typeCodes.Object || type === \"object\") {\r\n if (value == null) {\r\n return 0;\r\n }\r\n\r\n if (Bridge.isDate(value)) {\r\n scope.internal.throwInvalidCastEx(typeCodes.DateTime, typeCodes.Char);\r\n }\r\n }\r\n\r\n // TODO: #822 When IConvertible is implemented, try it before throwing InvalidCastEx\r\n scope.internal.throwInvalidCastEx(valueTypeCode, scope.convert.typeCodes.Char);\r\n\r\n // try converting using IConvertible\r\n return scope.convert.convertToType(typeCodes.Char, value, formatProvider || null);\r\n },\r\n\r\n toSByte: function (value, formatProvider, valueTypeCode) {\r\n return scope.internal.toNumber(value, formatProvider || null, scope.convert.typeCodes.SByte, valueTypeCode || null);\r\n },\r\n\r\n toByte: function (value, formatProvider) {\r\n return scope.internal.toNumber(value, formatProvider || null, scope.convert.typeCodes.Byte);\r\n },\r\n\r\n toInt16: function (value, formatProvider) {\r\n return scope.internal.toNumber(value, formatProvider || null, scope.convert.typeCodes.Int16);\r\n },\r\n\r\n toUInt16: function (value, formatProvider) {\r\n return scope.internal.toNumber(value, formatProvider || null, scope.convert.typeCodes.UInt16);\r\n },\r\n\r\n toInt32: function (value, formatProvider) {\r\n return scope.internal.toNumber(value, formatProvider || null, scope.convert.typeCodes.Int32);\r\n },\r\n\r\n toUInt32: function (value, formatProvider) {\r\n return scope.internal.toNumber(value, formatProvider || null, scope.convert.typeCodes.UInt32);\r\n },\r\n\r\n toInt64: function (value, formatProvider) {\r\n var result = scope.internal.toNumber(value, formatProvider || null, scope.convert.typeCodes.Int64);\r\n return new System.Int64(result);\r\n },\r\n\r\n toUInt64: function (value, formatProvider) {\r\n var result = scope.internal.toNumber(value, formatProvider || null, scope.convert.typeCodes.UInt64);\r\n return new System.UInt64(result);\r\n },\r\n\r\n toSingle: function (value, formatProvider) {\r\n return scope.internal.toNumber(value, formatProvider || null, scope.convert.typeCodes.Single);\r\n },\r\n\r\n toDouble: function (value, formatProvider) {\r\n return scope.internal.toNumber(value, formatProvider || null, scope.convert.typeCodes.Double);\r\n },\r\n\r\n toDecimal: function (value, formatProvider) {\r\n if (value instanceof System.Decimal) {\r\n return value;\r\n }\r\n\r\n return new System.Decimal(scope.internal.toNumber(value, formatProvider || null, scope.convert.typeCodes.Decimal));\r\n },\r\n\r\n toDateTime: function (value, formatProvider) {\r\n var typeCodes = scope.convert.typeCodes;\r\n\r\n value = Bridge.unbox(value, true);\r\n\r\n switch (typeof (value)) {\r\n case \"boolean\":\r\n scope.internal.throwInvalidCastEx(typeCodes.Boolean, typeCodes.DateTime);\r\n\r\n case \"number\":\r\n var fromType = scope.internal.suggestTypeCode(value);\r\n scope.internal.throwInvalidCastEx(fromType, typeCodes.DateTime);\r\n\r\n case \"string\":\r\n value = System.DateTime.parse(value, formatProvider || null);\r\n\r\n return value;\r\n\r\n case \"object\":\r\n if (value == null) {\r\n return scope.internal.getMinValue(typeCodes.DateTime);\r\n }\r\n\r\n if (Bridge.isDate(value)) {\r\n return value;\r\n }\r\n\r\n if (value instanceof System.Decimal) {\r\n scope.internal.throwInvalidCastEx(typeCodes.Decimal, typeCodes.DateTime);\r\n }\r\n\r\n if (value instanceof System.Int64) {\r\n scope.internal.throwInvalidCastEx(typeCodes.Int64, typeCodes.DateTime);\r\n }\r\n\r\n if (value instanceof System.UInt64) {\r\n scope.internal.throwInvalidCastEx(typeCodes.UInt64, typeCodes.DateTime);\r\n }\r\n\r\n break;\r\n }\r\n\r\n // TODO: #822 When IConvertible is implemented, try it before throwing InvalidCastEx\r\n var valueTypeCode = scope.internal.suggestTypeCode(value);\r\n\r\n scope.internal.throwInvalidCastEx(valueTypeCode, scope.convert.typeCodes.DateTime);\r\n\r\n // try converting using IConvertible\r\n return scope.convert.convertToType(typeCodes.DateTime, value, formatProvider || null);\r\n },\r\n\r\n toString: function (value, formatProvider, valueTypeCode) {\r\n if (value && value.$boxed) {\r\n return value.toString();\r\n }\r\n\r\n var typeCodes = scope.convert.typeCodes,\r\n type = typeof (value);\r\n\r\n switch (type) {\r\n case \"boolean\":\r\n return value ? \"True\" : \"False\";\r\n\r\n case \"number\":\r\n if ((valueTypeCode || null) === typeCodes.Char) {\r\n return String.fromCharCode(value);\r\n }\r\n\r\n if (isNaN(value)) {\r\n return \"NaN\";\r\n }\r\n\r\n if (value % 1 !== 0) {\r\n value = parseFloat(value.toPrecision(15));\r\n }\r\n\r\n return value.toString();\r\n\r\n case \"string\":\r\n return value;\r\n\r\n case \"object\":\r\n if (value == null) {\r\n return \"\";\r\n }\r\n\r\n // If the object has an override to the toString() method,\r\n // then just return its result\r\n if (value.toString !== Object.prototype.toString) {\r\n return value.toString();\r\n }\r\n\r\n if (Bridge.isDate(value)) {\r\n return System.DateTime.format(value, null, formatProvider || null);\r\n }\r\n\r\n if (value instanceof System.Decimal) {\r\n if (value.isInteger()) {\r\n return value.toFixed(0, 4);\r\n }\r\n return value.toPrecision(value.precision());\r\n }\r\n\r\n if (System.Int64.is64Bit(value)) {\r\n return value.toString();\r\n }\r\n\r\n if (value.format) {\r\n return value.format(null, formatProvider || null);\r\n }\r\n\r\n var typeName = Bridge.getTypeName(value);\r\n\r\n return typeName;\r\n }\r\n\r\n // try converting using IConvertible\r\n return scope.convert.convertToType(scope.convert.typeCodes.String, value, formatProvider || null);\r\n },\r\n\r\n toNumberInBase: function (str, fromBase, typeCode) {\r\n if (fromBase !== 2 && fromBase !== 8 && fromBase !== 10 && fromBase !== 16) {\r\n throw new System.ArgumentException.$ctor1(\"Invalid Base.\");\r\n }\r\n\r\n var typeCodes = scope.convert.typeCodes;\r\n\r\n if (str == null) {\r\n if (typeCode === typeCodes.Int64) {\r\n return System.Int64.Zero;\r\n }\r\n\r\n if (typeCode === typeCodes.UInt64) {\r\n return System.UInt64.Zero;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n if (str.length === 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"length\", \"Index was out of range. Must be non-negative and less than the size of the collection.\");\r\n }\r\n\r\n // Let's process the string in lower case.\r\n str = str.toLowerCase();\r\n\r\n var minValue = scope.internal.getMinValue(typeCode),\r\n maxValue = scope.internal.getMaxValue(typeCode);\r\n\r\n // Calculate offset (start index)\r\n var isNegative = false,\r\n startIndex = 0;\r\n\r\n if (str[startIndex] === \"-\") {\r\n if (fromBase !== 10) {\r\n throw new System.ArgumentException.$ctor1(\"String cannot contain a minus sign if the base is not 10.\");\r\n }\r\n\r\n if (minValue >= 0) {\r\n throw new System.OverflowException.$ctor1(\"The string was being parsed as an unsigned number and could not have a negative sign.\");\r\n }\r\n\r\n isNegative = true;\r\n ++startIndex;\r\n } else if (str[startIndex] === \"+\") {\r\n ++startIndex;\r\n }\r\n\r\n if (fromBase === 16 && str.length >= 2 && str[startIndex] === \"0\" && str[startIndex + 1] === \"x\") {\r\n startIndex += 2;\r\n }\r\n\r\n // Fill allowed codes for the specified base:\r\n var allowedCodes;\r\n\r\n if (fromBase === 2) {\r\n allowedCodes = scope.internal.charsToCodes(\"01\");\r\n } else if (fromBase === 8) {\r\n allowedCodes = scope.internal.charsToCodes(\"01234567\");\r\n } else if (fromBase === 10) {\r\n allowedCodes = scope.internal.charsToCodes(\"0123456789\");\r\n } else if (fromBase === 16) {\r\n allowedCodes = scope.internal.charsToCodes(\"0123456789abcdef\");\r\n } else {\r\n throw new System.ArgumentException.$ctor1(\"Invalid Base.\");\r\n }\r\n\r\n // Create charCode-to-Value map\r\n var codeValues = {};\r\n\r\n for (var i = 0; i < allowedCodes.length; i++) {\r\n var allowedCode = allowedCodes[i];\r\n\r\n codeValues[allowedCode] = i;\r\n }\r\n\r\n var firstAllowed = allowedCodes[0],\r\n lastAllowed = allowedCodes[allowedCodes.length - 1],\r\n res,\r\n totalMax,\r\n code,\r\n j;\r\n\r\n if (typeCode === typeCodes.Int64 || typeCode === typeCodes.UInt64) {\r\n for (j = startIndex; j < str.length; j++) {\r\n code = str[j].charCodeAt(0);\r\n\r\n if (!(code >= firstAllowed && code <= lastAllowed)) {\r\n if (j === startIndex) {\r\n throw new System.FormatException.$ctor1(\"Could not find any recognizable digits.\");\r\n } else {\r\n throw new System.FormatException.$ctor1(\"Additional non-parsable characters are at the end of the string.\");\r\n }\r\n }\r\n }\r\n\r\n var isSign = typeCode === typeCodes.Int64;\r\n\r\n if (isSign) {\r\n res = new System.Int64(Bridge.$Long.fromString(str, false, fromBase));\r\n } else {\r\n res = new System.UInt64(Bridge.$Long.fromString(str, true, fromBase));\r\n }\r\n\r\n if (res.toString(fromBase) !== System.String.trimStartZeros(str)) {\r\n throw new System.OverflowException.$ctor1(\"Value was either too large or too small.\");\r\n }\r\n\r\n return res;\r\n } else {\r\n // Parse the number:\r\n res = 0;\r\n totalMax = maxValue - minValue + 1;\r\n\r\n for (j = startIndex; j < str.length; j++) {\r\n code = str[j].charCodeAt(0);\r\n\r\n if (code >= firstAllowed && code <= lastAllowed) {\r\n res *= fromBase;\r\n res += codeValues[code];\r\n\r\n if (res > scope.internal.typeRanges.Int64_MaxValue) {\r\n throw new System.OverflowException.$ctor1(\"Value was either too large or too small.\");\r\n }\r\n } else {\r\n if (j === startIndex) {\r\n throw new System.FormatException.$ctor1(\"Could not find any recognizable digits.\");\r\n } else {\r\n throw new System.FormatException.$ctor1(\"Additional non-parsable characters are at the end of the string.\");\r\n }\r\n }\r\n }\r\n\r\n if (isNegative) {\r\n res *= -1;\r\n }\r\n\r\n if (res > maxValue && fromBase !== 10 && minValue < 0) {\r\n // Assume that the value is negative, transform it:\r\n res = res - totalMax;\r\n }\r\n\r\n if (res < minValue || res > maxValue) {\r\n throw new System.OverflowException.$ctor1(\"Value was either too large or too small.\");\r\n }\r\n\r\n return res;\r\n }\r\n },\r\n\r\n toStringInBase: function (value, toBase, typeCode) {\r\n var typeCodes = scope.convert.typeCodes;\r\n\r\n value = Bridge.unbox(value, true);\r\n\r\n if (toBase !== 2 && toBase !== 8 && toBase !== 10 && toBase !== 16) {\r\n throw new System.ArgumentException.$ctor1(\"Invalid Base.\");\r\n }\r\n\r\n var minValue = scope.internal.getMinValue(typeCode),\r\n maxValue = scope.internal.getMaxValue(typeCode),\r\n special = System.Int64.is64Bit(value);\r\n\r\n if (special) {\r\n if (value.lt(minValue) || value.gt(maxValue)) {\r\n throw new System.OverflowException.$ctor1(\"Value was either too large or too small for an unsigned byte.\");\r\n }\r\n } else if (value < minValue || value > maxValue) {\r\n throw new System.OverflowException.$ctor1(\"Value was either too large or too small for an unsigned byte.\");\r\n }\r\n\r\n // Handle negative numbers:\r\n var isNegative = false;\r\n\r\n if (special) {\r\n if (toBase === 10) {\r\n return value.toString();\r\n } else {\r\n return value.value.toUnsigned().toString(toBase);\r\n }\r\n } else if (value < 0) {\r\n if (toBase === 10) {\r\n isNegative = true;\r\n value *= -1;\r\n } else {\r\n value = (maxValue + 1 - minValue) + value;\r\n }\r\n }\r\n\r\n // Fill allowed codes for the specified base:\r\n var allowedChars;\r\n\r\n if (toBase === 2) {\r\n allowedChars = \"01\";\r\n } else if (toBase === 8) {\r\n allowedChars = \"01234567\";\r\n } else if (toBase === 10) {\r\n allowedChars = \"0123456789\";\r\n } else if (toBase === 16) {\r\n allowedChars = \"0123456789abcdef\";\r\n } else {\r\n throw new System.ArgumentException.$ctor1(\"Invalid Base.\");\r\n }\r\n\r\n // Fill Value-To-Char map:\r\n var charByValues = {},\r\n allowedCharArr = allowedChars.split(\"\"),\r\n allowedChar;\r\n\r\n for (var i = 0; i < allowedCharArr.length; i++) {\r\n allowedChar = allowedCharArr[i];\r\n\r\n charByValues[i] = allowedChar;\r\n }\r\n\r\n // Parse the number:\r\n var res = \"\";\r\n\r\n if (value === 0 || (special && value.eq(0))) {\r\n res = \"0\";\r\n } else {\r\n var mod, char;\r\n\r\n if (special) {\r\n while (value.gt(0)) {\r\n mod = value.mod(toBase);\r\n value = value.sub(mod).div(toBase);\r\n\r\n char = charByValues[mod.toNumber()];\r\n res += char;\r\n }\r\n } else {\r\n while (value > 0) {\r\n mod = value % toBase;\r\n value = (value - mod) / toBase;\r\n\r\n char = charByValues[mod];\r\n res += char;\r\n }\r\n }\r\n }\r\n\r\n if (isNegative) {\r\n res += \"-\";\r\n }\r\n\r\n res = res.split(\"\").reverse().join(\"\");\r\n\r\n return res;\r\n },\r\n\r\n toBase64String: function (inArray, offset, length, options) {\r\n if (inArray == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"inArray\");\r\n }\r\n\r\n offset = offset || 0;\r\n length = length != null ? length : inArray.length;\r\n options = options || 0; // 0 - means \"None\", 1 - stands for \"InsertLineBreaks\"\r\n\r\n if (length < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"length\", \"Index was out of range. Must be non-negative and less than the size of the collection.\");\r\n }\r\n\r\n if (offset < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"offset\", \"Value must be positive.\");\r\n }\r\n\r\n if (options < 0 || options > 1) {\r\n throw new System.ArgumentException.$ctor1(\"Illegal enum value.\");\r\n }\r\n\r\n var inArrayLength = inArray.length;\r\n\r\n if (offset > (inArrayLength - length)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"offset\", \"Offset and length must refer to a position in the string.\");\r\n }\r\n\r\n if (inArrayLength === 0) {\r\n return \"\";\r\n }\r\n\r\n var insertLineBreaks = (options === 1),\r\n strArrayLen = scope.internal.toBase64_CalculateAndValidateOutputLength(length, insertLineBreaks);\r\n\r\n var strArray = [];\r\n strArray.length = strArrayLen;\r\n\r\n scope.internal.convertToBase64Array(strArray, inArray, offset, length, insertLineBreaks);\r\n\r\n var str = strArray.join(\"\");\r\n\r\n return str;\r\n },\r\n\r\n toBase64CharArray: function (inArray, offsetIn, length, outArray, offsetOut, options) {\r\n if (inArray == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"inArray\");\r\n }\r\n\r\n if (outArray == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"outArray\");\r\n }\r\n\r\n if (length < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"length\", \"Index was out of range. Must be non-negative and less than the size of the collection.\");\r\n }\r\n\r\n if (offsetIn < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"offsetIn\", \"Value must be positive.\");\r\n }\r\n\r\n if (offsetOut < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"offsetOut\", \"Value must be positive.\");\r\n }\r\n\r\n options = options || 0; // 0 - means \"None\", 1 - stands for \"InsertLineBreaks\"\r\n\r\n if (options < 0 || options > 1) {\r\n throw new System.ArgumentException.$ctor1(\"Illegal enum value.\");\r\n }\r\n\r\n var inArrayLength = inArray.length;\r\n\r\n if (offsetIn > inArrayLength - length) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"offsetIn\", \"Offset and length must refer to a position in the string.\");\r\n }\r\n\r\n if (inArrayLength === 0) {\r\n return 0;\r\n }\r\n\r\n var insertLineBreaks = options === 1,\r\n outArrayLength = outArray.length; //This is the maximally required length that must be available in the char array\r\n\r\n // Length of the char buffer required\r\n var numElementsToCopy = scope.internal.toBase64_CalculateAndValidateOutputLength(length, insertLineBreaks);\r\n\r\n if (offsetOut > (outArrayLength - numElementsToCopy)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"offsetOut\", \"Either offset did not refer to a position in the string, or there is an insufficient length of destination character array.\");\r\n }\r\n\r\n var charsArr = [],\r\n charsArrLength = scope.internal.convertToBase64Array(charsArr, inArray, offsetIn, length, insertLineBreaks);\r\n\r\n scope.internal.charsToCodes(charsArr, outArray, offsetOut);\r\n\r\n return charsArrLength;\r\n },\r\n\r\n fromBase64String: function (s) {\r\n // \"s\" is an unfortunate parameter name, but we need to keep it for backward compat.\r\n\r\n if (s == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"s\");\r\n }\r\n\r\n var sChars = s.split(\"\"),\r\n bytes = scope.internal.fromBase64CharPtr(sChars, 0, sChars.length);\r\n\r\n return bytes;\r\n },\r\n\r\n fromBase64CharArray: function (inArray, offset, length) {\r\n if (inArray == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"inArray\");\r\n }\r\n\r\n if (length < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"length\", \"Index was out of range. Must be non-negative and less than the size of the collection.\");\r\n }\r\n\r\n if (offset < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"offset\", \"Value must be positive.\");\r\n }\r\n\r\n if (offset > (inArray.length - length)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"offset\", \"Offset and length must refer to a position in the string.\");\r\n }\r\n\r\n var chars = scope.internal.codesToChars(inArray),\r\n bytes = scope.internal.fromBase64CharPtr(chars, offset, length);\r\n\r\n return bytes;\r\n },\r\n\r\n getTypeCode: function (t) {\r\n if (t == null) {\r\n return System.TypeCode.Object;\r\n }\r\n if (t === System.Double) {\r\n return System.TypeCode.Double;\r\n }\r\n if (t === System.Single) {\r\n return System.TypeCode.Single;\r\n }\r\n if (t === System.Decimal) {\r\n return System.TypeCode.Decimal;\r\n }\r\n if (t === System.Byte) {\r\n return System.TypeCode.Byte;\r\n }\r\n if (t === System.SByte) {\r\n return System.TypeCode.SByte;\r\n }\r\n if (t === System.UInt16) {\r\n return System.TypeCode.UInt16;\r\n }\r\n if (t === System.Int16) {\r\n return System.TypeCode.Int16;\r\n }\r\n if (t === System.UInt32) {\r\n return System.TypeCode.UInt32;\r\n }\r\n if (t === System.Int32) {\r\n return System.TypeCode.Int32;\r\n }\r\n if (t === System.UInt64) {\r\n return System.TypeCode.UInt64;\r\n }\r\n if (t === System.Int64) {\r\n return System.TypeCode.Int64;\r\n }\r\n if (t === System.Boolean) {\r\n return System.TypeCode.Boolean;\r\n }\r\n if (t === System.Char) {\r\n return System.TypeCode.Char;\r\n }\r\n if (t === System.DateTime) {\r\n return System.TypeCode.DateTime;\r\n }\r\n if (t === System.String) {\r\n return System.TypeCode.String;\r\n }\r\n return System.TypeCode.Object;\r\n },\r\n\r\n changeConversionType: function (value, conversionType, provider) {\r\n if (conversionType == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"conversionType\");\r\n }\r\n\r\n if (value == null) {\r\n if (Bridge.Reflection.isValueType(conversionType)) {\r\n throw new System.InvalidCastException.$ctor1(\"Null object cannot be converted to a value type.\");\r\n }\r\n return null;\r\n }\r\n\r\n var fromTypeCode = scope.convert.getTypeCode(Bridge.getType(value)),\r\n ic = Bridge.as(value, System.IConvertible);\r\n\r\n if (ic == null && fromTypeCode == System.TypeCode.Object) {\r\n if (Bridge.referenceEquals(Bridge.getType(value), conversionType)) {\r\n return value;\r\n }\r\n throw new System.InvalidCastException.$ctor1(\"Cannot convert to IConvertible\");\r\n }\r\n\r\n if (Bridge.referenceEquals(conversionType, scope.convert.convertTypes[System.Array.index(System.TypeCode.Boolean, scope.convert.convertTypes)])) {\r\n return ic == null ? scope.convert.toBoolean(value, provider) : ic.System$IConvertible$ToBoolean(provider);\r\n }\r\n if (Bridge.referenceEquals(conversionType, scope.convert.convertTypes[System.Array.index(System.TypeCode.Char, scope.convert.convertTypes)])) {\r\n return ic == null ? scope.convert.toChar(value, provider, fromTypeCode) : ic.System$IConvertible$ToChar(provider);\r\n }\r\n if (Bridge.referenceEquals(conversionType, scope.convert.convertTypes[System.Array.index(System.TypeCode.SByte, scope.convert.convertTypes)])) {\r\n return ic == null ? scope.convert.toSByte(value, provider, fromTypeCode) : ic.System$IConvertible$ToSByte(provider);\r\n }\r\n if (Bridge.referenceEquals(conversionType, scope.convert.convertTypes[System.Array.index(System.TypeCode.Byte, scope.convert.convertTypes)])) {\r\n return ic == null ? scope.convert.toByte(value, provider) : ic.System$IConvertible$ToByte(provider);\r\n }\r\n if (Bridge.referenceEquals(conversionType, scope.convert.convertTypes[System.Array.index(System.TypeCode.Int16, scope.convert.convertTypes)])) {\r\n return ic == null ? scope.convert.toInt16(value, provider) : ic.System$IConvertible$ToInt16(provider);\r\n }\r\n if (Bridge.referenceEquals(conversionType, scope.convert.convertTypes[System.Array.index(System.TypeCode.UInt16, scope.convert.convertTypes)])) {\r\n return ic == null ? scope.convert.toUInt16(value, provider) : ic.System$IConvertible$ToUInt16(provider);\r\n }\r\n if (Bridge.referenceEquals(conversionType, scope.convert.convertTypes[System.Array.index(System.TypeCode.Int32, scope.convert.convertTypes)])) {\r\n return ic == null ? scope.convert.toInt32(value, provider) : ic.System$IConvertible$ToInt32(provider);\r\n }\r\n if (Bridge.referenceEquals(conversionType, scope.convert.convertTypes[System.Array.index(System.TypeCode.UInt32, scope.convert.convertTypes)])) {\r\n return ic == null ? scope.convert.toUInt32(value, provider) : ic.System$IConvertible$ToUInt32(provider);\r\n }\r\n if (Bridge.referenceEquals(conversionType, scope.convert.convertTypes[System.Array.index(System.TypeCode.Int64, scope.convert.convertTypes)])) {\r\n return ic == null ? scope.convert.toInt64(value, provider) : ic.System$IConvertible$ToInt64(provider);\r\n }\r\n if (Bridge.referenceEquals(conversionType, scope.convert.convertTypes[System.Array.index(System.TypeCode.UInt64, scope.convert.convertTypes)])) {\r\n return ic == null ? scope.convert.toUInt64(value, provider) : ic.System$IConvertible$ToUInt64(provider);\r\n }\r\n if (Bridge.referenceEquals(conversionType, scope.convert.convertTypes[System.Array.index(System.TypeCode.Single, scope.convert.convertTypes)])) {\r\n return ic == null ? scope.convert.toSingle(value, provider) : ic.System$IConvertible$ToSingle(provider);\r\n }\r\n if (Bridge.referenceEquals(conversionType, scope.convert.convertTypes[System.Array.index(System.TypeCode.Double, scope.convert.convertTypes)])) {\r\n return ic == null ? scope.convert.toDouble(value, provider) : ic.System$IConvertible$ToDouble(provider);\r\n }\r\n if (Bridge.referenceEquals(conversionType, scope.convert.convertTypes[System.Array.index(System.TypeCode.Decimal, scope.convert.convertTypes)])) {\r\n return ic == null ? scope.convert.toDecimal(value, provider) : ic.System$IConvertible$ToDecimal(provider);\r\n }\r\n if (Bridge.referenceEquals(conversionType, scope.convert.convertTypes[System.Array.index(System.TypeCode.DateTime, scope.convert.convertTypes)])) {\r\n return ic == null ? scope.convert.toDateTime(value, provider) : ic.System$IConvertible$ToDateTime(provider);\r\n }\r\n if (Bridge.referenceEquals(conversionType, scope.convert.convertTypes[System.Array.index(System.TypeCode.String, scope.convert.convertTypes)])) {\r\n return ic == null ? scope.convert.toString(value, provider, fromTypeCode) : ic.System$IConvertible$ToString(provider);\r\n }\r\n if (Bridge.referenceEquals(conversionType, scope.convert.convertTypes[System.Array.index(System.TypeCode.Object, scope.convert.convertTypes)])) {\r\n return value;\r\n }\r\n\r\n if (ic == null) {\r\n throw new System.InvalidCastException.$ctor1(\"Cannot convert to IConvertible\");\r\n }\r\n\r\n return ic.System$IConvertible$ToType(conversionType, provider);\r\n },\r\n\r\n changeType: function (value, typeCode, formatProvider) {\r\n if (Bridge.isFunction(typeCode)) {\r\n return scope.convert.changeConversionType(value, typeCode, formatProvider);\r\n }\r\n\r\n if (value == null && (typeCode === System.TypeCode.Empty || typeCode === System.TypeCode.String || typeCode === System.TypeCode.Object)) {\r\n return null;\r\n }\r\n\r\n var fromTypeCode = scope.convert.getTypeCode(Bridge.getType(value)),\r\n v = Bridge.as(value, System.IConvertible);\r\n\r\n if (v == null && fromTypeCode == System.TypeCode.Object) {\r\n throw new System.InvalidCastException.$ctor1(\"Cannot convert to IConvertible\");\r\n }\r\n\r\n switch (typeCode) {\r\n case System.TypeCode.Boolean:\r\n return v == null ? scope.convert.toBoolean(value, formatProvider) : v.System$IConvertible$ToBoolean(provider);\r\n case System.TypeCode.Char:\r\n return v == null ? scope.convert.toChar(value, formatProvider, fromTypeCode) : v.System$IConvertible$ToChar(provider);\r\n case System.TypeCode.SByte:\r\n return v == null ? scope.convert.toSByte(value, formatProvider, fromTypeCode) : v.System$IConvertible$ToSByte(provider);\r\n case System.TypeCode.Byte:\r\n return v == null ? scope.convert.toByte(value, formatProvider, fromTypeCode) : v.System$IConvertible$ToByte(provider);\r\n case System.TypeCode.Int16:\r\n return v == null ? scope.convert.toInt16(value, formatProvider) : v.System$IConvertible$ToInt16(provider);\r\n case System.TypeCode.UInt16:\r\n return v == null ? scope.convert.toUInt16(value, formatProvider) : v.System$IConvertible$ToUInt16(provider);\r\n case System.TypeCode.Int32:\r\n return v == null ? scope.convert.toInt32(value, formatProvider) : v.System$IConvertible$ToInt32(provider);\r\n case System.TypeCode.UInt32:\r\n return v == null ? scope.convert.toUInt32(value, formatProvider) : v.System$IConvertible$ToUInt32(provider);\r\n case System.TypeCode.Int64:\r\n return v == null ? scope.convert.toInt64(value, formatProvider) : v.System$IConvertible$ToInt64(provider);\r\n case System.TypeCode.UInt64:\r\n return v == null ? scope.convert.toUInt64(value, formatProvider) : v.System$IConvertible$ToUInt64(provider);\r\n case System.TypeCode.Single:\r\n return v == null ? scope.convert.toSingle(value, formatProvider) : v.System$IConvertible$ToSingle(provider);\r\n case System.TypeCode.Double:\r\n return v == null ? scope.convert.toDouble(value, formatProvider) : v.System$IConvertible$ToDouble(provider);\r\n case System.TypeCode.Decimal:\r\n return v == null ? scope.convert.toDecimal(value, formatProvider) : v.System$IConvertible$ToDecimal(provider);\r\n case System.TypeCode.DateTime:\r\n return v == null ? scope.convert.toDateTime(value, formatProvider) : v.System$IConvertible$ToDateTime(provider);\r\n case System.TypeCode.String:\r\n return v == null ? scope.convert.toString(value, formatProvider, fromTypeCode) : v.System$IConvertible$ToString(provider);\r\n case System.TypeCode.Object:\r\n return value;\r\n case System.TypeCode.DBNull:\r\n throw new System.InvalidCastException.$ctor1(\"Cannot convert DBNull values\");\r\n case System.TypeCode.Empty:\r\n throw new System.InvalidCastException.$ctor1(\"Cannot convert Empty values\");\r\n default:\r\n throw new System.ArgumentException.$ctor1(\"Unknown type code\");\r\n }\r\n }\r\n };\r\n\r\n scope.internal = {\r\n base64Table: [\r\n \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\",\r\n \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"a\", \"b\", \"c\", \"d\",\r\n \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\",\r\n \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\",\r\n \"8\", \"9\", \"+\", \"/\", \"=\"\r\n ],\r\n\r\n typeRanges: {\r\n Char_MinValue: 0,\r\n Char_MaxValue: 65535,\r\n\r\n Byte_MinValue: 0,\r\n Byte_MaxValue: 255,\r\n\r\n SByte_MinValue: -128,\r\n SByte_MaxValue: 127,\r\n\r\n Int16_MinValue: -32768,\r\n Int16_MaxValue: 32767,\r\n\r\n UInt16_MinValue: 0,\r\n UInt16_MaxValue: 65535,\r\n\r\n Int32_MinValue: -2147483648,\r\n Int32_MaxValue: 2147483647,\r\n\r\n UInt32_MinValue: 0,\r\n UInt32_MaxValue: 4294967295,\r\n\r\n Int64_MinValue: System.Int64.MinValue,\r\n Int64_MaxValue: System.Int64.MaxValue,\r\n\r\n UInt64_MinValue: System.UInt64.MinValue,\r\n UInt64_MaxValue: System.UInt64.MaxValue,\r\n\r\n Single_MinValue: -3.40282347e+38,\r\n Single_MaxValue: 3.40282347e+38,\r\n\r\n Double_MinValue: -1.7976931348623157e+308,\r\n Double_MaxValue: 1.7976931348623157e+308,\r\n\r\n Decimal_MinValue: System.Decimal.MinValue,\r\n Decimal_MaxValue: System.Decimal.MaxValue\r\n },\r\n\r\n base64LineBreakPosition: 76,\r\n\r\n getTypeCodeName: function (typeCode) {\r\n var typeCodes = scope.convert.typeCodes;\r\n\r\n if (scope.internal.typeCodeNames == null) {\r\n var names = {};\r\n\r\n for (var codeName in typeCodes) {\r\n if (!typeCodes.hasOwnProperty(codeName)) {\r\n continue;\r\n }\r\n\r\n var codeValue = typeCodes[codeName];\r\n\r\n names[codeValue] = codeName;\r\n }\r\n scope.internal.typeCodeNames = names;\r\n }\r\n\r\n var name = scope.internal.typeCodeNames[typeCode];\r\n\r\n if (name == null) {\r\n throw System.ArgumentOutOfRangeException(\"typeCode\", \"The specified typeCode is undefined.\");\r\n }\r\n\r\n return name;\r\n },\r\n\r\n suggestTypeCode: function (value) {\r\n var typeCodes = scope.convert.typeCodes,\r\n type = typeof (value);\r\n\r\n switch (type) {\r\n case \"boolean\":\r\n return typeCodes.Boolean;\r\n\r\n case \"number\":\r\n if (value % 1 !== 0) {\r\n return typeCodes.Double;\r\n }\r\n\r\n return typeCodes.Int32;\r\n\r\n case \"string\":\r\n return typeCodes.String;\r\n\r\n case \"object\":\r\n if (Bridge.isDate(value)) {\r\n return typeCodes.DateTime;\r\n }\r\n\r\n if (value != null) {\r\n return typeCodes.Object;\r\n }\r\n\r\n break;\r\n }\r\n return null;\r\n },\r\n\r\n getMinValue: function (typeCode) {\r\n var typeCodes = scope.convert.typeCodes;\r\n\r\n switch (typeCode) {\r\n case typeCodes.Char:\r\n return scope.internal.typeRanges.Char_MinValue;\r\n case typeCodes.SByte:\r\n return scope.internal.typeRanges.SByte_MinValue;\r\n case typeCodes.Byte:\r\n return scope.internal.typeRanges.Byte_MinValue;\r\n case typeCodes.Int16:\r\n return scope.internal.typeRanges.Int16_MinValue;\r\n case typeCodes.UInt16:\r\n return scope.internal.typeRanges.UInt16_MinValue;\r\n case typeCodes.Int32:\r\n return scope.internal.typeRanges.Int32_MinValue;\r\n case typeCodes.UInt32:\r\n return scope.internal.typeRanges.UInt32_MinValue;\r\n case typeCodes.Int64:\r\n return scope.internal.typeRanges.Int64_MinValue;\r\n case typeCodes.UInt64:\r\n return scope.internal.typeRanges.UInt64_MinValue;\r\n case typeCodes.Single:\r\n return scope.internal.typeRanges.Single_MinValue;\r\n case typeCodes.Double:\r\n return scope.internal.typeRanges.Double_MinValue;\r\n case typeCodes.Decimal:\r\n return scope.internal.typeRanges.Decimal_MinValue;\r\n case typeCodes.DateTime:\r\n return System.DateTime.getMinValue();\r\n\r\n default:\r\n return null;\r\n }\r\n },\r\n\r\n getMaxValue: function (typeCode) {\r\n var typeCodes = scope.convert.typeCodes;\r\n\r\n switch (typeCode) {\r\n case typeCodes.Char:\r\n return scope.internal.typeRanges.Char_MaxValue;\r\n case typeCodes.SByte:\r\n return scope.internal.typeRanges.SByte_MaxValue;\r\n case typeCodes.Byte:\r\n return scope.internal.typeRanges.Byte_MaxValue;\r\n case typeCodes.Int16:\r\n return scope.internal.typeRanges.Int16_MaxValue;\r\n case typeCodes.UInt16:\r\n return scope.internal.typeRanges.UInt16_MaxValue;\r\n case typeCodes.Int32:\r\n return scope.internal.typeRanges.Int32_MaxValue;\r\n case typeCodes.UInt32:\r\n return scope.internal.typeRanges.UInt32_MaxValue;\r\n case typeCodes.Int64:\r\n return scope.internal.typeRanges.Int64_MaxValue;\r\n case typeCodes.UInt64:\r\n return scope.internal.typeRanges.UInt64_MaxValue;\r\n case typeCodes.Single:\r\n return scope.internal.typeRanges.Single_MaxValue;\r\n case typeCodes.Double:\r\n return scope.internal.typeRanges.Double_MaxValue;\r\n case typeCodes.Decimal:\r\n return scope.internal.typeRanges.Decimal_MaxValue;\r\n case typeCodes.DateTime:\r\n return System.DateTime.getMaxValue();\r\n default:\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"typeCode\", \"The specified typeCode is undefined.\");\r\n }\r\n },\r\n\r\n isFloatingType: function (typeCode) {\r\n var typeCodes = scope.convert.typeCodes,\r\n isFloatingType =\r\n typeCode === typeCodes.Single ||\r\n typeCode === typeCodes.Double ||\r\n typeCode === typeCodes.Decimal;\r\n\r\n return isFloatingType;\r\n },\r\n\r\n toNumber: function (value, formatProvider, typeCode, valueTypeCode) {\r\n value = Bridge.unbox(value, true);\r\n\r\n var typeCodes = scope.convert.typeCodes,\r\n type = typeof (value),\r\n isFloating = scope.internal.isFloatingType(typeCode);\r\n\r\n if (valueTypeCode === typeCodes.String) {\r\n type = \"string\";\r\n }\r\n\r\n if (System.Int64.is64Bit(value) || value instanceof System.Decimal) {\r\n type = \"number\";\r\n }\r\n\r\n switch (type) {\r\n case \"boolean\":\r\n return value ? 1 : 0;\r\n\r\n case \"number\":\r\n if (typeCode === typeCodes.Decimal) {\r\n scope.internal.validateNumberRange(value, typeCode, true);\r\n\r\n return new System.Decimal(value, formatProvider);\r\n }\r\n\r\n if (typeCode === typeCodes.Int64) {\r\n scope.internal.validateNumberRange(value, typeCode, true);\r\n\r\n return new System.Int64(value);\r\n }\r\n\r\n if (typeCode === typeCodes.UInt64) {\r\n scope.internal.validateNumberRange(value, typeCode, true);\r\n\r\n return new System.UInt64(value);\r\n }\r\n\r\n if (System.Int64.is64Bit(value)) {\r\n value = value.toNumber();\r\n } else if (value instanceof System.Decimal) {\r\n value = value.toFloat();\r\n }\r\n\r\n if (!isFloating && (value % 1 !== 0)) {\r\n value = scope.internal.roundToInt(value, typeCode);\r\n }\r\n\r\n if (isFloating) {\r\n var minValue = scope.internal.getMinValue(typeCode),\r\n maxValue = scope.internal.getMaxValue(typeCode);\r\n\r\n if (value > maxValue) {\r\n value = Infinity;\r\n } else if (value < minValue) {\r\n value = -Infinity;\r\n }\r\n }\r\n\r\n scope.internal.validateNumberRange(value, typeCode, false);\r\n return value;\r\n\r\n case \"string\":\r\n if (value == null) {\r\n if (formatProvider != null) {\r\n throw new System.ArgumentNullException.$ctor3(\"String\", \"Value cannot be null.\");\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n if (isFloating) {\r\n var nfInfo = (formatProvider || System.Globalization.CultureInfo.getCurrentCulture()).getFormat(System.Globalization.NumberFormatInfo),\r\n point = nfInfo.numberDecimalSeparator;\r\n\r\n if (typeCode === typeCodes.Decimal) {\r\n if (!new RegExp(\"^[+-]?(\\\\d+|\\\\d+.|\\\\d*\\\\\" + point +\"\\\\d+)$\").test(value)) {\r\n if (!/^[+-]?[0-9]+$/.test(value)) {\r\n throw new System.FormatException.$ctor1(\"Input string was not in a correct format.\");\r\n }\r\n }\r\n\r\n value = new System.Decimal(value, formatProvider);\r\n } else {\r\n if (!new RegExp(\"^[-+]?[0-9]*\\\\\" + point +\"?[0-9]+([eE][-+]?[0-9]+)?$\").test(value)) {\r\n throw new System.FormatException.$ctor1(\"Input string was not in a correct format.\");\r\n }\r\n\r\n value = Bridge.Int.parseFloat(value, formatProvider);\r\n }\r\n } else {\r\n if (!/^[+-]?[0-9]+$/.test(value)) {\r\n throw new System.FormatException.$ctor1(\"Input string was not in a correct format.\");\r\n }\r\n\r\n var str = value;\r\n\r\n if (typeCode === typeCodes.Int64) {\r\n value = new System.Int64(value);\r\n\r\n if (System.String.trimStartZeros(str) !== value.toString()) {\r\n this.throwOverflow(scope.internal.getTypeCodeName(typeCode));\r\n }\r\n } else if (typeCode === typeCodes.UInt64) {\r\n value = new System.UInt64(value);\r\n\r\n if (System.String.trimStartZeros(str) !== value.toString()) {\r\n this.throwOverflow(scope.internal.getTypeCodeName(typeCode));\r\n }\r\n } else {\r\n value = parseInt(value, 10);\r\n }\r\n }\r\n\r\n if (isNaN(value)) {\r\n throw new System.FormatException.$ctor1(\"Input string was not in a correct format.\");\r\n }\r\n\r\n scope.internal.validateNumberRange(value, typeCode, true);\r\n\r\n return value;\r\n\r\n case \"object\":\r\n if (value == null) {\r\n return 0;\r\n }\r\n\r\n if (Bridge.isDate(value)) {\r\n scope.internal.throwInvalidCastEx(scope.convert.typeCodes.DateTime, typeCode);\r\n }\r\n\r\n break;\r\n }\r\n\r\n // TODO: #822 When IConvertible is implemented, try it before throwing InvalidCastEx\r\n valueTypeCode = valueTypeCode || scope.internal.suggestTypeCode(value);\r\n scope.internal.throwInvalidCastEx(valueTypeCode, typeCode);\r\n\r\n // try converting using IConvertible\r\n return scope.convert.convertToType(typeCode, value, formatProvider);\r\n },\r\n\r\n validateNumberRange: function (value, typeCode, denyInfinity) {\r\n var typeCodes = scope.convert.typeCodes,\r\n minValue = scope.internal.getMinValue(typeCode),\r\n maxValue = scope.internal.getMaxValue(typeCode),\r\n typeName = scope.internal.getTypeCodeName(typeCode);\r\n\r\n if (typeCode === typeCodes.Single ||\r\n typeCode === typeCodes.Double) {\r\n if (!denyInfinity && (value === Infinity || value === -Infinity)) {\r\n return;\r\n }\r\n }\r\n\r\n if (typeCode === typeCodes.Decimal || typeCode === typeCodes.Int64 || typeCode === typeCodes.UInt64) {\r\n if (typeCode === typeCodes.Decimal) {\r\n if (!System.Int64.is64Bit(value)) {\r\n if (minValue.gt(value) || maxValue.lt(value)) {\r\n this.throwOverflow(typeName);\r\n }\r\n }\r\n\r\n value = new System.Decimal(value);\r\n } else if (typeCode === typeCodes.Int64) {\r\n if (value instanceof System.UInt64) {\r\n if (value.gt(System.Int64.MaxValue)) {\r\n this.throwOverflow(typeName);\r\n }\r\n } else if (value instanceof System.Decimal) {\r\n if ((value.gt(new System.Decimal(maxValue)) || value.lt(new System.Decimal(minValue)))) {\r\n this.throwOverflow(typeName);\r\n }\r\n } else if (!(value instanceof System.Int64)) {\r\n if (minValue.toNumber() > value || maxValue.toNumber() < value) {\r\n this.throwOverflow(typeName);\r\n }\r\n }\r\n\r\n value = new System.Int64(value);\r\n } else if (typeCode === typeCodes.UInt64) {\r\n if (value instanceof System.Int64) {\r\n if (value.isNegative()) {\r\n this.throwOverflow(typeName);\r\n }\r\n } else if (value instanceof System.Decimal) {\r\n if ((value.gt(new System.Decimal(maxValue)) || value.lt(new System.Decimal(minValue)))) {\r\n this.throwOverflow(typeName);\r\n }\r\n } else if (!(value instanceof System.UInt64)) {\r\n if (minValue.toNumber() > value || maxValue.toNumber() < value) {\r\n this.throwOverflow(typeName);\r\n }\r\n }\r\n\r\n value = new System.UInt64(value);\r\n }\r\n } else if (value < minValue || value > maxValue) {\r\n this.throwOverflow(typeName);\r\n }\r\n },\r\n\r\n throwOverflow: function (typeName) {\r\n throw new System.OverflowException.$ctor1(\"Value was either too large or too small for '\" + typeName + \"'.\");\r\n },\r\n\r\n roundToInt: function (value, typeCode) {\r\n if (value % 1 === 0) {\r\n return value;\r\n }\r\n\r\n var intPart;\r\n\r\n if (value >= 0) {\r\n intPart = Math.floor(value);\r\n } else {\r\n intPart = -1 * Math.floor(-value);\r\n }\r\n\r\n var floatPart = value - intPart,\r\n minValue = scope.internal.getMinValue(typeCode),\r\n maxValue = scope.internal.getMaxValue(typeCode);\r\n\r\n if (value >= 0.0) {\r\n if (value < (maxValue + 0.5)) {\r\n if (floatPart > 0.5 || floatPart === 0.5 && (intPart & 1) !== 0) {\r\n ++intPart;\r\n }\r\n\r\n return intPart;\r\n }\r\n } else if (value >= (minValue - 0.5)) {\r\n if (floatPart < -0.5 || floatPart === -0.5 && (intPart & 1) !== 0) {\r\n --intPart;\r\n }\r\n\r\n return intPart;\r\n }\r\n\r\n var typeName = scope.internal.getTypeCodeName(typeCode);\r\n\r\n throw new System.OverflowException.$ctor1(\"Value was either too large or too small for an '\" + typeName + \"'.\");\r\n },\r\n\r\n toBase64_CalculateAndValidateOutputLength: function (inputLength, insertLineBreaks) {\r\n var base64LineBreakPosition = scope.internal.base64LineBreakPosition,\r\n outlen = ~~(inputLength / 3) * 4; // the base length - we want integer division here.\r\n\r\n outlen += ((inputLength % 3) !== 0) ? 4 : 0; // at most 4 more chars for the remainder\r\n\r\n if (outlen === 0) {\r\n return 0;\r\n }\r\n\r\n if (insertLineBreaks) {\r\n var newLines = ~~(outlen / base64LineBreakPosition);\r\n\r\n if ((outlen % base64LineBreakPosition) === 0) {\r\n --newLines;\r\n }\r\n\r\n outlen += newLines * 2; // the number of line break chars we'll add, \"\\r\\n\"\r\n }\r\n\r\n // If we overflow an int then we cannot allocate enough\r\n // memory to output the value so throw\r\n if (outlen > 2147483647) {\r\n throw new System.OutOfMemoryException();\r\n }\r\n\r\n return outlen;\r\n },\r\n\r\n convertToBase64Array: function (outChars, inData, offset, length, insertLineBreaks) {\r\n var base64Table = scope.internal.base64Table,\r\n base64LineBreakPosition = scope.internal.base64LineBreakPosition,\r\n lengthmod3 = length % 3,\r\n calcLength = offset + (length - lengthmod3),\r\n charCount = 0,\r\n j = 0;\r\n\r\n // Convert three bytes at a time to base64 notation. This will consume 4 chars.\r\n var i;\r\n\r\n for (i = offset; i < calcLength; i += 3) {\r\n if (insertLineBreaks) {\r\n if (charCount === base64LineBreakPosition) {\r\n outChars[j++] = \"\\r\";\r\n outChars[j++] = \"\\n\";\r\n charCount = 0;\r\n }\r\n\r\n charCount += 4;\r\n }\r\n\r\n outChars[j] = base64Table[(inData[i] & 0xfc) >> 2];\r\n outChars[j + 1] = base64Table[((inData[i] & 0x03) << 4) | ((inData[i + 1] & 0xf0) >> 4)];\r\n outChars[j + 2] = base64Table[((inData[i + 1] & 0x0f) << 2) | ((inData[i + 2] & 0xc0) >> 6)];\r\n outChars[j + 3] = base64Table[(inData[i + 2] & 0x3f)];\r\n j += 4;\r\n }\r\n\r\n //Where we left off before\r\n i = calcLength;\r\n\r\n if (insertLineBreaks && (lengthmod3 !== 0) && (charCount === scope.internal.base64LineBreakPosition)) {\r\n outChars[j++] = \"\\r\";\r\n outChars[j++] = \"\\n\";\r\n }\r\n\r\n switch (lengthmod3) {\r\n case 2: //One character padding needed\r\n outChars[j] = base64Table[(inData[i] & 0xfc) >> 2];\r\n outChars[j + 1] = base64Table[((inData[i] & 0x03) << 4) | ((inData[i + 1] & 0xf0) >> 4)];\r\n outChars[j + 2] = base64Table[(inData[i + 1] & 0x0f) << 2];\r\n outChars[j + 3] = base64Table[64]; //Pad\r\n j += 4;\r\n\r\n break;\r\n\r\n case 1: // Two character padding needed\r\n outChars[j] = base64Table[(inData[i] & 0xfc) >> 2];\r\n outChars[j + 1] = base64Table[(inData[i] & 0x03) << 4];\r\n outChars[j + 2] = base64Table[64]; //Pad\r\n outChars[j + 3] = base64Table[64]; //Pad\r\n j += 4;\r\n\r\n break;\r\n }\r\n\r\n return j;\r\n },\r\n\r\n fromBase64CharPtr: function (input, offset, inputLength) {\r\n if (inputLength < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"inputLength\", \"Index was out of range. Must be non-negative and less than the size of the collection.\");\r\n }\r\n\r\n if (offset < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"offset\", \"Value must be positive.\");\r\n }\r\n\r\n // We need to get rid of any trailing white spaces.\r\n // Otherwise we would be rejecting input such as \"abc= \":\r\n while (inputLength > 0) {\r\n var lastChar = input[offset + inputLength - 1];\r\n\r\n if (lastChar !== \" \" && lastChar !== \"\\n\" && lastChar !== \"\\r\" && lastChar !== \"\\t\") {\r\n break;\r\n }\r\n\r\n inputLength--;\r\n }\r\n\r\n // Compute the output length:\r\n var resultLength = scope.internal.fromBase64_ComputeResultLength(input, offset, inputLength);\r\n\r\n if (0 > resultLength) {\r\n throw new System.InvalidOperationException.$ctor1(\"Contract voilation: 0 <= resultLength.\");\r\n }\r\n\r\n // resultLength can be zero. We will still enter FromBase64_Decode and process the input.\r\n // It may either simply write no bytes (e.g. input = \" \") or throw (e.g. input = \"ab\").\r\n\r\n // Create result byte blob:\r\n var decodedBytes = [];\r\n decodedBytes.length = resultLength;\r\n\r\n // Convert Base64 chars into bytes:\r\n scope.internal.fromBase64_Decode(input, offset, inputLength, decodedBytes, 0, resultLength);\r\n\r\n // We are done:\r\n return decodedBytes;\r\n },\r\n\r\n fromBase64_Decode: function (input, inputIndex, inputLength, dest, destIndex, destLength) {\r\n var startDestIndex = destIndex;\r\n\r\n // You may find this method weird to look at. ItÂ’s written for performance, not aesthetics.\r\n // You will find unrolled loops label jumps and bit manipulations.\r\n\r\n var intA = \"A\".charCodeAt(0),\r\n inta = \"a\".charCodeAt(0),\r\n int0 = \"0\".charCodeAt(0),\r\n intEq = \"=\".charCodeAt(0),\r\n intPlus = \"+\".charCodeAt(0),\r\n intSlash = \"/\".charCodeAt(0),\r\n intSpace = \" \".charCodeAt(0),\r\n intTab = \"\\t\".charCodeAt(0),\r\n intNLn = \"\\n\".charCodeAt(0),\r\n intCRt = \"\\r\".charCodeAt(0),\r\n intAtoZ = (\"Z\".charCodeAt(0) - \"A\".charCodeAt(0)),\r\n int0To9 = (\"9\".charCodeAt(0) - \"0\".charCodeAt(0));\r\n\r\n var endInputIndex = inputIndex + inputLength,\r\n endDestIndex = destIndex + destLength;\r\n\r\n // Current char code/value:\r\n var currCode;\r\n\r\n // This 4-byte integer will contain the 4 codes of the current 4-char group.\r\n // Eeach char codes for 6 bits = 24 bits.\r\n // The remaining byte will be FF, we use it as a marker when 4 chars have been processed.\r\n var currBlockCodes = 0x000000FF;\r\n\r\n var allInputConsumed = false,\r\n equalityCharEncountered = false;\r\n\r\n while (true) {\r\n // break when done:\r\n if (inputIndex >= endInputIndex) {\r\n allInputConsumed = true;\r\n\r\n break;\r\n }\r\n\r\n // Get current char:\r\n currCode = input[inputIndex].charCodeAt(0);\r\n inputIndex++;\r\n\r\n // Determine current char code (unsigned Int comparison):\r\n if (((currCode - intA) >>> 0) <= intAtoZ) {\r\n currCode -= intA;\r\n } else if (((currCode - inta) >>> 0) <= intAtoZ) {\r\n currCode -= (inta - 26);\r\n } else if (((currCode - int0) >>> 0) <= int0To9) {\r\n currCode -= (int0 - 52);\r\n } else {\r\n // Use the slower switch for less common cases:\r\n switch (currCode) {\r\n // Significant chars:\r\n case intPlus:\r\n currCode = 62;\r\n\r\n break;\r\n\r\n case intSlash:\r\n currCode = 63;\r\n\r\n break;\r\n\r\n // Legal no-value chars (we ignore these):\r\n case intCRt:\r\n case intNLn:\r\n case intSpace:\r\n case intTab:\r\n continue;\r\n\r\n // The equality char is only legal at the end of the input.\r\n // Jump after the loop to make it easier for the JIT register predictor to do a good job for the loop itself:\r\n case intEq:\r\n equalityCharEncountered = true;\r\n\r\n break;\r\n\r\n // Other chars are illegal:\r\n default:\r\n throw new System.FormatException.$ctor1(\"The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.\");\r\n }\r\n }\r\n\r\n if (equalityCharEncountered) {\r\n break;\r\n }\r\n\r\n // Ok, we got the code. Save it:\r\n currBlockCodes = (currBlockCodes << 6) | currCode;\r\n\r\n // Last bit in currBlockCodes will be on after in shifted right 4 times:\r\n if ((currBlockCodes & 0x80000000) !== 0) {\r\n if ((endDestIndex - destIndex) < 3) {\r\n return -1;\r\n }\r\n\r\n dest[destIndex] = 0xFF & (currBlockCodes >> 16);\r\n dest[destIndex + 1] = 0xFF & (currBlockCodes >> 8);\r\n dest[destIndex + 2] = 0xFF & (currBlockCodes);\r\n destIndex += 3;\r\n\r\n currBlockCodes = 0x000000FF;\r\n }\r\n } // end of while\r\n\r\n if (!allInputConsumed && !equalityCharEncountered) {\r\n throw new System.InvalidOperationException.$ctor1(\"Contract violation: should never get here.\");\r\n }\r\n\r\n if (equalityCharEncountered) {\r\n if (currCode !== intEq) {\r\n throw new System.InvalidOperationException.$ctor1(\"Contract violation: currCode == intEq.\");\r\n }\r\n\r\n // Recall that inputIndex is now one position past where '=' was read.\r\n // '=' can only be at the last input pos:\r\n if (inputIndex === endInputIndex) {\r\n // Code is zero for trailing '=':\r\n currBlockCodes <<= 6;\r\n\r\n // The '=' did not complete a 4-group. The input must be bad:\r\n if ((currBlockCodes & 0x80000000) === 0) {\r\n throw new System.FormatException.$ctor1(\"Invalid length for a Base-64 char array or string.\");\r\n }\r\n\r\n if ((endDestIndex - destIndex) < 2) {\r\n // Autch! We underestimated the output length!\r\n return -1;\r\n }\r\n\r\n // We are good, store bytes form this past group. We had a single \"=\", so we take two bytes:\r\n dest[destIndex] = 0xFF & (currBlockCodes >> 16);\r\n dest[destIndex + 1] = 0xFF & (currBlockCodes >> 8);\r\n destIndex += 2;\r\n\r\n currBlockCodes = 0x000000FF;\r\n } else { // '=' can also be at the pre-last position iff the last is also a '=' excluding the white spaces:\r\n // We need to get rid of any intermediate white spaces.\r\n // Otherwise we would be rejecting input such as \"abc= =\":\r\n while (inputIndex < (endInputIndex - 1)) {\r\n var lastChar = input[inputIndex];\r\n\r\n if (lastChar !== \" \" && lastChar !== \"\\n\" && lastChar !== \"\\r\" && lastChar !== \"\\t\") {\r\n break;\r\n }\r\n\r\n inputIndex++;\r\n }\r\n\r\n if (inputIndex === (endInputIndex - 1) && input[inputIndex] === \"=\") {\r\n // Code is zero for each of the two '=':\r\n currBlockCodes <<= 12;\r\n\r\n // The '=' did not complete a 4-group. The input must be bad:\r\n if ((currBlockCodes & 0x80000000) === 0) {\r\n throw new System.FormatException.$ctor1(\"Invalid length for a Base-64 char array or string.\");\r\n }\r\n\r\n if ((endDestIndex - destIndex) < 1) {\r\n // Autch! We underestimated the output length!\r\n return -1;\r\n }\r\n\r\n // We are good, store bytes form this past group. We had a \"==\", so we take only one byte:\r\n dest[destIndex] = 0xFF & (currBlockCodes >> 16);\r\n destIndex++;\r\n\r\n currBlockCodes = 0x000000FF;\r\n } else {\r\n // '=' is not ok at places other than the end:\r\n throw new System.FormatException.$ctor1(\"The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.\");\r\n }\r\n }\r\n }\r\n\r\n // We get here either from above or by jumping out of the loop:\r\n // The last block of chars has less than 4 items\r\n if (currBlockCodes !== 0x000000FF) {\r\n throw new System.FormatException.$ctor1(\"Invalid length for a Base-64 char array or string.\");\r\n }\r\n\r\n // Return how many bytes were actually recovered:\r\n return (destIndex - startDestIndex);\r\n },\r\n\r\n fromBase64_ComputeResultLength: function (input, startIndex, inputLength) {\r\n var intEq = \"=\",\r\n intSpace = \" \";\r\n\r\n if (inputLength < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"inputLength\", \"Index was out of range. Must be non-negative and less than the size of the collection.\");\r\n }\r\n\r\n var endIndex = startIndex + inputLength,\r\n usefulInputLength = inputLength,\r\n padding = 0;\r\n\r\n while (startIndex < endIndex) {\r\n var c = input[startIndex];\r\n\r\n startIndex++;\r\n\r\n // We want to be as fast as possible and filter out spaces with as few comparisons as possible.\r\n // We end up accepting a number of illegal chars as legal white-space chars.\r\n // This is ok: as soon as we hit them during actual decode we will recognise them as illegal and throw.\r\n if (c <= intSpace) {\r\n usefulInputLength--;\r\n } else if (c === intEq) {\r\n usefulInputLength--;\r\n padding++;\r\n }\r\n }\r\n\r\n if (0 > usefulInputLength) {\r\n throw new System.InvalidOperationException.$ctor1(\"Contract violation: 0 <= usefulInputLength.\");\r\n }\r\n\r\n if (0 > padding) {\r\n // For legal input, we can assume that 0 <= padding < 3. But it may be more for illegal input.\r\n // We will notice it at decode when we see a '=' at the wrong place.\r\n throw new System.InvalidOperationException.$ctor1(\"Contract violation: 0 <= padding.\");\r\n }\r\n\r\n // Perf: reuse the variable that stored the number of '=' to store the number of bytes encoded by the\r\n // last group that contains the '=':\r\n if (padding !== 0) {\r\n if (padding === 1) {\r\n padding = 2;\r\n } else if (padding === 2) {\r\n padding = 1;\r\n } else {\r\n throw new System.FormatException.$ctor1(\"The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.\");\r\n }\r\n }\r\n\r\n // Done:\r\n return ~~(usefulInputLength / 4) * 3 + padding;\r\n },\r\n\r\n charsToCodes: function (chars, codes, codesOffset) {\r\n if (chars == null) {\r\n return null;\r\n }\r\n\r\n codesOffset = codesOffset || 0;\r\n\r\n if (codes == null) {\r\n codes = [];\r\n codes.length = chars.length;\r\n }\r\n\r\n for (var i = 0; i < chars.length; i++) {\r\n codes[i + codesOffset] = chars[i].charCodeAt(0);\r\n }\r\n\r\n return codes;\r\n },\r\n\r\n codesToChars: function (codes, chars) {\r\n if (codes == null) {\r\n return null;\r\n }\r\n\r\n chars = chars || [];\r\n\r\n for (var i = 0; i < codes.length; i++) {\r\n var code = codes[i];\r\n\r\n chars[i] = String.fromCharCode(code);\r\n }\r\n\r\n return chars;\r\n },\r\n\r\n throwInvalidCastEx: function (fromTypeCode, toTypeCode) {\r\n var fromType = scope.internal.getTypeCodeName(fromTypeCode), toType = scope.internal.getTypeCodeName(toTypeCode);\r\n\r\n throw new System.InvalidCastException.$ctor1(\"Invalid cast from '\" + fromType + \"' to '\" + toType + \"'.\");\r\n }\r\n };\r\n\r\n System.Convert = scope.convert;\r\n\r\n // @source ClientWebSocket.js\r\n\r\n Bridge.define(\"System.Net.WebSockets.ClientWebSocket\", {\r\n inherits: [System.IDisposable],\r\n\r\n ctor: function () {\r\n this.$initialize();\r\n this.messageBuffer = [];\r\n this.state = \"none\";\r\n this.options = new System.Net.WebSockets.ClientWebSocketOptions();\r\n this.disposed = false;\r\n this.closeStatus = null;\r\n this.closeStatusDescription = null;\r\n },\r\n\r\n getCloseStatus: function () {\r\n return this.closeStatus;\r\n },\r\n\r\n getState: function () {\r\n return this.state;\r\n },\r\n\r\n getCloseStatusDescription: function () {\r\n return this.closeStatusDescription;\r\n },\r\n\r\n getSubProtocol: function () {\r\n return this.socket ? this.socket.protocol : null;\r\n },\r\n\r\n onCloseHandler: function(event) {\r\n var reason,\r\n success = false;\r\n\r\n // See http://tools.ietf.org/html/rfc6455#section-7.4.1\r\n if (event.code == 1000) {\r\n reason = \"Status code: \" + event.code + \". Normal closure, meaning that the purpose for which the connection was established has been fulfilled.\";\r\n success = true;\r\n } else if (event.code == 1001)\r\n reason = \"Status code: \" + event.code + \". An endpoint is \\\"going away\\\", such as a server going down or a browser having navigated away from a page.\";\r\n else if (event.code == 1002)\r\n reason = \"Status code: \" + event.code + \". An endpoint is terminating the connection due to a protocol error\";\r\n else if (event.code == 1003)\r\n reason = \"Status code: \" + event.code + \". An endpoint is terminating the connection because it has received a type of data it cannot accept (e.g., an endpoint that understands only text data MAY send this if it receives a binary message).\";\r\n else if (event.code == 1004)\r\n reason = \"Status code: \" + event.code + \". Reserved. The specific meaning might be defined in the future.\";\r\n else if (event.code == 1005)\r\n reason = \"Status code: \" + event.code + \". No status code was actually present.\";\r\n else if (event.code == 1006)\r\n reason = \"Status code: \" + event.code + \". The connection was closed abnormally, e.g., without sending or receiving a Close control frame\";\r\n else if (event.code == 1007)\r\n reason = \"Status code: \" + event.code + \". An endpoint is terminating the connection because it has received data within a message that was not consistent with the type of the message (e.g., non-UTF-8 [http://tools.ietf.org/html/rfc3629] data within a text message).\";\r\n else if (event.code == 1008)\r\n reason = \"Status code: \" + event.code + \". An endpoint is terminating the connection because it has received a message that \\\"violates its policy\\\". This reason is given either if there is no other sutible reason, or if there is a need to hide specific details about the policy.\";\r\n else if (event.code == 1009)\r\n reason = \"Status code: \" + event.code + \". An endpoint is terminating the connection because it has received a message that is too big for it to process.\";\r\n else if (event.code == 1010) // Note that this status code is not used by the server, because it can fail the WebSocket handshake instead.\r\n reason = \"Status code: \" + event.code + \". An endpoint (client) is terminating the connection because it has expected the server to negotiate one or more extension, but the server didn't return them in the response message of the WebSocket handshake.
Specifically, the extensions that are needed are: \" + event.reason;\r\n else if (event.code == 1011)\r\n reason = \"Status code: \" + event.code + \". A server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the request.\";\r\n else if (event.code == 1015)\r\n reason = \"Status code: \" + event.code + \". The connection was closed due to a failure to perform a TLS handshake (e.g., the server certificate can't be verified).\";\r\n else\r\n reason = \"Unknown reason\";\r\n\r\n return {\r\n code: event.code,\r\n reason: reason\r\n };\r\n },\r\n\r\n connectAsync: function (uri, cancellationToken) {\r\n if (this.state !== \"none\") {\r\n throw new System.InvalidOperationException.$ctor1(\"Socket is not in initial state\");\r\n }\r\n\r\n this.options.setToReadOnly();\r\n this.state = \"connecting\";\r\n\r\n var tcs = new System.Threading.Tasks.TaskCompletionSource(),\r\n self = this;\r\n\r\n try {\r\n this.socket = new WebSocket(uri.getAbsoluteUri(), this.options.requestedSubProtocols);\r\n\r\n this.socket.onerror = function (e) {\r\n setTimeout(function () {\r\n if (self.closeInfo && !self.closeInfo.success) {\r\n e.message = self.closeInfo.reason;\r\n }\r\n tcs.setException(System.Exception.create(e));\r\n }, 10);\r\n };\r\n\r\n this.socket.binaryType = \"arraybuffer\";\r\n this.socket.onopen = function () {\r\n self.state = \"open\";\r\n tcs.setResult(null);\r\n };\r\n\r\n this.socket.onmessage = function (e) {\r\n var data = e.data,\r\n message = {},\r\n i;\r\n\r\n message.bytes = [];\r\n\r\n if (typeof (data) === \"string\") {\r\n for (i = 0; i < data.length; ++i) {\r\n message.bytes.push(data.charCodeAt(i));\r\n }\r\n\r\n message.messageType = \"text\";\r\n self.messageBuffer.push(message);\r\n\r\n return;\r\n }\r\n\r\n if (data instanceof ArrayBuffer) {\r\n var dataView = new Uint8Array(data);\r\n\r\n for (i = 0; i < dataView.length; i++) {\r\n message.bytes.push(dataView[i]);\r\n }\r\n\r\n message.messageType = \"binary\";\r\n self.messageBuffer.push(message);\r\n\r\n return;\r\n }\r\n\r\n throw new System.ArgumentException.$ctor1(\"Invalid message type.\");\r\n };\r\n\r\n this.socket.onclose = function (e) {\r\n self.state = \"closed\";\r\n self.closeStatus = e.code;\r\n self.closeStatusDescription = e.reason;\r\n self.closeInfo = self.onCloseHandler(e);\r\n }\r\n } catch (e) {\r\n tcs.setException(System.Exception.create(e));\r\n }\r\n\r\n return tcs.task;\r\n },\r\n\r\n sendAsync: function (buffer, messageType, endOfMessage, cancellationToken) {\r\n this.throwIfNotConnected();\r\n\r\n var tcs = new System.Threading.Tasks.TaskCompletionSource();\r\n\r\n try {\r\n if (messageType === \"close\") {\r\n this.socket.close();\r\n } else {\r\n var array = buffer.getArray(),\r\n count = buffer.getCount(),\r\n offset = buffer.getOffset();\r\n\r\n var data = new Uint8Array(count);\r\n\r\n for (var i = 0; i < count; i++) {\r\n data[i] = array[i + offset];\r\n }\r\n\r\n if (messageType === \"text\") {\r\n data = String.fromCharCode.apply(null, data);\r\n }\r\n\r\n this.socket.send(data);\r\n }\r\n\r\n tcs.setResult(null);\r\n } catch (e) {\r\n tcs.setException(System.Exception.create(e));\r\n }\r\n\r\n return tcs.task;\r\n },\r\n\r\n receiveAsync: function (buffer, cancellationToken) {\r\n this.throwIfNotConnected();\r\n\r\n var task,\r\n tcs = new System.Threading.Tasks.TaskCompletionSource(),\r\n self = this,\r\n asyncBody = Bridge.fn.bind(this, function () {\r\n try {\r\n if (cancellationToken.getIsCancellationRequested()) {\r\n tcs.setException(new System.Threading.Tasks.TaskCanceledException(\"Receive has been cancelled.\", tcs.task));\r\n\r\n return;\r\n }\r\n\r\n if (self.messageBuffer.length === 0) {\r\n task = System.Threading.Tasks.Task.delay(0);\r\n task.continueWith(asyncBody);\r\n\r\n return;\r\n }\r\n\r\n var message = self.messageBuffer[0],\r\n array = buffer.getArray(),\r\n resultBytes,\r\n endOfMessage;\r\n\r\n if (message.bytes.length <= array.length) {\r\n self.messageBuffer.shift();\r\n resultBytes = message.bytes;\r\n endOfMessage = true;\r\n } else {\r\n resultBytes = message.bytes.slice(0, array.length);\r\n message.bytes = message.bytes.slice(array.length, message.bytes.length);\r\n endOfMessage = false;\r\n }\r\n\r\n for (var i = 0; i < resultBytes.length; i++) {\r\n array[i] = resultBytes[i];\r\n }\r\n\r\n tcs.setResult(new System.Net.WebSockets.WebSocketReceiveResult(\r\n resultBytes.length, message.messageType, endOfMessage));\r\n } catch (e) {\r\n tcs.setException(System.Exception.create(e));\r\n }\r\n }, arguments);\r\n\r\n asyncBody();\r\n\r\n return tcs.task;\r\n },\r\n\r\n closeAsync: function (closeStatus, statusDescription, cancellationToken) {\r\n this.throwIfNotConnected();\r\n\r\n if (this.state !== \"open\") {\r\n throw new System.InvalidOperationException.$ctor1(\"Socket is not in connected state\");\r\n }\r\n\r\n var tcs = new System.Threading.Tasks.TaskCompletionSource(),\r\n self = this,\r\n task,\r\n asyncBody = function () {\r\n if (self.state === \"closed\") {\r\n tcs.setResult(null);\r\n return;\r\n }\r\n\r\n if (cancellationToken.getIsCancellationRequested()) {\r\n tcs.setException(new System.Threading.Tasks.TaskCanceledException(\"Closing has been cancelled.\", tcs.task));\r\n return;\r\n }\r\n\r\n task = System.Threading.Tasks.Task.delay(0);\r\n task.continueWith(asyncBody);\r\n };\r\n try {\r\n this.state = \"closesent\";\r\n this.socket.close(closeStatus, statusDescription);\r\n } catch (e) {\r\n tcs.setException(System.Exception.create(e));\r\n }\r\n\r\n asyncBody();\r\n\r\n return tcs.task;\r\n },\r\n\r\n closeOutputAsync: function (closeStatus, statusDescription, cancellationToken) {\r\n this.throwIfNotConnected();\r\n\r\n if (this.state !== \"open\") {\r\n throw new System.InvalidOperationException.$ctor1(\"Socket is not in connected state\");\r\n }\r\n\r\n var tcs = new System.Threading.Tasks.TaskCompletionSource();\r\n\r\n try {\r\n this.state = \"closesent\";\r\n this.socket.close(closeStatus, statusDescription);\r\n tcs.setResult(null);\r\n } catch (e) {\r\n tcs.setException(System.Exception.create(e));\r\n }\r\n\r\n return tcs.task;\r\n },\r\n\r\n abort: function () {\r\n this.Dispose();\r\n },\r\n\r\n Dispose: function () {\r\n if (this.disposed) {\r\n return;\r\n }\r\n\r\n this.disposed = true;\r\n this.messageBuffer = [];\r\n\r\n if (state === \"open\") {\r\n this.state = \"closesent\";\r\n this.socket.close();\r\n }\r\n },\r\n\r\n throwIfNotConnected: function () {\r\n if (this.disposed) {\r\n throw new System.InvalidOperationException.$ctor1(\"Socket is disposed.\");\r\n }\r\n\r\n if (this.socket.readyState !== 1) {\r\n throw new System.InvalidOperationException.$ctor1(\"Socket is not connected.\");\r\n }\r\n }\r\n });\r\n\r\n Bridge.define(\"System.Net.WebSockets.ClientWebSocketOptions\", {\r\n ctor: function () {\r\n this.$initialize();\r\n this.isReadOnly = false;\r\n this.requestedSubProtocols = [];\r\n },\r\n\r\n setToReadOnly: function () {\r\n if (this.isReadOnly) {\r\n throw new System.InvalidOperationException.$ctor1(\"Options are already readonly.\");\r\n }\r\n\r\n this.isReadOnly = true;\r\n },\r\n\r\n addSubProtocol: function (subProtocol) {\r\n if (this.isReadOnly) {\r\n throw new System.InvalidOperationException.$ctor1(\"Socket already started.\");\r\n }\r\n\r\n if (this.requestedSubProtocols.indexOf(subProtocol) > -1) {\r\n throw new System.ArgumentException.$ctor1(\"Socket cannot have duplicate sub-protocols.\", \"subProtocol\");\r\n }\r\n\r\n this.requestedSubProtocols.push(subProtocol);\r\n }\r\n });\r\n\r\n Bridge.define(\"System.Net.WebSockets.WebSocketReceiveResult\", {\r\n ctor: function (count, messageType, endOfMessage, closeStatus, closeStatusDescription) {\r\n this.$initialize();\r\n this.count = count;\r\n this.messageType = messageType;\r\n this.endOfMessage = endOfMessage;\r\n this.closeStatus = closeStatus;\r\n this.closeStatusDescription = closeStatusDescription;\r\n },\r\n\r\n getCount: function () {\r\n return this.count;\r\n },\r\n\r\n getMessageType: function () {\r\n return this.messageType;\r\n },\r\n\r\n getEndOfMessage: function () {\r\n return this.endOfMessage;\r\n },\r\n\r\n getCloseStatus: function () {\r\n return this.closeStatus;\r\n },\r\n\r\n getCloseStatusDescription: function () {\r\n return this.closeStatusDescription;\r\n }\r\n });\r\n\r\n // @source Uri.js\r\n\r\n Bridge.assembly(\"System\", {}, function ($asm, globals) {\r\n \"use strict\";\r\n\r\n Bridge.define(\"System.Uri\", {\r\n statics: {\r\n methods: {\r\n equals: function (uri1, uri2) {\r\n if (uri1 == uri2) {\r\n return true;\r\n }\r\n\r\n if (uri1 == null || uri2 == null) {\r\n return false;\r\n }\r\n\r\n return uri2.equals(uri1);\r\n },\r\n\r\n notEquals: function (uri1, uri2) {\r\n return !System.Uri.equals(uri1, uri2);\r\n }\r\n }\r\n },\r\n\r\n ctor: function (uriString) {\r\n this.$initialize();\r\n this.absoluteUri = uriString;\r\n },\r\n\r\n getAbsoluteUri: function () {\r\n return this.absoluteUri;\r\n },\r\n\r\n toJSON: function () {\r\n return this.absoluteUri;\r\n },\r\n\r\n toString: function () {\r\n return this.absoluteUri;\r\n },\r\n\r\n equals: function (uri) {\r\n if (uri == null || !Bridge.is(uri, System.Uri)) {\r\n return false;\r\n }\r\n\r\n return this.absoluteUri === uri.absoluteUri;\r\n }\r\n });\r\n }, true);\r\n\r\n // @source Generator.js\r\n\r\n Bridge.define(\"Bridge.GeneratorEnumerable\", {\r\n inherits: [System.Collections.IEnumerable],\r\n\r\n config: {\r\n alias: [\r\n \"GetEnumerator\", \"System$Collections$IEnumerable$GetEnumerator\"\r\n ]\r\n },\r\n\r\n ctor: function (action) {\r\n this.$initialize();\r\n this.GetEnumerator = action;\r\n this.System$Collections$IEnumerable$GetEnumerator = action;\r\n }\r\n });\r\n\r\n Bridge.define(\"Bridge.GeneratorEnumerable$1\", function (T)\r\n {\r\n return {\r\n inherits: [System.Collections.Generic.IEnumerable$1(T)],\r\n\r\n config: {\r\n alias: [\r\n \"GetEnumerator\", [\"System$Collections$Generic$IEnumerable$1$\" + Bridge.getTypeAlias(T) + \"$GetEnumerator\", \"System$Collections$Generic$IEnumerable$1$GetEnumerator\"]\r\n ]\r\n },\r\n\r\n ctor: function (action) {\r\n this.$initialize();\r\n this.GetEnumerator = action;\r\n this[\"System$Collections$Generic$IEnumerable$1$\" + Bridge.getTypeAlias(T) + \"$GetEnumerator\"] = action;\r\n this[\"System$Collections$Generic$IEnumerable$1$GetEnumerator\"] = action;\r\n }\r\n };\r\n });\r\n\r\n Bridge.define(\"Bridge.GeneratorEnumerator\", {\r\n inherits: [System.Collections.IEnumerator],\r\n\r\n current: null,\r\n\r\n config: {\r\n properties: {\r\n Current: {\r\n get: function () {\r\n return this.getCurrent();\r\n }\r\n }\r\n },\r\n\r\n alias: [\r\n \"getCurrent\", \"System$Collections$IEnumerator$getCurrent\",\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"reset\", \"System$Collections$IEnumerator$reset\",\r\n \"Current\", \"System$Collections$IEnumerator$Current\"\r\n ]\r\n },\r\n\r\n ctor: function (action) {\r\n this.$initialize();\r\n this.moveNext = action;\r\n this.System$Collections$IEnumerator$moveNext = action;\r\n },\r\n\r\n getCurrent: function () {\r\n return this.current;\r\n },\r\n\r\n getCurrent$1: function () {\r\n return this.current;\r\n },\r\n\r\n reset: function () {\r\n throw new System.NotSupportedException();\r\n }\r\n });\r\n\r\n Bridge.define(\"Bridge.GeneratorEnumerator$1\", function (T) {\r\n return {\r\n inherits: [System.Collections.Generic.IEnumerator$1(T), System.IDisposable],\r\n\r\n current: null,\r\n\r\n config: {\r\n properties: {\r\n Current: {\r\n get: function () {\r\n return this.getCurrent();\r\n }\r\n },\r\n\r\n Current$1: {\r\n get: function () {\r\n return this.getCurrent();\r\n }\r\n }\r\n },\r\n alias: [\r\n \"getCurrent\", [\"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(T) + \"$getCurrent$1\", \"System$Collections$Generic$IEnumerator$1$getCurrent$1\"],\r\n \"Current\", [\"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(T) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\"],\r\n \"Current\", \"System$Collections$IEnumerator$Current\",\r\n \"Dispose\", \"System$IDisposable$Dispose\",\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"reset\", \"System$Collections$IEnumerator$reset\"\r\n ]\r\n },\r\n\r\n ctor: function (action, final) {\r\n this.$initialize();\r\n this.moveNext = action;\r\n this.System$Collections$IEnumerator$moveNext = action;\r\n this.final = final;\r\n },\r\n\r\n getCurrent: function () {\r\n return this.current;\r\n },\r\n\r\n getCurrent$1: function () {\r\n return this.current;\r\n },\r\n\r\n System$Collections$IEnumerator$getCurrent: function () {\r\n return this.current;\r\n },\r\n\r\n Dispose: function () {\r\n if (this.final) {\r\n this.final();\r\n }\r\n },\r\n\r\n reset: function () {\r\n throw new System.NotSupportedException();\r\n }\r\n };\r\n });\r\n // @source linq.js\r\n\r\n/*--------------------------------------------------------------------------\r\n * linq.js - LINQ for JavaScript\r\n * ver 3.0.4-Beta5 (Jun. 20th, 2013)\r\n *\r\n * created and maintained by neuecc \r\n * licensed under MIT License\r\n * http://linqjs.codeplex.com/\r\n *------------------------------------------------------------------------*/\r\n\r\n(function (root, undefined) {\r\n // ReadOnly Function\r\n var Functions = {\r\n Identity: function (x) { return x; },\r\n True: function () { return true; },\r\n Blank: function () { }\r\n };\r\n\r\n // const Type\r\n var Types = {\r\n Boolean: typeof true,\r\n Number: typeof 0,\r\n String: typeof \"\",\r\n Object: typeof {},\r\n Undefined: typeof undefined,\r\n Function: typeof function () { }\r\n };\r\n\r\n // createLambda cache\r\n var funcCache = { \"\": Functions.Identity };\r\n\r\n // private utility methods\r\n var Utils = {\r\n // Create anonymous function from lambda expression string\r\n createLambda: function (expression) {\r\n if (expression == null) return Functions.Identity;\r\n if (typeof expression === Types.String) {\r\n // get from cache\r\n var f = funcCache[expression];\r\n if (f != null) {\r\n return f;\r\n }\r\n\r\n if (expression.indexOf(\"=>\") === -1) {\r\n var regexp = new RegExp(\"[$]+\", \"g\");\r\n\r\n var maxLength = 0;\r\n var match;\r\n while ((match = regexp.exec(expression)) != null) {\r\n var paramNumber = match[0].length;\r\n if (paramNumber > maxLength) {\r\n maxLength = paramNumber;\r\n }\r\n }\r\n\r\n var argArray = [];\r\n for (var i = 1; i <= maxLength; i++) {\r\n var dollar = \"\";\r\n for (var j = 0; j < i; j++) {\r\n dollar += \"$\";\r\n }\r\n argArray.push(dollar);\r\n }\r\n\r\n var args = Array.prototype.join.call(argArray, \",\");\r\n\r\n f = new Function(args, \"return \" + expression);\r\n funcCache[expression] = f;\r\n return f;\r\n }\r\n else {\r\n var expr = expression.match(/^[(\\s]*([^()]*?)[)\\s]*=>(.*)/);\r\n f = new Function(expr[1], \"return \" + expr[2]);\r\n funcCache[expression] = f;\r\n return f;\r\n }\r\n }\r\n return expression;\r\n },\r\n\r\n isIEnumerable: function (obj) {\r\n if (typeof Enumerator !== Types.Undefined) {\r\n try {\r\n new Enumerator(obj); // check JScript(IE)'s Enumerator\r\n return true;\r\n }\r\n catch (e) { }\r\n }\r\n\r\n return false;\r\n },\r\n\r\n // IE8's defineProperty is defined but cannot use, therefore check defineProperties\r\n defineProperty: (Object.defineProperties != null)\r\n ? function (target, methodName, value) {\r\n Object.defineProperty(target, methodName, {\r\n enumerable: false,\r\n configurable: true,\r\n writable: true,\r\n value: value\r\n })\r\n }\r\n : function (target, methodName, value) {\r\n target[methodName] = value;\r\n },\r\n\r\n compare: function (a, b) {\r\n return (a === b) ? 0\r\n : (a > b) ? 1\r\n : -1;\r\n },\r\n\r\n Dispose: function (obj) {\r\n if (obj != null) obj.Dispose();\r\n }\r\n };\r\n\r\n // IEnumerator State\r\n var State = { Before: 0, Running: 1, After: 2 };\r\n\r\n // \"Enumerator\" is conflict JScript's \"Enumerator\"\r\n var IEnumerator = function (initialize, tryGetNext, dispose) {\r\n var yielder = new Yielder();\r\n var state = State.Before;\r\n\r\n this.getCurrent = yielder.getCurrent;\r\n this.reset = function () { throw new Error(\"Reset is not supported\"); };\r\n\r\n this.moveNext = function () {\r\n try {\r\n switch (state) {\r\n case State.Before:\r\n state = State.Running;\r\n initialize();\r\n // fall through\r\n case State.Running:\r\n if (tryGetNext.apply(yielder)) {\r\n return true;\r\n }\r\n else {\r\n this.Dispose();\r\n return false;\r\n }\r\n case State.After:\r\n return false;\r\n }\r\n }\r\n catch (e) {\r\n this.Dispose();\r\n throw e;\r\n }\r\n };\r\n\r\n this.Dispose = function () {\r\n if (state != State.Running) return;\r\n\r\n try {\r\n dispose();\r\n }\r\n finally {\r\n state = State.After;\r\n }\r\n };\r\n\r\n this.System$IDisposable$Dispose = this.Dispose;\r\n this.getCurrent$1 = this.getCurrent;\r\n this.System$Collections$IEnumerator$getCurrent = this.getCurrent;\r\n this.System$Collections$IEnumerator$moveNext = this.moveNext;\r\n this.System$Collections$IEnumerator$reset = this.reset;\r\n\r\n Object.defineProperties(this,\r\n {\r\n \"Current$1\": {\r\n get: this.getCurrent,\r\n enumerable: true\r\n },\r\n\r\n \"Current\": {\r\n get: this.getCurrent,\r\n enumerable: true\r\n },\r\n\r\n \"System$Collections$IEnumerator$Current\": {\r\n get: this.getCurrent,\r\n enumerable: true\r\n }\r\n });\r\n };\r\n\r\n IEnumerator.$$inherits = [];\r\n Bridge.Class.addExtend(IEnumerator, [System.IDisposable, System.Collections.IEnumerator]);\r\n\r\n // for tryGetNext\r\n var Yielder = function () {\r\n var current = null;\r\n this.getCurrent = function () { return current; };\r\n this.yieldReturn = function (value) {\r\n current = value;\r\n return true;\r\n };\r\n this.yieldBreak = function () {\r\n return false;\r\n };\r\n };\r\n\r\n // Enumerable constuctor\r\n var Enumerable = function (GetEnumerator) {\r\n this.GetEnumerator = GetEnumerator;\r\n };\r\n\r\n Enumerable.$$inherits = [];\r\n Bridge.Class.addExtend(Enumerable, [System.Collections.IEnumerable]);\r\n\r\n // Utility\r\n\r\n Enumerable.Utils = {}; // container\r\n\r\n Enumerable.Utils.createLambda = function (expression) {\r\n return Utils.createLambda(expression);\r\n };\r\n\r\n Enumerable.Utils.createEnumerable = function (GetEnumerator) {\r\n return new Enumerable(GetEnumerator);\r\n };\r\n\r\n Enumerable.Utils.createEnumerator = function (initialize, tryGetNext, dispose) {\r\n return new IEnumerator(initialize, tryGetNext, dispose);\r\n };\r\n\r\n Enumerable.Utils.extendTo = function (type) {\r\n var typeProto = type.prototype;\r\n var enumerableProto;\r\n\r\n if (type === Array) {\r\n enumerableProto = ArrayEnumerable.prototype;\r\n Utils.defineProperty(typeProto, \"getSource\", function () {\r\n return this;\r\n });\r\n }\r\n else {\r\n enumerableProto = Enumerable.prototype;\r\n Utils.defineProperty(typeProto, \"GetEnumerator\", function () {\r\n return Enumerable.from(this).GetEnumerator();\r\n });\r\n }\r\n\r\n for (var methodName in enumerableProto) {\r\n var func = enumerableProto[methodName];\r\n\r\n // already extended\r\n if (typeProto[methodName] == func) continue;\r\n\r\n // already defined(example Array#reverse/join/forEach...)\r\n if (typeProto[methodName] != null) {\r\n methodName = methodName + \"ByLinq\";\r\n if (typeProto[methodName] == func) continue; // recheck\r\n }\r\n\r\n if (func instanceof Function) {\r\n Utils.defineProperty(typeProto, methodName, func);\r\n }\r\n }\r\n };\r\n\r\n // Generator\r\n\r\n Enumerable.choice = function () // variable argument\r\n {\r\n var args = arguments;\r\n\r\n return new Enumerable(function () {\r\n return new IEnumerator(\r\n function () {\r\n args = (args[0] instanceof Array) ? args[0]\r\n : (args[0].GetEnumerator != null) ? args[0].ToArray()\r\n : args;\r\n },\r\n function () {\r\n return this.yieldReturn(args[Math.floor(Math.random() * args.length)]);\r\n },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n Enumerable.cycle = function () // variable argument\r\n {\r\n var args = arguments;\r\n\r\n return new Enumerable(function () {\r\n var index = 0;\r\n return new IEnumerator(\r\n function () {\r\n args = (args[0] instanceof Array) ? args[0]\r\n : (args[0].GetEnumerator != null) ? args[0].ToArray()\r\n : args;\r\n },\r\n function () {\r\n if (index >= args.length) index = 0;\r\n return this.yieldReturn(args[index++]);\r\n },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n // private singleton\r\n var emptyEnumerable = new Enumerable(function () {\r\n return new IEnumerator(\r\n Functions.Blank,\r\n function () { return false; },\r\n Functions.Blank);\r\n });\r\n Enumerable.empty = function () {\r\n return emptyEnumerable;\r\n };\r\n\r\n Enumerable.from = function (obj, T) {\r\n if (obj == null) {\r\n return null;\r\n }\r\n if (obj instanceof Enumerable) {\r\n return obj;\r\n }\r\n if (typeof obj == Types.Number || typeof obj == Types.Boolean) {\r\n return Enumerable.repeat(obj, 1);\r\n }\r\n if (typeof obj == Types.String) {\r\n return new Enumerable(function () {\r\n var index = 0;\r\n return new IEnumerator(\r\n Functions.Blank,\r\n function () {\r\n return (index < obj.length) ? this.yieldReturn(obj.charCodeAt(index++)) : false;\r\n },\r\n Functions.Blank);\r\n });\r\n }\r\n var ienum = Bridge.as(obj, System.Collections.IEnumerable);\r\n if (ienum) {\r\n return new Enumerable(function () {\r\n var enumerator;\r\n return new IEnumerator(\r\n function () { enumerator = Bridge.getEnumerator(ienum, T); },\r\n function () {\r\n var ok = enumerator.moveNext();\r\n return ok ? this.yieldReturn(enumerator.Current) : false;\r\n },\r\n function () {\r\n var disposable = Bridge.as(enumerator, System.IDisposable);\r\n if (disposable) {\r\n disposable.Dispose();\r\n }\r\n }\r\n );\r\n });\r\n }\r\n if (typeof obj != Types.Function) {\r\n // array or array like object\r\n if (typeof obj.length == Types.Number) {\r\n return new ArrayEnumerable(obj);\r\n }\r\n\r\n // JScript's IEnumerable\r\n if (!(obj instanceof Object) && Utils.isIEnumerable(obj)) {\r\n return new Enumerable(function () {\r\n var isFirst = true;\r\n var enumerator;\r\n return new IEnumerator(\r\n function () { enumerator = new Enumerator(obj); },\r\n function () {\r\n if (isFirst) isFirst = false;\r\n else enumerator.moveNext();\r\n\r\n return (enumerator.atEnd()) ? false : this.yieldReturn(enumerator.item());\r\n },\r\n Functions.Blank);\r\n });\r\n }\r\n\r\n // WinMD IIterable\r\n if (typeof Windows === Types.Object && typeof obj.first === Types.Function) {\r\n return new Enumerable(function () {\r\n var isFirst = true;\r\n var enumerator;\r\n return new IEnumerator(\r\n function () { enumerator = obj.first(); },\r\n function () {\r\n if (isFirst) isFirst = false;\r\n else enumerator.moveNext();\r\n\r\n return (enumerator.hasCurrent) ? this.yieldReturn(enumerator.current) : this.yieldBreak();\r\n },\r\n Functions.Blank);\r\n });\r\n }\r\n }\r\n\r\n // case function/object : Create keyValuePair[]\r\n return new Enumerable(function () {\r\n var array = [];\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () {\r\n for (var key in obj) {\r\n var value = obj[key];\r\n if (!(value instanceof Function) && Object.prototype.hasOwnProperty.call(obj, key)) {\r\n array.push({ key: key, value: value });\r\n }\r\n }\r\n },\r\n function () {\r\n return (index < array.length)\r\n ? this.yieldReturn(array[index++])\r\n : false;\r\n },\r\n Functions.Blank);\r\n });\r\n },\r\n\r\n Enumerable.make = function (element) {\r\n return Enumerable.repeat(element, 1);\r\n };\r\n\r\n // Overload:function (input, pattern)\r\n // Overload:function (input, pattern, flags)\r\n Enumerable.matches = function (input, pattern, flags) {\r\n if (flags == null) flags = \"\";\r\n if (pattern instanceof RegExp) {\r\n flags += (pattern.ignoreCase) ? \"i\" : \"\";\r\n flags += (pattern.multiline) ? \"m\" : \"\";\r\n pattern = pattern.source;\r\n }\r\n if (flags.indexOf(\"g\") === -1) flags += \"g\";\r\n\r\n return new Enumerable(function () {\r\n var regex;\r\n return new IEnumerator(\r\n function () { regex = new RegExp(pattern, flags); },\r\n function () {\r\n var match = regex.exec(input);\r\n return (match) ? this.yieldReturn(match) : false;\r\n },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n // Overload:function (start, count)\r\n // Overload:function (start, count, step)\r\n Enumerable.range = function (start, count, step) {\r\n if (step == null) step = 1;\r\n\r\n return new Enumerable(function () {\r\n var value;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () { value = start - step; },\r\n function () {\r\n return (index++ < count)\r\n ? this.yieldReturn(value += step)\r\n : this.yieldBreak();\r\n },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n // Overload:function (start, count)\r\n // Overload:function (start, count, step)\r\n Enumerable.rangeDown = function (start, count, step) {\r\n if (step == null) step = 1;\r\n\r\n return new Enumerable(function () {\r\n var value;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () { value = start + step; },\r\n function () {\r\n return (index++ < count)\r\n ? this.yieldReturn(value -= step)\r\n : this.yieldBreak();\r\n },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n // Overload:function (start, to)\r\n // Overload:function (start, to, step)\r\n Enumerable.rangeTo = function (start, to, step) {\r\n if (step == null) step = 1;\r\n\r\n if (start < to) {\r\n return new Enumerable(function () {\r\n var value;\r\n\r\n return new IEnumerator(\r\n function () { value = start - step; },\r\n function () {\r\n var next = value += step;\r\n return (next <= to)\r\n ? this.yieldReturn(next)\r\n : this.yieldBreak();\r\n },\r\n Functions.Blank);\r\n });\r\n }\r\n else {\r\n return new Enumerable(function () {\r\n var value;\r\n\r\n return new IEnumerator(\r\n function () { value = start + step; },\r\n function () {\r\n var next = value -= step;\r\n return (next >= to)\r\n ? this.yieldReturn(next)\r\n : this.yieldBreak();\r\n },\r\n Functions.Blank);\r\n });\r\n }\r\n };\r\n\r\n // Overload:function (element)\r\n // Overload:function (element, count)\r\n Enumerable.repeat = function (element, count) {\r\n if (count != null) return Enumerable.repeat(element).take(count);\r\n\r\n return new Enumerable(function () {\r\n return new IEnumerator(\r\n Functions.Blank,\r\n function () { return this.yieldReturn(element); },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n Enumerable.repeatWithFinalize = function (initializer, finalizer) {\r\n initializer = Utils.createLambda(initializer);\r\n finalizer = Utils.createLambda(finalizer);\r\n\r\n return new Enumerable(function () {\r\n var element;\r\n return new IEnumerator(\r\n function () { element = initializer(); },\r\n function () { return this.yieldReturn(element); },\r\n function () {\r\n if (element != null) {\r\n finalizer(element);\r\n element = null;\r\n }\r\n });\r\n });\r\n };\r\n\r\n // Overload:function (func)\r\n // Overload:function (func, count)\r\n Enumerable.generate = function (func, count) {\r\n if (count != null) return Enumerable.generate(func).take(count);\r\n func = Utils.createLambda(func);\r\n\r\n return new Enumerable(function () {\r\n return new IEnumerator(\r\n Functions.Blank,\r\n function () { return this.yieldReturn(func()); },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n // Overload:function ()\r\n // Overload:function (start)\r\n // Overload:function (start, step)\r\n Enumerable.toInfinity = function (start, step) {\r\n if (start == null) start = 0;\r\n if (step == null) step = 1;\r\n\r\n return new Enumerable(function () {\r\n var value;\r\n return new IEnumerator(\r\n function () { value = start - step; },\r\n function () { return this.yieldReturn(value += step); },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n // Overload:function ()\r\n // Overload:function (start)\r\n // Overload:function (start, step)\r\n Enumerable.toNegativeInfinity = function (start, step) {\r\n if (start == null) start = 0;\r\n if (step == null) step = 1;\r\n\r\n return new Enumerable(function () {\r\n var value;\r\n return new IEnumerator(\r\n function () { value = start + step; },\r\n function () { return this.yieldReturn(value -= step); },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n Enumerable.unfold = function (seed, func) {\r\n func = Utils.createLambda(func);\r\n\r\n return new Enumerable(function () {\r\n var isFirst = true;\r\n var value;\r\n return new IEnumerator(\r\n Functions.Blank,\r\n function () {\r\n if (isFirst) {\r\n isFirst = false;\r\n value = seed;\r\n return this.yieldReturn(value);\r\n }\r\n value = func(value);\r\n return this.yieldReturn(value);\r\n },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n Enumerable.defer = function (enumerableFactory) {\r\n return new Enumerable(function () {\r\n var enumerator;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = Enumerable.from(enumerableFactory()).GetEnumerator(); },\r\n function () {\r\n return (enumerator.moveNext())\r\n ? this.yieldReturn(enumerator.Current)\r\n : this.yieldBreak();\r\n },\r\n function () {\r\n Utils.Dispose(enumerator);\r\n });\r\n });\r\n };\r\n\r\n // Extension Methods\r\n\r\n /* Projection and Filtering Methods */\r\n\r\n // Overload:function (func)\r\n // Overload:function (func, resultSelector)\r\n // Overload:function (func, resultSelector)\r\n Enumerable.prototype.traverseBreadthFirst = function (func, resultSelector) {\r\n var source = this;\r\n func = Utils.createLambda(func);\r\n resultSelector = Utils.createLambda(resultSelector);\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var nestLevel = 0;\r\n var buffer = [];\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.GetEnumerator(); },\r\n function () {\r\n while (true) {\r\n if (enumerator.moveNext()) {\r\n buffer.push(enumerator.Current);\r\n return this.yieldReturn(resultSelector(enumerator.Current, nestLevel));\r\n }\r\n\r\n var next = Enumerable.from(buffer).selectMany(function (x) { return func(x); });\r\n if (!next.any()) {\r\n return false;\r\n }\r\n else {\r\n nestLevel++;\r\n buffer = [];\r\n Utils.Dispose(enumerator);\r\n enumerator = next.GetEnumerator();\r\n }\r\n }\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function (func)\r\n // Overload:function (func, resultSelector)\r\n // Overload:function (func, resultSelector)\r\n Enumerable.prototype.traverseDepthFirst = function (func, resultSelector) {\r\n var source = this;\r\n func = Utils.createLambda(func);\r\n resultSelector = Utils.createLambda(resultSelector);\r\n\r\n return new Enumerable(function () {\r\n var enumeratorStack = [];\r\n var enumerator;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.GetEnumerator(); },\r\n function () {\r\n while (true) {\r\n if (enumerator.moveNext()) {\r\n var value = resultSelector(enumerator.Current, enumeratorStack.length);\r\n enumeratorStack.push(enumerator);\r\n enumerator = Enumerable.from(func(enumerator.Current)).GetEnumerator();\r\n return this.yieldReturn(value);\r\n }\r\n\r\n if (enumeratorStack.length <= 0) return false;\r\n Utils.Dispose(enumerator);\r\n enumerator = enumeratorStack.pop();\r\n }\r\n },\r\n function () {\r\n try {\r\n Utils.Dispose(enumerator);\r\n }\r\n finally {\r\n Enumerable.from(enumeratorStack).forEach(function (s) { s.Dispose(); });\r\n }\r\n });\r\n });\r\n };\r\n\r\n Enumerable.prototype.flatten = function () {\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var middleEnumerator = null;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.GetEnumerator(); },\r\n function () {\r\n while (true) {\r\n if (middleEnumerator != null) {\r\n if (middleEnumerator.moveNext()) {\r\n return this.yieldReturn(middleEnumerator.Current);\r\n }\r\n else {\r\n middleEnumerator = null;\r\n }\r\n }\r\n\r\n if (enumerator.moveNext()) {\r\n if (enumerator.Current instanceof Array) {\r\n Utils.Dispose(middleEnumerator);\r\n middleEnumerator = Enumerable.from(enumerator.Current)\r\n .selectMany(Functions.Identity)\r\n .flatten()\r\n .GetEnumerator();\r\n continue;\r\n }\r\n else {\r\n return this.yieldReturn(enumerator.Current);\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n },\r\n function () {\r\n try {\r\n Utils.Dispose(enumerator);\r\n }\r\n finally {\r\n Utils.Dispose(middleEnumerator);\r\n }\r\n });\r\n });\r\n };\r\n\r\n Enumerable.prototype.pairwise = function (selector) {\r\n var source = this;\r\n selector = Utils.createLambda(selector);\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerator = source.GetEnumerator();\r\n enumerator.moveNext();\r\n },\r\n function () {\r\n var prev = enumerator.Current;\r\n return (enumerator.moveNext())\r\n ? this.yieldReturn(selector(prev, enumerator.Current))\r\n : false;\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function (func)\r\n // Overload:function (seed,func)\r\n Enumerable.prototype.scan = function (seed, func) {\r\n var isUseSeed;\r\n if (func == null) {\r\n func = Utils.createLambda(seed); // arguments[0]\r\n isUseSeed = false;\r\n } else {\r\n func = Utils.createLambda(func);\r\n isUseSeed = true;\r\n }\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var value;\r\n var isFirst = true;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.GetEnumerator(); },\r\n function () {\r\n if (isFirst) {\r\n isFirst = false;\r\n if (!isUseSeed) {\r\n if (enumerator.moveNext()) {\r\n return this.yieldReturn(value = enumerator.Current);\r\n }\r\n }\r\n else {\r\n return this.yieldReturn(value = seed);\r\n }\r\n }\r\n\r\n return (enumerator.moveNext())\r\n ? this.yieldReturn(value = func(value, enumerator.Current))\r\n : false;\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function (selector)\r\n // Overload:function (selector)\r\n Enumerable.prototype.select = function (selector) {\r\n selector = Utils.createLambda(selector);\r\n\r\n if (selector.length <= 1) {\r\n return new WhereSelectEnumerable(this, null, selector);\r\n }\r\n else {\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.GetEnumerator(); },\r\n function () {\r\n return (enumerator.moveNext())\r\n ? this.yieldReturn(selector(enumerator.Current, index++))\r\n : false;\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n });\r\n }\r\n };\r\n\r\n // Overload:function (collectionSelector)\r\n // Overload:function (collectionSelector)\r\n // Overload:function (collectionSelector,resultSelector)\r\n // Overload:function (collectionSelector,resultSelector)\r\n Enumerable.prototype.selectMany = function (collectionSelector, resultSelector) {\r\n var source = this;\r\n collectionSelector = Utils.createLambda(collectionSelector);\r\n if (resultSelector == null) resultSelector = function (a, b) { return b; };\r\n resultSelector = Utils.createLambda(resultSelector);\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var middleEnumerator = undefined;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.GetEnumerator(); },\r\n function () {\r\n if (middleEnumerator === undefined) {\r\n if (!enumerator.moveNext()) return false;\r\n }\r\n do {\r\n if (middleEnumerator == null) {\r\n var middleSeq = collectionSelector(enumerator.Current, index++);\r\n middleEnumerator = Enumerable.from(middleSeq).GetEnumerator();\r\n }\r\n if (middleEnumerator.moveNext()) {\r\n return this.yieldReturn(resultSelector(enumerator.Current, middleEnumerator.Current));\r\n }\r\n Utils.Dispose(middleEnumerator);\r\n middleEnumerator = null;\r\n } while (enumerator.moveNext());\r\n return false;\r\n },\r\n function () {\r\n try {\r\n Utils.Dispose(enumerator);\r\n }\r\n finally {\r\n Utils.Dispose(middleEnumerator);\r\n }\r\n });\r\n });\r\n };\r\n\r\n // Overload:function (predicate)\r\n // Overload:function (predicate)\r\n Enumerable.prototype.where = function (predicate) {\r\n predicate = Utils.createLambda(predicate);\r\n\r\n if (predicate.length <= 1) {\r\n return new WhereEnumerable(this, predicate);\r\n }\r\n else {\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.GetEnumerator(); },\r\n function () {\r\n while (enumerator.moveNext()) {\r\n if (predicate(enumerator.Current, index++)) {\r\n return this.yieldReturn(enumerator.Current);\r\n }\r\n }\r\n return false;\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n });\r\n }\r\n };\r\n\r\n // Overload:function (selector)\r\n // Overload:function (selector)\r\n Enumerable.prototype.choose = function (selector) {\r\n selector = Utils.createLambda(selector);\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.GetEnumerator(); },\r\n function () {\r\n while (enumerator.moveNext()) {\r\n var result = selector(enumerator.Current, index++);\r\n if (result != null) {\r\n return this.yieldReturn(result);\r\n }\r\n }\r\n return this.yieldBreak();\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n });\r\n };\r\n\r\n Enumerable.prototype.ofType = function (type) {\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerator = Bridge.getEnumerator(source);\r\n },\r\n function () {\r\n while (enumerator.moveNext()) {\r\n var v = Bridge.as(enumerator.Current, type);\r\n if (Bridge.hasValue(v)) {\r\n return this.yieldReturn(v);\r\n }\r\n }\r\n return false;\r\n },\r\n function () {\r\n Utils.Dispose(enumerator);\r\n });\r\n });\r\n };\r\n\r\n // mutiple arguments, last one is selector, others are enumerable\r\n Enumerable.prototype.zip = function () {\r\n var args = arguments;\r\n var selector = Utils.createLambda(arguments[arguments.length - 1]);\r\n\r\n var source = this;\r\n // optimized case:argument is 2\r\n if (arguments.length == 2) {\r\n var second = arguments[0];\r\n\r\n if (second == null) {\r\n throw new System.ArgumentNullException();\r\n }\r\n\r\n return new Enumerable(function () {\r\n var firstEnumerator;\r\n var secondEnumerator;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () {\r\n firstEnumerator = source.GetEnumerator();\r\n secondEnumerator = Enumerable.from(second).GetEnumerator();\r\n },\r\n function () {\r\n if (firstEnumerator.moveNext() && secondEnumerator.moveNext()) {\r\n return this.yieldReturn(selector(firstEnumerator.Current, secondEnumerator.Current, index++));\r\n }\r\n return false;\r\n },\r\n function () {\r\n try {\r\n Utils.Dispose(firstEnumerator);\r\n } finally {\r\n Utils.Dispose(secondEnumerator);\r\n }\r\n });\r\n });\r\n }\r\n else {\r\n return new Enumerable(function () {\r\n var enumerators;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () {\r\n var array = Enumerable.make(source)\r\n .concat(Enumerable.from(args).takeExceptLast().select(Enumerable.from))\r\n .select(function (x) { return x.GetEnumerator() })\r\n .ToArray();\r\n enumerators = Enumerable.from(array);\r\n },\r\n function () {\r\n if (enumerators.all(function (x) { return x.moveNext() })) {\r\n var array = enumerators\r\n .select(function (x) { return x.Current; })\r\n .ToArray();\r\n array.push(index++);\r\n return this.yieldReturn(selector.apply(null, array));\r\n }\r\n else {\r\n return this.yieldBreak();\r\n }\r\n },\r\n function () {\r\n Enumerable.from(enumerators).forEach(Utils.Dispose);\r\n });\r\n });\r\n }\r\n };\r\n\r\n // mutiple arguments\r\n Enumerable.prototype.merge = function () {\r\n var args = arguments;\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerators;\r\n var index = -1;\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerators = Enumerable.make(source)\r\n .concat(Enumerable.from(args).select(Enumerable.from))\r\n .select(function (x) { return x.GetEnumerator() })\r\n .ToArray();\r\n },\r\n function () {\r\n while (enumerators.length > 0) {\r\n index = (index >= enumerators.length - 1) ? 0 : index + 1;\r\n var enumerator = enumerators[index];\r\n\r\n if (enumerator.moveNext()) {\r\n return this.yieldReturn(enumerator.Current);\r\n }\r\n else {\r\n enumerator.Dispose();\r\n enumerators.splice(index--, 1);\r\n }\r\n }\r\n return this.yieldBreak();\r\n },\r\n function () {\r\n Enumerable.from(enumerators).forEach(Utils.Dispose);\r\n });\r\n });\r\n };\r\n\r\n /* Join Methods */\r\n\r\n // Overload:function (inner, outerKeySelector, innerKeySelector, resultSelector)\r\n // Overload:function (inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector)\r\n Enumerable.prototype.join = function (inner, outerKeySelector, innerKeySelector, resultSelector, comparer) {\r\n outerKeySelector = Utils.createLambda(outerKeySelector);\r\n innerKeySelector = Utils.createLambda(innerKeySelector);\r\n resultSelector = Utils.createLambda(resultSelector);\r\n\r\n if (inner == null) {\r\n throw new System.ArgumentNullException();\r\n }\r\n\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var outerEnumerator;\r\n var lookup;\r\n var innerElements = null;\r\n var innerCount = 0;\r\n\r\n return new IEnumerator(\r\n function () {\r\n outerEnumerator = source.GetEnumerator();\r\n lookup = Enumerable.from(inner).toLookup(innerKeySelector, Functions.Identity, comparer);\r\n },\r\n function () {\r\n while (true) {\r\n if (innerElements != null) {\r\n var innerElement = innerElements[innerCount++];\r\n if (innerElement !== undefined) {\r\n return this.yieldReturn(resultSelector(outerEnumerator.Current, innerElement));\r\n }\r\n\r\n innerElement = null;\r\n innerCount = 0;\r\n }\r\n\r\n if (outerEnumerator.moveNext()) {\r\n var key = outerKeySelector(outerEnumerator.Current);\r\n innerElements = lookup.get(key).ToArray();\r\n } else {\r\n return false;\r\n }\r\n }\r\n },\r\n function () { Utils.Dispose(outerEnumerator); });\r\n });\r\n };\r\n\r\n // Overload:function (inner, outerKeySelector, innerKeySelector, resultSelector)\r\n // Overload:function (inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector)\r\n Enumerable.prototype.groupJoin = function (inner, outerKeySelector, innerKeySelector, resultSelector, comparer) {\r\n outerKeySelector = Utils.createLambda(outerKeySelector);\r\n innerKeySelector = Utils.createLambda(innerKeySelector);\r\n resultSelector = Utils.createLambda(resultSelector);\r\n var source = this;\r\n\r\n if (inner == null) {\r\n throw new System.ArgumentNullException();\r\n }\r\n\r\n return new Enumerable(function () {\r\n var enumerator = source.GetEnumerator();\r\n var lookup = null;\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerator = source.GetEnumerator();\r\n lookup = Enumerable.from(inner).toLookup(innerKeySelector, Functions.Identity, comparer);\r\n },\r\n function () {\r\n if (enumerator.moveNext()) {\r\n var innerElement = lookup.get(outerKeySelector(enumerator.Current));\r\n return this.yieldReturn(resultSelector(enumerator.Current, innerElement));\r\n }\r\n return false;\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n });\r\n };\r\n\r\n /* Set Methods */\r\n\r\n Enumerable.prototype.all = function (predicate) {\r\n predicate = Utils.createLambda(predicate);\r\n\r\n var result = true;\r\n this.forEach(function (x) {\r\n if (!predicate(x)) {\r\n result = false;\r\n return false; // break\r\n }\r\n });\r\n return result;\r\n };\r\n\r\n // Overload:function ()\r\n // Overload:function (predicate)\r\n Enumerable.prototype.any = function (predicate) {\r\n predicate = Utils.createLambda(predicate);\r\n\r\n var enumerator = this.GetEnumerator();\r\n try {\r\n if (arguments.length == 0) return enumerator.moveNext(); // case:function ()\r\n\r\n while (enumerator.moveNext()) // case:function (predicate)\r\n {\r\n if (predicate(enumerator.Current)) return true;\r\n }\r\n return false;\r\n }\r\n finally {\r\n Utils.Dispose(enumerator);\r\n }\r\n };\r\n\r\n Enumerable.prototype.isEmpty = function () {\r\n return !this.any();\r\n };\r\n\r\n // multiple arguments\r\n Enumerable.prototype.concat = function () {\r\n var source = this;\r\n\r\n if (arguments.length == 1) {\r\n var second = arguments[0];\r\n\r\n if (second == null) {\r\n throw new System.ArgumentNullException();\r\n }\r\n\r\n return new Enumerable(function () {\r\n var firstEnumerator;\r\n var secondEnumerator;\r\n\r\n return new IEnumerator(\r\n function () { firstEnumerator = source.GetEnumerator(); },\r\n function () {\r\n if (secondEnumerator == null) {\r\n if (firstEnumerator.moveNext()) return this.yieldReturn(firstEnumerator.Current);\r\n secondEnumerator = Enumerable.from(second).GetEnumerator();\r\n }\r\n if (secondEnumerator.moveNext()) return this.yieldReturn(secondEnumerator.Current);\r\n return false;\r\n },\r\n function () {\r\n try {\r\n Utils.Dispose(firstEnumerator);\r\n }\r\n finally {\r\n Utils.Dispose(secondEnumerator);\r\n }\r\n });\r\n });\r\n }\r\n else {\r\n var args = arguments;\r\n\r\n return new Enumerable(function () {\r\n var enumerators;\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerators = Enumerable.make(source)\r\n .concat(Enumerable.from(args).select(Enumerable.from))\r\n .select(function (x) { return x.GetEnumerator() })\r\n .ToArray();\r\n },\r\n function () {\r\n while (enumerators.length > 0) {\r\n var enumerator = enumerators[0];\r\n\r\n if (enumerator.moveNext()) {\r\n return this.yieldReturn(enumerator.Current);\r\n }\r\n else {\r\n enumerator.Dispose();\r\n enumerators.splice(0, 1);\r\n }\r\n }\r\n return this.yieldBreak();\r\n },\r\n function () {\r\n Enumerable.from(enumerators).forEach(Utils.Dispose);\r\n });\r\n });\r\n }\r\n };\r\n\r\n Enumerable.prototype.insert = function (index, second) {\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var firstEnumerator;\r\n var secondEnumerator;\r\n var count = 0;\r\n var isEnumerated = false;\r\n\r\n return new IEnumerator(\r\n function () {\r\n firstEnumerator = source.GetEnumerator();\r\n secondEnumerator = Enumerable.from(second).GetEnumerator();\r\n },\r\n function () {\r\n if (count == index && secondEnumerator.moveNext()) {\r\n isEnumerated = true;\r\n return this.yieldReturn(secondEnumerator.Current);\r\n }\r\n if (firstEnumerator.moveNext()) {\r\n count++;\r\n return this.yieldReturn(firstEnumerator.Current);\r\n }\r\n if (!isEnumerated && secondEnumerator.moveNext()) {\r\n return this.yieldReturn(secondEnumerator.Current);\r\n }\r\n return false;\r\n },\r\n function () {\r\n try {\r\n Utils.Dispose(firstEnumerator);\r\n }\r\n finally {\r\n Utils.Dispose(secondEnumerator);\r\n }\r\n });\r\n });\r\n };\r\n\r\n Enumerable.prototype.alternate = function (alternateValueOrSequence) {\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var buffer;\r\n var enumerator;\r\n var alternateSequence;\r\n var alternateEnumerator;\r\n\r\n return new IEnumerator(\r\n function () {\r\n if (alternateValueOrSequence instanceof Array || alternateValueOrSequence.GetEnumerator != null) {\r\n alternateSequence = Enumerable.from(Enumerable.from(alternateValueOrSequence).ToArray()); // freeze\r\n }\r\n else {\r\n alternateSequence = Enumerable.make(alternateValueOrSequence);\r\n }\r\n enumerator = source.GetEnumerator();\r\n if (enumerator.moveNext()) buffer = enumerator.Current;\r\n },\r\n function () {\r\n while (true) {\r\n if (alternateEnumerator != null) {\r\n if (alternateEnumerator.moveNext()) {\r\n return this.yieldReturn(alternateEnumerator.Current);\r\n }\r\n else {\r\n alternateEnumerator = null;\r\n }\r\n }\r\n\r\n if (buffer == null && enumerator.moveNext()) {\r\n buffer = enumerator.Current; // hasNext\r\n alternateEnumerator = alternateSequence.GetEnumerator();\r\n continue; // GOTO\r\n }\r\n else if (buffer != null) {\r\n var retVal = buffer;\r\n buffer = null;\r\n return this.yieldReturn(retVal);\r\n }\r\n\r\n return this.yieldBreak();\r\n }\r\n },\r\n function () {\r\n try {\r\n Utils.Dispose(enumerator);\r\n }\r\n finally {\r\n Utils.Dispose(alternateEnumerator);\r\n }\r\n });\r\n });\r\n };\r\n\r\n // Overload:function (value)\r\n // Overload:function (value, compareSelector)\r\n Enumerable.prototype.contains = function (value, comparer) {\r\n comparer = comparer || System.Collections.Generic.EqualityComparer$1.$default;\r\n var enumerator = this.GetEnumerator();\r\n try {\r\n while (enumerator.moveNext()) {\r\n if (comparer.equals2(enumerator.Current, value)) return true;\r\n }\r\n return false;\r\n }\r\n finally {\r\n Utils.Dispose(enumerator);\r\n }\r\n };\r\n\r\n Enumerable.prototype.defaultIfEmpty = function (defaultValue) {\r\n var source = this;\r\n if (defaultValue === undefined) defaultValue = null;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var isFirst = true;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.GetEnumerator(); },\r\n function () {\r\n if (enumerator.moveNext()) {\r\n isFirst = false;\r\n return this.yieldReturn(enumerator.Current);\r\n }\r\n else if (isFirst) {\r\n isFirst = false;\r\n return this.yieldReturn(defaultValue);\r\n }\r\n return false;\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function ()\r\n // Overload:function (compareSelector)\r\n Enumerable.prototype.distinct = function (comparer) {\r\n return this.except(Enumerable.empty(), comparer);\r\n };\r\n\r\n Enumerable.prototype.distinctUntilChanged = function (compareSelector) {\r\n compareSelector = Utils.createLambda(compareSelector);\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var compareKey;\r\n var initial;\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerator = source.GetEnumerator();\r\n },\r\n function () {\r\n while (enumerator.moveNext()) {\r\n var key = compareSelector(enumerator.Current);\r\n\r\n if (initial) {\r\n initial = false;\r\n compareKey = key;\r\n return this.yieldReturn(enumerator.Current);\r\n }\r\n\r\n if (compareKey === key) {\r\n continue;\r\n }\r\n\r\n compareKey = key;\r\n return this.yieldReturn(enumerator.Current);\r\n }\r\n return this.yieldBreak();\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function (second)\r\n // Overload:function (second, compareSelector)\r\n Enumerable.prototype.except = function (second, comparer) {\r\n var source = this;\r\n\r\n if (second == null) {\r\n throw new System.ArgumentNullException();\r\n }\r\n\r\n return new Enumerable(function () {\r\n var enumerator,\r\n keys,\r\n hasNull = false;\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerator = source.GetEnumerator();\r\n keys = new (System.Collections.Generic.Dictionary$2(System.Object, System.Object)).$ctor3(comparer);\r\n\r\n Enumerable.from(second).forEach(function (key) {\r\n if (key == null) {\r\n hasNull = true;\r\n }\r\n else if (!keys.containsKey(key)) {\r\n keys.add(key);\r\n }\r\n });\r\n },\r\n function () {\r\n while (enumerator.moveNext()) {\r\n var current = enumerator.Current;\r\n if (current == null) {\r\n if (!hasNull) {\r\n hasNull = true;\r\n return this.yieldReturn(current);\r\n }\r\n }\r\n else if (!keys.containsKey(current)) {\r\n keys.add(current);\r\n return this.yieldReturn(current);\r\n }\r\n }\r\n return false;\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function (second)\r\n // Overload:function (second, compareSelector)\r\n Enumerable.prototype.intersect = function (second, comparer) {\r\n var source = this;\r\n\r\n if (second == null) {\r\n throw new System.ArgumentNullException();\r\n }\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var keys;\r\n var outs;\r\n var hasNull = false;\r\n var hasOutsNull = false;\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerator = source.GetEnumerator();\r\n\r\n keys = new (System.Collections.Generic.Dictionary$2(System.Object, System.Object)).$ctor3(comparer);\r\n Enumerable.from(second).forEach(function (key) {\r\n if (key == null) {\r\n hasNull = true;\r\n }\r\n else if (!keys.containsKey(key)) {\r\n keys.add(key);\r\n }\r\n });\r\n outs = new (System.Collections.Generic.Dictionary$2(System.Object, System.Object)).$ctor3(comparer);\r\n },\r\n function () {\r\n while (enumerator.moveNext()) {\r\n var current = enumerator.Current;\r\n if (current == null) {\r\n if (!hasOutsNull && hasNull) {\r\n hasOutsNull = true;\r\n return this.yieldReturn(current);\r\n }\r\n } else if (!outs.containsKey(current) && keys.containsKey(current)) {\r\n outs.add(current);\r\n return this.yieldReturn(current);\r\n }\r\n }\r\n return false;\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function (second)\r\n // Overload:function (second, compareSelector)\r\n Enumerable.prototype.sequenceEqual = function (second, comparer) {\r\n comparer = comparer || System.Collections.Generic.EqualityComparer$1.$default;\r\n\r\n if (second == null) {\r\n throw new System.ArgumentNullException();\r\n }\r\n\r\n var firstEnumerator = this.GetEnumerator();\r\n try {\r\n var secondEnumerator = Enumerable.from(second).GetEnumerator();\r\n try {\r\n while (firstEnumerator.moveNext()) {\r\n if (!secondEnumerator.moveNext()\r\n || !comparer.equals2(firstEnumerator.Current, secondEnumerator.Current)) {\r\n return false;\r\n }\r\n }\r\n\r\n if (secondEnumerator.moveNext()) return false;\r\n return true;\r\n }\r\n finally {\r\n Utils.Dispose(secondEnumerator);\r\n }\r\n }\r\n finally {\r\n Utils.Dispose(firstEnumerator);\r\n }\r\n };\r\n\r\n Enumerable.prototype.union = function (second, comparer) {\r\n var source = this;\r\n\r\n if (second == null) {\r\n throw new System.ArgumentNullException();\r\n }\r\n\r\n return new Enumerable(function () {\r\n var firstEnumerator;\r\n var secondEnumerator;\r\n var keys;\r\n var hasNull = false;\r\n\r\n return new IEnumerator(\r\n function () {\r\n firstEnumerator = source.GetEnumerator();\r\n keys = new (System.Collections.Generic.Dictionary$2(System.Object, System.Object)).$ctor3(comparer);\r\n },\r\n function () {\r\n var current;\r\n if (secondEnumerator === undefined) {\r\n while (firstEnumerator.moveNext()) {\r\n current = firstEnumerator.Current;\r\n if (current == null) {\r\n if (!hasNull) {\r\n hasNull = true;\r\n return this.yieldReturn(current);\r\n }\r\n }\r\n else if (!keys.containsKey(current)) {\r\n keys.add(current);\r\n return this.yieldReturn(current);\r\n }\r\n }\r\n secondEnumerator = Enumerable.from(second).GetEnumerator();\r\n }\r\n while (secondEnumerator.moveNext()) {\r\n current = secondEnumerator.Current;\r\n if (current == null) {\r\n if (!hasNull) {\r\n hasNull = true;\r\n return this.yieldReturn(current);\r\n }\r\n }\r\n else if (!keys.containsKey(current)) {\r\n keys.add(current);\r\n return this.yieldReturn(current);\r\n }\r\n }\r\n return false;\r\n },\r\n function () {\r\n try {\r\n Utils.Dispose(firstEnumerator);\r\n }\r\n finally {\r\n Utils.Dispose(secondEnumerator);\r\n }\r\n });\r\n });\r\n };\r\n\r\n /* Ordering Methods */\r\n\r\n Enumerable.prototype.orderBy = function (keySelector, comparer) {\r\n return new OrderedEnumerable(this, keySelector, comparer, false);\r\n };\r\n\r\n Enumerable.prototype.orderByDescending = function (keySelector, comparer) {\r\n return new OrderedEnumerable(this, keySelector, comparer, true);\r\n };\r\n\r\n Enumerable.prototype.reverse = function () {\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var buffer;\r\n var index;\r\n\r\n return new IEnumerator(\r\n function () {\r\n buffer = source.ToArray();\r\n index = buffer.length;\r\n },\r\n function () {\r\n return (index > 0)\r\n ? this.yieldReturn(buffer[--index])\r\n : false;\r\n },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n Enumerable.prototype.shuffle = function () {\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var buffer;\r\n\r\n return new IEnumerator(\r\n function () { buffer = source.ToArray(); },\r\n function () {\r\n if (buffer.length > 0) {\r\n var i = Math.floor(Math.random() * buffer.length);\r\n return this.yieldReturn(buffer.splice(i, 1)[0]);\r\n }\r\n return false;\r\n },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n Enumerable.prototype.weightedSample = function (weightSelector) {\r\n weightSelector = Utils.createLambda(weightSelector);\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var sortedByBound;\r\n var totalWeight = 0;\r\n\r\n return new IEnumerator(\r\n function () {\r\n sortedByBound = source\r\n .choose(function (x) {\r\n var weight = weightSelector(x);\r\n if (weight <= 0) return null; // ignore 0\r\n\r\n totalWeight += weight;\r\n return { value: x, bound: totalWeight };\r\n })\r\n .ToArray();\r\n },\r\n function () {\r\n if (sortedByBound.length > 0) {\r\n var draw = Math.floor(Math.random() * totalWeight) + 1;\r\n\r\n var lower = -1;\r\n var upper = sortedByBound.length;\r\n while (upper - lower > 1) {\r\n var index = Math.floor((lower + upper) / 2);\r\n if (sortedByBound[index].bound >= draw) {\r\n upper = index;\r\n }\r\n else {\r\n lower = index;\r\n }\r\n }\r\n\r\n return this.yieldReturn(sortedByBound[upper].value);\r\n }\r\n\r\n return this.yieldBreak();\r\n },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n /* Grouping Methods */\r\n\r\n // Overload:function (keySelector)\r\n // Overload:function (keySelector,elementSelector)\r\n // Overload:function (keySelector,elementSelector,resultSelector)\r\n // Overload:function (keySelector,elementSelector,resultSelector,compareSelector)\r\n Enumerable.prototype.groupBy = function (keySelector, elementSelector, resultSelector, comparer) {\r\n var source = this;\r\n keySelector = Utils.createLambda(keySelector);\r\n elementSelector = Utils.createLambda(elementSelector);\r\n if (resultSelector != null) resultSelector = Utils.createLambda(resultSelector);\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerator = source.toLookup(keySelector, elementSelector, comparer)\r\n .toEnumerable()\r\n .GetEnumerator();\r\n },\r\n function () {\r\n while (enumerator.moveNext()) {\r\n return (resultSelector == null)\r\n ? this.yieldReturn(enumerator.Current)\r\n : this.yieldReturn(resultSelector(enumerator.Current.key(), enumerator.Current));\r\n }\r\n return false;\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function (keySelector)\r\n // Overload:function (keySelector,elementSelector)\r\n // Overload:function (keySelector,elementSelector,resultSelector)\r\n // Overload:function (keySelector,elementSelector,resultSelector,compareSelector)\r\n Enumerable.prototype.partitionBy = function (keySelector, elementSelector, resultSelector, comparer) {\r\n var source = this;\r\n keySelector = Utils.createLambda(keySelector);\r\n elementSelector = Utils.createLambda(elementSelector);\r\n comparer = comparer || System.Collections.Generic.EqualityComparer$1.$default;\r\n var hasResultSelector;\r\n if (resultSelector == null) {\r\n hasResultSelector = false;\r\n resultSelector = function (key, group) { return new Grouping(key, group); };\r\n }\r\n else {\r\n hasResultSelector = true;\r\n resultSelector = Utils.createLambda(resultSelector);\r\n }\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var key;\r\n var group = [];\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerator = source.GetEnumerator();\r\n if (enumerator.moveNext()) {\r\n key = keySelector(enumerator.Current);\r\n group.push(elementSelector(enumerator.Current));\r\n }\r\n },\r\n function () {\r\n var hasNext;\r\n while ((hasNext = enumerator.moveNext()) == true) {\r\n if (comparer.equals2(key, keySelector(enumerator.Current))) {\r\n group.push(elementSelector(enumerator.Current));\r\n }\r\n else break;\r\n }\r\n\r\n if (group.length > 0) {\r\n var result = (hasResultSelector)\r\n ? resultSelector(key, Enumerable.from(group))\r\n : resultSelector(key, group);\r\n if (hasNext) {\r\n key = keySelector(enumerator.Current);\r\n group = [elementSelector(enumerator.Current)];\r\n }\r\n else group = [];\r\n\r\n return this.yieldReturn(result);\r\n }\r\n\r\n return false;\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n });\r\n };\r\n\r\n Enumerable.prototype.buffer = function (count) {\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.GetEnumerator(); },\r\n function () {\r\n var array = [];\r\n var index = 0;\r\n while (enumerator.moveNext()) {\r\n array.push(enumerator.Current);\r\n if (++index >= count) return this.yieldReturn(array);\r\n }\r\n if (array.length > 0) return this.yieldReturn(array);\r\n return false;\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n });\r\n };\r\n\r\n /* Aggregate Methods */\r\n\r\n // Overload:function (func)\r\n // Overload:function (seed,func)\r\n // Overload:function (seed,func,resultSelector)\r\n Enumerable.prototype.aggregate = function (seed, func, resultSelector) {\r\n resultSelector = Utils.createLambda(resultSelector);\r\n return resultSelector(this.scan(seed, func, resultSelector).last());\r\n };\r\n\r\n // Overload:function ()\r\n // Overload:function (selector)\r\n Enumerable.prototype.average = function (selector, def) {\r\n if (selector && !def && !Bridge.isFunction(selector)) {\r\n def = selector;\r\n selector = null;\r\n }\r\n\r\n selector = Utils.createLambda(selector);\r\n\r\n var sum = def || 0;\r\n var count = 0;\r\n this.forEach(function (x) {\r\n x = selector(x);\r\n\r\n if (x instanceof System.Decimal || System.Int64.is64Bit(x)) {\r\n sum = x.add(sum);\r\n }\r\n else if (sum instanceof System.Decimal || System.Int64.is64Bit(sum)) {\r\n sum = sum.add(x);\r\n } else {\r\n sum += x;\r\n }\r\n\r\n ++count;\r\n });\r\n\r\n if (count === 0) {\r\n throw new System.InvalidOperationException.$ctor1(\"Sequence contains no elements\");\r\n }\r\n\r\n return (sum instanceof System.Decimal || System.Int64.is64Bit(sum)) ? sum.div(count) : (sum / count);\r\n };\r\n\r\n Enumerable.prototype.nullableAverage = function (selector, def) {\r\n if (this.any(Bridge.isNull)) {\r\n return null;\r\n }\r\n\r\n return this.average(selector, def);\r\n };\r\n\r\n // Overload:function ()\r\n // Overload:function (predicate)\r\n Enumerable.prototype.count = function (predicate) {\r\n predicate = (predicate == null) ? Functions.True : Utils.createLambda(predicate);\r\n\r\n var count = 0;\r\n this.forEach(function (x, i) {\r\n if (predicate(x, i))++count;\r\n });\r\n return count;\r\n };\r\n\r\n // Overload:function ()\r\n // Overload:function (selector)\r\n Enumerable.prototype.max = function (selector) {\r\n if (selector == null) selector = Functions.Identity;\r\n return this.select(selector).aggregate(function (a, b) {\r\n return (Bridge.compare(a, b, true) === 1) ? a : b;\r\n });\r\n };\r\n\r\n Enumerable.prototype.nullableMax = function (selector) {\r\n if (this.any(Bridge.isNull)) {\r\n return null;\r\n }\r\n\r\n return this.max(selector);\r\n };\r\n\r\n // Overload:function ()\r\n // Overload:function (selector)\r\n Enumerable.prototype.min = function (selector) {\r\n if (selector == null) selector = Functions.Identity;\r\n return this.select(selector).aggregate(function (a, b) {\r\n return (Bridge.compare(a, b, true) === -1) ? a : b;\r\n });\r\n };\r\n\r\n Enumerable.prototype.nullableMin = function (selector) {\r\n if (this.any(Bridge.isNull)) {\r\n return null;\r\n }\r\n\r\n return this.min(selector);\r\n };\r\n\r\n Enumerable.prototype.maxBy = function (keySelector) {\r\n keySelector = Utils.createLambda(keySelector);\r\n return this.aggregate(function (a, b) {\r\n return (Bridge.compare(keySelector(a), keySelector(b), true) === 1) ? a : b;\r\n });\r\n };\r\n\r\n Enumerable.prototype.minBy = function (keySelector) {\r\n keySelector = Utils.createLambda(keySelector);\r\n return this.aggregate(function (a, b) {\r\n return (Bridge.compare(keySelector(a), keySelector(b), true) === -1) ? a : b;\r\n });\r\n };\r\n\r\n // Overload:function ()\r\n // Overload:function (selector)\r\n Enumerable.prototype.sum = function (selector, def) {\r\n if (selector && !def && !Bridge.isFunction(selector)) {\r\n def = selector;\r\n selector = null;\r\n }\r\n\r\n if (selector == null) selector = Functions.Identity;\r\n var s = this.select(selector).aggregate(0, function (a, b) {\r\n if (a instanceof System.Decimal || System.Int64.is64Bit(a)) {\r\n return a.add(b);\r\n }\r\n if (b instanceof System.Decimal || System.Int64.is64Bit(b)) {\r\n return b.add(a);\r\n }\r\n return a + b;\r\n });\r\n\r\n if (s === 0 && def) {\r\n return def;\r\n }\r\n\r\n return s;\r\n };\r\n\r\n Enumerable.prototype.nullableSum = function (selector, def) {\r\n if (this.any(Bridge.isNull)) {\r\n return null;\r\n }\r\n\r\n return this.sum(selector, def);\r\n };\r\n\r\n /* Paging Methods */\r\n\r\n Enumerable.prototype.elementAt = function (index) {\r\n var value;\r\n var found = false;\r\n this.forEach(function (x, i) {\r\n if (i == index) {\r\n value = x;\r\n found = true;\r\n return false;\r\n }\r\n });\r\n\r\n if (!found) throw new Error(\"index is less than 0 or greater than or equal to the number of elements in source.\");\r\n return value;\r\n };\r\n\r\n Enumerable.prototype.elementAtOrDefault = function (index, defaultValue) {\r\n if (defaultValue === undefined) defaultValue = null;\r\n var value;\r\n var found = false;\r\n this.forEach(function (x, i) {\r\n if (i == index) {\r\n value = x;\r\n found = true;\r\n return false;\r\n }\r\n });\r\n\r\n return (!found) ? defaultValue : value;\r\n };\r\n\r\n // Overload:function ()\r\n // Overload:function (predicate)\r\n Enumerable.prototype.first = function (predicate) {\r\n if (predicate != null) return this.where(predicate).first();\r\n\r\n var value;\r\n var found = false;\r\n this.forEach(function (x) {\r\n value = x;\r\n found = true;\r\n return false;\r\n });\r\n\r\n if (!found) throw new Error(\"first:No element satisfies the condition.\");\r\n return value;\r\n };\r\n\r\n Enumerable.prototype.firstOrDefault = function (predicate, defaultValue) {\r\n if (defaultValue === undefined) defaultValue = null;\r\n if (predicate != null) return this.where(predicate).firstOrDefault(null, defaultValue);\r\n\r\n var value;\r\n var found = false;\r\n this.forEach(function (x) {\r\n value = x;\r\n found = true;\r\n return false;\r\n });\r\n return (!found) ? defaultValue : value;\r\n };\r\n\r\n // Overload:function ()\r\n // Overload:function (predicate)\r\n Enumerable.prototype.last = function (predicate) {\r\n if (predicate != null) return this.where(predicate).last();\r\n\r\n var value;\r\n var found = false;\r\n this.forEach(function (x) {\r\n found = true;\r\n value = x;\r\n });\r\n\r\n if (!found) throw new Error(\"last:No element satisfies the condition.\");\r\n return value;\r\n };\r\n\r\n // Overload:function (defaultValue)\r\n // Overload:function (defaultValue,predicate)\r\n Enumerable.prototype.lastOrDefault = function (predicate, defaultValue) {\r\n if (defaultValue === undefined) defaultValue = null;\r\n if (predicate != null) return this.where(predicate).lastOrDefault(null, defaultValue);\r\n\r\n var value;\r\n var found = false;\r\n this.forEach(function (x) {\r\n found = true;\r\n value = x;\r\n });\r\n return (!found) ? defaultValue : value;\r\n };\r\n\r\n // Overload:function ()\r\n // Overload:function (predicate)\r\n Enumerable.prototype.single = function (predicate) {\r\n if (predicate != null) return this.where(predicate).single();\r\n\r\n var value;\r\n var found = false;\r\n this.forEach(function (x) {\r\n if (!found) {\r\n found = true;\r\n value = x;\r\n } else throw new Error(\"single:sequence contains more than one element.\");\r\n });\r\n\r\n if (!found) throw new Error(\"single:No element satisfies the condition.\");\r\n return value;\r\n };\r\n\r\n // Overload:function (defaultValue)\r\n // Overload:function (defaultValue,predicate)\r\n Enumerable.prototype.singleOrDefault = function (predicate, defaultValue) {\r\n if (defaultValue === undefined) defaultValue = null;\r\n if (predicate != null) return this.where(predicate).singleOrDefault(null, defaultValue);\r\n\r\n var value;\r\n var found = false;\r\n this.forEach(function (x) {\r\n if (!found) {\r\n found = true;\r\n value = x;\r\n } else throw new Error(\"single:sequence contains more than one element.\");\r\n });\r\n\r\n return (!found) ? defaultValue : value;\r\n };\r\n\r\n Enumerable.prototype.skip = function (count) {\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerator = source.GetEnumerator();\r\n while (index++ < count && enumerator.moveNext()) {\r\n }\r\n ;\r\n },\r\n function () {\r\n return (enumerator.moveNext())\r\n ? this.yieldReturn(enumerator.Current)\r\n : false;\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function (predicate)\r\n // Overload:function (predicate)\r\n Enumerable.prototype.skipWhile = function (predicate) {\r\n predicate = Utils.createLambda(predicate);\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n var isSkipEnd = false;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.GetEnumerator(); },\r\n function () {\r\n while (!isSkipEnd) {\r\n if (enumerator.moveNext()) {\r\n if (!predicate(enumerator.Current, index++)) {\r\n isSkipEnd = true;\r\n return this.yieldReturn(enumerator.Current);\r\n }\r\n continue;\r\n } else return false;\r\n }\r\n\r\n return (enumerator.moveNext())\r\n ? this.yieldReturn(enumerator.Current)\r\n : false;\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n });\r\n };\r\n\r\n Enumerable.prototype.take = function (count) {\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.GetEnumerator(); },\r\n function () {\r\n return (index++ < count && enumerator.moveNext())\r\n ? this.yieldReturn(enumerator.Current)\r\n : false;\r\n },\r\n function () { Utils.Dispose(enumerator); }\r\n );\r\n });\r\n };\r\n\r\n // Overload:function (predicate)\r\n // Overload:function (predicate)\r\n Enumerable.prototype.takeWhile = function (predicate) {\r\n predicate = Utils.createLambda(predicate);\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.GetEnumerator(); },\r\n function () {\r\n return (enumerator.moveNext() && predicate(enumerator.Current, index++))\r\n ? this.yieldReturn(enumerator.Current)\r\n : false;\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function ()\r\n // Overload:function (count)\r\n Enumerable.prototype.takeExceptLast = function (count) {\r\n if (count == null) count = 1;\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n if (count <= 0) return source.GetEnumerator(); // do nothing\r\n\r\n var enumerator;\r\n var q = [];\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.GetEnumerator(); },\r\n function () {\r\n while (enumerator.moveNext()) {\r\n if (q.length == count) {\r\n q.push(enumerator.Current);\r\n return this.yieldReturn(q.shift());\r\n }\r\n q.push(enumerator.Current);\r\n }\r\n return false;\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n });\r\n };\r\n\r\n Enumerable.prototype.takeFromLast = function (count) {\r\n if (count <= 0 || count == null) return Enumerable.empty();\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var sourceEnumerator;\r\n var enumerator;\r\n var q = [];\r\n\r\n return new IEnumerator(\r\n function () { sourceEnumerator = source.GetEnumerator(); },\r\n function () {\r\n if (enumerator == null) {\r\n while (sourceEnumerator.moveNext()) {\r\n if (q.length == count) q.shift();\r\n q.push(sourceEnumerator.Current);\r\n }\r\n enumerator = Enumerable.from(q).GetEnumerator();\r\n }\r\n return (enumerator.moveNext())\r\n ? this.yieldReturn(enumerator.Current)\r\n : false;\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function (item)\r\n // Overload:function (predicate)\r\n Enumerable.prototype.indexOf = function (item, comparer) {\r\n var found = null;\r\n\r\n // item as predicate\r\n if (typeof (item) === Types.Function) {\r\n this.forEach(function (x, i) {\r\n if (item(x, i)) {\r\n found = i;\r\n return false;\r\n }\r\n });\r\n }\r\n else {\r\n comparer = comparer || System.Collections.Generic.EqualityComparer$1.$default;\r\n this.forEach(function (x, i) {\r\n if (comparer.equals2(x, item)) {\r\n found = i;\r\n return false;\r\n }\r\n });\r\n }\r\n\r\n return (found !== null) ? found : -1;\r\n };\r\n\r\n // Overload:function (item)\r\n // Overload:function (predicate)\r\n Enumerable.prototype.lastIndexOf = function (item, comparer) {\r\n var result = -1;\r\n\r\n // item as predicate\r\n if (typeof (item) === Types.Function) {\r\n this.forEach(function (x, i) {\r\n if (item(x, i)) result = i;\r\n });\r\n }\r\n else {\r\n comparer = comparer || System.Collections.Generic.EqualityComparer$1.$default;\r\n this.forEach(function (x, i) {\r\n if (comparer.equals2(x, item)) result = i;\r\n });\r\n }\r\n\r\n return result;\r\n };\r\n\r\n /* Convert Methods */\r\n\r\n Enumerable.prototype.asEnumerable = function () {\r\n return Enumerable.from(this);\r\n };\r\n\r\n Enumerable.prototype.ToArray = function (T) {\r\n var array = System.Array.init([], T || System.Object);\r\n this.forEach(function (x) { array.push(x); });\r\n return array;\r\n };\r\n\r\n Enumerable.prototype.toList = function (T) {\r\n var array = [];\r\n this.forEach(function (x) { array.push(x); });\r\n return new (System.Collections.Generic.List$1(T || System.Object).$ctor1)(array);\r\n };\r\n\r\n // Overload:function (keySelector)\r\n // Overload:function (keySelector, elementSelector)\r\n // Overload:function (keySelector, elementSelector, compareSelector)\r\n Enumerable.prototype.toLookup = function (keySelector, elementSelector, comparer) {\r\n keySelector = Utils.createLambda(keySelector);\r\n elementSelector = Utils.createLambda(elementSelector);\r\n\r\n var dict = new (System.Collections.Generic.Dictionary$2(System.Object, System.Object)).$ctor3(comparer);\r\n var order = [];\r\n var nullKey;\r\n this.forEach(function (x) {\r\n var key = keySelector(x);\r\n var element = elementSelector(x);\r\n\r\n var array = { v: null };\r\n\r\n if (key == null) {\r\n if (!nullKey) {\r\n nullKey = [];\r\n order.push(key);\r\n }\r\n nullKey.push(element);\r\n }\r\n else if (dict.tryGetValue(key, array)) {\r\n array.v.push(element);\r\n }\r\n else {\r\n order.push(key);\r\n dict.add(key, [element]);\r\n }\r\n });\r\n return new Lookup(dict, order, nullKey);\r\n };\r\n\r\n Enumerable.prototype.toObject = function (keySelector, elementSelector) {\r\n keySelector = Utils.createLambda(keySelector);\r\n elementSelector = Utils.createLambda(elementSelector);\r\n\r\n var obj = {};\r\n this.forEach(function (x) {\r\n obj[keySelector(x)] = elementSelector(x);\r\n });\r\n return obj;\r\n };\r\n\r\n // Overload:function (keySelector, elementSelector)\r\n // Overload:function (keySelector, elementSelector, compareSelector)\r\n Enumerable.prototype.toDictionary = function (keySelector, elementSelector, keyType, valueType, comparer) {\r\n keySelector = Utils.createLambda(keySelector);\r\n elementSelector = Utils.createLambda(elementSelector);\r\n\r\n var dict = new (System.Collections.Generic.Dictionary$2(keyType, valueType)).$ctor3(comparer);\r\n this.forEach(function (x) {\r\n dict.add(keySelector(x), elementSelector(x));\r\n });\r\n return dict;\r\n };\r\n\r\n // Overload:function ()\r\n // Overload:function (replacer)\r\n // Overload:function (replacer, space)\r\n Enumerable.prototype.toJSONString = function (replacer, space) {\r\n if (typeof JSON === Types.Undefined || JSON.stringify == null) {\r\n throw new Error(\"toJSONString can't find JSON.stringify. This works native JSON support Browser or include json2.js\");\r\n }\r\n return JSON.stringify(this.ToArray(), replacer, space);\r\n };\r\n\r\n // Overload:function ()\r\n // Overload:function (separator)\r\n // Overload:function (separator,selector)\r\n Enumerable.prototype.toJoinedString = function (separator, selector) {\r\n if (separator == null) separator = \"\";\r\n if (selector == null) selector = Functions.Identity;\r\n\r\n return this.select(selector).ToArray().join(separator);\r\n };\r\n\r\n /* Action Methods */\r\n\r\n // Overload:function (action)\r\n // Overload:function (action)\r\n Enumerable.prototype.doAction = function (action) {\r\n var source = this;\r\n action = Utils.createLambda(action);\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.GetEnumerator(); },\r\n function () {\r\n if (enumerator.moveNext()) {\r\n action(enumerator.Current, index++);\r\n return this.yieldReturn(enumerator.Current);\r\n }\r\n return false;\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function (action)\r\n // Overload:function (action)\r\n // Overload:function (func)\r\n // Overload:function (func)\r\n Enumerable.prototype.forEach = function (action) {\r\n action = Utils.createLambda(action);\r\n\r\n var index = 0;\r\n var enumerator = this.GetEnumerator();\r\n try {\r\n while (enumerator.moveNext()) {\r\n if (action(enumerator.Current, index++) === false) break;\r\n }\r\n } finally {\r\n Utils.Dispose(enumerator);\r\n }\r\n };\r\n\r\n // Overload:function ()\r\n // Overload:function (separator)\r\n // Overload:function (separator,selector)\r\n Enumerable.prototype.write = function (separator, selector) {\r\n if (separator == null) separator = \"\";\r\n selector = Utils.createLambda(selector);\r\n\r\n var isFirst = true;\r\n this.forEach(function (item) {\r\n if (isFirst) isFirst = false;\r\n else document.write(separator);\r\n document.write(selector(item));\r\n });\r\n };\r\n\r\n // Overload:function ()\r\n // Overload:function (selector)\r\n Enumerable.prototype.writeLine = function (selector) {\r\n selector = Utils.createLambda(selector);\r\n\r\n this.forEach(function (item) {\r\n document.writeln(selector(item) + \"
\");\r\n });\r\n };\r\n\r\n Enumerable.prototype.force = function () {\r\n var enumerator = this.GetEnumerator();\r\n\r\n try {\r\n while (enumerator.moveNext()) {\r\n }\r\n }\r\n finally {\r\n Utils.Dispose(enumerator);\r\n }\r\n };\r\n\r\n /* Functional Methods */\r\n\r\n Enumerable.prototype.letBind = function (func) {\r\n func = Utils.createLambda(func);\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerator = Enumerable.from(func(source)).GetEnumerator();\r\n },\r\n function () {\r\n return (enumerator.moveNext())\r\n ? this.yieldReturn(enumerator.Current)\r\n : false;\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n });\r\n };\r\n\r\n Enumerable.prototype.share = function () {\r\n var source = this;\r\n var sharedEnumerator;\r\n var disposed = false;\r\n\r\n return new DisposableEnumerable(function () {\r\n return new IEnumerator(\r\n function () {\r\n if (sharedEnumerator == null) {\r\n sharedEnumerator = source.GetEnumerator();\r\n }\r\n },\r\n function () {\r\n if (disposed) throw new Error(\"enumerator is disposed\");\r\n\r\n return (sharedEnumerator.moveNext())\r\n ? this.yieldReturn(sharedEnumerator.Current)\r\n : false;\r\n },\r\n Functions.Blank\r\n );\r\n }, function () {\r\n disposed = true;\r\n Utils.Dispose(sharedEnumerator);\r\n });\r\n };\r\n\r\n Enumerable.prototype.memoize = function () {\r\n var source = this;\r\n var cache;\r\n var enumerator;\r\n var disposed = false;\r\n\r\n return new DisposableEnumerable(function () {\r\n var index = -1;\r\n\r\n return new IEnumerator(\r\n function () {\r\n if (enumerator == null) {\r\n enumerator = source.GetEnumerator();\r\n cache = [];\r\n }\r\n },\r\n function () {\r\n if (disposed) throw new Error(\"enumerator is disposed\");\r\n\r\n index++;\r\n if (cache.length <= index) {\r\n return (enumerator.moveNext())\r\n ? this.yieldReturn(cache[index] = enumerator.Current)\r\n : false;\r\n }\r\n\r\n return this.yieldReturn(cache[index]);\r\n },\r\n Functions.Blank\r\n );\r\n }, function () {\r\n disposed = true;\r\n Utils.Dispose(enumerator);\r\n cache = null;\r\n });\r\n };\r\n\r\n /* Error Handling Methods */\r\n\r\n Enumerable.prototype.catchError = function (handler) {\r\n handler = Utils.createLambda(handler);\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.GetEnumerator(); },\r\n function () {\r\n try {\r\n return (enumerator.moveNext())\r\n ? this.yieldReturn(enumerator.Current)\r\n : false;\r\n } catch (e) {\r\n handler(e);\r\n return false;\r\n }\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n });\r\n };\r\n\r\n Enumerable.prototype.finallyAction = function (finallyAction) {\r\n finallyAction = Utils.createLambda(finallyAction);\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.GetEnumerator(); },\r\n function () {\r\n return (enumerator.moveNext())\r\n ? this.yieldReturn(enumerator.Current)\r\n : false;\r\n },\r\n function () {\r\n try {\r\n Utils.Dispose(enumerator);\r\n } finally {\r\n finallyAction();\r\n }\r\n });\r\n });\r\n };\r\n\r\n /* For Debug Methods */\r\n\r\n // Overload:function ()\r\n // Overload:function (selector)\r\n Enumerable.prototype.log = function (selector) {\r\n selector = Utils.createLambda(selector);\r\n\r\n return this.doAction(function (item) {\r\n if (typeof console !== Types.Undefined) {\r\n console.log(selector(item));\r\n }\r\n });\r\n };\r\n\r\n // Overload:function ()\r\n // Overload:function (message)\r\n // Overload:function (message,selector)\r\n Enumerable.prototype.trace = function (message, selector) {\r\n if (message == null) message = \"Trace\";\r\n selector = Utils.createLambda(selector);\r\n\r\n return this.doAction(function (item) {\r\n if (typeof console !== Types.Undefined) {\r\n console.log(message, selector(item));\r\n }\r\n });\r\n };\r\n\r\n // private\r\n var defaultComparer = {\r\n compare: function (x, y) {\r\n if (!Bridge.hasValue(x)) {\r\n return !Bridge.hasValue(y) ? 0 : -1;\r\n } else if (!Bridge.hasValue(y)) {\r\n return 1;\r\n }\r\n\r\n if (typeof x == \"string\" && typeof y == \"string\") {\r\n var result = System.String.compare(x, y, true);\r\n\r\n if (result !== 0) {\r\n return result;\r\n }\r\n }\r\n\r\n return Bridge.compare(x, y);\r\n }\r\n };\r\n var OrderedEnumerable = function (source, keySelector, comparer, descending, parent) {\r\n this.source = source;\r\n this.keySelector = Utils.createLambda(keySelector);\r\n this.comparer = comparer || defaultComparer;\r\n this.descending = descending;\r\n this.parent = parent;\r\n };\r\n OrderedEnumerable.prototype = new Enumerable();\r\n OrderedEnumerable.prototype.constructor = OrderedEnumerable;\r\n Bridge.definei(\"System.Linq.IOrderedEnumerable$1\");\r\n OrderedEnumerable.$$inherits = [];\r\n Bridge.Class.addExtend(OrderedEnumerable, [System.Collections.IEnumerable, System.Linq.IOrderedEnumerable$1]);\r\n\r\n OrderedEnumerable.prototype.createOrderedEnumerable = function (keySelector, comparer, descending) {\r\n return new OrderedEnumerable(this.source, keySelector, comparer, descending, this);\r\n };\r\n\r\n OrderedEnumerable.prototype.thenBy = function (keySelector, comparer) {\r\n return this.createOrderedEnumerable(keySelector, comparer, false);\r\n };\r\n\r\n OrderedEnumerable.prototype.thenByDescending = function (keySelector, comparer) {\r\n return this.createOrderedEnumerable(keySelector, comparer, true);\r\n };\r\n\r\n OrderedEnumerable.prototype.GetEnumerator = function () {\r\n var self = this;\r\n var buffer;\r\n var indexes;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () {\r\n buffer = [];\r\n indexes = [];\r\n self.source.forEach(function (item, index) {\r\n buffer.push(item);\r\n indexes.push(index);\r\n });\r\n var sortContext = SortContext.create(self, null);\r\n sortContext.GenerateKeys(buffer);\r\n\r\n indexes.sort(function (a, b) { return sortContext.compare(a, b); });\r\n },\r\n function () {\r\n return (index < indexes.length)\r\n ? this.yieldReturn(buffer[indexes[index++]])\r\n : false;\r\n },\r\n Functions.Blank\r\n );\r\n };\r\n\r\n var SortContext = function (keySelector, comparer, descending, child) {\r\n this.keySelector = keySelector;\r\n this.comparer = comparer;\r\n this.descending = descending;\r\n this.child = child;\r\n this.keys = null;\r\n };\r\n\r\n SortContext.create = function (orderedEnumerable, currentContext) {\r\n var context = new SortContext(orderedEnumerable.keySelector, orderedEnumerable.comparer, orderedEnumerable.descending, currentContext);\r\n if (orderedEnumerable.parent != null) return SortContext.create(orderedEnumerable.parent, context);\r\n return context;\r\n };\r\n\r\n SortContext.prototype.GenerateKeys = function (source) {\r\n var len = source.length;\r\n var keySelector = this.keySelector;\r\n var keys = new Array(len);\r\n for (var i = 0; i < len; i++) keys[i] = keySelector(source[i]);\r\n this.keys = keys;\r\n\r\n if (this.child != null) this.child.GenerateKeys(source);\r\n };\r\n\r\n SortContext.prototype.compare = function (index1, index2) {\r\n var comparison = this.comparer.compare(this.keys[index1], this.keys[index2]);\r\n\r\n if (comparison == 0) {\r\n if (this.child != null) return this.child.compare(index1, index2);\r\n return Utils.compare(index1, index2);\r\n }\r\n\r\n return (this.descending) ? -comparison : comparison;\r\n };\r\n\r\n var DisposableEnumerable = function (GetEnumerator, dispose) {\r\n this.Dispose = dispose;\r\n Enumerable.call(this, GetEnumerator);\r\n };\r\n DisposableEnumerable.prototype = new Enumerable();\r\n\r\n // optimize array or arraylike object\r\n\r\n var ArrayEnumerable = function (source) {\r\n this.getSource = function () { return source; };\r\n };\r\n ArrayEnumerable.prototype = new Enumerable();\r\n\r\n ArrayEnumerable.prototype.any = function (predicate) {\r\n return (predicate == null)\r\n ? (this.getSource().length > 0)\r\n : Enumerable.prototype.any.apply(this, arguments);\r\n };\r\n\r\n ArrayEnumerable.prototype.count = function (predicate) {\r\n return (predicate == null)\r\n ? this.getSource().length\r\n : Enumerable.prototype.count.apply(this, arguments);\r\n };\r\n\r\n ArrayEnumerable.prototype.elementAt = function (index) {\r\n var source = this.getSource();\r\n return (0 <= index && index < source.length)\r\n ? source[index]\r\n : Enumerable.prototype.elementAt.apply(this, arguments);\r\n };\r\n\r\n ArrayEnumerable.prototype.elementAtOrDefault = function (index, defaultValue) {\r\n if (defaultValue === undefined) defaultValue = null;\r\n var source = this.getSource();\r\n return (0 <= index && index < source.length)\r\n ? source[index]\r\n : defaultValue;\r\n };\r\n\r\n ArrayEnumerable.prototype.first = function (predicate) {\r\n var source = this.getSource();\r\n return (predicate == null && source.length > 0)\r\n ? source[0]\r\n : Enumerable.prototype.first.apply(this, arguments);\r\n };\r\n\r\n ArrayEnumerable.prototype.firstOrDefault = function (predicate, defaultValue) {\r\n if (defaultValue === undefined) defaultValue = null;\r\n if (predicate != null) {\r\n return Enumerable.prototype.firstOrDefault.apply(this, arguments);\r\n }\r\n\r\n var source = this.getSource();\r\n return source.length > 0 ? source[0] : defaultValue;\r\n };\r\n\r\n ArrayEnumerable.prototype.last = function (predicate) {\r\n var source = this.getSource();\r\n return (predicate == null && source.length > 0)\r\n ? source[source.length - 1]\r\n : Enumerable.prototype.last.apply(this, arguments);\r\n };\r\n\r\n ArrayEnumerable.prototype.lastOrDefault = function (predicate, defaultValue) {\r\n if (defaultValue === undefined) defaultValue = null;\r\n if (predicate != null) {\r\n return Enumerable.prototype.lastOrDefault.apply(this, arguments);\r\n }\r\n\r\n var source = this.getSource();\r\n return source.length > 0 ? source[source.length - 1] : defaultValue;\r\n };\r\n\r\n ArrayEnumerable.prototype.skip = function (count) {\r\n var source = this.getSource();\r\n\r\n return new Enumerable(function () {\r\n var index;\r\n\r\n return new IEnumerator(\r\n function () { index = (count < 0) ? 0 : count; },\r\n function () {\r\n return (index < source.length)\r\n ? this.yieldReturn(source[index++])\r\n : false;\r\n },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n ArrayEnumerable.prototype.takeExceptLast = function (count) {\r\n if (count == null) count = 1;\r\n return this.take(this.getSource().length - count);\r\n };\r\n\r\n ArrayEnumerable.prototype.takeFromLast = function (count) {\r\n return this.skip(this.getSource().length - count);\r\n };\r\n\r\n ArrayEnumerable.prototype.reverse = function () {\r\n var source = this.getSource();\r\n\r\n return new Enumerable(function () {\r\n var index;\r\n\r\n return new IEnumerator(\r\n function () {\r\n index = source.length;\r\n },\r\n function () {\r\n return (index > 0)\r\n ? this.yieldReturn(source[--index])\r\n : false;\r\n },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n ArrayEnumerable.prototype.sequenceEqual = function (second, comparer) {\r\n if ((second instanceof ArrayEnumerable || second instanceof Array)\r\n && comparer == null\r\n && Enumerable.from(second).count() != this.count()) {\r\n return false;\r\n }\r\n\r\n return Enumerable.prototype.sequenceEqual.apply(this, arguments);\r\n };\r\n\r\n ArrayEnumerable.prototype.toJoinedString = function (separator, selector) {\r\n var source = this.getSource();\r\n if (selector != null || !(source instanceof Array)) {\r\n return Enumerable.prototype.toJoinedString.apply(this, arguments);\r\n }\r\n\r\n if (separator == null) separator = \"\";\r\n return source.join(separator);\r\n };\r\n\r\n ArrayEnumerable.prototype.GetEnumerator = function () {\r\n return new Bridge.ArrayEnumerator(this.getSource());\r\n };\r\n\r\n // optimization for multiple where and multiple select and whereselect\r\n\r\n var WhereEnumerable = function (source, predicate) {\r\n this.prevSource = source;\r\n this.prevPredicate = predicate; // predicate.length always <= 1\r\n };\r\n WhereEnumerable.prototype = new Enumerable();\r\n\r\n WhereEnumerable.prototype.where = function (predicate) {\r\n predicate = Utils.createLambda(predicate);\r\n\r\n if (predicate.length <= 1) {\r\n var prevPredicate = this.prevPredicate;\r\n var composedPredicate = function (x) { return prevPredicate(x) && predicate(x); };\r\n return new WhereEnumerable(this.prevSource, composedPredicate);\r\n }\r\n else {\r\n // if predicate use index, can't compose\r\n return Enumerable.prototype.where.call(this, predicate);\r\n }\r\n };\r\n\r\n WhereEnumerable.prototype.select = function (selector) {\r\n selector = Utils.createLambda(selector);\r\n\r\n return (selector.length <= 1)\r\n ? new WhereSelectEnumerable(this.prevSource, this.prevPredicate, selector)\r\n : Enumerable.prototype.select.call(this, selector);\r\n };\r\n\r\n WhereEnumerable.prototype.GetEnumerator = function () {\r\n var predicate = this.prevPredicate;\r\n var source = this.prevSource;\r\n var enumerator;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.GetEnumerator(); },\r\n function () {\r\n while (enumerator.moveNext()) {\r\n if (predicate(enumerator.Current)) {\r\n return this.yieldReturn(enumerator.Current);\r\n }\r\n }\r\n return false;\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n };\r\n\r\n var WhereSelectEnumerable = function (source, predicate, selector) {\r\n this.prevSource = source;\r\n this.prevPredicate = predicate; // predicate.length always <= 1 or null\r\n this.prevSelector = selector; // selector.length always <= 1\r\n };\r\n WhereSelectEnumerable.prototype = new Enumerable();\r\n\r\n WhereSelectEnumerable.prototype.where = function (predicate) {\r\n predicate = Utils.createLambda(predicate);\r\n\r\n return (predicate.length <= 1)\r\n ? new WhereEnumerable(this, predicate)\r\n : Enumerable.prototype.where.call(this, predicate);\r\n };\r\n\r\n WhereSelectEnumerable.prototype.select = function (selector) {\r\n selector = Utils.createLambda(selector);\r\n\r\n if (selector.length <= 1) {\r\n var prevSelector = this.prevSelector;\r\n var composedSelector = function (x) { return selector(prevSelector(x)); };\r\n return new WhereSelectEnumerable(this.prevSource, this.prevPredicate, composedSelector);\r\n }\r\n else {\r\n // if selector use index, can't compose\r\n return Enumerable.prototype.select.call(this, selector);\r\n }\r\n };\r\n\r\n WhereSelectEnumerable.prototype.GetEnumerator = function () {\r\n var predicate = this.prevPredicate;\r\n var selector = this.prevSelector;\r\n var source = this.prevSource;\r\n var enumerator;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.GetEnumerator(); },\r\n function () {\r\n while (enumerator.moveNext()) {\r\n if (predicate == null || predicate(enumerator.Current)) {\r\n return this.yieldReturn(selector(enumerator.Current));\r\n }\r\n }\r\n return false;\r\n },\r\n function () { Utils.Dispose(enumerator); });\r\n };\r\n\r\n // Collections\r\n\r\n // dictionary = Dictionary\r\n var Lookup = function (dictionary, order, nullKey) {\r\n this.count = function () {\r\n return dictionary.Count;\r\n };\r\n this.get = function (key) {\r\n if (key == null) {\r\n return Enumerable.from(nullKey ? nullKey : []);\r\n }\r\n\r\n var value = { v: null };\r\n var success = dictionary.tryGetValue(key, value);\r\n return Enumerable.from(success ? value.v : []);\r\n };\r\n this.contains = function (key) {\r\n if (key == null) {\r\n return !!nullKey;\r\n }\r\n return dictionary.containsKey(key);\r\n };\r\n this.toEnumerable = function () {\r\n return Enumerable.from(order).select(function (key) {\r\n if (key == null) {\r\n return new Grouping(key, nullKey);\r\n }\r\n return new Grouping(key, dictionary.getItem(key));\r\n });\r\n };\r\n this.GetEnumerator = function () {\r\n return this.toEnumerable().GetEnumerator();\r\n };\r\n };\r\n\r\n Bridge.definei(\"System.Linq.ILookup$2\");\r\n Lookup.$$inherits = [];\r\n Bridge.Class.addExtend(Lookup, [System.Collections.IEnumerable, System.Linq.ILookup$2]);\r\n\r\n var Grouping = function (groupKey, elements) {\r\n this.key = function () {\r\n return groupKey;\r\n };\r\n ArrayEnumerable.call(this, elements);\r\n };\r\n Grouping.prototype = new ArrayEnumerable();\r\n Bridge.definei(\"System.Linq.IGrouping$2\");\r\n Grouping.prototype.constructor = Grouping;\r\n\r\n Grouping.$$inherits = [];\r\n Bridge.Class.addExtend(Grouping, [System.Collections.IEnumerable, System.Linq.IGrouping$2]);\r\n\r\n // module export\r\n /*if (typeof define === Types.Function && define.amd) { // AMD\r\n define(\"linqjs\", [], function () { return Enumerable; });\r\n } else if (typeof module !== Types.Undefined && module.exports) { // Node\r\n module.exports = Enumerable;\r\n } else {\r\n root.Enumerable = Enumerable;\r\n }*/\r\n\r\n Bridge.Linq = {};\r\n Bridge.Linq.Enumerable = Enumerable;\r\n\r\n System.Linq = System.Linq || {};\r\n System.Linq.Enumerable = Enumerable;\r\n System.Linq.Grouping$2 = Grouping;\r\n System.Linq.Lookup$2 = Lookup;\r\n System.Linq.OrderedEnumerable$1 = OrderedEnumerable;\r\n})(Bridge.global);\r\n\r\n // @source CollectionDataContractAttribute.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.CollectionDataContractAttribute\", {\r\n inherits: [System.Attribute],\r\n fields: {\r\n _name: null,\r\n _ns: null,\r\n _itemName: null,\r\n _keyName: null,\r\n _valueName: null,\r\n _isReference: false,\r\n _isNameSetExplicitly: false,\r\n _isNamespaceSetExplicitly: false,\r\n _isReferenceSetExplicitly: false,\r\n _isItemNameSetExplicitly: false,\r\n _isKeyNameSetExplicitly: false,\r\n _isValueNameSetExplicitly: false\r\n },\r\n props: {\r\n Namespace: {\r\n get: function () {\r\n return this._ns;\r\n },\r\n set: function (value) {\r\n this._ns = value;\r\n this._isNamespaceSetExplicitly = true;\r\n }\r\n },\r\n IsNamespaceSetExplicitly: {\r\n get: function () {\r\n return this._isNamespaceSetExplicitly;\r\n }\r\n },\r\n Name: {\r\n get: function () {\r\n return this._name;\r\n },\r\n set: function (value) {\r\n this._name = value;\r\n this._isNameSetExplicitly = true;\r\n }\r\n },\r\n IsNameSetExplicitly: {\r\n get: function () {\r\n return this._isNameSetExplicitly;\r\n }\r\n },\r\n ItemName: {\r\n get: function () {\r\n return this._itemName;\r\n },\r\n set: function (value) {\r\n this._itemName = value;\r\n this._isItemNameSetExplicitly = true;\r\n }\r\n },\r\n IsItemNameSetExplicitly: {\r\n get: function () {\r\n return this._isItemNameSetExplicitly;\r\n }\r\n },\r\n KeyName: {\r\n get: function () {\r\n return this._keyName;\r\n },\r\n set: function (value) {\r\n this._keyName = value;\r\n this._isKeyNameSetExplicitly = true;\r\n }\r\n },\r\n IsReference: {\r\n get: function () {\r\n return this._isReference;\r\n },\r\n set: function (value) {\r\n this._isReference = value;\r\n this._isReferenceSetExplicitly = true;\r\n }\r\n },\r\n IsReferenceSetExplicitly: {\r\n get: function () {\r\n return this._isReferenceSetExplicitly;\r\n }\r\n },\r\n IsKeyNameSetExplicitly: {\r\n get: function () {\r\n return this._isKeyNameSetExplicitly;\r\n }\r\n },\r\n ValueName: {\r\n get: function () {\r\n return this._valueName;\r\n },\r\n set: function (value) {\r\n this._valueName = value;\r\n this._isValueNameSetExplicitly = true;\r\n }\r\n },\r\n IsValueNameSetExplicitly: {\r\n get: function () {\r\n return this._isValueNameSetExplicitly;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n }\r\n }\r\n });\r\n\r\n // @source ContractNamespaceAttribute.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.ContractNamespaceAttribute\", {\r\n inherits: [System.Attribute],\r\n fields: {\r\n _clrNamespace: null,\r\n _contractNamespace: null\r\n },\r\n props: {\r\n ClrNamespace: {\r\n get: function () {\r\n return this._clrNamespace;\r\n },\r\n set: function (value) {\r\n this._clrNamespace = value;\r\n }\r\n },\r\n ContractNamespace: {\r\n get: function () {\r\n return this._contractNamespace;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function (contractNamespace) {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n this._contractNamespace = contractNamespace;\r\n }\r\n }\r\n });\r\n\r\n // @source DataContractAttribute.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.DataContractAttribute\", {\r\n inherits: [System.Attribute],\r\n fields: {\r\n _name: null,\r\n _ns: null,\r\n _isNameSetExplicitly: false,\r\n _isNamespaceSetExplicitly: false,\r\n _isReference: false,\r\n _isReferenceSetExplicitly: false\r\n },\r\n props: {\r\n IsReference: {\r\n get: function () {\r\n return this._isReference;\r\n },\r\n set: function (value) {\r\n this._isReference = value;\r\n this._isReferenceSetExplicitly = true;\r\n }\r\n },\r\n IsReferenceSetExplicitly: {\r\n get: function () {\r\n return this._isReferenceSetExplicitly;\r\n }\r\n },\r\n Namespace: {\r\n get: function () {\r\n return this._ns;\r\n },\r\n set: function (value) {\r\n this._ns = value;\r\n this._isNamespaceSetExplicitly = true;\r\n }\r\n },\r\n IsNamespaceSetExplicitly: {\r\n get: function () {\r\n return this._isNamespaceSetExplicitly;\r\n }\r\n },\r\n Name: {\r\n get: function () {\r\n return this._name;\r\n },\r\n set: function (value) {\r\n this._name = value;\r\n this._isNameSetExplicitly = true;\r\n }\r\n },\r\n IsNameSetExplicitly: {\r\n get: function () {\r\n return this._isNameSetExplicitly;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n }\r\n }\r\n });\r\n\r\n // @source DataMemberAttribute.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.DataMemberAttribute\", {\r\n inherits: [System.Attribute],\r\n fields: {\r\n _name: null,\r\n _isNameSetExplicitly: false,\r\n _order: 0,\r\n _isRequired: false,\r\n _emitDefaultValue: false\r\n },\r\n props: {\r\n Name: {\r\n get: function () {\r\n return this._name;\r\n },\r\n set: function (value) {\r\n this._name = value;\r\n this._isNameSetExplicitly = true;\r\n }\r\n },\r\n IsNameSetExplicitly: {\r\n get: function () {\r\n return this._isNameSetExplicitly;\r\n }\r\n },\r\n Order: {\r\n get: function () {\r\n return this._order;\r\n },\r\n set: function (value) {\r\n if (value < 0) {\r\n throw new System.Runtime.Serialization.InvalidDataContractException.$ctor1(\"Property 'Order' in DataMemberAttribute attribute cannot be a negative number.\");\r\n }\r\n this._order = value;\r\n }\r\n },\r\n IsRequired: {\r\n get: function () {\r\n return this._isRequired;\r\n },\r\n set: function (value) {\r\n this._isRequired = value;\r\n }\r\n },\r\n EmitDefaultValue: {\r\n get: function () {\r\n return this._emitDefaultValue;\r\n },\r\n set: function (value) {\r\n this._emitDefaultValue = value;\r\n }\r\n }\r\n },\r\n ctors: {\r\n init: function () {\r\n this._order = -1;\r\n this._emitDefaultValue = true;\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n }\r\n }\r\n });\r\n\r\n // @source EnumMemberAttribute.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.EnumMemberAttribute\", {\r\n inherits: [System.Attribute],\r\n fields: {\r\n _value: null,\r\n _isValueSetExplicitly: false\r\n },\r\n props: {\r\n Value: {\r\n get: function () {\r\n return this._value;\r\n },\r\n set: function (value) {\r\n this._value = value;\r\n this._isValueSetExplicitly = true;\r\n }\r\n },\r\n IsValueSetExplicitly: {\r\n get: function () {\r\n return this._isValueSetExplicitly;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n }\r\n }\r\n });\r\n\r\n // @source IDeserializationCallback.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.IDeserializationCallback\", {\r\n $kind: \"interface\"\r\n });\r\n\r\n // @source IFormatterConverter.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.IFormatterConverter\", {\r\n $kind: \"interface\"\r\n });\r\n\r\n // @source IgnoreDataMemberAttribute.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.IgnoreDataMemberAttribute\", {\r\n inherits: [System.Attribute],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n }\r\n }\r\n });\r\n\r\n // @source InvalidDataContractException.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.InvalidDataContractException\", {\r\n inherits: [System.Exception],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.Exception.ctor.call(this);\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.Exception.ctor.call(this, message);\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.Exception.ctor.call(this, message, innerException);\r\n }\r\n }\r\n });\r\n\r\n // @source IObjectReference.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.IObjectReference\", {\r\n $kind: \"interface\"\r\n });\r\n\r\n // @source ISafeSerializationData.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.ISafeSerializationData\", {\r\n $kind: \"interface\"\r\n });\r\n\r\n // @source ISerializable.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.ISerializable\", {\r\n $kind: \"interface\"\r\n });\r\n\r\n // @source ISerializationSurrogateProvider.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.ISerializationSurrogateProvider\", {\r\n $kind: \"interface\"\r\n });\r\n\r\n // @source KnownTypeAttribute.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.KnownTypeAttribute\", {\r\n inherits: [System.Attribute],\r\n fields: {\r\n _methodName: null,\r\n _type: null\r\n },\r\n props: {\r\n MethodName: {\r\n get: function () {\r\n return this._methodName;\r\n }\r\n },\r\n Type: {\r\n get: function () {\r\n return this._type;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n },\r\n $ctor2: function (type) {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n this._type = type;\r\n },\r\n $ctor1: function (methodName) {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n this._methodName = methodName;\r\n }\r\n }\r\n });\r\n\r\n // @source SerializationEntry.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.SerializationEntry\", {\r\n $kind: \"struct\",\r\n statics: {\r\n methods: {\r\n getDefaultValue: function () { return new System.Runtime.Serialization.SerializationEntry(); }\r\n }\r\n },\r\n fields: {\r\n _name: null,\r\n _value: null,\r\n _type: null\r\n },\r\n props: {\r\n Value: {\r\n get: function () {\r\n return this._value;\r\n }\r\n },\r\n Name: {\r\n get: function () {\r\n return this._name;\r\n }\r\n },\r\n ObjectType: {\r\n get: function () {\r\n return this._type;\r\n }\r\n }\r\n },\r\n ctors: {\r\n $ctor1: function (entryName, entryValue, entryType) {\r\n this.$initialize();\r\n this._name = entryName;\r\n this._value = entryValue;\r\n this._type = entryType;\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n getHashCode: function () {\r\n var h = Bridge.addHash([7645431029, this._name, this._value, this._type]);\r\n return h;\r\n },\r\n equals: function (o) {\r\n if (!Bridge.is(o, System.Runtime.Serialization.SerializationEntry)) {\r\n return false;\r\n }\r\n return Bridge.equals(this._name, o._name) && Bridge.equals(this._value, o._value) && Bridge.equals(this._type, o._type);\r\n },\r\n $clone: function (to) {\r\n var s = to || new System.Runtime.Serialization.SerializationEntry();\r\n s._name = this._name;\r\n s._value = this._value;\r\n s._type = this._type;\r\n return s;\r\n }\r\n }\r\n });\r\n\r\n // @source SerializationException.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.SerializationException\", {\r\n inherits: [System.SystemException],\r\n statics: {\r\n fields: {\r\n s_nullMessage: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.s_nullMessage = \"Serialization error.\";\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, System.Runtime.Serialization.SerializationException.s_nullMessage);\r\n this.HResult = -2146233076;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2146233076;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, innerException);\r\n this.HResult = -2146233076;\r\n }\r\n }\r\n });\r\n\r\n // @source SerializationInfoEnumerator.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.SerializationInfoEnumerator\", {\r\n inherits: [System.Collections.IEnumerator],\r\n fields: {\r\n _members: null,\r\n _data: null,\r\n _types: null,\r\n _numItems: 0,\r\n _currItem: 0,\r\n _current: false\r\n },\r\n props: {\r\n System$Collections$IEnumerator$Current: {\r\n get: function () {\r\n return this.Current.$clone();\r\n }\r\n },\r\n Current: {\r\n get: function () {\r\n if (this._current === false) {\r\n throw new System.InvalidOperationException.$ctor1(\"Enumeration has either not started or has already finished.\");\r\n }\r\n return new System.Runtime.Serialization.SerializationEntry.$ctor1(this._members[System.Array.index(this._currItem, this._members)], this._data[System.Array.index(this._currItem, this._data)], this._types[System.Array.index(this._currItem, this._types)]);\r\n }\r\n },\r\n Name: {\r\n get: function () {\r\n if (this._current === false) {\r\n throw new System.InvalidOperationException.$ctor1(\"Enumeration has either not started or has already finished.\");\r\n }\r\n return this._members[System.Array.index(this._currItem, this._members)];\r\n }\r\n },\r\n Value: {\r\n get: function () {\r\n if (this._current === false) {\r\n throw new System.InvalidOperationException.$ctor1(\"Enumeration has either not started or has already finished.\");\r\n }\r\n return this._data[System.Array.index(this._currItem, this._data)];\r\n }\r\n },\r\n ObjectType: {\r\n get: function () {\r\n if (this._current === false) {\r\n throw new System.InvalidOperationException.$ctor1(\"Enumeration has either not started or has already finished.\");\r\n }\r\n return this._types[System.Array.index(this._currItem, this._types)];\r\n }\r\n }\r\n },\r\n alias: [\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"reset\", \"System$Collections$IEnumerator$reset\"\r\n ],\r\n ctors: {\r\n ctor: function (members, info, types, numItems) {\r\n this.$initialize();\r\n\r\n this._members = members;\r\n this._data = info;\r\n this._types = types;\r\n\r\n this._numItems = (numItems - 1) | 0;\r\n this._currItem = -1;\r\n this._current = false;\r\n }\r\n },\r\n methods: {\r\n moveNext: function () {\r\n if (this._currItem < this._numItems) {\r\n this._currItem = (this._currItem + 1) | 0;\r\n this._current = true;\r\n } else {\r\n this._current = false;\r\n }\r\n\r\n return this._current;\r\n },\r\n reset: function () {\r\n this._currItem = -1;\r\n this._current = false;\r\n }\r\n }\r\n });\r\n\r\n // @source StreamingContext.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.StreamingContext\", {\r\n $kind: \"struct\",\r\n statics: {\r\n methods: {\r\n getDefaultValue: function () { return new System.Runtime.Serialization.StreamingContext(); }\r\n }\r\n },\r\n fields: {\r\n _additionalContext: null,\r\n _state: 0\r\n },\r\n props: {\r\n State: {\r\n get: function () {\r\n return this._state;\r\n }\r\n },\r\n Context: {\r\n get: function () {\r\n return this._additionalContext;\r\n }\r\n }\r\n },\r\n ctors: {\r\n $ctor1: function (state) {\r\n System.Runtime.Serialization.StreamingContext.$ctor2.call(this, state, null);\r\n },\r\n $ctor2: function (state, additional) {\r\n this.$initialize();\r\n this._state = state;\r\n this._additionalContext = additional;\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n equals: function (obj) {\r\n if (!(Bridge.is(obj, System.Runtime.Serialization.StreamingContext))) {\r\n return false;\r\n }\r\n var ctx = System.Nullable.getValue(Bridge.cast(Bridge.unbox(obj, System.Runtime.Serialization.StreamingContext), System.Runtime.Serialization.StreamingContext));\r\n return Bridge.referenceEquals(ctx._additionalContext, this._additionalContext) && ctx._state === this._state;\r\n },\r\n getHashCode: function () {\r\n return this._state;\r\n },\r\n $clone: function (to) {\r\n var s = to || new System.Runtime.Serialization.StreamingContext();\r\n s._additionalContext = this._additionalContext;\r\n s._state = this._state;\r\n return s;\r\n }\r\n }\r\n });\r\n\r\n // @source StreamingContextStates.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.StreamingContextStates\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n CrossProcess: 1,\r\n CrossMachine: 2,\r\n File: 4,\r\n Persistence: 8,\r\n Remoting: 16,\r\n Other: 32,\r\n Clone: 64,\r\n CrossAppDomain: 128,\r\n All: 255\r\n }\r\n },\r\n $flags: true\r\n });\r\n\r\n // @source OnSerializingAttribute.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.OnSerializingAttribute\", {\r\n inherits: [System.Attribute]\r\n });\r\n\r\n // @source OnSerializedAttribute.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.OnSerializedAttribute\", {\r\n inherits: [System.Attribute]\r\n });\r\n\r\n // @source OnDeserializingAttribute.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.OnDeserializingAttribute\", {\r\n inherits: [System.Attribute]\r\n });\r\n\r\n // @source OnDeserializedAttribute.js\r\n\r\n Bridge.define(\"System.Runtime.Serialization.OnDeserializedAttribute\", {\r\n inherits: [System.Attribute]\r\n });\r\n\r\n // @source SecurityException.js\r\n\r\n Bridge.define(\"System.Security.SecurityException\", {\r\n inherits: [System.SystemException],\r\n statics: {\r\n fields: {\r\n DemandedName: null,\r\n GrantedSetName: null,\r\n RefusedSetName: null,\r\n DeniedName: null,\r\n PermitOnlyName: null,\r\n UrlName: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.DemandedName = \"Demanded\";\r\n this.GrantedSetName = \"GrantedSet\";\r\n this.RefusedSetName = \"RefusedSet\";\r\n this.DeniedName = \"Denied\";\r\n this.PermitOnlyName = \"PermitOnly\";\r\n this.UrlName = \"Url\";\r\n }\r\n }\r\n },\r\n props: {\r\n Demanded: null,\r\n DenySetInstance: null,\r\n GrantedSet: null,\r\n Method: null,\r\n PermissionState: null,\r\n PermissionType: null,\r\n PermitOnlySetInstance: null,\r\n RefusedSet: null,\r\n Url: null\r\n },\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, \"Security error.\");\r\n this.HResult = -2146233078;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2146233078;\r\n },\r\n $ctor2: function (message, inner) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, inner);\r\n this.HResult = -2146233078;\r\n },\r\n $ctor3: function (message, type) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2146233078;\r\n this.PermissionType = type;\r\n },\r\n $ctor4: function (message, type, state) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2146233078;\r\n this.PermissionType = type;\r\n this.PermissionState = state;\r\n }\r\n },\r\n methods: {\r\n toString: function () {\r\n return Bridge.toString(this);\r\n }\r\n }\r\n });\r\n\r\n // @source UnauthorizedAccessException.js\r\n\r\n Bridge.define(\"System.UnauthorizedAccessException\", {\r\n inherits: [System.SystemException],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, \"Attempted to perform an unauthorized operation.\");\r\n this.HResult = -2147024891;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2147024891;\r\n },\r\n $ctor2: function (message, inner) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, inner);\r\n this.HResult = -2147024891;\r\n }\r\n }\r\n });\r\n\r\n // @source UnhandledExceptionEventArgs.js\r\n\r\n Bridge.define(\"System.UnhandledExceptionEventArgs\", {\r\n fields: {\r\n _exception: null,\r\n _isTerminating: false\r\n },\r\n props: {\r\n ExceptionObject: {\r\n get: function () {\r\n return this._exception;\r\n }\r\n },\r\n IsTerminating: {\r\n get: function () {\r\n return this._isTerminating;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function (exception, isTerminating) {\r\n this.$initialize();\r\n System.Object.call(this);\r\n this._exception = exception;\r\n this._isTerminating = isTerminating;\r\n }\r\n }\r\n });\r\n\r\n // @source Regex.js\r\n\r\n Bridge.define(\"System.Text.RegularExpressions.Regex\", {\r\n statics: {\r\n _cacheSize: 15,\r\n _defaultMatchTimeout: System.TimeSpan.fromMilliseconds(-1),\r\n\r\n getCacheSize: function () {\r\n return System.Text.RegularExpressions.Regex._cacheSize;\r\n },\r\n\r\n setCacheSize: function (value) {\r\n if (value < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"value\");\r\n }\r\n\r\n System.Text.RegularExpressions.Regex._cacheSize = value;\r\n //TODO: remove extra items from cache\r\n },\r\n\r\n escape: function (str) {\r\n if (str == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"str\");\r\n }\r\n\r\n return System.Text.RegularExpressions.RegexParser.escape(str);\r\n },\r\n\r\n unescape: function (str) {\r\n if (str == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"str\");\r\n }\r\n\r\n return System.Text.RegularExpressions.RegexParser.unescape(str);\r\n },\r\n\r\n isMatch: function (input, pattern, options, matchTimeout) {\r\n var scope = System.Text.RegularExpressions;\r\n\r\n if (!Bridge.isDefined(options)) {\r\n options = scope.RegexOptions.None;\r\n }\r\n\r\n if (!Bridge.isDefined(matchTimeout)) {\r\n matchTimeout = scope.Regex._defaultMatchTimeout;\r\n }\r\n\r\n var regex = new System.Text.RegularExpressions.Regex.ctor(pattern, options, matchTimeout, true);\r\n\r\n return regex.isMatch(input);\r\n },\r\n\r\n match: function (input, pattern, options, matchTimeout) {\r\n var scope = System.Text.RegularExpressions;\r\n\r\n if (!Bridge.isDefined(options)) {\r\n options = scope.RegexOptions.None;\r\n }\r\n\r\n if (!Bridge.isDefined(matchTimeout)) {\r\n matchTimeout = scope.Regex._defaultMatchTimeout;\r\n }\r\n\r\n var regex = new System.Text.RegularExpressions.Regex.ctor(pattern, options, matchTimeout, true);\r\n\r\n return regex.match(input);\r\n },\r\n\r\n matches: function (input, pattern, options, matchTimeout) {\r\n var scope = System.Text.RegularExpressions;\r\n\r\n if (!Bridge.isDefined(options)) {\r\n options = scope.RegexOptions.None;\r\n }\r\n\r\n if (!Bridge.isDefined(matchTimeout)) {\r\n matchTimeout = scope.Regex._defaultMatchTimeout;\r\n }\r\n\r\n var regex = new System.Text.RegularExpressions.Regex.ctor(pattern, options, matchTimeout, true);\r\n\r\n return regex.matches(input);\r\n },\r\n\r\n replace: function (input, pattern, replacement, options, matchTimeout) {\r\n var scope = System.Text.RegularExpressions;\r\n\r\n if (!Bridge.isDefined(options)) {\r\n options = scope.RegexOptions.None;\r\n }\r\n\r\n if (!Bridge.isDefined(matchTimeout)) {\r\n matchTimeout = scope.Regex._defaultMatchTimeout;\r\n }\r\n\r\n var regex = new System.Text.RegularExpressions.Regex.ctor(pattern, options, matchTimeout, true);\r\n\r\n return regex.replace(input, replacement);\r\n },\r\n\r\n split: function (input, pattern, options, matchTimeout) {\r\n var scope = System.Text.RegularExpressions;\r\n\r\n if (!Bridge.isDefined(options)) {\r\n options = scope.RegexOptions.None;\r\n }\r\n\r\n if (!Bridge.isDefined(matchTimeout)) {\r\n matchTimeout = scope.Regex._defaultMatchTimeout;\r\n }\r\n\r\n var regex = new System.Text.RegularExpressions.Regex.ctor(pattern, options, matchTimeout, true);\r\n\r\n return regex.split(input);\r\n }\r\n },\r\n\r\n _pattern: \"\",\r\n _matchTimeout: System.TimeSpan.fromMilliseconds(-1),\r\n _runner: null,\r\n _caps: null,\r\n _capsize: 0,\r\n _capnames: null,\r\n _capslist: null,\r\n\r\n config: {\r\n init: function () {\r\n this._options = System.Text.RegularExpressions.RegexOptions.None;\r\n }\r\n },\r\n\r\n ctor: function (pattern, options, matchTimeout, useCache) {\r\n this.$initialize();\r\n\r\n if (!Bridge.isDefined(options)) {\r\n options = System.Text.RegularExpressions.RegexOptions.None;\r\n }\r\n\r\n if (!Bridge.isDefined(matchTimeout)) {\r\n matchTimeout = System.TimeSpan.fromMilliseconds(-1);\r\n }\r\n\r\n if (!Bridge.isDefined(useCache)) {\r\n useCache = false;\r\n }\r\n\r\n var scope = System.Text.RegularExpressions;\r\n\r\n if (pattern == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"pattern\");\r\n }\r\n\r\n if (options < scope.RegexOptions.None || ((options >> 10) !== 0)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"options\");\r\n }\r\n\r\n if (((options & scope.RegexOptions.ECMAScript) !== 0) &&\r\n ((options & ~(scope.RegexOptions.ECMAScript |\r\n scope.RegexOptions.IgnoreCase |\r\n scope.RegexOptions.Multiline |\r\n scope.RegexOptions.CultureInvariant\r\n )) !== 0)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"options\");\r\n }\r\n\r\n // Check if the specified options are supported.\r\n var supportedOptions =\r\n System.Text.RegularExpressions.RegexOptions.IgnoreCase |\r\n System.Text.RegularExpressions.RegexOptions.Multiline |\r\n System.Text.RegularExpressions.RegexOptions.Singleline |\r\n System.Text.RegularExpressions.RegexOptions.IgnorePatternWhitespace |\r\n System.Text.RegularExpressions.RegexOptions.ExplicitCapture;\r\n\r\n if ((options | supportedOptions) !== supportedOptions) {\r\n throw new System.NotSupportedException.$ctor1(\"Specified Regex options are not supported.\");\r\n }\r\n\r\n this._validateMatchTimeout(matchTimeout);\r\n\r\n this._pattern = pattern;\r\n this._options = options;\r\n this._matchTimeout = matchTimeout;\r\n this._runner = new scope.RegexRunner(this);\r\n\r\n //TODO: cache\r\n var patternInfo = this._runner.parsePattern();\r\n\r\n this._capnames = patternInfo.sparseSettings.sparseSlotNameMap;\r\n this._capslist = patternInfo.sparseSettings.sparseSlotNameMap.keys;\r\n this._capsize = this._capslist.length;\r\n },\r\n\r\n getMatchTimeout: function () {\r\n return this._matchTimeout;\r\n },\r\n\r\n getOptions: function () {\r\n return this._options;\r\n },\r\n\r\n getRightToLeft: function () {\r\n return (this._options & System.Text.RegularExpressions.RegexOptions.RightToLeft) !== 0;\r\n },\r\n\r\n isMatch: function (input, startat) {\r\n if (input == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"input\");\r\n }\r\n\r\n if (!Bridge.isDefined(startat)) {\r\n startat = this.getRightToLeft() ? input.length : 0;\r\n }\r\n\r\n var match = this._runner.run(true, -1, input, 0, input.length, startat);\r\n\r\n return match == null;\r\n },\r\n\r\n match: function (input, startat, arg3) {\r\n if (input == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"input\");\r\n }\r\n\r\n var length = input.length,\r\n beginning = 0;\r\n\r\n if (arguments.length === 3) {\r\n beginning = startat;\r\n length = arg3;\r\n startat = this.getRightToLeft() ? beginning + length : beginning;\r\n } else if (!Bridge.isDefined(startat)) {\r\n startat = this.getRightToLeft() ? length : 0;\r\n }\r\n\r\n return this._runner.run(false, -1, input, beginning, length, startat);\r\n },\r\n\r\n matches: function (input, startat) {\r\n if (input == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"input\");\r\n }\r\n\r\n if (!Bridge.isDefined(startat)) {\r\n startat = this.getRightToLeft() ? input.length : 0;\r\n }\r\n\r\n return new System.Text.RegularExpressions.MatchCollection(this, input, 0, input.length, startat);\r\n },\r\n\r\n getGroupNames: function () {\r\n if (this._capslist == null) {\r\n var invariantCulture = System.Globalization.CultureInfo.invariantCulture;\r\n\r\n var result = [];\r\n var max = this._capsize;\r\n var i;\r\n\r\n for (i = 0; i < max; i++) {\r\n result[i] = System.Convert.toString(i, invariantCulture, System.Convert.typeCodes.Int32);\r\n }\r\n\r\n return result;\r\n } else {\r\n return this._capslist.slice();\r\n }\r\n },\r\n\r\n getGroupNumbers: function () {\r\n var caps = this._caps;\r\n var result;\r\n var key;\r\n var max;\r\n var i;\r\n\r\n if (caps == null) {\r\n result = [];\r\n max = this._capsize;\r\n for (i = 0; i < max; i++) {\r\n result.push(i);\r\n }\r\n } else {\r\n result = [];\r\n\r\n for (key in caps) {\r\n if (caps.hasOwnProperty(key)) {\r\n result[caps[key]] = key;\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n },\r\n\r\n groupNameFromNumber: function (i) {\r\n if (this._capslist == null) {\r\n if (i >= 0 && i < this._capsize) {\r\n var invariantCulture = System.Globalization.CultureInfo.invariantCulture;\r\n\r\n return System.Convert.toString(i, invariantCulture, System.Convert.typeCodes.Int32);\r\n }\r\n\r\n return \"\";\r\n } else {\r\n if (this._caps != null) {\r\n var obj = this._caps[i];\r\n\r\n if (obj == null) {\r\n return \"\";\r\n }\r\n\r\n return parseInt(obj);\r\n }\r\n\r\n if (i >= 0 && i < this._capslist.length) {\r\n return this._capslist[i];\r\n }\r\n\r\n return \"\";\r\n }\r\n },\r\n\r\n groupNumberFromName: function (name) {\r\n if (name == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"name\");\r\n }\r\n\r\n // look up name if we have a hashtable of names\r\n if (this._capnames != null) {\r\n var ret = this._capnames[name];\r\n\r\n if (ret == null) {\r\n return -1;\r\n }\r\n\r\n return parseInt(ret);\r\n }\r\n\r\n // convert to an int if it looks like a number\r\n var result = 0;\r\n var ch;\r\n var i;\r\n\r\n for (i = 0; i < name.Length; i++) {\r\n ch = name[i];\r\n\r\n if (ch > \"9\" || ch < \"0\") {\r\n return -1;\r\n }\r\n\r\n result *= 10;\r\n result += (ch - \"0\");\r\n }\r\n\r\n // return int if it's in range\r\n if (result >= 0 && result < this._capsize) {\r\n return result;\r\n }\r\n\r\n return -1;\r\n },\r\n\r\n replace: function (input, evaluator, count, startat) {\r\n if (input == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"input\");\r\n }\r\n\r\n if (!Bridge.isDefined(count)) {\r\n count = -1;\r\n }\r\n\r\n if (!Bridge.isDefined(startat)) {\r\n startat = this.getRightToLeft() ? input.length : 0;\r\n }\r\n\r\n if (evaluator == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"evaluator\");\r\n }\r\n\r\n if (Bridge.isFunction(evaluator)) {\r\n return System.Text.RegularExpressions.RegexReplacement.replace(evaluator, this, input, count, startat);\r\n }\r\n\r\n var repl = System.Text.RegularExpressions.RegexParser.parseReplacement(evaluator, this._caps, this._capsize, this._capnames, this._options);\r\n //TODO: Cache\r\n\r\n return repl.replace(this, input, count, startat);\r\n },\r\n\r\n split: function (input, count, startat) {\r\n if (input == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"input\");\r\n }\r\n\r\n if (!Bridge.isDefined(count)) {\r\n count = 0;\r\n }\r\n\r\n if (!Bridge.isDefined(startat)) {\r\n startat = this.getRightToLeft() ? input.length : 0;\r\n }\r\n\r\n return System.Text.RegularExpressions.RegexReplacement.split(this, input, count, startat);\r\n },\r\n\r\n _validateMatchTimeout: function (matchTimeout) {\r\n var ms = matchTimeout.getTotalMilliseconds();\r\n\r\n if (-1 === ms) {\r\n return;\r\n }\r\n\r\n if (ms > 0 && ms <= 2147483646) {\r\n return;\r\n }\r\n\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"matchTimeout\");\r\n }\r\n });\r\n\r\n // @source RegexCapture.js\r\n\r\n Bridge.define(\"System.Text.RegularExpressions.Capture\", {\r\n _text: \"\",\r\n _index: 0,\r\n _length: 0,\r\n\r\n ctor: function (text, i, l) {\r\n this.$initialize();\r\n this._text = text;\r\n this._index = i;\r\n this._length = l;\r\n },\r\n\r\n getIndex: function () {\r\n return this._index;\r\n },\r\n\r\n getLength: function () {\r\n return this._length;\r\n },\r\n\r\n getValue: function () {\r\n return this._text.substr(this._index, this._length);\r\n },\r\n\r\n toString: function () {\r\n return this.getValue();\r\n },\r\n\r\n _getOriginalString: function () {\r\n return this._text;\r\n },\r\n\r\n _getLeftSubstring: function () {\r\n return this._text.slice(0, _index);\r\n },\r\n\r\n _getRightSubstring: function () {\r\n return this._text.slice(this._index + this._length, this._text.length);\r\n }\r\n });\r\n\r\n // @source RegexCaptureCollection.js\r\n\r\n Bridge.define(\"System.Text.RegularExpressions.CaptureCollection\", {\r\n inherits: function () {\r\n return [System.Collections.ICollection];\r\n },\r\n\r\n config: {\r\n properties: {\r\n Count: {\r\n get: function () {\r\n return this._capcount;\r\n }\r\n }\r\n },\r\n\r\n alias: [\r\n \"GetEnumerator\", \"System$Collections$IEnumerable$GetEnumerator\",\r\n \"getCount\", \"System$Collections$ICollection$getCount\",\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"copyTo\", \"System$Collections$ICollection$copyTo\"\r\n ]\r\n },\r\n\r\n _group: null,\r\n _capcount: 0,\r\n _captures: null,\r\n\r\n ctor: function (group) {\r\n this.$initialize();\r\n this._group = group;\r\n this._capcount = group._capcount;\r\n },\r\n\r\n getSyncRoot: function () {\r\n return this._group;\r\n },\r\n\r\n getIsSynchronized: function () {\r\n return false;\r\n },\r\n\r\n getIsReadOnly: function () {\r\n return true;\r\n },\r\n\r\n getCount: function () {\r\n return this._capcount;\r\n },\r\n\r\n get: function (i) {\r\n if (i === this._capcount - 1 && i >= 0) {\r\n return this._group;\r\n }\r\n\r\n if (i >= this._capcount || i < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"i\");\r\n }\r\n\r\n this._ensureCapturesInited();\r\n\r\n return this._captures[i];\r\n },\r\n\r\n copyTo: function (array, arrayIndex) {\r\n if (array == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n if (array.length < arrayIndex + this._capcount) {\r\n throw new System.IndexOutOfRangeException();\r\n }\r\n\r\n var capture;\r\n var i;\r\n var j;\r\n\r\n for (i = arrayIndex, j = 0; j < this._capcount; i++, j++) {\r\n capture = this.get(j);\r\n System.Array.set(array, capture, [i]);\r\n }\r\n },\r\n\r\n GetEnumerator: function () {\r\n return new System.Text.RegularExpressions.CaptureEnumerator(this);\r\n },\r\n\r\n _ensureCapturesInited: function () {\r\n // first time a capture is accessed, compute them all\r\n if (this._captures == null) {\r\n var captures = [];\r\n var j;\r\n\r\n captures.length = this._capcount;\r\n\r\n for (j = 0; j < this._capcount - 1; j++) {\r\n var index = this._group._caps[j * 2];\r\n var length = this._group._caps[j * 2 + 1];\r\n\r\n captures[j] = new System.Text.RegularExpressions.Capture(this._group._text, index, length);\r\n }\r\n\r\n if (this._capcount > 0) {\r\n captures[this._capcount - 1] = this._group;\r\n }\r\n\r\n this._captures = captures;\r\n }\r\n }\r\n });\r\n\r\n Bridge.define(\"System.Text.RegularExpressions.CaptureEnumerator\", {\r\n inherits: function () {\r\n return [System.Collections.IEnumerator];\r\n },\r\n\r\n config: {\r\n properties: {\r\n Current: {\r\n get: function () {\r\n return this.getCurrent();\r\n }\r\n }\r\n },\r\n alias: [\r\n \"getCurrent\", \"System$Collections$IEnumerator$getCurrent\",\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"reset\", \"System$Collections$IEnumerator$reset\",\r\n \"Current\", \"System$Collections$IEnumerator$Current\"\r\n ]\r\n },\r\n\r\n _captureColl: null,\r\n _curindex: 0,\r\n\r\n ctor: function (captureColl) {\r\n this.$initialize();\r\n this._curindex = -1;\r\n this._captureColl = captureColl;\r\n },\r\n\r\n moveNext: function () {\r\n var size = this._captureColl.getCount();\r\n\r\n if (this._curindex >= size) {\r\n return false;\r\n }\r\n\r\n this._curindex++;\r\n return (this._curindex < size);\r\n },\r\n\r\n getCurrent: function () {\r\n return this.getCapture();\r\n },\r\n\r\n getCapture: function () {\r\n if (this._curindex < 0 || this._curindex >= this._captureColl.getCount()) {\r\n throw new System.InvalidOperationException.$ctor1(\"Enumeration has either not started or has already finished.\");\r\n }\r\n\r\n return this._captureColl.get(this._curindex);\r\n },\r\n\r\n reset: function () {\r\n this._curindex = -1;\r\n }\r\n });\r\n\r\n // @source RegexGroup.js\r\n\r\n Bridge.define(\"System.Text.RegularExpressions.Group\", {\r\n inherits: function () {\r\n return [System.Text.RegularExpressions.Capture];\r\n },\r\n\r\n statics: {\r\n config: {\r\n init: function () {\r\n var empty = new System.Text.RegularExpressions.Group(\"\", [], 0);\r\n\r\n this.getEmpty = function () {\r\n return empty;\r\n }\r\n }\r\n },\r\n\r\n synchronized: function (group) {\r\n if (group == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"group\");\r\n }\r\n\r\n // force Captures to be computed.\r\n var captures = group.getCaptures();\r\n\r\n if (captures.getCount() > 0) {\r\n captures.get(0);\r\n }\r\n\r\n return group;\r\n }\r\n },\r\n\r\n _caps: null,\r\n _capcount: 0,\r\n _capColl: null,\r\n\r\n ctor: function (text, caps, capcount) {\r\n this.$initialize();\r\n var scope = System.Text.RegularExpressions;\r\n var index = capcount === 0 ? 0 : caps[(capcount - 1) * 2];\r\n var length = capcount === 0 ? 0 : caps[(capcount * 2) - 1];\r\n\r\n scope.Capture.ctor.call(this, text, index, length);\r\n\r\n this._caps = caps;\r\n this._capcount = capcount;\r\n },\r\n\r\n getSuccess: function () {\r\n return this._capcount !== 0;\r\n },\r\n\r\n getCaptures: function () {\r\n if (this._capColl == null) {\r\n this._capColl = new System.Text.RegularExpressions.CaptureCollection(this);\r\n }\r\n\r\n return this._capColl;\r\n }\r\n });\r\n\r\n // @source RegexGroupCollection.js\r\n\r\n Bridge.define(\"System.Text.RegularExpressions.GroupCollection\", {\r\n inherits: function () {\r\n return [System.Collections.ICollection];\r\n },\r\n\r\n config: {\r\n properties: {\r\n Count: {\r\n get: function () {\r\n return this._match._matchcount.length;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"GetEnumerator\", \"System$Collections$IEnumerable$GetEnumerator\",\r\n \"getCount\", \"System$Collections$ICollection$getCount\",\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"copyTo\", \"System$Collections$ICollection$copyTo\"\r\n ]\r\n },\r\n\r\n _match: null,\r\n _captureMap: null,\r\n _groups: null,\r\n\r\n ctor: function (match, caps) {\r\n this.$initialize();\r\n this._match = match;\r\n this._captureMap = caps;\r\n },\r\n\r\n getSyncRoot: function () {\r\n return this._match;\r\n },\r\n\r\n getIsSynchronized: function () {\r\n return false;\r\n },\r\n\r\n getIsReadOnly: function () {\r\n return true;\r\n },\r\n\r\n getCount: function () {\r\n return this._match._matchcount.length;\r\n },\r\n\r\n get: function (groupnum) {\r\n return this._getGroup(groupnum);\r\n },\r\n\r\n getByName: function (groupname) {\r\n if (this._match._regex == null) {\r\n return System.Text.RegularExpressions.Group.getEmpty();\r\n }\r\n\r\n var groupnum = this._match._regex.groupNumberFromName(groupname);\r\n\r\n return this._getGroup(groupnum);\r\n },\r\n\r\n copyTo: function (array, arrayIndex) {\r\n if (array == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n var count = this.getCount();\r\n\r\n if (array.length < arrayIndex + count) {\r\n throw new System.IndexOutOfRangeException();\r\n }\r\n\r\n var group;\r\n var i;\r\n var j;\r\n\r\n for (i = arrayIndex, j = 0; j < count; i++, j++) {\r\n group = this._getGroup(j);\r\n System.Array.set(array, group, [i]);\r\n }\r\n },\r\n\r\n GetEnumerator: function () {\r\n return new System.Text.RegularExpressions.GroupEnumerator(this);\r\n },\r\n\r\n _getGroup: function (groupnum) {\r\n var group;\r\n\r\n if (this._captureMap != null) {\r\n var num = this._captureMap[groupnum];\r\n\r\n if (num == null) {\r\n group = System.Text.RegularExpressions.Group.getEmpty();\r\n } else {\r\n group = this._getGroupImpl(num);\r\n }\r\n } else {\r\n if (groupnum >= this._match._matchcount.length || groupnum < 0) {\r\n group = System.Text.RegularExpressions.Group.getEmpty();\r\n } else {\r\n group = this._getGroupImpl(groupnum);\r\n }\r\n }\r\n\r\n return group;\r\n },\r\n\r\n _getGroupImpl: function (groupnum) {\r\n if (groupnum === 0) {\r\n return this._match;\r\n }\r\n\r\n this._ensureGroupsInited();\r\n\r\n return this._groups[groupnum];\r\n },\r\n\r\n _ensureGroupsInited: function () {\r\n // Construct all the Group objects the first time GetGroup is called\r\n if (this._groups == null) {\r\n var groups = [];\r\n\r\n groups.length = this._match._matchcount.length;\r\n\r\n if (groups.length > 0) {\r\n groups[0] = this._match;\r\n }\r\n\r\n var matchText;\r\n var matchCaps;\r\n var matchCapcount;\r\n var i;\r\n\r\n for (i = 0; i < groups.length - 1; i++) {\r\n matchText = this._match._text;\r\n matchCaps = this._match._matches[i + 1];\r\n matchCapcount = this._match._matchcount[i + 1];\r\n groups[i + 1] = new System.Text.RegularExpressions.Group(matchText, matchCaps, matchCapcount);\r\n }\r\n\r\n this._groups = groups;\r\n }\r\n }\r\n });\r\n\r\n Bridge.define(\"System.Text.RegularExpressions.GroupEnumerator\", {\r\n inherits: function () {\r\n return [System.Collections.IEnumerator];\r\n },\r\n\r\n config: {\r\n properties: {\r\n Current: {\r\n get: function () {\r\n return this.getCurrent();\r\n }\r\n }\r\n },\r\n\r\n alias: [\r\n \"getCurrent\", \"System$Collections$IEnumerator$getCurrent\",\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"reset\", \"System$Collections$IEnumerator$reset\",\r\n \"Current\", \"System$Collections$IEnumerator$Current\"\r\n ]\r\n },\r\n\r\n _groupColl: null,\r\n _curindex: 0,\r\n\r\n ctor: function (groupColl) {\r\n this.$initialize();\r\n this._curindex = -1;\r\n this._groupColl = groupColl;\r\n },\r\n\r\n moveNext: function () {\r\n var size = this._groupColl.getCount();\r\n\r\n if (this._curindex >= size) {\r\n return false;\r\n }\r\n\r\n this._curindex++;\r\n\r\n return (this._curindex < size);\r\n },\r\n\r\n getCurrent: function () {\r\n return this.getCapture();\r\n },\r\n\r\n getCapture: function () {\r\n if (this._curindex < 0 || this._curindex >= this._groupColl.getCount()) {\r\n throw new System.InvalidOperationException.$ctor1(\"Enumeration has either not started or has already finished.\");\r\n }\r\n\r\n return this._groupColl.get(this._curindex);\r\n },\r\n\r\n reset: function () {\r\n this._curindex = -1;\r\n }\r\n });\r\n\r\n // @source RegexMatch.js\r\n\r\n Bridge.define(\"System.Text.RegularExpressions.Match\", {\r\n inherits: function () {\r\n return [System.Text.RegularExpressions.Group];\r\n },\r\n\r\n statics: {\r\n config: {\r\n init: function () {\r\n var empty = new System.Text.RegularExpressions.Match(null, 1, \"\", 0, 0, 0);\r\n\r\n this.getEmpty = function () {\r\n return empty;\r\n }\r\n }\r\n },\r\n\r\n synchronized: function (match) {\r\n if (match == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"match\");\r\n }\r\n\r\n // Populate all groups by looking at each one\r\n var groups = match.getGroups();\r\n var groupsCount = groups.getCount();\r\n var group;\r\n var i;\r\n\r\n for (i = 0; i < groupsCount; i++) {\r\n group = groups.get(i);\r\n System.Text.RegularExpressions.Group.synchronized(group);\r\n }\r\n\r\n return match;\r\n }\r\n },\r\n\r\n _regex: null,\r\n _matchcount: null,\r\n _matches: null,\r\n _textbeg: 0,\r\n _textend: 0,\r\n _textstart: 0,\r\n _groupColl: null,\r\n _textpos: 0,\r\n\r\n ctor: function (regex, capcount, text, begpos, len, startpos) {\r\n this.$initialize();\r\n var scope = System.Text.RegularExpressions;\r\n var caps = [0, 0];\r\n\r\n scope.Group.ctor.call(this, text, caps, 0);\r\n\r\n this._regex = regex;\r\n\r\n this._matchcount = [];\r\n this._matchcount.length = capcount;\r\n\r\n var i;\r\n\r\n for (i = 0; i < capcount; i++) {\r\n this._matchcount[i] = 0;\r\n }\r\n\r\n this._matches = [];\r\n this._matches.length = capcount;\r\n this._matches[0] = caps;\r\n\r\n this._textbeg = begpos;\r\n this._textend = begpos + len;\r\n this._textstart = startpos;\r\n },\r\n\r\n getGroups: function () {\r\n if (this._groupColl == null) {\r\n this._groupColl = new System.Text.RegularExpressions.GroupCollection(this, null);\r\n }\r\n\r\n return this._groupColl;\r\n },\r\n\r\n nextMatch: function () {\r\n if (this._regex == null) {\r\n return this;\r\n }\r\n\r\n return this._regex._runner.run(false, this._length, this._text, this._textbeg, this._textend - this._textbeg, this._textpos);\r\n },\r\n\r\n result: function (replacement) {\r\n if (replacement == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"replacement\");\r\n }\r\n\r\n if (this._regex == null) {\r\n throw new System.NotSupportedException.$ctor1(\"Result cannot be called on a failed Match.\");\r\n }\r\n\r\n var repl = System.Text.RegularExpressions.RegexParser.parseReplacement(replacement, this._regex._caps, this._regex._capsize, this._regex._capnames, this._regex._options);\r\n //TODO: cache\r\n\r\n return repl.replacement(this);\r\n },\r\n\r\n _isMatched: function (cap) {\r\n return cap < this._matchcount.length && this._matchcount[cap] > 0 && this._matches[cap][this._matchcount[cap] * 2 - 1] !== (-3 + 1);\r\n },\r\n\r\n _addMatch: function (cap, start, len) {\r\n if (this._matches[cap] == null) {\r\n this._matches[cap] = new Array(2);\r\n }\r\n\r\n var capcount = this._matchcount[cap];\r\n\r\n if (capcount * 2 + 2 > this._matches[cap].length) {\r\n var oldmatches = this._matches[cap];\r\n var newmatches = new Array(capcount * 8);\r\n var j;\r\n\r\n for (j = 0; j < capcount * 2; j++) {\r\n newmatches[j] = oldmatches[j];\r\n }\r\n\r\n this._matches[cap] = newmatches;\r\n }\r\n\r\n this._matches[cap][capcount * 2] = start;\r\n this._matches[cap][capcount * 2 + 1] = len;\r\n this._matchcount[cap] = capcount + 1;\r\n },\r\n\r\n _tidy: function (textpos) {\r\n var interval = this._matches[0];\r\n this._index = interval[0];\r\n this._length = interval[1];\r\n this._textpos = textpos;\r\n this._capcount = this._matchcount[0];\r\n },\r\n\r\n _groupToStringImpl: function (groupnum) {\r\n var c = this._matchcount[groupnum];\r\n\r\n if (c === 0) {\r\n return \"\";\r\n }\r\n\r\n var matches = this._matches[groupnum];\r\n var capIndex = matches[(c - 1) * 2];\r\n var capLength = matches[(c * 2) - 1];\r\n\r\n return this._text.slice(capIndex, capIndex + capLength);\r\n },\r\n\r\n _lastGroupToStringImpl: function () {\r\n return this._groupToStringImpl(this._matchcount.length - 1);\r\n }\r\n });\r\n\r\n Bridge.define(\"System.Text.RegularExpressions.MatchSparse\", {\r\n inherits: function () {\r\n return [System.Text.RegularExpressions.Match];\r\n },\r\n\r\n _caps: null,\r\n\r\n ctor: function (regex, caps, capcount, text, begpos, len, startpos) {\r\n this.$initialize();\r\n var scope = System.Text.RegularExpressions;\r\n scope.Match.ctor.call(this, regex, capcount, text, begpos, len, startpos);\r\n\r\n this._caps = caps;\r\n },\r\n\r\n getGroups: function () {\r\n if (this._groupColl == null) {\r\n this._groupColl = new System.Text.RegularExpressions.GroupCollection(this, this._caps);\r\n }\r\n\r\n return this._groupColl;\r\n },\r\n });\r\n\r\n // @source RegexMatchCollection.js\r\n\r\n Bridge.define(\"System.Text.RegularExpressions.MatchCollection\", {\r\n inherits: function () {\r\n return [System.Collections.ICollection];\r\n },\r\n\r\n config: {\r\n properties: {\r\n Count: {\r\n get: function () {\r\n return this.getCount();\r\n }\r\n }\r\n },\r\n alias: [\r\n \"GetEnumerator\", \"System$Collections$IEnumerable$GetEnumerator\",\r\n \"getCount\", \"System$Collections$ICollection$getCount\",\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"copyTo\", \"System$Collections$ICollection$copyTo\"\r\n ]\r\n },\r\n\r\n _regex: null,\r\n _input: null,\r\n _beginning: 0,\r\n _length: 0,\r\n _startat: 0,\r\n _prevlen: 0,\r\n _matches: null,\r\n _done: false,\r\n\r\n ctor: function (regex, input, beginning, length, startat) {\r\n this.$initialize();\r\n if (startat < 0 || startat > input.Length) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"startat\");\r\n }\r\n\r\n this._regex = regex;\r\n this._input = input;\r\n this._beginning = beginning;\r\n this._length = length;\r\n this._startat = startat;\r\n this._prevlen = -1;\r\n this._matches = [];\r\n },\r\n\r\n getCount: function () {\r\n if (!this._done) {\r\n this._getMatch(0x7FFFFFFF);\r\n }\r\n\r\n return this._matches.length;\r\n },\r\n\r\n getSyncRoot: function () {\r\n return this;\r\n },\r\n\r\n getIsSynchronized: function () {\r\n return false;\r\n },\r\n\r\n getIsReadOnly: function () {\r\n return true;\r\n },\r\n\r\n get: function (i) {\r\n var match = this._getMatch(i);\r\n\r\n if (match == null) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"i\");\r\n }\r\n\r\n return match;\r\n },\r\n\r\n copyTo: function (array, arrayIndex) {\r\n if (array == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n var count = this.getCount();\r\n\r\n if (array.length < arrayIndex + count) {\r\n throw new System.IndexOutOfRangeException();\r\n }\r\n\r\n var match;\r\n var i;\r\n var j;\r\n\r\n for (i = arrayIndex, j = 0; j < count; i++, j++) {\r\n match = this._getMatch(j);\r\n System.Array.set(array, match, [i]);\r\n }\r\n },\r\n\r\n GetEnumerator: function () {\r\n return new System.Text.RegularExpressions.MatchEnumerator(this);\r\n },\r\n\r\n _getMatch: function (i) {\r\n if (i < 0) {\r\n return null;\r\n }\r\n\r\n if (this._matches.length > i) {\r\n return this._matches[i];\r\n }\r\n\r\n if (this._done) {\r\n return null;\r\n }\r\n\r\n var match;\r\n\r\n do {\r\n match = this._regex._runner.run(false, this._prevLen, this._input, this._beginning, this._length, this._startat);\r\n if (!match.getSuccess()) {\r\n this._done = true;\r\n return null;\r\n }\r\n\r\n this._matches.push(match);\r\n\r\n this._prevLen = match._length;\r\n this._startat = match._textpos;\r\n } while (this._matches.length <= i);\r\n\r\n return match;\r\n }\r\n });\r\n\r\n Bridge.define(\"System.Text.RegularExpressions.MatchEnumerator\", {\r\n inherits: function () {\r\n return [System.Collections.IEnumerator];\r\n },\r\n\r\n config: {\r\n properties: {\r\n Current: {\r\n get: function () {\r\n return this.getCurrent();\r\n }\r\n }\r\n },\r\n\r\n alias: [\r\n \"getCurrent\", \"System$Collections$IEnumerator$getCurrent\",\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"reset\", \"System$Collections$IEnumerator$reset\",\r\n \"Current\", \"System$Collections$IEnumerator$Current\"\r\n ]\r\n },\r\n\r\n _matchcoll: null,\r\n _match: null,\r\n _curindex: 0,\r\n _done: false,\r\n\r\n ctor: function (matchColl) {\r\n this.$initialize();\r\n this._matchcoll = matchColl;\r\n },\r\n\r\n moveNext: function () {\r\n if (this._done) {\r\n return false;\r\n }\r\n\r\n this._match = this._matchcoll._getMatch(this._curindex);\r\n this._curindex++;\r\n\r\n if (this._match == null) {\r\n this._done = true;\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n getCurrent: function () {\r\n if (this._match == null) {\r\n throw new System.InvalidOperationException.$ctor1(\"Enumeration has either not started or has already finished.\");\r\n }\r\n\r\n return this._match;\r\n },\r\n\r\n reset: function () {\r\n this._curindex = 0;\r\n this._done = false;\r\n this._match = null;\r\n }\r\n });\r\n\r\n // @source RegexOptions.js\r\n\r\n Bridge.define(\"System.Text.RegularExpressions.RegexOptions\", {\r\n statics: {\r\n None: 0x0000,\r\n IgnoreCase: 0x0001,\r\n Multiline: 0x0002,\r\n ExplicitCapture: 0x0004,\r\n Compiled: 0x0008,\r\n Singleline: 0x0010,\r\n IgnorePatternWhitespace: 0x0020,\r\n RightToLeft: 0x0040,\r\n ECMAScript: 0x0100,\r\n CultureInvariant: 0x0200\r\n },\r\n\r\n $kind: \"enum\",\r\n $flags: true\r\n });\r\n\r\n // @source RegexRunner.js\r\n\r\n Bridge.define(\"System.Text.RegularExpressions.RegexRunner\", {\r\n statics: {},\r\n\r\n _runregex: null,\r\n _netEngine: null,\r\n\r\n _runtext: \"\", // text to search\r\n _runtextpos: 0, // current position in text\r\n\r\n _runtextbeg: 0, // beginning of text to search\r\n _runtextend: 0, // end of text to search\r\n _runtextstart: 0, // starting point for search\r\n _quick: false, // true value means IsMatch method call\r\n _prevlen: 0,\r\n\r\n ctor: function (regex) {\r\n this.$initialize();\r\n\r\n if (regex == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"regex\");\r\n }\r\n\r\n this._runregex = regex;\r\n\r\n var options = regex.getOptions();\r\n var optionsEnum = System.Text.RegularExpressions.RegexOptions;\r\n\r\n var isCaseInsensitive = (options & optionsEnum.IgnoreCase) === optionsEnum.IgnoreCase;\r\n var isMultiline = (options & optionsEnum.Multiline) === optionsEnum.Multiline;\r\n var isSingleline = (options & optionsEnum.Singleline) === optionsEnum.Singleline;\r\n var isIgnoreWhitespace = (options & optionsEnum.IgnorePatternWhitespace) === optionsEnum.IgnorePatternWhitespace;\r\n var isExplicitCapture = (options & optionsEnum.ExplicitCapture) === optionsEnum.ExplicitCapture;\r\n\r\n var timeoutMs = regex._matchTimeout.getTotalMilliseconds();\r\n\r\n this._netEngine = new System.Text.RegularExpressions.RegexEngine(regex._pattern, isCaseInsensitive, isMultiline, isSingleline, isIgnoreWhitespace, isExplicitCapture, timeoutMs);\r\n },\r\n\r\n run: function (quick, prevlen, input, beginning, length, startat) {\r\n if (startat < 0 || startat > input.Length) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"start\", \"Start index cannot be less than 0 or greater than input length.\");\r\n }\r\n\r\n if (length < 0 || length > input.Length) {\r\n throw new ArgumentOutOfRangeException(\"length\", \"Length cannot be less than 0 or exceed input length.\");\r\n }\r\n\r\n this._runtext = input;\r\n this._runtextbeg = beginning;\r\n this._runtextend = beginning + length;\r\n this._runtextstart = startat;\r\n this._quick = quick;\r\n this._prevlen = prevlen;\r\n\r\n var stoppos;\r\n var bump;\r\n\r\n if (this._runregex.getRightToLeft()) {\r\n stoppos = this._runtextbeg;\r\n bump = -1;\r\n } else {\r\n stoppos = this._runtextend;\r\n bump = 1;\r\n }\r\n\r\n if (this._prevlen === 0) {\r\n if (this._runtextstart === stoppos) {\r\n return System.Text.RegularExpressions.Match.getEmpty();\r\n }\r\n\r\n this._runtextstart += bump;\r\n }\r\n\r\n // Execute Regex:\r\n var jsMatch = this._netEngine.match(this._runtext, this._runtextstart);\r\n\r\n // Convert the results:\r\n var result = this._convertNetEngineResults(jsMatch);\r\n return result;\r\n },\r\n\r\n parsePattern: function () {\r\n var result = this._netEngine.parsePattern();\r\n\r\n return result;\r\n },\r\n\r\n _convertNetEngineResults: function (jsMatch) {\r\n if (jsMatch.success && this._quick) {\r\n return null; // in quick mode, a successful match returns null\r\n }\r\n\r\n if (!jsMatch.success) {\r\n return System.Text.RegularExpressions.Match.getEmpty();\r\n }\r\n\r\n var patternInfo = this.parsePattern();\r\n var match;\r\n\r\n if (patternInfo.sparseSettings.isSparse) {\r\n match = new System.Text.RegularExpressions.MatchSparse(this._runregex, patternInfo.sparseSettings.sparseSlotMap, jsMatch.groups.length, this._runtext, 0, this._runtext.length, this._runtextstart);\r\n } else {\r\n match = new System.Text.RegularExpressions.Match(this._runregex, jsMatch.groups.length, this._runtext, 0, this._runtext.length, this._runtextstart);\r\n }\r\n\r\n var jsGroup;\r\n var jsCapture;\r\n var grOrder;\r\n var i;\r\n var j;\r\n\r\n for (i = 0; i < jsMatch.groups.length; i++) {\r\n jsGroup = jsMatch.groups[i];\r\n\r\n // Paste group index/length according to group ordering:\r\n grOrder = 0;\r\n\r\n if (jsGroup.descriptor != null) {\r\n grOrder = this._runregex.groupNumberFromName(jsGroup.descriptor.name);\r\n }\r\n\r\n for (j = 0; j < jsGroup.captures.length; j++) {\r\n jsCapture = jsGroup.captures[j];\r\n match._addMatch(grOrder, jsCapture.capIndex, jsCapture.capLength);\r\n }\r\n }\r\n\r\n var textEndPos = jsMatch.capIndex + jsMatch.capLength;\r\n\r\n match._tidy(textEndPos);\r\n\r\n return match;\r\n }\r\n });\r\n\r\n // @source RegexParser.js\r\n\r\n Bridge.define(\"System.Text.RegularExpressions.RegexParser\", {\r\n statics: {\r\n _Q: 5, // quantifier\r\n _S: 4, // ordinary stopper\r\n _Z: 3, // ScanBlank stopper\r\n _X: 2, // whitespace\r\n _E: 1, // should be escaped\r\n\r\n _category: [\r\n //0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n //! \" # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?\r\n 2, 0, 0, 3, 4, 0, 0, 0, 4, 4, 5, 5, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,\r\n //@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \\ ] ^ _\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 4, 0,\r\n //' a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0\r\n ],\r\n\r\n escape: function (input) {\r\n var sb;\r\n var ch;\r\n var lastpos;\r\n var i;\r\n\r\n for (i = 0; i < input.length; i++) {\r\n if (System.Text.RegularExpressions.RegexParser._isMetachar(input[i])) {\r\n sb = \"\";\r\n ch = input[i];\r\n\r\n sb += input.slice(0, i);\r\n\r\n do {\r\n sb += \"\\\\\";\r\n\r\n switch (ch) {\r\n case \"\\n\":\r\n ch = \"n\";\r\n break;\r\n case \"\\r\":\r\n ch = \"r\";\r\n break;\r\n case \"\\t\":\r\n ch = \"t\";\r\n break;\r\n case \"\\f\":\r\n ch = \"f\";\r\n break;\r\n }\r\n\r\n sb += ch;\r\n i++;\r\n lastpos = i;\r\n\r\n while (i < input.length) {\r\n ch = input[i];\r\n\r\n if (System.Text.RegularExpressions.RegexParser._isMetachar(ch)) {\r\n break;\r\n }\r\n\r\n i++;\r\n }\r\n\r\n sb += input.slice(lastpos, i);\r\n } while (i < input.length);\r\n\r\n return sb;\r\n }\r\n }\r\n\r\n return input;\r\n },\r\n\r\n unescape: function (input) {\r\n var culture = System.Globalization.CultureInfo.invariantCulture;\r\n var sb;\r\n var lastpos;\r\n var i;\r\n var p;\r\n\r\n for (i = 0; i < input.length; i++) {\r\n if (input[i] === \"\\\\\") {\r\n sb = \"\";\r\n p = new System.Text.RegularExpressions.RegexParser(culture);\r\n p._setPattern(input);\r\n\r\n sb += input.slice(0, i);\r\n\r\n do {\r\n i++;\r\n\r\n p._textto(i);\r\n\r\n if (i < input.length) {\r\n sb += p._scanCharEscape();\r\n }\r\n\r\n i = p._textpos();\r\n lastpos = i;\r\n\r\n while (i < input.length && input[i] !== \"\\\\\") {\r\n i++;\r\n }\r\n\r\n sb += input.slice(lastpos, i);\r\n } while (i < input.length);\r\n\r\n return sb;\r\n }\r\n }\r\n\r\n return input;\r\n },\r\n\r\n parseReplacement: function (rep, caps, capsize, capnames, op) {\r\n var culture = System.Globalization.CultureInfo.getCurrentCulture(); // TODO: InvariantCulture\r\n var p = new System.Text.RegularExpressions.RegexParser(culture);\r\n\r\n p._options = op;\r\n p._noteCaptures(caps, capsize, capnames);\r\n p._setPattern(rep);\r\n\r\n var root = p._scanReplacement();\r\n\r\n return new System.Text.RegularExpressions.RegexReplacement(rep, root, caps);\r\n },\r\n\r\n _isMetachar: function (ch) {\r\n var code = ch.charCodeAt(0);\r\n\r\n return (code <= \"|\".charCodeAt(0) && System.Text.RegularExpressions.RegexParser._category[code] >= System.Text.RegularExpressions.RegexParser._E);\r\n }\r\n },\r\n\r\n _caps: null,\r\n _capsize: 0,\r\n _capnames: null,\r\n _pattern: \"\",\r\n _currentPos: 0,\r\n _concatenation: null,\r\n _culture: null,\r\n\r\n config: {\r\n init: function () {\r\n this._options = System.Text.RegularExpressions.RegexOptions.None;\r\n }\r\n },\r\n\r\n ctor: function (culture) {\r\n this.$initialize();\r\n this._culture = culture;\r\n this._caps = {};\r\n },\r\n\r\n _noteCaptures: function (caps, capsize, capnames) {\r\n this._caps = caps;\r\n this._capsize = capsize;\r\n this._capnames = capnames;\r\n },\r\n\r\n _setPattern: function (pattern) {\r\n if (pattern == null) {\r\n pattern = \"\";\r\n }\r\n\r\n this._pattern = pattern || \"\";\r\n this._currentPos = 0;\r\n },\r\n\r\n _scanReplacement: function () {\r\n this._concatenation = new System.Text.RegularExpressions.RegexNode(System.Text.RegularExpressions.RegexNode.Concatenate, this._options);\r\n var c;\r\n var startpos;\r\n var dollarNode;\r\n\r\n while (true) {\r\n c = this._charsRight();\r\n\r\n if (c === 0) {\r\n break;\r\n }\r\n\r\n startpos = this._textpos();\r\n\r\n while (c > 0 && this._rightChar() !== \"$\") {\r\n this._moveRight();\r\n c--;\r\n }\r\n\r\n this._addConcatenate(startpos, this._textpos() - startpos);\r\n\r\n if (c > 0) {\r\n if (this._moveRightGetChar() === \"$\") {\r\n dollarNode = this._scanDollar();\r\n this._concatenation.addChild(dollarNode);\r\n }\r\n }\r\n }\r\n\r\n return this._concatenation;\r\n },\r\n\r\n _addConcatenate: function (pos, cch /*, bool isReplacement*/ ) {\r\n if (cch === 0) {\r\n return;\r\n }\r\n\r\n var node;\r\n\r\n if (cch > 1) {\r\n var str = this._pattern.slice(pos, pos + cch);\r\n\r\n node = new System.Text.RegularExpressions.RegexNode(System.Text.RegularExpressions.RegexNode.Multi, this._options, str);\r\n } else {\r\n var ch = this._pattern[pos];\r\n\r\n node = new System.Text.RegularExpressions.RegexNode(System.Text.RegularExpressions.RegexNode.One, this._options, ch);\r\n }\r\n\r\n this._concatenation.addChild(node);\r\n },\r\n\r\n _useOptionE: function () {\r\n return (this._options & System.Text.RegularExpressions.RegexOptions.ECMAScript) !== 0;\r\n },\r\n\r\n _makeException: function (message) {\r\n return new System.ArgumentException(\"Incorrect pattern. \" + message);\r\n },\r\n\r\n _scanDollar: function () {\r\n var maxValueDiv10 = 214748364; // Int32.MaxValue / 10;\r\n var maxValueMod10 = 7; // Int32.MaxValue % 10;\r\n\r\n if (this._charsRight() === 0) {\r\n return new System.Text.RegularExpressions.RegexNode(System.Text.RegularExpressions.RegexNode.One, this._options, \"$\");\r\n }\r\n\r\n var ch = this._rightChar();\r\n var angled;\r\n var backpos = this._textpos();\r\n var lastEndPos = backpos;\r\n\r\n // Note angle\r\n if (ch === \"{\" && this._charsRight() > 1) {\r\n angled = true;\r\n this._moveRight();\r\n ch = this._rightChar();\r\n } else {\r\n angled = false;\r\n }\r\n\r\n // Try to parse backreference: \\1 or \\{1} or \\{cap}\r\n\r\n var capnum;\r\n var digit;\r\n\r\n if (ch >= \"0\" && ch <= \"9\") {\r\n if (!angled && this._useOptionE()) {\r\n capnum = -1;\r\n var newcapnum = ch - \"0\";\r\n\r\n this._moveRight();\r\n\r\n if (this._isCaptureSlot(newcapnum)) {\r\n capnum = newcapnum;\r\n lastEndPos = this._textpos();\r\n }\r\n\r\n while (this._charsRight() > 0 && (ch = this._rightChar()) >= \"0\" && ch <= \"9\") {\r\n digit = ch - \"0\";\r\n if (newcapnum > (maxValueDiv10) || (newcapnum === (maxValueDiv10) && digit > (maxValueMod10))) {\r\n throw this._makeException(\"Capture group is out of range.\");\r\n }\r\n\r\n newcapnum = newcapnum * 10 + digit;\r\n\r\n this._moveRight();\r\n\r\n if (this._isCaptureSlot(newcapnum)) {\r\n capnum = newcapnum;\r\n lastEndPos = this._textpos();\r\n }\r\n }\r\n this._textto(lastEndPos);\r\n\r\n if (capnum >= 0) {\r\n return new System.Text.RegularExpressions.RegexNode(System.Text.RegularExpressions.RegexNode.Ref, this._options, capnum);\r\n }\r\n } else {\r\n capnum = this._scanDecimal();\r\n\r\n if (!angled || this._charsRight() > 0 && this._moveRightGetChar() === \"}\") {\r\n if (this._isCaptureSlot(capnum)) {\r\n return new System.Text.RegularExpressions.RegexNode(System.Text.RegularExpressions.RegexNode.Ref, this._options, capnum);\r\n }\r\n }\r\n }\r\n } else if (angled && this._isWordChar(ch)) {\r\n var capname = this._scanCapname();\r\n\r\n if (this._charsRight() > 0 && this._moveRightGetChar() === \"}\") {\r\n if (this._isCaptureName(capname)) {\r\n var captureSlot = this._captureSlotFromName(capname);\r\n\r\n return new System.Text.RegularExpressions.RegexNode(System.Text.RegularExpressions.RegexNode.Ref, this._options, captureSlot);\r\n }\r\n }\r\n } else if (!angled) {\r\n capnum = 1;\r\n\r\n switch (ch) {\r\n case \"$\":\r\n this._moveRight();\r\n return new System.Text.RegularExpressions.RegexNode(System.Text.RegularExpressions.RegexNode.One, this._options, \"$\");\r\n\r\n case \"&\":\r\n capnum = 0;\r\n break;\r\n\r\n case \"`\":\r\n capnum = System.Text.RegularExpressions.RegexReplacement.LeftPortion;\r\n break;\r\n\r\n case \"\\'\":\r\n capnum = System.Text.RegularExpressions.RegexReplacement.RightPortion;\r\n break;\r\n\r\n case \"+\":\r\n capnum = System.Text.RegularExpressions.RegexReplacement.LastGroup;\r\n break;\r\n\r\n case \"_\":\r\n capnum = System.Text.RegularExpressions.RegexReplacement.WholeString;\r\n break;\r\n }\r\n\r\n if (capnum !== 1) {\r\n this._moveRight();\r\n\r\n return new System.Text.RegularExpressions.RegexNode(System.Text.RegularExpressions.RegexNode.Ref, this._options, capnum);\r\n }\r\n }\r\n\r\n // unrecognized $: literalize\r\n\r\n this._textto(backpos);\r\n\r\n return new System.Text.RegularExpressions.RegexNode(System.Text.RegularExpressions.RegexNode.One, this._options, \"$\");\r\n },\r\n\r\n _scanDecimal: function () {\r\n // Scans any number of decimal digits (pegs value at 2^31-1 if too large)\r\n\r\n var maxValueDiv10 = 214748364; // Int32.MaxValue / 10;\r\n var maxValueMod10 = 7; // Int32.MaxValue % 10;\r\n var i = 0;\r\n var ch;\r\n var d;\r\n\r\n while (this._charsRight() > 0) {\r\n ch = this._rightChar();\r\n\r\n if (ch < \"0\" || ch > \"9\") {\r\n break;\r\n }\r\n\r\n d = ch - \"0\";\r\n\r\n this._moveRight();\r\n\r\n if (i > (maxValueDiv10) || (i === (maxValueDiv10) && d > (maxValueMod10))) {\r\n throw this._makeException(\"Capture group is out of range.\");\r\n }\r\n\r\n i *= 10;\r\n i += d;\r\n }\r\n\r\n return i;\r\n },\r\n\r\n _scanOctal: function () {\r\n var d;\r\n var i;\r\n var c;\r\n\r\n // Consume octal chars only up to 3 digits and value 0377\r\n\r\n c = 3;\r\n\r\n if (c > this._charsRight()) {\r\n c = this._charsRight();\r\n }\r\n\r\n for (i = 0; c > 0 && (d = this._rightChar() - \"0\") <= 7; c -= 1) {\r\n this._moveRight();\r\n\r\n i *= 8;\r\n i += d;\r\n\r\n if (this._useOptionE() && i >= 0x20) {\r\n break;\r\n }\r\n }\r\n\r\n // Octal codes only go up to 255. Any larger and the behavior that Perl follows\r\n // is simply to truncate the high bits.\r\n i &= 0xFF;\r\n\r\n return String.fromCharCode(i);\r\n },\r\n\r\n _scanHex: function (c) {\r\n var i;\r\n var d;\r\n\r\n i = 0;\r\n\r\n if (this._charsRight() >= c) {\r\n for (; c > 0 && ((d = this._hexDigit(this._moveRightGetChar())) >= 0); c -= 1) {\r\n i *= 0x10;\r\n i += d;\r\n }\r\n }\r\n\r\n if (c > 0) {\r\n throw this._makeException(\"Insufficient hexadecimal digits.\");\r\n }\r\n\r\n return i;\r\n },\r\n\r\n _hexDigit: function (ch) {\r\n var d;\r\n\r\n var code = ch.charCodeAt(0);\r\n\r\n if ((d = code - \"0\".charCodeAt(0)) <= 9) {\r\n return d;\r\n }\r\n\r\n if ((d = code - \"a\".charCodeAt(0)) <= 5) {\r\n return d + 0xa;\r\n }\r\n\r\n if ((d = code - \"A\".charCodeAt(0)) <= 5) {\r\n return d + 0xa;\r\n }\r\n\r\n return -1;\r\n },\r\n\r\n _scanControl: function () {\r\n if (this._charsRight() <= 0) {\r\n throw this._makeException(\"Missing control character.\");\r\n }\r\n\r\n var ch = this._moveRightGetChar();\r\n\r\n // \\ca interpreted as \\cA\r\n\r\n var code = ch.charCodeAt(0);\r\n\r\n if (code >= \"a\".charCodeAt(0) && code <= \"z\".charCodeAt(0)) {\r\n code = code - (\"a\".charCodeAt(0) - \"A\".charCodeAt(0));\r\n }\r\n\r\n if ((code = (code - \"@\".charCodeAt(0))) < \" \".charCodeAt(0)) {\r\n return String.fromCharCode(code);\r\n }\r\n\r\n throw this._makeException(\"Unrecognized control character.\");\r\n },\r\n\r\n _scanCapname: function () {\r\n var startpos = this._textpos();\r\n\r\n while (this._charsRight() > 0) {\r\n if (!this._isWordChar(this._moveRightGetChar())) {\r\n this._moveLeft();\r\n\r\n break;\r\n }\r\n }\r\n\r\n return _pattern.slice(startpos, this._textpos());\r\n },\r\n\r\n _scanCharEscape: function () {\r\n var ch = this._moveRightGetChar();\r\n\r\n if (ch >= \"0\" && ch <= \"7\") {\r\n this._moveLeft();\r\n\r\n return this._scanOctal();\r\n }\r\n\r\n switch (ch) {\r\n case \"x\":\r\n return this._scanHex(2);\r\n case \"u\":\r\n return this._scanHex(4);\r\n case \"a\":\r\n return \"\\u0007\";\r\n case \"b\":\r\n return \"\\b\";\r\n case \"e\":\r\n return \"\\u001B\";\r\n case \"f\":\r\n return \"\\f\";\r\n case \"n\":\r\n return \"\\n\";\r\n case \"r\":\r\n return \"\\r\";\r\n case \"t\":\r\n return \"\\t\";\r\n case \"v\":\r\n return \"\\u000B\";\r\n case \"c\":\r\n return this._scanControl();\r\n default:\r\n var isInvalidBasicLatin = ch === '8' || ch === '9' || ch === '_';\r\n if (isInvalidBasicLatin || (!this._useOptionE() && this._isWordChar(ch))) {\r\n throw this._makeException(\"Unrecognized escape sequence \\\\\" + ch + \".\");\r\n }\r\n return ch;\r\n }\r\n },\r\n\r\n _captureSlotFromName: function (capname) {\r\n return this._capnames[capname];\r\n },\r\n\r\n _isCaptureSlot: function (i) {\r\n if (this._caps != null) {\r\n return this._caps[i] != null;\r\n }\r\n\r\n return (i >= 0 && i < this._capsize);\r\n },\r\n\r\n _isCaptureName: function (capname) {\r\n if (this._capnames == null) {\r\n return false;\r\n }\r\n\r\n return _capnames[capname] != null;\r\n },\r\n\r\n _isWordChar: function (ch) {\r\n // Partial implementation,\r\n // see the link for more details (http://referencesource.microsoft.com/#System/regex/system/text/regularexpressions/RegexParser.cs,1156)\r\n return System.Char.isLetter(ch.charCodeAt(0));\r\n },\r\n\r\n _charsRight: function () {\r\n return this._pattern.length - this._currentPos;\r\n },\r\n\r\n _rightChar: function () {\r\n return this._pattern[this._currentPos];\r\n },\r\n\r\n _moveRightGetChar: function () {\r\n return this._pattern[this._currentPos++];\r\n },\r\n\r\n _moveRight: function () {\r\n this._currentPos++;\r\n },\r\n\r\n _textpos: function () {\r\n return this._currentPos;\r\n },\r\n\r\n _textto: function (pos) {\r\n this._currentPos = pos;\r\n },\r\n\r\n _moveLeft: function () {\r\n this._currentPos--;\r\n }\r\n });\r\n\r\n // @source RegexNode.js\r\n\r\n Bridge.define(\"System.Text.RegularExpressions.RegexNode\", {\r\n statics: {\r\n One: 9, // char a\r\n Multi: 12, // string abcdef\r\n Ref: 13, // index \\1\r\n Empty: 23, // ()\r\n Concatenate: 25 // ab\r\n },\r\n\r\n _type: 0,\r\n _str: null,\r\n _children: null,\r\n _next: null,\r\n _m: 0,\r\n\r\n config: {\r\n init: function () {\r\n this._options = System.Text.RegularExpressions.RegexOptions.None;\r\n }\r\n },\r\n\r\n ctor: function (type, options, arg) {\r\n this.$initialize();\r\n this._type = type;\r\n this._options = options;\r\n\r\n if (type === System.Text.RegularExpressions.RegexNode.Ref) {\r\n this._m = arg;\r\n } else {\r\n this._str = arg || null;\r\n }\r\n },\r\n\r\n addChild: function (newChild) {\r\n if (this._children == null) {\r\n this._children = [];\r\n }\r\n\r\n var reducedChild = newChild._reduce();\r\n this._children.push(reducedChild);\r\n reducedChild._next = this;\r\n },\r\n\r\n childCount: function () {\r\n return this._children == null ? 0 : this._children.length;\r\n },\r\n\r\n child: function (i) {\r\n return this._children[i];\r\n },\r\n\r\n _reduce: function () {\r\n // Warning: current implementation is just partial (for Replacement servicing)\r\n\r\n var n;\r\n\r\n switch (this._type) {\r\n case System.Text.RegularExpressions.RegexNode.Concatenate:\r\n n = this._reduceConcatenation();\r\n break;\r\n\r\n default:\r\n n = this;\r\n break;\r\n }\r\n\r\n return n;\r\n },\r\n\r\n _reduceConcatenation: function () {\r\n var wasLastString = false;\r\n var optionsLast = 0;\r\n var optionsAt;\r\n var at;\r\n var prev;\r\n var i;\r\n var j;\r\n var k;\r\n\r\n if (this._children == null) {\r\n return new System.Text.RegularExpressions.RegexNode(System.Text.RegularExpressions.RegexNode.Empty, this._options);\r\n }\r\n\r\n for (i = 0, j = 0; i < this._children.length; i++, j++) {\r\n at = this._children[i];\r\n\r\n if (j < i) {\r\n this._children[j] = at;\r\n }\r\n\r\n if (at._type === System.Text.RegularExpressions.RegexNode.Concatenate && at._isRightToLeft()) {\r\n for (k = 0; k < at._children.length; k++) {\r\n at._children[k]._next = this;\r\n }\r\n\r\n this._children.splice.apply(this._children, [i + 1, 0].concat(at._children)); // _children.InsertRange(i + 1, at._children);\r\n j--;\r\n } else if (at._type === System.Text.RegularExpressions.RegexNode.Multi || at._type === System.Text.RegularExpressions.RegexNode.One) {\r\n // Cannot merge strings if L or I options differ\r\n optionsAt = at._options & (System.Text.RegularExpressions.RegexOptions.RightToLeft | System.Text.RegularExpressions.RegexOptions.IgnoreCase);\r\n\r\n if (!wasLastString || optionsLast !== optionsAt) {\r\n wasLastString = true;\r\n optionsLast = optionsAt;\r\n continue;\r\n }\r\n\r\n prev = this._children[--j];\r\n\r\n if (prev._type === System.Text.RegularExpressions.RegexNode.One) {\r\n prev._type = System.Text.RegularExpressions.RegexNode.Multi;\r\n prev._str = prev._str;\r\n }\r\n\r\n if ((optionsAt & System.Text.RegularExpressions.RegexOptions.RightToLeft) === 0) {\r\n prev._str += at._str;\r\n } else {\r\n prev._str = at._str + prev._str;\r\n }\r\n } else if (at._type === System.Text.RegularExpressions.RegexNode.Empty) {\r\n j--;\r\n } else {\r\n wasLastString = false;\r\n }\r\n }\r\n\r\n if (j < i) {\r\n this._children.splice(j, i - j);\r\n }\r\n\r\n return this._stripEnation(System.Text.RegularExpressions.RegexNode.Empty);\r\n },\r\n\r\n _stripEnation: function (emptyType) {\r\n switch (this.childCount()) {\r\n case 0:\r\n return new scope.RegexNode(emptyType, this._options);\r\n case 1:\r\n return this.child(0);\r\n default:\r\n return this;\r\n }\r\n },\r\n\r\n _isRightToLeft: function () {\r\n if ((this._options & System.Text.RegularExpressions.RegexOptions.RightToLeft) > 0) {\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n });\r\n\r\n // @source RegexReplacement.js\r\n\r\n Bridge.define(\"System.Text.RegularExpressions.RegexReplacement\", {\r\n statics: {\r\n replace: function (evaluator, regex, input, count, startat) {\r\n if (evaluator == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"evaluator\");\r\n }\r\n\r\n if (count < -1) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"count\", \"Count cannot be less than -1.\");\r\n }\r\n\r\n if (startat < 0 || startat > input.length) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"startat\", \"Start index cannot be less than 0 or greater than input length.\");\r\n }\r\n\r\n if (count === 0) {\r\n return input;\r\n }\r\n\r\n var match = regex.match(input, startat);\r\n\r\n if (!match.getSuccess()) {\r\n return input;\r\n } else {\r\n var sb = \"\";\r\n var prevat;\r\n var matchIndex;\r\n var matchLength;\r\n\r\n if (!regex.getRightToLeft()) {\r\n prevat = 0;\r\n\r\n do {\r\n matchIndex = match.getIndex();\r\n matchLength = match.getLength();\r\n\r\n if (matchIndex !== prevat) {\r\n sb += input.slice(prevat, matchIndex);\r\n }\r\n\r\n prevat = matchIndex + matchLength;\r\n sb += evaluator(match);\r\n\r\n if (--count === 0) {\r\n break;\r\n }\r\n\r\n match = match.nextMatch();\r\n } while (match.getSuccess());\r\n\r\n if (prevat < input.length) {\r\n sb += input.slice(prevat, input.length);\r\n }\r\n } else {\r\n var al = [];\r\n\r\n prevat = input.length;\r\n\r\n do {\r\n matchIndex = match.getIndex();\r\n matchLength = match.getLength();\r\n\r\n if (matchIndex + matchLength !== prevat) {\r\n al.push(input.slice(matchIndex + matchLength, prevat));\r\n }\r\n\r\n prevat = matchIndex;\r\n al.push(evaluator(match));\r\n\r\n if (--count === 0) {\r\n break;\r\n }\r\n\r\n match = match.nextMatch();\r\n } while (match.getSuccess());\r\n\r\n sb = new StringBuilder();\r\n\r\n if (prevat > 0) {\r\n sb += sb.slice(0, prevat);\r\n }\r\n\r\n var i;\r\n\r\n for (i = al.length - 1; i >= 0; i--) {\r\n sb += al[i];\r\n }\r\n }\r\n\r\n return sb;\r\n }\r\n },\r\n\r\n split: function (regex, input, count, startat) {\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"count\", \"Count can't be less than 0.\");\r\n }\r\n\r\n if (startat < 0 || startat > input.length) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"startat\", \"Start index cannot be less than 0 or greater than input length.\");\r\n }\r\n\r\n var result = [];\r\n\r\n if (count === 1) {\r\n result.push(input);\r\n\r\n return result;\r\n }\r\n\r\n --count;\r\n var match = regex.match(input, startat);\r\n\r\n if (!match.getSuccess()) {\r\n result.push(input);\r\n } else {\r\n var i;\r\n var prevat;\r\n var matchIndex;\r\n var matchLength;\r\n var matchGroups;\r\n var matchGroupsCount;\r\n\r\n if (!regex.getRightToLeft()) {\r\n prevat = 0;\r\n\r\n for (;;) {\r\n matchIndex = match.getIndex();\r\n matchLength = match.getLength();\r\n matchGroups = match.getGroups();\r\n matchGroupsCount = matchGroups.getCount();\r\n\r\n result.push(input.slice(prevat, matchIndex));\r\n prevat = matchIndex + matchLength;\r\n\r\n // add all matched capture groups to the list.\r\n for (i = 1; i < matchGroupsCount; i++) {\r\n if (match._isMatched(i)) {\r\n result.push(matchGroups.get(i).toString());\r\n }\r\n }\r\n\r\n --count;\r\n if (count === 0) {\r\n break;\r\n }\r\n\r\n match = match.nextMatch();\r\n\r\n if (!match.getSuccess()) {\r\n break;\r\n }\r\n }\r\n\r\n result.push(input.slice(prevat, input.length));\r\n } else {\r\n prevat = input.length;\r\n\r\n for (;;) {\r\n matchIndex = match.getIndex();\r\n matchLength = match.getLength();\r\n matchGroups = match.getGroups();\r\n matchGroupsCount = matchGroups.getCount();\r\n\r\n result.push(input.slice(matchIndex + matchLength, prevat));\r\n prevat = matchIndex;\r\n\r\n // add all matched capture groups to the list.\r\n for (i = 1; i < matchGroupsCount; i++) {\r\n if (match._isMatched(i)) {\r\n result.push(matchGroups.get(i).toString());\r\n }\r\n }\r\n\r\n --count;\r\n if (count === 0) {\r\n break;\r\n }\r\n\r\n match = match.nextMatch();\r\n\r\n if (!match.getSuccess()) {\r\n break;\r\n }\r\n }\r\n\r\n result.push(input.slice(0, prevat));\r\n result.reverse();\r\n }\r\n }\r\n\r\n return result;\r\n },\r\n\r\n Specials: 4,\r\n LeftPortion: -1,\r\n RightPortion: -2,\r\n LastGroup: -3,\r\n WholeString: -4\r\n },\r\n\r\n _rep: \"\",\r\n _strings: [], // table of string constants\r\n _rules: [], // negative -> group #, positive -> string #\r\n\r\n ctor: function (rep, concat, caps) {\r\n this.$initialize();\r\n this._rep = rep;\r\n\r\n if (concat._type !== System.Text.RegularExpressions.RegexNode.Concatenate) {\r\n throw new System.ArgumentException.$ctor1(\"Replacement error.\");\r\n }\r\n\r\n var sb = \"\";\r\n var strings = [];\r\n var rules = [];\r\n var slot;\r\n var child;\r\n var i;\r\n\r\n for (i = 0; i < concat.childCount(); i++) {\r\n child = concat.child(i);\r\n\r\n switch (child._type) {\r\n case System.Text.RegularExpressions.RegexNode.Multi:\r\n case System.Text.RegularExpressions.RegexNode.One:\r\n sb += child._str;\r\n break;\r\n\r\n case System.Text.RegularExpressions.RegexNode.Ref:\r\n if (sb.length > 0) {\r\n rules.push(strings.length);\r\n strings.push(sb);\r\n sb = \"\";\r\n }\r\n\r\n slot = child._m;\r\n\r\n if (caps != null && slot >= 0) {\r\n slot = caps[slot];\r\n }\r\n\r\n rules.push(-System.Text.RegularExpressions.RegexReplacement.Specials - 1 - slot);\r\n break;\r\n default:\r\n throw new System.ArgumentException.$ctor1(\"Replacement error.\");\r\n }\r\n }\r\n\r\n if (sb.length > 0) {\r\n rules.push(strings.length);\r\n strings.push(sb);\r\n }\r\n\r\n this._strings = strings;\r\n this._rules = rules;\r\n },\r\n\r\n getPattern: function () {\r\n return _rep;\r\n },\r\n\r\n replacement: function (match) {\r\n return this._replacementImpl(\"\", match);\r\n },\r\n\r\n replace: function (regex, input, count, startat) {\r\n if (count < -1) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"count\", \"Count cannot be less than -1.\");\r\n }\r\n\r\n if (startat < 0 || startat > input.length) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"startat\", \"Start index cannot be less than 0 or greater than input length.\");\r\n }\r\n\r\n if (count === 0) {\r\n return input;\r\n }\r\n\r\n var match = regex.match(input, startat);\r\n\r\n if (!match.getSuccess()) {\r\n return input;\r\n } else {\r\n var sb = \"\";\r\n var prevat;\r\n var matchIndex;\r\n var matchLength;\r\n\r\n if (!regex.getRightToLeft()) {\r\n prevat = 0;\r\n\r\n do {\r\n matchIndex = match.getIndex();\r\n matchLength = match.getLength();\r\n\r\n if (matchIndex !== prevat) {\r\n sb += input.slice(prevat, matchIndex);\r\n }\r\n\r\n prevat = matchIndex + matchLength;\r\n sb = this._replacementImpl(sb, match);\r\n\r\n if (--count === 0) {\r\n break;\r\n }\r\n\r\n match = match.nextMatch();\r\n } while (match.getSuccess());\r\n\r\n if (prevat < input.length) {\r\n sb += input.slice(prevat, input.length);\r\n }\r\n } else {\r\n var al = [];\r\n\r\n prevat = input.length;\r\n\r\n do {\r\n matchIndex = match.getIndex();\r\n matchLength = match.getLength();\r\n\r\n if (matchIndex + matchLength !== prevat) {\r\n al.push(input.slice(matchIndex + matchLength, prevat));\r\n }\r\n\r\n prevat = matchIndex;\r\n this._replacementImplRTL(al, match);\r\n\r\n if (--count === 0) {\r\n break;\r\n }\r\n\r\n match = match.nextMatch();\r\n } while (match.getSuccess());\r\n\r\n if (prevat > 0) {\r\n sb += sb.slice(0, prevat);\r\n }\r\n\r\n var i;\r\n\r\n for (i = al.length - 1; i >= 0; i--) {\r\n sb += al[i];\r\n }\r\n }\r\n\r\n return sb;\r\n }\r\n },\r\n\r\n _replacementImpl: function (sb, match) {\r\n var specials = System.Text.RegularExpressions.RegexReplacement.Specials;\r\n var r;\r\n var i;\r\n\r\n for (i = 0; i < this._rules.length; i++) {\r\n r = this._rules[i];\r\n\r\n if (r >= 0) {\r\n // string lookup\r\n sb += this._strings[r];\r\n } else if (r < -specials) {\r\n // group lookup\r\n sb += match._groupToStringImpl(-specials - 1 - r);\r\n } else {\r\n // special insertion patterns\r\n switch (-specials - 1 - r) {\r\n case System.Text.RegularExpressions.RegexReplacement.LeftPortion:\r\n sb += match._getLeftSubstring();\r\n break;\r\n case System.Text.RegularExpressions.RegexReplacement.RightPortion:\r\n sb += match._getRightSubstring();\r\n break;\r\n case System.Text.RegularExpressions.RegexReplacement.LastGroup:\r\n sb += match._lastGroupToStringImpl();\r\n break;\r\n case System.Text.RegularExpressions.RegexReplacement.WholeString:\r\n sb += match._getOriginalString();\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return sb;\r\n },\r\n\r\n _replacementImplRTL: function (al, match) {\r\n var specials = System.Text.RegularExpressions.RegexReplacement.Specials;\r\n var r;\r\n var i;\r\n\r\n for (i = _rules.length - 1; i >= 0; i--) {\r\n r = this._rules[i];\r\n\r\n if (r >= 0) {\r\n // string lookup\r\n al.push(this._strings[r]);\r\n } else if (r < -specials) {\r\n // group lookup\r\n al.push(match._groupToStringImpl(-specials - 1 - r));\r\n } else {\r\n // special insertion patterns\r\n switch (-specials - 1 - r) {\r\n case System.Text.RegularExpressions.RegexReplacement.LeftPortion:\r\n al.push(match._getLeftSubstring());\r\n break;\r\n case System.Text.RegularExpressions.RegexReplacement.RightPortion:\r\n al.push(match._getRightSubstring());\r\n break;\r\n case System.Text.RegularExpressions.RegexReplacement.LastGroup:\r\n al.push(match._lastGroupToStringImpl());\r\n break;\r\n case System.Text.RegularExpressions.RegexReplacement.WholeString:\r\n al.push(match._getOriginalString());\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source RegexEngine.js\r\n\r\n Bridge.define(\"System.Text.RegularExpressions.RegexEngine\", {\r\n _pattern: \"\",\r\n _patternInfo: null,\r\n\r\n _text: \"\",\r\n _textStart: 0,\r\n _timeoutMs: -1,\r\n _timeoutTime: -1,\r\n _settings: null,\r\n\r\n _branchType: {\r\n base: 0,\r\n offset: 1,\r\n lazy: 2,\r\n greedy: 3,\r\n or: 4\r\n },\r\n\r\n _branchResultKind: {\r\n ok: 1,\r\n endPass: 2,\r\n nextPass: 3,\r\n nextBranch: 4\r\n },\r\n\r\n // ============================================================================================\r\n // Public functions\r\n // ============================================================================================\r\n ctor: function (pattern, isCaseInsensitive, isMultiLine, isSingleline, isIgnoreWhitespace, isExplicitCapture, timeoutMs) {\r\n this.$initialize();\r\n\r\n if (pattern == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"pattern\");\r\n }\r\n\r\n this._pattern = pattern;\r\n this._timeoutMs = timeoutMs;\r\n this._settings = {\r\n ignoreCase: isCaseInsensitive,\r\n multiline: isMultiLine,\r\n singleline: isSingleline,\r\n ignoreWhitespace: isIgnoreWhitespace,\r\n explicitCapture: isExplicitCapture\r\n };\r\n },\r\n\r\n match: function (text, textStart) {\r\n if (text == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"text\");\r\n }\r\n\r\n if (textStart != null && (textStart < 0 || textStart > text.length)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"textStart\", \"Start index cannot be less than 0 or greater than input length.\");\r\n }\r\n\r\n this._text = text;\r\n this._textStart = textStart;\r\n this._timeoutTime = this._timeoutMs > 0 ? new Date().getTime() + System.Convert.toInt32(this._timeoutMs + 0.5) : -1;\r\n\r\n // Get group descriptors\r\n var patternInfo = this.parsePattern();\r\n\r\n if (patternInfo.shouldFail) {\r\n return this._getEmptyMatch();\r\n }\r\n\r\n this._checkTimeout();\r\n\r\n var scanRes = this._scanAndTransformResult(textStart, patternInfo.tokens, false, null);\r\n\r\n return scanRes;\r\n },\r\n\r\n parsePattern: function () {\r\n if (this._patternInfo == null) {\r\n var parser = System.Text.RegularExpressions.RegexEngineParser;\r\n var patternInfo = parser.parsePattern(this._pattern, this._cloneSettings(this._settings));\r\n this._patternInfo = patternInfo;\r\n }\r\n\r\n return this._patternInfo;\r\n },\r\n\r\n // ============================================================================================\r\n // Engine main logic\r\n // ============================================================================================\r\n _scanAndTransformResult: function (textPos, tokens, noOffset, desiredLen) {\r\n var state = this._scan(textPos, this._text.length, tokens, noOffset, desiredLen);\r\n var transformedRes = this._collectScanResults(state, textPos);\r\n return transformedRes;\r\n },\r\n\r\n _scan: function (textPos, textEndPos, tokens, noOffset, desiredLen) {\r\n var resKind = this._branchResultKind;\r\n var branches = [];\r\n branches.grCaptureCache = {};\r\n\r\n var branch = null;\r\n var res = null;\r\n\r\n // Empty pattern case:\r\n if (tokens.length === 0) {\r\n var state = new System.Text.RegularExpressions.RegexEngineState();\r\n state.capIndex = textPos;\r\n state.txtIndex = textPos;\r\n state.capLength = 0;\r\n\r\n return state;\r\n }\r\n\r\n // Init base branch:\r\n var baseBranchType = noOffset ? this._branchType.base : this._branchType.offset;\r\n\r\n var endPos = this._patternInfo.isContiguous ? textPos : textEndPos;\r\n var baseBranch = new System.Text.RegularExpressions.RegexEngineBranch(baseBranchType, textPos, textPos, endPos);\r\n\r\n baseBranch.pushPass(0, tokens, this._cloneSettings(this._settings));\r\n baseBranch.started = true;\r\n baseBranch.state.txtIndex = textPos;\r\n branches.push(baseBranch);\r\n\r\n while (branches.length) {\r\n branch = branches[branches.length - 1];\r\n\r\n res = this._scanBranch(textEndPos, branches, branch);\r\n\r\n if (res === resKind.ok && (desiredLen == null || branch.state.capLength === desiredLen)) {\r\n return branch.state;\r\n }\r\n\r\n //if (!this.branchLimit) {\r\n // this.branchLimit = 1;\r\n //} else {\r\n // this.branchLimit++;\r\n // if (this.branchLimit > 200000) {\r\n // alert(\"Too many branches :(\");\r\n // break;\r\n // }\r\n //}\r\n\r\n this._advanceToNextBranch(branches, branch);\r\n this._checkTimeout();\r\n }\r\n\r\n return null;\r\n },\r\n\r\n _scanBranch: function (textEndPos, branches, branch) {\r\n var resKind = this._branchResultKind;\r\n var pass;\r\n var res;\r\n\r\n if (branch.mustFail) {\r\n branch.mustFail = false;\r\n\r\n return resKind.nextBranch;\r\n }\r\n\r\n while (branch.hasPass()) {\r\n pass = branch.peekPass();\r\n\r\n if (pass.tokens == null || pass.tokens.length === 0) {\r\n res = resKind.endPass;\r\n } else {\r\n // Add alternation branches before scanning:\r\n if (this._addAlternationBranches(branches, branch, pass) === resKind.nextBranch) {\r\n return resKind.nextBranch;\r\n }\r\n\r\n // Scan:\r\n res = this._scanPass(textEndPos, branches, branch, pass);\r\n }\r\n\r\n switch (res) {\r\n case resKind.nextBranch:\r\n // Move to the next branch:\r\n return res;\r\n\r\n case resKind.nextPass:\r\n // switch to the recently added pass\r\n continue;\r\n\r\n case resKind.endPass:\r\n case resKind.ok:\r\n // End of pass has been reached:\r\n branch.popPass();\r\n break;\r\n\r\n default:\r\n throw new System.InvalidOperationException.$ctor1(\"Unexpected branch result.\");\r\n }\r\n }\r\n\r\n return resKind.ok;\r\n },\r\n\r\n _scanPass: function (textEndPos, branches, branch, pass) {\r\n var resKind = this._branchResultKind;\r\n var passEndIndex = pass.tokens.length;\r\n var token;\r\n var probe;\r\n var res;\r\n\r\n while (pass.index < passEndIndex) {\r\n token = pass.tokens[pass.index];\r\n probe = pass.probe;\r\n\r\n // Add probing:\r\n if (probe == null) {\r\n if (this._addBranchBeforeProbing(branches, branch, pass, token)) {\r\n return resKind.nextBranch;\r\n }\r\n } else {\r\n if (probe.value < probe.min || probe.forced) {\r\n res = this._scanToken(textEndPos, branches, branch, pass, token);\r\n\r\n if (res !== resKind.ok) {\r\n return res;\r\n }\r\n\r\n probe.value += 1;\r\n probe.forced = false;\r\n\r\n continue;\r\n }\r\n\r\n this._addBranchAfterProbing(branches, branch, pass, probe);\r\n\r\n if (probe.forced) {\r\n continue;\r\n }\r\n\r\n pass.probe = null;\r\n pass.index++;\r\n\r\n continue;\r\n }\r\n\r\n // Process the token:\r\n res = this._scanToken(textEndPos, branches, branch, pass, token);\r\n\r\n // Process the result of the token scan:\r\n switch (res) {\r\n case resKind.nextBranch:\r\n case resKind.nextPass:\r\n case resKind.endPass:\r\n return res;\r\n\r\n case resKind.ok:\r\n // Advance to the next token within the current pass:\r\n pass.index++;\r\n break;\r\n\r\n default:\r\n throw new System.InvalidOperationException.$ctor1(\"Unexpected branch-pass result.\");\r\n }\r\n }\r\n\r\n return resKind.ok;\r\n },\r\n\r\n _addAlternationBranches: function (branches, branch, pass) {\r\n var tokenTypes = System.Text.RegularExpressions.RegexEngineParser.tokenTypes;\r\n var branchTypes = this._branchType;\r\n var passEndIndex = pass.tokens.length;\r\n var resKind = this._branchResultKind;\r\n var orIndexes;\r\n var newBranch;\r\n var newPass;\r\n var token;\r\n var i;\r\n\r\n // Scan potential alternations:\r\n if (!pass.alternationHandled && !pass.tokens.noAlternation) {\r\n orIndexes = [-1];\r\n\r\n for (i = 0; i < passEndIndex; i++) {\r\n token = pass.tokens[i];\r\n\r\n if (token.type === tokenTypes.alternation) {\r\n orIndexes.push(i);\r\n }\r\n }\r\n\r\n if (orIndexes.length > 1) {\r\n for (i = 0; i < orIndexes.length; i++) {\r\n newBranch = new System.Text.RegularExpressions.RegexEngineBranch(branchTypes.or, i, 0, orIndexes.length, branch.state);\r\n newBranch.isNotFailing = true;\r\n newPass = newBranch.peekPass();\r\n newPass.alternationHandled = true;\r\n newPass.index = orIndexes[i] + 1;\r\n branches.splice(branches.length - i, 0, newBranch);\r\n }\r\n\r\n // The last branch must fail:\r\n branches[branches.length - orIndexes.length].isNotFailing = false;\r\n\r\n // The parent branch must be ended up immediately:\r\n branch.mustFail = true;\r\n\r\n pass.alternationHandled = true;\r\n\r\n return resKind.nextBranch;\r\n } else {\r\n pass.tokens.noAlternation = true;\r\n }\r\n }\r\n\r\n return resKind.ok;\r\n },\r\n\r\n _addBranchBeforeProbing: function (branches, branch, pass, token) {\r\n // Add +, *, ? branches:\r\n var probe = this._tryGetTokenProbe(token);\r\n\r\n if (probe == null) {\r\n return false;\r\n }\r\n\r\n pass.probe = probe;\r\n\r\n var branchType = probe.isLazy ? this._branchType.lazy : this._branchType.greedy;\r\n var newBranch = new System.Text.RegularExpressions.RegexEngineBranch(branchType, probe.value, probe.min, probe.max, branch.state);\r\n\r\n branches.push(newBranch);\r\n\r\n return true;\r\n },\r\n\r\n _addBranchAfterProbing: function (branches, branch, pass, probe) {\r\n if (probe.isLazy) {\r\n if (probe.value + 1 <= probe.max) {\r\n var lazyBranch = branch.clone();\r\n var lazyProbe = lazyBranch.peekPass().probe;\r\n\r\n lazyBranch.value += 1;\r\n lazyProbe.forced = true;\r\n\r\n // add to the left from the current branch\r\n branches.splice(branches.length - 1, 0, lazyBranch);\r\n branch.isNotFailing = true;\r\n }\r\n } else {\r\n if (probe.value + 1 <= probe.max) {\r\n var greedyBranch = branch.clone();\r\n\r\n greedyBranch.started = true;\r\n greedyBranch.peekPass().probe = null;\r\n greedyBranch.peekPass().index++;\r\n branches.splice(branches.length - 1, 0, greedyBranch);\r\n\r\n probe.forced = true;\r\n branch.value += 1;\r\n branch.isNotFailing = true;\r\n }\r\n }\r\n },\r\n\r\n _tryGetTokenProbe: function (token) {\r\n var qtoken = token.qtoken;\r\n\r\n if (qtoken == null) {\r\n return null;\r\n }\r\n\r\n var tokenTypes = System.Text.RegularExpressions.RegexEngineParser.tokenTypes;\r\n var min;\r\n var max;\r\n\r\n if (qtoken.type === tokenTypes.quantifier) {\r\n switch (qtoken.value) {\r\n case \"*\":\r\n case \"*?\":\r\n min = 0;\r\n max = 2147483647;\r\n break;\r\n\r\n case \"+\":\r\n case \"+?\":\r\n min = 1;\r\n max = 2147483647;\r\n break;\r\n\r\n case \"?\":\r\n case \"??\":\r\n min = 0;\r\n max = 1;\r\n break;\r\n\r\n default:\r\n throw new System.InvalidOperationException.$ctor1(\"Unexpected quantifier value.\");\r\n }\r\n } else if (qtoken.type === tokenTypes.quantifierN) {\r\n min = qtoken.data.n;\r\n max = qtoken.data.n;\r\n } else if (qtoken.type === tokenTypes.quantifierNM) {\r\n min = qtoken.data.n;\r\n max = qtoken.data.m != null ? qtoken.data.m : 2147483647;\r\n } else {\r\n return null;\r\n }\r\n\r\n var probe = new System.Text.RegularExpressions.RegexEngineProbe(min, max, 0, qtoken.data.isLazy);\r\n return probe;\r\n },\r\n\r\n _advanceToNextBranch: function (branches, branch) {\r\n if (branches.length === 0) {\r\n return;\r\n }\r\n\r\n var lastBranch = branches[branches.length - 1];\r\n\r\n if (!lastBranch.started) {\r\n lastBranch.started = true;\r\n return;\r\n }\r\n\r\n if (branch !== lastBranch) {\r\n throw new System.InvalidOperationException.$ctor1(\"Current branch is supposed to be the last one.\");\r\n }\r\n\r\n if (branches.length === 1 && branch.type === this._branchType.offset) {\r\n branch.value++;\r\n branch.state.txtIndex = branch.value;\r\n branch.mustFail = false;\r\n\r\n // clear state:\r\n branch.state.capIndex = null;\r\n branch.state.capLength = 0;\r\n branch.state.groups.length = 0;\r\n branch.state.passes.length = 1;\r\n branch.state.passes[0].clearState(this._cloneSettings(this._settings));\r\n\r\n if (branch.value > branch.max) {\r\n branches.pop();\r\n }\r\n } else {\r\n branches.pop();\r\n\r\n if (!branch.isNotFailing) {\r\n lastBranch = branches[branches.length - 1];\r\n this._advanceToNextBranch(branches, lastBranch);\r\n\r\n return;\r\n }\r\n }\r\n },\r\n\r\n _collectScanResults: function (state, textPos) {\r\n var groupDescs = this._patternInfo.groups;\r\n var text = this._text;\r\n var processedGroupNames = {};\r\n var capGroups;\r\n var capGroup;\r\n var groupsMap = {};\r\n var groupDesc;\r\n var capture;\r\n var group;\r\n var i;\r\n\r\n // Create Empty match object:\r\n var match = this._getEmptyMatch();\r\n\r\n if (state != null) {\r\n capGroups = state.groups;\r\n\r\n // For successful match fill Match object:\r\n this._fillMatch(match, state.capIndex, state.capLength, textPos);\r\n\r\n // Fill group captures:\r\n for (i = 0; i < capGroups.length; i++) {\r\n capGroup = capGroups[i];\r\n groupDesc = groupDescs[capGroup.rawIndex - 1];\r\n\r\n if (groupDesc.constructs.skipCapture) {\r\n continue;\r\n }\r\n\r\n capture = {\r\n capIndex: capGroup.capIndex,\r\n capLength: capGroup.capLength,\r\n value: text.slice(capGroup.capIndex, capGroup.capIndex + capGroup.capLength)\r\n };\r\n\r\n group = groupsMap[groupDesc.name];\r\n\r\n if (group == null) {\r\n group = {\r\n capIndex: 0,\r\n capLength: 0,\r\n value: \"\",\r\n success: false,\r\n captures: [capture]\r\n };\r\n\r\n groupsMap[groupDesc.name] = group;\r\n } else {\r\n group.captures.push(capture);\r\n }\r\n }\r\n\r\n // Add groups to Match in the required order:\r\n for (i = 0; i < groupDescs.length; i++) {\r\n groupDesc = groupDescs[i];\r\n\r\n if (groupDesc.constructs.skipCapture) {\r\n continue;\r\n }\r\n\r\n if (processedGroupNames[groupDesc.name] === true) {\r\n continue;\r\n }\r\n\r\n group = groupsMap[groupDesc.name];\r\n\r\n if (group == null) {\r\n group = {\r\n capIndex: 0,\r\n capLength: 0,\r\n value: \"\",\r\n success: false,\r\n captures: []\r\n };\r\n } else {\r\n // Update group values with the last capture info:\r\n if (group.captures.length > 0) {\r\n capture = group.captures[group.captures.length - 1];\r\n\r\n group.capIndex = capture.capIndex;\r\n group.capLength = capture.capLength;\r\n group.value = capture.value;\r\n group.success = true;\r\n }\r\n }\r\n\r\n processedGroupNames[groupDesc.name] = true;\r\n group.descriptor = groupDesc; // TODO: check if we can get rid of this\r\n match.groups.push(group);\r\n }\r\n }\r\n\r\n return match;\r\n },\r\n\r\n // ============================================================================================\r\n // Token processing\r\n // ============================================================================================\r\n _scanToken: function (textEndPos, branches, branch, pass, token) {\r\n var tokenTypes = System.Text.RegularExpressions.RegexEngineParser.tokenTypes;\r\n var resKind = this._branchResultKind;\r\n\r\n switch (token.type) {\r\n case tokenTypes.group:\r\n case tokenTypes.groupImnsx:\r\n case tokenTypes.alternationGroup:\r\n return this._scanGroupToken(textEndPos, branches, branch, pass, token);\r\n\r\n case tokenTypes.groupImnsxMisc:\r\n return this._scanGroupImnsxToken(token.group.constructs, pass.settings);\r\n\r\n case tokenTypes.charGroup:\r\n return this._scanCharGroupToken(branches, branch, pass, token, false);\r\n\r\n case tokenTypes.charNegativeGroup:\r\n return this._scanCharNegativeGroupToken(branches, branch, pass, token, false);\r\n\r\n case tokenTypes.escChar:\r\n case tokenTypes.escCharOctal:\r\n case tokenTypes.escCharHex:\r\n case tokenTypes.escCharUnicode:\r\n case tokenTypes.escCharCtrl:\r\n return this._scanLiteral(textEndPos, branches, branch, pass, token.data.ch);\r\n\r\n case tokenTypes.escCharOther:\r\n case tokenTypes.escCharClass:\r\n return this._scanEscapeToken(branches, branch, pass, token);\r\n\r\n case tokenTypes.escCharClassCategory:\r\n throw new System.NotSupportedException.$ctor1(\"Unicode Category constructions are not supported.\");\r\n\r\n case tokenTypes.escCharClassBlock:\r\n throw new System.NotSupportedException.$ctor1(\"Unicode Named block constructions are not supported.\");\r\n\r\n case tokenTypes.escCharClassDot:\r\n return this._scanDotToken(textEndPos, branches, branch, pass);\r\n\r\n case tokenTypes.escBackrefNumber:\r\n return this._scanBackrefNumberToken(textEndPos, branches, branch, pass, token);\r\n\r\n case tokenTypes.escBackrefName:\r\n return this._scanBackrefNameToken(textEndPos, branches, branch, pass, token);\r\n\r\n case tokenTypes.anchor:\r\n case tokenTypes.escAnchor:\r\n return this._scanAnchorToken(textEndPos, branches, branch, pass, token);\r\n\r\n case tokenTypes.groupConstruct:\r\n case tokenTypes.groupConstructName:\r\n case tokenTypes.groupConstructImnsx:\r\n case tokenTypes.groupConstructImnsxMisc:\r\n return resKind.ok;\r\n\r\n case tokenTypes.alternationGroupCondition:\r\n case tokenTypes.alternationGroupRefNameCondition:\r\n case tokenTypes.alternationGroupRefNumberCondition:\r\n return this._scanAlternationConditionToken(textEndPos, branches, branch, pass, token);\r\n\r\n case tokenTypes.alternation:\r\n return resKind.endPass;\r\n\r\n case tokenTypes.commentInline:\r\n case tokenTypes.commentXMode:\r\n return resKind.ok;\r\n\r\n default:\r\n return this._scanLiteral(textEndPos, branches, branch, pass, token.value);\r\n }\r\n },\r\n\r\n _scanGroupToken: function (textEndPos, branches, branch, pass, token) {\r\n var tokenTypes = System.Text.RegularExpressions.RegexEngineParser.tokenTypes;\r\n var resKind = this._branchResultKind;\r\n var textIndex = branch.state.txtIndex;\r\n\r\n if (pass.onHold) {\r\n if (token.type === tokenTypes.group) {\r\n var rawIndex = token.group.rawIndex;\r\n var capIndex = pass.onHoldTextIndex;\r\n var capLength = textIndex - capIndex;\r\n\r\n // Cache value to avoid proceeding with the already checked route:\r\n var tokenCache = branches.grCaptureCache[rawIndex];\r\n\r\n if (tokenCache == null) {\r\n tokenCache = {};\r\n branches.grCaptureCache[rawIndex] = tokenCache;\r\n }\r\n\r\n var key = capIndex.toString() + \"_\" + capLength.toString();\r\n\r\n if (tokenCache[key] == null) {\r\n tokenCache[key] = true;\r\n } else {\r\n return resKind.nextBranch;\r\n }\r\n\r\n if (!token.group.constructs.emptyCapture) {\r\n if (token.group.isBalancing) {\r\n branch.state.logCaptureGroupBalancing(token.group, capIndex);\r\n } else {\r\n branch.state.logCaptureGroup(token.group, capIndex, capLength);\r\n }\r\n }\r\n }\r\n\r\n pass.onHold = false;\r\n pass.onHoldTextIndex = -1;\r\n\r\n return resKind.ok;\r\n }\r\n\r\n if (token.type === tokenTypes.group ||\r\n token.type === tokenTypes.groupImnsx) {\r\n var constructs = token.group.constructs;\r\n\r\n // Update Pass settings:\r\n this._scanGroupImnsxToken(constructs, pass.settings);\r\n\r\n // Scan Grouping constructs:\r\n if (constructs.isPositiveLookahead || constructs.isNegativeLookahead ||\r\n constructs.isPositiveLookbehind || constructs.isNegativeLookbehind) {\r\n var scanLookRes = this._scanLook(branch, textIndex, textEndPos, token);\r\n\r\n return scanLookRes;\r\n } else if (constructs.isNonbacktracking) {\r\n var scanNonBacktrackingRes = this._scanNonBacktracking(branch, textIndex, textEndPos, token);\r\n\r\n return scanNonBacktrackingRes;\r\n }\r\n }\r\n\r\n // Continue scanning a regular group:\r\n pass.onHoldTextIndex = textIndex;\r\n pass.onHold = true;\r\n\r\n branch.pushPass(0, token.children, this._cloneSettings(pass.settings));\r\n\r\n return resKind.nextPass;\r\n },\r\n\r\n _scanGroupImnsxToken: function (constructs, settings) {\r\n var resKind = this._branchResultKind;\r\n\r\n if (constructs.isIgnoreCase != null) {\r\n settings.ignoreCase = constructs.isIgnoreCase;\r\n }\r\n\r\n if (constructs.isMultiline != null) {\r\n settings.multiline = constructs.isMultiline;\r\n }\r\n\r\n if (constructs.isSingleLine != null) {\r\n settings.singleline = constructs.isSingleLine;\r\n }\r\n\r\n if (constructs.isIgnoreWhitespace != null) {\r\n settings.ignoreWhitespace = constructs.isIgnoreWhitespace;\r\n }\r\n\r\n if (constructs.isExplicitCapture != null) {\r\n settings.explicitCapture = constructs.isExplicitCapture;\r\n }\r\n\r\n return resKind.ok;\r\n },\r\n\r\n _scanAlternationConditionToken: function (textEndPos, branches, branch, pass, token) {\r\n var tokenTypes = System.Text.RegularExpressions.RegexEngineParser.tokenTypes;\r\n var resKind = this._branchResultKind;\r\n var children = token.children;\r\n var textIndex = branch.state.txtIndex;\r\n var res = resKind.nextBranch;\r\n\r\n if (token.type === tokenTypes.alternationGroupRefNameCondition ||\r\n token.type === tokenTypes.alternationGroupRefNumberCondition) {\r\n var grCapture = branch.state.resolveBackref(token.data.packedSlotId);\r\n\r\n if (grCapture != null) {\r\n res = resKind.ok;\r\n } else {\r\n res = resKind.nextBranch;\r\n }\r\n } else {\r\n // Resolve expression:\r\n var state = this._scan(textIndex, textEndPos, children, true, null);\r\n\r\n if (this._combineScanResults(branch, state)) {\r\n res = resKind.ok;\r\n }\r\n }\r\n\r\n if (res === resKind.nextBranch && pass.tokens.noAlternation) {\r\n res = resKind.endPass;\r\n }\r\n\r\n return res;\r\n },\r\n\r\n _scanLook: function (branch, textIndex, textEndPos, token) {\r\n var constructs = token.group.constructs;\r\n var resKind = this._branchResultKind;\r\n var children = token.children;\r\n var expectedRes;\r\n var actualRes;\r\n\r\n var isLookahead = constructs.isPositiveLookahead || constructs.isNegativeLookahead;\r\n var isLookbehind = constructs.isPositiveLookbehind || constructs.isNegativeLookbehind;\r\n\r\n if (isLookahead || isLookbehind) {\r\n children = children.slice(1, children.length); // remove constructs\r\n\r\n expectedRes = constructs.isPositiveLookahead || constructs.isPositiveLookbehind;\r\n\r\n if (isLookahead) {\r\n actualRes = this._scanLookAhead(branch, textIndex, textEndPos, children);\r\n } else {\r\n actualRes = this._scanLookBehind(branch, textIndex, textEndPos, children);\r\n }\r\n\r\n if (expectedRes === actualRes) {\r\n return resKind.ok;\r\n } else {\r\n return resKind.nextBranch;\r\n }\r\n }\r\n\r\n return null;\r\n },\r\n\r\n _scanLookAhead: function (branch, textIndex, textEndPos, tokens) {\r\n var state = this._scan(textIndex, textEndPos, tokens, true, null);\r\n\r\n return this._combineScanResults(branch, state);\r\n },\r\n\r\n _scanLookBehind: function (branch, textIndex, textEndPos, tokens) {\r\n var currIndex = textIndex;\r\n var strLen;\r\n var state;\r\n\r\n while (currIndex >= 0) {\r\n strLen = textIndex - currIndex;\r\n state = this._scan(currIndex, textEndPos, tokens, true, strLen);\r\n\r\n if (this._combineScanResults(branch, state)) {\r\n return true;\r\n }\r\n\r\n --currIndex;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n _scanNonBacktracking: function (branch, textIndex, textEndPos, token) {\r\n var resKind = this._branchResultKind;\r\n var children = token.children;\r\n children = children.slice(1, children.length); // remove constructs\r\n\r\n var state = this._scan(textIndex, textEndPos, children, true, null);\r\n\r\n if (!state) {\r\n return resKind.nextBranch;\r\n }\r\n\r\n branch.state.logCapture(state.capLength);\r\n\r\n return resKind.ok;\r\n },\r\n\r\n _scanLiteral: function (textEndPos, branches, branch, pass, literal) {\r\n var resKind = this._branchResultKind;\r\n var index = branch.state.txtIndex;\r\n\r\n if (index + literal.length > textEndPos) {\r\n return resKind.nextBranch;\r\n }\r\n\r\n var i;\r\n\r\n if (pass.settings.ignoreCase) {\r\n for (i = 0; i < literal.length; i++) {\r\n if (this._text[index + i].toLowerCase() !== literal[i].toLowerCase()) {\r\n return resKind.nextBranch;\r\n }\r\n }\r\n } else {\r\n for (i = 0; i < literal.length; i++) {\r\n if (this._text[index + i] !== literal[i]) {\r\n return resKind.nextBranch;\r\n }\r\n }\r\n }\r\n\r\n branch.state.logCapture(literal.length);\r\n\r\n return resKind.ok;\r\n },\r\n\r\n _scanWithJsRegex: function (branches, branch, pass, token, tokenValue) {\r\n var resKind = this._branchResultKind;\r\n var index = branch.state.txtIndex;\r\n var ch = this._text[index];\r\n\r\n if (ch == null) {\r\n ch = \"\";\r\n }\r\n\r\n var options = pass.settings.ignoreCase ? \"i\" : \"\";\r\n\r\n var rgx = token.rgx;\r\n\r\n if (rgx == null) {\r\n if (tokenValue == null) {\r\n tokenValue = token.value;\r\n }\r\n\r\n rgx = new RegExp(tokenValue, options);\r\n token.rgx = rgx;\r\n }\r\n\r\n if (rgx.test(ch)) {\r\n branch.state.logCapture(ch.length);\r\n\r\n return resKind.ok;\r\n }\r\n\r\n return resKind.nextBranch;\r\n },\r\n\r\n _scanWithJsRegex2: function (textIndex, pattern) {\r\n var resKind = this._branchResultKind;\r\n var ch = this._text[textIndex];\r\n\r\n if (ch == null) {\r\n ch = \"\";\r\n }\r\n\r\n var rgx = new RegExp(pattern, \"\");\r\n\r\n if (rgx.test(ch)) {\r\n return resKind.ok;\r\n }\r\n\r\n return resKind.nextBranch;\r\n },\r\n\r\n _scanCharGroupToken: function (branches, branch, pass, token, skipLoggingCapture) {\r\n var tokenTypes = System.Text.RegularExpressions.RegexEngineParser.tokenTypes;\r\n var resKind = this._branchResultKind;\r\n var index = branch.state.txtIndex;\r\n var ch = this._text[index];\r\n\r\n if (ch == null) {\r\n return resKind.nextBranch;\r\n }\r\n\r\n var i;\r\n var j;\r\n var n = ch.charCodeAt(0);\r\n var ranges = token.data.ranges;\r\n var range;\r\n var upperCh;\r\n\r\n // Check susbstruct group:\r\n if (token.data.substractToken != null) {\r\n var substractRes;\r\n\r\n if (token.data.substractToken.type === tokenTypes.charGroup) {\r\n substractRes = this._scanCharGroupToken(branches, branch, pass, token.data.substractToken, true);\r\n } else if (token.data.substractToken.type === tokenTypes.charNegativeGroup) {\r\n substractRes = this._scanCharNegativeGroupToken(branches, branch, pass, token.data.substractToken, true);\r\n } else {\r\n throw new System.InvalidOperationException.$ctor1(\"Unexpected substuct group token.\");\r\n }\r\n\r\n if (substractRes === resKind.ok) {\r\n return token.type === tokenTypes.charGroup ? resKind.nextBranch : resKind.ok;\r\n }\r\n }\r\n\r\n // Try CharClass tokens like: \\s \\S \\d \\D\r\n if (ranges.charClassToken != null) {\r\n var charClassRes = this._scanWithJsRegex(branches, branch, pass, ranges.charClassToken);\r\n\r\n if (charClassRes === resKind.ok) {\r\n return resKind.ok;\r\n }\r\n }\r\n\r\n // 2 iterations - to handle both cases: upper and lower\r\n for (j = 0; j < 2; j++) {\r\n //TODO: [Performance] Use binary search\r\n for (i = 0; i < ranges.length; i++) {\r\n range = ranges[i];\r\n\r\n if (range.n > n) {\r\n break;\r\n }\r\n\r\n if (n <= range.m) {\r\n if (!skipLoggingCapture) {\r\n branch.state.logCapture(1);\r\n }\r\n\r\n return resKind.ok;\r\n }\r\n }\r\n\r\n if (upperCh == null && pass.settings.ignoreCase) {\r\n upperCh = ch.toUpperCase();\r\n\r\n // Invert case for the 2nd attempt;\r\n if (ch === upperCh) {\r\n ch = ch.toLowerCase();\r\n } else {\r\n ch = upperCh;\r\n }\r\n\r\n n = ch.charCodeAt(0);\r\n }\r\n }\r\n\r\n return resKind.nextBranch;\r\n },\r\n\r\n _scanCharNegativeGroupToken: function (branches, branch, pass, token, skipLoggingCapture) {\r\n var resKind = this._branchResultKind;\r\n var index = branch.state.txtIndex;\r\n var ch = this._text[index];\r\n\r\n if (ch == null) {\r\n return resKind.nextBranch;\r\n }\r\n\r\n // Get result for positive group:\r\n var positiveRes = this._scanCharGroupToken(branches, branch, pass, token, true);\r\n\r\n // Inverse the positive result:\r\n if (positiveRes === resKind.ok) {\r\n return resKind.nextBranch;\r\n }\r\n\r\n if (!skipLoggingCapture) {\r\n branch.state.logCapture(1);\r\n }\r\n\r\n return resKind.ok;\r\n },\r\n\r\n _scanEscapeToken: function (branches, branch, pass, token) {\r\n return this._scanWithJsRegex(branches, branch, pass, token);\r\n },\r\n\r\n _scanDotToken: function (textEndPos, branches, branch, pass) {\r\n var resKind = this._branchResultKind;\r\n var index = branch.state.txtIndex;\r\n\r\n if (pass.settings.singleline) {\r\n if (index < textEndPos) {\r\n branch.state.logCapture(1);\r\n\r\n return resKind.ok;\r\n }\r\n } else {\r\n if (index < textEndPos && this._text[index] !== \"\\n\") {\r\n branch.state.logCapture(1);\r\n\r\n return resKind.ok;\r\n }\r\n }\r\n\r\n return resKind.nextBranch;\r\n },\r\n\r\n _scanBackrefNumberToken: function (textEndPos, branches, branch, pass, token) {\r\n var resKind = this._branchResultKind;\r\n\r\n var grCapture = branch.state.resolveBackref(token.data.slotId);\r\n\r\n if (grCapture == null) {\r\n return resKind.nextBranch;\r\n }\r\n\r\n var grCaptureTxt = this._text.slice(grCapture.capIndex, grCapture.capIndex + grCapture.capLength);\r\n\r\n return this._scanLiteral(textEndPos, branches, branch, pass, grCaptureTxt);\r\n },\r\n\r\n _scanBackrefNameToken: function (textEndPos, branches, branch, pass, token) {\r\n var resKind = this._branchResultKind;\r\n\r\n var grCapture = branch.state.resolveBackref(token.data.slotId);\r\n\r\n if (grCapture == null) {\r\n return resKind.nextBranch;\r\n }\r\n\r\n var grCaptureTxt = this._text.slice(grCapture.capIndex, grCapture.capIndex + grCapture.capLength);\r\n\r\n return this._scanLiteral(textEndPos, branches, branch, pass, grCaptureTxt);\r\n },\r\n\r\n _scanAnchorToken: function (textEndPos, branches, branch, pass, token) {\r\n var resKind = this._branchResultKind;\r\n var index = branch.state.txtIndex;\r\n\r\n if (token.value === \"\\\\b\" || token.value === \"\\\\B\") {\r\n var prevIsWord = index > 0 && this._scanWithJsRegex2(index - 1, \"\\\\w\") === resKind.ok;\r\n var currIsWord = this._scanWithJsRegex2(index, \"\\\\w\") === resKind.ok;\r\n\r\n if ((prevIsWord === currIsWord) === (token.value === \"\\\\B\")) {\r\n return resKind.ok;\r\n }\r\n } else if (token.value === \"^\") {\r\n if (index === 0) {\r\n return resKind.ok;\r\n }\r\n\r\n if (pass.settings.multiline && this._text[index - 1] === \"\\n\") {\r\n return resKind.ok;\r\n }\r\n } else if (token.value === \"$\") {\r\n if (index === textEndPos) {\r\n return resKind.ok;\r\n }\r\n\r\n if (pass.settings.multiline && this._text[index] === \"\\n\") {\r\n return resKind.ok;\r\n }\r\n } else if (token.value === \"\\\\A\") {\r\n if (index === 0) {\r\n return resKind.ok;\r\n }\r\n } else if (token.value === \"\\\\z\") {\r\n if (index === textEndPos) {\r\n return resKind.ok;\r\n }\r\n } else if (token.value === \"\\\\Z\") {\r\n if (index === textEndPos) {\r\n return resKind.ok;\r\n }\r\n\r\n if (index === textEndPos - 1 && this._text[index] === \"\\n\") {\r\n return resKind.ok;\r\n }\r\n } else if (token.value === \"\\\\G\") {\r\n return resKind.ok;\r\n }\r\n\r\n return resKind.nextBranch;\r\n },\r\n\r\n // ============================================================================================\r\n // Auxiliary functions\r\n // ============================================================================================\r\n _cloneSettings: function (settings) {\r\n var cloned = {\r\n ignoreCase: settings.ignoreCase,\r\n multiline: settings.multiline,\r\n singleline: settings.singleline,\r\n ignoreWhitespace: settings.ignoreWhitespace,\r\n explicitCapture: settings.explicitCapture\r\n };\r\n\r\n return cloned;\r\n },\r\n\r\n _combineScanResults: function (branch, srcState) {\r\n if (srcState != null) {\r\n var dstGroups = branch.state.groups;\r\n var srcGroups = srcState.groups;\r\n var srcGroupsLen = srcGroups.length;\r\n var i;\r\n\r\n for (i = 0; i < srcGroupsLen; ++i) {\r\n dstGroups.push(srcGroups[i]);\r\n }\r\n\r\n return true;\r\n }\r\n return false;\r\n },\r\n\r\n _getEmptyMatch: function () {\r\n var match = {\r\n capIndex: 0, // start index of total capture\r\n capLength: 0, // length of total capture\r\n success: false,\r\n value: \"\",\r\n groups: [],\r\n captures: []\r\n };\r\n\r\n return match;\r\n },\r\n\r\n _fillMatch: function (match, capIndex, capLength, textPos) {\r\n if (capIndex == null) {\r\n capIndex = textPos;\r\n }\r\n\r\n match.capIndex = capIndex;\r\n match.capLength = capLength;\r\n match.success = true;\r\n match.value = this._text.slice(capIndex, capIndex + capLength);\r\n\r\n match.groups.push({\r\n capIndex: capIndex,\r\n capLength: capLength,\r\n value: match.value,\r\n success: true,\r\n captures: [\r\n {\r\n capIndex: capIndex,\r\n capLength: capLength,\r\n value: match.value\r\n }\r\n ]\r\n });\r\n\r\n match.captures.push(match.groups[0].captures[0]);\r\n },\r\n\r\n _checkTimeout: function () {\r\n if (this._timeoutTime < 0) {\r\n return;\r\n }\r\n\r\n var time = new Date().getTime();\r\n\r\n if (time >= this._timeoutTime) {\r\n throw new System.RegexMatchTimeoutException(this._text, this._pattern, System.TimeSpan.fromMilliseconds(this._timeoutMs));\r\n }\r\n }\r\n });\r\n\r\n // @source RegexEngineBranch.js\r\n\r\n Bridge.define(\"System.Text.RegularExpressions.RegexEngineBranch\", {\r\n type: 0,\r\n value: 0,\r\n min: 0,\r\n max: 0,\r\n\r\n isStarted: false,\r\n isNotFailing: false,\r\n\r\n state: null,\r\n\r\n ctor: function (branchType, currVal, minVal, maxVal, parentState) {\r\n this.$initialize();\r\n\r\n this.type = branchType;\r\n\r\n this.value = currVal;\r\n this.min = minVal;\r\n this.max = maxVal;\r\n\r\n this.state = parentState != null ? parentState.clone() : new System.Text.RegularExpressions.RegexEngineState();\r\n },\r\n\r\n pushPass: function (index, tokens, settings) {\r\n var pass = new System.Text.RegularExpressions.RegexEnginePass(index, tokens, settings);\r\n\r\n this.state.passes.push(pass);\r\n },\r\n\r\n peekPass: function () {\r\n return this.state.passes[this.state.passes.length - 1];\r\n },\r\n\r\n popPass: function () {\r\n return this.state.passes.pop();\r\n },\r\n\r\n hasPass: function () {\r\n return this.state.passes.length > 0;\r\n },\r\n\r\n clone: function () {\r\n var cloned = new System.Text.RegularExpressions.RegexEngineBranch(this.type, this.value, this.min, this.max, this.state);\r\n\r\n cloned.isNotFailing = this.isNotFailing;\r\n\r\n return cloned;\r\n }\r\n });\r\n\r\n // @source RegexEngineState.js\r\n\r\n Bridge.define(\"System.Text.RegularExpressions.RegexEngineState\", {\r\n txtIndex: 0, // current index\r\n capIndex: null, // first index of captured text\r\n capLength: 0, // current length\r\n passes: null,\r\n groups: null, // captured groups\r\n\r\n ctor: function () {\r\n this.$initialize();\r\n\r\n this.passes = [];\r\n this.groups = [];\r\n },\r\n\r\n logCapture: function (length) {\r\n if (this.capIndex == null) {\r\n this.capIndex = this.txtIndex;\r\n }\r\n\r\n this.txtIndex += length;\r\n this.capLength += length;\r\n },\r\n\r\n logCaptureGroup: function (group, index, length) {\r\n this.groups.push({ rawIndex: group.rawIndex, slotId: group.packedSlotId, capIndex: index, capLength: length });\r\n },\r\n\r\n logCaptureGroupBalancing: function (group, capIndex) {\r\n var balancingSlotId = group.balancingSlotId;\r\n var groups = this.groups;\r\n var index = groups.length - 1;\r\n var group2;\r\n var group2Index;\r\n\r\n while (index >= 0) {\r\n if (groups[index].slotId === balancingSlotId) {\r\n group2 = groups[index];\r\n group2Index = index;\r\n\r\n break;\r\n }\r\n --index;\r\n }\r\n\r\n if (group2 != null && group2Index != null) {\r\n groups.splice(group2Index, 1); // remove group2 from the collection\r\n\r\n // Add balancing group value:\r\n if (group.constructs.name1 != null) {\r\n var balCapIndex = group2.capIndex + group2.capLength;\r\n var balCapLength = capIndex - balCapIndex;\r\n\r\n this.logCaptureGroup(group, balCapIndex, balCapLength);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n\r\n resolveBackref: function (packedSlotId) {\r\n var groups = this.groups;\r\n var index = groups.length - 1;\r\n\r\n while (index >= 0) {\r\n if (groups[index].slotId === packedSlotId) {\r\n return groups[index];\r\n }\r\n\r\n --index;\r\n }\r\n\r\n return null;\r\n },\r\n\r\n clone: function () {\r\n var cloned = new System.Text.RegularExpressions.RegexEngineState();\r\n cloned.txtIndex = this.txtIndex;\r\n cloned.capIndex = this.capIndex;\r\n cloned.capLength = this.capLength;\r\n\r\n // Clone passes:\r\n var clonedPasses = cloned.passes;\r\n var thisPasses = this.passes;\r\n var len = thisPasses.length;\r\n var clonedItem;\r\n var i;\r\n\r\n for (i = 0; i < len; i++) {\r\n clonedItem = thisPasses[i].clone();\r\n clonedPasses.push(clonedItem);\r\n }\r\n\r\n // Clone groups:\r\n var clonedGroups = cloned.groups;\r\n var thisGroups = this.groups;\r\n len = thisGroups.length;\r\n\r\n for (i = 0; i < len; i++) {\r\n clonedItem = thisGroups[i];\r\n clonedGroups.push(clonedItem);\r\n }\r\n\r\n return cloned;\r\n }\r\n });\r\n\r\n // @source RegexEnginePass.js\r\n\r\n Bridge.define(\"System.Text.RegularExpressions.RegexEnginePass\", {\r\n index: 0,\r\n tokens: null,\r\n probe: null,\r\n\r\n onHold: false,\r\n onHoldTextIndex: -1,\r\n alternationHandled: false,\r\n\r\n settings: null,\r\n\r\n ctor: function (index, tokens, settings) {\r\n this.$initialize();\r\n\r\n this.index = index;\r\n this.tokens = tokens;\r\n this.settings = settings;\r\n },\r\n\r\n clearState: function (settings) {\r\n this.index = 0;\r\n this.probe = null;\r\n this.onHold = false;\r\n this.onHoldTextIndex = -1;\r\n this.alternationHandled = false;\r\n this.settings = settings;\r\n },\r\n\r\n clone: function () {\r\n var cloned = new System.Text.RegularExpressions.RegexEnginePass(this.index, this.tokens, this.settings);\r\n\r\n cloned.onHold = this.onHold;\r\n cloned.onHoldTextIndex = this.onHoldTextIndex;\r\n cloned.alternationHandled = this.alternationHandled;\r\n cloned.probe = this.probe != null ? this.probe.clone() : null;\r\n\r\n return cloned;\r\n }\r\n });\r\n\r\n // @source RegexEngineProbe.js\r\n\r\n Bridge.define(\"System.Text.RegularExpressions.RegexEngineProbe\", {\r\n min: 0,\r\n max: 0,\r\n value: 0,\r\n isLazy: false,\r\n forced: false,\r\n\r\n ctor: function (min, max, value, isLazy) {\r\n this.$initialize();\r\n\r\n this.min = min;\r\n this.max = max;\r\n this.value = value;\r\n this.isLazy = isLazy;\r\n this.forced = false;\r\n },\r\n\r\n clone: function () {\r\n var cloned = new System.Text.RegularExpressions.RegexEngineProbe(this.min, this.max, this.value, this.isLazy);\r\n\r\n cloned.forced = this.forced;\r\n\r\n return cloned;\r\n }\r\n });\r\n\r\n // @source RegexEngineParser.js\r\n\r\n Bridge.define(\"System.Text.RegularExpressions.RegexEngineParser\", {\r\n statics: {\r\n _hexSymbols: \"0123456789abcdefABCDEF\",\r\n _octSymbols: \"01234567\",\r\n _decSymbols: \"0123456789\",\r\n\r\n _escapedChars: \"abtrvfnexcu\",\r\n _escapedCharClasses: \"pPwWsSdD\",\r\n _escapedAnchors: \"AZzGbB\",\r\n _escapedSpecialSymbols: \" .,$^{}[]()|*+-=?\\\\|/\\\"':;~!@#%&\",\r\n\r\n _whiteSpaceChars: \" \\r\\n\\t\\v\\f\\u00A0\\uFEFF\", //TODO: This is short version of .NET WhiteSpace category.\r\n _unicodeCategories: [\"Lu\", \"Ll\", \"Lt\", \"Lm\", \"Lo\", \"L\", \"Mn\", \"Mc\", \"Me\", \"M\", \"Nd\", \"Nl\", \"No\", \"N\", \"Pc\", \"Pd\", \"Ps\", \"Pe\", \"Pi\", \"Pf\", \"Po\", \"P\", \"Sm\", \"Sc\", \"Sk\", \"So\", \"S\", \"Zs\", \"Zl\", \"Zp\", \"Z\", \"Cc\", \"Cf\", \"Cs\", \"Co\", \"Cn\", \"C\"],\r\n _namedCharBlocks: [\"IsBasicLatin\", \"IsLatin-1Supplement\", \"IsLatinExtended-A\", \"IsLatinExtended-B\", \"IsIPAExtensions\", \"IsSpacingModifierLetters\", \"IsCombiningDiacriticalMarks\", \"IsGreek\", \"IsGreekandCoptic\", \"IsCyrillic\", \"IsCyrillicSupplement\", \"IsArmenian\", \"IsHebrew\", \"IsArabic\", \"IsSyriac\", \"IsThaana\", \"IsDevanagari\", \"IsBengali\", \"IsGurmukhi\", \"IsGujarati\", \"IsOriya\", \"IsTamil\", \"IsTelugu\", \"IsKannada\", \"IsMalayalam\", \"IsSinhala\", \"IsThai\", \"IsLao\", \"IsTibetan\", \"IsMyanmar\", \"IsGeorgian\", \"IsHangulJamo\", \"IsEthiopic\", \"IsCherokee\", \"IsUnifiedCanadianAboriginalSyllabics\", \"IsOgham\", \"IsRunic\", \"IsTagalog\", \"IsHanunoo\", \"IsBuhid\", \"IsTagbanwa\", \"IsKhmer\", \"IsMongolian\", \"IsLimbu\", \"IsTaiLe\", \"IsKhmerSymbols\", \"IsPhoneticExtensions\", \"IsLatinExtendedAdditional\", \"IsGreekExtended\", \"IsGeneralPunctuation\", \"IsSuperscriptsandSubscripts\", \"IsCurrencySymbols\", \"IsCombiningDiacriticalMarksforSymbols\", \"IsCombiningMarksforSymbols\", \"IsLetterlikeSymbols\", \"IsNumberForms\", \"IsArrows\", \"IsMathematicalOperators\", \"IsMiscellaneousTechnical\", \"IsControlPictures\", \"IsOpticalCharacterRecognition\", \"IsEnclosedAlphanumerics\", \"IsBoxDrawing\", \"IsBlockElements\", \"IsGeometricShapes\", \"IsMiscellaneousSymbols\", \"IsDingbats\", \"IsMiscellaneousMathematicalSymbols-A\", \"IsSupplementalArrows-A\", \"IsBraillePatterns\", \"IsSupplementalArrows-B\", \"IsMiscellaneousMathematicalSymbols-B\", \"IsSupplementalMathematicalOperators\", \"IsMiscellaneousSymbolsandArrows\", \"IsCJKRadicalsSupplement\", \"IsKangxiRadicals\", \"IsIdeographicDescriptionCharacters\", \"IsCJKSymbolsandPunctuation\", \"IsHiragana\", \"IsKatakana\", \"IsBopomofo\", \"IsHangulCompatibilityJamo\", \"IsKanbun\", \"IsBopomofoExtended\", \"IsKatakanaPhoneticExtensions\", \"IsEnclosedCJKLettersandMonths\", \"IsCJKCompatibility\", \"IsCJKUnifiedIdeographsExtensionA\", \"IsYijingHexagramSymbols\", \"IsCJKUnifiedIdeographs\", \"IsYiSyllables\", \"IsYiRadicals\", \"IsHangulSyllables\", \"IsHighSurrogates\", \"IsHighPrivateUseSurrogates\", \"IsLowSurrogates\", \"IsPrivateUse or IsPrivateUseArea\", \"IsCJKCompatibilityIdeographs\", \"IsAlphabeticPresentationForms\", \"IsArabicPresentationForms-A\", \"IsVariationSelectors\", \"IsCombiningHalfMarks\", \"IsCJKCompatibilityForms\", \"IsSmallFormVariants\", \"IsArabicPresentationForms-B\", \"IsHalfwidthandFullwidthForms\", \"IsSpecials\"],\r\n _controlChars: [\"@\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"[\", \"\\\\\", \"]\", \"^\", \"_\"],\r\n\r\n tokenTypes: {\r\n literal: 0,\r\n\r\n escChar: 110,\r\n escCharOctal: 111,\r\n escCharHex: 112,\r\n escCharCtrl: 113,\r\n escCharUnicode: 114,\r\n escCharOther: 115,\r\n\r\n escCharClass: 120,\r\n escCharClassCategory: 121,\r\n escCharClassBlock: 122,\r\n escCharClassDot: 123,\r\n\r\n escAnchor: 130,\r\n\r\n escBackrefNumber: 140,\r\n escBackrefName: 141,\r\n\r\n charGroup: 200,\r\n charNegativeGroup: 201,\r\n charInterval: 202,\r\n\r\n anchor: 300,\r\n\r\n group: 400,\r\n groupImnsx: 401,\r\n groupImnsxMisc: 402,\r\n\r\n groupConstruct: 403,\r\n groupConstructName: 404,\r\n groupConstructImnsx: 405,\r\n groupConstructImnsxMisc: 406,\r\n\r\n quantifier: 500,\r\n quantifierN: 501,\r\n quantifierNM: 502,\r\n\r\n alternation: 600,\r\n alternationGroup: 601,\r\n alternationGroupCondition: 602,\r\n alternationGroupRefNumberCondition: 603,\r\n alternationGroupRefNameCondition: 604,\r\n\r\n commentInline: 700,\r\n commentXMode: 701\r\n },\r\n\r\n parsePattern: function (pattern, settings) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n\r\n // Parse tokens in the original pattern:\r\n var tokens = scope._parsePatternImpl(pattern, settings, 0, pattern.length);\r\n\r\n // Collect and fill group descriptors into Group tokens.\r\n // We need do it before any token modification.\r\n var groups = [];\r\n scope._fillGroupDescriptors(tokens, groups);\r\n\r\n // Fill Sparse Info:\r\n var sparseSettings = scope._getGroupSparseInfo(groups);\r\n\r\n // Fill balancing info for the groups with \"name2\":\r\n scope._fillBalancingGroupInfo(groups, sparseSettings);\r\n\r\n // Transform tokens for usage in JS RegExp:\r\n scope._preTransformBackrefTokens(pattern, tokens, sparseSettings);\r\n scope._transformRawTokens(settings, tokens, sparseSettings, [], [], 0);\r\n\r\n // Update group descriptors as tokens have been transformed (at least indexes were changed):\r\n scope._updateGroupDescriptors(tokens);\r\n\r\n var result = {\r\n groups: groups,\r\n sparseSettings: sparseSettings,\r\n isContiguous: settings.isContiguous || false,\r\n shouldFail: settings.shouldFail || false,\r\n tokens: tokens\r\n };\r\n\r\n return result;\r\n },\r\n\r\n _transformRawTokens: function (settings, tokens, sparseSettings, allowedPackedSlotIds, nestedGroupIds, nestingLevel) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var tokenTypes = scope.tokenTypes;\r\n var prevToken;\r\n var token;\r\n var value;\r\n var packedSlotId;\r\n var groupNumber;\r\n var matchRes;\r\n var localNestedGroupIds;\r\n var localSettings;\r\n var qtoken;\r\n var i;\r\n\r\n // Transform/adjust tokens collection to work with JS RegExp:\r\n for (i = 0; i < tokens.length; i++) {\r\n token = tokens[i];\r\n\r\n if (i < tokens.length - 1) {\r\n qtoken = tokens[i + 1];\r\n\r\n switch (qtoken.type) {\r\n case tokenTypes.quantifier:\r\n case tokenTypes.quantifierN:\r\n case tokenTypes.quantifierNM:\r\n token.qtoken = qtoken;\r\n tokens.splice(i + 1, 1);\r\n --i;\r\n }\r\n }\r\n\r\n if (token.type === tokenTypes.escBackrefNumber) {\r\n groupNumber = token.data.number;\r\n packedSlotId = sparseSettings.getPackedSlotIdBySlotNumber(groupNumber);\r\n\r\n if (packedSlotId == null) {\r\n throw new System.ArgumentException.$ctor1(\"Reference to undefined group number \" + groupNumber.toString() + \".\");\r\n }\r\n\r\n if (allowedPackedSlotIds.indexOf(packedSlotId) < 0) {\r\n settings.shouldFail = true; // Backreferences to unreachable group number lead to an empty match.\r\n\r\n continue;\r\n }\r\n\r\n token.data.slotId = packedSlotId;\r\n } else if (token.type === tokenTypes.escBackrefName) {\r\n value = token.data.name;\r\n packedSlotId = sparseSettings.getPackedSlotIdBySlotName(value);\r\n\r\n if (packedSlotId == null) {\r\n // TODO: Move this code to earlier stages\r\n // If the name is number, treat the backreference as a numbered:\r\n matchRes = scope._matchChars(value, 0, value.length, scope._decSymbols);\r\n\r\n if (matchRes.matchLength === value.length) {\r\n value = \"\\\\\" + value;\r\n scope._updatePatternToken(token, tokenTypes.escBackrefNumber, token.index, value.length, value);\r\n --i; // process the token again\r\n\r\n continue;\r\n }\r\n\r\n throw new System.ArgumentException.$ctor1(\"Reference to undefined group name '\" + value + \"'.\");\r\n }\r\n\r\n if (allowedPackedSlotIds.indexOf(packedSlotId) < 0) {\r\n settings.shouldFail = true; // Backreferences to unreachable group number lead to an empty match.\r\n\r\n continue;\r\n }\r\n\r\n token.data.slotId = packedSlotId;\r\n } else if (token.type === tokenTypes.anchor || token.type === tokenTypes.escAnchor) {\r\n if (token.value === \"\\\\G\") {\r\n if (nestingLevel === 0 && i === 0) {\r\n settings.isContiguous = true;\r\n } else {\r\n settings.shouldFail = true;\r\n }\r\n\r\n tokens.splice(i, 1);\r\n --i;\r\n\r\n continue;\r\n }\r\n } else if (token.type === tokenTypes.commentInline || token.type === tokenTypes.commentXMode) {\r\n // We can safely remove comments from the pattern\r\n tokens.splice(i, 1);\r\n --i;\r\n\r\n continue;\r\n } else if (token.type === tokenTypes.literal) {\r\n // Combine literal tokens for better performance:\r\n if (i > 0 && !token.qtoken) {\r\n prevToken = tokens[i - 1];\r\n\r\n if (prevToken.type === tokenTypes.literal && !prevToken.qtoken) {\r\n prevToken.value += token.value;\r\n prevToken.length += token.length;\r\n\r\n tokens.splice(i, 1);\r\n --i;\r\n\r\n continue;\r\n }\r\n }\r\n } else if (token.type === tokenTypes.alternationGroupCondition) {\r\n if (token.data != null) {\r\n if (token.data.number != null) {\r\n packedSlotId = sparseSettings.getPackedSlotIdBySlotNumber(token.data.number);\r\n\r\n if (packedSlotId == null) {\r\n throw new System.ArgumentException.$ctor1(\"Reference to undefined group number \" + value + \".\");\r\n }\r\n\r\n token.data.packedSlotId = packedSlotId;\r\n scope._updatePatternToken(token, tokenTypes.alternationGroupRefNumberCondition, token.index, token.length, token.value);\r\n } else {\r\n packedSlotId = sparseSettings.getPackedSlotIdBySlotName(token.data.name);\r\n\r\n if (packedSlotId != null) {\r\n token.data.packedSlotId = packedSlotId;\r\n scope._updatePatternToken(token, tokenTypes.alternationGroupRefNameCondition, token.index, token.length, token.value);\r\n } else {\r\n delete token.data;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Update children tokens:\r\n if (token.children && token.children.length) {\r\n localNestedGroupIds = token.type === tokenTypes.group ? [token.group.rawIndex] : [];\r\n localNestedGroupIds = localNestedGroupIds.concat(nestedGroupIds);\r\n\r\n localSettings = token.localSettings || settings;\r\n scope._transformRawTokens(localSettings, token.children, sparseSettings, allowedPackedSlotIds, localNestedGroupIds, nestingLevel + 1);\r\n settings.shouldFail = settings.shouldFail || localSettings.shouldFail;\r\n settings.isContiguous = settings.isContiguous || localSettings.isContiguous;\r\n }\r\n\r\n // Group is processed. Now it can be referenced with Backref:\r\n if (token.type === tokenTypes.group) {\r\n allowedPackedSlotIds.push(token.group.packedSlotId);\r\n }\r\n }\r\n },\r\n\r\n _fillGroupDescriptors: function (tokens, groups) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var group;\r\n var i;\r\n\r\n // Fill group structure:\r\n scope._fillGroupStructure(groups, tokens, null);\r\n\r\n // Assign name or id:\r\n var groupId = 1;\r\n\r\n for (i = 0; i < groups.length; i++) {\r\n group = groups[i];\r\n\r\n if (group.constructs.name1 != null) {\r\n group.name = group.constructs.name1;\r\n group.hasName = true;\r\n } else {\r\n group.hasName = false;\r\n group.name = groupId.toString();\r\n ++groupId;\r\n }\r\n }\r\n },\r\n\r\n _fillGroupStructure: function (groups, tokens, parentGroup) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var tokenTypes = scope.tokenTypes;\r\n var group;\r\n var token;\r\n var constructs;\r\n var constructCandidateToken;\r\n var hasChildren;\r\n var i;\r\n\r\n for (i = 0; i < tokens.length; i++) {\r\n token = tokens[i];\r\n hasChildren = token.children && token.children.length;\r\n\r\n if (token.type === tokenTypes.group || token.type === tokenTypes.groupImnsx || token.type === tokenTypes.groupImnsxMisc) {\r\n group = {\r\n rawIndex: groups.length + 1,\r\n number: -1,\r\n\r\n parentGroup: null,\r\n innerGroups: [],\r\n\r\n name: null,\r\n hasName: false,\r\n\r\n constructs: null,\r\n quantifier: null,\r\n\r\n exprIndex: -1,\r\n exprLength: 0,\r\n expr: null,\r\n exprFull: null\r\n };\r\n\r\n token.group = group;\r\n\r\n if (token.type === tokenTypes.group) {\r\n groups.push(group);\r\n\r\n if (parentGroup != null) {\r\n token.group.parentGroup = parentGroup;\r\n parentGroup.innerGroups.push(group);\r\n }\r\n }\r\n\r\n // fill group constructs:\r\n constructCandidateToken = hasChildren ? token.children[0] : null;\r\n group.constructs = scope._fillGroupConstructs(constructCandidateToken);\r\n constructs = group.constructs;\r\n\r\n if (token.isNonCapturingExplicit) {\r\n delete token.isNonCapturingExplicit;\r\n constructs.isNonCapturingExplicit = true;\r\n }\r\n\r\n if (token.isEmptyCapturing) {\r\n delete token.isEmptyCapturing;\r\n constructs.emptyCapture = true;\r\n }\r\n\r\n constructs.skipCapture =\r\n constructs.isNonCapturing ||\r\n constructs.isNonCapturingExplicit ||\r\n constructs.isNonbacktracking ||\r\n constructs.isPositiveLookahead ||\r\n constructs.isNegativeLookahead ||\r\n constructs.isPositiveLookbehind ||\r\n constructs.isNegativeLookbehind ||\r\n (constructs.name1 == null && constructs.name2 != null);\r\n }\r\n\r\n // fill group descriptors for inner tokens:\r\n if (hasChildren) {\r\n scope._fillGroupStructure(groups, token.children, token.group);\r\n }\r\n }\r\n },\r\n\r\n _getGroupSparseInfo: function (groups) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n\r\n var explNumberedGroups = {};\r\n var explNumberedGroupKeys = [];\r\n var explNamedGroups = {};\r\n var explGroups;\r\n\r\n var numberedGroups;\r\n var slotNumber;\r\n var slotName;\r\n var group;\r\n var i;\r\n var j;\r\n\r\n var sparseSlotMap = { 0: 0 };\r\n sparseSlotMap.lastSlot = 0;\r\n\r\n var sparseSlotNameMap = { \"0\": 0 };\r\n sparseSlotNameMap.keys = [\"0\"];\r\n\r\n // Fill Explicit Numbers:\r\n for (i = 0; i < groups.length; i++) {\r\n group = groups[i];\r\n\r\n if (group.constructs.skipCapture) {\r\n continue;\r\n }\r\n\r\n if (group.constructs.isNumberName1) {\r\n slotNumber = parseInt(group.constructs.name1);\r\n explNumberedGroupKeys.push(slotNumber);\r\n\r\n if (explNumberedGroups[slotNumber]) {\r\n explNumberedGroups[slotNumber].push(group);\r\n } else {\r\n explNumberedGroups[slotNumber] = [group];\r\n }\r\n } else {\r\n slotName = group.constructs.name1;\r\n\r\n if (explNamedGroups[slotName]) {\r\n explNamedGroups[slotName].push(group);\r\n } else {\r\n explNamedGroups[slotName] = [group];\r\n }\r\n }\r\n }\r\n\r\n // Sort explicitly set Number names:\r\n var sortNum = function (a, b) {\r\n return a - b;\r\n };\r\n\r\n explNumberedGroupKeys.sort(sortNum);\r\n\r\n // Add group without names first (emptyCapture = false first, than emptyCapture = true):\r\n var allowEmptyCapture = false;\r\n\r\n for (j = 0; j < 2; j++) {\r\n for (i = 0; i < groups.length; i++) {\r\n group = groups[i];\r\n\r\n if (group.constructs.skipCapture) {\r\n continue;\r\n }\r\n\r\n if ((group.constructs.emptyCapture === true) !== allowEmptyCapture) {\r\n continue;\r\n }\r\n\r\n slotNumber = sparseSlotNameMap.keys.length;\r\n\r\n if (!group.hasName) {\r\n numberedGroups = [group];\r\n explGroups = explNumberedGroups[slotNumber];\r\n\r\n if (explGroups != null) {\r\n numberedGroups = numberedGroups.concat(explGroups);\r\n explNumberedGroups[slotNumber] = null;\r\n }\r\n\r\n scope._addSparseSlotForSameNamedGroups(numberedGroups, slotNumber, sparseSlotMap, sparseSlotNameMap);\r\n }\r\n }\r\n allowEmptyCapture = true;\r\n }\r\n\r\n // Then add named groups:\r\n for (i = 0; i < groups.length; i++) {\r\n group = groups[i];\r\n\r\n if (group.constructs.skipCapture) {\r\n continue;\r\n }\r\n\r\n if (!group.hasName || group.constructs.isNumberName1) {\r\n continue;\r\n }\r\n\r\n // If the slot is already occupied by an explicitly numbered group,\r\n // add this group to the slot:\r\n slotNumber = sparseSlotNameMap.keys.length;\r\n explGroups = explNumberedGroups[slotNumber];\r\n\r\n while (explGroups != null) {\r\n scope._addSparseSlotForSameNamedGroups(explGroups, slotNumber, sparseSlotMap, sparseSlotNameMap);\r\n\r\n explNumberedGroups[slotNumber] = null; // Group is processed.\r\n slotNumber = sparseSlotNameMap.keys.length;\r\n explGroups = explNumberedGroups[slotNumber];\r\n }\r\n\r\n if (!group.constructs.isNumberName1) {\r\n slotNumber = sparseSlotNameMap.keys.length;\r\n explGroups = explNumberedGroups[slotNumber];\r\n\r\n while (explGroups != null) {\r\n scope._addSparseSlotForSameNamedGroups(explGroups, slotNumber, sparseSlotMap, sparseSlotNameMap);\r\n\r\n explNumberedGroups[slotNumber] = null; // Group is processed.\r\n slotNumber = sparseSlotNameMap.keys.length;\r\n explGroups = explNumberedGroups[slotNumber];\r\n }\r\n }\r\n\r\n // Add the named group(s) to the 1st free slot:\r\n slotName = group.constructs.name1;\r\n explGroups = explNamedGroups[slotName];\r\n\r\n if (explGroups != null) {\r\n scope._addSparseSlotForSameNamedGroups(explGroups, slotNumber, sparseSlotMap, sparseSlotNameMap);\r\n explNamedGroups[slotName] = null; // Group is processed.\r\n }\r\n }\r\n\r\n // Add the rest explicitly numbered groups:\r\n for (i = 0; i < explNumberedGroupKeys.length; i++) {\r\n slotNumber = explNumberedGroupKeys[i];\r\n explGroups = explNumberedGroups[slotNumber];\r\n\r\n if (explGroups != null) {\r\n scope._addSparseSlotForSameNamedGroups(explGroups, slotNumber, sparseSlotMap, sparseSlotNameMap);\r\n\r\n explNumberedGroups[slotNumber] = null; // Group is processed.\r\n }\r\n }\r\n\r\n return {\r\n isSparse: sparseSlotMap.isSparse || false, //sparseSlotNumbers.length !== (1 + sparseSlotNumbers[sparseSlotNumbers.length - 1]),\r\n sparseSlotMap: sparseSlotMap, // \r\n sparseSlotNameMap: sparseSlotNameMap, // \r\n\r\n getPackedSlotIdBySlotNumber: function (slotNumber) {\r\n return this.sparseSlotMap[slotNumber];\r\n },\r\n\r\n getPackedSlotIdBySlotName: function (slotName) {\r\n return this.sparseSlotNameMap[slotName];\r\n }\r\n };\r\n },\r\n\r\n _addSparseSlot: function (group, slotNumber, sparseSlotMap, sparseSlotNameMap) {\r\n var packedSlotId = sparseSlotNameMap.keys.length; // 0-based index. Raw Slot number, 0,1..n (without gaps)\r\n\r\n group.packedSlotId = packedSlotId;\r\n\r\n sparseSlotMap[slotNumber] = packedSlotId;\r\n sparseSlotNameMap[group.name] = packedSlotId;\r\n sparseSlotNameMap.keys.push(group.name);\r\n\r\n if (!sparseSlotMap.isSparse && ((slotNumber - sparseSlotMap.lastSlot) > 1)) {\r\n sparseSlotMap.isSparse = true;\r\n }\r\n\r\n sparseSlotMap.lastSlot = slotNumber;\r\n },\r\n\r\n _addSparseSlotForSameNamedGroups: function (groups, slotNumber, sparseSlotMap, sparseSlotNameMap) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var i;\r\n\r\n scope._addSparseSlot(groups[0], slotNumber, sparseSlotMap, sparseSlotNameMap);\r\n var sparseSlotId = groups[0].sparseSlotId;\r\n var packedSlotId = groups[0].packedSlotId;\r\n\r\n // Assign SlotID for all expl. named groups in this slot.\r\n if (groups.length > 1) {\r\n for (i = 1; i < groups.length; i++) {\r\n groups[i].sparseSlotId = sparseSlotId;\r\n groups[i].packedSlotId = packedSlotId;\r\n }\r\n }\r\n },\r\n\r\n _fillGroupConstructs: function (childToken) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var tokenTypes = scope.tokenTypes;\r\n var constructs = {\r\n name1: null,\r\n name2: null,\r\n\r\n isNumberName1: false,\r\n isNumberName2: false,\r\n\r\n isNonCapturing: false,\r\n isNonCapturingExplicit: false,\r\n\r\n isIgnoreCase: null,\r\n isMultiline: null,\r\n isExplicitCapture: null,\r\n isSingleLine: null,\r\n isIgnoreWhitespace: null,\r\n\r\n isPositiveLookahead: false,\r\n isNegativeLookahead: false,\r\n isPositiveLookbehind: false,\r\n isNegativeLookbehind: false,\r\n\r\n isNonbacktracking: false\r\n };\r\n\r\n if (childToken == null) {\r\n return constructs;\r\n }\r\n\r\n if (childToken.type === tokenTypes.groupConstruct) {\r\n // ?:\r\n // ?=\r\n // ?!\r\n // ?<=\r\n // ?\r\n\r\n switch (childToken.value) {\r\n case \"?:\":\r\n constructs.isNonCapturing = true;\r\n break;\r\n\r\n case \"?=\":\r\n constructs.isPositiveLookahead = true;\r\n break;\r\n\r\n case \"?!\":\r\n constructs.isNegativeLookahead = true;\r\n break;\r\n\r\n case \"?>\":\r\n constructs.isNonbacktracking = true;\r\n break;\r\n\r\n case \"?<=\":\r\n constructs.isPositiveLookbehind = true;\r\n break;\r\n\r\n case \"?\r\n // ?'name1'\r\n // ?\r\n // ?'name1-name2'\r\n\r\n var nameExpr = childToken.value.slice(2, childToken.length - 1);\r\n var groupNames = nameExpr.split(\"-\");\r\n\r\n if (groupNames.length === 0 || groupNames.length > 2) {\r\n throw new System.ArgumentException.$ctor1(\"Invalid group name.\");\r\n }\r\n\r\n if (groupNames[0].length) {\r\n constructs.name1 = groupNames[0];\r\n\r\n var nameRes1 = scope._validateGroupName(groupNames[0]);\r\n\r\n constructs.isNumberName1 = nameRes1.isNumberName;\r\n }\r\n\r\n if (groupNames.length === 2) {\r\n constructs.name2 = groupNames[1];\r\n\r\n var nameRes2 = scope._validateGroupName(groupNames[1]);\r\n\r\n constructs.isNumberName2 = nameRes2.isNumberName;\r\n }\r\n } else if (childToken.type === tokenTypes.groupConstructImnsx || childToken.type === tokenTypes.groupConstructImnsxMisc) {\r\n // ?imnsx-imnsx:\r\n var imnsxPostfixLen = childToken.type === tokenTypes.groupConstructImnsx ? 1 : 0;\r\n var imnsxExprLen = childToken.length - 1 - imnsxPostfixLen; // - prefix - postfix\r\n var imnsxVal = true;\r\n var ch;\r\n var i;\r\n\r\n for (i = 1; i <= imnsxExprLen; i++) {\r\n ch = childToken.value[i];\r\n\r\n if (ch === \"-\") {\r\n imnsxVal = false;\r\n } else if (ch === \"i\") {\r\n constructs.isIgnoreCase = imnsxVal;\r\n } else if (ch === \"m\") {\r\n constructs.isMultiline = imnsxVal;\r\n } else if (ch === \"n\") {\r\n constructs.isExplicitCapture = imnsxVal;\r\n } else if (ch === \"s\") {\r\n constructs.isSingleLine = imnsxVal;\r\n } else if (ch === \"x\") {\r\n constructs.isIgnoreWhitespace = imnsxVal;\r\n }\r\n }\r\n }\r\n\r\n return constructs;\r\n },\r\n\r\n _validateGroupName: function (name) {\r\n if (!name || !name.length) {\r\n throw new System.ArgumentException.$ctor1(\"Invalid group name: Group names must begin with a word character.\");\r\n }\r\n\r\n var isDigit = name[0] >= \"0\" && name[0] <= \"9\";\r\n\r\n if (isDigit) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var res = scope._matchChars(name, 0, name.length, scope._decSymbols);\r\n\r\n if (res.matchLength !== name.length) {\r\n throw new System.ArgumentException.$ctor1(\"Invalid group name: Group names must begin with a word character.\");\r\n }\r\n }\r\n\r\n return {\r\n isNumberName: isDigit\r\n };\r\n },\r\n\r\n _fillBalancingGroupInfo: function (groups, sparseSettings) {\r\n var group;\r\n var i;\r\n\r\n // Assign name or id:\r\n for (i = 0; i < groups.length; i++) {\r\n group = groups[i];\r\n\r\n if (group.constructs.name2 != null) {\r\n group.isBalancing = true;\r\n\r\n group.balancingSlotId = sparseSettings.getPackedSlotIdBySlotName(group.constructs.name2);\r\n\r\n if (group.balancingSlotId == null) {\r\n throw new System.ArgumentException.$ctor1(\"Reference to undefined group name '\" + group.constructs.name2 + \"'.\");\r\n }\r\n }\r\n }\r\n },\r\n\r\n _preTransformBackrefTokens: function (pattern, tokens, sparseSettings) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var tokenTypes = scope.tokenTypes;\r\n\r\n var groupNumber;\r\n var octalCharToken;\r\n var extraLength;\r\n var literalToken;\r\n var token;\r\n var i;\r\n\r\n for (i = 0; i < tokens.length; i++) {\r\n token = tokens[i];\r\n\r\n if (token.type === tokenTypes.escBackrefNumber) {\r\n groupNumber = token.data.number;\r\n\r\n if (groupNumber >= 1 && sparseSettings.getPackedSlotIdBySlotNumber(groupNumber) != null) {\r\n // Expressions from \\10 and greater are considered backreferences\r\n // if there is a group corresponding to that number;\r\n // otherwise, they are interpreted as octal codes.\r\n continue; // validated\r\n }\r\n\r\n if (groupNumber <= 9) {\r\n // The expressions \\1 through \\9 are always interpreted as backreferences, and not as octal codes.\r\n throw new System.ArgumentException.$ctor1(\"Reference to undefined group number \" + groupNumber.toString() + \".\");\r\n }\r\n\r\n // Otherwise, transform the token to OctalNumber:\r\n octalCharToken = scope._parseOctalCharToken(token.value, 0, token.length);\r\n\r\n if (octalCharToken == null) {\r\n throw new System.ArgumentException.$ctor1(\"Unrecognized escape sequence \" + token.value.slice(0, 2) + \".\");\r\n }\r\n\r\n extraLength = token.length - octalCharToken.length;\r\n scope._modifyPatternToken(token, pattern, tokenTypes.escCharOctal, null, octalCharToken.length);\r\n token.data = octalCharToken.data;\r\n\r\n if (extraLength > 0) {\r\n literalToken = scope._createPatternToken(pattern, tokenTypes.literal, token.index + token.length, extraLength);\r\n tokens.splice(i + 1, 0, literalToken);\r\n }\r\n }\r\n\r\n if (token.children && token.children.length) {\r\n scope._preTransformBackrefTokens(pattern, token.children, sparseSettings);\r\n }\r\n }\r\n },\r\n\r\n _updateGroupDescriptors: function (tokens, parentIndex) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var tokenTypes = scope.tokenTypes;\r\n var group;\r\n var token;\r\n var quantCandidateToken;\r\n var childrenValue;\r\n var childrenIndex;\r\n var i;\r\n\r\n var index = parentIndex || 0;\r\n\r\n for (i = 0; i < tokens.length; i++) {\r\n token = tokens[i];\r\n token.index = index;\r\n\r\n // Calculate children indexes/lengths to update parent length:\r\n if (token.children) {\r\n childrenIndex = token.childrenPostfix.length;\r\n scope._updateGroupDescriptors(token.children, index + childrenIndex);\r\n\r\n // Update parent value if children have been changed:\r\n childrenValue = scope._constructPattern(token.children);\r\n token.value = token.childrenPrefix + childrenValue + token.childrenPostfix;\r\n token.length = token.value.length;\r\n }\r\n\r\n // Update group information:\r\n if (token.type === tokenTypes.group && token.group) {\r\n group = token.group;\r\n group.exprIndex = token.index;\r\n group.exprLength = token.length;\r\n\r\n if (i + 1 < tokens.length) {\r\n quantCandidateToken = tokens[i + 1];\r\n\r\n if (quantCandidateToken.type === tokenTypes.quantifier ||\r\n quantCandidateToken.type === tokenTypes.quantifierN ||\r\n quantCandidateToken.type === tokenTypes.quantifierNM) {\r\n group.quantifier = quantCandidateToken.value;\r\n }\r\n }\r\n\r\n group.expr = token.value;\r\n group.exprFull = group.expr + (group.quantifier != null ? group.quantifier : \"\");\r\n }\r\n\r\n // Update current index:\r\n index += token.length;\r\n }\r\n },\r\n\r\n _constructPattern: function (tokens) {\r\n var pattern = \"\";\r\n var token;\r\n var i;\r\n\r\n for (i = 0; i < tokens.length; i++) {\r\n token = tokens[i];\r\n pattern += token.value;\r\n }\r\n\r\n return pattern;\r\n },\r\n\r\n _parsePatternImpl: function (pattern, settings, startIndex, endIndex) {\r\n if (pattern == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"pattern\");\r\n }\r\n\r\n if (startIndex < 0 || startIndex > pattern.length) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"startIndex\");\r\n }\r\n\r\n if (endIndex < startIndex || endIndex > pattern.length) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"endIndex\");\r\n }\r\n\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var tokenTypes = scope.tokenTypes;\r\n var tokens = [];\r\n var token;\r\n var ch;\r\n var i;\r\n\r\n i = startIndex;\r\n\r\n while (i < endIndex) {\r\n ch = pattern[i];\r\n\r\n // Ignore whitespaces (if it was requested):\r\n if (settings.ignoreWhitespace && scope._whiteSpaceChars.indexOf(ch) >= 0) {\r\n ++i;\r\n\r\n continue;\r\n }\r\n\r\n if (ch === \".\") {\r\n token = scope._parseDotToken(pattern, i, endIndex);\r\n } else if (ch === \"\\\\\") {\r\n token = scope._parseEscapeToken(pattern, i, endIndex);\r\n } else if (ch === \"[\") {\r\n token = scope._parseCharRangeToken(pattern, i, endIndex);\r\n } else if (ch === \"^\" || ch === \"$\") {\r\n token = scope._parseAnchorToken(pattern, i);\r\n } else if (ch === \"(\") {\r\n token = scope._parseGroupToken(pattern, settings, i, endIndex);\r\n } else if (ch === \"|\") {\r\n token = scope._parseAlternationToken(pattern, i);\r\n } else if (ch === \"#\" && settings.ignoreWhitespace) {\r\n token = scope._parseXModeCommentToken(pattern, i, endIndex);\r\n } else {\r\n token = scope._parseQuantifierToken(pattern, i, endIndex);\r\n }\r\n\r\n if (token == null) {\r\n token = scope._createPatternToken(pattern, tokenTypes.literal, i, 1);\r\n }\r\n\r\n if (token != null) {\r\n tokens.push(token);\r\n i += token.length;\r\n }\r\n }\r\n\r\n return tokens;\r\n },\r\n\r\n _parseEscapeToken: function (pattern, i, endIndex) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var tokenTypes = scope.tokenTypes;\r\n\r\n var ch = pattern[i];\r\n\r\n if (ch !== \"\\\\\") {\r\n return null;\r\n }\r\n\r\n if (i + 1 >= endIndex) {\r\n throw new System.ArgumentException.$ctor1(\"Illegal \\\\ at end of pattern.\");\r\n }\r\n\r\n ch = pattern[i + 1];\r\n\r\n // Parse a sequence for a numbered reference (\"Backreference Constructs\")\r\n if (ch >= \"1\" && ch <= \"9\") {\r\n // check if the number is a group backreference\r\n var groupDigits = scope._matchChars(pattern, i + 1, endIndex, scope._decSymbols, 3); // assume: there are not more than 999 groups\r\n var backrefNumberToken = scope._createPatternToken(pattern, tokenTypes.escBackrefNumber, i, 1 + groupDigits.matchLength); // \"\\nnn\"\r\n\r\n backrefNumberToken.data = { number: parseInt(groupDigits.match, 10) };\r\n\r\n return backrefNumberToken;\r\n }\r\n\r\n // Parse a sequence for \"Anchors\"\r\n if (scope._escapedAnchors.indexOf(ch) >= 0) {\r\n return scope._createPatternToken(pattern, tokenTypes.escAnchor, i, 2); // \"\\A\" or \"\\Z\" or \"\\z\" or \"\\G\" or \"\\b\" or \"\\B\"\r\n }\r\n\r\n // Parse a sequence for \"Character Escapes\" or \"Character Classes\"\r\n var escapedCharToken = scope._parseEscapedChar(pattern, i, endIndex);\r\n\r\n if (escapedCharToken != null) {\r\n return escapedCharToken;\r\n }\r\n\r\n // Parse a sequence for a named backreference (\"Backreference Constructs\")\r\n if (ch === \"k\") {\r\n if (i + 2 < endIndex) {\r\n var nameQuoteCh = pattern[i + 2];\r\n\r\n if (nameQuoteCh === \"'\" || nameQuoteCh === \"<\") {\r\n var closingCh = nameQuoteCh === \"<\" ? \">\" : \"'\";\r\n var refNameChars = scope._matchUntil(pattern, i + 3, endIndex, closingCh);\r\n\r\n if (refNameChars.unmatchLength === 1 && refNameChars.matchLength > 0) {\r\n var backrefNameToken = scope._createPatternToken(pattern, tokenTypes.escBackrefName, i, 3 + refNameChars.matchLength + 1); // \"\\k\" or \"\\k'Name'\"\r\n\r\n backrefNameToken.data = { name: refNameChars.match };\r\n\r\n return backrefNameToken;\r\n }\r\n }\r\n }\r\n\r\n throw new System.ArgumentException.$ctor1(\"Malformed \\\\k<...> named back reference.\");\r\n }\r\n\r\n // Temp fix (until IsWordChar is not supported):\r\n // See more: https://referencesource.microsoft.com/#System/regex/system/text/regularexpressions/RegexParser.cs,1414\r\n // Unescaping of any of the following ASCII characters results in the character itself\r\n var code = ch.charCodeAt(0);\r\n\r\n if ((code >= 0 && code < 48) ||\r\n (code > 57 && code < 65) ||\r\n (code > 90 && code < 95) ||\r\n (code === 96) ||\r\n (code > 122 && code < 128)) {\r\n var token = scope._createPatternToken(pattern, tokenTypes.escChar, i, 2);\r\n\r\n token.data = { n: code, ch: ch };\r\n\r\n return token;\r\n }\r\n\r\n // Unrecognized escape sequence:\r\n throw new System.ArgumentException.$ctor1(\"Unrecognized escape sequence \\\\\" + ch + \".\");\r\n },\r\n\r\n _parseOctalCharToken: function (pattern, i, endIndex) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var tokenTypes = scope.tokenTypes;\r\n\r\n var ch = pattern[i];\r\n\r\n if (ch === \"\\\\\" && i + 1 < endIndex) {\r\n ch = pattern[i + 1];\r\n\r\n if (ch >= \"0\" && ch <= \"7\") {\r\n var octalDigits = scope._matchChars(pattern, i + 1, endIndex, scope._octSymbols, 3);\r\n var octalVal = parseInt(octalDigits.match, 8);\r\n var token = scope._createPatternToken(pattern, tokenTypes.escCharOctal, i, 1 + octalDigits.matchLength); // \"\\0\" or \"\\nn\" or \"\\nnn\"\r\n\r\n token.data = { n: octalVal, ch: String.fromCharCode(octalVal) };\r\n\r\n return token;\r\n }\r\n }\r\n\r\n return null;\r\n },\r\n\r\n _parseEscapedChar: function (pattern, i, endIndex) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var tokenTypes = scope.tokenTypes;\r\n var token;\r\n\r\n var ch = pattern[i];\r\n\r\n if (ch !== \"\\\\\" || i + 1 >= endIndex) {\r\n return null;\r\n }\r\n\r\n ch = pattern[i + 1];\r\n\r\n // Parse a sequence for \"Character Escapes\"\r\n if (scope._escapedChars.indexOf(ch) >= 0) {\r\n if (ch === \"x\") {\r\n var hexDigits = scope._matchChars(pattern, i + 2, endIndex, scope._hexSymbols, 2);\r\n\r\n if (hexDigits.matchLength !== 2) {\r\n throw new System.ArgumentException.$ctor1(\"Insufficient hexadecimal digits.\");\r\n }\r\n\r\n var hexVal = parseInt(hexDigits.match, 16);\r\n\r\n token = scope._createPatternToken(pattern, tokenTypes.escCharHex, i, 4); // \"\\xnn\"\r\n token.data = { n: hexVal, ch: String.fromCharCode(hexVal) };\r\n\r\n return token;\r\n } else if (ch === \"c\") {\r\n if (i + 2 >= endIndex) {\r\n throw new System.ArgumentException.$ctor1(\"Missing control character.\");\r\n }\r\n\r\n var ctrlCh = pattern[i + 2];\r\n\r\n ctrlCh = ctrlCh.toUpperCase();\r\n\r\n var ctrlIndex = this._controlChars.indexOf(ctrlCh);\r\n\r\n if (ctrlIndex >= 0) {\r\n token = scope._createPatternToken(pattern, tokenTypes.escCharCtrl, i, 3); // \"\\cx\" or \"\\cX\"\r\n token.data = { n: ctrlIndex, ch: String.fromCharCode(ctrlIndex) };\r\n\r\n return token;\r\n }\r\n\r\n throw new System.ArgumentException.$ctor1(\"Unrecognized control character.\");\r\n } else if (ch === \"u\") {\r\n var ucodeDigits = scope._matchChars(pattern, i + 2, endIndex, scope._hexSymbols, 4);\r\n\r\n if (ucodeDigits.matchLength !== 4) {\r\n throw new System.ArgumentException.$ctor1(\"Insufficient hexadecimal digits.\");\r\n }\r\n\r\n var ucodeVal = parseInt(ucodeDigits.match, 16);\r\n\r\n token = scope._createPatternToken(pattern, tokenTypes.escCharUnicode, i, 6); // \"\\unnnn\"\r\n token.data = { n: ucodeVal, ch: String.fromCharCode(ucodeVal) };\r\n\r\n return token;\r\n }\r\n\r\n token = scope._createPatternToken(pattern, tokenTypes.escChar, i, 2); // \"\\a\" or \"\\b\" or \"\\t\" or \"\\r\" or \"\\v\" or \"f\" or \"n\" or \"e\"-\r\n\r\n var escVal;\r\n\r\n switch (ch) {\r\n case \"a\":\r\n escVal = 7;\r\n break;\r\n case \"b\":\r\n escVal = 8;\r\n break;\r\n case \"t\":\r\n escVal = 9;\r\n break;\r\n case \"r\":\r\n escVal = 13;\r\n break;\r\n case \"v\":\r\n escVal = 11;\r\n break;\r\n case \"f\":\r\n escVal = 12;\r\n break;\r\n case \"n\":\r\n escVal = 10;\r\n break;\r\n case \"e\":\r\n escVal = 27;\r\n break;\r\n\r\n default:\r\n throw new System.ArgumentException.$ctor1(\"Unexpected escaped char: '\" + ch + \"'.\");\r\n }\r\n\r\n token.data = { n: escVal, ch: String.fromCharCode(escVal) };\r\n\r\n return token;\r\n }\r\n\r\n // Parse a sequence for an octal character(\"Character Escapes\")\r\n if (ch >= \"0\" && ch <= \"7\") {\r\n var octalCharToken = scope._parseOctalCharToken(pattern, i, endIndex);\r\n\r\n return octalCharToken;\r\n }\r\n\r\n // Parse a sequence for \"Character Classes\"\r\n if (scope._escapedCharClasses.indexOf(ch) >= 0) {\r\n if (ch === \"p\" || ch === \"P\") {\r\n var catNameChars = scope._matchUntil(pattern, i + 2, endIndex, \"}\"); // the longest category name is 37 + 2 brackets, but .NET does not limit the value on this step\r\n\r\n if (catNameChars.matchLength < 2 || catNameChars.match[0] !== \"{\" || catNameChars.unmatchLength !== 1) {\r\n throw new System.ArgumentException.$ctor1(\"Incomplete \\p{X} character escape.\");\r\n }\r\n\r\n var catName = catNameChars.match.slice(1);\r\n\r\n if (scope._unicodeCategories.indexOf(catName) >= 0) {\r\n return scope._createPatternToken(pattern, tokenTypes.escCharClassCategory, i, 2 + catNameChars.matchLength + 1); // \"\\p{Name}\" or \"\\P{Name}\"\r\n }\r\n\r\n if (scope._namedCharBlocks.indexOf(catName) >= 0) {\r\n return scope._createPatternToken(pattern, tokenTypes.escCharClassBlock, i, 2 + catNameChars.matchLength + 1); // \"\\p{Name}\" or \"\\P{Name}\"\r\n }\r\n\r\n throw new System.ArgumentException.$ctor1(\"Unknown property '\" + catName + \"'.\");\r\n }\r\n\r\n return scope._createPatternToken(pattern, tokenTypes.escCharClass, i, 2); // \"\\w\" or \"\\W\" or \"\\s\" or \"\\S\" or \"\\d\" or \"\\D\"\r\n }\r\n\r\n // Some other literal\r\n if (scope._escapedSpecialSymbols.indexOf(ch) >= 0) {\r\n token = scope._createPatternToken(pattern, tokenTypes.escCharOther, i, 2); // \"\\.\" or \"\\$\" or ... \"\\\\\"\r\n token.data = { n: ch.charCodeAt(0), ch: ch };\r\n return token;\r\n }\r\n\r\n return null;\r\n },\r\n\r\n _parseCharRangeToken: function (pattern, i, endIndex) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var tokenTypes = scope.tokenTypes;\r\n var tokens = [];\r\n var intervalToken;\r\n var substractToken;\r\n var token;\r\n var isNegative = false;\r\n var noMoreTokenAllowed = false;\r\n var hasSubstractToken = false;\r\n\r\n var ch = pattern[i];\r\n\r\n if (ch !== \"[\") {\r\n return null;\r\n }\r\n\r\n var index = i + 1;\r\n var closeBracketIndex = -1;\r\n var toInc;\r\n\r\n if (index < endIndex && pattern[index] === \"^\") {\r\n isNegative = true;\r\n index ++;\r\n }\r\n\r\n var startIndex = index;\r\n\r\n while (index < endIndex) {\r\n ch = pattern[index];\r\n\r\n noMoreTokenAllowed = hasSubstractToken;\r\n\r\n if (ch === \"-\" && index + 1 < endIndex && pattern[index + 1] === \"[\") {\r\n substractToken = scope._parseCharRangeToken(pattern, index + 1, endIndex);\r\n substractToken.childrenPrefix = \"-\" + substractToken.childrenPrefix;\r\n substractToken.length ++;\r\n token = substractToken;\r\n toInc = substractToken.length;\r\n hasSubstractToken = true;\r\n } else if (ch === \"\\\\\") {\r\n token = scope._parseEscapedChar(pattern, index, endIndex);\r\n\r\n if (token == null) {\r\n throw new System.ArgumentException.$ctor1(\"Unrecognized escape sequence \\\\\" + ch + \".\");\r\n }\r\n toInc = token.length;\r\n } else if (ch === \"]\" && index > startIndex) {\r\n closeBracketIndex = index;\r\n\r\n break;\r\n } else {\r\n token = scope._createPatternToken(pattern, tokenTypes.literal, index, 1);\r\n toInc = 1;\r\n }\r\n\r\n if (noMoreTokenAllowed) {\r\n throw new System.ArgumentException.$ctor1(\"A subtraction must be the last element in a character class.\");\r\n }\r\n\r\n // Check for interval:\r\n if (tokens.length > 1) {\r\n intervalToken = scope._parseCharIntervalToken(pattern, tokens[tokens.length - 2], tokens[tokens.length - 1], token);\r\n\r\n if (intervalToken != null) {\r\n tokens.pop(); //pop Dush\r\n tokens.pop(); //pop Interval start\r\n token = intervalToken;\r\n }\r\n }\r\n\r\n // Add token:\r\n if (token != null) {\r\n tokens.push(token);\r\n index += toInc;\r\n }\r\n }\r\n\r\n if (closeBracketIndex < 0 || tokens.length < 1) {\r\n throw new System.ArgumentException.$ctor1(\"Unterminated [] set.\");\r\n }\r\n\r\n var groupToken;\r\n\r\n if (!isNegative) {\r\n groupToken = scope._createPatternToken(pattern, tokenTypes.charGroup, i, 1 + closeBracketIndex - i, tokens, \"[\", \"]\");\r\n } else {\r\n groupToken = scope._createPatternToken(pattern, tokenTypes.charNegativeGroup, i, 1 + closeBracketIndex - i, tokens, \"[^\", \"]\");\r\n }\r\n\r\n // Create full range data:\r\n var ranges = scope._tidyCharRange(tokens);\r\n\r\n groupToken.data = { ranges: ranges };\r\n\r\n if (substractToken != null) {\r\n groupToken.data.substractToken = substractToken;\r\n }\r\n\r\n return groupToken;\r\n },\r\n\r\n _parseCharIntervalToken: function (pattern, intervalStartToken, dashToken, intervalEndToken) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var tokenTypes = scope.tokenTypes;\r\n\r\n if (dashToken.type !== tokenTypes.literal || dashToken.value !== \"-\") {\r\n return null;\r\n }\r\n\r\n if (intervalStartToken.type !== tokenTypes.literal &&\r\n intervalStartToken.type !== tokenTypes.escChar &&\r\n intervalStartToken.type !== tokenTypes.escCharOctal &&\r\n intervalStartToken.type !== tokenTypes.escCharHex &&\r\n intervalStartToken.type !== tokenTypes.escCharCtrl &&\r\n intervalStartToken.type !== tokenTypes.escCharUnicode &&\r\n intervalStartToken.type !== tokenTypes.escCharOther) {\r\n return null;\r\n }\r\n\r\n if (intervalEndToken.type !== tokenTypes.literal &&\r\n intervalEndToken.type !== tokenTypes.escChar &&\r\n intervalEndToken.type !== tokenTypes.escCharOctal &&\r\n intervalEndToken.type !== tokenTypes.escCharHex &&\r\n intervalEndToken.type !== tokenTypes.escCharCtrl &&\r\n intervalEndToken.type !== tokenTypes.escCharUnicode &&\r\n intervalEndToken.type !== tokenTypes.escCharOther) {\r\n return null;\r\n }\r\n\r\n var startN;\r\n var startCh;\r\n\r\n if (intervalStartToken.type === tokenTypes.literal) {\r\n startN = intervalStartToken.value.charCodeAt(0);\r\n startCh = intervalStartToken.value;\r\n } else {\r\n startN = intervalStartToken.data.n;\r\n startCh = intervalStartToken.data.ch;\r\n }\r\n\r\n var endN;\r\n var endCh;\r\n\r\n if (intervalEndToken.type === tokenTypes.literal) {\r\n endN = intervalEndToken.value.charCodeAt(0);\r\n endCh = intervalEndToken.value;\r\n } else {\r\n endN = intervalEndToken.data.n;\r\n endCh = intervalEndToken.data.ch;\r\n }\r\n\r\n if (startN > endN) {\r\n throw new System.NotSupportedException.$ctor1(\"[x-y] range in reverse order.\");\r\n }\r\n\r\n var index = intervalStartToken.index;\r\n var length = intervalStartToken.length + dashToken.length + intervalEndToken.length;\r\n var intervalToken = scope._createPatternToken(pattern, tokenTypes.charInterval, index, length, [intervalStartToken, dashToken, intervalEndToken], \"\", \"\");\r\n\r\n intervalToken.data = {\r\n startN: startN,\r\n startCh: startCh,\r\n endN: endN,\r\n endCh: endCh\r\n };\r\n\r\n return intervalToken;\r\n },\r\n\r\n _tidyCharRange: function (tokens) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var tokenTypes = scope.tokenTypes;\r\n\r\n var j;\r\n var k;\r\n var n;\r\n var m;\r\n var token;\r\n var ranges = [];\r\n var classTokens = [];\r\n\r\n var range;\r\n var nextRange;\r\n var toSkip;\r\n\r\n for (j = 0; j < tokens.length; j++) {\r\n token = tokens[j];\r\n\r\n if (token.type === tokenTypes.literal) {\r\n n = token.value.charCodeAt(0);\r\n m = n;\r\n } else if (token.type === tokenTypes.charInterval) {\r\n n = token.data.startN;\r\n m = token.data.endN;\r\n } else if (token.type === tokenTypes.literal ||\r\n token.type === tokenTypes.escChar ||\r\n token.type === tokenTypes.escCharOctal ||\r\n token.type === tokenTypes.escCharHex ||\r\n token.type === tokenTypes.escCharCtrl ||\r\n token.type === tokenTypes.escCharUnicode ||\r\n token.type === tokenTypes.escCharOther) {\r\n n = token.data.n;\r\n m = n;\r\n } else if (\r\n token.type === tokenTypes.charGroup ||\r\n token.type === tokenTypes.charNegativeGroup) {\r\n continue;\r\n } else {\r\n classTokens.push(token);\r\n continue;\r\n }\r\n\r\n if (ranges.length === 0) {\r\n ranges.push({ n: n, m: m });\r\n continue;\r\n }\r\n\r\n //TODO: [Performance] Use binary search\r\n for (k = 0; k < ranges.length; k++) {\r\n if (ranges[k].n > n) {\r\n break;\r\n }\r\n }\r\n\r\n ranges.splice(k, 0, { n: n, m: m });\r\n }\r\n\r\n // Combine ranges:\r\n for (j = 0; j < ranges.length; j++) {\r\n range = ranges[j];\r\n\r\n toSkip = 0;\r\n\r\n for (k = j + 1; k < ranges.length; k++) {\r\n nextRange = ranges[k];\r\n\r\n if (nextRange.n > 1 + range.m) {\r\n break;\r\n }\r\n\r\n toSkip++;\r\n\r\n if (nextRange.m > range.m) {\r\n range.m = nextRange.m;\r\n }\r\n }\r\n if (toSkip > 0) {\r\n ranges.splice(j + 1, toSkip);\r\n }\r\n }\r\n\r\n if (classTokens.length > 0) {\r\n var charClassStr = \"[\" + scope._constructPattern(classTokens) + \"]\";\r\n ranges.charClassToken = scope._createPatternToken(charClassStr, tokenTypes.charGroup, 0, charClassStr.length, tokens, \"[\", \"]\");\r\n }\r\n\r\n return ranges;\r\n },\r\n\r\n _parseDotToken: function (pattern, i) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var tokenTypes = scope.tokenTypes;\r\n\r\n var ch = pattern[i];\r\n\r\n if (ch !== \".\") {\r\n return null;\r\n }\r\n\r\n return scope._createPatternToken(pattern, tokenTypes.escCharClassDot, i, 1);\r\n },\r\n\r\n _parseAnchorToken: function (pattern, i) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var tokenTypes = scope.tokenTypes;\r\n\r\n var ch = pattern[i];\r\n\r\n if (ch !== \"^\" && ch !== \"$\") {\r\n return null;\r\n }\r\n\r\n return scope._createPatternToken(pattern, tokenTypes.anchor, i, 1);\r\n },\r\n\r\n _updateSettingsFromConstructs: function (settings, constructs) {\r\n if (constructs.isIgnoreWhitespace != null) {\r\n settings.ignoreWhitespace = constructs.isIgnoreWhitespace;\r\n }\r\n\r\n if (constructs.isExplicitCapture != null) {\r\n settings.explicitCapture = constructs.isExplicitCapture;\r\n }\r\n },\r\n\r\n _parseGroupToken: function (pattern, settings, i, endIndex) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var tokenTypes = scope.tokenTypes;\r\n var groupSettings = {\r\n ignoreWhitespace: settings.ignoreWhitespace,\r\n explicitCapture: settings.explicitCapture\r\n };\r\n\r\n var ch = pattern[i];\r\n\r\n if (ch !== \"(\") {\r\n return null;\r\n }\r\n\r\n var bracketLvl = 1;\r\n var sqBracketCtx = false;\r\n var bodyIndex = i + 1;\r\n var closeBracketIndex = -1;\r\n\r\n var isComment = false;\r\n var isAlternation = false;\r\n var isInlineOptions = false;\r\n var isImnsxConstructed = false;\r\n var isNonCapturingExplicit = false;\r\n\r\n var grConstructs = null;\r\n\r\n // Parse the Group construct, if any:\r\n var constructToken = scope._parseGroupConstructToken(pattern, groupSettings, i + 1, endIndex);\r\n\r\n if (constructToken != null) {\r\n grConstructs = this._fillGroupConstructs(constructToken);\r\n\r\n bodyIndex += constructToken.length;\r\n\r\n if (constructToken.type === tokenTypes.commentInline) {\r\n isComment = true;\r\n } else if (constructToken.type === tokenTypes.alternationGroupCondition) {\r\n isAlternation = true;\r\n } else if (constructToken.type === tokenTypes.groupConstructImnsx) {\r\n this._updateSettingsFromConstructs(groupSettings, grConstructs);\r\n isImnsxConstructed = true;\r\n } else if (constructToken.type === tokenTypes.groupConstructImnsxMisc) {\r\n this._updateSettingsFromConstructs(settings, grConstructs); // parent settings!\r\n isInlineOptions = true;\r\n }\r\n }\r\n\r\n if (groupSettings.explicitCapture && (grConstructs == null || grConstructs.name1 == null)) {\r\n isNonCapturingExplicit = true;\r\n }\r\n\r\n var index = bodyIndex;\r\n\r\n while (index < endIndex) {\r\n ch = pattern[index];\r\n\r\n if (ch === \"\\\\\") {\r\n index ++; // skip the escaped char\r\n } else if (ch === \"[\") {\r\n sqBracketCtx = true;\r\n } else if (ch === \"]\" && sqBracketCtx) {\r\n sqBracketCtx = false;\r\n } else if (!sqBracketCtx) {\r\n if (ch === \"(\" && !isComment) {\r\n ++bracketLvl;\r\n } else if (ch === \")\") {\r\n --bracketLvl;\r\n\r\n if (bracketLvl === 0) {\r\n closeBracketIndex = index;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n ++index;\r\n }\r\n\r\n var result = null;\r\n\r\n if (isComment) {\r\n if (closeBracketIndex < 0) {\r\n throw new System.ArgumentException.$ctor1(\"Unterminated (?#...) comment.\");\r\n }\r\n\r\n result = scope._createPatternToken(pattern, tokenTypes.commentInline, i, 1 + closeBracketIndex - i);\r\n } else {\r\n if (closeBracketIndex < 0) {\r\n throw new System.ArgumentException.$ctor1(\"Not enough )'s.\");\r\n }\r\n\r\n // Parse the \"Body\" of the group\r\n var innerTokens = scope._parsePatternImpl(pattern, groupSettings, bodyIndex, closeBracketIndex);\r\n\r\n if (constructToken != null) {\r\n innerTokens.splice(0, 0, constructToken);\r\n }\r\n\r\n // If there is an Alternation expression, treat the group as Alternation group\r\n if (isAlternation) {\r\n var innerTokensLen = innerTokens.length;\r\n var innerToken;\r\n var j;\r\n\r\n // Check that there is only 1 alternation symbol:\r\n var altCount = 0;\r\n\r\n for (j = 0; j < innerTokensLen; j++) {\r\n innerToken = innerTokens[j];\r\n\r\n if (innerToken.type === tokenTypes.alternation) {\r\n ++altCount;\r\n\r\n if (altCount > 1) {\r\n throw new System.ArgumentException.$ctor1(\"Too many | in (?()|).\");\r\n }\r\n }\r\n }\r\n\r\n if (altCount === 0) {\r\n // Though .NET works with this case, it ends up with unexpected result. Let's avoid this behaviour.\r\n throw new System.NotSupportedException.$ctor1(\"Alternation group without | is not supported.\");\r\n }\r\n\r\n var altGroupToken = scope._createPatternToken(pattern, tokenTypes.alternationGroup, i, 1 + closeBracketIndex - i, innerTokens, \"(\", \")\");\r\n\r\n result = altGroupToken;\r\n } else {\r\n // Create Group token:\r\n var tokenType = tokenTypes.group;\r\n\r\n if (isInlineOptions) {\r\n tokenType = tokenTypes.groupImnsxMisc;\r\n } else if (isImnsxConstructed) {\r\n tokenType = tokenTypes.groupImnsx;\r\n }\r\n\r\n var groupToken = scope._createPatternToken(pattern, tokenType, i, 1 + closeBracketIndex - i, innerTokens, \"(\", \")\");\r\n\r\n groupToken.localSettings = groupSettings;\r\n result = groupToken;\r\n }\r\n }\r\n\r\n if (isNonCapturingExplicit) {\r\n result.isNonCapturingExplicit = true;\r\n }\r\n\r\n return result;\r\n },\r\n\r\n _parseGroupConstructToken: function (pattern, settings, i, endIndex) {\r\n // ?\r\n // ?'name1'\r\n // ?\r\n // ?'name1-name2'\r\n // ?:\r\n // ?imnsx-imnsx\r\n // ?=\r\n // ?!\r\n // ?<=\r\n // ?\r\n // ?#\r\n\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var tokenTypes = scope.tokenTypes;\r\n\r\n var ch = pattern[i];\r\n\r\n if (ch !== \"?\" || i + 1 >= endIndex) {\r\n return null;\r\n }\r\n\r\n ch = pattern[i + 1];\r\n\r\n if (ch === \":\" || ch === \"=\" || ch === \"!\" || ch === \">\") {\r\n return scope._createPatternToken(pattern, tokenTypes.groupConstruct, i, 2);\r\n }\r\n\r\n if (ch === \"#\") {\r\n return scope._createPatternToken(pattern, tokenTypes.commentInline, i, 2);\r\n }\r\n\r\n if (ch === \"(\") {\r\n return scope._parseAlternationGroupConditionToken(pattern, settings, i, endIndex);\r\n }\r\n\r\n if (ch === \"<\" && i + 2 < endIndex) {\r\n var ch3 = pattern[i + 2];\r\n\r\n if (ch3 === \"=\" || ch3 === \"!\") {\r\n return scope._createPatternToken(pattern, tokenTypes.groupConstruct, i, 3);\r\n }\r\n }\r\n\r\n if (ch === \"<\" || ch === \"'\") {\r\n var closingCh = ch === \"<\" ? \">\" : ch;\r\n var nameChars = scope._matchUntil(pattern, i + 2, endIndex, closingCh);\r\n\r\n if (nameChars.unmatchLength !== 1 || nameChars.matchLength === 0) {\r\n throw new System.ArgumentException.$ctor1(\"Unrecognized grouping construct.\");\r\n }\r\n\r\n var nameFirstCh = nameChars.match.slice(0, 1);\r\n\r\n if (\"`~@#$%^&*()+{}[]|\\\\/|'\\\";:,.?\".indexOf(nameFirstCh) >= 0) {\r\n // TODO: replace the \"black list\" of wrong characters with char class check:\r\n // According to UTS#18 Unicode Regular Expressions (http://www.unicode.org/reports/tr18/)\r\n // RL 1.4 Simple Word Boundaries The class of includes all Alphabetic\r\n // values from the Unicode character database, from UnicodeData.txt [UData], plus the U+200C\r\n // ZERO WIDTH NON-JOINER and U+200D ZERO WIDTH JOINER.\r\n throw new System.ArgumentException.$ctor1(\"Invalid group name: Group names must begin with a word character.\");\r\n }\r\n\r\n return scope._createPatternToken(pattern, tokenTypes.groupConstructName, i, 2 + nameChars.matchLength + 1);\r\n }\r\n\r\n var imnsxChars = scope._matchChars(pattern, i + 1, endIndex, \"imnsx-\");\r\n\r\n if (imnsxChars.matchLength > 0 && (imnsxChars.unmatchCh === \":\" || imnsxChars.unmatchCh === \")\")) {\r\n var imnsxTokenType = imnsxChars.unmatchCh === \":\" ? tokenTypes.groupConstructImnsx : tokenTypes.groupConstructImnsxMisc;\r\n var imnsxPostfixLen = imnsxChars.unmatchCh === \":\" ? 1 : 0;\r\n\r\n return scope._createPatternToken(pattern, imnsxTokenType, i, 1 + imnsxChars.matchLength + imnsxPostfixLen);\r\n }\r\n\r\n throw new System.ArgumentException.$ctor1(\"Unrecognized grouping construct.\");\r\n },\r\n\r\n _parseQuantifierToken: function (pattern, i, endIndex) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var tokenTypes = scope.tokenTypes;\r\n var token = null;\r\n\r\n var ch = pattern[i];\r\n\r\n if (ch === \"*\" || ch === \"+\" || ch === \"?\") {\r\n token = scope._createPatternToken(pattern, tokenTypes.quantifier, i, 1);\r\n token.data = { val: ch };\r\n } else if (ch === \"{\") {\r\n var dec1Chars = scope._matchChars(pattern, i + 1, endIndex, scope._decSymbols);\r\n\r\n if (dec1Chars.matchLength !== 0) {\r\n if (dec1Chars.unmatchCh === \"}\") {\r\n token = scope._createPatternToken(pattern, tokenTypes.quantifierN, i, 1 + dec1Chars.matchLength + 1);\r\n token.data = {\r\n n: parseInt(dec1Chars.match, 10)\r\n };\r\n } else if (dec1Chars.unmatchCh === \",\") {\r\n var dec2Chars = scope._matchChars(pattern, dec1Chars.unmatchIndex + 1, endIndex, scope._decSymbols);\r\n\r\n if (dec2Chars.unmatchCh === \"}\") {\r\n token = scope._createPatternToken(pattern, tokenTypes.quantifierNM, i, 1 + dec1Chars.matchLength + 1 + dec2Chars.matchLength + 1);\r\n token.data = {\r\n n: parseInt(dec1Chars.match, 10),\r\n m: null\r\n };\r\n\r\n if (dec2Chars.matchLength !== 0) {\r\n token.data.m = parseInt(dec2Chars.match, 10);\r\n\r\n if (token.data.n > token.data.m) {\r\n throw new System.ArgumentException.$ctor1(\"Illegal {x,y} with x > y.\");\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (token != null) {\r\n var nextChIndex = i + token.length;\r\n\r\n if (nextChIndex < endIndex) {\r\n var nextCh = pattern[nextChIndex];\r\n\r\n if (nextCh === \"?\") {\r\n this._modifyPatternToken(token, pattern, token.type, token.index, token.length + 1);\r\n token.data.isLazy = true;\r\n }\r\n }\r\n }\r\n\r\n return token;\r\n },\r\n\r\n _parseAlternationToken: function (pattern, i) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var tokenTypes = scope.tokenTypes;\r\n\r\n var ch = pattern[i];\r\n\r\n if (ch !== \"|\") {\r\n return null;\r\n }\r\n\r\n return scope._createPatternToken(pattern, tokenTypes.alternation, i, 1);\r\n },\r\n\r\n _parseAlternationGroupConditionToken: function (pattern, settings, i, endIndex) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var tokenTypes = scope.tokenTypes;\r\n var constructToken;\r\n var childToken;\r\n var data = null;\r\n\r\n var ch = pattern[i];\r\n\r\n if (ch !== \"?\" || i + 1 >= endIndex || pattern[i + 1] !== \"(\") {\r\n return null;\r\n }\r\n\r\n // Parse Alternation condition as a group:\r\n var expr = scope._parseGroupToken(pattern, settings, i + 1, endIndex);\r\n\r\n if (expr == null) {\r\n return null;\r\n }\r\n\r\n if (expr.type === tokenTypes.commentInline) {\r\n throw new System.ArgumentException.$ctor1(\"Alternation conditions cannot be comments.\");\r\n }\r\n\r\n var children = expr.children;\r\n\r\n if (children && children.length) {\r\n constructToken = children[0];\r\n\r\n if (constructToken.type === tokenTypes.groupConstructName) {\r\n throw new System.ArgumentException.$ctor1(\"Alternation conditions do not capture and cannot be named.\");\r\n }\r\n\r\n if (constructToken.type === tokenTypes.groupConstruct || constructToken.type === tokenTypes.groupConstructImnsx) {\r\n childToken = scope._findFirstGroupWithoutConstructs(children);\r\n\r\n if (childToken != null) {\r\n childToken.isEmptyCapturing = true;\r\n }\r\n }\r\n\r\n if (constructToken.type === tokenTypes.literal) {\r\n var literalVal = expr.value.slice(1, expr.value.length - 1);\r\n var isDigit = literalVal[0] >= \"0\" && literalVal[0] <= \"9\";\r\n\r\n if (isDigit) {\r\n var res = scope._matchChars(literalVal, 0, literalVal.length, scope._decSymbols);\r\n\r\n if (res.matchLength !== literalVal.length) {\r\n throw new System.ArgumentException.$ctor1(\"Malformed Alternation group number: \" + literalVal + \".\");\r\n }\r\n\r\n var number = parseInt(literalVal, 10);\r\n data = { number: number };\r\n } else {\r\n data = { name: literalVal };\r\n }\r\n }\r\n }\r\n\r\n // Add \"Noncapturing\" construct if there are no other ones.\r\n if (!children.length || (children[0].type !== tokenTypes.groupConstruct && children[0].type !== tokenTypes.groupConstructImnsx)) {\r\n constructToken = scope._createPatternToken(\"?:\", tokenTypes.groupConstruct, 0, 2);\r\n children.splice(0, 0, constructToken);\r\n }\r\n\r\n // Transform Group token to Alternation expression token:\r\n var token = scope._createPatternToken(pattern, tokenTypes.alternationGroupCondition, expr.index - 1, 1 + expr.length, [expr], \"?\", \"\");\r\n\r\n if (data != null) {\r\n token.data = data;\r\n }\r\n\r\n return token;\r\n },\r\n\r\n _findFirstGroupWithoutConstructs: function (tokens) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var tokenTypes = scope.tokenTypes;\r\n var result = null;\r\n var token;\r\n var i;\r\n\r\n for (i = 0; i < tokens.length; ++i) {\r\n token = tokens[i];\r\n\r\n if (token.type === tokenTypes.group && token.children && token.children.length) {\r\n if (token.children[0].type !== tokenTypes.groupConstruct && token.children[0].type !== tokenTypes.groupConstructImnsx) {\r\n result = token;\r\n\r\n break;\r\n }\r\n\r\n if (token.children && token.children.length) {\r\n result = scope._findFirstGroupWithoutConstructs(token.children);\r\n\r\n if (result != null) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n },\r\n\r\n _parseXModeCommentToken: function (pattern, i, endIndex) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var tokenTypes = scope.tokenTypes;\r\n\r\n var ch = pattern[i];\r\n\r\n if (ch !== \"#\") {\r\n return null;\r\n }\r\n\r\n var index = i + 1;\r\n\r\n while (index < endIndex) {\r\n ch = pattern[index];\r\n ++index; // index should be changed before breaking\r\n\r\n if (ch === \"\\n\") {\r\n break;\r\n }\r\n }\r\n\r\n return scope._createPatternToken(pattern, tokenTypes.commentXMode, i, index - i);\r\n },\r\n\r\n _createLiteralToken: function (body) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n var token = scope._createPatternToken(body, scope.tokenTypes.literal, 0, body.length);\r\n\r\n return token;\r\n },\r\n\r\n _createPositiveLookaheadToken: function (body, settings) {\r\n var scope = System.Text.RegularExpressions.RegexEngineParser;\r\n\r\n var pattern = \"(?=\" + body + \")\";\r\n var groupToken = scope._parseGroupToken(pattern, settings, 0, pattern.length);\r\n\r\n return groupToken;\r\n },\r\n\r\n _createPatternToken: function (pattern, type, i, len, innerTokens, innerTokensPrefix, innerTokensPostfix) {\r\n var token = {\r\n type: type,\r\n index: i,\r\n length: len,\r\n value: pattern.slice(i, i + len)\r\n };\r\n\r\n if (innerTokens != null && innerTokens.length > 0) {\r\n token.children = innerTokens;\r\n token.childrenPrefix = innerTokensPrefix;\r\n token.childrenPostfix = innerTokensPostfix;\r\n }\r\n\r\n return token;\r\n },\r\n\r\n _modifyPatternToken: function (token, pattern, type, i, len) {\r\n if (type != null) {\r\n token.type = type;\r\n }\r\n\r\n if (i != null || len != null) {\r\n if (i != null) {\r\n token.index = i;\r\n }\r\n\r\n if (len != null) {\r\n token.length = len;\r\n }\r\n\r\n token.value = pattern.slice(token.index, token.index + token.length);\r\n }\r\n },\r\n\r\n _updatePatternToken: function (token, type, i, len, value) {\r\n token.type = type;\r\n token.index = i;\r\n token.length = len;\r\n token.value = value;\r\n },\r\n\r\n _matchChars: function (str, startIndex, endIndex, allowedChars, maxLength) {\r\n var res = {\r\n match: \"\",\r\n matchIndex: -1,\r\n matchLength: 0,\r\n unmatchCh: \"\",\r\n unmatchIndex: -1,\r\n unmatchLength: 0\r\n };\r\n\r\n var index = startIndex;\r\n var ch;\r\n\r\n if (maxLength != null && maxLength >= 0) {\r\n endIndex = startIndex + maxLength;\r\n }\r\n\r\n while (index < endIndex) {\r\n ch = str[index];\r\n\r\n if (allowedChars.indexOf(ch) < 0) {\r\n res.unmatchCh = ch;\r\n res.unmatchIndex = index;\r\n res.unmatchLength = 1;\r\n\r\n break;\r\n }\r\n\r\n index++;\r\n }\r\n\r\n if (index > startIndex) {\r\n res.match = str.slice(startIndex, index);\r\n res.matchIndex = startIndex;\r\n res.matchLength = index - startIndex;\r\n }\r\n\r\n return res;\r\n },\r\n\r\n _matchUntil: function (str, startIndex, endIndex, unallowedChars, maxLength) {\r\n var res = {\r\n match: \"\",\r\n matchIndex: -1,\r\n matchLength: 0,\r\n unmatchCh: \"\",\r\n unmatchIndex: -1,\r\n unmatchLength: 0\r\n };\r\n\r\n var index = startIndex;\r\n var ch;\r\n\r\n if (maxLength != null && maxLength >= 0) {\r\n endIndex = startIndex + maxLength;\r\n }\r\n\r\n while (index < endIndex) {\r\n ch = str[index];\r\n\r\n if (unallowedChars.indexOf(ch) >= 0) {\r\n res.unmatchCh = ch;\r\n res.unmatchIndex = index;\r\n res.unmatchLength = 1;\r\n\r\n break;\r\n }\r\n\r\n index++;\r\n }\r\n\r\n if (index > startIndex) {\r\n res.match = str.slice(startIndex, index);\r\n res.matchIndex = startIndex;\r\n res.matchLength = index - startIndex;\r\n }\r\n\r\n return res;\r\n }\r\n }\r\n });\r\n\r\n // @source BitConverter.js\r\n\r\n Bridge.define(\"System.BitConverter\", {\r\n statics: {\r\n fields: {\r\n isLittleEndian: false,\r\n arg_ArrayPlusOffTooSmall: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.isLittleEndian = System.BitConverter.getIsLittleEndian();\r\n this.arg_ArrayPlusOffTooSmall = \"Destination array is not long enough to copy all the items in the collection. Check array index and length.\";\r\n }\r\n },\r\n methods: {\r\n getBytes: function (value) {\r\n return value ? System.Array.init([1], System.Byte) : System.Array.init([0], System.Byte);\r\n },\r\n getBytes$1: function (value) {\r\n return System.BitConverter.getBytes$3(Bridge.Int.sxs(value & 65535));\r\n },\r\n getBytes$3: function (value) {\r\n var view = System.BitConverter.view(2);\r\n view.setInt16(0, value);\r\n\r\n return System.BitConverter.getViewBytes(view);\r\n },\r\n getBytes$4: function (value) {\r\n var view = System.BitConverter.view(4);\r\n view.setInt32(0, value);\r\n\r\n return System.BitConverter.getViewBytes(view);\r\n },\r\n getBytes$5: function (value) {\r\n var view = System.BitConverter.getView(value);\r\n\r\n return System.BitConverter.getViewBytes(view);\r\n },\r\n getBytes$7: function (value) {\r\n var view = System.BitConverter.view(2);\r\n view.setUint16(0, value);\r\n\r\n return System.BitConverter.getViewBytes(view);\r\n },\r\n getBytes$8: function (value) {\r\n var view = System.BitConverter.view(4);\r\n view.setUint32(0, value);\r\n\r\n return System.BitConverter.getViewBytes(view);\r\n },\r\n getBytes$9: function (value) {\r\n var view = System.BitConverter.getView(System.Int64.clip64(value));\r\n\r\n return System.BitConverter.getViewBytes(view);\r\n },\r\n getBytes$6: function (value) {\r\n var view = System.BitConverter.view(4);\r\n view.setFloat32(0, value);\r\n\r\n return System.BitConverter.getViewBytes(view);\r\n },\r\n getBytes$2: function (value) {\r\n if (isNaN(value)) {\r\n if (System.BitConverter.isLittleEndian) {\r\n return System.Array.init([0, 0, 0, 0, 0, 0, 248, 255], System.Byte);\r\n } else {\r\n return System.Array.init([255, 248, 0, 0, 0, 0, 0, 0], System.Byte);\r\n }\r\n }\r\n\r\n var view = System.BitConverter.view(8);\r\n view.setFloat64(0, value);\r\n\r\n return System.BitConverter.getViewBytes(view);\r\n },\r\n toChar: function (value, startIndex) {\r\n return ((System.BitConverter.toInt16(value, startIndex)) & 65535);\r\n },\r\n toInt16: function (value, startIndex) {\r\n System.BitConverter.checkArguments(value, startIndex, 2);\r\n\r\n var view = System.BitConverter.view(2);\r\n\r\n System.BitConverter.setViewBytes(view, value, -1, startIndex);\r\n\r\n return view.getInt16(0);\r\n },\r\n toInt32: function (value, startIndex) {\r\n System.BitConverter.checkArguments(value, startIndex, 4);\r\n\r\n var view = System.BitConverter.view(4);\r\n\r\n System.BitConverter.setViewBytes(view, value, -1, startIndex);\r\n\r\n return view.getInt32(0);\r\n },\r\n toInt64: function (value, startIndex) {\r\n System.BitConverter.checkArguments(value, startIndex, 8);\r\n\r\n var low = System.BitConverter.toInt32(value, startIndex);\r\n var high = System.BitConverter.toInt32(value, ((startIndex + 4) | 0));\r\n\r\n if (System.BitConverter.isLittleEndian) {\r\n return System.Int64([low, high]);\r\n }\r\n\r\n return System.Int64([high, low]);\r\n },\r\n toUInt16: function (value, startIndex) {\r\n return ((System.BitConverter.toInt16(value, startIndex)) & 65535);\r\n },\r\n toUInt32: function (value, startIndex) {\r\n return ((System.BitConverter.toInt32(value, startIndex)) >>> 0);\r\n },\r\n toUInt64: function (value, startIndex) {\r\n var l = System.BitConverter.toInt64(value, startIndex);\r\n\r\n return System.UInt64([l.value.low, l.value.high]);\r\n },\r\n toSingle: function (value, startIndex) {\r\n System.BitConverter.checkArguments(value, startIndex, 4);\r\n\r\n var view = System.BitConverter.view(4);\r\n\r\n System.BitConverter.setViewBytes(view, value, -1, startIndex);\r\n\r\n return view.getFloat32(0);\r\n },\r\n toDouble: function (value, startIndex) {\r\n System.BitConverter.checkArguments(value, startIndex, 8);\r\n\r\n var view = System.BitConverter.view(8);\r\n\r\n System.BitConverter.setViewBytes(view, value, -1, startIndex);\r\n\r\n return view.getFloat64(0);\r\n },\r\n toString$2: function (value, startIndex, length) {\r\n if (value == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"value\");\r\n }\r\n\r\n if (startIndex < 0 || startIndex >= value.length && startIndex > 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"startIndex\");\r\n }\r\n\r\n if (length < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"length\");\r\n }\r\n\r\n if (startIndex > ((value.length - length) | 0)) {\r\n throw new System.ArgumentException.$ctor1(System.BitConverter.arg_ArrayPlusOffTooSmall);\r\n }\r\n\r\n if (length === 0) {\r\n return \"\";\r\n }\r\n\r\n if (length > (715827882)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"length\", Bridge.toString((715827882)));\r\n }\r\n\r\n var chArrayLength = Bridge.Int.mul(length, 3);\r\n\r\n var chArray = System.Array.init(chArrayLength, 0, System.Char);\r\n var i = 0;\r\n var index = startIndex;\r\n\r\n for (i = 0; i < chArrayLength; i = (i + 3) | 0) {\r\n var b = value[System.Array.index(Bridge.identity(index, ((index = (index + 1) | 0))), value)];\r\n chArray[System.Array.index(i, chArray)] = System.BitConverter.getHexValue(((Bridge.Int.div(b, 16)) | 0));\r\n chArray[System.Array.index(((i + 1) | 0), chArray)] = System.BitConverter.getHexValue(b % 16);\r\n chArray[System.Array.index(((i + 2) | 0), chArray)] = 45;\r\n }\r\n\r\n return System.String.fromCharArray(chArray, 0, ((chArray.length - 1) | 0));\r\n },\r\n toString: function (value) {\r\n if (value == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"value\");\r\n }\r\n\r\n return System.BitConverter.toString$2(value, 0, value.length);\r\n },\r\n toString$1: function (value, startIndex) {\r\n if (value == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"value\");\r\n }\r\n\r\n return System.BitConverter.toString$2(value, startIndex, ((value.length - startIndex) | 0));\r\n },\r\n toBoolean: function (value, startIndex) {\r\n System.BitConverter.checkArguments(value, startIndex, 1);\r\n\r\n return (value[System.Array.index(startIndex, value)] === 0) ? false : true;\r\n },\r\n doubleToInt64Bits: function (value) {\r\n var view = System.BitConverter.view(8);\r\n view.setFloat64(0, value);\r\n\r\n return System.Int64([view.getInt32(4), view.getInt32(0)]);\r\n },\r\n int64BitsToDouble: function (value) {\r\n var view = System.BitConverter.getView(value);\r\n\r\n return view.getFloat64(0);\r\n },\r\n getHexValue: function (i) {\r\n if (i < 10) {\r\n return ((((i + 48) | 0)) & 65535);\r\n }\r\n\r\n return ((((((i - 10) | 0) + 65) | 0)) & 65535);\r\n },\r\n getViewBytes: function (view, count, startIndex) {\r\n if (count === void 0) { count = -1; }\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (count === -1) {\r\n count = view.byteLength;\r\n }\r\n\r\n var r = System.Array.init(count, 0, System.Byte);\r\n\r\n if (System.BitConverter.isLittleEndian) {\r\n for (var i = (count - 1) | 0; i >= 0; i = (i - 1) | 0) {\r\n r[System.Array.index(i, r)] = view.getUint8(Bridge.identity(startIndex, (startIndex = (startIndex + 1) | 0)));\r\n }\r\n } else {\r\n for (var i1 = 0; i1 < count; i1 = (i1 + 1) | 0) {\r\n r[System.Array.index(i1, r)] = view.getUint8(Bridge.identity(startIndex, (startIndex = (startIndex + 1) | 0)));\r\n }\r\n }\r\n\r\n return r;\r\n },\r\n setViewBytes: function (view, value, count, startIndex) {\r\n if (count === void 0) { count = -1; }\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (count === -1) {\r\n count = view.byteLength;\r\n }\r\n\r\n if (System.BitConverter.isLittleEndian) {\r\n for (var i = (count - 1) | 0; i >= 0; i = (i - 1) | 0) {\r\n view.setUint8(i, value[System.Array.index(Bridge.identity(startIndex, (startIndex = (startIndex + 1) | 0)), value)]);\r\n }\r\n } else {\r\n for (var i1 = 0; i1 < count; i1 = (i1 + 1) | 0) {\r\n view.setUint8(i1, value[System.Array.index(Bridge.identity(startIndex, (startIndex = (startIndex + 1) | 0)), value)]);\r\n }\r\n }\r\n },\r\n view: function (length) {\r\n var buffer = new ArrayBuffer(length);\r\n var view = new DataView(buffer);\r\n\r\n return view;\r\n },\r\n getView: function (value) {\r\n var view = System.BitConverter.view(8);\r\n\r\n view.setInt32(4, value.value.low);\r\n view.setInt32(0, value.value.high);\r\n\r\n return view;\r\n },\r\n getIsLittleEndian: function () {\r\n var view = System.BitConverter.view(2);\r\n\r\n view.setUint8(0, 170);\r\n view.setUint8(1, 187);\r\n\r\n if (view.getUint16(0) === 43707) {\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n checkArguments: function (value, startIndex, size) {\r\n if (value == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"null\");\r\n }\r\n\r\n if (System.Int64((startIndex >>> 0)).gte(System.Int64(value.length))) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"startIndex\");\r\n }\r\n\r\n if (startIndex > ((value.length - size) | 0)) {\r\n throw new System.ArgumentException.$ctor1(System.BitConverter.arg_ArrayPlusOffTooSmall);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source BitArray.js\r\n\r\n Bridge.define(\"System.Collections.BitArray\", {\r\n inherits: [System.Collections.ICollection,System.ICloneable],\r\n statics: {\r\n fields: {\r\n BitsPerInt32: 0,\r\n BytesPerInt32: 0,\r\n BitsPerByte: 0,\r\n _ShrinkThreshold: 0\r\n },\r\n ctors: {\r\n init: function () {\r\n this.BitsPerInt32 = 32;\r\n this.BytesPerInt32 = 4;\r\n this.BitsPerByte = 8;\r\n this._ShrinkThreshold = 256;\r\n }\r\n },\r\n methods: {\r\n GetArrayLength: function (n, div) {\r\n return n > 0 ? ((((((Bridge.Int.div((((n - 1) | 0)), div)) | 0)) + 1) | 0)) : 0;\r\n }\r\n }\r\n },\r\n fields: {\r\n m_array: null,\r\n m_length: 0,\r\n _version: 0\r\n },\r\n props: {\r\n Length: {\r\n get: function () {\r\n return this.m_length;\r\n },\r\n set: function (value) {\r\n if (value < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"value\", \"Non-negative number required.\");\r\n }\r\n\r\n var newints = System.Collections.BitArray.GetArrayLength(value, System.Collections.BitArray.BitsPerInt32);\r\n if (newints > this.m_array.length || ((newints + System.Collections.BitArray._ShrinkThreshold) | 0) < this.m_array.length) {\r\n var newarray = System.Array.init(newints, 0, System.Int32);\r\n System.Array.copy(this.m_array, 0, newarray, 0, newints > this.m_array.length ? this.m_array.length : newints);\r\n this.m_array = newarray;\r\n }\r\n\r\n if (value > this.m_length) {\r\n var last = (System.Collections.BitArray.GetArrayLength(this.m_length, System.Collections.BitArray.BitsPerInt32) - 1) | 0;\r\n var bits = this.m_length % 32;\r\n if (bits > 0) {\r\n this.m_array[System.Array.index(last, this.m_array)] = this.m_array[System.Array.index(last, this.m_array)] & ((((1 << bits) - 1) | 0));\r\n }\r\n\r\n System.Array.fill(this.m_array, 0, ((last + 1) | 0), ((((newints - last) | 0) - 1) | 0));\r\n }\r\n\r\n this.m_length = value;\r\n this._version = (this._version + 1) | 0;\r\n }\r\n },\r\n Count: {\r\n get: function () {\r\n return this.m_length;\r\n }\r\n },\r\n System$Collections$ICollection$IsSynchronized: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$ICollection$SyncRoot: {\r\n get: function () {\r\n return this;\r\n }\r\n },\r\n IsReadOnly: {\r\n get: function () {\r\n return false;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"copyTo\", \"System$Collections$ICollection$copyTo\",\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"clone\", \"System$ICloneable$clone\",\r\n \"GetEnumerator\", \"System$Collections$IEnumerable$GetEnumerator\"\r\n ],\r\n ctors: {\r\n $ctor3: function (length) {\r\n System.Collections.BitArray.$ctor4.call(this, length, false);\r\n },\r\n $ctor4: function (length, defaultValue) {\r\n this.$initialize();\r\n if (length < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"length\", \"Index is less than zero.\");\r\n }\r\n\r\n this.m_array = System.Array.init(System.Collections.BitArray.GetArrayLength(length, System.Collections.BitArray.BitsPerInt32), 0, System.Int32);\r\n this.m_length = length;\r\n\r\n var fillValue = defaultValue ? (-1) : 0;\r\n for (var i = 0; i < this.m_array.length; i = (i + 1) | 0) {\r\n this.m_array[System.Array.index(i, this.m_array)] = fillValue;\r\n }\r\n\r\n this._version = 0;\r\n },\r\n $ctor1: function (bytes) {\r\n this.$initialize();\r\n if (bytes == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"bytes\");\r\n }\r\n if (bytes.length > 268435455) {\r\n throw new System.ArgumentException.$ctor3(System.String.format(\"The input array length must not exceed Int32.MaxValue / {0}. Otherwise BitArray.Length would exceed Int32.MaxValue.\", [Bridge.box(System.Collections.BitArray.BitsPerByte, System.Int32)]), \"bytes\");\r\n }\r\n\r\n this.m_array = System.Array.init(System.Collections.BitArray.GetArrayLength(bytes.length, System.Collections.BitArray.BytesPerInt32), 0, System.Int32);\r\n this.m_length = Bridge.Int.mul(bytes.length, System.Collections.BitArray.BitsPerByte);\r\n\r\n var i = 0;\r\n var j = 0;\r\n while (((bytes.length - j) | 0) >= 4) {\r\n this.m_array[System.Array.index(Bridge.identity(i, ((i = (i + 1) | 0))), this.m_array)] = (bytes[System.Array.index(j, bytes)] & 255) | ((bytes[System.Array.index(((j + 1) | 0), bytes)] & 255) << 8) | ((bytes[System.Array.index(((j + 2) | 0), bytes)] & 255) << 16) | ((bytes[System.Array.index(((j + 3) | 0), bytes)] & 255) << 24);\r\n j = (j + 4) | 0;\r\n }\r\n\r\n var r = (bytes.length - j) | 0;\r\n if (r === 3) {\r\n this.m_array[System.Array.index(i, this.m_array)] = ((bytes[System.Array.index(((j + 2) | 0), bytes)] & 255) << 16);\r\n r = 2;\r\n }\r\n\r\n if (r === 2) {\r\n this.m_array[System.Array.index(i, this.m_array)] = this.m_array[System.Array.index(i, this.m_array)] | ((bytes[System.Array.index(((j + 1) | 0), bytes)] & 255) << 8);\r\n r = 1;\r\n }\r\n\r\n if (r === 1) {\r\n this.m_array[System.Array.index(i, this.m_array)] = this.m_array[System.Array.index(i, this.m_array)] | (bytes[System.Array.index(j, bytes)] & 255);\r\n }\r\n\r\n this._version = 0;\r\n },\r\n ctor: function (values) {\r\n var $t;\r\n this.$initialize();\r\n if (values == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"values\");\r\n }\r\n\r\n this.m_array = System.Array.init(System.Collections.BitArray.GetArrayLength(values.length, System.Collections.BitArray.BitsPerInt32), 0, System.Int32);\r\n this.m_length = values.length;\r\n\r\n for (var i = 0; i < values.length; i = (i + 1) | 0) {\r\n if (values[System.Array.index(i, values)]) {\r\n this.m_array[System.Array.index(($t = ((Bridge.Int.div(i, 32)) | 0)), this.m_array)] = this.m_array[System.Array.index($t, this.m_array)] | (1 << (i % 32));\r\n }\r\n }\r\n\r\n this._version = 0;\r\n },\r\n $ctor5: function (values) {\r\n this.$initialize();\r\n if (values == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"values\");\r\n }\r\n if (values.length > 67108863) {\r\n throw new System.ArgumentException.$ctor3(System.String.format(\"The input array length must not exceed Int32.MaxValue / {0}. Otherwise BitArray.Length would exceed Int32.MaxValue.\", [Bridge.box(System.Collections.BitArray.BitsPerInt32, System.Int32)]), \"values\");\r\n }\r\n\r\n this.m_array = System.Array.init(values.length, 0, System.Int32);\r\n this.m_length = Bridge.Int.mul(values.length, System.Collections.BitArray.BitsPerInt32);\r\n\r\n System.Array.copy(values, 0, this.m_array, 0, values.length);\r\n\r\n this._version = 0;\r\n },\r\n $ctor2: function (bits) {\r\n this.$initialize();\r\n if (bits == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"bits\");\r\n }\r\n\r\n var arrayLength = System.Collections.BitArray.GetArrayLength(bits.m_length, System.Collections.BitArray.BitsPerInt32);\r\n this.m_array = System.Array.init(arrayLength, 0, System.Int32);\r\n this.m_length = bits.m_length;\r\n\r\n System.Array.copy(bits.m_array, 0, this.m_array, 0, arrayLength);\r\n\r\n this._version = bits._version;\r\n }\r\n },\r\n methods: {\r\n getItem: function (index) {\r\n return this.Get(index);\r\n },\r\n setItem: function (index, value) {\r\n this.Set(index, value);\r\n },\r\n copyTo: function (array, index) {\r\n if (array == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n if (index < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n\r\n if (System.Array.getRank(array) !== 1) {\r\n throw new System.ArgumentException.$ctor1(\"Only single dimensional arrays are supported for the requested action.\");\r\n }\r\n\r\n if (Bridge.is(array, System.Array.type(System.Int32))) {\r\n System.Array.copy(this.m_array, 0, array, index, System.Collections.BitArray.GetArrayLength(this.m_length, System.Collections.BitArray.BitsPerInt32));\r\n } else if (Bridge.is(array, System.Array.type(System.Byte))) {\r\n var arrayLength = System.Collections.BitArray.GetArrayLength(this.m_length, System.Collections.BitArray.BitsPerByte);\r\n if ((((array.length - index) | 0)) < arrayLength) {\r\n throw new System.ArgumentException.$ctor1(\"Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.\");\r\n }\r\n\r\n var b = Bridge.cast(array, System.Array.type(System.Byte));\r\n for (var i = 0; i < arrayLength; i = (i + 1) | 0) {\r\n b[System.Array.index(((index + i) | 0), b)] = ((this.m_array[System.Array.index(((Bridge.Int.div(i, 4)) | 0), this.m_array)] >> (Bridge.Int.mul((i % 4), 8))) & 255) & 255;\r\n }\r\n } else if (Bridge.is(array, System.Array.type(System.Boolean))) {\r\n if (((array.length - index) | 0) < this.m_length) {\r\n throw new System.ArgumentException.$ctor1(\"Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.\");\r\n }\r\n\r\n var b1 = Bridge.cast(array, System.Array.type(System.Boolean));\r\n for (var i1 = 0; i1 < this.m_length; i1 = (i1 + 1) | 0) {\r\n b1[System.Array.index(((index + i1) | 0), b1)] = ((this.m_array[System.Array.index(((Bridge.Int.div(i1, 32)) | 0), this.m_array)] >> (i1 % 32)) & 1) !== 0;\r\n }\r\n } else {\r\n throw new System.ArgumentException.$ctor1(\"Only supported array types for CopyTo on BitArrays are Boolean[], Int32[] and Byte[].\");\r\n }\r\n },\r\n Get: function (index) {\r\n if (index < 0 || index >= this.Length) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"index\", \"Index was out of range. Must be non-negative and less than the size of the collection.\");\r\n }\r\n\r\n return (this.m_array[System.Array.index(((Bridge.Int.div(index, 32)) | 0), this.m_array)] & (1 << (index % 32))) !== 0;\r\n },\r\n Set: function (index, value) {\r\n var $t, $t1;\r\n if (index < 0 || index >= this.Length) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"index\", \"Index was out of range. Must be non-negative and less than the size of the collection.\");\r\n }\r\n\r\n if (value) {\r\n this.m_array[System.Array.index(($t = ((Bridge.Int.div(index, 32)) | 0)), this.m_array)] = this.m_array[System.Array.index($t, this.m_array)] | (1 << (index % 32));\r\n } else {\r\n this.m_array[System.Array.index(($t1 = ((Bridge.Int.div(index, 32)) | 0)), this.m_array)] = this.m_array[System.Array.index($t1, this.m_array)] & (~(1 << (index % 32)));\r\n }\r\n\r\n this._version = (this._version + 1) | 0;\r\n },\r\n SetAll: function (value) {\r\n var fillValue = value ? (-1) : 0;\r\n var ints = System.Collections.BitArray.GetArrayLength(this.m_length, System.Collections.BitArray.BitsPerInt32);\r\n for (var i = 0; i < ints; i = (i + 1) | 0) {\r\n this.m_array[System.Array.index(i, this.m_array)] = fillValue;\r\n }\r\n\r\n this._version = (this._version + 1) | 0;\r\n },\r\n And: function (value) {\r\n if (value == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"value\");\r\n }\r\n if (this.Length !== value.Length) {\r\n throw new System.ArgumentException.$ctor1(\"Array lengths must be the same.\");\r\n }\r\n\r\n var ints = System.Collections.BitArray.GetArrayLength(this.m_length, System.Collections.BitArray.BitsPerInt32);\r\n for (var i = 0; i < ints; i = (i + 1) | 0) {\r\n this.m_array[System.Array.index(i, this.m_array)] = this.m_array[System.Array.index(i, this.m_array)] & value.m_array[System.Array.index(i, value.m_array)];\r\n }\r\n\r\n this._version = (this._version + 1) | 0;\r\n return this;\r\n },\r\n Or: function (value) {\r\n if (value == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"value\");\r\n }\r\n if (this.Length !== value.Length) {\r\n throw new System.ArgumentException.$ctor1(\"Array lengths must be the same.\");\r\n }\r\n\r\n var ints = System.Collections.BitArray.GetArrayLength(this.m_length, System.Collections.BitArray.BitsPerInt32);\r\n for (var i = 0; i < ints; i = (i + 1) | 0) {\r\n this.m_array[System.Array.index(i, this.m_array)] = this.m_array[System.Array.index(i, this.m_array)] | value.m_array[System.Array.index(i, value.m_array)];\r\n }\r\n\r\n this._version = (this._version + 1) | 0;\r\n return this;\r\n },\r\n Xor: function (value) {\r\n if (value == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"value\");\r\n }\r\n if (this.Length !== value.Length) {\r\n throw new System.ArgumentException.$ctor1(\"Array lengths must be the same.\");\r\n }\r\n\r\n var ints = System.Collections.BitArray.GetArrayLength(this.m_length, System.Collections.BitArray.BitsPerInt32);\r\n for (var i = 0; i < ints; i = (i + 1) | 0) {\r\n this.m_array[System.Array.index(i, this.m_array)] = this.m_array[System.Array.index(i, this.m_array)] ^ value.m_array[System.Array.index(i, value.m_array)];\r\n }\r\n\r\n this._version = (this._version + 1) | 0;\r\n return this;\r\n },\r\n Not: function () {\r\n var ints = System.Collections.BitArray.GetArrayLength(this.m_length, System.Collections.BitArray.BitsPerInt32);\r\n for (var i = 0; i < ints; i = (i + 1) | 0) {\r\n this.m_array[System.Array.index(i, this.m_array)] = ~this.m_array[System.Array.index(i, this.m_array)];\r\n }\r\n\r\n this._version = (this._version + 1) | 0;\r\n return this;\r\n },\r\n clone: function () {\r\n var bitArray = new System.Collections.BitArray.$ctor5(this.m_array);\r\n bitArray._version = this._version;\r\n bitArray.m_length = this.m_length;\r\n return bitArray;\r\n },\r\n GetEnumerator: function () {\r\n return new System.Collections.BitArray.BitArrayEnumeratorSimple(this);\r\n }\r\n }\r\n });\r\n\r\n // @source BitArrayEnumeratorSimple.js\r\n\r\n Bridge.define(\"System.Collections.BitArray.BitArrayEnumeratorSimple\", {\r\n inherits: [System.Collections.IEnumerator],\r\n $kind: \"nested class\",\r\n fields: {\r\n bitarray: null,\r\n index: 0,\r\n version: 0,\r\n currentElement: false\r\n },\r\n props: {\r\n Current: {\r\n get: function () {\r\n if (this.index === -1) {\r\n throw new System.InvalidOperationException.$ctor1(\"Enumeration has not started. Call MoveNext.\");\r\n }\r\n if (this.index >= this.bitarray.Count) {\r\n throw new System.InvalidOperationException.$ctor1(\"Enumeration already finished.\");\r\n }\r\n return Bridge.box(this.currentElement, System.Boolean, System.Boolean.toString);\r\n }\r\n }\r\n },\r\n alias: [\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"Current\", \"System$Collections$IEnumerator$Current\",\r\n \"reset\", \"System$Collections$IEnumerator$reset\"\r\n ],\r\n ctors: {\r\n ctor: function (bitarray) {\r\n this.$initialize();\r\n this.bitarray = bitarray;\r\n this.index = -1;\r\n this.version = bitarray._version;\r\n }\r\n },\r\n methods: {\r\n moveNext: function () {\r\n if (this.version !== this.bitarray._version) {\r\n throw new System.InvalidOperationException.$ctor1(\"Collection was modified; enumeration operation may not execute.\");\r\n }\r\n if (this.index < (((this.bitarray.Count - 1) | 0))) {\r\n this.index = (this.index + 1) | 0;\r\n this.currentElement = this.bitarray.Get(this.index);\r\n return true;\r\n } else {\r\n this.index = this.bitarray.Count;\r\n }\r\n\r\n return false;\r\n },\r\n reset: function () {\r\n if (this.version !== this.bitarray._version) {\r\n throw new System.InvalidOperationException.$ctor1(\"Collection was modified; enumeration operation may not execute.\");\r\n }\r\n this.index = -1;\r\n }\r\n }\r\n });\r\n\r\n // @source BitHelper.js\r\n\r\n Bridge.define(\"System.Collections.Generic.BitHelper\", {\r\n statics: {\r\n fields: {\r\n MarkedBitFlag: 0,\r\n IntSize: 0\r\n },\r\n ctors: {\r\n init: function () {\r\n this.MarkedBitFlag = 1;\r\n this.IntSize = 32;\r\n }\r\n },\r\n methods: {\r\n ToIntArrayLength: function (n) {\r\n return n > 0 ? (((((Bridge.Int.div((((n - 1) | 0)), System.Collections.Generic.BitHelper.IntSize)) | 0) + 1) | 0)) : 0;\r\n }\r\n }\r\n },\r\n fields: {\r\n _length: 0,\r\n _array: null\r\n },\r\n ctors: {\r\n ctor: function (bitArray, length) {\r\n this.$initialize();\r\n this._array = bitArray;\r\n this._length = length;\r\n }\r\n },\r\n methods: {\r\n MarkBit: function (bitPosition) {\r\n var bitArrayIndex = (Bridge.Int.div(bitPosition, System.Collections.Generic.BitHelper.IntSize)) | 0;\r\n if (bitArrayIndex < this._length && bitArrayIndex >= 0) {\r\n var flag = (System.Collections.Generic.BitHelper.MarkedBitFlag << (bitPosition % System.Collections.Generic.BitHelper.IntSize));\r\n this._array[System.Array.index(bitArrayIndex, this._array)] = this._array[System.Array.index(bitArrayIndex, this._array)] | flag;\r\n }\r\n },\r\n IsMarked: function (bitPosition) {\r\n var bitArrayIndex = (Bridge.Int.div(bitPosition, System.Collections.Generic.BitHelper.IntSize)) | 0;\r\n if (bitArrayIndex < this._length && bitArrayIndex >= 0) {\r\n var flag = (System.Collections.Generic.BitHelper.MarkedBitFlag << (bitPosition % System.Collections.Generic.BitHelper.IntSize));\r\n return ((this._array[System.Array.index(bitArrayIndex, this._array)] & flag) !== 0);\r\n }\r\n return false;\r\n }\r\n }\r\n });\r\n\r\n // @source DictionaryKeyCollectionDebugView.js\r\n\r\n Bridge.define(\"System.Collections.Generic.DictionaryKeyCollectionDebugView$2\", function (TKey, TValue) { return {\r\n fields: {\r\n _collection: null\r\n },\r\n props: {\r\n Items: {\r\n get: function () {\r\n var items = System.Array.init(System.Array.getCount(this._collection, TKey), function (){\r\n return Bridge.getDefaultValue(TKey);\r\n }, TKey);\r\n System.Array.copyTo(this._collection, items, 0, TKey);\r\n return items;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function (collection) {\r\n this.$initialize();\r\n if (collection == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"collection\");\r\n }\r\n\r\n this._collection = collection;\r\n }\r\n }\r\n }; });\r\n\r\n // @source DictionaryValueCollectionDebugView.js\r\n\r\n Bridge.define(\"System.Collections.Generic.DictionaryValueCollectionDebugView$2\", function (TKey, TValue) { return {\r\n fields: {\r\n _collection: null\r\n },\r\n props: {\r\n Items: {\r\n get: function () {\r\n var items = System.Array.init(System.Array.getCount(this._collection, TValue), function (){\r\n return Bridge.getDefaultValue(TValue);\r\n }, TValue);\r\n System.Array.copyTo(this._collection, items, 0, TValue);\r\n return items;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function (collection) {\r\n this.$initialize();\r\n if (collection == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"collection\");\r\n }\r\n\r\n this._collection = collection;\r\n }\r\n }\r\n }; });\r\n\r\n // @source EnumerableHelpers.js\r\n\r\n Bridge.define(\"Bridge.Collections.EnumerableHelpers\", {\r\n statics: {\r\n methods: {\r\n ToArray: function (T, source) {\r\n var count = { };\r\n var results = { v : Bridge.Collections.EnumerableHelpers.ToArray$1(T, source, count) };\r\n System.Array.resize(results, count.v, function () {\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n return results.v;\r\n },\r\n ToArray$1: function (T, source, length) {\r\n var en = Bridge.getEnumerator(source, T);\r\n try {\r\n if (en.System$Collections$IEnumerator$moveNext()) {\r\n var DefaultCapacity = 4;\r\n var arr = { v : System.Array.init(DefaultCapacity, function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T) };\r\n arr.v[System.Array.index(0, arr.v)] = en[Bridge.geti(en, \"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(T) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\")];\r\n var count = 1;\r\n\r\n while (en.System$Collections$IEnumerator$moveNext()) {\r\n if (count === arr.v.length) {\r\n var MaxArrayLength = 2146435071;\r\n\r\n var newLength = count << 1;\r\n if ((newLength >>> 0) > MaxArrayLength) {\r\n newLength = MaxArrayLength <= count ? ((count + 1) | 0) : MaxArrayLength;\r\n }\r\n\r\n System.Array.resize(arr, newLength, function () {\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n }\r\n\r\n arr.v[System.Array.index(Bridge.identity(count, ((count = (count + 1) | 0))), arr.v)] = en[Bridge.geti(en, \"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(T) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\")];\r\n }\r\n\r\n length.v = count;\r\n return arr.v;\r\n }\r\n }\r\n finally {\r\n if (Bridge.hasValue(en)) {\r\n en.System$IDisposable$Dispose();\r\n }\r\n }\r\n\r\n length.v = 0;\r\n return System.Array.init(0, function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source HashSet.js\r\n\r\n Bridge.define(\"System.Collections.Generic.HashSet$1\", function (T) { return {\r\n inherits: [System.Collections.Generic.ICollection$1(T),System.Collections.Generic.ISet$1(T),System.Collections.Generic.IReadOnlyCollection$1(T)],\r\n statics: {\r\n fields: {\r\n Lower31BitMask: 0,\r\n ShrinkThreshold: 0\r\n },\r\n ctors: {\r\n init: function () {\r\n this.Lower31BitMask = 2147483647;\r\n this.ShrinkThreshold = 3;\r\n }\r\n },\r\n methods: {\r\n HashSetEquals: function (set1, set2, comparer) {\r\n var $t, $t1, $t2;\r\n if (set1 == null) {\r\n return (set2 == null);\r\n } else if (set2 == null) {\r\n return false;\r\n }\r\n if (System.Collections.Generic.HashSet$1(T).AreEqualityComparersEqual(set1, set2)) {\r\n if (set1.Count !== set2.Count) {\r\n return false;\r\n }\r\n $t = Bridge.getEnumerator(set2);\r\n try {\r\n while ($t.moveNext()) {\r\n var item = $t.Current;\r\n if (!set1.contains(item)) {\r\n return false;\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n return true;\r\n } else {\r\n $t1 = Bridge.getEnumerator(set2);\r\n try {\r\n while ($t1.moveNext()) {\r\n var set2Item = $t1.Current;\r\n var found = false;\r\n $t2 = Bridge.getEnumerator(set1);\r\n try {\r\n while ($t2.moveNext()) {\r\n var set1Item = $t2.Current;\r\n if (comparer[Bridge.geti(comparer, \"System$Collections$Generic$IEqualityComparer$1$\" + Bridge.getTypeAlias(T) + \"$equals2\", \"System$Collections$Generic$IEqualityComparer$1$equals2\")](set2Item, set1Item)) {\r\n found = true;\r\n break;\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t2, System.IDisposable)) {\r\n $t2.System$IDisposable$Dispose();\r\n }\r\n }\r\n if (!found) {\r\n return false;\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t1, System.IDisposable)) {\r\n $t1.System$IDisposable$Dispose();\r\n }\r\n }\r\n return true;\r\n }\r\n },\r\n AreEqualityComparersEqual: function (set1, set2) {\r\n return Bridge.equals(set1.Comparer, set2.Comparer);\r\n }\r\n }\r\n },\r\n fields: {\r\n _buckets: null,\r\n _slots: null,\r\n _count: 0,\r\n _lastIndex: 0,\r\n _freeList: 0,\r\n _comparer: null,\r\n _version: 0\r\n },\r\n props: {\r\n Count: {\r\n get: function () {\r\n return this._count;\r\n }\r\n },\r\n IsReadOnly: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n Comparer: {\r\n get: function () {\r\n return this._comparer;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"System$Collections$Generic$ICollection$1$add\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$add\",\r\n \"clear\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$clear\",\r\n \"contains\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$contains\",\r\n \"copyTo\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$copyTo\",\r\n \"remove\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$remove\",\r\n \"Count\", [\"System$Collections$Generic$IReadOnlyCollection$1$\" + Bridge.getTypeAlias(T) + \"$Count\", \"System$Collections$Generic$IReadOnlyCollection$1$Count\"],\r\n \"Count\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$Count\",\r\n \"IsReadOnly\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$IsReadOnly\",\r\n \"System$Collections$Generic$IEnumerable$1$GetEnumerator\", \"System$Collections$Generic$IEnumerable$1$\" + Bridge.getTypeAlias(T) + \"$GetEnumerator\",\r\n \"add\", \"System$Collections$Generic$ISet$1$\" + Bridge.getTypeAlias(T) + \"$add\",\r\n \"unionWith\", \"System$Collections$Generic$ISet$1$\" + Bridge.getTypeAlias(T) + \"$unionWith\",\r\n \"intersectWith\", \"System$Collections$Generic$ISet$1$\" + Bridge.getTypeAlias(T) + \"$intersectWith\",\r\n \"exceptWith\", \"System$Collections$Generic$ISet$1$\" + Bridge.getTypeAlias(T) + \"$exceptWith\",\r\n \"symmetricExceptWith\", \"System$Collections$Generic$ISet$1$\" + Bridge.getTypeAlias(T) + \"$symmetricExceptWith\",\r\n \"isSubsetOf\", \"System$Collections$Generic$ISet$1$\" + Bridge.getTypeAlias(T) + \"$isSubsetOf\",\r\n \"isProperSubsetOf\", \"System$Collections$Generic$ISet$1$\" + Bridge.getTypeAlias(T) + \"$isProperSubsetOf\",\r\n \"isSupersetOf\", \"System$Collections$Generic$ISet$1$\" + Bridge.getTypeAlias(T) + \"$isSupersetOf\",\r\n \"isProperSupersetOf\", \"System$Collections$Generic$ISet$1$\" + Bridge.getTypeAlias(T) + \"$isProperSupersetOf\",\r\n \"overlaps\", \"System$Collections$Generic$ISet$1$\" + Bridge.getTypeAlias(T) + \"$overlaps\",\r\n \"setEquals\", \"System$Collections$Generic$ISet$1$\" + Bridge.getTypeAlias(T) + \"$setEquals\"\r\n ],\r\n ctors: {\r\n ctor: function () {\r\n System.Collections.Generic.HashSet$1(T).$ctor3.call(this, System.Collections.Generic.EqualityComparer$1(T).def);\r\n },\r\n $ctor3: function (comparer) {\r\n this.$initialize();\r\n if (comparer == null) {\r\n comparer = System.Collections.Generic.EqualityComparer$1(T).def;\r\n }\r\n this._comparer = comparer;\r\n this._lastIndex = 0;\r\n this._count = 0;\r\n this._freeList = -1;\r\n this._version = 0;\r\n },\r\n $ctor1: function (collection) {\r\n System.Collections.Generic.HashSet$1(T).$ctor2.call(this, collection, System.Collections.Generic.EqualityComparer$1(T).def);\r\n },\r\n $ctor2: function (collection, comparer) {\r\n System.Collections.Generic.HashSet$1(T).$ctor3.call(this, comparer);\r\n if (collection == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"collection\");\r\n }\r\n var suggestedCapacity = 0;\r\n var coll = Bridge.as(collection, System.Collections.Generic.ICollection$1(T));\r\n if (coll != null) {\r\n suggestedCapacity = System.Array.getCount(coll, T);\r\n }\r\n this.Initialize(suggestedCapacity);\r\n this.unionWith(collection);\r\n if ((this._count === 0 && this._slots.length > System.Collections.HashHelpers.GetMinPrime()) || (this._count > 0 && ((Bridge.Int.div(this._slots.length, this._count)) | 0) > System.Collections.Generic.HashSet$1(T).ShrinkThreshold)) {\r\n this.TrimExcess();\r\n }\r\n }\r\n },\r\n methods: {\r\n System$Collections$Generic$ICollection$1$add: function (item) {\r\n this.AddIfNotPresent(item);\r\n },\r\n add: function (item) {\r\n return this.AddIfNotPresent(item);\r\n },\r\n clear: function () {\r\n if (this._lastIndex > 0) {\r\n for (var i = 0; i < this._lastIndex; i = (i + 1) | 0) {\r\n this._slots[System.Array.index(i, this._slots)] = new (System.Collections.Generic.HashSet$1.Slot(T))();\r\n }\r\n\r\n for (var i1 = 0; i1 < this._buckets.length; i1 = (i1 + 1) | 0) {\r\n this._buckets[System.Array.index(i1, this._buckets)] = 0;\r\n }\r\n\r\n this._lastIndex = 0;\r\n this._count = 0;\r\n this._freeList = -1;\r\n }\r\n this._version = (this._version + 1) | 0;\r\n },\r\n ArrayClear: function (array, index, length) { },\r\n contains: function (item) {\r\n if (this._buckets != null) {\r\n var hashCode = this.InternalGetHashCode(item);\r\n for (var i = (this._buckets[System.Array.index(hashCode % this._buckets.length, this._buckets)] - 1) | 0; i >= 0; i = this._slots[System.Array.index(i, this._slots)].next) {\r\n if (this._slots[System.Array.index(i, this._slots)].hashCode === hashCode && this._comparer[Bridge.geti(this._comparer, \"System$Collections$Generic$IEqualityComparer$1$\" + Bridge.getTypeAlias(T) + \"$equals2\", \"System$Collections$Generic$IEqualityComparer$1$equals2\")](this._slots[System.Array.index(i, this._slots)].value, item)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n },\r\n copyTo: function (array, arrayIndex) {\r\n this.CopyTo$1(array, arrayIndex, this._count);\r\n },\r\n CopyTo: function (array) {\r\n this.CopyTo$1(array, 0, this._count);\r\n },\r\n CopyTo$1: function (array, arrayIndex, count) {\r\n if (array == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n if (arrayIndex < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"arrayIndex\");\r\n }\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n if (arrayIndex > array.length || count > ((array.length - arrayIndex) | 0)) {\r\n throw new System.ArgumentException.$ctor1(\"Destination array is not long enough to copy all the items in the collection. Check array index and length.\");\r\n }\r\n var numCopied = 0;\r\n for (var i = 0; i < this._lastIndex && numCopied < count; i = (i + 1) | 0) {\r\n if (this._slots[System.Array.index(i, this._slots)].hashCode >= 0) {\r\n array[System.Array.index(((arrayIndex + numCopied) | 0), array)] = this._slots[System.Array.index(i, this._slots)].value;\r\n numCopied = (numCopied + 1) | 0;\r\n }\r\n }\r\n },\r\n remove: function (item) {\r\n if (this._buckets != null) {\r\n var hashCode = this.InternalGetHashCode(item);\r\n var bucket = hashCode % this._buckets.length;\r\n var last = -1;\r\n for (var i = (this._buckets[System.Array.index(bucket, this._buckets)] - 1) | 0; i >= 0; last = i, i = this._slots[System.Array.index(i, this._slots)].next) {\r\n if (this._slots[System.Array.index(i, this._slots)].hashCode === hashCode && this._comparer[Bridge.geti(this._comparer, \"System$Collections$Generic$IEqualityComparer$1$\" + Bridge.getTypeAlias(T) + \"$equals2\", \"System$Collections$Generic$IEqualityComparer$1$equals2\")](this._slots[System.Array.index(i, this._slots)].value, item)) {\r\n if (last < 0) {\r\n this._buckets[System.Array.index(bucket, this._buckets)] = (this._slots[System.Array.index(i, this._slots)].next + 1) | 0;\r\n } else {\r\n this._slots[System.Array.index(last, this._slots)].next = this._slots[System.Array.index(i, this._slots)].next;\r\n }\r\n this._slots[System.Array.index(i, this._slots)].hashCode = -1;\r\n this._slots[System.Array.index(i, this._slots)].value = Bridge.getDefaultValue(T);\r\n this._slots[System.Array.index(i, this._slots)].next = this._freeList;\r\n this._count = (this._count - 1) | 0;\r\n this._version = (this._version + 1) | 0;\r\n if (this._count === 0) {\r\n this._lastIndex = 0;\r\n this._freeList = -1;\r\n } else {\r\n this._freeList = i;\r\n }\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n },\r\n GetEnumerator: function () {\r\n return new (System.Collections.Generic.HashSet$1.Enumerator(T)).$ctor1(this);\r\n },\r\n System$Collections$Generic$IEnumerable$1$GetEnumerator: function () {\r\n return new (System.Collections.Generic.HashSet$1.Enumerator(T)).$ctor1(this).$clone();\r\n },\r\n System$Collections$IEnumerable$GetEnumerator: function () {\r\n return new (System.Collections.Generic.HashSet$1.Enumerator(T)).$ctor1(this).$clone();\r\n },\r\n unionWith: function (other) {\r\n var $t;\r\n if (other == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"other\");\r\n }\r\n $t = Bridge.getEnumerator(other, T);\r\n try {\r\n while ($t.moveNext()) {\r\n var item = $t.Current;\r\n this.AddIfNotPresent(item);\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n },\r\n intersectWith: function (other) {\r\n if (other == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"other\");\r\n }\r\n if (this._count === 0) {\r\n return;\r\n }\r\n var otherAsCollection = Bridge.as(other, System.Collections.Generic.ICollection$1(T));\r\n if (otherAsCollection != null) {\r\n if (System.Array.getCount(otherAsCollection, T) === 0) {\r\n this.clear();\r\n return;\r\n }\r\n var otherAsSet = Bridge.as(other, System.Collections.Generic.HashSet$1(T));\r\n if (otherAsSet != null && System.Collections.Generic.HashSet$1(T).AreEqualityComparersEqual(this, otherAsSet)) {\r\n this.IntersectWithHashSetWithSameEC(otherAsSet);\r\n return;\r\n }\r\n }\r\n this.IntersectWithEnumerable(other);\r\n },\r\n exceptWith: function (other) {\r\n var $t;\r\n if (other == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"other\");\r\n }\r\n if (this._count === 0) {\r\n return;\r\n }\r\n if (Bridge.referenceEquals(other, this)) {\r\n this.clear();\r\n return;\r\n }\r\n $t = Bridge.getEnumerator(other, T);\r\n try {\r\n while ($t.moveNext()) {\r\n var element = $t.Current;\r\n this.remove(element);\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n },\r\n symmetricExceptWith: function (other) {\r\n if (other == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"other\");\r\n }\r\n if (this._count === 0) {\r\n this.unionWith(other);\r\n return;\r\n }\r\n if (Bridge.referenceEquals(other, this)) {\r\n this.clear();\r\n return;\r\n }\r\n var otherAsSet = Bridge.as(other, System.Collections.Generic.HashSet$1(T));\r\n if (otherAsSet != null && System.Collections.Generic.HashSet$1(T).AreEqualityComparersEqual(this, otherAsSet)) {\r\n this.SymmetricExceptWithUniqueHashSet(otherAsSet);\r\n } else {\r\n this.SymmetricExceptWithEnumerable(other);\r\n }\r\n },\r\n isSubsetOf: function (other) {\r\n if (other == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"other\");\r\n }\r\n if (this._count === 0) {\r\n return true;\r\n }\r\n var otherAsSet = Bridge.as(other, System.Collections.Generic.HashSet$1(T));\r\n if (otherAsSet != null && System.Collections.Generic.HashSet$1(T).AreEqualityComparersEqual(this, otherAsSet)) {\r\n if (this._count > otherAsSet.Count) {\r\n return false;\r\n }\r\n return this.IsSubsetOfHashSetWithSameEC(otherAsSet);\r\n } else {\r\n var result = this.CheckUniqueAndUnfoundElements(other, false);\r\n return (result.uniqueCount === this._count && result.unfoundCount >= 0);\r\n }\r\n },\r\n isProperSubsetOf: function (other) {\r\n if (other == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"other\");\r\n }\r\n var otherAsCollection = Bridge.as(other, System.Collections.Generic.ICollection$1(T));\r\n if (otherAsCollection != null) {\r\n if (this._count === 0) {\r\n return System.Array.getCount(otherAsCollection, T) > 0;\r\n }\r\n var otherAsSet = Bridge.as(other, System.Collections.Generic.HashSet$1(T));\r\n if (otherAsSet != null && System.Collections.Generic.HashSet$1(T).AreEqualityComparersEqual(this, otherAsSet)) {\r\n if (this._count >= otherAsSet.Count) {\r\n return false;\r\n }\r\n return this.IsSubsetOfHashSetWithSameEC(otherAsSet);\r\n }\r\n }\r\n var result = this.CheckUniqueAndUnfoundElements(other, false);\r\n return (result.uniqueCount === this._count && result.unfoundCount > 0);\r\n },\r\n isSupersetOf: function (other) {\r\n if (other == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"other\");\r\n }\r\n var otherAsCollection = Bridge.as(other, System.Collections.Generic.ICollection$1(T));\r\n if (otherAsCollection != null) {\r\n if (System.Array.getCount(otherAsCollection, T) === 0) {\r\n return true;\r\n }\r\n var otherAsSet = Bridge.as(other, System.Collections.Generic.HashSet$1(T));\r\n if (otherAsSet != null && System.Collections.Generic.HashSet$1(T).AreEqualityComparersEqual(this, otherAsSet)) {\r\n if (otherAsSet.Count > this._count) {\r\n return false;\r\n }\r\n }\r\n }\r\n return this.ContainsAllElements(other);\r\n },\r\n isProperSupersetOf: function (other) {\r\n if (other == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"other\");\r\n }\r\n if (this._count === 0) {\r\n return false;\r\n }\r\n var otherAsCollection = Bridge.as(other, System.Collections.Generic.ICollection$1(T));\r\n if (otherAsCollection != null) {\r\n if (System.Array.getCount(otherAsCollection, T) === 0) {\r\n return true;\r\n }\r\n var otherAsSet = Bridge.as(other, System.Collections.Generic.HashSet$1(T));\r\n if (otherAsSet != null && System.Collections.Generic.HashSet$1(T).AreEqualityComparersEqual(this, otherAsSet)) {\r\n if (otherAsSet.Count >= this._count) {\r\n return false;\r\n }\r\n return this.ContainsAllElements(otherAsSet);\r\n }\r\n }\r\n var result = this.CheckUniqueAndUnfoundElements(other, true);\r\n return (result.uniqueCount < this._count && result.unfoundCount === 0);\r\n },\r\n overlaps: function (other) {\r\n var $t;\r\n if (other == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"other\");\r\n }\r\n if (this._count === 0) {\r\n return false;\r\n }\r\n $t = Bridge.getEnumerator(other, T);\r\n try {\r\n while ($t.moveNext()) {\r\n var element = $t.Current;\r\n if (this.contains(element)) {\r\n return true;\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n return false;\r\n },\r\n setEquals: function (other) {\r\n if (other == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"other\");\r\n }\r\n var otherAsSet = Bridge.as(other, System.Collections.Generic.HashSet$1(T));\r\n if (otherAsSet != null && System.Collections.Generic.HashSet$1(T).AreEqualityComparersEqual(this, otherAsSet)) {\r\n if (this._count !== otherAsSet.Count) {\r\n return false;\r\n }\r\n return this.ContainsAllElements(otherAsSet);\r\n } else {\r\n var otherAsCollection = Bridge.as(other, System.Collections.Generic.ICollection$1(T));\r\n if (otherAsCollection != null) {\r\n if (this._count === 0 && System.Array.getCount(otherAsCollection, T) > 0) {\r\n return false;\r\n }\r\n }\r\n var result = this.CheckUniqueAndUnfoundElements(other, true);\r\n return (result.uniqueCount === this._count && result.unfoundCount === 0);\r\n }\r\n },\r\n RemoveWhere: function (match) {\r\n if (Bridge.staticEquals(match, null)) {\r\n throw new System.ArgumentNullException.$ctor1(\"match\");\r\n }\r\n var numRemoved = 0;\r\n for (var i = 0; i < this._lastIndex; i = (i + 1) | 0) {\r\n if (this._slots[System.Array.index(i, this._slots)].hashCode >= 0) {\r\n var value = this._slots[System.Array.index(i, this._slots)].value;\r\n if (match(value)) {\r\n if (this.remove(value)) {\r\n numRemoved = (numRemoved + 1) | 0;\r\n }\r\n }\r\n }\r\n }\r\n return numRemoved;\r\n },\r\n TrimExcess: function () {\r\n if (this._count === 0) {\r\n this._buckets = null;\r\n this._slots = null;\r\n this._version = (this._version + 1) | 0;\r\n } else {\r\n var newSize = System.Collections.HashHelpers.GetPrime(this._count);\r\n var newSlots = System.Array.init(newSize, function (){\r\n return new (System.Collections.Generic.HashSet$1.Slot(T))();\r\n }, System.Collections.Generic.HashSet$1.Slot(T));\r\n var newBuckets = System.Array.init(newSize, 0, System.Int32);\r\n var newIndex = 0;\r\n for (var i = 0; i < this._lastIndex; i = (i + 1) | 0) {\r\n if (this._slots[System.Array.index(i, this._slots)].hashCode >= 0) {\r\n newSlots[System.Array.index(newIndex, newSlots)] = this._slots[System.Array.index(i, this._slots)].$clone();\r\n var bucket = newSlots[System.Array.index(newIndex, newSlots)].hashCode % newSize;\r\n newSlots[System.Array.index(newIndex, newSlots)].next = (newBuckets[System.Array.index(bucket, newBuckets)] - 1) | 0;\r\n newBuckets[System.Array.index(bucket, newBuckets)] = (newIndex + 1) | 0;\r\n newIndex = (newIndex + 1) | 0;\r\n }\r\n }\r\n this._lastIndex = newIndex;\r\n this._slots = newSlots;\r\n this._buckets = newBuckets;\r\n this._freeList = -1;\r\n }\r\n },\r\n Initialize: function (capacity) {\r\n var size = System.Collections.HashHelpers.GetPrime(capacity);\r\n this._buckets = System.Array.init(size, 0, System.Int32);\r\n this._slots = System.Array.init(size, function (){\r\n return new (System.Collections.Generic.HashSet$1.Slot(T))();\r\n }, System.Collections.Generic.HashSet$1.Slot(T));\r\n },\r\n IncreaseCapacity: function () {\r\n var newSize = System.Collections.HashHelpers.ExpandPrime(this._count);\r\n if (newSize <= this._count) {\r\n throw new System.ArgumentException.$ctor1(\"HashSet capacity is too big.\");\r\n }\r\n this.SetCapacity(newSize, false);\r\n },\r\n SetCapacity: function (newSize, forceNewHashCodes) {\r\n var newSlots = System.Array.init(newSize, function (){\r\n return new (System.Collections.Generic.HashSet$1.Slot(T))();\r\n }, System.Collections.Generic.HashSet$1.Slot(T));\r\n if (this._slots != null) {\r\n for (var i = 0; i < this._lastIndex; i = (i + 1) | 0) {\r\n newSlots[System.Array.index(i, newSlots)] = this._slots[System.Array.index(i, this._slots)].$clone();\r\n }\r\n }\r\n if (forceNewHashCodes) {\r\n for (var i1 = 0; i1 < this._lastIndex; i1 = (i1 + 1) | 0) {\r\n if (newSlots[System.Array.index(i1, newSlots)].hashCode !== -1) {\r\n newSlots[System.Array.index(i1, newSlots)].hashCode = this.InternalGetHashCode(newSlots[System.Array.index(i1, newSlots)].value);\r\n }\r\n }\r\n }\r\n var newBuckets = System.Array.init(newSize, 0, System.Int32);\r\n for (var i2 = 0; i2 < this._lastIndex; i2 = (i2 + 1) | 0) {\r\n var bucket = newSlots[System.Array.index(i2, newSlots)].hashCode % newSize;\r\n newSlots[System.Array.index(i2, newSlots)].next = (newBuckets[System.Array.index(bucket, newBuckets)] - 1) | 0;\r\n newBuckets[System.Array.index(bucket, newBuckets)] = (i2 + 1) | 0;\r\n }\r\n this._slots = newSlots;\r\n this._buckets = newBuckets;\r\n },\r\n AddIfNotPresent: function (value) {\r\n if (this._buckets == null) {\r\n this.Initialize(0);\r\n }\r\n var hashCode = this.InternalGetHashCode(value);\r\n var bucket = hashCode % this._buckets.length;\r\n for (var i = (this._buckets[System.Array.index(bucket, this._buckets)] - 1) | 0; i >= 0; i = this._slots[System.Array.index(i, this._slots)].next) {\r\n if (this._slots[System.Array.index(i, this._slots)].hashCode === hashCode && this._comparer[Bridge.geti(this._comparer, \"System$Collections$Generic$IEqualityComparer$1$\" + Bridge.getTypeAlias(T) + \"$equals2\", \"System$Collections$Generic$IEqualityComparer$1$equals2\")](this._slots[System.Array.index(i, this._slots)].value, value)) {\r\n return false;\r\n }\r\n }\r\n var index;\r\n if (this._freeList >= 0) {\r\n index = this._freeList;\r\n this._freeList = this._slots[System.Array.index(index, this._slots)].next;\r\n } else {\r\n if (this._lastIndex === this._slots.length) {\r\n this.IncreaseCapacity();\r\n bucket = hashCode % this._buckets.length;\r\n }\r\n index = this._lastIndex;\r\n this._lastIndex = (this._lastIndex + 1) | 0;\r\n }\r\n this._slots[System.Array.index(index, this._slots)].hashCode = hashCode;\r\n this._slots[System.Array.index(index, this._slots)].value = value;\r\n this._slots[System.Array.index(index, this._slots)].next = (this._buckets[System.Array.index(bucket, this._buckets)] - 1) | 0;\r\n this._buckets[System.Array.index(bucket, this._buckets)] = (index + 1) | 0;\r\n this._count = (this._count + 1) | 0;\r\n this._version = (this._version + 1) | 0;\r\n return true;\r\n },\r\n ContainsAllElements: function (other) {\r\n var $t;\r\n $t = Bridge.getEnumerator(other, T);\r\n try {\r\n while ($t.moveNext()) {\r\n var element = $t.Current;\r\n if (!this.contains(element)) {\r\n return false;\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n return true;\r\n },\r\n IsSubsetOfHashSetWithSameEC: function (other) {\r\n var $t;\r\n $t = Bridge.getEnumerator(this);\r\n try {\r\n while ($t.moveNext()) {\r\n var item = $t.Current;\r\n if (!other.contains(item)) {\r\n return false;\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n return true;\r\n },\r\n IntersectWithHashSetWithSameEC: function (other) {\r\n for (var i = 0; i < this._lastIndex; i = (i + 1) | 0) {\r\n if (this._slots[System.Array.index(i, this._slots)].hashCode >= 0) {\r\n var item = this._slots[System.Array.index(i, this._slots)].value;\r\n if (!other.contains(item)) {\r\n this.remove(item);\r\n }\r\n }\r\n }\r\n },\r\n IntersectWithEnumerable: function (other) {\r\n var $t;\r\n var originalLastIndex = this._lastIndex;\r\n var intArrayLength = System.Collections.Generic.BitHelper.ToIntArrayLength(originalLastIndex);\r\n var bitHelper;\r\n var bitArray = System.Array.init(intArrayLength, 0, System.Int32);\r\n bitHelper = new System.Collections.Generic.BitHelper(bitArray, intArrayLength);\r\n $t = Bridge.getEnumerator(other, T);\r\n try {\r\n while ($t.moveNext()) {\r\n var item = $t.Current;\r\n var index = this.InternalIndexOf(item);\r\n if (index >= 0) {\r\n bitHelper.MarkBit(index);\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n for (var i = 0; i < originalLastIndex; i = (i + 1) | 0) {\r\n if (this._slots[System.Array.index(i, this._slots)].hashCode >= 0 && !bitHelper.IsMarked(i)) {\r\n this.remove(this._slots[System.Array.index(i, this._slots)].value);\r\n }\r\n }\r\n },\r\n InternalIndexOf: function (item) {\r\n var hashCode = this.InternalGetHashCode(item);\r\n for (var i = (this._buckets[System.Array.index(hashCode % this._buckets.length, this._buckets)] - 1) | 0; i >= 0; i = this._slots[System.Array.index(i, this._slots)].next) {\r\n if ((this._slots[System.Array.index(i, this._slots)].hashCode) === hashCode && this._comparer[Bridge.geti(this._comparer, \"System$Collections$Generic$IEqualityComparer$1$\" + Bridge.getTypeAlias(T) + \"$equals2\", \"System$Collections$Generic$IEqualityComparer$1$equals2\")](this._slots[System.Array.index(i, this._slots)].value, item)) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n },\r\n SymmetricExceptWithUniqueHashSet: function (other) {\r\n var $t;\r\n $t = Bridge.getEnumerator(other);\r\n try {\r\n while ($t.moveNext()) {\r\n var item = $t.Current;\r\n if (!this.remove(item)) {\r\n this.AddIfNotPresent(item);\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n },\r\n SymmetricExceptWithEnumerable: function (other) {\r\n var $t;\r\n var originalLastIndex = this._lastIndex;\r\n var intArrayLength = System.Collections.Generic.BitHelper.ToIntArrayLength(originalLastIndex);\r\n var itemsToRemove;\r\n var itemsAddedFromOther;\r\n var itemsToRemoveArray = System.Array.init(intArrayLength, 0, System.Int32);\r\n itemsToRemove = new System.Collections.Generic.BitHelper(itemsToRemoveArray, intArrayLength);\r\n var itemsAddedFromOtherArray = System.Array.init(intArrayLength, 0, System.Int32);\r\n itemsAddedFromOther = new System.Collections.Generic.BitHelper(itemsAddedFromOtherArray, intArrayLength);\r\n $t = Bridge.getEnumerator(other, T);\r\n try {\r\n while ($t.moveNext()) {\r\n var item = $t.Current;\r\n var location = { v : 0 };\r\n var added = this.AddOrGetLocation(item, location);\r\n if (added) {\r\n itemsAddedFromOther.MarkBit(location.v);\r\n } else {\r\n if (location.v < originalLastIndex && !itemsAddedFromOther.IsMarked(location.v)) {\r\n itemsToRemove.MarkBit(location.v);\r\n }\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n for (var i = 0; i < originalLastIndex; i = (i + 1) | 0) {\r\n if (itemsToRemove.IsMarked(i)) {\r\n this.remove(this._slots[System.Array.index(i, this._slots)].value);\r\n }\r\n }\r\n },\r\n AddOrGetLocation: function (value, location) {\r\n var hashCode = this.InternalGetHashCode(value);\r\n var bucket = hashCode % this._buckets.length;\r\n for (var i = (this._buckets[System.Array.index(bucket, this._buckets)] - 1) | 0; i >= 0; i = this._slots[System.Array.index(i, this._slots)].next) {\r\n if (this._slots[System.Array.index(i, this._slots)].hashCode === hashCode && this._comparer[Bridge.geti(this._comparer, \"System$Collections$Generic$IEqualityComparer$1$\" + Bridge.getTypeAlias(T) + \"$equals2\", \"System$Collections$Generic$IEqualityComparer$1$equals2\")](this._slots[System.Array.index(i, this._slots)].value, value)) {\r\n location.v = i;\r\n return false;\r\n }\r\n }\r\n var index;\r\n if (this._freeList >= 0) {\r\n index = this._freeList;\r\n this._freeList = this._slots[System.Array.index(index, this._slots)].next;\r\n } else {\r\n if (this._lastIndex === this._slots.length) {\r\n this.IncreaseCapacity();\r\n bucket = hashCode % this._buckets.length;\r\n }\r\n index = this._lastIndex;\r\n this._lastIndex = (this._lastIndex + 1) | 0;\r\n }\r\n this._slots[System.Array.index(index, this._slots)].hashCode = hashCode;\r\n this._slots[System.Array.index(index, this._slots)].value = value;\r\n this._slots[System.Array.index(index, this._slots)].next = (this._buckets[System.Array.index(bucket, this._buckets)] - 1) | 0;\r\n this._buckets[System.Array.index(bucket, this._buckets)] = (index + 1) | 0;\r\n this._count = (this._count + 1) | 0;\r\n this._version = (this._version + 1) | 0;\r\n location.v = index;\r\n return true;\r\n },\r\n CheckUniqueAndUnfoundElements: function (other, returnIfUnfound) {\r\n var $t, $t1;\r\n var result = new (System.Collections.Generic.HashSet$1.ElementCount(T))();\r\n if (this._count === 0) {\r\n var numElementsInOther = 0;\r\n $t = Bridge.getEnumerator(other, T);\r\n try {\r\n while ($t.moveNext()) {\r\n var item = $t.Current;\r\n numElementsInOther = (numElementsInOther + 1) | 0;\r\n break;\r\n }\r\n } finally {\r\n if (Bridge.is($t, System.IDisposable)) {\r\n $t.System$IDisposable$Dispose();\r\n }\r\n }\r\n result.uniqueCount = 0;\r\n result.unfoundCount = numElementsInOther;\r\n return result.$clone();\r\n }\r\n var originalLastIndex = this._lastIndex;\r\n var intArrayLength = System.Collections.Generic.BitHelper.ToIntArrayLength(originalLastIndex);\r\n var bitHelper;\r\n var bitArray = System.Array.init(intArrayLength, 0, System.Int32);\r\n bitHelper = new System.Collections.Generic.BitHelper(bitArray, intArrayLength);\r\n var unfoundCount = 0;\r\n var uniqueFoundCount = 0;\r\n $t1 = Bridge.getEnumerator(other, T);\r\n try {\r\n while ($t1.moveNext()) {\r\n var item1 = $t1.Current;\r\n var index = this.InternalIndexOf(item1);\r\n if (index >= 0) {\r\n if (!bitHelper.IsMarked(index)) {\r\n bitHelper.MarkBit(index);\r\n uniqueFoundCount = (uniqueFoundCount + 1) | 0;\r\n }\r\n } else {\r\n unfoundCount = (unfoundCount + 1) | 0;\r\n if (returnIfUnfound) {\r\n break;\r\n }\r\n }\r\n }\r\n } finally {\r\n if (Bridge.is($t1, System.IDisposable)) {\r\n $t1.System$IDisposable$Dispose();\r\n }\r\n }\r\n result.uniqueCount = uniqueFoundCount;\r\n result.unfoundCount = unfoundCount;\r\n return result.$clone();\r\n },\r\n ToArray: function () {\r\n var newArray = System.Array.init(this.Count, function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n this.CopyTo(newArray);\r\n return newArray;\r\n },\r\n InternalGetHashCode: function (item) {\r\n if (item == null) {\r\n return 0;\r\n }\r\n return this._comparer[Bridge.geti(this._comparer, \"System$Collections$Generic$IEqualityComparer$1$\" + Bridge.getTypeAlias(T) + \"$getHashCode2\", \"System$Collections$Generic$IEqualityComparer$1$getHashCode2\")](item) & System.Collections.Generic.HashSet$1(T).Lower31BitMask;\r\n }\r\n }\r\n }; });\r\n\r\n // @source ElementCount.js\r\n\r\n Bridge.define(\"System.Collections.Generic.HashSet$1.ElementCount\", function (T) { return {\r\n $kind: \"nested struct\",\r\n statics: {\r\n methods: {\r\n getDefaultValue: function () { return new (System.Collections.Generic.HashSet$1.ElementCount(T))(); }\r\n }\r\n },\r\n fields: {\r\n uniqueCount: 0,\r\n unfoundCount: 0\r\n },\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n getHashCode: function () {\r\n var h = Bridge.addHash([4920463385, this.uniqueCount, this.unfoundCount]);\r\n return h;\r\n },\r\n equals: function (o) {\r\n if (!Bridge.is(o, System.Collections.Generic.HashSet$1.ElementCount(T))) {\r\n return false;\r\n }\r\n return Bridge.equals(this.uniqueCount, o.uniqueCount) && Bridge.equals(this.unfoundCount, o.unfoundCount);\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.Collections.Generic.HashSet$1.ElementCount(T))();\r\n s.uniqueCount = this.uniqueCount;\r\n s.unfoundCount = this.unfoundCount;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n // @source Enumerator.js\r\n\r\n Bridge.define(\"System.Collections.Generic.HashSet$1.Enumerator\", function (T) { return {\r\n inherits: [System.Collections.Generic.IEnumerator$1(T)],\r\n $kind: \"nested struct\",\r\n statics: {\r\n methods: {\r\n getDefaultValue: function () { return new (System.Collections.Generic.HashSet$1.Enumerator(T))(); }\r\n }\r\n },\r\n fields: {\r\n _set: null,\r\n _index: 0,\r\n _version: 0,\r\n _current: Bridge.getDefaultValue(T)\r\n },\r\n props: {\r\n Current: {\r\n get: function () {\r\n return this._current;\r\n }\r\n },\r\n System$Collections$IEnumerator$Current: {\r\n get: function () {\r\n if (this._index === 0 || this._index === ((this._set._lastIndex + 1) | 0)) {\r\n throw new System.InvalidOperationException.$ctor1(\"Enumeration has either not started or has already finished.\");\r\n }\r\n return this.Current;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Dispose\", \"System$IDisposable$Dispose\",\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"Current\", [\"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(T) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\"]\r\n ],\r\n ctors: {\r\n $ctor1: function (set) {\r\n this.$initialize();\r\n this._set = set;\r\n this._index = 0;\r\n this._version = set._version;\r\n this._current = Bridge.getDefaultValue(T);\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n Dispose: function () { },\r\n moveNext: function () {\r\n var $t, $t1;\r\n if (this._version !== this._set._version) {\r\n throw new System.InvalidOperationException.$ctor1(\"Collection was modified; enumeration operation may not execute.\");\r\n }\r\n while (this._index < this._set._lastIndex) {\r\n if (($t = this._set._slots)[System.Array.index(this._index, $t)].hashCode >= 0) {\r\n this._current = ($t1 = this._set._slots)[System.Array.index(this._index, $t1)].value;\r\n this._index = (this._index + 1) | 0;\r\n return true;\r\n }\r\n this._index = (this._index + 1) | 0;\r\n }\r\n this._index = (this._set._lastIndex + 1) | 0;\r\n this._current = Bridge.getDefaultValue(T);\r\n return false;\r\n },\r\n System$Collections$IEnumerator$reset: function () {\r\n if (this._version !== this._set._version) {\r\n throw new System.InvalidOperationException.$ctor1(\"Collection was modified; enumeration operation may not execute.\");\r\n }\r\n this._index = 0;\r\n this._current = Bridge.getDefaultValue(T);\r\n },\r\n getHashCode: function () {\r\n var h = Bridge.addHash([3788985113, this._set, this._index, this._version, this._current]);\r\n return h;\r\n },\r\n equals: function (o) {\r\n if (!Bridge.is(o, System.Collections.Generic.HashSet$1.Enumerator(T))) {\r\n return false;\r\n }\r\n return Bridge.equals(this._set, o._set) && Bridge.equals(this._index, o._index) && Bridge.equals(this._version, o._version) && Bridge.equals(this._current, o._current);\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.Collections.Generic.HashSet$1.Enumerator(T))();\r\n s._set = this._set;\r\n s._index = this._index;\r\n s._version = this._version;\r\n s._current = this._current;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n // @source Slot.js\r\n\r\n Bridge.define(\"System.Collections.Generic.HashSet$1.Slot\", function (T) { return {\r\n $kind: \"nested struct\",\r\n statics: {\r\n methods: {\r\n getDefaultValue: function () { return new (System.Collections.Generic.HashSet$1.Slot(T))(); }\r\n }\r\n },\r\n fields: {\r\n hashCode: 0,\r\n value: Bridge.getDefaultValue(T),\r\n next: 0\r\n },\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n getHashCode: function () {\r\n var h = Bridge.addHash([1953459283, this.hashCode, this.value, this.next]);\r\n return h;\r\n },\r\n equals: function (o) {\r\n if (!Bridge.is(o, System.Collections.Generic.HashSet$1.Slot(T))) {\r\n return false;\r\n }\r\n return Bridge.equals(this.hashCode, o.hashCode) && Bridge.equals(this.value, o.value) && Bridge.equals(this.next, o.next);\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.Collections.Generic.HashSet$1.Slot(T))();\r\n s.hashCode = this.hashCode;\r\n s.value = this.value;\r\n s.next = this.next;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n // @source Enumerator.js\r\n\r\n Bridge.define(\"System.Collections.Generic.List$1.Enumerator\", function (T) { return {\r\n inherits: [System.Collections.Generic.IEnumerator$1(T),System.Collections.IEnumerator],\r\n $kind: \"nested struct\",\r\n statics: {\r\n methods: {\r\n getDefaultValue: function () { return new (System.Collections.Generic.List$1.Enumerator(T))(); }\r\n }\r\n },\r\n fields: {\r\n list: null,\r\n index: 0,\r\n version: 0,\r\n current: Bridge.getDefaultValue(T)\r\n },\r\n props: {\r\n Current: {\r\n get: function () {\r\n return this.current;\r\n }\r\n },\r\n System$Collections$IEnumerator$Current: {\r\n get: function () {\r\n if (this.index === 0 || this.index === ((this.list._size + 1) | 0)) {\r\n throw new System.InvalidOperationException.ctor();\r\n }\r\n return this.Current;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Dispose\", \"System$IDisposable$Dispose\",\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"Current\", [\"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(T) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\"]\r\n ],\r\n ctors: {\r\n $ctor1: function (list) {\r\n this.$initialize();\r\n this.list = list;\r\n this.index = 0;\r\n this.version = list._version;\r\n this.current = Bridge.getDefaultValue(T);\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n Dispose: function () { },\r\n moveNext: function () {\r\n\r\n var localList = this.list;\r\n\r\n if (this.version === localList._version && ((this.index >>> 0) < (localList._size >>> 0))) {\r\n this.current = localList._items[System.Array.index(this.index, localList._items)];\r\n this.index = (this.index + 1) | 0;\r\n return true;\r\n }\r\n return this.MoveNextRare();\r\n },\r\n MoveNextRare: function () {\r\n if (this.version !== this.list._version) {\r\n throw new System.InvalidOperationException.ctor();\r\n }\r\n\r\n this.index = (this.list._size + 1) | 0;\r\n this.current = Bridge.getDefaultValue(T);\r\n return false;\r\n },\r\n System$Collections$IEnumerator$reset: function () {\r\n if (this.version !== this.list._version) {\r\n throw new System.InvalidOperationException.ctor();\r\n }\r\n\r\n this.index = 0;\r\n this.current = Bridge.getDefaultValue(T);\r\n },\r\n getHashCode: function () {\r\n var h = Bridge.addHash([3788985113, this.list, this.index, this.version, this.current]);\r\n return h;\r\n },\r\n equals: function (o) {\r\n if (!Bridge.is(o, System.Collections.Generic.List$1.Enumerator(T))) {\r\n return false;\r\n }\r\n return Bridge.equals(this.list, o.list) && Bridge.equals(this.index, o.index) && Bridge.equals(this.version, o.version) && Bridge.equals(this.current, o.current);\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.Collections.Generic.List$1.Enumerator(T))();\r\n s.list = this.list;\r\n s.index = this.index;\r\n s.version = this.version;\r\n s.current = this.current;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n // @source Queue.js\r\n\r\n Bridge.define(\"System.Collections.Generic.Queue$1\", function (T) { return {\r\n inherits: [System.Collections.Generic.IEnumerable$1(T),System.Collections.ICollection,System.Collections.Generic.IReadOnlyCollection$1(T)],\r\n statics: {\r\n fields: {\r\n MinimumGrow: 0,\r\n GrowFactor: 0,\r\n DefaultCapacity: 0\r\n },\r\n ctors: {\r\n init: function () {\r\n this.MinimumGrow = 4;\r\n this.GrowFactor = 200;\r\n this.DefaultCapacity = 4;\r\n }\r\n }\r\n },\r\n fields: {\r\n _array: null,\r\n _head: 0,\r\n _tail: 0,\r\n _size: 0,\r\n _version: 0\r\n },\r\n props: {\r\n Count: {\r\n get: function () {\r\n return this._size;\r\n }\r\n },\r\n System$Collections$ICollection$IsSynchronized: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$ICollection$SyncRoot: {\r\n get: function () {\r\n return this;\r\n }\r\n },\r\n IsReadOnly: {\r\n get: function () {\r\n return false;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Count\", [\"System$Collections$Generic$IReadOnlyCollection$1$\" + Bridge.getTypeAlias(T) + \"$Count\", \"System$Collections$Generic$IReadOnlyCollection$1$Count\"],\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"copyTo\", \"System$Collections$ICollection$copyTo\",\r\n \"System$Collections$Generic$IEnumerable$1$GetEnumerator\", \"System$Collections$Generic$IEnumerable$1$\" + Bridge.getTypeAlias(T) + \"$GetEnumerator\"\r\n ],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n this._array = System.Array.init(0, function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n },\r\n $ctor2: function (capacity) {\r\n this.$initialize();\r\n if (capacity < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"capacity\", \"Non-negative number required.\");\r\n }\r\n this._array = System.Array.init(capacity, function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n },\r\n $ctor1: function (collection) {\r\n this.$initialize();\r\n if (collection == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"collection\");\r\n }\r\n\r\n this._array = System.Array.init(System.Collections.Generic.Queue$1(T).DefaultCapacity, function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n\r\n var en = Bridge.getEnumerator(collection, T);\r\n try {\r\n while (en.System$Collections$IEnumerator$moveNext()) {\r\n this.Enqueue(en[Bridge.geti(en, \"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(T) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\")]);\r\n }\r\n }\r\n finally {\r\n if (Bridge.hasValue(en)) {\r\n en.System$IDisposable$Dispose();\r\n }\r\n }\r\n }\r\n },\r\n methods: {\r\n copyTo: function (array, index) {\r\n if (array == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n if (System.Array.getRank(array) !== 1) {\r\n throw new System.ArgumentException.$ctor1(\"Only single dimensional arrays are supported for the requested action.\");\r\n }\r\n\r\n if (index < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n\r\n var arrayLen = array.length;\r\n if (((arrayLen - index) | 0) < this._size) {\r\n throw new System.ArgumentException.$ctor1(\"Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.\");\r\n }\r\n\r\n var numToCopy = this._size;\r\n if (numToCopy === 0) {\r\n return;\r\n }\r\n\r\n var firstPart = (((this._array.length - this._head) | 0) < numToCopy) ? ((this._array.length - this._head) | 0) : numToCopy;\r\n System.Array.copy(this._array, this._head, array, index, firstPart);\r\n\r\n numToCopy = (numToCopy - firstPart) | 0;\r\n if (numToCopy > 0) {\r\n System.Array.copy(this._array, 0, array, ((((index + this._array.length) | 0) - this._head) | 0), numToCopy);\r\n }\r\n },\r\n CopyTo: function (array, arrayIndex) {\r\n if (array == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n if (arrayIndex < 0 || arrayIndex > array.length) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"arrayIndex\", \"Index was out of range. Must be non-negative and less than the size of the collection.\");\r\n }\r\n\r\n var arrayLen = array.length;\r\n if (((arrayLen - arrayIndex) | 0) < this._size) {\r\n throw new System.ArgumentException.$ctor1(\"Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.\");\r\n }\r\n\r\n var numToCopy = (((arrayLen - arrayIndex) | 0) < this._size) ? (((arrayLen - arrayIndex) | 0)) : this._size;\r\n if (numToCopy === 0) {\r\n return;\r\n }\r\n\r\n var firstPart = (((this._array.length - this._head) | 0) < numToCopy) ? ((this._array.length - this._head) | 0) : numToCopy;\r\n System.Array.copy(this._array, this._head, array, arrayIndex, firstPart);\r\n numToCopy = (numToCopy - firstPart) | 0;\r\n if (numToCopy > 0) {\r\n System.Array.copy(this._array, 0, array, ((((arrayIndex + this._array.length) | 0) - this._head) | 0), numToCopy);\r\n }\r\n },\r\n Clear: function () {\r\n if (this._head < this._tail) {\r\n System.Array.fill(this._array, function () {\r\n return Bridge.getDefaultValue(T);\r\n }, this._head, this._size);\r\n } else {\r\n System.Array.fill(this._array, function () {\r\n return Bridge.getDefaultValue(T);\r\n }, this._head, ((this._array.length - this._head) | 0));\r\n System.Array.fill(this._array, function () {\r\n return Bridge.getDefaultValue(T);\r\n }, 0, this._tail);\r\n }\r\n\r\n this._head = 0;\r\n this._tail = 0;\r\n this._size = 0;\r\n this._version = (this._version + 1) | 0;\r\n },\r\n Enqueue: function (item) {\r\n if (this._size === this._array.length) {\r\n var newcapacity = (Bridge.Int.div(Bridge.Int.mul(this._array.length, System.Collections.Generic.Queue$1(T).GrowFactor), 100)) | 0;\r\n if (newcapacity < ((this._array.length + System.Collections.Generic.Queue$1(T).MinimumGrow) | 0)) {\r\n newcapacity = (this._array.length + System.Collections.Generic.Queue$1(T).MinimumGrow) | 0;\r\n }\r\n this.SetCapacity(newcapacity);\r\n }\r\n\r\n this._array[System.Array.index(this._tail, this._array)] = item;\r\n this._tail = this.MoveNext(this._tail);\r\n this._size = (this._size + 1) | 0;\r\n this._version = (this._version + 1) | 0;\r\n },\r\n GetEnumerator: function () {\r\n return new (System.Collections.Generic.Queue$1.Enumerator(T)).$ctor1(this);\r\n },\r\n System$Collections$Generic$IEnumerable$1$GetEnumerator: function () {\r\n return new (System.Collections.Generic.Queue$1.Enumerator(T)).$ctor1(this).$clone();\r\n },\r\n System$Collections$IEnumerable$GetEnumerator: function () {\r\n return new (System.Collections.Generic.Queue$1.Enumerator(T)).$ctor1(this).$clone();\r\n },\r\n Dequeue: function () {\r\n if (this._size === 0) {\r\n throw new System.InvalidOperationException.$ctor1(\"Queue empty.\");\r\n }\r\n\r\n var removed = this._array[System.Array.index(this._head, this._array)];\r\n this._array[System.Array.index(this._head, this._array)] = Bridge.getDefaultValue(T);\r\n this._head = this.MoveNext(this._head);\r\n this._size = (this._size - 1) | 0;\r\n this._version = (this._version + 1) | 0;\r\n return removed;\r\n },\r\n Peek: function () {\r\n if (this._size === 0) {\r\n throw new System.InvalidOperationException.$ctor1(\"Queue empty.\");\r\n }\r\n\r\n return this._array[System.Array.index(this._head, this._array)];\r\n },\r\n Contains: function (item) {\r\n var index = this._head;\r\n var count = this._size;\r\n\r\n var c = System.Collections.Generic.EqualityComparer$1(T).def;\r\n while (Bridge.identity(count, ((count = (count - 1) | 0))) > 0) {\r\n if (item == null) {\r\n if (this._array[System.Array.index(index, this._array)] == null) {\r\n return true;\r\n }\r\n } else if (this._array[System.Array.index(index, this._array)] != null && c.equals2(this._array[System.Array.index(index, this._array)], item)) {\r\n return true;\r\n }\r\n index = this.MoveNext(index);\r\n }\r\n\r\n return false;\r\n },\r\n GetElement: function (i) {\r\n return this._array[System.Array.index((((this._head + i) | 0)) % this._array.length, this._array)];\r\n },\r\n ToArray: function () {\r\n var arr = System.Array.init(this._size, function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n if (this._size === 0) {\r\n return arr;\r\n }\r\n\r\n if (this._head < this._tail) {\r\n System.Array.copy(this._array, this._head, arr, 0, this._size);\r\n } else {\r\n System.Array.copy(this._array, this._head, arr, 0, ((this._array.length - this._head) | 0));\r\n System.Array.copy(this._array, 0, arr, ((this._array.length - this._head) | 0), this._tail);\r\n }\r\n\r\n return arr;\r\n },\r\n SetCapacity: function (capacity) {\r\n var newarray = System.Array.init(capacity, function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n if (this._size > 0) {\r\n if (this._head < this._tail) {\r\n System.Array.copy(this._array, this._head, newarray, 0, this._size);\r\n } else {\r\n System.Array.copy(this._array, this._head, newarray, 0, ((this._array.length - this._head) | 0));\r\n System.Array.copy(this._array, 0, newarray, ((this._array.length - this._head) | 0), this._tail);\r\n }\r\n }\r\n\r\n this._array = newarray;\r\n this._head = 0;\r\n this._tail = (this._size === capacity) ? 0 : this._size;\r\n this._version = (this._version + 1) | 0;\r\n },\r\n MoveNext: function (index) {\r\n var tmp = (index + 1) | 0;\r\n return (tmp === this._array.length) ? 0 : tmp;\r\n },\r\n TrimExcess: function () {\r\n var threshold = Bridge.Int.clip32(this._array.length * 0.9);\r\n if (this._size < threshold) {\r\n this.SetCapacity(this._size);\r\n }\r\n }\r\n }\r\n }; });\r\n\r\n // @source ICollectionDebugView.js\r\n\r\n Bridge.define(\"System.Collections.Generic.ICollectionDebugView$1\", function (T) { return {\r\n fields: {\r\n _collection: null\r\n },\r\n props: {\r\n Items: {\r\n get: function () {\r\n var items = System.Array.init(System.Array.getCount(this._collection, T), function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n System.Array.copyTo(this._collection, items, 0, T);\r\n return items;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function (collection) {\r\n this.$initialize();\r\n if (collection == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"collection\");\r\n }\r\n\r\n this._collection = collection;\r\n }\r\n }\r\n }; });\r\n\r\n // @source IDictionaryDebugView.js\r\n\r\n Bridge.define(\"System.Collections.Generic.IDictionaryDebugView$2\", function (K, V) { return {\r\n fields: {\r\n _dict: null\r\n },\r\n props: {\r\n Items: {\r\n get: function () {\r\n var items = System.Array.init(System.Array.getCount(this._dict, System.Collections.Generic.KeyValuePair$2(K,V)), function (){\r\n return new (System.Collections.Generic.KeyValuePair$2(K,V))();\r\n }, System.Collections.Generic.KeyValuePair$2(K,V));\r\n System.Array.copyTo(this._dict, items, 0, System.Collections.Generic.KeyValuePair$2(K,V));\r\n return items;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function (dictionary) {\r\n this.$initialize();\r\n if (dictionary == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"dictionary\");\r\n }\r\n\r\n this._dict = dictionary;\r\n }\r\n }\r\n }; });\r\n\r\n // @source Enumerator.js\r\n\r\n Bridge.define(\"System.Collections.Generic.Queue$1.Enumerator\", function (T) { return {\r\n inherits: [System.Collections.Generic.IEnumerator$1(T),System.Collections.IEnumerator],\r\n $kind: \"nested struct\",\r\n statics: {\r\n methods: {\r\n getDefaultValue: function () { return new (System.Collections.Generic.Queue$1.Enumerator(T))(); }\r\n }\r\n },\r\n fields: {\r\n _q: null,\r\n _index: 0,\r\n _version: 0,\r\n _currentElement: Bridge.getDefaultValue(T)\r\n },\r\n props: {\r\n Current: {\r\n get: function () {\r\n if (this._index < 0) {\r\n if (this._index === -1) {\r\n throw new System.InvalidOperationException.$ctor1(\"Enumeration has not started. Call MoveNext.\");\r\n } else {\r\n throw new System.InvalidOperationException.$ctor1(\"Enumeration already finished.\");\r\n }\r\n }\r\n return this._currentElement;\r\n }\r\n },\r\n System$Collections$IEnumerator$Current: {\r\n get: function () {\r\n return this.Current;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Dispose\", \"System$IDisposable$Dispose\",\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"Current\", [\"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(T) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\"]\r\n ],\r\n ctors: {\r\n $ctor1: function (q) {\r\n this.$initialize();\r\n this._q = q;\r\n this._version = this._q._version;\r\n this._index = -1;\r\n this._currentElement = Bridge.getDefaultValue(T);\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n Dispose: function () {\r\n this._index = -2;\r\n this._currentElement = Bridge.getDefaultValue(T);\r\n },\r\n moveNext: function () {\r\n if (this._version !== this._q._version) {\r\n throw new System.InvalidOperationException.$ctor1(\"Collection was modified; enumeration operation may not execute.\");\r\n }\r\n\r\n if (this._index === -2) {\r\n return false;\r\n }\r\n\r\n this._index = (this._index + 1) | 0;\r\n\r\n if (this._index === this._q._size) {\r\n this._index = -2;\r\n this._currentElement = Bridge.getDefaultValue(T);\r\n return false;\r\n }\r\n\r\n this._currentElement = this._q.GetElement(this._index);\r\n return true;\r\n },\r\n System$Collections$IEnumerator$reset: function () {\r\n if (this._version !== this._q._version) {\r\n throw new System.InvalidOperationException.$ctor1(\"Collection was modified; enumeration operation may not execute.\");\r\n }\r\n this._index = -1;\r\n this._currentElement = Bridge.getDefaultValue(T);\r\n },\r\n getHashCode: function () {\r\n var h = Bridge.addHash([3788985113, this._q, this._index, this._version, this._currentElement]);\r\n return h;\r\n },\r\n equals: function (o) {\r\n if (!Bridge.is(o, System.Collections.Generic.Queue$1.Enumerator(T))) {\r\n return false;\r\n }\r\n return Bridge.equals(this._q, o._q) && Bridge.equals(this._index, o._index) && Bridge.equals(this._version, o._version) && Bridge.equals(this._currentElement, o._currentElement);\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.Collections.Generic.Queue$1.Enumerator(T))();\r\n s._q = this._q;\r\n s._index = this._index;\r\n s._version = this._version;\r\n s._currentElement = this._currentElement;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n // @source Stack.js\r\n\r\n Bridge.define(\"System.Collections.Generic.Stack$1\", function (T) { return {\r\n inherits: [System.Collections.Generic.IEnumerable$1(T),System.Collections.ICollection,System.Collections.Generic.IReadOnlyCollection$1(T)],\r\n statics: {\r\n fields: {\r\n DefaultCapacity: 0\r\n },\r\n ctors: {\r\n init: function () {\r\n this.DefaultCapacity = 4;\r\n }\r\n }\r\n },\r\n fields: {\r\n _array: null,\r\n _size: 0,\r\n _version: 0\r\n },\r\n props: {\r\n Count: {\r\n get: function () {\r\n return this._size;\r\n }\r\n },\r\n System$Collections$ICollection$IsSynchronized: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$ICollection$SyncRoot: {\r\n get: function () {\r\n return this;\r\n }\r\n },\r\n IsReadOnly: {\r\n get: function () {\r\n return false;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Count\", [\"System$Collections$Generic$IReadOnlyCollection$1$\" + Bridge.getTypeAlias(T) + \"$Count\", \"System$Collections$Generic$IReadOnlyCollection$1$Count\"],\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"copyTo\", \"System$Collections$ICollection$copyTo\",\r\n \"System$Collections$Generic$IEnumerable$1$GetEnumerator\", \"System$Collections$Generic$IEnumerable$1$\" + Bridge.getTypeAlias(T) + \"$GetEnumerator\"\r\n ],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n this._array = System.Array.init(0, function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n },\r\n $ctor2: function (capacity) {\r\n this.$initialize();\r\n if (capacity < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"capacity\", \"Non-negative number required.\");\r\n }\r\n this._array = System.Array.init(capacity, function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n },\r\n $ctor1: function (collection) {\r\n this.$initialize();\r\n if (collection == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"collection\");\r\n }\r\n var length = { };\r\n this._array = Bridge.Collections.EnumerableHelpers.ToArray$1(T, collection, length);\r\n this._size = length.v;\r\n }\r\n },\r\n methods: {\r\n Clear: function () {\r\n System.Array.fill(this._array, function () {\r\n return Bridge.getDefaultValue(T);\r\n }, 0, this._size);\r\n this._size = 0;\r\n this._version = (this._version + 1) | 0;\r\n },\r\n Contains: function (item) {\r\n var count = this._size;\r\n\r\n var c = System.Collections.Generic.EqualityComparer$1(T).def;\r\n while (Bridge.identity(count, ((count = (count - 1) | 0))) > 0) {\r\n if (item == null) {\r\n if (this._array[System.Array.index(count, this._array)] == null) {\r\n return true;\r\n }\r\n } else if (this._array[System.Array.index(count, this._array)] != null && c.equals2(this._array[System.Array.index(count, this._array)], item)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n CopyTo: function (array, arrayIndex) {\r\n if (array == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n if (arrayIndex < 0 || arrayIndex > array.length) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"arrayIndex\", \"Non-negative number required.\");\r\n }\r\n\r\n if (((array.length - arrayIndex) | 0) < this._size) {\r\n throw new System.ArgumentException.$ctor1(\"Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.\");\r\n }\r\n\r\n if (!Bridge.referenceEquals(array, this._array)) {\r\n var srcIndex = 0;\r\n var dstIndex = (arrayIndex + this._size) | 0;\r\n for (var i = 0; i < this._size; i = (i + 1) | 0) {\r\n array[System.Array.index(((dstIndex = (dstIndex - 1) | 0)), array)] = this._array[System.Array.index(Bridge.identity(srcIndex, ((srcIndex = (srcIndex + 1) | 0))), this._array)];\r\n }\r\n } else {\r\n System.Array.copy(this._array, 0, array, arrayIndex, this._size);\r\n System.Array.reverse(array, arrayIndex, this._size);\r\n }\r\n },\r\n copyTo: function (array, arrayIndex) {\r\n if (array == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n if (System.Array.getRank(array) !== 1) {\r\n throw new System.ArgumentException.$ctor1(\"Only single dimensional arrays are supported for the requested action.\");\r\n }\r\n\r\n if (System.Array.getLower(array, 0) !== 0) {\r\n throw new System.ArgumentException.$ctor1(\"The lower bound of target array must be zero.\");\r\n }\r\n\r\n if (arrayIndex < 0 || arrayIndex > array.length) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"arrayIndex\", \"Non-negative number required.\");\r\n }\r\n\r\n if (((array.length - arrayIndex) | 0) < this._size) {\r\n throw new System.ArgumentException.$ctor1(\"Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.\");\r\n }\r\n\r\n try {\r\n System.Array.copy(this._array, 0, array, arrayIndex, this._size);\r\n System.Array.reverse(array, arrayIndex, this._size);\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n throw new System.ArgumentException.$ctor1(\"Target array type is not compatible with the type of items in the collection.\");\r\n }\r\n },\r\n GetEnumerator: function () {\r\n return new (System.Collections.Generic.Stack$1.Enumerator(T)).$ctor1(this);\r\n },\r\n System$Collections$Generic$IEnumerable$1$GetEnumerator: function () {\r\n return new (System.Collections.Generic.Stack$1.Enumerator(T)).$ctor1(this).$clone();\r\n },\r\n System$Collections$IEnumerable$GetEnumerator: function () {\r\n return new (System.Collections.Generic.Stack$1.Enumerator(T)).$ctor1(this).$clone();\r\n },\r\n TrimExcess: function () {\r\n var threshold = Bridge.Int.clip32(this._array.length * 0.9);\r\n if (this._size < threshold) {\r\n var localArray = { v : this._array };\r\n System.Array.resize(localArray, this._size, function () {\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n this._array = localArray.v;\r\n this._version = (this._version + 1) | 0;\r\n }\r\n },\r\n Peek: function () {\r\n if (this._size === 0) {\r\n throw new System.InvalidOperationException.$ctor1(\"Stack empty.\");\r\n }\r\n return this._array[System.Array.index(((this._size - 1) | 0), this._array)];\r\n },\r\n Pop: function () {\r\n if (this._size === 0) {\r\n throw new System.InvalidOperationException.$ctor1(\"Stack empty.\");\r\n }\r\n this._version = (this._version + 1) | 0;\r\n var item = this._array[System.Array.index(((this._size = (this._size - 1) | 0)), this._array)];\r\n this._array[System.Array.index(this._size, this._array)] = Bridge.getDefaultValue(T);\r\n return item;\r\n },\r\n Push: function (item) {\r\n if (this._size === this._array.length) {\r\n var localArray = { v : this._array };\r\n System.Array.resize(localArray, (this._array.length === 0) ? System.Collections.Generic.Stack$1(T).DefaultCapacity : Bridge.Int.mul(2, this._array.length), function () {\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n this._array = localArray.v;\r\n }\r\n this._array[System.Array.index(Bridge.identity(this._size, ((this._size = (this._size + 1) | 0))), this._array)] = item;\r\n this._version = (this._version + 1) | 0;\r\n },\r\n ToArray: function () {\r\n var objArray = System.Array.init(this._size, function (){\r\n return Bridge.getDefaultValue(T);\r\n }, T);\r\n var i = 0;\r\n while (i < this._size) {\r\n objArray[System.Array.index(i, objArray)] = this._array[System.Array.index(((((this._size - i) | 0) - 1) | 0), this._array)];\r\n i = (i + 1) | 0;\r\n }\r\n return objArray;\r\n }\r\n }\r\n }; });\r\n\r\n // @source Enumerator.js\r\n\r\n Bridge.define(\"System.Collections.Generic.Stack$1.Enumerator\", function (T) { return {\r\n inherits: [System.Collections.Generic.IEnumerator$1(T),System.Collections.IEnumerator],\r\n $kind: \"nested struct\",\r\n statics: {\r\n methods: {\r\n getDefaultValue: function () { return new (System.Collections.Generic.Stack$1.Enumerator(T))(); }\r\n }\r\n },\r\n fields: {\r\n _stack: null,\r\n _index: 0,\r\n _version: 0,\r\n _currentElement: Bridge.getDefaultValue(T)\r\n },\r\n props: {\r\n Current: {\r\n get: function () {\r\n if (this._index === -2) {\r\n throw new System.InvalidOperationException.$ctor1(\"Enumeration has not started. Call MoveNext.\");\r\n }\r\n if (this._index === -1) {\r\n throw new System.InvalidOperationException.$ctor1(\"Enumeration already finished.\");\r\n }\r\n return this._currentElement;\r\n }\r\n },\r\n System$Collections$IEnumerator$Current: {\r\n get: function () {\r\n if (this._index === -2) {\r\n throw new System.InvalidOperationException.$ctor1(\"Enumeration has not started. Call MoveNext.\");\r\n }\r\n if (this._index === -1) {\r\n throw new System.InvalidOperationException.$ctor1(\"Enumeration already finished.\");\r\n }\r\n return this._currentElement;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Dispose\", \"System$IDisposable$Dispose\",\r\n \"moveNext\", \"System$Collections$IEnumerator$moveNext\",\r\n \"Current\", [\"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(T) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\"]\r\n ],\r\n ctors: {\r\n $ctor1: function (stack) {\r\n this.$initialize();\r\n this._stack = stack;\r\n this._version = this._stack._version;\r\n this._index = -2;\r\n this._currentElement = Bridge.getDefaultValue(T);\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n Dispose: function () {\r\n this._index = -1;\r\n },\r\n moveNext: function () {\r\n var $t, $t1;\r\n var retval;\r\n if (this._version !== this._stack._version) {\r\n throw new System.InvalidOperationException.$ctor1(\"Collection was modified; enumeration operation may not execute.\");\r\n }\r\n if (this._index === -2) {\r\n this._index = (this._stack._size - 1) | 0;\r\n retval = (this._index >= 0);\r\n if (retval) {\r\n this._currentElement = ($t = this._stack._array)[System.Array.index(this._index, $t)];\r\n }\r\n return retval;\r\n }\r\n if (this._index === -1) {\r\n return false;\r\n }\r\n\r\n retval = (((this._index = (this._index - 1) | 0)) >= 0);\r\n if (retval) {\r\n this._currentElement = ($t1 = this._stack._array)[System.Array.index(this._index, $t1)];\r\n } else {\r\n this._currentElement = Bridge.getDefaultValue(T);\r\n }\r\n return retval;\r\n },\r\n System$Collections$IEnumerator$reset: function () {\r\n if (this._version !== this._stack._version) {\r\n throw new System.InvalidOperationException.$ctor1(\"Collection was modified; enumeration operation may not execute.\");\r\n }\r\n this._index = -2;\r\n this._currentElement = Bridge.getDefaultValue(T);\r\n },\r\n getHashCode: function () {\r\n var h = Bridge.addHash([3788985113, this._stack, this._index, this._version, this._currentElement]);\r\n return h;\r\n },\r\n equals: function (o) {\r\n if (!Bridge.is(o, System.Collections.Generic.Stack$1.Enumerator(T))) {\r\n return false;\r\n }\r\n return Bridge.equals(this._stack, o._stack) && Bridge.equals(this._index, o._index) && Bridge.equals(this._version, o._version) && Bridge.equals(this._currentElement, o._currentElement);\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.Collections.Generic.Stack$1.Enumerator(T))();\r\n s._stack = this._stack;\r\n s._index = this._index;\r\n s._version = this._version;\r\n s._currentElement = this._currentElement;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n // @source HashHelpers.js\r\n\r\n Bridge.define(\"System.Collections.HashHelpers\", {\r\n statics: {\r\n fields: {\r\n HashPrime: 0,\r\n MaxPrimeArrayLength: 0,\r\n RandomSeed: 0,\r\n primes: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.HashPrime = 101;\r\n this.MaxPrimeArrayLength = 2146435069;\r\n this.RandomSeed = System.Guid.NewGuid().getHashCode();\r\n this.primes = System.Array.init([\r\n 3, \r\n 7, \r\n 11, \r\n 17, \r\n 23, \r\n 29, \r\n 37, \r\n 47, \r\n 59, \r\n 71, \r\n 89, \r\n 107, \r\n 131, \r\n 163, \r\n 197, \r\n 239, \r\n 293, \r\n 353, \r\n 431, \r\n 521, \r\n 631, \r\n 761, \r\n 919, \r\n 1103, \r\n 1327, \r\n 1597, \r\n 1931, \r\n 2333, \r\n 2801, \r\n 3371, \r\n 4049, \r\n 4861, \r\n 5839, \r\n 7013, \r\n 8419, \r\n 10103, \r\n 12143, \r\n 14591, \r\n 17519, \r\n 21023, \r\n 25229, \r\n 30293, \r\n 36353, \r\n 43627, \r\n 52361, \r\n 62851, \r\n 75431, \r\n 90523, \r\n 108631, \r\n 130363, \r\n 156437, \r\n 187751, \r\n 225307, \r\n 270371, \r\n 324449, \r\n 389357, \r\n 467237, \r\n 560689, \r\n 672827, \r\n 807403, \r\n 968897, \r\n 1162687, \r\n 1395263, \r\n 1674319, \r\n 2009191, \r\n 2411033, \r\n 2893249, \r\n 3471899, \r\n 4166287, \r\n 4999559, \r\n 5999471, \r\n 7199369\r\n ], System.Int32);\r\n }\r\n },\r\n methods: {\r\n Combine: function (h1, h2) {\r\n var rol5 = (((((h1 >>> 0) << 5) >>> 0)) | ((h1 >>> 0) >>> 27)) >>> 0;\r\n return ((((rol5 | 0) + h1) | 0)) ^ h2;\r\n },\r\n IsPrime: function (candidate) {\r\n if ((candidate & 1) !== 0) {\r\n var limit = Bridge.Int.clip32(Math.sqrt(candidate));\r\n for (var divisor = 3; divisor <= limit; divisor = (divisor + 2) | 0) {\r\n if ((candidate % divisor) === 0) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n return (candidate === 2);\r\n },\r\n GetPrime: function (min) {\r\n if (min < 0) {\r\n throw new System.ArgumentException.$ctor1(\"Hashtable's capacity overflowed and went negative. Check load factor, capacity and the current size of the table.\");\r\n }\r\n for (var i = 0; i < System.Collections.HashHelpers.primes.length; i = (i + 1) | 0) {\r\n var prime = System.Collections.HashHelpers.primes[System.Array.index(i, System.Collections.HashHelpers.primes)];\r\n if (prime >= min) {\r\n return prime;\r\n }\r\n }\r\n for (var i1 = (min | 1); i1 < 2147483647; i1 = (i1 + 2) | 0) {\r\n if (System.Collections.HashHelpers.IsPrime(i1) && ((((i1 - 1) | 0)) % System.Collections.HashHelpers.HashPrime !== 0)) {\r\n return i1;\r\n }\r\n }\r\n return min;\r\n },\r\n GetMinPrime: function () {\r\n return System.Collections.HashHelpers.primes[System.Array.index(0, System.Collections.HashHelpers.primes)];\r\n },\r\n ExpandPrime: function (oldSize) {\r\n var newSize = Bridge.Int.mul(2, oldSize);\r\n if ((newSize >>> 0) > System.Collections.HashHelpers.MaxPrimeArrayLength && System.Collections.HashHelpers.MaxPrimeArrayLength > oldSize) {\r\n return System.Collections.HashHelpers.MaxPrimeArrayLength;\r\n }\r\n return System.Collections.HashHelpers.GetPrime(newSize);\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source Collection.js\r\n\r\n Bridge.define(\"System.Collections.ObjectModel.Collection$1\", function (T) { return {\r\n inherits: [System.Collections.Generic.IList$1(T),System.Collections.IList,System.Collections.Generic.IReadOnlyList$1(T)],\r\n statics: {\r\n methods: {\r\n IsCompatibleObject: function (value) {\r\n return ((Bridge.is(value, T)) || (value == null && Bridge.getDefaultValue(T) == null));\r\n }\r\n }\r\n },\r\n fields: {\r\n items: null,\r\n _syncRoot: null\r\n },\r\n props: {\r\n Count: {\r\n get: function () {\r\n return System.Array.getCount(this.items, T);\r\n }\r\n },\r\n Items: {\r\n get: function () {\r\n return this.items;\r\n }\r\n },\r\n System$Collections$Generic$ICollection$1$IsReadOnly: {\r\n get: function () {\r\n return System.Array.getIsReadOnly(this.items, T);\r\n }\r\n },\r\n System$Collections$ICollection$IsSynchronized: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$ICollection$SyncRoot: {\r\n get: function () {\r\n if (this._syncRoot == null) {\r\n var c = Bridge.as(this.items, System.Collections.ICollection);\r\n if (c != null) {\r\n this._syncRoot = c.System$Collections$ICollection$SyncRoot;\r\n } else {\r\n throw System.NotImplemented.ByDesign;\r\n }\r\n }\r\n return this._syncRoot;\r\n }\r\n },\r\n System$Collections$IList$IsReadOnly: {\r\n get: function () {\r\n return System.Array.getIsReadOnly(this.items, T);\r\n }\r\n },\r\n System$Collections$IList$IsFixedSize: {\r\n get: function () {\r\n var list = Bridge.as(this.items, System.Collections.IList);\r\n if (list != null) {\r\n return System.Array.isFixedSize(list);\r\n }\r\n return System.Array.getIsReadOnly(this.items, T);\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Count\", [\"System$Collections$Generic$IReadOnlyCollection$1$\" + Bridge.getTypeAlias(T) + \"$Count\", \"System$Collections$Generic$IReadOnlyCollection$1$Count\"],\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"Count\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$Count\",\r\n \"getItem\", [\"System$Collections$Generic$IReadOnlyList$1$\" + Bridge.getTypeAlias(T) + \"$getItem\", \"System$Collections$Generic$IReadOnlyList$1$getItem\"],\r\n \"setItem\", [\"System$Collections$Generic$IReadOnlyList$1$\" + Bridge.getTypeAlias(T) + \"$setItem\", \"System$Collections$Generic$IReadOnlyList$1$setItem\"],\r\n \"getItem\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(T) + \"$getItem\",\r\n \"setItem\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(T) + \"$setItem\",\r\n \"add\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$add\",\r\n \"clear\", \"System$Collections$IList$clear\",\r\n \"clear\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$clear\",\r\n \"copyTo\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$copyTo\",\r\n \"contains\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$contains\",\r\n \"GetEnumerator\", [\"System$Collections$Generic$IEnumerable$1$\" + Bridge.getTypeAlias(T) + \"$GetEnumerator\", \"System$Collections$Generic$IEnumerable$1$GetEnumerator\"],\r\n \"indexOf\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(T) + \"$indexOf\",\r\n \"insert\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(T) + \"$insert\",\r\n \"remove\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$remove\",\r\n \"removeAt\", \"System$Collections$IList$removeAt\",\r\n \"removeAt\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(T) + \"$removeAt\",\r\n \"System$Collections$Generic$ICollection$1$IsReadOnly\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$IsReadOnly\"\r\n ],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n this.items = new (System.Collections.Generic.List$1(T)).ctor();\r\n },\r\n $ctor1: function (list) {\r\n this.$initialize();\r\n if (list == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.list);\r\n }\r\n this.items = list;\r\n }\r\n },\r\n methods: {\r\n getItem: function (index) {\r\n return System.Array.getItem(this.items, index, T);\r\n },\r\n setItem: function (index, value) {\r\n if (System.Array.getIsReadOnly(this.items, T)) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_ReadOnlyCollection);\r\n }\r\n\r\n if (index < 0 || index >= System.Array.getCount(this.items, T)) {\r\n System.ThrowHelper.ThrowArgumentOutOfRange_IndexException();\r\n }\r\n\r\n this.SetItem(index, value);\r\n },\r\n System$Collections$IList$getItem: function (index) {\r\n return System.Array.getItem(this.items, index, T);\r\n },\r\n System$Collections$IList$setItem: function (index, value) {\r\n System.ThrowHelper.IfNullAndNullsAreIllegalThenThrow(T, value, System.ExceptionArgument.value);\r\n\r\n try {\r\n this.setItem(index, Bridge.cast(Bridge.unbox(value, T), T));\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.InvalidCastException)) {\r\n System.ThrowHelper.ThrowWrongValueTypeArgumentException(System.Object, value, T);\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n },\r\n add: function (item) {\r\n if (System.Array.getIsReadOnly(this.items, T)) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_ReadOnlyCollection);\r\n }\r\n\r\n var index = System.Array.getCount(this.items, T);\r\n this.InsertItem(index, item);\r\n },\r\n System$Collections$IList$add: function (value) {\r\n if (System.Array.getIsReadOnly(this.items, T)) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_ReadOnlyCollection);\r\n }\r\n System.ThrowHelper.IfNullAndNullsAreIllegalThenThrow(T, value, System.ExceptionArgument.value);\r\n\r\n try {\r\n this.add(Bridge.cast(Bridge.unbox(value, T), T));\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.InvalidCastException)) {\r\n System.ThrowHelper.ThrowWrongValueTypeArgumentException(System.Object, value, T);\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n\r\n return ((this.Count - 1) | 0);\r\n },\r\n clear: function () {\r\n if (System.Array.getIsReadOnly(this.items, T)) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_ReadOnlyCollection);\r\n }\r\n\r\n this.ClearItems();\r\n },\r\n copyTo: function (array, index) {\r\n System.Array.copyTo(this.items, array, index, T);\r\n },\r\n System$Collections$ICollection$copyTo: function (array, index) {\r\n if (array == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument.array);\r\n }\r\n\r\n if (System.Array.getRank(array) !== 1) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_RankMultiDimNotSupported);\r\n }\r\n\r\n if (System.Array.getLower(array, 0) !== 0) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_NonZeroLowerBound);\r\n }\r\n\r\n if (index < 0) {\r\n System.ThrowHelper.ThrowIndexArgumentOutOfRange_NeedNonNegNumException();\r\n }\r\n\r\n if (((array.length - index) | 0) < this.Count) {\r\n System.ThrowHelper.ThrowArgumentException(System.ExceptionResource.Arg_ArrayPlusOffTooSmall);\r\n }\r\n\r\n var tArray = Bridge.as(array, System.Array.type(T));\r\n if (tArray != null) {\r\n System.Array.copyTo(this.items, tArray, index, T);\r\n } else {\r\n var targetType = (Bridge.getType(array).$elementType || null);\r\n var sourceType = T;\r\n if (!(Bridge.Reflection.isAssignableFrom(targetType, sourceType) || Bridge.Reflection.isAssignableFrom(sourceType, targetType))) {\r\n System.ThrowHelper.ThrowArgumentException_Argument_InvalidArrayType();\r\n }\r\n\r\n var objects = Bridge.as(array, System.Array.type(System.Object));\r\n if (objects == null) {\r\n System.ThrowHelper.ThrowArgumentException_Argument_InvalidArrayType();\r\n }\r\n\r\n var count = System.Array.getCount(this.items, T);\r\n try {\r\n for (var i = 0; i < count; i = (i + 1) | 0) {\r\n objects[System.Array.index(Bridge.identity(index, ((index = (index + 1) | 0))), objects)] = System.Array.getItem(this.items, i, T);\r\n }\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.ArrayTypeMismatchException)) {\r\n System.ThrowHelper.ThrowArgumentException_Argument_InvalidArrayType();\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n }\r\n },\r\n contains: function (item) {\r\n return System.Array.contains(this.items, item, T);\r\n },\r\n System$Collections$IList$contains: function (value) {\r\n if (System.Collections.ObjectModel.Collection$1(T).IsCompatibleObject(value)) {\r\n return this.contains(Bridge.cast(Bridge.unbox(value, T), T));\r\n }\r\n return false;\r\n },\r\n GetEnumerator: function () {\r\n return Bridge.getEnumerator(this.items, T);\r\n },\r\n System$Collections$IEnumerable$GetEnumerator: function () {\r\n return Bridge.getEnumerator(Bridge.cast(this.items, System.Collections.IEnumerable));\r\n },\r\n indexOf: function (item) {\r\n return System.Array.indexOf(this.items, item, 0, null, T);\r\n },\r\n System$Collections$IList$indexOf: function (value) {\r\n if (System.Collections.ObjectModel.Collection$1(T).IsCompatibleObject(value)) {\r\n return this.indexOf(Bridge.cast(Bridge.unbox(value, T), T));\r\n }\r\n return -1;\r\n },\r\n insert: function (index, item) {\r\n if (System.Array.getIsReadOnly(this.items, T)) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_ReadOnlyCollection);\r\n }\r\n\r\n if (index < 0 || index > System.Array.getCount(this.items, T)) {\r\n System.ThrowHelper.ThrowArgumentOutOfRangeException$2(System.ExceptionArgument.index, System.ExceptionResource.ArgumentOutOfRange_ListInsert);\r\n }\r\n\r\n this.InsertItem(index, item);\r\n },\r\n System$Collections$IList$insert: function (index, value) {\r\n if (System.Array.getIsReadOnly(this.items, T)) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_ReadOnlyCollection);\r\n }\r\n System.ThrowHelper.IfNullAndNullsAreIllegalThenThrow(T, value, System.ExceptionArgument.value);\r\n\r\n try {\r\n this.insert(index, Bridge.cast(Bridge.unbox(value, T), T));\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.InvalidCastException)) {\r\n System.ThrowHelper.ThrowWrongValueTypeArgumentException(System.Object, value, T);\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n },\r\n remove: function (item) {\r\n if (System.Array.getIsReadOnly(this.items, T)) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_ReadOnlyCollection);\r\n }\r\n\r\n var index = System.Array.indexOf(this.items, item, 0, null, T);\r\n if (index < 0) {\r\n return false;\r\n }\r\n this.RemoveItem(index);\r\n return true;\r\n },\r\n System$Collections$IList$remove: function (value) {\r\n if (System.Array.getIsReadOnly(this.items, T)) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_ReadOnlyCollection);\r\n }\r\n\r\n if (System.Collections.ObjectModel.Collection$1(T).IsCompatibleObject(value)) {\r\n this.remove(Bridge.cast(Bridge.unbox(value, T), T));\r\n }\r\n },\r\n removeAt: function (index) {\r\n if (System.Array.getIsReadOnly(this.items, T)) {\r\n System.ThrowHelper.ThrowNotSupportedException$1(System.ExceptionResource.NotSupported_ReadOnlyCollection);\r\n }\r\n\r\n if (index < 0 || index >= System.Array.getCount(this.items, T)) {\r\n System.ThrowHelper.ThrowArgumentOutOfRange_IndexException();\r\n }\r\n\r\n this.RemoveItem(index);\r\n },\r\n ClearItems: function () {\r\n System.Array.clear(this.items, T);\r\n },\r\n InsertItem: function (index, item) {\r\n System.Array.insert(this.items, index, item, T);\r\n },\r\n RemoveItem: function (index) {\r\n System.Array.removeAt(this.items, index, T);\r\n },\r\n SetItem: function (index, item) {\r\n System.Array.setItem(this.items, index, item, T);\r\n }\r\n }\r\n }; });\r\n\r\n // @source ReadOnlyCollection.js\r\n\r\n Bridge.define(\"System.Collections.ObjectModel.ReadOnlyCollection$1\", function (T) { return {\r\n inherits: [System.Collections.Generic.IList$1(T),System.Collections.IList,System.Collections.Generic.IReadOnlyList$1(T)],\r\n statics: {\r\n methods: {\r\n IsCompatibleObject: function (value) {\r\n return ((Bridge.is(value, T)) || (value == null && Bridge.getDefaultValue(T) == null));\r\n }\r\n }\r\n },\r\n fields: {\r\n list: null\r\n },\r\n props: {\r\n Count: {\r\n get: function () {\r\n return System.Array.getCount(this.list, T);\r\n }\r\n },\r\n System$Collections$ICollection$IsSynchronized: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n System$Collections$ICollection$SyncRoot: {\r\n get: function () {\r\n return this;\r\n }\r\n },\r\n Items: {\r\n get: function () {\r\n return this.list;\r\n }\r\n },\r\n System$Collections$IList$IsFixedSize: {\r\n get: function () {\r\n return true;\r\n }\r\n },\r\n System$Collections$Generic$ICollection$1$IsReadOnly: {\r\n get: function () {\r\n return true;\r\n }\r\n },\r\n System$Collections$IList$IsReadOnly: {\r\n get: function () {\r\n return true;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Count\", [\"System$Collections$Generic$IReadOnlyCollection$1$\" + Bridge.getTypeAlias(T) + \"$Count\", \"System$Collections$Generic$IReadOnlyCollection$1$Count\"],\r\n \"Count\", \"System$Collections$ICollection$Count\",\r\n \"Count\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$Count\",\r\n \"getItem\", [\"System$Collections$Generic$IReadOnlyList$1$\" + Bridge.getTypeAlias(T) + \"$getItem\", \"System$Collections$Generic$IReadOnlyList$1$getItem\"],\r\n \"contains\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$contains\",\r\n \"copyTo\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$copyTo\",\r\n \"GetEnumerator\", [\"System$Collections$Generic$IEnumerable$1$\" + Bridge.getTypeAlias(T) + \"$GetEnumerator\", \"System$Collections$Generic$IEnumerable$1$GetEnumerator\"],\r\n \"indexOf\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(T) + \"$indexOf\",\r\n \"System$Collections$Generic$ICollection$1$IsReadOnly\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$IsReadOnly\",\r\n \"System$Collections$Generic$IList$1$getItem\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(T) + \"$getItem\",\r\n \"System$Collections$Generic$IList$1$setItem\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(T) + \"$setItem\",\r\n \"System$Collections$Generic$ICollection$1$add\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$add\",\r\n \"System$Collections$Generic$ICollection$1$clear\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$clear\",\r\n \"System$Collections$Generic$IList$1$insert\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(T) + \"$insert\",\r\n \"System$Collections$Generic$ICollection$1$remove\", \"System$Collections$Generic$ICollection$1$\" + Bridge.getTypeAlias(T) + \"$remove\",\r\n \"System$Collections$Generic$IList$1$removeAt\", \"System$Collections$Generic$IList$1$\" + Bridge.getTypeAlias(T) + \"$removeAt\"\r\n ],\r\n ctors: {\r\n ctor: function (list) {\r\n this.$initialize();\r\n if (list == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"list\");\r\n }\r\n this.list = list;\r\n }\r\n },\r\n methods: {\r\n getItem: function (index) {\r\n return System.Array.getItem(this.list, index, T);\r\n },\r\n System$Collections$Generic$IList$1$getItem: function (index) {\r\n return System.Array.getItem(this.list, index, T);\r\n },\r\n System$Collections$Generic$IList$1$setItem: function (index, value) {\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n System$Collections$IList$getItem: function (index) {\r\n return System.Array.getItem(this.list, index, T);\r\n },\r\n System$Collections$IList$setItem: function (index, value) {\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n contains: function (value) {\r\n return System.Array.contains(this.list, value, T);\r\n },\r\n System$Collections$IList$contains: function (value) {\r\n if (System.Collections.ObjectModel.ReadOnlyCollection$1(T).IsCompatibleObject(value)) {\r\n return this.contains(Bridge.cast(Bridge.unbox(value, T), T));\r\n }\r\n return false;\r\n },\r\n copyTo: function (array, index) {\r\n System.Array.copyTo(this.list, array, index, T);\r\n },\r\n System$Collections$ICollection$copyTo: function (array, index) {\r\n if (array == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n\r\n if (System.Array.getRank(array) !== 1) {\r\n throw new System.ArgumentException.$ctor1(\"array\");\r\n }\r\n\r\n if (System.Array.getLower(array, 0) !== 0) {\r\n throw new System.ArgumentException.$ctor1(\"array\");\r\n }\r\n\r\n if (index < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n\r\n if (((array.length - index) | 0) < this.Count) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n var items = Bridge.as(array, System.Array.type(T));\r\n if (items != null) {\r\n System.Array.copyTo(this.list, items, index, T);\r\n } else {\r\n var targetType = (Bridge.getType(array).$elementType || null);\r\n var sourceType = T;\r\n if (!(Bridge.Reflection.isAssignableFrom(targetType, sourceType) || Bridge.Reflection.isAssignableFrom(sourceType, targetType))) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n var objects = Bridge.as(array, System.Array.type(System.Object));\r\n if (objects == null) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n var count = System.Array.getCount(this.list, T);\r\n for (var i = 0; i < count; i = (i + 1) | 0) {\r\n objects[System.Array.index(Bridge.identity(index, ((index = (index + 1) | 0))), objects)] = System.Array.getItem(this.list, i, T);\r\n }\r\n }\r\n },\r\n GetEnumerator: function () {\r\n return Bridge.getEnumerator(this.list, T);\r\n },\r\n System$Collections$IEnumerable$GetEnumerator: function () {\r\n return Bridge.getEnumerator(Bridge.cast(this.list, System.Collections.IEnumerable));\r\n },\r\n indexOf: function (value) {\r\n return System.Array.indexOf(this.list, value, 0, null, T);\r\n },\r\n System$Collections$IList$indexOf: function (value) {\r\n if (System.Collections.ObjectModel.ReadOnlyCollection$1(T).IsCompatibleObject(value)) {\r\n return this.indexOf(Bridge.cast(Bridge.unbox(value, T), T));\r\n }\r\n return -1;\r\n },\r\n System$Collections$Generic$ICollection$1$add: function (value) {\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n System$Collections$IList$add: function (value) {\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n System$Collections$Generic$ICollection$1$clear: function () {\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n System$Collections$IList$clear: function () {\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n System$Collections$Generic$IList$1$insert: function (index, value) {\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n System$Collections$IList$insert: function (index, value) {\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n System$Collections$Generic$ICollection$1$remove: function (value) {\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n System$Collections$IList$remove: function (value) {\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n System$Collections$Generic$IList$1$removeAt: function (index) {\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n System$Collections$IList$removeAt: function (index) {\r\n throw new System.NotSupportedException.ctor();\r\n }\r\n }\r\n }; });\r\n\r\n // @source BrowsableAttribute.js\r\n\r\n Bridge.define(\"System.ComponentModel.BrowsableAttribute\", {\r\n inherits: [System.Attribute],\r\n statics: {\r\n fields: {\r\n yes: null,\r\n no: null,\r\n default: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.yes = new System.ComponentModel.BrowsableAttribute(true);\r\n this.no = new System.ComponentModel.BrowsableAttribute(false);\r\n this.default = System.ComponentModel.BrowsableAttribute.yes;\r\n }\r\n }\r\n },\r\n fields: {\r\n browsable: false\r\n },\r\n props: {\r\n Browsable: {\r\n get: function () {\r\n return this.browsable;\r\n }\r\n }\r\n },\r\n ctors: {\r\n init: function () {\r\n this.browsable = true;\r\n },\r\n ctor: function (browsable) {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n this.browsable = browsable;\r\n }\r\n },\r\n methods: {\r\n equals: function (obj) {\r\n if (Bridge.referenceEquals(obj, this)) {\r\n return true;\r\n }\r\n\r\n var other = Bridge.as(obj, System.ComponentModel.BrowsableAttribute);\r\n\r\n return (other != null) && other.Browsable === this.browsable;\r\n },\r\n getHashCode: function () {\r\n return Bridge.getHashCode(this.browsable);\r\n }\r\n }\r\n });\r\n\r\n // @source DefaultValueAttribute.js\r\n\r\n Bridge.define(\"System.ComponentModel.DefaultValueAttribute\", {\r\n inherits: [System.Attribute],\r\n fields: {\r\n _value: null\r\n },\r\n props: {\r\n Value: {\r\n get: function () {\r\n return this._value;\r\n }\r\n }\r\n },\r\n ctors: {\r\n $ctor11: function (type, value) {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n try {\r\n if ((type.prototype instanceof System.Enum)) {\r\n this._value = System.Enum.parse(type, value, true);\r\n } else if (Bridge.referenceEquals(type, System.TimeSpan)) {\r\n throw System.NotImplemented.ByDesign;\r\n } else {\r\n throw System.NotImplemented.ByDesign;\r\n }\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n }\r\n },\r\n $ctor2: function (value) {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n this._value = Bridge.box(value, System.Char, String.fromCharCode, System.Char.getHashCode);\r\n },\r\n $ctor1: function (value) {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n this._value = Bridge.box(value, System.Byte);\r\n },\r\n $ctor4: function (value) {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n this._value = Bridge.box(value, System.Int16);\r\n },\r\n $ctor5: function (value) {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n this._value = Bridge.box(value, System.Int32);\r\n },\r\n $ctor6: function (value) {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n this._value = value;\r\n },\r\n $ctor9: function (value) {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n this._value = Bridge.box(value, System.Single, System.Single.format, System.Single.getHashCode);\r\n },\r\n $ctor3: function (value) {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n this._value = Bridge.box(value, System.Double, System.Double.format, System.Double.getHashCode);\r\n },\r\n ctor: function (value) {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n this._value = Bridge.box(value, System.Boolean, System.Boolean.toString);\r\n },\r\n $ctor10: function (value) {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n this._value = value;\r\n },\r\n $ctor7: function (value) {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n this._value = value;\r\n },\r\n $ctor8: function (value) {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n this._value = Bridge.box(value, System.SByte);\r\n },\r\n $ctor12: function (value) {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n this._value = Bridge.box(value, System.UInt16);\r\n },\r\n $ctor13: function (value) {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n this._value = Bridge.box(value, System.UInt32);\r\n },\r\n $ctor14: function (value) {\r\n this.$initialize();\r\n System.Attribute.ctor.call(this);\r\n this._value = value;\r\n }\r\n },\r\n methods: {\r\n equals: function (obj) {\r\n if (Bridge.referenceEquals(obj, this)) {\r\n return true;\r\n }\r\n\r\n var other = Bridge.as(obj, System.ComponentModel.DefaultValueAttribute);\r\n\r\n if (other != null) {\r\n if (this.Value != null) {\r\n return Bridge.equals(this.Value, other.Value);\r\n } else {\r\n return (other.Value == null);\r\n }\r\n }\r\n return false;\r\n },\r\n getHashCode: function () {\r\n return Bridge.getHashCode(this);\r\n },\r\n setValue: function (value) {\r\n this._value = value;\r\n }\r\n }\r\n });\r\n\r\n // @source Console.js\r\n\r\n Bridge.define(\"System.Console\", {\r\n statics: {\r\n methods: {\r\n Write: function (value) {\r\n var con = Bridge.global.console;\r\n\r\n if (con && con.log) {\r\n con.log(!Bridge.isDefined(Bridge.unbox(value)) ? \"\" : Bridge.unbox(value));\r\n }\r\n },\r\n WriteLine: function (value) {\r\n var con = Bridge.global.console;\r\n\r\n if (con && con.log) {\r\n con.log(!Bridge.isDefined(Bridge.unbox(value)) ? \"\" : Bridge.unbox(value));\r\n }\r\n },\r\n TransformChars: function (buffer, all, index, count) {\r\n if (all !== 1) {\r\n if (buffer == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"buffer\");\r\n }\r\n\r\n if (index < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"index\", \"less than zero\");\r\n }\r\n\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"count\", \"less than zero\");\r\n }\r\n\r\n if (((index + count) | 0) > buffer.length) {\r\n throw new System.ArgumentException.$ctor1(\"index plus count specify a position that is not within buffer.\");\r\n }\r\n }\r\n\r\n var s = \"\";\r\n if (buffer != null) {\r\n if (all === 1) {\r\n index = 0;\r\n count = buffer.length;\r\n }\r\n\r\n for (var i = index; i < ((index + count) | 0); i = (i + 1) | 0) {\r\n s = (s || \"\") + String.fromCharCode(buffer[System.Array.index(i, buffer)]);\r\n }\r\n }\r\n\r\n return s;\r\n },\r\n Clear: function () {\r\n var con = Bridge.global.console;\r\n\r\n if (con && con.clear) {\r\n con.clear();\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source TokenType.js\r\n\r\n Bridge.define(\"System.TokenType\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n NumberToken: 1,\r\n YearNumberToken: 2,\r\n Am: 3,\r\n Pm: 4,\r\n MonthToken: 5,\r\n EndOfString: 6,\r\n DayOfWeekToken: 7,\r\n TimeZoneToken: 8,\r\n EraToken: 9,\r\n DateWordToken: 10,\r\n UnknownToken: 11,\r\n HebrewNumber: 12,\r\n JapaneseEraToken: 13,\r\n TEraToken: 14,\r\n IgnorableSymbol: 15,\r\n SEP_Unk: 256,\r\n SEP_End: 512,\r\n SEP_Space: 768,\r\n SEP_Am: 1024,\r\n SEP_Pm: 1280,\r\n SEP_Date: 1536,\r\n SEP_Time: 1792,\r\n SEP_YearSuff: 2048,\r\n SEP_MonthSuff: 2304,\r\n SEP_DaySuff: 2560,\r\n SEP_HourSuff: 2816,\r\n SEP_MinuteSuff: 3072,\r\n SEP_SecondSuff: 3328,\r\n SEP_LocalTimeMark: 3584,\r\n SEP_DateOrOffset: 3840,\r\n RegularTokenMask: 255,\r\n SeparatorTokenMask: 65280\r\n }\r\n }\r\n });\r\n\r\n // @source UnitySerializationHolder.js\r\n\r\n Bridge.define(\"System.UnitySerializationHolder\", {\r\n inherits: [System.Runtime.Serialization.ISerializable,System.Runtime.Serialization.IObjectReference],\r\n statics: {\r\n fields: {\r\n NullUnity: 0\r\n },\r\n ctors: {\r\n init: function () {\r\n this.NullUnity = 2;\r\n }\r\n }\r\n },\r\n alias: [\"GetRealObject\", \"System$Runtime$Serialization$IObjectReference$GetRealObject\"],\r\n methods: {\r\n GetRealObject: function (context) {\r\n throw System.NotImplemented.ByDesign;\r\n\r\n }\r\n }\r\n });\r\n\r\n // @source DateTimeKind.js\r\n\r\n Bridge.define(\"System.DateTimeKind\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n Unspecified: 0,\r\n Utc: 1,\r\n Local: 2\r\n }\r\n }\r\n });\r\n\r\n // @source DateTimeOffset.js\r\n\r\n Bridge.define(\"System.DateTimeOffset\", {\r\n inherits: function () { return [System.IComparable,System.IFormattable,System.Runtime.Serialization.ISerializable,System.Runtime.Serialization.IDeserializationCallback,System.IComparable$1(System.DateTimeOffset),System.IEquatable$1(System.DateTimeOffset)]; },\r\n $kind: \"struct\",\r\n statics: {\r\n fields: {\r\n MaxOffset: System.Int64(0),\r\n MinOffset: System.Int64(0),\r\n UnixEpochTicks: System.Int64(0),\r\n UnixEpochSeconds: System.Int64(0),\r\n UnixEpochMilliseconds: System.Int64(0),\r\n MinValue: null,\r\n MaxValue: null\r\n },\r\n props: {\r\n Now: {\r\n get: function () {\r\n return new System.DateTimeOffset.$ctor1(System.DateTime.getNow());\r\n }\r\n },\r\n UtcNow: {\r\n get: function () {\r\n return new System.DateTimeOffset.$ctor1(System.DateTime.getUtcNow());\r\n }\r\n }\r\n },\r\n ctors: {\r\n init: function () {\r\n this.MinValue = new System.DateTimeOffset();\r\n this.MaxValue = new System.DateTimeOffset();\r\n this.MaxOffset = System.Int64([1488826368,117]);\r\n this.MinOffset = System.Int64([-1488826368,-118]);\r\n this.UnixEpochTicks = System.Int64([-139100160,144670709]);\r\n this.UnixEpochSeconds = System.Int64([2006054656,14]);\r\n this.UnixEpochMilliseconds = System.Int64([304928768,14467]);\r\n this.MinValue = new System.DateTimeOffset.$ctor5(System.DateTime.getMinTicks(), System.TimeSpan.zero);\r\n this.MaxValue = new System.DateTimeOffset.$ctor5(System.DateTime.getMaxTicks(), System.TimeSpan.zero);\r\n }\r\n },\r\n methods: {\r\n Compare: function (first, second) {\r\n return Bridge.compare(first.UtcDateTime, second.UtcDateTime);\r\n },\r\n Equals: function (first, second) {\r\n return Bridge.equalsT(first.UtcDateTime, second.UtcDateTime);\r\n },\r\n FromFileTime: function (fileTime) {\r\n return new System.DateTimeOffset.$ctor1(System.DateTime.FromFileTime(fileTime));\r\n },\r\n FromUnixTimeSeconds: function (seconds) {\r\n var MinSeconds = System.Int64([-2006054656,-15]);\r\n var MaxSeconds = System.Int64([-769665,58]);\r\n\r\n if (seconds.lt(MinSeconds) || seconds.gt(MaxSeconds)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"seconds\", System.String.format(System.Environment.GetResourceString(\"ArgumentOutOfRange_Range\"), MinSeconds, MaxSeconds));\r\n }\r\n\r\n var ticks = seconds.mul(System.Int64(10000000)).add(System.DateTimeOffset.UnixEpochTicks);\r\n return new System.DateTimeOffset.$ctor5(ticks, System.TimeSpan.zero);\r\n },\r\n FromUnixTimeMilliseconds: function (milliseconds) {\r\n var MinMilliseconds = System.Int64([-304928768,-14468]);\r\n var MaxMilliseconds = System.Int64([-769664001,58999]);\r\n\r\n if (milliseconds.lt(MinMilliseconds) || milliseconds.gt(MaxMilliseconds)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"milliseconds\", System.String.format(System.Environment.GetResourceString(\"ArgumentOutOfRange_Range\"), MinMilliseconds, MaxMilliseconds));\r\n }\r\n\r\n var ticks = milliseconds.mul(System.Int64(10000)).add(System.DateTimeOffset.UnixEpochTicks);\r\n return new System.DateTimeOffset.$ctor5(ticks, System.TimeSpan.zero);\r\n },\r\n Parse: function (input) {\r\n var offset = { };\r\n var dateResult = System.DateTimeParse.Parse$1(input, System.Globalization.DateTimeFormatInfo.currentInfo, 0, offset);\r\n return new System.DateTimeOffset.$ctor5(System.DateTime.getTicks(dateResult), offset.v);\r\n },\r\n Parse$1: function (input, formatProvider) {\r\n return System.DateTimeOffset.Parse$2(input, formatProvider, 0);\r\n },\r\n Parse$2: function (input, formatProvider, styles) {\r\n throw System.NotImplemented.ByDesign;\r\n },\r\n ParseExact: function (input, format, formatProvider) {\r\n return System.DateTimeOffset.ParseExact$1(input, format, formatProvider, 0);\r\n },\r\n ParseExact$1: function (input, format, formatProvider, styles) {\r\n throw System.NotImplemented.ByDesign;\r\n },\r\n TryParse: function (input, result) {\r\n var offset = { };\r\n var dateResult = { };\r\n var parsed = System.DateTimeParse.TryParse$1(input, System.Globalization.DateTimeFormatInfo.currentInfo, 0, dateResult, offset);\r\n result.v = new System.DateTimeOffset.$ctor5(System.DateTime.getTicks(dateResult.v), offset.v);\r\n return parsed;\r\n },\r\n ValidateOffset: function (offset) {\r\n var ticks = offset.getTicks();\r\n if (ticks.mod(System.Int64(600000000)).ne(System.Int64(0))) {\r\n throw new System.ArgumentException.$ctor3(System.Environment.GetResourceString(\"Argument_OffsetPrecision\"), \"offset\");\r\n }\r\n if (ticks.lt(System.DateTimeOffset.MinOffset) || ticks.gt(System.DateTimeOffset.MaxOffset)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"offset\", System.Environment.GetResourceString(\"Argument_OffsetOutOfRange\"));\r\n }\r\n return System.Int64.clip16(offset.getTicks().div(System.Int64(600000000)));\r\n },\r\n ValidateDate: function (dateTime, offset) {\r\n var utcTicks = System.DateTime.getTicks(dateTime).sub(offset.getTicks());\r\n if (utcTicks.lt(System.DateTime.getMinTicks()) || utcTicks.gt(System.DateTime.getMaxTicks())) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"offset\", System.Environment.GetResourceString(\"Argument_UTCOutOfRange\"));\r\n }\r\n return System.DateTime.create$2(utcTicks, 0);\r\n },\r\n op_Implicit: function (dateTime) {\r\n return new System.DateTimeOffset.$ctor1(dateTime);\r\n },\r\n op_Addition: function (dateTimeOffset, timeSpan) {\r\n return new System.DateTimeOffset.$ctor2(System.DateTime.adddt(dateTimeOffset.ClockDateTime, timeSpan), dateTimeOffset.Offset);\r\n },\r\n op_Subtraction: function (dateTimeOffset, timeSpan) {\r\n return new System.DateTimeOffset.$ctor2(System.DateTime.subdt(dateTimeOffset.ClockDateTime, timeSpan), dateTimeOffset.Offset);\r\n },\r\n op_Subtraction$1: function (left, right) {\r\n return System.DateTime.subdd(left.UtcDateTime, right.UtcDateTime);\r\n },\r\n op_Equality: function (left, right) {\r\n return Bridge.equals(left.UtcDateTime, right.UtcDateTime);\r\n },\r\n op_Inequality: function (left, right) {\r\n return !Bridge.equals(left.UtcDateTime, right.UtcDateTime);\r\n },\r\n op_LessThan: function (left, right) {\r\n return System.DateTime.lt(left.UtcDateTime, right.UtcDateTime);\r\n },\r\n op_LessThanOrEqual: function (left, right) {\r\n return System.DateTime.lte(left.UtcDateTime, right.UtcDateTime);\r\n },\r\n op_GreaterThan: function (left, right) {\r\n return System.DateTime.gt(left.UtcDateTime, right.UtcDateTime);\r\n },\r\n op_GreaterThanOrEqual: function (left, right) {\r\n return System.DateTime.gte(left.UtcDateTime, right.UtcDateTime);\r\n },\r\n getDefaultValue: function () { return new System.DateTimeOffset(); }\r\n }\r\n },\r\n fields: {\r\n m_dateTime: null,\r\n m_offsetMinutes: 0\r\n },\r\n props: {\r\n DateTime: {\r\n get: function () {\r\n return this.ClockDateTime;\r\n }\r\n },\r\n UtcDateTime: {\r\n get: function () {\r\n return System.DateTime.specifyKind(this.m_dateTime, 1);\r\n }\r\n },\r\n LocalDateTime: {\r\n get: function () {\r\n return System.DateTime.toLocalTime(this.UtcDateTime);\r\n }\r\n },\r\n ClockDateTime: {\r\n get: function () {\r\n return System.DateTime.create$2(System.DateTime.getTicks((System.DateTime.adddt(this.m_dateTime, this.Offset))), 0);\r\n }\r\n },\r\n Date: {\r\n get: function () {\r\n return System.DateTime.getDate(this.ClockDateTime);\r\n }\r\n },\r\n Day: {\r\n get: function () {\r\n return System.DateTime.getDay(this.ClockDateTime);\r\n }\r\n },\r\n DayOfWeek: {\r\n get: function () {\r\n return System.DateTime.getDayOfWeek(this.ClockDateTime);\r\n }\r\n },\r\n DayOfYear: {\r\n get: function () {\r\n return System.DateTime.getDayOfYear(this.ClockDateTime);\r\n }\r\n },\r\n Hour: {\r\n get: function () {\r\n return System.DateTime.getHour(this.ClockDateTime);\r\n }\r\n },\r\n Millisecond: {\r\n get: function () {\r\n return System.DateTime.getMillisecond(this.ClockDateTime);\r\n }\r\n },\r\n Minute: {\r\n get: function () {\r\n return System.DateTime.getMinute(this.ClockDateTime);\r\n }\r\n },\r\n Month: {\r\n get: function () {\r\n return System.DateTime.getMonth(this.ClockDateTime);\r\n }\r\n },\r\n Offset: {\r\n get: function () {\r\n return new System.TimeSpan(0, this.m_offsetMinutes, 0);\r\n }\r\n },\r\n Second: {\r\n get: function () {\r\n return System.DateTime.getSecond(this.ClockDateTime);\r\n }\r\n },\r\n Ticks: {\r\n get: function () {\r\n return System.DateTime.getTicks(this.ClockDateTime);\r\n }\r\n },\r\n UtcTicks: {\r\n get: function () {\r\n return System.DateTime.getTicks(this.UtcDateTime);\r\n }\r\n },\r\n TimeOfDay: {\r\n get: function () {\r\n return System.DateTime.getTimeOfDay(this.ClockDateTime);\r\n }\r\n },\r\n Year: {\r\n get: function () {\r\n return System.DateTime.getYear(this.ClockDateTime);\r\n }\r\n }\r\n },\r\n alias: [\r\n \"compareTo\", [\"System$IComparable$1$System$DateTimeOffset$compareTo\", \"System$IComparable$1$compareTo\"],\r\n \"equalsT\", \"System$IEquatable$1$System$DateTimeOffset$equalsT\",\r\n \"format\", \"System$IFormattable$format\"\r\n ],\r\n ctors: {\r\n init: function () {\r\n this.m_dateTime = System.DateTime.getDefaultValue();\r\n },\r\n $ctor5: function (ticks, offset) {\r\n this.$initialize();\r\n this.m_offsetMinutes = System.DateTimeOffset.ValidateOffset(offset);\r\n var dateTime = System.DateTime.create$2(ticks);\r\n this.m_dateTime = System.DateTimeOffset.ValidateDate(dateTime, offset);\r\n },\r\n $ctor1: function (dateTime) {\r\n this.$initialize();\r\n var offset;\r\n\r\n offset = new System.TimeSpan(System.Int64(0));\r\n this.m_offsetMinutes = System.DateTimeOffset.ValidateOffset(offset);\r\n this.m_dateTime = System.DateTimeOffset.ValidateDate(dateTime, offset);\r\n },\r\n $ctor2: function (dateTime, offset) {\r\n this.$initialize();\r\n this.m_offsetMinutes = System.DateTimeOffset.ValidateOffset(offset);\r\n this.m_dateTime = System.DateTimeOffset.ValidateDate(dateTime, offset);\r\n },\r\n $ctor4: function (year, month, day, hour, minute, second, offset) {\r\n this.$initialize();\r\n this.m_offsetMinutes = System.DateTimeOffset.ValidateOffset(offset);\r\n this.m_dateTime = System.DateTimeOffset.ValidateDate(System.DateTime.create(year, month, day, hour, minute, second), offset);\r\n },\r\n $ctor3: function (year, month, day, hour, minute, second, millisecond, offset) {\r\n this.$initialize();\r\n this.m_offsetMinutes = System.DateTimeOffset.ValidateOffset(offset);\r\n this.m_dateTime = System.DateTimeOffset.ValidateDate(System.DateTime.create(year, month, day, hour, minute, second, millisecond), offset);\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n ToOffset: function (offset) {\r\n return new System.DateTimeOffset.$ctor5(System.DateTime.getTicks((System.DateTime.adddt(this.m_dateTime, offset))), offset);\r\n },\r\n Add: function (timeSpan) {\r\n return new System.DateTimeOffset.$ctor2(System.DateTime.add(this.ClockDateTime, timeSpan), this.Offset);\r\n },\r\n AddDays: function (days) {\r\n return new System.DateTimeOffset.$ctor2(System.DateTime.addDays(this.ClockDateTime, days), this.Offset);\r\n },\r\n AddHours: function (hours) {\r\n return new System.DateTimeOffset.$ctor2(System.DateTime.addHours(this.ClockDateTime, hours), this.Offset);\r\n },\r\n AddMilliseconds: function (milliseconds) {\r\n return new System.DateTimeOffset.$ctor2(System.DateTime.addMilliseconds(this.ClockDateTime, milliseconds), this.Offset);\r\n },\r\n AddMinutes: function (minutes) {\r\n return new System.DateTimeOffset.$ctor2(System.DateTime.addMinutes(this.ClockDateTime, minutes), this.Offset);\r\n },\r\n AddMonths: function (months) {\r\n return new System.DateTimeOffset.$ctor2(System.DateTime.addMonths(this.ClockDateTime, months), this.Offset);\r\n },\r\n AddSeconds: function (seconds) {\r\n return new System.DateTimeOffset.$ctor2(System.DateTime.addSeconds(this.ClockDateTime, seconds), this.Offset);\r\n },\r\n AddTicks: function (ticks) {\r\n return new System.DateTimeOffset.$ctor2(System.DateTime.addTicks(this.ClockDateTime, ticks), this.Offset);\r\n },\r\n AddYears: function (years) {\r\n return new System.DateTimeOffset.$ctor2(System.DateTime.addYears(this.ClockDateTime, years), this.Offset);\r\n },\r\n System$IComparable$compareTo: function (obj) {\r\n if (obj == null) {\r\n return 1;\r\n }\r\n if (!(Bridge.is(obj, System.DateTimeOffset))) {\r\n throw new System.ArgumentException.$ctor1(System.Environment.GetResourceString(\"Arg_MustBeDateTimeOffset\"));\r\n }\r\n\r\n var objUtc = System.Nullable.getValue(Bridge.cast(Bridge.unbox(obj, System.DateTimeOffset), System.DateTimeOffset)).UtcDateTime;\r\n var utc = this.UtcDateTime;\r\n if (System.DateTime.gt(utc, objUtc)) {\r\n return 1;\r\n }\r\n if (System.DateTime.lt(utc, objUtc)) {\r\n return -1;\r\n }\r\n return 0;\r\n },\r\n compareTo: function (other) {\r\n var otherUtc = other.UtcDateTime;\r\n var utc = this.UtcDateTime;\r\n if (System.DateTime.gt(utc, otherUtc)) {\r\n return 1;\r\n }\r\n if (System.DateTime.lt(utc, otherUtc)) {\r\n return -1;\r\n }\r\n return 0;\r\n },\r\n equals: function (obj) {\r\n if (Bridge.is(obj, System.DateTimeOffset)) {\r\n return Bridge.equalsT(this.UtcDateTime, System.Nullable.getValue(Bridge.cast(Bridge.unbox(obj, System.DateTimeOffset), System.DateTimeOffset)).UtcDateTime);\r\n }\r\n return false;\r\n },\r\n equalsT: function (other) {\r\n return Bridge.equalsT(this.UtcDateTime, other.UtcDateTime);\r\n },\r\n EqualsExact: function (other) {\r\n return (Bridge.equals(this.ClockDateTime, other.ClockDateTime) && System.TimeSpan.eq(this.Offset, other.Offset) && System.DateTime.getKind(this.ClockDateTime) === System.DateTime.getKind(other.ClockDateTime));\r\n },\r\n System$Runtime$Serialization$IDeserializationCallback$OnDeserialization: function (sender) {\r\n try {\r\n this.m_offsetMinutes = System.DateTimeOffset.ValidateOffset(this.Offset);\r\n this.m_dateTime = System.DateTimeOffset.ValidateDate(this.ClockDateTime, this.Offset);\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n var e;\r\n if (Bridge.is($e1, System.ArgumentException)) {\r\n e = $e1;\r\n throw new System.Runtime.Serialization.SerializationException.$ctor2(System.Environment.GetResourceString(\"Serialization_InvalidData\"), e);\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n },\r\n getHashCode: function () {\r\n return Bridge.getHashCode(this.UtcDateTime);\r\n },\r\n Subtract$1: function (value) {\r\n return System.DateTime.subdd(this.UtcDateTime, value.UtcDateTime);\r\n },\r\n Subtract: function (value) {\r\n return new System.DateTimeOffset.$ctor2(System.DateTime.subtract(this.ClockDateTime, value), this.Offset);\r\n },\r\n ToFileTime: function () {\r\n return System.DateTime.ToFileTime(this.UtcDateTime);\r\n },\r\n ToUnixTimeSeconds: function () {\r\n var seconds = System.DateTime.getTicks(this.UtcDateTime).div(System.Int64(10000000));\r\n return seconds.sub(System.DateTimeOffset.UnixEpochSeconds);\r\n },\r\n ToUnixTimeMilliseconds: function () {\r\n var milliseconds = System.DateTime.getTicks(this.UtcDateTime).div(System.Int64(10000));\r\n return milliseconds.sub(System.DateTimeOffset.UnixEpochMilliseconds);\r\n },\r\n ToLocalTime: function () {\r\n return this.ToLocalTime$1(false);\r\n },\r\n ToLocalTime$1: function (throwOnOverflow) {\r\n return new System.DateTimeOffset.$ctor1(System.DateTime.toLocalTime(this.UtcDateTime, throwOnOverflow));\r\n },\r\n toString: function () {\r\n return System.DateTime.format(System.DateTime.specifyKind(this.ClockDateTime, 2));\r\n\r\n },\r\n ToString$1: function (format) {\r\n return System.DateTime.format(System.DateTime.specifyKind(this.ClockDateTime, 2), format);\r\n\r\n },\r\n ToString: function (formatProvider) {\r\n return System.DateTime.format(System.DateTime.specifyKind(this.ClockDateTime, 2), null, formatProvider);\r\n\r\n },\r\n format: function (format, formatProvider) {\r\n return System.DateTime.format(System.DateTime.specifyKind(this.ClockDateTime, 2), format, formatProvider);\r\n\r\n },\r\n ToUniversalTime: function () {\r\n return new System.DateTimeOffset.$ctor1(this.UtcDateTime);\r\n },\r\n $clone: function (to) {\r\n var s = to || new System.DateTimeOffset();\r\n s.m_dateTime = this.m_dateTime;\r\n s.m_offsetMinutes = this.m_offsetMinutes;\r\n return s;\r\n }\r\n }\r\n });\r\n\r\n // @source DateTimeParse.js\r\n\r\n Bridge.define(\"System.DateTimeParse\", {\r\n statics: {\r\n methods: {\r\n TryParseExact: function (s, format, dtfi, style, result) {\r\n return System.DateTime.tryParseExact(s, format, null, result);\r\n\r\n },\r\n Parse: function (s, dtfi, styles) {\r\n return System.DateTime.parse(s, dtfi);\r\n },\r\n Parse$1: function (s, dtfi, styles, offset) {\r\n throw System.NotImplemented.ByDesign;\r\n\r\n },\r\n TryParse: function (s, dtfi, styles, result) {\r\n return System.DateTime.tryParse(s, null, result);\r\n\r\n },\r\n TryParse$1: function (s, dtfi, styles, result, offset) {\r\n throw System.NotImplemented.ByDesign;\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source DateTimeResult.js\r\n\r\n Bridge.define(\"System.DateTimeResult\", {\r\n $kind: \"struct\",\r\n statics: {\r\n methods: {\r\n getDefaultValue: function () { return new System.DateTimeResult(); }\r\n }\r\n },\r\n fields: {\r\n Year: 0,\r\n Month: 0,\r\n Day: 0,\r\n Hour: 0,\r\n Minute: 0,\r\n Second: 0,\r\n fraction: 0,\r\n era: 0,\r\n flags: 0,\r\n timeZoneOffset: null,\r\n calendar: null,\r\n parsedDate: null,\r\n failure: 0,\r\n failureMessageID: null,\r\n failureMessageFormatArgument: null,\r\n failureArgumentName: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.timeZoneOffset = new System.TimeSpan();\r\n this.parsedDate = System.DateTime.getDefaultValue();\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n Init: function () {\r\n this.Year = -1;\r\n this.Month = -1;\r\n this.Day = -1;\r\n this.fraction = -1;\r\n this.era = -1;\r\n },\r\n SetDate: function (year, month, day) {\r\n this.Year = year;\r\n this.Month = month;\r\n this.Day = day;\r\n },\r\n SetFailure: function (failure, failureMessageID, failureMessageFormatArgument) {\r\n this.failure = failure;\r\n this.failureMessageID = failureMessageID;\r\n this.failureMessageFormatArgument = failureMessageFormatArgument;\r\n },\r\n SetFailure$1: function (failure, failureMessageID, failureMessageFormatArgument, failureArgumentName) {\r\n this.failure = failure;\r\n this.failureMessageID = failureMessageID;\r\n this.failureMessageFormatArgument = failureMessageFormatArgument;\r\n this.failureArgumentName = failureArgumentName;\r\n },\r\n getHashCode: function () {\r\n var h = Bridge.addHash([5374321750, this.Year, this.Month, this.Day, this.Hour, this.Minute, this.Second, this.fraction, this.era, this.flags, this.timeZoneOffset, this.calendar, this.parsedDate, this.failure, this.failureMessageID, this.failureMessageFormatArgument, this.failureArgumentName]);\r\n return h;\r\n },\r\n equals: function (o) {\r\n if (!Bridge.is(o, System.DateTimeResult)) {\r\n return false;\r\n }\r\n return Bridge.equals(this.Year, o.Year) && Bridge.equals(this.Month, o.Month) && Bridge.equals(this.Day, o.Day) && Bridge.equals(this.Hour, o.Hour) && Bridge.equals(this.Minute, o.Minute) && Bridge.equals(this.Second, o.Second) && Bridge.equals(this.fraction, o.fraction) && Bridge.equals(this.era, o.era) && Bridge.equals(this.flags, o.flags) && Bridge.equals(this.timeZoneOffset, o.timeZoneOffset) && Bridge.equals(this.calendar, o.calendar) && Bridge.equals(this.parsedDate, o.parsedDate) && Bridge.equals(this.failure, o.failure) && Bridge.equals(this.failureMessageID, o.failureMessageID) && Bridge.equals(this.failureMessageFormatArgument, o.failureMessageFormatArgument) && Bridge.equals(this.failureArgumentName, o.failureArgumentName);\r\n },\r\n $clone: function (to) {\r\n var s = to || new System.DateTimeResult();\r\n s.Year = this.Year;\r\n s.Month = this.Month;\r\n s.Day = this.Day;\r\n s.Hour = this.Hour;\r\n s.Minute = this.Minute;\r\n s.Second = this.Second;\r\n s.fraction = this.fraction;\r\n s.era = this.era;\r\n s.flags = this.flags;\r\n s.timeZoneOffset = this.timeZoneOffset;\r\n s.calendar = this.calendar;\r\n s.parsedDate = this.parsedDate;\r\n s.failure = this.failure;\r\n s.failureMessageID = this.failureMessageID;\r\n s.failureMessageFormatArgument = this.failureMessageFormatArgument;\r\n s.failureArgumentName = this.failureArgumentName;\r\n return s;\r\n }\r\n }\r\n });\r\n\r\n // @source DayOfWeek.js\r\n\r\n Bridge.define(\"System.DayOfWeek\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n Sunday: 0,\r\n Monday: 1,\r\n Tuesday: 2,\r\n Wednesday: 3,\r\n Thursday: 4,\r\n Friday: 5,\r\n Saturday: 6\r\n }\r\n }\r\n });\r\n\r\n // @source DBNull.js\r\n\r\n Bridge.define(\"System.DBNull\", {\r\n inherits: [System.Runtime.Serialization.ISerializable,System.IConvertible],\r\n statics: {\r\n fields: {\r\n Value: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.Value = new System.DBNull();\r\n }\r\n }\r\n },\r\n alias: [\r\n \"ToString\", \"System$IConvertible$ToString\",\r\n \"GetTypeCode\", \"System$IConvertible$GetTypeCode\"\r\n ],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n toString: function () {\r\n return \"\";\r\n },\r\n ToString: function (provider) {\r\n return \"\";\r\n },\r\n GetTypeCode: function () {\r\n return System.TypeCode.DBNull;\r\n },\r\n System$IConvertible$ToBoolean: function (provider) {\r\n throw new System.InvalidCastException.$ctor1(\"Object cannot be cast from DBNull to other types.\");\r\n },\r\n System$IConvertible$ToChar: function (provider) {\r\n throw new System.InvalidCastException.$ctor1(\"Object cannot be cast from DBNull to other types.\");\r\n },\r\n System$IConvertible$ToSByte: function (provider) {\r\n throw new System.InvalidCastException.$ctor1(\"Object cannot be cast from DBNull to other types.\");\r\n },\r\n System$IConvertible$ToByte: function (provider) {\r\n throw new System.InvalidCastException.$ctor1(\"Object cannot be cast from DBNull to other types.\");\r\n },\r\n System$IConvertible$ToInt16: function (provider) {\r\n throw new System.InvalidCastException.$ctor1(\"Object cannot be cast from DBNull to other types.\");\r\n },\r\n System$IConvertible$ToUInt16: function (provider) {\r\n throw new System.InvalidCastException.$ctor1(\"Object cannot be cast from DBNull to other types.\");\r\n },\r\n System$IConvertible$ToInt32: function (provider) {\r\n throw new System.InvalidCastException.$ctor1(\"Object cannot be cast from DBNull to other types.\");\r\n },\r\n System$IConvertible$ToUInt32: function (provider) {\r\n throw new System.InvalidCastException.$ctor1(\"Object cannot be cast from DBNull to other types.\");\r\n },\r\n System$IConvertible$ToInt64: function (provider) {\r\n throw new System.InvalidCastException.$ctor1(\"Object cannot be cast from DBNull to other types.\");\r\n },\r\n System$IConvertible$ToUInt64: function (provider) {\r\n throw new System.InvalidCastException.$ctor1(\"Object cannot be cast from DBNull to other types.\");\r\n },\r\n System$IConvertible$ToSingle: function (provider) {\r\n throw new System.InvalidCastException.$ctor1(\"Object cannot be cast from DBNull to other types.\");\r\n },\r\n System$IConvertible$ToDouble: function (provider) {\r\n throw new System.InvalidCastException.$ctor1(\"Object cannot be cast from DBNull to other types.\");\r\n },\r\n System$IConvertible$ToDecimal: function (provider) {\r\n throw new System.InvalidCastException.$ctor1(\"Object cannot be cast from DBNull to other types.\");\r\n },\r\n System$IConvertible$ToDateTime: function (provider) {\r\n throw new System.InvalidCastException.$ctor1(\"Object cannot be cast from DBNull to other types.\");\r\n },\r\n System$IConvertible$ToType: function (type, provider) {\r\n return System.Convert.defaultToType(Bridge.cast(this, System.IConvertible), type, provider);\r\n }\r\n }\r\n });\r\n\r\n // @source Empty.js\r\n\r\n Bridge.define(\"System.Empty\", {\r\n statics: {\r\n fields: {\r\n Value: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.Value = new System.Empty();\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n toString: function () {\r\n return \"\";\r\n }\r\n }\r\n });\r\n\r\n // @source ApplicationException.js\r\n\r\n Bridge.define(\"System.ApplicationException\", {\r\n inherits: [System.Exception],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.Exception.ctor.call(this, \"Error in the application.\");\r\n this.HResult = -2146232832;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.Exception.ctor.call(this, message);\r\n this.HResult = -2146232832;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.Exception.ctor.call(this, message, innerException);\r\n this.HResult = -2146232832;\r\n }\r\n }\r\n });\r\n\r\n // @source ArgumentException.js\r\n\r\n Bridge.define(\"System.ArgumentException\", {\r\n inherits: [System.SystemException],\r\n fields: {\r\n _paramName: null\r\n },\r\n props: {\r\n Message: {\r\n get: function () {\r\n var s = Bridge.ensureBaseProperty(this, \"Message\").$System$Exception$Message;\r\n if (!System.String.isNullOrEmpty(this._paramName)) {\r\n var resourceString = System.SR.Format(\"Parameter name: {0}\", this._paramName);\r\n return (s || \"\") + (\"\\n\" || \"\") + (resourceString || \"\");\r\n } else {\r\n return s;\r\n }\r\n }\r\n },\r\n ParamName: {\r\n get: function () {\r\n return this._paramName;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, \"Value does not fall within the expected range.\");\r\n this.HResult = -2147024809;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2147024809;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, innerException);\r\n this.HResult = -2147024809;\r\n },\r\n $ctor4: function (message, paramName, innerException) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, innerException);\r\n this._paramName = paramName;\r\n this.HResult = -2147024809;\r\n },\r\n $ctor3: function (message, paramName) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this._paramName = paramName;\r\n this.HResult = -2147024809;\r\n }\r\n }\r\n });\r\n\r\n // @source ArgumentNullException.js\r\n\r\n Bridge.define(\"System.ArgumentNullException\", {\r\n inherits: [System.ArgumentException],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.ArgumentException.$ctor1.call(this, \"Value cannot be null.\");\r\n this.HResult = -2147467261;\r\n },\r\n $ctor1: function (paramName) {\r\n this.$initialize();\r\n System.ArgumentException.$ctor3.call(this, \"Value cannot be null.\", paramName);\r\n this.HResult = -2147467261;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.ArgumentException.$ctor2.call(this, message, innerException);\r\n this.HResult = -2147467261;\r\n },\r\n $ctor3: function (paramName, message) {\r\n this.$initialize();\r\n System.ArgumentException.$ctor3.call(this, message, paramName);\r\n this.HResult = -2147467261;\r\n }\r\n }\r\n });\r\n\r\n // @source ArgumentOutOfRangeException.js\r\n\r\n Bridge.define(\"System.ArgumentOutOfRangeException\", {\r\n inherits: [System.ArgumentException],\r\n fields: {\r\n _actualValue: null\r\n },\r\n props: {\r\n Message: {\r\n get: function () {\r\n var s = Bridge.ensureBaseProperty(this, \"Message\").$System$ArgumentException$Message;\r\n if (this._actualValue != null) {\r\n var valueMessage = System.SR.Format(\"Actual value was {0}.\", Bridge.toString(this._actualValue));\r\n if (s == null) {\r\n return valueMessage;\r\n }\r\n return (s || \"\") + (\"\\n\" || \"\") + (valueMessage || \"\");\r\n }\r\n return s;\r\n }\r\n },\r\n ActualValue: {\r\n get: function () {\r\n return this._actualValue;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.ArgumentException.$ctor1.call(this, \"Specified argument was out of the range of valid values.\");\r\n this.HResult = -2146233086;\r\n },\r\n $ctor1: function (paramName) {\r\n this.$initialize();\r\n System.ArgumentException.$ctor3.call(this, \"Specified argument was out of the range of valid values.\", paramName);\r\n this.HResult = -2146233086;\r\n },\r\n $ctor4: function (paramName, message) {\r\n this.$initialize();\r\n System.ArgumentException.$ctor3.call(this, message, paramName);\r\n this.HResult = -2146233086;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.ArgumentException.$ctor2.call(this, message, innerException);\r\n this.HResult = -2146233086;\r\n },\r\n $ctor3: function (paramName, actualValue, message) {\r\n this.$initialize();\r\n System.ArgumentException.$ctor3.call(this, message, paramName);\r\n this._actualValue = actualValue;\r\n this.HResult = -2146233086;\r\n }\r\n }\r\n });\r\n\r\n // @source ArithmeticException.js\r\n\r\n Bridge.define(\"System.ArithmeticException\", {\r\n inherits: [System.SystemException],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, \"Overflow or underflow in the arithmetic operation.\");\r\n this.HResult = -2147024362;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2147024362;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, innerException);\r\n this.HResult = -2147024362;\r\n }\r\n }\r\n });\r\n\r\n // @source Base64FormattingOptions.js\r\n\r\n Bridge.define(\"System.Base64FormattingOptions\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n None: 0,\r\n InsertLineBreaks: 1\r\n }\r\n },\r\n $flags: true\r\n });\r\n\r\n // @source DivideByZeroException.js\r\n\r\n Bridge.define(\"System.DivideByZeroException\", {\r\n inherits: [System.ArithmeticException],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.ArithmeticException.$ctor1.call(this, \"Attempted to divide by zero.\");\r\n this.HResult = -2147352558;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.ArithmeticException.$ctor1.call(this, message);\r\n this.HResult = -2147352558;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.ArithmeticException.$ctor2.call(this, message, innerException);\r\n this.HResult = -2147352558;\r\n }\r\n }\r\n });\r\n\r\n // @source ExceptionArgument.js\r\n\r\n Bridge.define(\"System.ExceptionArgument\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n obj: 0,\r\n dictionary: 1,\r\n array: 2,\r\n info: 3,\r\n key: 4,\r\n collection: 5,\r\n list: 6,\r\n match: 7,\r\n converter: 8,\r\n capacity: 9,\r\n index: 10,\r\n startIndex: 11,\r\n value: 12,\r\n count: 13,\r\n arrayIndex: 14,\r\n $name: 15,\r\n item: 16,\r\n options: 17,\r\n view: 18,\r\n sourceBytesToCopy: 19,\r\n action: 20,\r\n comparison: 21,\r\n offset: 22,\r\n newSize: 23,\r\n elementType: 24,\r\n $length: 25,\r\n length1: 26,\r\n length2: 27,\r\n length3: 28,\r\n lengths: 29,\r\n len: 30,\r\n lowerBounds: 31,\r\n sourceArray: 32,\r\n destinationArray: 33,\r\n sourceIndex: 34,\r\n destinationIndex: 35,\r\n indices: 36,\r\n index1: 37,\r\n index2: 38,\r\n index3: 39,\r\n other: 40,\r\n comparer: 41,\r\n endIndex: 42,\r\n keys: 43,\r\n creationOptions: 44,\r\n timeout: 45,\r\n tasks: 46,\r\n scheduler: 47,\r\n continuationFunction: 48,\r\n millisecondsTimeout: 49,\r\n millisecondsDelay: 50,\r\n function: 51,\r\n exceptions: 52,\r\n exception: 53,\r\n cancellationToken: 54,\r\n delay: 55,\r\n asyncResult: 56,\r\n endMethod: 57,\r\n endFunction: 58,\r\n beginMethod: 59,\r\n continuationOptions: 60,\r\n continuationAction: 61,\r\n concurrencyLevel: 62,\r\n text: 63,\r\n callBack: 64,\r\n type: 65,\r\n stateMachine: 66,\r\n pHandle: 67,\r\n values: 68,\r\n task: 69,\r\n s: 70,\r\n keyValuePair: 71,\r\n input: 72,\r\n ownedMemory: 73,\r\n pointer: 74,\r\n start: 75,\r\n format: 76,\r\n culture: 77,\r\n comparable: 78,\r\n source: 79,\r\n state: 80\r\n }\r\n }\r\n });\r\n\r\n // @source ExceptionResource.js\r\n\r\n Bridge.define(\"System.ExceptionResource\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n Argument_ImplementIComparable: 0,\r\n Argument_InvalidType: 1,\r\n Argument_InvalidArgumentForComparison: 2,\r\n Argument_InvalidRegistryKeyPermissionCheck: 3,\r\n ArgumentOutOfRange_NeedNonNegNum: 4,\r\n Arg_ArrayPlusOffTooSmall: 5,\r\n Arg_NonZeroLowerBound: 6,\r\n Arg_RankMultiDimNotSupported: 7,\r\n Arg_RegKeyDelHive: 8,\r\n Arg_RegKeyStrLenBug: 9,\r\n Arg_RegSetStrArrNull: 10,\r\n Arg_RegSetMismatchedKind: 11,\r\n Arg_RegSubKeyAbsent: 12,\r\n Arg_RegSubKeyValueAbsent: 13,\r\n Argument_AddingDuplicate: 14,\r\n Serialization_InvalidOnDeser: 15,\r\n Serialization_MissingKeys: 16,\r\n Serialization_NullKey: 17,\r\n Argument_InvalidArrayType: 18,\r\n NotSupported_KeyCollectionSet: 19,\r\n NotSupported_ValueCollectionSet: 20,\r\n ArgumentOutOfRange_SmallCapacity: 21,\r\n ArgumentOutOfRange_Index: 22,\r\n Argument_InvalidOffLen: 23,\r\n Argument_ItemNotExist: 24,\r\n ArgumentOutOfRange_Count: 25,\r\n ArgumentOutOfRange_InvalidThreshold: 26,\r\n ArgumentOutOfRange_ListInsert: 27,\r\n NotSupported_ReadOnlyCollection: 28,\r\n InvalidOperation_CannotRemoveFromStackOrQueue: 29,\r\n InvalidOperation_EmptyQueue: 30,\r\n InvalidOperation_EnumOpCantHappen: 31,\r\n InvalidOperation_EnumFailedVersion: 32,\r\n InvalidOperation_EmptyStack: 33,\r\n ArgumentOutOfRange_BiggerThanCollection: 34,\r\n InvalidOperation_EnumNotStarted: 35,\r\n InvalidOperation_EnumEnded: 36,\r\n NotSupported_SortedListNestedWrite: 37,\r\n InvalidOperation_NoValue: 38,\r\n InvalidOperation_RegRemoveSubKey: 39,\r\n Security_RegistryPermission: 40,\r\n UnauthorizedAccess_RegistryNoWrite: 41,\r\n ObjectDisposed_RegKeyClosed: 42,\r\n NotSupported_InComparableType: 43,\r\n Argument_InvalidRegistryOptionsCheck: 44,\r\n Argument_InvalidRegistryViewCheck: 45,\r\n InvalidOperation_NullArray: 46,\r\n Arg_MustBeType: 47,\r\n Arg_NeedAtLeast1Rank: 48,\r\n ArgumentOutOfRange_HugeArrayNotSupported: 49,\r\n Arg_RanksAndBounds: 50,\r\n Arg_RankIndices: 51,\r\n Arg_Need1DArray: 52,\r\n Arg_Need2DArray: 53,\r\n Arg_Need3DArray: 54,\r\n NotSupported_FixedSizeCollection: 55,\r\n ArgumentException_OtherNotArrayOfCorrectLength: 56,\r\n Rank_MultiDimNotSupported: 57,\r\n InvalidOperation_IComparerFailed: 58,\r\n ArgumentOutOfRange_EndIndexStartIndex: 59,\r\n Arg_LowerBoundsMustMatch: 60,\r\n Arg_BogusIComparer: 61,\r\n Task_WaitMulti_NullTask: 62,\r\n Task_ThrowIfDisposed: 63,\r\n Task_Start_TaskCompleted: 64,\r\n Task_Start_Promise: 65,\r\n Task_Start_ContinuationTask: 66,\r\n Task_Start_AlreadyStarted: 67,\r\n Task_RunSynchronously_TaskCompleted: 68,\r\n Task_RunSynchronously_Continuation: 69,\r\n Task_RunSynchronously_Promise: 70,\r\n Task_RunSynchronously_AlreadyStarted: 71,\r\n Task_MultiTaskContinuation_NullTask: 72,\r\n Task_MultiTaskContinuation_EmptyTaskList: 73,\r\n Task_Dispose_NotCompleted: 74,\r\n Task_Delay_InvalidMillisecondsDelay: 75,\r\n Task_Delay_InvalidDelay: 76,\r\n Task_ctor_LRandSR: 77,\r\n Task_ContinueWith_NotOnAnything: 78,\r\n Task_ContinueWith_ESandLR: 79,\r\n TaskT_TransitionToFinal_AlreadyCompleted: 80,\r\n TaskCompletionSourceT_TrySetException_NullException: 81,\r\n TaskCompletionSourceT_TrySetException_NoExceptions: 82,\r\n MemoryDisposed: 83,\r\n Memory_OutstandingReferences: 84,\r\n InvalidOperation_WrongAsyncResultOrEndCalledMultiple: 85,\r\n ConcurrentDictionary_ConcurrencyLevelMustBePositive: 86,\r\n ConcurrentDictionary_CapacityMustNotBeNegative: 87,\r\n ConcurrentDictionary_TypeOfValueIncorrect: 88,\r\n ConcurrentDictionary_TypeOfKeyIncorrect: 89,\r\n ConcurrentDictionary_KeyAlreadyExisted: 90,\r\n ConcurrentDictionary_ItemKeyIsNull: 91,\r\n ConcurrentDictionary_IndexIsNegative: 92,\r\n ConcurrentDictionary_ArrayNotLargeEnough: 93,\r\n ConcurrentDictionary_ArrayIncorrectType: 94,\r\n ConcurrentCollection_SyncRoot_NotSupported: 95,\r\n ArgumentOutOfRange_Enum: 96,\r\n InvalidOperation_HandleIsNotInitialized: 97,\r\n AsyncMethodBuilder_InstanceNotInitialized: 98,\r\n ArgumentNull_SafeHandle: 99\r\n }\r\n }\r\n });\r\n\r\n // @source FormatException.js\r\n\r\n Bridge.define(\"System.FormatException\", {\r\n inherits: [System.SystemException],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, \"One of the identified items was in an invalid format.\");\r\n this.HResult = -2146233033;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2146233033;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, innerException);\r\n this.HResult = -2146233033;\r\n }\r\n }\r\n });\r\n\r\n // @source FormattableString.js\r\n\r\n Bridge.define(\"System.FormattableString\", {\r\n inherits: [System.IFormattable],\r\n statics: {\r\n methods: {\r\n Invariant: function (formattable) {\r\n if (formattable == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"formattable\");\r\n }\r\n\r\n return formattable.ToString(System.Globalization.CultureInfo.invariantCulture);\r\n }\r\n }\r\n },\r\n methods: {\r\n System$IFormattable$format: function (ignored, formatProvider) {\r\n return this.ToString(formatProvider);\r\n },\r\n toString: function () {\r\n return this.ToString(System.Globalization.CultureInfo.getCurrentCulture());\r\n }\r\n }\r\n });\r\n\r\n // @source ConcreteFormattableString.js\r\n\r\n Bridge.define(\"System.Runtime.CompilerServices.FormattableStringFactory.ConcreteFormattableString\", {\r\n inherits: [System.FormattableString],\r\n $kind: \"nested class\",\r\n fields: {\r\n _format: null,\r\n _arguments: null\r\n },\r\n props: {\r\n Format: {\r\n get: function () {\r\n return this._format;\r\n }\r\n },\r\n ArgumentCount: {\r\n get: function () {\r\n return this._arguments.length;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function (format, $arguments) {\r\n this.$initialize();\r\n System.FormattableString.ctor.call(this);\r\n this._format = format;\r\n this._arguments = $arguments;\r\n }\r\n },\r\n methods: {\r\n GetArguments: function () {\r\n return this._arguments;\r\n },\r\n GetArgument: function (index) {\r\n return this._arguments[System.Array.index(index, this._arguments)];\r\n },\r\n ToString: function (formatProvider) {\r\n return System.String.formatProvider.apply(System.String, [formatProvider, this._format].concat(this._arguments));\r\n }\r\n }\r\n });\r\n\r\n // @source FormattableStringFactory.js\r\n\r\n Bridge.define(\"System.Runtime.CompilerServices.FormattableStringFactory\", {\r\n statics: {\r\n methods: {\r\n Create: function (format, $arguments) {\r\n if ($arguments === void 0) { $arguments = []; }\r\n if (format == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"format\");\r\n }\r\n\r\n if ($arguments == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"arguments\");\r\n }\r\n\r\n return new System.Runtime.CompilerServices.FormattableStringFactory.ConcreteFormattableString(format, $arguments);\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source Guid.js\r\n\r\n Bridge.define(\"System.Guid\", {\r\n inherits: function () { return [System.IEquatable$1(System.Guid),System.IComparable$1(System.Guid),System.IFormattable]; },\r\n $kind: \"struct\",\r\n statics: {\r\n fields: {\r\n error1: null,\r\n Valid: null,\r\n Split: null,\r\n NonFormat: null,\r\n Replace: null,\r\n Rnd: null,\r\n Empty: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.Empty = new System.Guid();\r\n this.error1 = \"Byte array for GUID must be exactly {0} bytes long\";\r\n this.Valid = new RegExp(\"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$\", \"i\");\r\n this.Split = new RegExp(\"^(.{8})(.{4})(.{4})(.{4})(.{12})$\");\r\n this.NonFormat = new RegExp(\"^[{(]?([0-9a-f]{8})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{12})[)}]?$\", \"i\");\r\n this.Replace = new RegExp(\"-\", \"g\");\r\n this.Rnd = new System.Random.ctor();\r\n }\r\n },\r\n methods: {\r\n Parse: function (input) {\r\n return System.Guid.ParseExact(input, null);\r\n },\r\n ParseExact: function (input, format) {\r\n var r = new System.Guid.ctor();\r\n r.ParseInternal(input, format, true);\r\n return r;\r\n },\r\n TryParse: function (input, result) {\r\n return System.Guid.TryParseExact(input, null, result);\r\n },\r\n TryParseExact: function (input, format, result) {\r\n result.v = new System.Guid.ctor();\r\n return result.v.ParseInternal(input, format, false);\r\n },\r\n NewGuid: function () {\r\n var a = System.Array.init(16, 0, System.Byte);\r\n\r\n System.Guid.Rnd.NextBytes(a);\r\n\r\n a[System.Array.index(7, a)] = (a[System.Array.index(7, a)] & 15 | 64) & 255;\r\n a[System.Array.index(8, a)] = (a[System.Array.index(8, a)] & 191 | 128) & 255;\r\n\r\n return new System.Guid.$ctor1(a);\r\n },\r\n ToHex$1: function (x, precision) {\r\n var result = x.toString(16);\r\n precision = (precision - result.length) | 0;\r\n\r\n for (var i = 0; i < precision; i = (i + 1) | 0) {\r\n result = \"0\" + (result || \"\");\r\n }\r\n\r\n return result;\r\n },\r\n ToHex: function (x) {\r\n var result = x.toString(16);\r\n\r\n if (result.length === 1) {\r\n result = \"0\" + (result || \"\");\r\n }\r\n\r\n return result;\r\n },\r\n op_Equality: function (a, b) {\r\n if (Bridge.referenceEquals(a, null)) {\r\n return Bridge.referenceEquals(b, null);\r\n }\r\n\r\n return a.equalsT(b);\r\n },\r\n op_Inequality: function (a, b) {\r\n return !(System.Guid.op_Equality(a, b));\r\n },\r\n getDefaultValue: function () { return new System.Guid(); }\r\n }\r\n },\r\n fields: {\r\n _a: 0,\r\n _b: 0,\r\n _c: 0,\r\n _d: 0,\r\n _e: 0,\r\n _f: 0,\r\n _g: 0,\r\n _h: 0,\r\n _i: 0,\r\n _j: 0,\r\n _k: 0\r\n },\r\n alias: [\r\n \"equalsT\", \"System$IEquatable$1$System$Guid$equalsT\",\r\n \"compareTo\", [\"System$IComparable$1$System$Guid$compareTo\", \"System$IComparable$1$compareTo\"],\r\n \"format\", \"System$IFormattable$format\"\r\n ],\r\n ctors: {\r\n $ctor4: function (uuid) {\r\n this.$initialize();\r\n (new System.Guid.ctor()).$clone(this);\r\n\r\n this.ParseInternal(uuid, null, true);\r\n },\r\n $ctor1: function (b) {\r\n this.$initialize();\r\n if (b == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"b\");\r\n }\r\n\r\n if (b.length !== 16) {\r\n throw new System.ArgumentException.$ctor1(System.String.format(System.Guid.error1, [Bridge.box(16, System.Int32)]));\r\n }\r\n\r\n this._a = (b[System.Array.index(3, b)] << 24) | (b[System.Array.index(2, b)] << 16) | (b[System.Array.index(1, b)] << 8) | b[System.Array.index(0, b)];\r\n this._b = Bridge.Int.sxs(((b[System.Array.index(5, b)] << 8) | b[System.Array.index(4, b)]) & 65535);\r\n this._c = Bridge.Int.sxs(((b[System.Array.index(7, b)] << 8) | b[System.Array.index(6, b)]) & 65535);\r\n this._d = b[System.Array.index(8, b)];\r\n this._e = b[System.Array.index(9, b)];\r\n this._f = b[System.Array.index(10, b)];\r\n this._g = b[System.Array.index(11, b)];\r\n this._h = b[System.Array.index(12, b)];\r\n this._i = b[System.Array.index(13, b)];\r\n this._j = b[System.Array.index(14, b)];\r\n this._k = b[System.Array.index(15, b)];\r\n },\r\n $ctor5: function (a, b, c, d, e, f, g, h, i, j, k) {\r\n this.$initialize();\r\n this._a = a | 0;\r\n this._b = Bridge.Int.sxs(b & 65535);\r\n this._c = Bridge.Int.sxs(c & 65535);\r\n this._d = d;\r\n this._e = e;\r\n this._f = f;\r\n this._g = g;\r\n this._h = h;\r\n this._i = i;\r\n this._j = j;\r\n this._k = k;\r\n },\r\n $ctor3: function (a, b, c, d) {\r\n this.$initialize();\r\n if (d == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"d\");\r\n }\r\n\r\n if (d.length !== 8) {\r\n throw new System.ArgumentException.$ctor1(System.String.format(System.Guid.error1, [Bridge.box(8, System.Int32)]));\r\n }\r\n\r\n this._a = a;\r\n this._b = b;\r\n this._c = c;\r\n this._d = d[System.Array.index(0, d)];\r\n this._e = d[System.Array.index(1, d)];\r\n this._f = d[System.Array.index(2, d)];\r\n this._g = d[System.Array.index(3, d)];\r\n this._h = d[System.Array.index(4, d)];\r\n this._i = d[System.Array.index(5, d)];\r\n this._j = d[System.Array.index(6, d)];\r\n this._k = d[System.Array.index(7, d)];\r\n },\r\n $ctor2: function (a, b, c, d, e, f, g, h, i, j, k) {\r\n this.$initialize();\r\n this._a = a;\r\n this._b = b;\r\n this._c = c;\r\n this._d = d;\r\n this._e = e;\r\n this._f = f;\r\n this._g = g;\r\n this._h = h;\r\n this._i = i;\r\n this._j = j;\r\n this._k = k;\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n getHashCode: function () {\r\n return this._a ^ ((this._b << 16) | (this._c & 65535)) ^ ((this._f << 24) | this._k);\r\n },\r\n equals: function (o) {\r\n if (!(Bridge.is(o, System.Guid))) {\r\n return false;\r\n }\r\n\r\n return this.equalsT(System.Nullable.getValue(Bridge.cast(Bridge.unbox(o, System.Guid), System.Guid)));\r\n },\r\n equalsT: function (o) {\r\n if ((this._a !== o._a) || (this._b !== o._b) || (this._c !== o._c) || (this._d !== o._d) || (this._e !== o._e) || (this._f !== o._f) || (this._g !== o._g) || (this._h !== o._h) || (this._i !== o._i) || (this._j !== o._j) || (this._k !== o._k)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n compareTo: function (value) {\r\n return System.String.compare(this.toString(), value.toString());\r\n },\r\n toString: function () {\r\n return this.Format(null);\r\n },\r\n ToString: function (format) {\r\n return this.Format(format);\r\n },\r\n format: function (format, formatProvider) {\r\n return this.Format(format);\r\n },\r\n ToByteArray: function () {\r\n var g = System.Array.init(16, 0, System.Byte);\r\n\r\n g[System.Array.index(0, g)] = this._a & 255;\r\n g[System.Array.index(1, g)] = (this._a >> 8) & 255;\r\n g[System.Array.index(2, g)] = (this._a >> 16) & 255;\r\n g[System.Array.index(3, g)] = (this._a >> 24) & 255;\r\n g[System.Array.index(4, g)] = this._b & 255;\r\n g[System.Array.index(5, g)] = (this._b >> 8) & 255;\r\n g[System.Array.index(6, g)] = this._c & 255;\r\n g[System.Array.index(7, g)] = (this._c >> 8) & 255;\r\n g[System.Array.index(8, g)] = this._d;\r\n g[System.Array.index(9, g)] = this._e;\r\n g[System.Array.index(10, g)] = this._f;\r\n g[System.Array.index(11, g)] = this._g;\r\n g[System.Array.index(12, g)] = this._h;\r\n g[System.Array.index(13, g)] = this._i;\r\n g[System.Array.index(14, g)] = this._j;\r\n g[System.Array.index(15, g)] = this._k;\r\n\r\n return g;\r\n },\r\n ParseInternal: function (input, format, check) {\r\n var r = null;\r\n\r\n if (System.String.isNullOrEmpty(input)) {\r\n if (check) {\r\n throw new System.ArgumentNullException.$ctor1(\"input\");\r\n }\r\n return false;\r\n }\r\n\r\n if (System.String.isNullOrEmpty(format)) {\r\n var m = System.Guid.NonFormat.exec(input);\r\n\r\n if (m != null) {\r\n var list = new (System.Collections.Generic.List$1(System.String)).ctor();\r\n for (var i = 1; i <= m.length; i = (i + 1) | 0) {\r\n if (m[i] != null) {\r\n list.add(m[i]);\r\n }\r\n }\r\n\r\n r = list.ToArray().join(\"-\").toLowerCase();\r\n }\r\n } else {\r\n format = format.toUpperCase();\r\n\r\n var p = false;\r\n\r\n if (Bridge.referenceEquals(format, \"N\")) {\r\n var m1 = System.Guid.Split.exec(input);\r\n\r\n if (m1 != null) {\r\n var list1 = new (System.Collections.Generic.List$1(System.String)).ctor();\r\n for (var i1 = 1; i1 <= m1.length; i1 = (i1 + 1) | 0) {\r\n if (m1[i1] != null) {\r\n list1.add(m1[i1]);\r\n }\r\n }\r\n\r\n p = true;\r\n input = list1.ToArray().join(\"-\");\r\n }\r\n } else if (Bridge.referenceEquals(format, \"B\") || Bridge.referenceEquals(format, \"P\")) {\r\n var b = Bridge.referenceEquals(format, \"B\") ? System.Array.init([123, 125], System.Char) : System.Array.init([40, 41], System.Char);\r\n\r\n if ((input.charCodeAt(0) === b[System.Array.index(0, b)]) && (input.charCodeAt(((input.length - 1) | 0)) === b[System.Array.index(1, b)])) {\r\n p = true;\r\n input = input.substr(1, ((input.length - 2) | 0));\r\n }\r\n } else {\r\n p = true;\r\n }\r\n\r\n if (p && System.Guid.Valid.test(input)) {\r\n r = input.toLowerCase();\r\n }\r\n }\r\n\r\n if (r != null) {\r\n this.FromString(r);\r\n return true;\r\n }\r\n\r\n if (check) {\r\n throw new System.FormatException.$ctor1(\"input is not in a recognized format\");\r\n }\r\n\r\n return false;\r\n },\r\n Format: function (format) {\r\n var s = (System.Guid.ToHex$1((this._a >>> 0), 8) || \"\") + (System.Guid.ToHex$1((this._b & 65535), 4) || \"\") + (System.Guid.ToHex$1((this._c & 65535), 4) || \"\");\r\n s = (s || \"\") + ((System.Array.init([this._d, this._e, this._f, this._g, this._h, this._i, this._j, this._k], System.Byte)).map(System.Guid.ToHex).join(\"\") || \"\");\r\n\r\n var m = /^(.{8})(.{4})(.{4})(.{4})(.{12})$/.exec(s);\r\n var list = System.Array.init(0, null, System.String);\r\n for (var i = 1; i < m.length; i = (i + 1) | 0) {\r\n if (m[System.Array.index(i, m)] != null) {\r\n list.push(m[System.Array.index(i, m)]);\r\n }\r\n }\r\n s = list.join(\"-\");\r\n\r\n switch (format) {\r\n case \"n\": \r\n case \"N\": \r\n return s.replace(System.Guid.Replace, \"\");\r\n case \"b\": \r\n case \"B\": \r\n return String.fromCharCode(123) + (s || \"\") + String.fromCharCode(125);\r\n case \"p\": \r\n case \"P\": \r\n return String.fromCharCode(40) + (s || \"\") + String.fromCharCode(41);\r\n default: \r\n return s;\r\n }\r\n },\r\n FromString: function (s) {\r\n if (System.String.isNullOrEmpty(s)) {\r\n return;\r\n }\r\n\r\n s = s.replace(System.Guid.Replace, \"\");\r\n\r\n var r = System.Array.init(8, 0, System.Byte);\r\n\r\n this._a = (System.UInt32.parse(s.substr(0, 8), 16)) | 0;\r\n this._b = Bridge.Int.sxs((System.UInt16.parse(s.substr(8, 4), 16)) & 65535);\r\n this._c = Bridge.Int.sxs((System.UInt16.parse(s.substr(12, 4), 16)) & 65535);\r\n for (var i = 8; i < 16; i = (i + 1) | 0) {\r\n r[System.Array.index(((i - 8) | 0), r)] = System.Byte.parse(s.substr(Bridge.Int.mul(i, 2), 2), 16);\r\n }\r\n\r\n this._d = r[System.Array.index(0, r)];\r\n this._e = r[System.Array.index(1, r)];\r\n this._f = r[System.Array.index(2, r)];\r\n this._g = r[System.Array.index(3, r)];\r\n this._h = r[System.Array.index(4, r)];\r\n this._i = r[System.Array.index(5, r)];\r\n this._j = r[System.Array.index(6, r)];\r\n this._k = r[System.Array.index(7, r)];\r\n },\r\n toJSON: function () {\r\n return this.toString();\r\n },\r\n $clone: function (to) { return this; }\r\n }\r\n });\r\n\r\n // @source ITupleInternal.js\r\n\r\n Bridge.define(\"System.ITupleInternal\", {\r\n $kind: \"interface\"\r\n });\r\n\r\n // @source Tuple.js\r\n\r\n Bridge.define(\"System.Tuple\");\r\n\r\n Bridge.define(\"System.Tuple$1\", function (T1) { return {\r\n\r\n }; });\r\n\r\n Bridge.define(\"System.Tuple$2\", function (T1, T2) { return {\r\n\r\n }; });\r\n\r\n Bridge.define(\"System.Tuple$3\", function (T1, T2, T3) { return {\r\n\r\n }; });\r\n\r\n Bridge.define(\"System.Tuple$4\", function (T1, T2, T3, T4) { return {\r\n\r\n }; });\r\n\r\n Bridge.define(\"System.Tuple$5\", function (T1, T2, T3, T4, T5) { return {\r\n\r\n }; });\r\n\r\n Bridge.define(\"System.Tuple$6\", function (T1, T2, T3, T4, T5, T6) { return {\r\n\r\n }; });\r\n\r\n Bridge.define(\"System.Tuple$7\", function (T1, T2, T3, T4, T5, T6, T7) { return {\r\n\r\n }; });\r\n\r\n Bridge.define(\"System.Tuple$8\", function (T1, T2, T3, T4, T5, T6, T7, TRest) { return {\r\n\r\n }; });\r\n\r\n // @source ValueTuple.js\r\n\r\n Bridge.define(\"System.ValueTuple\", {\r\n inherits: function () { return [System.IEquatable$1(System.ValueTuple),System.Collections.IStructuralEquatable,System.Collections.IStructuralComparable,System.IComparable,System.IComparable$1(System.ValueTuple)]; },\r\n $kind: \"struct\",\r\n statics: {\r\n methods: {\r\n Create: function () {\r\n return new System.ValueTuple();\r\n },\r\n Create$1: function (T1, item1) {\r\n return new (System.ValueTuple$1(T1)).$ctor1(item1);\r\n },\r\n Create$2: function (T1, T2, item1, item2) {\r\n return new (System.ValueTuple$2(T1,T2)).$ctor1(item1, item2);\r\n },\r\n Create$3: function (T1, T2, T3, item1, item2, item3) {\r\n return new (System.ValueTuple$3(T1,T2,T3)).$ctor1(item1, item2, item3);\r\n },\r\n Create$4: function (T1, T2, T3, T4, item1, item2, item3, item4) {\r\n return new (System.ValueTuple$4(T1,T2,T3,T4)).$ctor1(item1, item2, item3, item4);\r\n },\r\n Create$5: function (T1, T2, T3, T4, T5, item1, item2, item3, item4, item5) {\r\n return new (System.ValueTuple$5(T1,T2,T3,T4,T5)).$ctor1(item1, item2, item3, item4, item5);\r\n },\r\n Create$6: function (T1, T2, T3, T4, T5, T6, item1, item2, item3, item4, item5, item6) {\r\n return new (System.ValueTuple$6(T1,T2,T3,T4,T5,T6)).$ctor1(item1, item2, item3, item4, item5, item6);\r\n },\r\n Create$7: function (T1, T2, T3, T4, T5, T6, T7, item1, item2, item3, item4, item5, item6, item7) {\r\n return new (System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7)).$ctor1(item1, item2, item3, item4, item5, item6, item7);\r\n },\r\n Create$8: function (T1, T2, T3, T4, T5, T6, T7, T8, item1, item2, item3, item4, item5, item6, item7, item8) {\r\n return new (System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,System.ValueTuple$1(T8))).$ctor1(item1, item2, item3, item4, item5, item6, item7, System.ValueTuple.Create$1(T8, item8));\r\n },\r\n CombineHashCodes: function (h1, h2) {\r\n return System.Collections.HashHelpers.Combine(System.Collections.HashHelpers.Combine(System.Collections.HashHelpers.RandomSeed, h1), h2);\r\n },\r\n CombineHashCodes$1: function (h1, h2, h3) {\r\n return System.Collections.HashHelpers.Combine(System.ValueTuple.CombineHashCodes(h1, h2), h3);\r\n },\r\n CombineHashCodes$2: function (h1, h2, h3, h4) {\r\n return System.Collections.HashHelpers.Combine(System.ValueTuple.CombineHashCodes$1(h1, h2, h3), h4);\r\n },\r\n CombineHashCodes$3: function (h1, h2, h3, h4, h5) {\r\n return System.Collections.HashHelpers.Combine(System.ValueTuple.CombineHashCodes$2(h1, h2, h3, h4), h5);\r\n },\r\n CombineHashCodes$4: function (h1, h2, h3, h4, h5, h6) {\r\n return System.Collections.HashHelpers.Combine(System.ValueTuple.CombineHashCodes$3(h1, h2, h3, h4, h5), h6);\r\n },\r\n CombineHashCodes$5: function (h1, h2, h3, h4, h5, h6, h7) {\r\n return System.Collections.HashHelpers.Combine(System.ValueTuple.CombineHashCodes$4(h1, h2, h3, h4, h5, h6), h7);\r\n },\r\n CombineHashCodes$6: function (h1, h2, h3, h4, h5, h6, h7, h8) {\r\n return System.Collections.HashHelpers.Combine(System.ValueTuple.CombineHashCodes$5(h1, h2, h3, h4, h5, h6, h7), h8);\r\n },\r\n getDefaultValue: function () { return new System.ValueTuple(); }\r\n }\r\n },\r\n alias: [\r\n \"equalsT\", \"System$IEquatable$1$System$ValueTuple$equalsT\",\r\n \"compareTo\", [\"System$IComparable$1$System$ValueTuple$compareTo\", \"System$IComparable$1$compareTo\"]\r\n ],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n equals: function (obj) {\r\n return Bridge.is(obj, System.ValueTuple);\r\n },\r\n equalsT: function (other) {\r\n return true;\r\n },\r\n System$Collections$IStructuralEquatable$Equals: function (other, comparer) {\r\n return Bridge.is(other, System.ValueTuple);\r\n },\r\n System$IComparable$compareTo: function (other) {\r\n if (other == null) {\r\n return 1;\r\n }\r\n\r\n if (!(Bridge.is(other, System.ValueTuple))) {\r\n throw new System.ArgumentException.$ctor3(System.SR.ArgumentException_ValueTupleIncorrectType, \"other\");\r\n }\r\n\r\n return 0;\r\n },\r\n compareTo: function (other) {\r\n return 0;\r\n },\r\n System$Collections$IStructuralComparable$CompareTo: function (other, comparer) {\r\n if (other == null) {\r\n return 1;\r\n }\r\n\r\n if (!(Bridge.is(other, System.ValueTuple))) {\r\n throw new System.ArgumentException.$ctor3(System.SR.ArgumentException_ValueTupleIncorrectType, \"other\");\r\n }\r\n\r\n return 0;\r\n },\r\n getHashCode: function () {\r\n return 0;\r\n },\r\n System$Collections$IStructuralEquatable$GetHashCode: function (comparer) {\r\n return 0;\r\n },\r\n toString: function () {\r\n return \"()\";\r\n },\r\n $clone: function (to) { return this; }\r\n }\r\n });\r\n\r\n Bridge.define(\"System.ValueTuple$1\", function (T1) { return {\r\n inherits: function () { return [System.IEquatable$1(System.ValueTuple$1(T1)),System.Collections.IStructuralEquatable,System.Collections.IStructuralComparable,System.IComparable,System.IComparable$1(System.ValueTuple$1(T1)),System.ITupleInternal]; },\r\n $kind: \"struct\",\r\n statics: {\r\n fields: {\r\n s_t1Comparer: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.s_t1Comparer = System.Collections.Generic.EqualityComparer$1(T1).def;\r\n }\r\n },\r\n methods: {\r\n getDefaultValue: function () { return new (System.ValueTuple$1(T1))(); }\r\n }\r\n },\r\n fields: {\r\n Item1: Bridge.getDefaultValue(T1)\r\n },\r\n props: {\r\n System$ITupleInternal$Size: {\r\n get: function () {\r\n return 1;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"equalsT\", \"System$IEquatable$1$System$ValueTuple$1$\" + Bridge.getTypeAlias(T1) + \"$equalsT\",\r\n \"compareTo\", [\"System$IComparable$1$System$ValueTuple$1$\" + Bridge.getTypeAlias(T1) + \"$compareTo\", \"System$IComparable$1$compareTo\"]\r\n ],\r\n ctors: {\r\n $ctor1: function (item1) {\r\n this.$initialize();\r\n this.Item1 = item1;\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n equals: function (obj) {\r\n return Bridge.is(obj, System.ValueTuple$1(T1)) && this.equalsT(System.Nullable.getValue(Bridge.cast(Bridge.unbox(obj, System.ValueTuple$1(T1)), System.ValueTuple$1(T1))));\r\n },\r\n equalsT: function (other) {\r\n return System.ValueTuple$1(T1).s_t1Comparer.equals2(this.Item1, other.Item1);\r\n },\r\n System$Collections$IStructuralEquatable$Equals: function (other, comparer) {\r\n if (other == null || !(Bridge.is(other, System.ValueTuple$1(T1)))) {\r\n return false;\r\n }\r\n\r\n var objTuple = System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$1(T1)), System.ValueTuple$1(T1)));\r\n\r\n return comparer.System$Collections$IEqualityComparer$equals(this.Item1, objTuple.Item1);\r\n },\r\n System$IComparable$compareTo: function (other) {\r\n if (other == null) {\r\n return 1;\r\n }\r\n\r\n if (!(Bridge.is(other, System.ValueTuple$1(T1)))) {\r\n throw new System.ArgumentException.$ctor3(System.SR.ArgumentException_ValueTupleIncorrectType, \"other\");\r\n }\r\n\r\n var objTuple = System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$1(T1)), System.ValueTuple$1(T1)));\r\n\r\n return new (System.Collections.Generic.Comparer$1(T1))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item1, objTuple.Item1);\r\n },\r\n compareTo: function (other) {\r\n return new (System.Collections.Generic.Comparer$1(T1))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item1, other.Item1);\r\n },\r\n System$Collections$IStructuralComparable$CompareTo: function (other, comparer) {\r\n if (other == null) {\r\n return 1;\r\n }\r\n\r\n if (!(Bridge.is(other, System.ValueTuple$1(T1)))) {\r\n throw new System.ArgumentException.$ctor3(System.SR.ArgumentException_ValueTupleIncorrectType, \"other\");\r\n }\r\n\r\n var objTuple = System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$1(T1)), System.ValueTuple$1(T1)));\r\n\r\n return comparer.System$Collections$IComparer$compare(this.Item1, objTuple.Item1);\r\n },\r\n getHashCode: function () {\r\n return System.ValueTuple$1(T1).s_t1Comparer.getHashCode2(this.Item1);\r\n },\r\n System$Collections$IStructuralEquatable$GetHashCode: function (comparer) {\r\n return comparer.System$Collections$IEqualityComparer$getHashCode(this.Item1);\r\n },\r\n System$ITupleInternal$GetHashCode: function (comparer) {\r\n return comparer.System$Collections$IEqualityComparer$getHashCode(this.Item1);\r\n },\r\n toString: function () {\r\n return \"(\" + ((this.Item1 != null ? Bridge.toString(this.Item1) : null) || \"\") + \")\";\r\n },\r\n System$ITupleInternal$ToStringEnd: function () {\r\n return ((this.Item1 != null ? Bridge.toString(this.Item1) : null) || \"\") + \")\";\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.ValueTuple$1(T1))();\r\n s.Item1 = this.Item1;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n Bridge.define(\"System.ValueTuple$2\", function (T1, T2) { return {\r\n inherits: function () { return [System.IEquatable$1(System.ValueTuple$2(T1,T2)),System.Collections.IStructuralEquatable,System.Collections.IStructuralComparable,System.IComparable,System.IComparable$1(System.ValueTuple$2(T1,T2)),System.ITupleInternal]; },\r\n $kind: \"struct\",\r\n statics: {\r\n fields: {\r\n s_t1Comparer: null,\r\n s_t2Comparer: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.s_t1Comparer = System.Collections.Generic.EqualityComparer$1(T1).def;\r\n this.s_t2Comparer = System.Collections.Generic.EqualityComparer$1(T2).def;\r\n }\r\n },\r\n methods: {\r\n getDefaultValue: function () { return new (System.ValueTuple$2(T1,T2))(); }\r\n }\r\n },\r\n fields: {\r\n Item1: Bridge.getDefaultValue(T1),\r\n Item2: Bridge.getDefaultValue(T2)\r\n },\r\n props: {\r\n System$ITupleInternal$Size: {\r\n get: function () {\r\n return 2;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"equalsT\", \"System$IEquatable$1$System$ValueTuple$2$\" + Bridge.getTypeAlias(T1) + \"$\" + Bridge.getTypeAlias(T2) + \"$equalsT\",\r\n \"compareTo\", [\"System$IComparable$1$System$ValueTuple$2$\" + Bridge.getTypeAlias(T1) + \"$\" + Bridge.getTypeAlias(T2) + \"$compareTo\", \"System$IComparable$1$compareTo\"]\r\n ],\r\n ctors: {\r\n $ctor1: function (item1, item2) {\r\n this.$initialize();\r\n this.Item1 = item1;\r\n this.Item2 = item2;\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n equals: function (obj) {\r\n return Bridge.is(obj, System.ValueTuple$2(T1,T2)) && this.equalsT(System.Nullable.getValue(Bridge.cast(Bridge.unbox(obj, System.ValueTuple$2(T1,T2)), System.ValueTuple$2(T1,T2))));\r\n },\r\n equalsT: function (other) {\r\n return System.ValueTuple$2(T1,T2).s_t1Comparer.equals2(this.Item1, other.Item1) && System.ValueTuple$2(T1,T2).s_t2Comparer.equals2(this.Item2, other.Item2);\r\n },\r\n System$Collections$IStructuralEquatable$Equals: function (other, comparer) {\r\n if (other == null || !(Bridge.is(other, System.ValueTuple$2(T1,T2)))) {\r\n return false;\r\n }\r\n\r\n var objTuple = System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$2(T1,T2)), System.ValueTuple$2(T1,T2)));\r\n\r\n return comparer.System$Collections$IEqualityComparer$equals(this.Item1, objTuple.Item1) && comparer.System$Collections$IEqualityComparer$equals(this.Item2, objTuple.Item2);\r\n },\r\n System$IComparable$compareTo: function (other) {\r\n if (other == null) {\r\n return 1;\r\n }\r\n\r\n if (!(Bridge.is(other, System.ValueTuple$2(T1,T2)))) {\r\n throw new System.ArgumentException.$ctor3(System.SR.ArgumentException_ValueTupleIncorrectType, \"other\");\r\n }\r\n\r\n return this.compareTo(System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$2(T1,T2)), System.ValueTuple$2(T1,T2))));\r\n },\r\n compareTo: function (other) {\r\n var c = new (System.Collections.Generic.Comparer$1(T1))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item1, other.Item1);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n return new (System.Collections.Generic.Comparer$1(T2))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item2, other.Item2);\r\n },\r\n System$Collections$IStructuralComparable$CompareTo: function (other, comparer) {\r\n if (other == null) {\r\n return 1;\r\n }\r\n\r\n if (!(Bridge.is(other, System.ValueTuple$2(T1,T2)))) {\r\n throw new System.ArgumentException.$ctor3(System.SR.ArgumentException_ValueTupleIncorrectType, \"other\");\r\n }\r\n\r\n var objTuple = System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$2(T1,T2)), System.ValueTuple$2(T1,T2)));\r\n\r\n var c = comparer.System$Collections$IComparer$compare(this.Item1, objTuple.Item1);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n return comparer.System$Collections$IComparer$compare(this.Item2, objTuple.Item2);\r\n },\r\n getHashCode: function () {\r\n return System.ValueTuple.CombineHashCodes(System.ValueTuple$2(T1,T2).s_t1Comparer.getHashCode2(this.Item1), System.ValueTuple$2(T1,T2).s_t2Comparer.getHashCode2(this.Item2));\r\n },\r\n System$Collections$IStructuralEquatable$GetHashCode: function (comparer) {\r\n return this.GetHashCodeCore(comparer);\r\n },\r\n System$ITupleInternal$GetHashCode: function (comparer) {\r\n return this.GetHashCodeCore(comparer);\r\n },\r\n GetHashCodeCore: function (comparer) {\r\n return System.ValueTuple.CombineHashCodes(comparer.System$Collections$IEqualityComparer$getHashCode(this.Item1), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item2));\r\n },\r\n toString: function () {\r\n return \"(\" + ((this.Item1 != null ? Bridge.toString(this.Item1) : null) || \"\") + \", \" + ((this.Item2 != null ? Bridge.toString(this.Item2) : null) || \"\") + \")\";\r\n },\r\n System$ITupleInternal$ToStringEnd: function () {\r\n return ((this.Item1 != null ? Bridge.toString(this.Item1) : null) || \"\") + \", \" + ((this.Item2 != null ? Bridge.toString(this.Item2) : null) || \"\") + \")\";\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.ValueTuple$2(T1,T2))();\r\n s.Item1 = this.Item1;\r\n s.Item2 = this.Item2;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n Bridge.define(\"System.ValueTuple$3\", function (T1, T2, T3) { return {\r\n inherits: function () { return [System.IEquatable$1(System.ValueTuple$3(T1,T2,T3)),System.Collections.IStructuralEquatable,System.Collections.IStructuralComparable,System.IComparable,System.IComparable$1(System.ValueTuple$3(T1,T2,T3)),System.ITupleInternal]; },\r\n $kind: \"struct\",\r\n statics: {\r\n fields: {\r\n s_t1Comparer: null,\r\n s_t2Comparer: null,\r\n s_t3Comparer: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.s_t1Comparer = System.Collections.Generic.EqualityComparer$1(T1).def;\r\n this.s_t2Comparer = System.Collections.Generic.EqualityComparer$1(T2).def;\r\n this.s_t3Comparer = System.Collections.Generic.EqualityComparer$1(T3).def;\r\n }\r\n },\r\n methods: {\r\n getDefaultValue: function () { return new (System.ValueTuple$3(T1,T2,T3))(); }\r\n }\r\n },\r\n fields: {\r\n Item1: Bridge.getDefaultValue(T1),\r\n Item2: Bridge.getDefaultValue(T2),\r\n Item3: Bridge.getDefaultValue(T3)\r\n },\r\n props: {\r\n System$ITupleInternal$Size: {\r\n get: function () {\r\n return 3;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"equalsT\", \"System$IEquatable$1$System$ValueTuple$3$\" + Bridge.getTypeAlias(T1) + \"$\" + Bridge.getTypeAlias(T2) + \"$\" + Bridge.getTypeAlias(T3) + \"$equalsT\",\r\n \"compareTo\", [\"System$IComparable$1$System$ValueTuple$3$\" + Bridge.getTypeAlias(T1) + \"$\" + Bridge.getTypeAlias(T2) + \"$\" + Bridge.getTypeAlias(T3) + \"$compareTo\", \"System$IComparable$1$compareTo\"]\r\n ],\r\n ctors: {\r\n $ctor1: function (item1, item2, item3) {\r\n this.$initialize();\r\n this.Item1 = item1;\r\n this.Item2 = item2;\r\n this.Item3 = item3;\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n equals: function (obj) {\r\n return Bridge.is(obj, System.ValueTuple$3(T1,T2,T3)) && this.equalsT(System.Nullable.getValue(Bridge.cast(Bridge.unbox(obj, System.ValueTuple$3(T1,T2,T3)), System.ValueTuple$3(T1,T2,T3))));\r\n },\r\n equalsT: function (other) {\r\n return System.ValueTuple$3(T1,T2,T3).s_t1Comparer.equals2(this.Item1, other.Item1) && System.ValueTuple$3(T1,T2,T3).s_t2Comparer.equals2(this.Item2, other.Item2) && System.ValueTuple$3(T1,T2,T3).s_t3Comparer.equals2(this.Item3, other.Item3);\r\n },\r\n System$Collections$IStructuralEquatable$Equals: function (other, comparer) {\r\n if (other == null || !(Bridge.is(other, System.ValueTuple$3(T1,T2,T3)))) {\r\n return false;\r\n }\r\n\r\n var objTuple = System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$3(T1,T2,T3)), System.ValueTuple$3(T1,T2,T3)));\r\n\r\n return comparer.System$Collections$IEqualityComparer$equals(this.Item1, objTuple.Item1) && comparer.System$Collections$IEqualityComparer$equals(this.Item2, objTuple.Item2) && comparer.System$Collections$IEqualityComparer$equals(this.Item3, objTuple.Item3);\r\n },\r\n System$IComparable$compareTo: function (other) {\r\n if (other == null) {\r\n return 1;\r\n }\r\n\r\n if (!(Bridge.is(other, System.ValueTuple$3(T1,T2,T3)))) {\r\n throw new System.ArgumentException.$ctor3(System.SR.ArgumentException_ValueTupleIncorrectType, \"other\");\r\n }\r\n\r\n return this.compareTo(System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$3(T1,T2,T3)), System.ValueTuple$3(T1,T2,T3))));\r\n },\r\n compareTo: function (other) {\r\n var c = new (System.Collections.Generic.Comparer$1(T1))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item1, other.Item1);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = new (System.Collections.Generic.Comparer$1(T2))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item2, other.Item2);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n return new (System.Collections.Generic.Comparer$1(T3))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item3, other.Item3);\r\n },\r\n System$Collections$IStructuralComparable$CompareTo: function (other, comparer) {\r\n if (other == null) {\r\n return 1;\r\n }\r\n\r\n if (!(Bridge.is(other, System.ValueTuple$3(T1,T2,T3)))) {\r\n throw new System.ArgumentException.$ctor3(System.SR.ArgumentException_ValueTupleIncorrectType, \"other\");\r\n }\r\n\r\n var objTuple = System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$3(T1,T2,T3)), System.ValueTuple$3(T1,T2,T3)));\r\n\r\n var c = comparer.System$Collections$IComparer$compare(this.Item1, objTuple.Item1);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = comparer.System$Collections$IComparer$compare(this.Item2, objTuple.Item2);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n return comparer.System$Collections$IComparer$compare(this.Item3, objTuple.Item3);\r\n },\r\n getHashCode: function () {\r\n return System.ValueTuple.CombineHashCodes$1(System.ValueTuple$3(T1,T2,T3).s_t1Comparer.getHashCode2(this.Item1), System.ValueTuple$3(T1,T2,T3).s_t2Comparer.getHashCode2(this.Item2), System.ValueTuple$3(T1,T2,T3).s_t3Comparer.getHashCode2(this.Item3));\r\n },\r\n System$Collections$IStructuralEquatable$GetHashCode: function (comparer) {\r\n return this.GetHashCodeCore(comparer);\r\n },\r\n System$ITupleInternal$GetHashCode: function (comparer) {\r\n return this.GetHashCodeCore(comparer);\r\n },\r\n GetHashCodeCore: function (comparer) {\r\n return System.ValueTuple.CombineHashCodes$1(comparer.System$Collections$IEqualityComparer$getHashCode(this.Item1), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item2), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item3));\r\n },\r\n toString: function () {\r\n return \"(\" + ((this.Item1 != null ? Bridge.toString(this.Item1) : null) || \"\") + \", \" + ((this.Item2 != null ? Bridge.toString(this.Item2) : null) || \"\") + \", \" + ((this.Item3 != null ? Bridge.toString(this.Item3) : null) || \"\") + \")\";\r\n },\r\n System$ITupleInternal$ToStringEnd: function () {\r\n return ((this.Item1 != null ? Bridge.toString(this.Item1) : null) || \"\") + \", \" + ((this.Item2 != null ? Bridge.toString(this.Item2) : null) || \"\") + \", \" + ((this.Item3 != null ? Bridge.toString(this.Item3) : null) || \"\") + \")\";\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.ValueTuple$3(T1,T2,T3))();\r\n s.Item1 = this.Item1;\r\n s.Item2 = this.Item2;\r\n s.Item3 = this.Item3;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n Bridge.define(\"System.ValueTuple$4\", function (T1, T2, T3, T4) { return {\r\n inherits: function () { return [System.IEquatable$1(System.ValueTuple$4(T1,T2,T3,T4)),System.Collections.IStructuralEquatable,System.Collections.IStructuralComparable,System.IComparable,System.IComparable$1(System.ValueTuple$4(T1,T2,T3,T4)),System.ITupleInternal]; },\r\n $kind: \"struct\",\r\n statics: {\r\n fields: {\r\n s_t1Comparer: null,\r\n s_t2Comparer: null,\r\n s_t3Comparer: null,\r\n s_t4Comparer: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.s_t1Comparer = System.Collections.Generic.EqualityComparer$1(T1).def;\r\n this.s_t2Comparer = System.Collections.Generic.EqualityComparer$1(T2).def;\r\n this.s_t3Comparer = System.Collections.Generic.EqualityComparer$1(T3).def;\r\n this.s_t4Comparer = System.Collections.Generic.EqualityComparer$1(T4).def;\r\n }\r\n },\r\n methods: {\r\n getDefaultValue: function () { return new (System.ValueTuple$4(T1,T2,T3,T4))(); }\r\n }\r\n },\r\n fields: {\r\n Item1: Bridge.getDefaultValue(T1),\r\n Item2: Bridge.getDefaultValue(T2),\r\n Item3: Bridge.getDefaultValue(T3),\r\n Item4: Bridge.getDefaultValue(T4)\r\n },\r\n props: {\r\n System$ITupleInternal$Size: {\r\n get: function () {\r\n return 4;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"equalsT\", \"System$IEquatable$1$System$ValueTuple$4$\" + Bridge.getTypeAlias(T1) + \"$\" + Bridge.getTypeAlias(T2) + \"$\" + Bridge.getTypeAlias(T3) + \"$\" + Bridge.getTypeAlias(T4) + \"$equalsT\",\r\n \"compareTo\", [\"System$IComparable$1$System$ValueTuple$4$\" + Bridge.getTypeAlias(T1) + \"$\" + Bridge.getTypeAlias(T2) + \"$\" + Bridge.getTypeAlias(T3) + \"$\" + Bridge.getTypeAlias(T4) + \"$compareTo\", \"System$IComparable$1$compareTo\"]\r\n ],\r\n ctors: {\r\n $ctor1: function (item1, item2, item3, item4) {\r\n this.$initialize();\r\n this.Item1 = item1;\r\n this.Item2 = item2;\r\n this.Item3 = item3;\r\n this.Item4 = item4;\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n equals: function (obj) {\r\n return Bridge.is(obj, System.ValueTuple$4(T1,T2,T3,T4)) && this.equalsT(System.Nullable.getValue(Bridge.cast(Bridge.unbox(obj, System.ValueTuple$4(T1,T2,T3,T4)), System.ValueTuple$4(T1,T2,T3,T4))));\r\n },\r\n equalsT: function (other) {\r\n return System.ValueTuple$4(T1,T2,T3,T4).s_t1Comparer.equals2(this.Item1, other.Item1) && System.ValueTuple$4(T1,T2,T3,T4).s_t2Comparer.equals2(this.Item2, other.Item2) && System.ValueTuple$4(T1,T2,T3,T4).s_t3Comparer.equals2(this.Item3, other.Item3) && System.ValueTuple$4(T1,T2,T3,T4).s_t4Comparer.equals2(this.Item4, other.Item4);\r\n },\r\n System$Collections$IStructuralEquatable$Equals: function (other, comparer) {\r\n if (other == null || !(Bridge.is(other, System.ValueTuple$4(T1,T2,T3,T4)))) {\r\n return false;\r\n }\r\n\r\n var objTuple = System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$4(T1,T2,T3,T4)), System.ValueTuple$4(T1,T2,T3,T4)));\r\n\r\n return comparer.System$Collections$IEqualityComparer$equals(this.Item1, objTuple.Item1) && comparer.System$Collections$IEqualityComparer$equals(this.Item2, objTuple.Item2) && comparer.System$Collections$IEqualityComparer$equals(this.Item3, objTuple.Item3) && comparer.System$Collections$IEqualityComparer$equals(this.Item4, objTuple.Item4);\r\n },\r\n System$IComparable$compareTo: function (other) {\r\n if (other == null) {\r\n return 1;\r\n }\r\n\r\n if (!(Bridge.is(other, System.ValueTuple$4(T1,T2,T3,T4)))) {\r\n throw new System.ArgumentException.$ctor3(System.SR.ArgumentException_ValueTupleIncorrectType, \"other\");\r\n }\r\n\r\n return this.compareTo(System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$4(T1,T2,T3,T4)), System.ValueTuple$4(T1,T2,T3,T4))));\r\n },\r\n compareTo: function (other) {\r\n var c = new (System.Collections.Generic.Comparer$1(T1))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item1, other.Item1);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = new (System.Collections.Generic.Comparer$1(T2))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item2, other.Item2);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = new (System.Collections.Generic.Comparer$1(T3))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item3, other.Item3);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n return new (System.Collections.Generic.Comparer$1(T4))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item4, other.Item4);\r\n },\r\n System$Collections$IStructuralComparable$CompareTo: function (other, comparer) {\r\n if (other == null) {\r\n return 1;\r\n }\r\n\r\n if (!(Bridge.is(other, System.ValueTuple$4(T1,T2,T3,T4)))) {\r\n throw new System.ArgumentException.$ctor3(System.SR.ArgumentException_ValueTupleIncorrectType, \"other\");\r\n }\r\n\r\n var objTuple = System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$4(T1,T2,T3,T4)), System.ValueTuple$4(T1,T2,T3,T4)));\r\n\r\n var c = comparer.System$Collections$IComparer$compare(this.Item1, objTuple.Item1);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = comparer.System$Collections$IComparer$compare(this.Item2, objTuple.Item2);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = comparer.System$Collections$IComparer$compare(this.Item3, objTuple.Item3);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n return comparer.System$Collections$IComparer$compare(this.Item4, objTuple.Item4);\r\n },\r\n getHashCode: function () {\r\n return System.ValueTuple.CombineHashCodes$2(System.ValueTuple$4(T1,T2,T3,T4).s_t1Comparer.getHashCode2(this.Item1), System.ValueTuple$4(T1,T2,T3,T4).s_t2Comparer.getHashCode2(this.Item2), System.ValueTuple$4(T1,T2,T3,T4).s_t3Comparer.getHashCode2(this.Item3), System.ValueTuple$4(T1,T2,T3,T4).s_t4Comparer.getHashCode2(this.Item4));\r\n },\r\n System$Collections$IStructuralEquatable$GetHashCode: function (comparer) {\r\n return this.GetHashCodeCore(comparer);\r\n },\r\n System$ITupleInternal$GetHashCode: function (comparer) {\r\n return this.GetHashCodeCore(comparer);\r\n },\r\n GetHashCodeCore: function (comparer) {\r\n return System.ValueTuple.CombineHashCodes$2(comparer.System$Collections$IEqualityComparer$getHashCode(this.Item1), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item2), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item3), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item4));\r\n },\r\n toString: function () {\r\n return \"(\" + ((this.Item1 != null ? Bridge.toString(this.Item1) : null) || \"\") + \", \" + ((this.Item2 != null ? Bridge.toString(this.Item2) : null) || \"\") + \", \" + ((this.Item3 != null ? Bridge.toString(this.Item3) : null) || \"\") + \", \" + ((this.Item4 != null ? Bridge.toString(this.Item4) : null) || \"\") + \")\";\r\n },\r\n System$ITupleInternal$ToStringEnd: function () {\r\n return ((this.Item1 != null ? Bridge.toString(this.Item1) : null) || \"\") + \", \" + ((this.Item2 != null ? Bridge.toString(this.Item2) : null) || \"\") + \", \" + ((this.Item3 != null ? Bridge.toString(this.Item3) : null) || \"\") + \", \" + ((this.Item4 != null ? Bridge.toString(this.Item4) : null) || \"\") + \")\";\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.ValueTuple$4(T1,T2,T3,T4))();\r\n s.Item1 = this.Item1;\r\n s.Item2 = this.Item2;\r\n s.Item3 = this.Item3;\r\n s.Item4 = this.Item4;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n Bridge.define(\"System.ValueTuple$5\", function (T1, T2, T3, T4, T5) { return {\r\n inherits: function () { return [System.IEquatable$1(System.ValueTuple$5(T1,T2,T3,T4,T5)),System.Collections.IStructuralEquatable,System.Collections.IStructuralComparable,System.IComparable,System.IComparable$1(System.ValueTuple$5(T1,T2,T3,T4,T5)),System.ITupleInternal]; },\r\n $kind: \"struct\",\r\n statics: {\r\n fields: {\r\n s_t1Comparer: null,\r\n s_t2Comparer: null,\r\n s_t3Comparer: null,\r\n s_t4Comparer: null,\r\n s_t5Comparer: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.s_t1Comparer = System.Collections.Generic.EqualityComparer$1(T1).def;\r\n this.s_t2Comparer = System.Collections.Generic.EqualityComparer$1(T2).def;\r\n this.s_t3Comparer = System.Collections.Generic.EqualityComparer$1(T3).def;\r\n this.s_t4Comparer = System.Collections.Generic.EqualityComparer$1(T4).def;\r\n this.s_t5Comparer = System.Collections.Generic.EqualityComparer$1(T5).def;\r\n }\r\n },\r\n methods: {\r\n getDefaultValue: function () { return new (System.ValueTuple$5(T1,T2,T3,T4,T5))(); }\r\n }\r\n },\r\n fields: {\r\n Item1: Bridge.getDefaultValue(T1),\r\n Item2: Bridge.getDefaultValue(T2),\r\n Item3: Bridge.getDefaultValue(T3),\r\n Item4: Bridge.getDefaultValue(T4),\r\n Item5: Bridge.getDefaultValue(T5)\r\n },\r\n props: {\r\n System$ITupleInternal$Size: {\r\n get: function () {\r\n return 5;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"equalsT\", \"System$IEquatable$1$System$ValueTuple$5$\" + Bridge.getTypeAlias(T1) + \"$\" + Bridge.getTypeAlias(T2) + \"$\" + Bridge.getTypeAlias(T3) + \"$\" + Bridge.getTypeAlias(T4) + \"$\" + Bridge.getTypeAlias(T5) + \"$equalsT\",\r\n \"compareTo\", [\"System$IComparable$1$System$ValueTuple$5$\" + Bridge.getTypeAlias(T1) + \"$\" + Bridge.getTypeAlias(T2) + \"$\" + Bridge.getTypeAlias(T3) + \"$\" + Bridge.getTypeAlias(T4) + \"$\" + Bridge.getTypeAlias(T5) + \"$compareTo\", \"System$IComparable$1$compareTo\"]\r\n ],\r\n ctors: {\r\n $ctor1: function (item1, item2, item3, item4, item5) {\r\n this.$initialize();\r\n this.Item1 = item1;\r\n this.Item2 = item2;\r\n this.Item3 = item3;\r\n this.Item4 = item4;\r\n this.Item5 = item5;\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n equals: function (obj) {\r\n return Bridge.is(obj, System.ValueTuple$5(T1,T2,T3,T4,T5)) && this.equalsT(System.Nullable.getValue(Bridge.cast(Bridge.unbox(obj, System.ValueTuple$5(T1,T2,T3,T4,T5)), System.ValueTuple$5(T1,T2,T3,T4,T5))));\r\n },\r\n equalsT: function (other) {\r\n return System.ValueTuple$5(T1,T2,T3,T4,T5).s_t1Comparer.equals2(this.Item1, other.Item1) && System.ValueTuple$5(T1,T2,T3,T4,T5).s_t2Comparer.equals2(this.Item2, other.Item2) && System.ValueTuple$5(T1,T2,T3,T4,T5).s_t3Comparer.equals2(this.Item3, other.Item3) && System.ValueTuple$5(T1,T2,T3,T4,T5).s_t4Comparer.equals2(this.Item4, other.Item4) && System.ValueTuple$5(T1,T2,T3,T4,T5).s_t5Comparer.equals2(this.Item5, other.Item5);\r\n },\r\n System$Collections$IStructuralEquatable$Equals: function (other, comparer) {\r\n if (other == null || !(Bridge.is(other, System.ValueTuple$5(T1,T2,T3,T4,T5)))) {\r\n return false;\r\n }\r\n\r\n var objTuple = System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$5(T1,T2,T3,T4,T5)), System.ValueTuple$5(T1,T2,T3,T4,T5)));\r\n\r\n return comparer.System$Collections$IEqualityComparer$equals(this.Item1, objTuple.Item1) && comparer.System$Collections$IEqualityComparer$equals(this.Item2, objTuple.Item2) && comparer.System$Collections$IEqualityComparer$equals(this.Item3, objTuple.Item3) && comparer.System$Collections$IEqualityComparer$equals(this.Item4, objTuple.Item4) && comparer.System$Collections$IEqualityComparer$equals(this.Item5, objTuple.Item5);\r\n },\r\n System$IComparable$compareTo: function (other) {\r\n if (other == null) {\r\n return 1;\r\n }\r\n\r\n if (!(Bridge.is(other, System.ValueTuple$5(T1,T2,T3,T4,T5)))) {\r\n throw new System.ArgumentException.$ctor3(System.SR.ArgumentException_ValueTupleIncorrectType, \"other\");\r\n }\r\n\r\n return this.compareTo(System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$5(T1,T2,T3,T4,T5)), System.ValueTuple$5(T1,T2,T3,T4,T5))));\r\n },\r\n compareTo: function (other) {\r\n var c = new (System.Collections.Generic.Comparer$1(T1))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item1, other.Item1);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = new (System.Collections.Generic.Comparer$1(T2))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item2, other.Item2);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = new (System.Collections.Generic.Comparer$1(T3))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item3, other.Item3);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = new (System.Collections.Generic.Comparer$1(T4))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item4, other.Item4);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n return new (System.Collections.Generic.Comparer$1(T5))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item5, other.Item5);\r\n },\r\n System$Collections$IStructuralComparable$CompareTo: function (other, comparer) {\r\n if (other == null) {\r\n return 1;\r\n }\r\n\r\n if (!(Bridge.is(other, System.ValueTuple$5(T1,T2,T3,T4,T5)))) {\r\n throw new System.ArgumentException.$ctor3(System.SR.ArgumentException_ValueTupleIncorrectType, \"other\");\r\n }\r\n\r\n var objTuple = System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$5(T1,T2,T3,T4,T5)), System.ValueTuple$5(T1,T2,T3,T4,T5)));\r\n\r\n var c = comparer.System$Collections$IComparer$compare(this.Item1, objTuple.Item1);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = comparer.System$Collections$IComparer$compare(this.Item2, objTuple.Item2);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = comparer.System$Collections$IComparer$compare(this.Item3, objTuple.Item3);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = comparer.System$Collections$IComparer$compare(this.Item4, objTuple.Item4);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n return comparer.System$Collections$IComparer$compare(this.Item5, objTuple.Item5);\r\n },\r\n getHashCode: function () {\r\n return System.ValueTuple.CombineHashCodes$3(System.ValueTuple$5(T1,T2,T3,T4,T5).s_t1Comparer.getHashCode2(this.Item1), System.ValueTuple$5(T1,T2,T3,T4,T5).s_t2Comparer.getHashCode2(this.Item2), System.ValueTuple$5(T1,T2,T3,T4,T5).s_t3Comparer.getHashCode2(this.Item3), System.ValueTuple$5(T1,T2,T3,T4,T5).s_t4Comparer.getHashCode2(this.Item4), System.ValueTuple$5(T1,T2,T3,T4,T5).s_t5Comparer.getHashCode2(this.Item5));\r\n },\r\n System$Collections$IStructuralEquatable$GetHashCode: function (comparer) {\r\n return this.GetHashCodeCore(comparer);\r\n },\r\n System$ITupleInternal$GetHashCode: function (comparer) {\r\n return this.GetHashCodeCore(comparer);\r\n },\r\n GetHashCodeCore: function (comparer) {\r\n return System.ValueTuple.CombineHashCodes$3(comparer.System$Collections$IEqualityComparer$getHashCode(this.Item1), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item2), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item3), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item4), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item5));\r\n },\r\n toString: function () {\r\n return \"(\" + ((this.Item1 != null ? Bridge.toString(this.Item1) : null) || \"\") + \", \" + ((this.Item2 != null ? Bridge.toString(this.Item2) : null) || \"\") + \", \" + ((this.Item3 != null ? Bridge.toString(this.Item3) : null) || \"\") + \", \" + ((this.Item4 != null ? Bridge.toString(this.Item4) : null) || \"\") + \", \" + ((this.Item5 != null ? Bridge.toString(this.Item5) : null) || \"\") + \")\";\r\n },\r\n System$ITupleInternal$ToStringEnd: function () {\r\n return ((this.Item1 != null ? Bridge.toString(this.Item1) : null) || \"\") + \", \" + ((this.Item2 != null ? Bridge.toString(this.Item2) : null) || \"\") + \", \" + ((this.Item3 != null ? Bridge.toString(this.Item3) : null) || \"\") + \", \" + ((this.Item4 != null ? Bridge.toString(this.Item4) : null) || \"\") + \", \" + ((this.Item5 != null ? Bridge.toString(this.Item5) : null) || \"\") + \")\";\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.ValueTuple$5(T1,T2,T3,T4,T5))();\r\n s.Item1 = this.Item1;\r\n s.Item2 = this.Item2;\r\n s.Item3 = this.Item3;\r\n s.Item4 = this.Item4;\r\n s.Item5 = this.Item5;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n Bridge.define(\"System.ValueTuple$6\", function (T1, T2, T3, T4, T5, T6) { return {\r\n inherits: function () { return [System.IEquatable$1(System.ValueTuple$6(T1,T2,T3,T4,T5,T6)),System.Collections.IStructuralEquatable,System.Collections.IStructuralComparable,System.IComparable,System.IComparable$1(System.ValueTuple$6(T1,T2,T3,T4,T5,T6)),System.ITupleInternal]; },\r\n $kind: \"struct\",\r\n statics: {\r\n fields: {\r\n s_t1Comparer: null,\r\n s_t2Comparer: null,\r\n s_t3Comparer: null,\r\n s_t4Comparer: null,\r\n s_t5Comparer: null,\r\n s_t6Comparer: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.s_t1Comparer = System.Collections.Generic.EqualityComparer$1(T1).def;\r\n this.s_t2Comparer = System.Collections.Generic.EqualityComparer$1(T2).def;\r\n this.s_t3Comparer = System.Collections.Generic.EqualityComparer$1(T3).def;\r\n this.s_t4Comparer = System.Collections.Generic.EqualityComparer$1(T4).def;\r\n this.s_t5Comparer = System.Collections.Generic.EqualityComparer$1(T5).def;\r\n this.s_t6Comparer = System.Collections.Generic.EqualityComparer$1(T6).def;\r\n }\r\n },\r\n methods: {\r\n getDefaultValue: function () { return new (System.ValueTuple$6(T1,T2,T3,T4,T5,T6))(); }\r\n }\r\n },\r\n fields: {\r\n Item1: Bridge.getDefaultValue(T1),\r\n Item2: Bridge.getDefaultValue(T2),\r\n Item3: Bridge.getDefaultValue(T3),\r\n Item4: Bridge.getDefaultValue(T4),\r\n Item5: Bridge.getDefaultValue(T5),\r\n Item6: Bridge.getDefaultValue(T6)\r\n },\r\n props: {\r\n System$ITupleInternal$Size: {\r\n get: function () {\r\n return 6;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"equalsT\", \"System$IEquatable$1$System$ValueTuple$6$\" + Bridge.getTypeAlias(T1) + \"$\" + Bridge.getTypeAlias(T2) + \"$\" + Bridge.getTypeAlias(T3) + \"$\" + Bridge.getTypeAlias(T4) + \"$\" + Bridge.getTypeAlias(T5) + \"$\" + Bridge.getTypeAlias(T6) + \"$equalsT\",\r\n \"compareTo\", [\"System$IComparable$1$System$ValueTuple$6$\" + Bridge.getTypeAlias(T1) + \"$\" + Bridge.getTypeAlias(T2) + \"$\" + Bridge.getTypeAlias(T3) + \"$\" + Bridge.getTypeAlias(T4) + \"$\" + Bridge.getTypeAlias(T5) + \"$\" + Bridge.getTypeAlias(T6) + \"$compareTo\", \"System$IComparable$1$compareTo\"]\r\n ],\r\n ctors: {\r\n $ctor1: function (item1, item2, item3, item4, item5, item6) {\r\n this.$initialize();\r\n this.Item1 = item1;\r\n this.Item2 = item2;\r\n this.Item3 = item3;\r\n this.Item4 = item4;\r\n this.Item5 = item5;\r\n this.Item6 = item6;\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n equals: function (obj) {\r\n return Bridge.is(obj, System.ValueTuple$6(T1,T2,T3,T4,T5,T6)) && this.equalsT(System.Nullable.getValue(Bridge.cast(Bridge.unbox(obj, System.ValueTuple$6(T1,T2,T3,T4,T5,T6)), System.ValueTuple$6(T1,T2,T3,T4,T5,T6))));\r\n },\r\n equalsT: function (other) {\r\n return System.ValueTuple$6(T1,T2,T3,T4,T5,T6).s_t1Comparer.equals2(this.Item1, other.Item1) && System.ValueTuple$6(T1,T2,T3,T4,T5,T6).s_t2Comparer.equals2(this.Item2, other.Item2) && System.ValueTuple$6(T1,T2,T3,T4,T5,T6).s_t3Comparer.equals2(this.Item3, other.Item3) && System.ValueTuple$6(T1,T2,T3,T4,T5,T6).s_t4Comparer.equals2(this.Item4, other.Item4) && System.ValueTuple$6(T1,T2,T3,T4,T5,T6).s_t5Comparer.equals2(this.Item5, other.Item5) && System.ValueTuple$6(T1,T2,T3,T4,T5,T6).s_t6Comparer.equals2(this.Item6, other.Item6);\r\n },\r\n System$Collections$IStructuralEquatable$Equals: function (other, comparer) {\r\n if (other == null || !(Bridge.is(other, System.ValueTuple$6(T1,T2,T3,T4,T5,T6)))) {\r\n return false;\r\n }\r\n\r\n var objTuple = System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$6(T1,T2,T3,T4,T5,T6)), System.ValueTuple$6(T1,T2,T3,T4,T5,T6)));\r\n\r\n return comparer.System$Collections$IEqualityComparer$equals(this.Item1, objTuple.Item1) && comparer.System$Collections$IEqualityComparer$equals(this.Item2, objTuple.Item2) && comparer.System$Collections$IEqualityComparer$equals(this.Item3, objTuple.Item3) && comparer.System$Collections$IEqualityComparer$equals(this.Item4, objTuple.Item4) && comparer.System$Collections$IEqualityComparer$equals(this.Item5, objTuple.Item5) && comparer.System$Collections$IEqualityComparer$equals(this.Item6, objTuple.Item6);\r\n },\r\n System$IComparable$compareTo: function (other) {\r\n if (other == null) {\r\n return 1;\r\n }\r\n\r\n if (!(Bridge.is(other, System.ValueTuple$6(T1,T2,T3,T4,T5,T6)))) {\r\n throw new System.ArgumentException.$ctor3(System.SR.ArgumentException_ValueTupleIncorrectType, \"other\");\r\n }\r\n\r\n return this.compareTo(System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$6(T1,T2,T3,T4,T5,T6)), System.ValueTuple$6(T1,T2,T3,T4,T5,T6))));\r\n },\r\n compareTo: function (other) {\r\n var c = new (System.Collections.Generic.Comparer$1(T1))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item1, other.Item1);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = new (System.Collections.Generic.Comparer$1(T2))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item2, other.Item2);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = new (System.Collections.Generic.Comparer$1(T3))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item3, other.Item3);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = new (System.Collections.Generic.Comparer$1(T4))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item4, other.Item4);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = new (System.Collections.Generic.Comparer$1(T5))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item5, other.Item5);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n return new (System.Collections.Generic.Comparer$1(T6))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item6, other.Item6);\r\n },\r\n System$Collections$IStructuralComparable$CompareTo: function (other, comparer) {\r\n if (other == null) {\r\n return 1;\r\n }\r\n\r\n if (!(Bridge.is(other, System.ValueTuple$6(T1,T2,T3,T4,T5,T6)))) {\r\n throw new System.ArgumentException.$ctor3(System.SR.ArgumentException_ValueTupleIncorrectType, \"other\");\r\n }\r\n\r\n var objTuple = System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$6(T1,T2,T3,T4,T5,T6)), System.ValueTuple$6(T1,T2,T3,T4,T5,T6)));\r\n\r\n var c = comparer.System$Collections$IComparer$compare(this.Item1, objTuple.Item1);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = comparer.System$Collections$IComparer$compare(this.Item2, objTuple.Item2);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = comparer.System$Collections$IComparer$compare(this.Item3, objTuple.Item3);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = comparer.System$Collections$IComparer$compare(this.Item4, objTuple.Item4);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = comparer.System$Collections$IComparer$compare(this.Item5, objTuple.Item5);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n return comparer.System$Collections$IComparer$compare(this.Item6, objTuple.Item6);\r\n },\r\n getHashCode: function () {\r\n return System.ValueTuple.CombineHashCodes$4(System.ValueTuple$6(T1,T2,T3,T4,T5,T6).s_t1Comparer.getHashCode2(this.Item1), System.ValueTuple$6(T1,T2,T3,T4,T5,T6).s_t2Comparer.getHashCode2(this.Item2), System.ValueTuple$6(T1,T2,T3,T4,T5,T6).s_t3Comparer.getHashCode2(this.Item3), System.ValueTuple$6(T1,T2,T3,T4,T5,T6).s_t4Comparer.getHashCode2(this.Item4), System.ValueTuple$6(T1,T2,T3,T4,T5,T6).s_t5Comparer.getHashCode2(this.Item5), System.ValueTuple$6(T1,T2,T3,T4,T5,T6).s_t6Comparer.getHashCode2(this.Item6));\r\n },\r\n System$Collections$IStructuralEquatable$GetHashCode: function (comparer) {\r\n return this.GetHashCodeCore(comparer);\r\n },\r\n System$ITupleInternal$GetHashCode: function (comparer) {\r\n return this.GetHashCodeCore(comparer);\r\n },\r\n GetHashCodeCore: function (comparer) {\r\n return System.ValueTuple.CombineHashCodes$4(comparer.System$Collections$IEqualityComparer$getHashCode(this.Item1), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item2), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item3), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item4), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item5), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item6));\r\n },\r\n toString: function () {\r\n return \"(\" + ((this.Item1 != null ? Bridge.toString(this.Item1) : null) || \"\") + \", \" + ((this.Item2 != null ? Bridge.toString(this.Item2) : null) || \"\") + \", \" + ((this.Item3 != null ? Bridge.toString(this.Item3) : null) || \"\") + \", \" + ((this.Item4 != null ? Bridge.toString(this.Item4) : null) || \"\") + \", \" + ((this.Item5 != null ? Bridge.toString(this.Item5) : null) || \"\") + \", \" + ((this.Item6 != null ? Bridge.toString(this.Item6) : null) || \"\") + \")\";\r\n },\r\n System$ITupleInternal$ToStringEnd: function () {\r\n return ((this.Item1 != null ? Bridge.toString(this.Item1) : null) || \"\") + \", \" + ((this.Item2 != null ? Bridge.toString(this.Item2) : null) || \"\") + \", \" + ((this.Item3 != null ? Bridge.toString(this.Item3) : null) || \"\") + \", \" + ((this.Item4 != null ? Bridge.toString(this.Item4) : null) || \"\") + \", \" + ((this.Item5 != null ? Bridge.toString(this.Item5) : null) || \"\") + \", \" + ((this.Item6 != null ? Bridge.toString(this.Item6) : null) || \"\") + \")\";\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.ValueTuple$6(T1,T2,T3,T4,T5,T6))();\r\n s.Item1 = this.Item1;\r\n s.Item2 = this.Item2;\r\n s.Item3 = this.Item3;\r\n s.Item4 = this.Item4;\r\n s.Item5 = this.Item5;\r\n s.Item6 = this.Item6;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n Bridge.define(\"System.ValueTuple$7\", function (T1, T2, T3, T4, T5, T6, T7) { return {\r\n inherits: function () { return [System.IEquatable$1(System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7)),System.Collections.IStructuralEquatable,System.Collections.IStructuralComparable,System.IComparable,System.IComparable$1(System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7)),System.ITupleInternal]; },\r\n $kind: \"struct\",\r\n statics: {\r\n fields: {\r\n s_t1Comparer: null,\r\n s_t2Comparer: null,\r\n s_t3Comparer: null,\r\n s_t4Comparer: null,\r\n s_t5Comparer: null,\r\n s_t6Comparer: null,\r\n s_t7Comparer: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.s_t1Comparer = System.Collections.Generic.EqualityComparer$1(T1).def;\r\n this.s_t2Comparer = System.Collections.Generic.EqualityComparer$1(T2).def;\r\n this.s_t3Comparer = System.Collections.Generic.EqualityComparer$1(T3).def;\r\n this.s_t4Comparer = System.Collections.Generic.EqualityComparer$1(T4).def;\r\n this.s_t5Comparer = System.Collections.Generic.EqualityComparer$1(T5).def;\r\n this.s_t6Comparer = System.Collections.Generic.EqualityComparer$1(T6).def;\r\n this.s_t7Comparer = System.Collections.Generic.EqualityComparer$1(T7).def;\r\n }\r\n },\r\n methods: {\r\n getDefaultValue: function () { return new (System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7))(); }\r\n }\r\n },\r\n fields: {\r\n Item1: Bridge.getDefaultValue(T1),\r\n Item2: Bridge.getDefaultValue(T2),\r\n Item3: Bridge.getDefaultValue(T3),\r\n Item4: Bridge.getDefaultValue(T4),\r\n Item5: Bridge.getDefaultValue(T5),\r\n Item6: Bridge.getDefaultValue(T6),\r\n Item7: Bridge.getDefaultValue(T7)\r\n },\r\n props: {\r\n System$ITupleInternal$Size: {\r\n get: function () {\r\n return 7;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"equalsT\", \"System$IEquatable$1$System$ValueTuple$7$\" + Bridge.getTypeAlias(T1) + \"$\" + Bridge.getTypeAlias(T2) + \"$\" + Bridge.getTypeAlias(T3) + \"$\" + Bridge.getTypeAlias(T4) + \"$\" + Bridge.getTypeAlias(T5) + \"$\" + Bridge.getTypeAlias(T6) + \"$\" + Bridge.getTypeAlias(T7) + \"$equalsT\",\r\n \"compareTo\", [\"System$IComparable$1$System$ValueTuple$7$\" + Bridge.getTypeAlias(T1) + \"$\" + Bridge.getTypeAlias(T2) + \"$\" + Bridge.getTypeAlias(T3) + \"$\" + Bridge.getTypeAlias(T4) + \"$\" + Bridge.getTypeAlias(T5) + \"$\" + Bridge.getTypeAlias(T6) + \"$\" + Bridge.getTypeAlias(T7) + \"$compareTo\", \"System$IComparable$1$compareTo\"]\r\n ],\r\n ctors: {\r\n $ctor1: function (item1, item2, item3, item4, item5, item6, item7) {\r\n this.$initialize();\r\n this.Item1 = item1;\r\n this.Item2 = item2;\r\n this.Item3 = item3;\r\n this.Item4 = item4;\r\n this.Item5 = item5;\r\n this.Item6 = item6;\r\n this.Item7 = item7;\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n equals: function (obj) {\r\n return Bridge.is(obj, System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7)) && this.equalsT(System.Nullable.getValue(Bridge.cast(Bridge.unbox(obj, System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7)), System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7))));\r\n },\r\n equalsT: function (other) {\r\n return System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7).s_t1Comparer.equals2(this.Item1, other.Item1) && System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7).s_t2Comparer.equals2(this.Item2, other.Item2) && System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7).s_t3Comparer.equals2(this.Item3, other.Item3) && System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7).s_t4Comparer.equals2(this.Item4, other.Item4) && System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7).s_t5Comparer.equals2(this.Item5, other.Item5) && System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7).s_t6Comparer.equals2(this.Item6, other.Item6) && System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7).s_t7Comparer.equals2(this.Item7, other.Item7);\r\n },\r\n System$Collections$IStructuralEquatable$Equals: function (other, comparer) {\r\n if (other == null || !(Bridge.is(other, System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7)))) {\r\n return false;\r\n }\r\n\r\n var objTuple = System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7)), System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7)));\r\n\r\n return comparer.System$Collections$IEqualityComparer$equals(this.Item1, objTuple.Item1) && comparer.System$Collections$IEqualityComparer$equals(this.Item2, objTuple.Item2) && comparer.System$Collections$IEqualityComparer$equals(this.Item3, objTuple.Item3) && comparer.System$Collections$IEqualityComparer$equals(this.Item4, objTuple.Item4) && comparer.System$Collections$IEqualityComparer$equals(this.Item5, objTuple.Item5) && comparer.System$Collections$IEqualityComparer$equals(this.Item6, objTuple.Item6) && comparer.System$Collections$IEqualityComparer$equals(this.Item7, objTuple.Item7);\r\n },\r\n System$IComparable$compareTo: function (other) {\r\n if (other == null) {\r\n return 1;\r\n }\r\n\r\n if (!(Bridge.is(other, System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7)))) {\r\n throw new System.ArgumentException.$ctor3(System.SR.ArgumentException_ValueTupleIncorrectType, \"other\");\r\n }\r\n\r\n return this.compareTo(System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7)), System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7))));\r\n },\r\n compareTo: function (other) {\r\n var c = new (System.Collections.Generic.Comparer$1(T1))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item1, other.Item1);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = new (System.Collections.Generic.Comparer$1(T2))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item2, other.Item2);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = new (System.Collections.Generic.Comparer$1(T3))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item3, other.Item3);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = new (System.Collections.Generic.Comparer$1(T4))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item4, other.Item4);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = new (System.Collections.Generic.Comparer$1(T5))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item5, other.Item5);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = new (System.Collections.Generic.Comparer$1(T6))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item6, other.Item6);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n return new (System.Collections.Generic.Comparer$1(T7))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item7, other.Item7);\r\n },\r\n System$Collections$IStructuralComparable$CompareTo: function (other, comparer) {\r\n if (other == null) {\r\n return 1;\r\n }\r\n\r\n if (!(Bridge.is(other, System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7)))) {\r\n throw new System.ArgumentException.$ctor3(System.SR.ArgumentException_ValueTupleIncorrectType, \"other\");\r\n }\r\n\r\n var objTuple = System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7)), System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7)));\r\n\r\n var c = comparer.System$Collections$IComparer$compare(this.Item1, objTuple.Item1);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = comparer.System$Collections$IComparer$compare(this.Item2, objTuple.Item2);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = comparer.System$Collections$IComparer$compare(this.Item3, objTuple.Item3);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = comparer.System$Collections$IComparer$compare(this.Item4, objTuple.Item4);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = comparer.System$Collections$IComparer$compare(this.Item5, objTuple.Item5);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = comparer.System$Collections$IComparer$compare(this.Item6, objTuple.Item6);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n return comparer.System$Collections$IComparer$compare(this.Item7, objTuple.Item7);\r\n },\r\n getHashCode: function () {\r\n return System.ValueTuple.CombineHashCodes$5(System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7).s_t1Comparer.getHashCode2(this.Item1), System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7).s_t2Comparer.getHashCode2(this.Item2), System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7).s_t3Comparer.getHashCode2(this.Item3), System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7).s_t4Comparer.getHashCode2(this.Item4), System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7).s_t5Comparer.getHashCode2(this.Item5), System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7).s_t6Comparer.getHashCode2(this.Item6), System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7).s_t7Comparer.getHashCode2(this.Item7));\r\n },\r\n System$Collections$IStructuralEquatable$GetHashCode: function (comparer) {\r\n return this.GetHashCodeCore(comparer);\r\n },\r\n System$ITupleInternal$GetHashCode: function (comparer) {\r\n return this.GetHashCodeCore(comparer);\r\n },\r\n GetHashCodeCore: function (comparer) {\r\n return System.ValueTuple.CombineHashCodes$5(comparer.System$Collections$IEqualityComparer$getHashCode(this.Item1), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item2), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item3), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item4), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item5), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item6), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item7));\r\n },\r\n toString: function () {\r\n return \"(\" + ((this.Item1 != null ? Bridge.toString(this.Item1) : null) || \"\") + \", \" + ((this.Item2 != null ? Bridge.toString(this.Item2) : null) || \"\") + \", \" + ((this.Item3 != null ? Bridge.toString(this.Item3) : null) || \"\") + \", \" + ((this.Item4 != null ? Bridge.toString(this.Item4) : null) || \"\") + \", \" + ((this.Item5 != null ? Bridge.toString(this.Item5) : null) || \"\") + \", \" + ((this.Item6 != null ? Bridge.toString(this.Item6) : null) || \"\") + \", \" + ((this.Item7 != null ? Bridge.toString(this.Item7) : null) || \"\") + \")\";\r\n },\r\n System$ITupleInternal$ToStringEnd: function () {\r\n return ((this.Item1 != null ? Bridge.toString(this.Item1) : null) || \"\") + \", \" + ((this.Item2 != null ? Bridge.toString(this.Item2) : null) || \"\") + \", \" + ((this.Item3 != null ? Bridge.toString(this.Item3) : null) || \"\") + \", \" + ((this.Item4 != null ? Bridge.toString(this.Item4) : null) || \"\") + \", \" + ((this.Item5 != null ? Bridge.toString(this.Item5) : null) || \"\") + \", \" + ((this.Item6 != null ? Bridge.toString(this.Item6) : null) || \"\") + \", \" + ((this.Item7 != null ? Bridge.toString(this.Item7) : null) || \"\") + \")\";\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.ValueTuple$7(T1,T2,T3,T4,T5,T6,T7))();\r\n s.Item1 = this.Item1;\r\n s.Item2 = this.Item2;\r\n s.Item3 = this.Item3;\r\n s.Item4 = this.Item4;\r\n s.Item5 = this.Item5;\r\n s.Item6 = this.Item6;\r\n s.Item7 = this.Item7;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n Bridge.define(\"System.ValueTuple$8\", function (T1, T2, T3, T4, T5, T6, T7, TRest) { return {\r\n inherits: function () { return [System.IEquatable$1(System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest)),System.Collections.IStructuralEquatable,System.Collections.IStructuralComparable,System.IComparable,System.IComparable$1(System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest)),System.ITupleInternal]; },\r\n $kind: \"struct\",\r\n statics: {\r\n fields: {\r\n s_t1Comparer: null,\r\n s_t2Comparer: null,\r\n s_t3Comparer: null,\r\n s_t4Comparer: null,\r\n s_t5Comparer: null,\r\n s_t6Comparer: null,\r\n s_t7Comparer: null,\r\n s_tRestComparer: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.s_t1Comparer = System.Collections.Generic.EqualityComparer$1(T1).def;\r\n this.s_t2Comparer = System.Collections.Generic.EqualityComparer$1(T2).def;\r\n this.s_t3Comparer = System.Collections.Generic.EqualityComparer$1(T3).def;\r\n this.s_t4Comparer = System.Collections.Generic.EqualityComparer$1(T4).def;\r\n this.s_t5Comparer = System.Collections.Generic.EqualityComparer$1(T5).def;\r\n this.s_t6Comparer = System.Collections.Generic.EqualityComparer$1(T6).def;\r\n this.s_t7Comparer = System.Collections.Generic.EqualityComparer$1(T7).def;\r\n this.s_tRestComparer = System.Collections.Generic.EqualityComparer$1(TRest).def;\r\n }\r\n },\r\n methods: {\r\n getDefaultValue: function () { return new (System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest))(); }\r\n }\r\n },\r\n fields: {\r\n Item1: Bridge.getDefaultValue(T1),\r\n Item2: Bridge.getDefaultValue(T2),\r\n Item3: Bridge.getDefaultValue(T3),\r\n Item4: Bridge.getDefaultValue(T4),\r\n Item5: Bridge.getDefaultValue(T5),\r\n Item6: Bridge.getDefaultValue(T6),\r\n Item7: Bridge.getDefaultValue(T7),\r\n Rest: Bridge.getDefaultValue(TRest)\r\n },\r\n props: {\r\n System$ITupleInternal$Size: {\r\n get: function () {\r\n var rest = Bridge.as(this.Rest, System.ITupleInternal);\r\n return rest == null ? 8 : ((7 + rest.System$ITupleInternal$Size) | 0);\r\n }\r\n }\r\n },\r\n alias: [\r\n \"equalsT\", \"System$IEquatable$1$System$ValueTuple$8$\" + Bridge.getTypeAlias(T1) + \"$\" + Bridge.getTypeAlias(T2) + \"$\" + Bridge.getTypeAlias(T3) + \"$\" + Bridge.getTypeAlias(T4) + \"$\" + Bridge.getTypeAlias(T5) + \"$\" + Bridge.getTypeAlias(T6) + \"$\" + Bridge.getTypeAlias(T7) + \"$\" + Bridge.getTypeAlias(TRest) + \"$equalsT\",\r\n \"compareTo\", [\"System$IComparable$1$System$ValueTuple$8$\" + Bridge.getTypeAlias(T1) + \"$\" + Bridge.getTypeAlias(T2) + \"$\" + Bridge.getTypeAlias(T3) + \"$\" + Bridge.getTypeAlias(T4) + \"$\" + Bridge.getTypeAlias(T5) + \"$\" + Bridge.getTypeAlias(T6) + \"$\" + Bridge.getTypeAlias(T7) + \"$\" + Bridge.getTypeAlias(TRest) + \"$compareTo\", \"System$IComparable$1$compareTo\"]\r\n ],\r\n ctors: {\r\n $ctor1: function (item1, item2, item3, item4, item5, item6, item7, rest) {\r\n this.$initialize();\r\n if (!(Bridge.is(rest, System.ITupleInternal))) {\r\n throw new System.ArgumentException.$ctor1(System.SR.ArgumentException_ValueTupleLastArgumentNotAValueTuple);\r\n }\r\n\r\n this.Item1 = item1;\r\n this.Item2 = item2;\r\n this.Item3 = item3;\r\n this.Item4 = item4;\r\n this.Item5 = item5;\r\n this.Item6 = item6;\r\n this.Item7 = item7;\r\n this.Rest = rest;\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n equals: function (obj) {\r\n return Bridge.is(obj, System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest)) && this.equalsT(System.Nullable.getValue(Bridge.cast(Bridge.unbox(obj, System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest)), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest))));\r\n },\r\n equalsT: function (other) {\r\n return System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t1Comparer.equals2(this.Item1, other.Item1) && System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t2Comparer.equals2(this.Item2, other.Item2) && System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t3Comparer.equals2(this.Item3, other.Item3) && System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t4Comparer.equals2(this.Item4, other.Item4) && System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t5Comparer.equals2(this.Item5, other.Item5) && System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t6Comparer.equals2(this.Item6, other.Item6) && System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t7Comparer.equals2(this.Item7, other.Item7) && System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_tRestComparer.equals2(this.Rest, other.Rest);\r\n },\r\n System$Collections$IStructuralEquatable$Equals: function (other, comparer) {\r\n if (other == null || !(Bridge.is(other, System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest)))) {\r\n return false;\r\n }\r\n\r\n var objTuple = System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest)), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest)));\r\n\r\n return comparer.System$Collections$IEqualityComparer$equals(this.Item1, objTuple.Item1) && comparer.System$Collections$IEqualityComparer$equals(this.Item2, objTuple.Item2) && comparer.System$Collections$IEqualityComparer$equals(this.Item3, objTuple.Item3) && comparer.System$Collections$IEqualityComparer$equals(this.Item4, objTuple.Item4) && comparer.System$Collections$IEqualityComparer$equals(this.Item5, objTuple.Item5) && comparer.System$Collections$IEqualityComparer$equals(this.Item6, objTuple.Item6) && comparer.System$Collections$IEqualityComparer$equals(this.Item7, objTuple.Item7) && comparer.System$Collections$IEqualityComparer$equals(this.Rest, objTuple.Rest);\r\n },\r\n System$IComparable$compareTo: function (other) {\r\n if (other == null) {\r\n return 1;\r\n }\r\n\r\n if (!(Bridge.is(other, System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest)))) {\r\n throw new System.ArgumentException.$ctor3(System.SR.ArgumentException_ValueTupleIncorrectType, \"other\");\r\n }\r\n\r\n return this.compareTo(System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest)), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest))));\r\n },\r\n compareTo: function (other) {\r\n var c = new (System.Collections.Generic.Comparer$1(T1))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item1, other.Item1);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = new (System.Collections.Generic.Comparer$1(T2))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item2, other.Item2);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = new (System.Collections.Generic.Comparer$1(T3))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item3, other.Item3);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = new (System.Collections.Generic.Comparer$1(T4))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item4, other.Item4);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = new (System.Collections.Generic.Comparer$1(T5))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item5, other.Item5);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = new (System.Collections.Generic.Comparer$1(T6))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item6, other.Item6);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = new (System.Collections.Generic.Comparer$1(T7))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Item7, other.Item7);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n return new (System.Collections.Generic.Comparer$1(TRest))(System.Collections.Generic.Comparer$1.$default.fn).compare(this.Rest, other.Rest);\r\n },\r\n System$Collections$IStructuralComparable$CompareTo: function (other, comparer) {\r\n if (other == null) {\r\n return 1;\r\n }\r\n\r\n if (!(Bridge.is(other, System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest)))) {\r\n throw new System.ArgumentException.$ctor3(System.SR.ArgumentException_ValueTupleIncorrectType, \"other\");\r\n }\r\n\r\n var objTuple = System.Nullable.getValue(Bridge.cast(Bridge.unbox(other, System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest)), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest)));\r\n\r\n var c = comparer.System$Collections$IComparer$compare(this.Item1, objTuple.Item1);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = comparer.System$Collections$IComparer$compare(this.Item2, objTuple.Item2);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = comparer.System$Collections$IComparer$compare(this.Item3, objTuple.Item3);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = comparer.System$Collections$IComparer$compare(this.Item4, objTuple.Item4);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = comparer.System$Collections$IComparer$compare(this.Item5, objTuple.Item5);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = comparer.System$Collections$IComparer$compare(this.Item6, objTuple.Item6);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n c = comparer.System$Collections$IComparer$compare(this.Item7, objTuple.Item7);\r\n if (c !== 0) {\r\n return c;\r\n }\r\n\r\n return comparer.System$Collections$IComparer$compare(this.Rest, objTuple.Rest);\r\n },\r\n getHashCode: function () {\r\n var rest = Bridge.as(this.Rest, System.ITupleInternal);\r\n if (rest == null) {\r\n return System.ValueTuple.CombineHashCodes$5(System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t1Comparer.getHashCode2(this.Item1), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t2Comparer.getHashCode2(this.Item2), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t3Comparer.getHashCode2(this.Item3), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t4Comparer.getHashCode2(this.Item4), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t5Comparer.getHashCode2(this.Item5), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t6Comparer.getHashCode2(this.Item6), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t7Comparer.getHashCode2(this.Item7));\r\n }\r\n\r\n var size = rest.System$ITupleInternal$Size;\r\n if (size >= 8) {\r\n return Bridge.getHashCode(rest);\r\n }\r\n\r\n var k = (8 - size) | 0;\r\n switch (k) {\r\n case 1: \r\n return System.ValueTuple.CombineHashCodes(System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t7Comparer.getHashCode2(this.Item7), Bridge.getHashCode(rest));\r\n case 2: \r\n return System.ValueTuple.CombineHashCodes$1(System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t6Comparer.getHashCode2(this.Item6), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t7Comparer.getHashCode2(this.Item7), Bridge.getHashCode(rest));\r\n case 3: \r\n return System.ValueTuple.CombineHashCodes$2(System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t5Comparer.getHashCode2(this.Item5), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t6Comparer.getHashCode2(this.Item6), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t7Comparer.getHashCode2(this.Item7), Bridge.getHashCode(rest));\r\n case 4: \r\n return System.ValueTuple.CombineHashCodes$3(System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t4Comparer.getHashCode2(this.Item4), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t5Comparer.getHashCode2(this.Item5), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t6Comparer.getHashCode2(this.Item6), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t7Comparer.getHashCode2(this.Item7), Bridge.getHashCode(rest));\r\n case 5: \r\n return System.ValueTuple.CombineHashCodes$4(System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t3Comparer.getHashCode2(this.Item3), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t4Comparer.getHashCode2(this.Item4), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t5Comparer.getHashCode2(this.Item5), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t6Comparer.getHashCode2(this.Item6), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t7Comparer.getHashCode2(this.Item7), Bridge.getHashCode(rest));\r\n case 6: \r\n return System.ValueTuple.CombineHashCodes$5(System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t2Comparer.getHashCode2(this.Item2), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t3Comparer.getHashCode2(this.Item3), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t4Comparer.getHashCode2(this.Item4), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t5Comparer.getHashCode2(this.Item5), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t6Comparer.getHashCode2(this.Item6), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t7Comparer.getHashCode2(this.Item7), Bridge.getHashCode(rest));\r\n case 7: \r\n case 8: \r\n return System.ValueTuple.CombineHashCodes$6(System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t1Comparer.getHashCode2(this.Item1), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t2Comparer.getHashCode2(this.Item2), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t3Comparer.getHashCode2(this.Item3), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t4Comparer.getHashCode2(this.Item4), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t5Comparer.getHashCode2(this.Item5), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t6Comparer.getHashCode2(this.Item6), System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest).s_t7Comparer.getHashCode2(this.Item7), Bridge.getHashCode(rest));\r\n }\r\n\r\n return -1;\r\n },\r\n System$Collections$IStructuralEquatable$GetHashCode: function (comparer) {\r\n return this.GetHashCodeCore(comparer);\r\n },\r\n System$ITupleInternal$GetHashCode: function (comparer) {\r\n return this.GetHashCodeCore(comparer);\r\n },\r\n GetHashCodeCore: function (comparer) {\r\n var rest = Bridge.as(this.Rest, System.ITupleInternal);\r\n if (rest == null) {\r\n return System.ValueTuple.CombineHashCodes$5(comparer.System$Collections$IEqualityComparer$getHashCode(this.Item1), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item2), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item3), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item4), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item5), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item6), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item7));\r\n }\r\n\r\n var size = rest.System$ITupleInternal$Size;\r\n if (size >= 8) {\r\n return rest.System$ITupleInternal$GetHashCode(comparer);\r\n }\r\n\r\n var k = (8 - size) | 0;\r\n switch (k) {\r\n case 1: \r\n return System.ValueTuple.CombineHashCodes(comparer.System$Collections$IEqualityComparer$getHashCode(this.Item7), rest.System$ITupleInternal$GetHashCode(comparer));\r\n case 2: \r\n return System.ValueTuple.CombineHashCodes$1(comparer.System$Collections$IEqualityComparer$getHashCode(this.Item6), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item7), rest.System$ITupleInternal$GetHashCode(comparer));\r\n case 3: \r\n return System.ValueTuple.CombineHashCodes$2(comparer.System$Collections$IEqualityComparer$getHashCode(this.Item5), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item6), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item7), rest.System$ITupleInternal$GetHashCode(comparer));\r\n case 4: \r\n return System.ValueTuple.CombineHashCodes$3(comparer.System$Collections$IEqualityComparer$getHashCode(this.Item4), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item5), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item6), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item7), rest.System$ITupleInternal$GetHashCode(comparer));\r\n case 5: \r\n return System.ValueTuple.CombineHashCodes$4(comparer.System$Collections$IEqualityComparer$getHashCode(this.Item3), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item4), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item5), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item6), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item7), rest.System$ITupleInternal$GetHashCode(comparer));\r\n case 6: \r\n return System.ValueTuple.CombineHashCodes$5(comparer.System$Collections$IEqualityComparer$getHashCode(this.Item2), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item3), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item4), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item5), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item6), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item7), rest.System$ITupleInternal$GetHashCode(comparer));\r\n case 7: \r\n case 8: \r\n return System.ValueTuple.CombineHashCodes$6(comparer.System$Collections$IEqualityComparer$getHashCode(this.Item1), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item2), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item3), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item4), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item5), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item6), comparer.System$Collections$IEqualityComparer$getHashCode(this.Item7), rest.System$ITupleInternal$GetHashCode(comparer));\r\n }\r\n\r\n return -1;\r\n },\r\n toString: function () {\r\n var rest = Bridge.as(this.Rest, System.ITupleInternal);\r\n if (rest == null) {\r\n return \"(\" + ((this.Item1 != null ? Bridge.toString(this.Item1) : null) || \"\") + \", \" + ((this.Item2 != null ? Bridge.toString(this.Item2) : null) || \"\") + \", \" + ((this.Item3 != null ? Bridge.toString(this.Item3) : null) || \"\") + \", \" + ((this.Item4 != null ? Bridge.toString(this.Item4) : null) || \"\") + \", \" + ((this.Item5 != null ? Bridge.toString(this.Item5) : null) || \"\") + \", \" + ((this.Item6 != null ? Bridge.toString(this.Item6) : null) || \"\") + \", \" + ((this.Item7 != null ? Bridge.toString(this.Item7) : null) || \"\") + \", \" + (Bridge.toString(this.Rest) || \"\") + \")\";\r\n } else {\r\n return \"(\" + ((this.Item1 != null ? Bridge.toString(this.Item1) : null) || \"\") + \", \" + ((this.Item2 != null ? Bridge.toString(this.Item2) : null) || \"\") + \", \" + ((this.Item3 != null ? Bridge.toString(this.Item3) : null) || \"\") + \", \" + ((this.Item4 != null ? Bridge.toString(this.Item4) : null) || \"\") + \", \" + ((this.Item5 != null ? Bridge.toString(this.Item5) : null) || \"\") + \", \" + ((this.Item6 != null ? Bridge.toString(this.Item6) : null) || \"\") + \", \" + ((this.Item7 != null ? Bridge.toString(this.Item7) : null) || \"\") + \", \" + (rest.System$ITupleInternal$ToStringEnd() || \"\");\r\n }\r\n },\r\n System$ITupleInternal$ToStringEnd: function () {\r\n var rest = Bridge.as(this.Rest, System.ITupleInternal);\r\n if (rest == null) {\r\n return ((this.Item1 != null ? Bridge.toString(this.Item1) : null) || \"\") + \", \" + ((this.Item2 != null ? Bridge.toString(this.Item2) : null) || \"\") + \", \" + ((this.Item3 != null ? Bridge.toString(this.Item3) : null) || \"\") + \", \" + ((this.Item4 != null ? Bridge.toString(this.Item4) : null) || \"\") + \", \" + ((this.Item5 != null ? Bridge.toString(this.Item5) : null) || \"\") + \", \" + ((this.Item6 != null ? Bridge.toString(this.Item6) : null) || \"\") + \", \" + ((this.Item7 != null ? Bridge.toString(this.Item7) : null) || \"\") + \", \" + (Bridge.toString(this.Rest) || \"\") + \")\";\r\n } else {\r\n return ((this.Item1 != null ? Bridge.toString(this.Item1) : null) || \"\") + \", \" + ((this.Item2 != null ? Bridge.toString(this.Item2) : null) || \"\") + \", \" + ((this.Item3 != null ? Bridge.toString(this.Item3) : null) || \"\") + \", \" + ((this.Item4 != null ? Bridge.toString(this.Item4) : null) || \"\") + \", \" + ((this.Item5 != null ? Bridge.toString(this.Item5) : null) || \"\") + \", \" + ((this.Item6 != null ? Bridge.toString(this.Item6) : null) || \"\") + \", \" + ((this.Item7 != null ? Bridge.toString(this.Item7) : null) || \"\") + \", \" + (rest.System$ITupleInternal$ToStringEnd() || \"\");\r\n }\r\n },\r\n $clone: function (to) {\r\n var s = to || new (System.ValueTuple$8(T1,T2,T3,T4,T5,T6,T7,TRest))();\r\n s.Item1 = this.Item1;\r\n s.Item2 = this.Item2;\r\n s.Item3 = this.Item3;\r\n s.Item4 = this.Item4;\r\n s.Item5 = this.Item5;\r\n s.Item6 = this.Item6;\r\n s.Item7 = this.Item7;\r\n s.Rest = this.Rest;\r\n return s;\r\n }\r\n }\r\n }; });\r\n\r\n // @source IndexOutOfRangeException.js\r\n\r\n Bridge.define(\"System.IndexOutOfRangeException\", {\r\n inherits: [System.SystemException],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, \"Index was outside the bounds of the array.\");\r\n this.HResult = -2146233080;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2146233080;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, innerException);\r\n this.HResult = -2146233080;\r\n }\r\n }\r\n });\r\n\r\n // @source InvalidCastException.js\r\n\r\n Bridge.define(\"System.InvalidCastException\", {\r\n inherits: [System.SystemException],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, \"Specified cast is not valid.\");\r\n this.HResult = -2147467262;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2147467262;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, innerException);\r\n this.HResult = -2147467262;\r\n },\r\n $ctor3: function (message, errorCode) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = errorCode;\r\n }\r\n }\r\n });\r\n\r\n // @source InvalidOperationException.js\r\n\r\n Bridge.define(\"System.InvalidOperationException\", {\r\n inherits: [System.SystemException],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, \"Operation is not valid due to the current state of the object.\");\r\n this.HResult = -2146233079;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2146233079;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, innerException);\r\n this.HResult = -2146233079;\r\n }\r\n }\r\n });\r\n\r\n // @source ObjectDisposedException.js\r\n\r\n Bridge.define(\"System.ObjectDisposedException\", {\r\n inherits: [System.InvalidOperationException],\r\n fields: {\r\n _objectName: null\r\n },\r\n props: {\r\n Message: {\r\n get: function () {\r\n var name = this.ObjectName;\r\n if (name == null || name.length === 0) {\r\n return Bridge.ensureBaseProperty(this, \"Message\").$System$Exception$Message;\r\n }\r\n\r\n var objectDisposed = System.SR.Format(\"Object name: '{0}'.\", name);\r\n return (Bridge.ensureBaseProperty(this, \"Message\").$System$Exception$Message || \"\") + (\"\\n\" || \"\") + (objectDisposed || \"\");\r\n }\r\n },\r\n ObjectName: {\r\n get: function () {\r\n if (this._objectName == null) {\r\n return \"\";\r\n }\r\n return this._objectName;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n System.ObjectDisposedException.$ctor3.call(this, null, \"Cannot access a disposed object.\");\r\n },\r\n $ctor1: function (objectName) {\r\n System.ObjectDisposedException.$ctor3.call(this, objectName, \"Cannot access a disposed object.\");\r\n },\r\n $ctor3: function (objectName, message) {\r\n this.$initialize();\r\n System.InvalidOperationException.$ctor1.call(this, message);\r\n this.HResult = -2146232798;\r\n this._objectName = objectName;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.InvalidOperationException.$ctor2.call(this, message, innerException);\r\n this.HResult = -2146232798;\r\n }\r\n }\r\n });\r\n\r\n // @source InvalidProgramException.js\r\n\r\n Bridge.define(\"System.InvalidProgramException\", {\r\n inherits: [System.SystemException],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, \"Common Language Runtime detected an invalid program.\");\r\n this.HResult = -2146233030;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2146233030;\r\n },\r\n $ctor2: function (message, inner) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, inner);\r\n this.HResult = -2146233030;\r\n }\r\n }\r\n });\r\n\r\n // @source MissingMethodException.js\r\n\r\n Bridge.define(\"System.MissingMethodException\", {\r\n inherits: [System.Exception],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.Exception.ctor.call(this, \"Attempted to access a missing method.\");\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.Exception.ctor.call(this, message);\r\n },\r\n $ctor2: function (message, inner) {\r\n this.$initialize();\r\n System.Exception.ctor.call(this, message, inner);\r\n },\r\n $ctor3: function (className, methodName) {\r\n this.$initialize();\r\n System.Exception.ctor.call(this, (className || \"\") + \".\" + (methodName || \"\") + \" Due to: Attempted to access a missing member.\");\r\n }\r\n }\r\n });\r\n\r\n // @source Calendar.js\r\n\r\n Bridge.define(\"System.Globalization.Calendar\", {\r\n inherits: [System.ICloneable],\r\n statics: {\r\n fields: {\r\n TicksPerMillisecond: System.Int64(0),\r\n TicksPerSecond: System.Int64(0),\r\n TicksPerMinute: System.Int64(0),\r\n TicksPerHour: System.Int64(0),\r\n TicksPerDay: System.Int64(0),\r\n MillisPerSecond: 0,\r\n MillisPerMinute: 0,\r\n MillisPerHour: 0,\r\n MillisPerDay: 0,\r\n DaysPerYear: 0,\r\n DaysPer4Years: 0,\r\n DaysPer100Years: 0,\r\n DaysPer400Years: 0,\r\n DaysTo10000: 0,\r\n MaxMillis: System.Int64(0),\r\n CurrentEra: 0\r\n },\r\n ctors: {\r\n init: function () {\r\n this.TicksPerMillisecond = System.Int64(10000);\r\n this.TicksPerSecond = System.Int64(10000000);\r\n this.TicksPerMinute = System.Int64(600000000);\r\n this.TicksPerHour = System.Int64([1640261632,8]);\r\n this.TicksPerDay = System.Int64([711573504,201]);\r\n this.MillisPerSecond = 1000;\r\n this.MillisPerMinute = 60000;\r\n this.MillisPerHour = 3600000;\r\n this.MillisPerDay = 86400000;\r\n this.DaysPerYear = 365;\r\n this.DaysPer4Years = 1461;\r\n this.DaysPer100Years = 36524;\r\n this.DaysPer400Years = 146097;\r\n this.DaysTo10000 = 3652059;\r\n this.MaxMillis = System.Int64([-464735232,73466]);\r\n this.CurrentEra = 0;\r\n }\r\n },\r\n methods: {\r\n ReadOnly: function (calendar) {\r\n if (calendar == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"calendar\");\r\n }\r\n if (calendar.IsReadOnly) {\r\n return (calendar);\r\n }\r\n\r\n var clonedCalendar = Bridge.cast((Bridge.clone(calendar)), System.Globalization.Calendar);\r\n clonedCalendar.SetReadOnlyState(true);\r\n\r\n return (clonedCalendar);\r\n },\r\n CheckAddResult: function (ticks, minValue, maxValue) {\r\n if (ticks.lt(System.DateTime.getTicks(minValue)) || ticks.gt(System.DateTime.getTicks(maxValue))) {\r\n throw new System.ArgumentException.$ctor1(System.String.formatProvider(System.Globalization.CultureInfo.invariantCulture, System.SR.Format$1(\"The result is out of the supported range for this calendar. The result should be between {0} (Gregorian date) and {1} (Gregorian date), inclusive.\", Bridge.box(minValue, System.DateTime, System.DateTime.format), Bridge.box(maxValue, System.DateTime, System.DateTime.format)), null));\r\n }\r\n },\r\n GetSystemTwoDigitYearSetting: function (CalID, defaultYearValue) {\r\n var twoDigitYearMax = 2029;\r\n if (twoDigitYearMax < 0) {\r\n twoDigitYearMax = defaultYearValue;\r\n }\r\n return (twoDigitYearMax);\r\n }\r\n }\r\n },\r\n fields: {\r\n _isReadOnly: false,\r\n twoDigitYearMax: 0\r\n },\r\n props: {\r\n MinSupportedDateTime: {\r\n get: function () {\r\n return (System.DateTime.getMinValue());\r\n }\r\n },\r\n MaxSupportedDateTime: {\r\n get: function () {\r\n return (System.DateTime.getMaxValue());\r\n }\r\n },\r\n AlgorithmType: {\r\n get: function () {\r\n return 0;\r\n }\r\n },\r\n ID: {\r\n get: function () {\r\n return 0;\r\n }\r\n },\r\n BaseCalendarID: {\r\n get: function () {\r\n return this.ID;\r\n }\r\n },\r\n IsReadOnly: {\r\n get: function () {\r\n return (this._isReadOnly);\r\n }\r\n },\r\n CurrentEraValue: {\r\n get: function () {\r\n throw System.NotImplemented.ByDesign;\r\n }\r\n },\r\n DaysInYearBeforeMinSupportedYear: {\r\n get: function () {\r\n return 365;\r\n }\r\n },\r\n TwoDigitYearMax: {\r\n get: function () {\r\n return (this.twoDigitYearMax);\r\n },\r\n set: function (value) {\r\n this.VerifyWritable();\r\n this.twoDigitYearMax = value;\r\n }\r\n }\r\n },\r\n alias: [\"clone\", \"System$ICloneable$clone\"],\r\n ctors: {\r\n init: function () {\r\n this._isReadOnly = false;\r\n this.twoDigitYearMax = -1;\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n clone: function () {\r\n var o = Bridge.clone(this);\r\n Bridge.cast(o, System.Globalization.Calendar).SetReadOnlyState(false);\r\n return (o);\r\n },\r\n VerifyWritable: function () {\r\n if (this._isReadOnly) {\r\n throw new System.InvalidOperationException.$ctor1(\"Instance is read-only.\");\r\n }\r\n },\r\n SetReadOnlyState: function (readOnly) {\r\n this._isReadOnly = readOnly;\r\n },\r\n Add: function (time, value, scale) {\r\n var tempMillis = (value * scale + (value >= 0 ? 0.5 : -0.5));\r\n if (!((tempMillis > -315537897600000.0) && (tempMillis < 315537897600000.0))) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"value\", \"Value to add was out of range.\");\r\n }\r\n\r\n var millis = Bridge.Int.clip64(tempMillis);\r\n var ticks = System.DateTime.getTicks(time).add(millis.mul(System.Globalization.Calendar.TicksPerMillisecond));\r\n System.Globalization.Calendar.CheckAddResult(ticks, this.MinSupportedDateTime, this.MaxSupportedDateTime);\r\n return (System.DateTime.create$2(ticks));\r\n },\r\n AddMilliseconds: function (time, milliseconds) {\r\n return (this.Add(time, milliseconds, 1));\r\n },\r\n AddDays: function (time, days) {\r\n return (this.Add(time, days, System.Globalization.Calendar.MillisPerDay));\r\n },\r\n AddHours: function (time, hours) {\r\n return (this.Add(time, hours, System.Globalization.Calendar.MillisPerHour));\r\n },\r\n AddMinutes: function (time, minutes) {\r\n return (this.Add(time, minutes, System.Globalization.Calendar.MillisPerMinute));\r\n },\r\n AddSeconds: function (time, seconds) {\r\n return this.Add(time, seconds, System.Globalization.Calendar.MillisPerSecond);\r\n },\r\n AddWeeks: function (time, weeks) {\r\n return (this.AddDays(time, Bridge.Int.mul(weeks, 7)));\r\n },\r\n GetDaysInMonth: function (year, month) {\r\n return (this.GetDaysInMonth$1(year, month, System.Globalization.Calendar.CurrentEra));\r\n },\r\n GetDaysInYear: function (year) {\r\n return (this.GetDaysInYear$1(year, System.Globalization.Calendar.CurrentEra));\r\n },\r\n GetHour: function (time) {\r\n return (System.Int64.clip32((System.DateTime.getTicks(time).div(System.Globalization.Calendar.TicksPerHour)).mod(System.Int64(24))));\r\n },\r\n GetMilliseconds: function (time) {\r\n return System.Int64.toNumber((System.DateTime.getTicks(time).div(System.Globalization.Calendar.TicksPerMillisecond)).mod(System.Int64(1000)));\r\n },\r\n GetMinute: function (time) {\r\n return (System.Int64.clip32((System.DateTime.getTicks(time).div(System.Globalization.Calendar.TicksPerMinute)).mod(System.Int64(60))));\r\n },\r\n GetMonthsInYear: function (year) {\r\n return (this.GetMonthsInYear$1(year, System.Globalization.Calendar.CurrentEra));\r\n },\r\n GetSecond: function (time) {\r\n return (System.Int64.clip32((System.DateTime.getTicks(time).div(System.Globalization.Calendar.TicksPerSecond)).mod(System.Int64(60))));\r\n },\r\n GetFirstDayWeekOfYear: function (time, firstDayOfWeek) {\r\n var dayOfYear = (this.GetDayOfYear(time) - 1) | 0;\r\n var dayForJan1 = (this.GetDayOfWeek(time) - (dayOfYear % 7)) | 0;\r\n var offset = (((((dayForJan1 - firstDayOfWeek) | 0) + 14) | 0)) % 7;\r\n return (((((Bridge.Int.div((((dayOfYear + offset) | 0)), 7)) | 0) + 1) | 0));\r\n },\r\n GetWeekOfYearFullDays: function (time, firstDayOfWeek, fullDays) {\r\n var dayForJan1;\r\n var offset;\r\n var day;\r\n\r\n var dayOfYear = (this.GetDayOfYear(time) - 1) | 0;\r\n\r\n\r\n\r\n dayForJan1 = (this.GetDayOfWeek(time) - (dayOfYear % 7)) | 0;\r\n\r\n offset = (((((firstDayOfWeek - dayForJan1) | 0) + 14) | 0)) % 7;\r\n if (offset !== 0 && offset >= fullDays) {\r\n offset = (offset - 7) | 0;\r\n }\r\n day = (dayOfYear - offset) | 0;\r\n if (day >= 0) {\r\n return (((((Bridge.Int.div(day, 7)) | 0) + 1) | 0));\r\n }\r\n if (System.DateTime.lte(time, System.DateTime.addDays(this.MinSupportedDateTime, dayOfYear))) {\r\n return this.GetWeekOfYearOfMinSupportedDateTime(firstDayOfWeek, fullDays);\r\n }\r\n return (this.GetWeekOfYearFullDays(System.DateTime.addDays(time, ((-(((dayOfYear + 1) | 0))) | 0)), firstDayOfWeek, fullDays));\r\n },\r\n GetWeekOfYearOfMinSupportedDateTime: function (firstDayOfWeek, minimumDaysInFirstWeek) {\r\n var dayOfYear = (this.GetDayOfYear(this.MinSupportedDateTime) - 1) | 0;\r\n var dayOfWeekOfFirstOfYear = (this.GetDayOfWeek(this.MinSupportedDateTime) - dayOfYear % 7) | 0;\r\n\r\n var offset = (((((firstDayOfWeek + 7) | 0) - dayOfWeekOfFirstOfYear) | 0)) % 7;\r\n if (offset === 0 || offset >= minimumDaysInFirstWeek) {\r\n return 1;\r\n }\r\n\r\n var daysInYearBeforeMinSupportedYear = (this.DaysInYearBeforeMinSupportedYear - 1) | 0;\r\n var dayOfWeekOfFirstOfPreviousYear = (((dayOfWeekOfFirstOfYear - 1) | 0) - (daysInYearBeforeMinSupportedYear % 7)) | 0;\r\n\r\n var daysInInitialPartialWeek = (((((firstDayOfWeek - dayOfWeekOfFirstOfPreviousYear) | 0) + 14) | 0)) % 7;\r\n var day = (daysInYearBeforeMinSupportedYear - daysInInitialPartialWeek) | 0;\r\n if (daysInInitialPartialWeek >= minimumDaysInFirstWeek) {\r\n day = (day + 7) | 0;\r\n }\r\n\r\n return (((((Bridge.Int.div(day, 7)) | 0) + 1) | 0));\r\n },\r\n GetWeekOfYear: function (time, rule, firstDayOfWeek) {\r\n if (firstDayOfWeek < 0 || firstDayOfWeek > 6) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"firstDayOfWeek\", System.SR.Format$1(\"Valid values are between {0} and {1}, inclusive.\", Bridge.box(System.DayOfWeek.Sunday, System.DayOfWeek, System.Enum.toStringFn(System.DayOfWeek)), Bridge.box(System.DayOfWeek.Saturday, System.DayOfWeek, System.Enum.toStringFn(System.DayOfWeek))));\r\n }\r\n switch (rule) {\r\n case 0: \r\n return (this.GetFirstDayWeekOfYear(time, firstDayOfWeek));\r\n case 1: \r\n return (this.GetWeekOfYearFullDays(time, firstDayOfWeek, 7));\r\n case 2: \r\n return (this.GetWeekOfYearFullDays(time, firstDayOfWeek, 4));\r\n }\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"rule\", System.SR.Format$1(\"Valid values are between {0} and {1}, inclusive.\", Bridge.box(0, System.Globalization.CalendarWeekRule, System.Enum.toStringFn(System.Globalization.CalendarWeekRule)), Bridge.box(2, System.Globalization.CalendarWeekRule, System.Enum.toStringFn(System.Globalization.CalendarWeekRule))));\r\n },\r\n IsLeapDay: function (year, month, day) {\r\n return (this.IsLeapDay$1(year, month, day, System.Globalization.Calendar.CurrentEra));\r\n },\r\n IsLeapMonth: function (year, month) {\r\n return (this.IsLeapMonth$1(year, month, System.Globalization.Calendar.CurrentEra));\r\n },\r\n GetLeapMonth: function (year) {\r\n return (this.GetLeapMonth$1(year, System.Globalization.Calendar.CurrentEra));\r\n },\r\n GetLeapMonth$1: function (year, era) {\r\n if (!this.IsLeapYear$1(year, era)) {\r\n return 0;\r\n }\r\n\r\n var monthsCount = this.GetMonthsInYear$1(year, era);\r\n for (var month = 1; month <= monthsCount; month = (month + 1) | 0) {\r\n if (this.IsLeapMonth$1(year, month, era)) {\r\n return month;\r\n }\r\n }\r\n\r\n return 0;\r\n },\r\n IsLeapYear: function (year) {\r\n return (this.IsLeapYear$1(year, System.Globalization.Calendar.CurrentEra));\r\n },\r\n ToDateTime: function (year, month, day, hour, minute, second, millisecond) {\r\n return (this.ToDateTime$1(year, month, day, hour, minute, second, millisecond, System.Globalization.Calendar.CurrentEra));\r\n },\r\n TryToDateTime: function (year, month, day, hour, minute, second, millisecond, era, result) {\r\n result.v = System.DateTime.getMinValue();\r\n try {\r\n result.v = this.ToDateTime$1(year, month, day, hour, minute, second, millisecond, era);\r\n return true;\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.ArgumentException)) {\r\n return false;\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n },\r\n IsValidYear: function (year, era) {\r\n return (year >= this.GetYear(this.MinSupportedDateTime) && year <= this.GetYear(this.MaxSupportedDateTime));\r\n },\r\n IsValidMonth: function (year, month, era) {\r\n return (this.IsValidYear(year, era) && month >= 1 && month <= this.GetMonthsInYear$1(year, era));\r\n },\r\n IsValidDay: function (year, month, day, era) {\r\n return (this.IsValidMonth(year, month, era) && day >= 1 && day <= this.GetDaysInMonth$1(year, month, era));\r\n },\r\n ToFourDigitYear: function (year) {\r\n if (year < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"year\", \"Non-negative number required.\");\r\n }\r\n if (year < 100) {\r\n return (((Bridge.Int.mul((((((Bridge.Int.div(this.TwoDigitYearMax, 100)) | 0) - (year > this.TwoDigitYearMax % 100 ? 1 : 0)) | 0)), 100) + year) | 0));\r\n }\r\n return (year);\r\n }\r\n }\r\n });\r\n\r\n // @source CalendarAlgorithmType.js\r\n\r\n Bridge.define(\"System.Globalization.CalendarAlgorithmType\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n Unknown: 0,\r\n SolarCalendar: 1,\r\n LunarCalendar: 2,\r\n LunisolarCalendar: 3\r\n }\r\n }\r\n });\r\n\r\n // @source CalendarId.js\r\n\r\n Bridge.define(\"System.Globalization.CalendarId\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n UNINITIALIZED_VALUE: 0,\r\n GREGORIAN: 1,\r\n GREGORIAN_US: 2,\r\n JAPAN: 3,\r\n TAIWAN: 4,\r\n KOREA: 5,\r\n HIJRI: 6,\r\n THAI: 7,\r\n HEBREW: 8,\r\n GREGORIAN_ME_FRENCH: 9,\r\n GREGORIAN_ARABIC: 10,\r\n GREGORIAN_XLIT_ENGLISH: 11,\r\n GREGORIAN_XLIT_FRENCH: 12,\r\n JULIAN: 13,\r\n JAPANESELUNISOLAR: 14,\r\n CHINESELUNISOLAR: 15,\r\n SAKA: 16,\r\n LUNAR_ETO_CHN: 17,\r\n LUNAR_ETO_KOR: 18,\r\n LUNAR_ETO_ROKUYOU: 19,\r\n KOREANLUNISOLAR: 20,\r\n TAIWANLUNISOLAR: 21,\r\n PERSIAN: 22,\r\n UMALQURA: 23,\r\n LAST_CALENDAR: 23\r\n }\r\n },\r\n $utype: System.UInt16\r\n });\r\n\r\n // @source CalendarWeekRule.js\r\n\r\n Bridge.define(\"System.Globalization.CalendarWeekRule\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n FirstDay: 0,\r\n FirstFullWeek: 1,\r\n FirstFourDayWeek: 2\r\n }\r\n }\r\n });\r\n\r\n // @source CultureNotFoundException.js\r\n\r\n Bridge.define(\"System.Globalization.CultureNotFoundException\", {\r\n inherits: [System.ArgumentException],\r\n statics: {\r\n props: {\r\n DefaultMessage: {\r\n get: function () {\r\n return \"Culture is not supported.\";\r\n }\r\n }\r\n }\r\n },\r\n fields: {\r\n _invalidCultureName: null,\r\n _invalidCultureId: null\r\n },\r\n props: {\r\n InvalidCultureId: {\r\n get: function () {\r\n return this._invalidCultureId;\r\n }\r\n },\r\n InvalidCultureName: {\r\n get: function () {\r\n return this._invalidCultureName;\r\n }\r\n },\r\n FormatedInvalidCultureId: {\r\n get: function () {\r\n return this.InvalidCultureId != null ? System.String.formatProvider(System.Globalization.CultureInfo.invariantCulture, \"{0} (0x{0:x4})\", [Bridge.box(System.Nullable.getValue(this.InvalidCultureId), System.Int32)]) : this.InvalidCultureName;\r\n }\r\n },\r\n Message: {\r\n get: function () {\r\n var s = Bridge.ensureBaseProperty(this, \"Message\").$System$ArgumentException$Message;\r\n if (this._invalidCultureId != null || this._invalidCultureName != null) {\r\n var valueMessage = System.SR.Format(\"{0} is an invalid culture identifier.\", this.FormatedInvalidCultureId);\r\n if (s == null) {\r\n return valueMessage;\r\n }\r\n\r\n return (s || \"\") + (\"\\n\" || \"\") + (valueMessage || \"\");\r\n }\r\n return s;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.ArgumentException.$ctor1.call(this, System.Globalization.CultureNotFoundException.DefaultMessage);\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.ArgumentException.$ctor1.call(this, message);\r\n },\r\n $ctor5: function (paramName, message) {\r\n this.$initialize();\r\n System.ArgumentException.$ctor3.call(this, message, paramName);\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.ArgumentException.$ctor2.call(this, message, innerException);\r\n },\r\n $ctor7: function (paramName, invalidCultureName, message) {\r\n this.$initialize();\r\n System.ArgumentException.$ctor3.call(this, message, paramName);\r\n this._invalidCultureName = invalidCultureName;\r\n },\r\n $ctor6: function (message, invalidCultureName, innerException) {\r\n this.$initialize();\r\n System.ArgumentException.$ctor2.call(this, message, innerException);\r\n this._invalidCultureName = invalidCultureName;\r\n },\r\n $ctor3: function (message, invalidCultureId, innerException) {\r\n this.$initialize();\r\n System.ArgumentException.$ctor2.call(this, message, innerException);\r\n this._invalidCultureId = invalidCultureId;\r\n },\r\n $ctor4: function (paramName, invalidCultureId, message) {\r\n this.$initialize();\r\n System.ArgumentException.$ctor3.call(this, message, paramName);\r\n this._invalidCultureId = invalidCultureId;\r\n }\r\n }\r\n });\r\n\r\n // @source DateTimeFormatInfoScanner.js\r\n\r\n Bridge.define(\"System.Globalization.DateTimeFormatInfoScanner\", {\r\n statics: {\r\n fields: {\r\n MonthPostfixChar: 0,\r\n IgnorableSymbolChar: 0,\r\n CJKYearSuff: null,\r\n CJKMonthSuff: null,\r\n CJKDaySuff: null,\r\n KoreanYearSuff: null,\r\n KoreanMonthSuff: null,\r\n KoreanDaySuff: null,\r\n KoreanHourSuff: null,\r\n KoreanMinuteSuff: null,\r\n KoreanSecondSuff: null,\r\n CJKHourSuff: null,\r\n ChineseHourSuff: null,\r\n CJKMinuteSuff: null,\r\n CJKSecondSuff: null,\r\n s_knownWords: null\r\n },\r\n props: {\r\n KnownWords: {\r\n get: function () {\r\n if (System.Globalization.DateTimeFormatInfoScanner.s_knownWords == null) {\r\n var temp = new (System.Collections.Generic.Dictionary$2(System.String,System.String)).ctor();\r\n\r\n temp.add(\"/\", \"\");\r\n temp.add(\"-\", \"\");\r\n temp.add(\".\", \"\");\r\n temp.add(System.Globalization.DateTimeFormatInfoScanner.CJKYearSuff, \"\");\r\n temp.add(System.Globalization.DateTimeFormatInfoScanner.CJKMonthSuff, \"\");\r\n temp.add(System.Globalization.DateTimeFormatInfoScanner.CJKDaySuff, \"\");\r\n temp.add(System.Globalization.DateTimeFormatInfoScanner.KoreanYearSuff, \"\");\r\n temp.add(System.Globalization.DateTimeFormatInfoScanner.KoreanMonthSuff, \"\");\r\n temp.add(System.Globalization.DateTimeFormatInfoScanner.KoreanDaySuff, \"\");\r\n temp.add(System.Globalization.DateTimeFormatInfoScanner.KoreanHourSuff, \"\");\r\n temp.add(System.Globalization.DateTimeFormatInfoScanner.KoreanMinuteSuff, \"\");\r\n temp.add(System.Globalization.DateTimeFormatInfoScanner.KoreanSecondSuff, \"\");\r\n temp.add(System.Globalization.DateTimeFormatInfoScanner.CJKHourSuff, \"\");\r\n temp.add(System.Globalization.DateTimeFormatInfoScanner.ChineseHourSuff, \"\");\r\n temp.add(System.Globalization.DateTimeFormatInfoScanner.CJKMinuteSuff, \"\");\r\n temp.add(System.Globalization.DateTimeFormatInfoScanner.CJKSecondSuff, \"\");\r\n\r\n System.Globalization.DateTimeFormatInfoScanner.s_knownWords = temp;\r\n }\r\n return (System.Globalization.DateTimeFormatInfoScanner.s_knownWords);\r\n }\r\n }\r\n },\r\n ctors: {\r\n init: function () {\r\n this.MonthPostfixChar = 57344;\r\n this.IgnorableSymbolChar = 57345;\r\n this.CJKYearSuff = \"\\u5e74\";\r\n this.CJKMonthSuff = \"\\u6708\";\r\n this.CJKDaySuff = \"\\u65e5\";\r\n this.KoreanYearSuff = \"\\ub144\";\r\n this.KoreanMonthSuff = \"\\uc6d4\";\r\n this.KoreanDaySuff = \"\\uc77c\";\r\n this.KoreanHourSuff = \"\\uc2dc\";\r\n this.KoreanMinuteSuff = \"\\ubd84\";\r\n this.KoreanSecondSuff = \"\\ucd08\";\r\n this.CJKHourSuff = \"\\u6642\";\r\n this.ChineseHourSuff = \"\\u65f6\";\r\n this.CJKMinuteSuff = \"\\u5206\";\r\n this.CJKSecondSuff = \"\\u79d2\";\r\n }\r\n },\r\n methods: {\r\n SkipWhiteSpacesAndNonLetter: function (pattern, currentIndex) {\r\n while (currentIndex < pattern.length) {\r\n var ch = pattern.charCodeAt(currentIndex);\r\n if (ch === 92) {\r\n currentIndex = (currentIndex + 1) | 0;\r\n if (currentIndex < pattern.length) {\r\n ch = pattern.charCodeAt(currentIndex);\r\n if (ch === 39) {\r\n continue;\r\n }\r\n } else {\r\n break;\r\n }\r\n }\r\n if (System.Char.isLetter(ch) || ch === 39 || ch === 46) {\r\n break;\r\n }\r\n currentIndex = (currentIndex + 1) | 0;\r\n }\r\n return (currentIndex);\r\n },\r\n ScanRepeatChar: function (pattern, ch, index, count) {\r\n count.v = 1;\r\n while (((index = (index + 1) | 0)) < pattern.length && pattern.charCodeAt(index) === ch) {\r\n count.v = (count.v + 1) | 0;\r\n }\r\n return (index);\r\n },\r\n GetFormatFlagGenitiveMonth: function (monthNames, genitveMonthNames, abbrevMonthNames, genetiveAbbrevMonthNames) {\r\n return ((!System.Globalization.DateTimeFormatInfoScanner.EqualStringArrays(monthNames, genitveMonthNames) || !System.Globalization.DateTimeFormatInfoScanner.EqualStringArrays(abbrevMonthNames, genetiveAbbrevMonthNames)) ? 1 : 0);\r\n },\r\n GetFormatFlagUseSpaceInMonthNames: function (monthNames, genitveMonthNames, abbrevMonthNames, genetiveAbbrevMonthNames) {\r\n var formatFlags = 0;\r\n formatFlags |= (System.Globalization.DateTimeFormatInfoScanner.ArrayElementsBeginWithDigit(monthNames) || System.Globalization.DateTimeFormatInfoScanner.ArrayElementsBeginWithDigit(genitveMonthNames) || System.Globalization.DateTimeFormatInfoScanner.ArrayElementsBeginWithDigit(abbrevMonthNames) || System.Globalization.DateTimeFormatInfoScanner.ArrayElementsBeginWithDigit(genetiveAbbrevMonthNames) ? 32 : 0);\r\n\r\n formatFlags |= (System.Globalization.DateTimeFormatInfoScanner.ArrayElementsHaveSpace(monthNames) || System.Globalization.DateTimeFormatInfoScanner.ArrayElementsHaveSpace(genitveMonthNames) || System.Globalization.DateTimeFormatInfoScanner.ArrayElementsHaveSpace(abbrevMonthNames) || System.Globalization.DateTimeFormatInfoScanner.ArrayElementsHaveSpace(genetiveAbbrevMonthNames) ? 4 : 0);\r\n return (formatFlags);\r\n },\r\n GetFormatFlagUseSpaceInDayNames: function (dayNames, abbrevDayNames) {\r\n return ((System.Globalization.DateTimeFormatInfoScanner.ArrayElementsHaveSpace(dayNames) || System.Globalization.DateTimeFormatInfoScanner.ArrayElementsHaveSpace(abbrevDayNames)) ? 16 : 0);\r\n },\r\n GetFormatFlagUseHebrewCalendar: function (calID) {\r\n return (calID === 8 ? 10 : 0);\r\n },\r\n EqualStringArrays: function (array1, array2) {\r\n if (Bridge.referenceEquals(array1, array2)) {\r\n return true;\r\n }\r\n\r\n if (array1.length !== array2.length) {\r\n return false;\r\n }\r\n\r\n for (var i = 0; i < array1.length; i = (i + 1) | 0) {\r\n if (!System.String.equals(array1[System.Array.index(i, array1)], array2[System.Array.index(i, array2)])) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n ArrayElementsHaveSpace: function (array) {\r\n for (var i = 0; i < array.length; i = (i + 1) | 0) {\r\n for (var j = 0; j < array[System.Array.index(i, array)].length; j = (j + 1) | 0) {\r\n if (System.Char.isWhiteSpace(String.fromCharCode(array[System.Array.index(i, array)].charCodeAt(j)))) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n ArrayElementsBeginWithDigit: function (array) {\r\n for (var i = 0; i < array.length; i = (i + 1) | 0) {\r\n if (array[System.Array.index(i, array)].length > 0 && array[System.Array.index(i, array)].charCodeAt(0) >= 48 && array[System.Array.index(i, array)].charCodeAt(0) <= 57) {\r\n var index = 1;\r\n while (index < array[System.Array.index(i, array)].length && array[System.Array.index(i, array)].charCodeAt(index) >= 48 && array[System.Array.index(i, array)].charCodeAt(index) <= 57) {\r\n index = (index + 1) | 0;\r\n }\r\n if (index === array[System.Array.index(i, array)].length) {\r\n return (false);\r\n }\r\n\r\n if (index === ((array[System.Array.index(i, array)].length - 1) | 0)) {\r\n switch (array[System.Array.index(i, array)].charCodeAt(index)) {\r\n case 26376: \r\n case 50900: \r\n return (false);\r\n }\r\n }\r\n\r\n if (index === ((array[System.Array.index(i, array)].length - 4) | 0)) {\r\n if (array[System.Array.index(i, array)].charCodeAt(index) === 39 && array[System.Array.index(i, array)].charCodeAt(((index + 1) | 0)) === 32 && array[System.Array.index(i, array)].charCodeAt(((index + 2) | 0)) === 26376 && array[System.Array.index(i, array)].charCodeAt(((index + 3) | 0)) === 39) {\r\n return (false);\r\n }\r\n }\r\n return (true);\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n }\r\n },\r\n fields: {\r\n m_dateWords: null,\r\n _ymdFlags: 0\r\n },\r\n ctors: {\r\n init: function () {\r\n this.m_dateWords = new (System.Collections.Generic.List$1(System.String)).ctor();\r\n this._ymdFlags = System.Globalization.DateTimeFormatInfoScanner.FoundDatePattern.None;\r\n }\r\n },\r\n methods: {\r\n AddDateWordOrPostfix: function (formatPostfix, str) {\r\n if (str.length > 0) {\r\n if (System.String.equals(str, \".\")) {\r\n this.AddIgnorableSymbols(\".\");\r\n return;\r\n }\r\n var words = { };\r\n if (System.Globalization.DateTimeFormatInfoScanner.KnownWords.tryGetValue(str, words) === false) {\r\n if (this.m_dateWords == null) {\r\n this.m_dateWords = new (System.Collections.Generic.List$1(System.String)).ctor();\r\n }\r\n if (Bridge.referenceEquals(formatPostfix, \"MMMM\")) {\r\n var temp = String.fromCharCode(System.Globalization.DateTimeFormatInfoScanner.MonthPostfixChar) + (str || \"\");\r\n if (!this.m_dateWords.contains(temp)) {\r\n this.m_dateWords.add(temp);\r\n }\r\n } else {\r\n if (!this.m_dateWords.contains(str)) {\r\n this.m_dateWords.add(str);\r\n }\r\n if (str.charCodeAt(((str.length - 1) | 0)) === 46) {\r\n var strWithoutDot = str.substr(0, ((str.length - 1) | 0));\r\n if (!this.m_dateWords.contains(strWithoutDot)) {\r\n this.m_dateWords.add(strWithoutDot);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n AddDateWords: function (pattern, index, formatPostfix) {\r\n var newIndex = System.Globalization.DateTimeFormatInfoScanner.SkipWhiteSpacesAndNonLetter(pattern, index);\r\n if (newIndex !== index && formatPostfix != null) {\r\n formatPostfix = null;\r\n }\r\n index = newIndex;\r\n\r\n var dateWord = new System.Text.StringBuilder();\r\n\r\n while (index < pattern.length) {\r\n var ch = pattern.charCodeAt(index);\r\n if (ch === 39) {\r\n this.AddDateWordOrPostfix(formatPostfix, dateWord.toString());\r\n index = (index + 1) | 0;\r\n break;\r\n } else if (ch === 92) {\r\n\r\n index = (index + 1) | 0;\r\n if (index < pattern.length) {\r\n dateWord.append(String.fromCharCode(pattern.charCodeAt(index)));\r\n index = (index + 1) | 0;\r\n }\r\n } else if (System.Char.isWhiteSpace(String.fromCharCode(ch))) {\r\n this.AddDateWordOrPostfix(formatPostfix, dateWord.toString());\r\n if (formatPostfix != null) {\r\n formatPostfix = null;\r\n }\r\n dateWord.setLength(0);\r\n index = (index + 1) | 0;\r\n } else {\r\n dateWord.append(String.fromCharCode(ch));\r\n index = (index + 1) | 0;\r\n }\r\n }\r\n return (index);\r\n },\r\n AddIgnorableSymbols: function (text) {\r\n if (this.m_dateWords == null) {\r\n this.m_dateWords = new (System.Collections.Generic.List$1(System.String)).ctor();\r\n }\r\n var temp = String.fromCharCode(System.Globalization.DateTimeFormatInfoScanner.IgnorableSymbolChar) + (text || \"\");\r\n if (!this.m_dateWords.contains(temp)) {\r\n this.m_dateWords.add(temp);\r\n }\r\n },\r\n ScanDateWord: function (pattern) {\r\n this._ymdFlags = System.Globalization.DateTimeFormatInfoScanner.FoundDatePattern.None;\r\n\r\n var i = 0;\r\n while (i < pattern.length) {\r\n var ch = pattern.charCodeAt(i);\r\n var chCount = { };\r\n\r\n switch (ch) {\r\n case 39: \r\n i = this.AddDateWords(pattern, ((i + 1) | 0), null);\r\n break;\r\n case 77: \r\n i = System.Globalization.DateTimeFormatInfoScanner.ScanRepeatChar(pattern, 77, i, chCount);\r\n if (chCount.v >= 4) {\r\n if (i < pattern.length && pattern.charCodeAt(i) === 39) {\r\n i = this.AddDateWords(pattern, ((i + 1) | 0), \"MMMM\");\r\n }\r\n }\r\n this._ymdFlags |= System.Globalization.DateTimeFormatInfoScanner.FoundDatePattern.FoundMonthPatternFlag;\r\n break;\r\n case 121: \r\n i = System.Globalization.DateTimeFormatInfoScanner.ScanRepeatChar(pattern, 121, i, chCount);\r\n this._ymdFlags |= System.Globalization.DateTimeFormatInfoScanner.FoundDatePattern.FoundYearPatternFlag;\r\n break;\r\n case 100: \r\n i = System.Globalization.DateTimeFormatInfoScanner.ScanRepeatChar(pattern, 100, i, chCount);\r\n if (chCount.v <= 2) {\r\n this._ymdFlags |= System.Globalization.DateTimeFormatInfoScanner.FoundDatePattern.FoundDayPatternFlag;\r\n }\r\n break;\r\n case 92: \r\n i = (i + 2) | 0;\r\n break;\r\n case 46: \r\n if (this._ymdFlags === System.Globalization.DateTimeFormatInfoScanner.FoundDatePattern.FoundYMDPatternFlag) {\r\n this.AddIgnorableSymbols(\".\");\r\n this._ymdFlags = System.Globalization.DateTimeFormatInfoScanner.FoundDatePattern.None;\r\n }\r\n i = (i + 1) | 0;\r\n break;\r\n default: \r\n if (this._ymdFlags === System.Globalization.DateTimeFormatInfoScanner.FoundDatePattern.FoundYMDPatternFlag && !System.Char.isWhiteSpace(String.fromCharCode(ch))) {\r\n this._ymdFlags = System.Globalization.DateTimeFormatInfoScanner.FoundDatePattern.None;\r\n }\r\n i = (i + 1) | 0;\r\n break;\r\n }\r\n }\r\n },\r\n GetDateWordsOfDTFI: function (dtfi) {\r\n var datePatterns = dtfi.getAllDateTimePatterns(68);\r\n var i;\r\n\r\n for (i = 0; i < datePatterns.length; i = (i + 1) | 0) {\r\n this.ScanDateWord(datePatterns[System.Array.index(i, datePatterns)]);\r\n }\r\n\r\n datePatterns = dtfi.getAllDateTimePatterns(100);\r\n for (i = 0; i < datePatterns.length; i = (i + 1) | 0) {\r\n this.ScanDateWord(datePatterns[System.Array.index(i, datePatterns)]);\r\n }\r\n datePatterns = dtfi.getAllDateTimePatterns(121);\r\n for (i = 0; i < datePatterns.length; i = (i + 1) | 0) {\r\n this.ScanDateWord(datePatterns[System.Array.index(i, datePatterns)]);\r\n }\r\n\r\n this.ScanDateWord(dtfi.monthDayPattern);\r\n\r\n datePatterns = dtfi.getAllDateTimePatterns(84);\r\n for (i = 0; i < datePatterns.length; i = (i + 1) | 0) {\r\n this.ScanDateWord(datePatterns[System.Array.index(i, datePatterns)]);\r\n }\r\n\r\n datePatterns = dtfi.getAllDateTimePatterns(116);\r\n for (i = 0; i < datePatterns.length; i = (i + 1) | 0) {\r\n this.ScanDateWord(datePatterns[System.Array.index(i, datePatterns)]);\r\n }\r\n\r\n var result = null;\r\n if (this.m_dateWords != null && this.m_dateWords.Count > 0) {\r\n result = System.Array.init(this.m_dateWords.Count, null, System.String);\r\n for (i = 0; i < this.m_dateWords.Count; i = (i + 1) | 0) {\r\n result[System.Array.index(i, result)] = this.m_dateWords.getItem(i);\r\n }\r\n }\r\n return (result);\r\n }\r\n }\r\n });\r\n\r\n // @source DateTimeStyles.js\r\n\r\n Bridge.define(\"System.Globalization.DateTimeStyles\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n None: 0,\r\n AllowLeadingWhite: 1,\r\n AllowTrailingWhite: 2,\r\n AllowInnerWhite: 4,\r\n AllowWhiteSpaces: 7,\r\n NoCurrentDateDefault: 8,\r\n AdjustToUniversal: 16,\r\n AssumeLocal: 32,\r\n AssumeUniversal: 64,\r\n RoundtripKind: 128\r\n }\r\n },\r\n $flags: true\r\n });\r\n\r\n // @source FORMATFLAGS.js\r\n\r\n Bridge.define(\"System.Globalization.FORMATFLAGS\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n None: 0,\r\n UseGenitiveMonth: 1,\r\n UseLeapYearMonth: 2,\r\n UseSpacesInMonthNames: 4,\r\n UseHebrewParsing: 8,\r\n UseSpacesInDayNames: 16,\r\n UseDigitPrefixInTokens: 32\r\n }\r\n }\r\n });\r\n\r\n // @source GlobalizationMode.js\r\n\r\n Bridge.define(\"System.Globalization.GlobalizationMode\", {\r\n statics: {\r\n props: {\r\n Invariant: false\r\n },\r\n ctors: {\r\n init: function () {\r\n this.Invariant = System.Globalization.GlobalizationMode.GetGlobalizationInvariantMode();\r\n }\r\n },\r\n methods: {\r\n GetInvariantSwitchValue: function () {\r\n return true;\r\n\r\n\r\n },\r\n GetGlobalizationInvariantMode: function () {\r\n return System.Globalization.GlobalizationMode.GetInvariantSwitchValue();\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source FoundDatePattern.js\r\n\r\n Bridge.define(\"System.Globalization.DateTimeFormatInfoScanner.FoundDatePattern\", {\r\n $kind: \"nested enum\",\r\n statics: {\r\n fields: {\r\n None: 0,\r\n FoundYearPatternFlag: 1,\r\n FoundMonthPatternFlag: 2,\r\n FoundDayPatternFlag: 4,\r\n FoundYMDPatternFlag: 7\r\n }\r\n }\r\n });\r\n\r\n // @source NotImplemented.js\r\n\r\n Bridge.define(\"System.NotImplemented\", {\r\n statics: {\r\n props: {\r\n ByDesign: {\r\n get: function () {\r\n return new System.NotImplementedException.ctor();\r\n }\r\n }\r\n },\r\n methods: {\r\n ByDesignWithMessage: function (message) {\r\n return new System.NotImplementedException.$ctor1(message);\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source NotImplementedException.js\r\n\r\n Bridge.define(\"System.NotImplementedException\", {\r\n inherits: [System.SystemException],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, \"The method or operation is not implemented.\");\r\n this.HResult = -2147467263;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2147467263;\r\n },\r\n $ctor2: function (message, inner) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, inner);\r\n this.HResult = -2147467263;\r\n }\r\n }\r\n });\r\n\r\n // @source NotSupportedException.js\r\n\r\n Bridge.define(\"System.NotSupportedException\", {\r\n inherits: [System.SystemException],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, \"Specified method is not supported.\");\r\n this.HResult = -2146233067;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2146233067;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, innerException);\r\n this.HResult = -2146233067;\r\n }\r\n }\r\n });\r\n\r\n // @source NullReferenceException.js\r\n\r\n Bridge.define(\"System.NullReferenceException\", {\r\n inherits: [System.SystemException],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, \"Object reference not set to an instance of an object.\");\r\n this.HResult = -2147467261;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2147467261;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, innerException);\r\n this.HResult = -2147467261;\r\n }\r\n }\r\n });\r\n\r\n // @source OperationCanceledException.js\r\n\r\n Bridge.define(\"System.OperationCanceledException\", {\r\n inherits: [System.SystemException],\r\n fields: {\r\n _cancellationToken: null\r\n },\r\n props: {\r\n CancellationToken: {\r\n get: function () {\r\n return this._cancellationToken;\r\n },\r\n set: function (value) {\r\n this._cancellationToken = value;\r\n }\r\n }\r\n },\r\n ctors: {\r\n init: function () {\r\n this._cancellationToken = new System.Threading.CancellationToken();\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, \"The operation was canceled.\");\r\n this.HResult = -2146233029;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2146233029;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, innerException);\r\n this.HResult = -2146233029;\r\n },\r\n $ctor5: function (token) {\r\n System.OperationCanceledException.ctor.call(this);\r\n this.CancellationToken = token;\r\n },\r\n $ctor4: function (message, token) {\r\n System.OperationCanceledException.$ctor1.call(this, message);\r\n this.CancellationToken = token;\r\n },\r\n $ctor3: function (message, innerException, token) {\r\n System.OperationCanceledException.$ctor2.call(this, message, innerException);\r\n this.CancellationToken = token;\r\n }\r\n }\r\n });\r\n\r\n // @source OverflowException.js\r\n\r\n Bridge.define(\"System.OverflowException\", {\r\n inherits: [System.ArithmeticException],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.ArithmeticException.$ctor1.call(this, \"Arithmetic operation resulted in an overflow.\");\r\n this.HResult = -2146233066;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.ArithmeticException.$ctor1.call(this, message);\r\n this.HResult = -2146233066;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.ArithmeticException.$ctor2.call(this, message, innerException);\r\n this.HResult = -2146233066;\r\n }\r\n }\r\n });\r\n\r\n // @source ParseFailureKind.js\r\n\r\n Bridge.define(\"System.ParseFailureKind\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n None: 0,\r\n ArgumentNull: 1,\r\n Format: 2,\r\n FormatWithParameter: 3,\r\n FormatBadDateTimeCalendar: 4\r\n }\r\n }\r\n });\r\n\r\n // @source ParseFlags.js\r\n\r\n Bridge.define(\"System.ParseFlags\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n HaveYear: 1,\r\n HaveMonth: 2,\r\n HaveDay: 4,\r\n HaveHour: 8,\r\n HaveMinute: 16,\r\n HaveSecond: 32,\r\n HaveTime: 64,\r\n HaveDate: 128,\r\n TimeZoneUsed: 256,\r\n TimeZoneUtc: 512,\r\n ParsedMonthName: 1024,\r\n CaptureOffset: 2048,\r\n YearDefault: 4096,\r\n Rfc1123Pattern: 8192,\r\n UtcSortPattern: 16384\r\n }\r\n },\r\n $flags: true\r\n });\r\n\r\n // @source StringBuilderCache.js\r\n\r\n Bridge.define(\"System.Text.StringBuilderCache\", {\r\n statics: {\r\n fields: {\r\n MAX_BUILDER_SIZE: 0,\r\n DEFAULT_CAPACITY: 0,\r\n t_cachedInstance: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.MAX_BUILDER_SIZE = 260;\r\n this.DEFAULT_CAPACITY = 16;\r\n }\r\n },\r\n methods: {\r\n Acquire: function (capacity) {\r\n if (capacity === void 0) { capacity = 16; }\r\n if (capacity <= System.Text.StringBuilderCache.MAX_BUILDER_SIZE) {\r\n var sb = System.Text.StringBuilderCache.t_cachedInstance;\r\n if (sb != null) {\r\n if (capacity <= sb.getCapacity()) {\r\n System.Text.StringBuilderCache.t_cachedInstance = null;\r\n sb.clear();\r\n return sb;\r\n }\r\n }\r\n }\r\n return new System.Text.StringBuilder(\"\", capacity);\r\n },\r\n Release: function (sb) {\r\n if (sb.getCapacity() <= System.Text.StringBuilderCache.MAX_BUILDER_SIZE) {\r\n System.Text.StringBuilderCache.t_cachedInstance = sb;\r\n }\r\n },\r\n GetStringAndRelease: function (sb) {\r\n var result = sb.toString();\r\n System.Text.StringBuilderCache.Release(sb);\r\n return result;\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source BinaryReader.js\r\n\r\n Bridge.define(\"System.IO.BinaryReader\", {\r\n inherits: [System.IDisposable],\r\n statics: {\r\n fields: {\r\n MaxCharBytesSize: 0\r\n },\r\n ctors: {\r\n init: function () {\r\n this.MaxCharBytesSize = 128;\r\n }\r\n }\r\n },\r\n fields: {\r\n m_stream: null,\r\n m_buffer: null,\r\n m_encoding: null,\r\n m_charBytes: null,\r\n m_singleChar: null,\r\n m_charBuffer: null,\r\n m_maxCharsSize: 0,\r\n m_2BytesPerChar: false,\r\n m_isMemoryStream: false,\r\n m_leaveOpen: false,\r\n lastCharsRead: 0\r\n },\r\n props: {\r\n BaseStream: {\r\n get: function () {\r\n return this.m_stream;\r\n }\r\n }\r\n },\r\n alias: [\"Dispose\", \"System$IDisposable$Dispose\"],\r\n ctors: {\r\n init: function () {\r\n this.lastCharsRead = 0;\r\n },\r\n ctor: function (input) {\r\n System.IO.BinaryReader.$ctor2.call(this, input, new System.Text.UTF8Encoding.ctor(), false);\r\n },\r\n $ctor1: function (input, encoding) {\r\n System.IO.BinaryReader.$ctor2.call(this, input, encoding, false);\r\n },\r\n $ctor2: function (input, encoding, leaveOpen) {\r\n this.$initialize();\r\n if (input == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"input\");\r\n }\r\n if (encoding == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"encoding\");\r\n }\r\n if (!input.CanRead) {\r\n throw new System.ArgumentException.$ctor1(\"Argument_StreamNotReadable\");\r\n }\r\n this.m_stream = input;\r\n this.m_encoding = encoding;\r\n this.m_maxCharsSize = encoding.GetMaxCharCount(System.IO.BinaryReader.MaxCharBytesSize);\r\n var minBufferSize = encoding.GetMaxByteCount(1);\r\n if (minBufferSize < 23) {\r\n minBufferSize = 23;\r\n }\r\n this.m_buffer = System.Array.init(minBufferSize, 0, System.Byte);\r\n\r\n this.m_2BytesPerChar = Bridge.is(encoding, System.Text.UnicodeEncoding);\r\n this.m_isMemoryStream = (Bridge.referenceEquals(Bridge.getType(this.m_stream), System.IO.MemoryStream));\r\n this.m_leaveOpen = leaveOpen;\r\n\r\n }\r\n },\r\n methods: {\r\n Close: function () {\r\n this.Dispose$1(true);\r\n },\r\n Dispose$1: function (disposing) {\r\n if (disposing) {\r\n var copyOfStream = this.m_stream;\r\n this.m_stream = null;\r\n if (copyOfStream != null && !this.m_leaveOpen) {\r\n copyOfStream.Close();\r\n }\r\n }\r\n this.m_stream = null;\r\n this.m_buffer = null;\r\n this.m_encoding = null;\r\n this.m_charBytes = null;\r\n this.m_singleChar = null;\r\n this.m_charBuffer = null;\r\n },\r\n Dispose: function () {\r\n this.Dispose$1(true);\r\n },\r\n PeekChar: function () {\r\n\r\n if (this.m_stream == null) {\r\n System.IO.__Error.FileNotOpen();\r\n }\r\n\r\n if (!this.m_stream.CanSeek) {\r\n return -1;\r\n }\r\n var origPos = this.m_stream.Position;\r\n var ch = this.Read();\r\n this.m_stream.Position = origPos;\r\n return ch;\r\n },\r\n Read: function () {\r\n\r\n if (this.m_stream == null) {\r\n System.IO.__Error.FileNotOpen();\r\n }\r\n return this.InternalReadOneChar();\r\n },\r\n Read$2: function (buffer, index, count) {\r\n if (buffer == null) {\r\n throw new System.ArgumentNullException.$ctor3(\"buffer\", \"ArgumentNull_Buffer\");\r\n }\r\n if (index < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"index\", \"ArgumentOutOfRange_NeedNonNegNum\");\r\n }\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"count\", \"ArgumentOutOfRange_NeedNonNegNum\");\r\n }\r\n if (((buffer.length - index) | 0) < count) {\r\n throw new System.ArgumentException.$ctor1(\"Argument_InvalidOffLen\");\r\n }\r\n\r\n if (this.m_stream == null) {\r\n System.IO.__Error.FileNotOpen();\r\n }\r\n\r\n return this.InternalReadChars(buffer, index, count);\r\n },\r\n Read$1: function (buffer, index, count) {\r\n if (buffer == null) {\r\n throw new System.ArgumentNullException.$ctor3(\"buffer\", \"ArgumentNull_Buffer\");\r\n }\r\n if (index < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"index\", \"ArgumentOutOfRange_NeedNonNegNum\");\r\n }\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"count\", \"ArgumentOutOfRange_NeedNonNegNum\");\r\n }\r\n if (((buffer.length - index) | 0) < count) {\r\n throw new System.ArgumentException.$ctor1(\"Argument_InvalidOffLen\");\r\n }\r\n\r\n if (this.m_stream == null) {\r\n System.IO.__Error.FileNotOpen();\r\n }\r\n return this.m_stream.Read(buffer, index, count);\r\n },\r\n ReadBoolean: function () {\r\n this.FillBuffer(1);\r\n return (this.m_buffer[System.Array.index(0, this.m_buffer)] !== 0);\r\n },\r\n ReadByte: function () {\r\n if (this.m_stream == null) {\r\n System.IO.__Error.FileNotOpen();\r\n }\r\n\r\n var b = this.m_stream.ReadByte();\r\n if (b === -1) {\r\n System.IO.__Error.EndOfFile();\r\n }\r\n return (b & 255);\r\n },\r\n ReadSByte: function () {\r\n this.FillBuffer(1);\r\n return Bridge.Int.sxb((this.m_buffer[System.Array.index(0, this.m_buffer)]) & 255);\r\n },\r\n ReadChar: function () {\r\n var value = this.Read();\r\n if (value === -1) {\r\n System.IO.__Error.EndOfFile();\r\n }\r\n return (value & 65535);\r\n },\r\n ReadInt16: function () {\r\n this.FillBuffer(2);\r\n return Bridge.Int.sxs((this.m_buffer[System.Array.index(0, this.m_buffer)] | this.m_buffer[System.Array.index(1, this.m_buffer)] << 8) & 65535);\r\n },\r\n ReadUInt16: function () {\r\n this.FillBuffer(2);\r\n return ((this.m_buffer[System.Array.index(0, this.m_buffer)] | this.m_buffer[System.Array.index(1, this.m_buffer)] << 8) & 65535);\r\n },\r\n ReadInt32: function () {\r\n if (this.m_isMemoryStream) {\r\n if (this.m_stream == null) {\r\n System.IO.__Error.FileNotOpen();\r\n }\r\n var mStream = Bridge.as(this.m_stream, System.IO.MemoryStream);\r\n\r\n return mStream.InternalReadInt32();\r\n } else {\r\n this.FillBuffer(4);\r\n return this.m_buffer[System.Array.index(0, this.m_buffer)] | this.m_buffer[System.Array.index(1, this.m_buffer)] << 8 | this.m_buffer[System.Array.index(2, this.m_buffer)] << 16 | this.m_buffer[System.Array.index(3, this.m_buffer)] << 24;\r\n }\r\n },\r\n ReadUInt32: function () {\r\n this.FillBuffer(4);\r\n return ((this.m_buffer[System.Array.index(0, this.m_buffer)] | this.m_buffer[System.Array.index(1, this.m_buffer)] << 8 | this.m_buffer[System.Array.index(2, this.m_buffer)] << 16 | this.m_buffer[System.Array.index(3, this.m_buffer)] << 24) >>> 0);\r\n },\r\n ReadInt64: function () {\r\n this.FillBuffer(8);\r\n var lo = (this.m_buffer[System.Array.index(0, this.m_buffer)] | this.m_buffer[System.Array.index(1, this.m_buffer)] << 8 | this.m_buffer[System.Array.index(2, this.m_buffer)] << 16 | this.m_buffer[System.Array.index(3, this.m_buffer)] << 24) >>> 0;\r\n var hi = (this.m_buffer[System.Array.index(4, this.m_buffer)] | this.m_buffer[System.Array.index(5, this.m_buffer)] << 8 | this.m_buffer[System.Array.index(6, this.m_buffer)] << 16 | this.m_buffer[System.Array.index(7, this.m_buffer)] << 24) >>> 0;\r\n return System.Int64.clip64(System.UInt64(hi)).shl(32).or(System.Int64(lo));\r\n },\r\n ReadUInt64: function () {\r\n this.FillBuffer(8);\r\n var lo = (this.m_buffer[System.Array.index(0, this.m_buffer)] | this.m_buffer[System.Array.index(1, this.m_buffer)] << 8 | this.m_buffer[System.Array.index(2, this.m_buffer)] << 16 | this.m_buffer[System.Array.index(3, this.m_buffer)] << 24) >>> 0;\r\n var hi = (this.m_buffer[System.Array.index(4, this.m_buffer)] | this.m_buffer[System.Array.index(5, this.m_buffer)] << 8 | this.m_buffer[System.Array.index(6, this.m_buffer)] << 16 | this.m_buffer[System.Array.index(7, this.m_buffer)] << 24) >>> 0;\r\n return System.UInt64(hi).shl(32).or(System.UInt64(lo));\r\n },\r\n ReadSingle: function () {\r\n this.FillBuffer(4);\r\n var tmpBuffer = (this.m_buffer[System.Array.index(0, this.m_buffer)] | this.m_buffer[System.Array.index(1, this.m_buffer)] << 8 | this.m_buffer[System.Array.index(2, this.m_buffer)] << 16 | this.m_buffer[System.Array.index(3, this.m_buffer)] << 24) >>> 0;\r\n return System.BitConverter.toSingle(System.BitConverter.getBytes$8(tmpBuffer), 0);\r\n },\r\n ReadDouble: function () {\r\n this.FillBuffer(8);\r\n var lo = (this.m_buffer[System.Array.index(0, this.m_buffer)] | this.m_buffer[System.Array.index(1, this.m_buffer)] << 8 | this.m_buffer[System.Array.index(2, this.m_buffer)] << 16 | this.m_buffer[System.Array.index(3, this.m_buffer)] << 24) >>> 0;\r\n var hi = (this.m_buffer[System.Array.index(4, this.m_buffer)] | this.m_buffer[System.Array.index(5, this.m_buffer)] << 8 | this.m_buffer[System.Array.index(6, this.m_buffer)] << 16 | this.m_buffer[System.Array.index(7, this.m_buffer)] << 24) >>> 0;\r\n\r\n var tmpBuffer = System.UInt64(hi).shl(32).or(System.UInt64(lo));\r\n return System.BitConverter.toDouble(System.BitConverter.getBytes$9(tmpBuffer), 0);\r\n },\r\n ReadDecimal: function () {\r\n this.FillBuffer(23);\r\n try {\r\n return System.Decimal.fromBytes(this.m_buffer);\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n var e;\r\n if (Bridge.is($e1, System.ArgumentException)) {\r\n e = $e1;\r\n throw new System.IO.IOException.$ctor2(\"Arg_DecBitCtor\", e);\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n },\r\n ReadString: function () {\r\n\r\n if (this.m_stream == null) {\r\n System.IO.__Error.FileNotOpen();\r\n }\r\n\r\n var currPos = 0;\r\n var n;\r\n var stringLength;\r\n var readLength;\r\n var charsRead;\r\n\r\n stringLength = this.Read7BitEncodedInt();\r\n if (stringLength < 0) {\r\n throw new System.IO.IOException.$ctor1(\"IO.IO_InvalidStringLen_Len\");\r\n }\r\n\r\n if (stringLength === 0) {\r\n return \"\";\r\n }\r\n\r\n if (this.m_charBytes == null) {\r\n this.m_charBytes = System.Array.init(System.IO.BinaryReader.MaxCharBytesSize, 0, System.Byte);\r\n }\r\n\r\n if (this.m_charBuffer == null) {\r\n this.m_charBuffer = System.Array.init(this.m_maxCharsSize, 0, System.Char);\r\n }\r\n\r\n var sb = null;\r\n do {\r\n readLength = ((((stringLength - currPos) | 0)) > System.IO.BinaryReader.MaxCharBytesSize) ? System.IO.BinaryReader.MaxCharBytesSize : (((stringLength - currPos) | 0));\r\n\r\n n = this.m_stream.Read(this.m_charBytes, 0, readLength);\r\n if (n === 0) {\r\n System.IO.__Error.EndOfFile();\r\n }\r\n\r\n charsRead = this.m_encoding.GetChars$2(this.m_charBytes, 0, n, this.m_charBuffer, 0);\r\n\r\n if (currPos === 0 && n === stringLength) {\r\n return System.String.fromCharArray(this.m_charBuffer, 0, charsRead);\r\n }\r\n\r\n if (sb == null) {\r\n sb = new System.Text.StringBuilder(\"\", stringLength);\r\n }\r\n\r\n for (var i = 0; i < charsRead; i = (i + 1) | 0) {\r\n sb.append(String.fromCharCode(this.m_charBuffer[System.Array.index(i, this.m_charBuffer)]));\r\n }\r\n\r\n currPos = (currPos + n) | 0;\r\n\r\n } while (currPos < stringLength);\r\n\r\n return sb.toString();\r\n },\r\n InternalReadChars: function (buffer, index, count) {\r\n\r\n var charsRemaining = count;\r\n\r\n if (this.m_charBytes == null) {\r\n this.m_charBytes = System.Array.init(System.IO.BinaryReader.MaxCharBytesSize, 0, System.Byte);\r\n }\r\n\r\n if (index < 0 || charsRemaining < 0 || ((index + charsRemaining) | 0) > buffer.length) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"charsRemaining\");\r\n }\r\n\r\n while (charsRemaining > 0) {\r\n\r\n var ch = this.InternalReadOneChar(true);\r\n\r\n if (ch === -1) {\r\n break;\r\n }\r\n\r\n buffer[System.Array.index(index, buffer)] = ch & 65535;\r\n\r\n if (this.lastCharsRead === 2) {\r\n buffer[System.Array.index(((index = (index + 1) | 0)), buffer)] = this.m_singleChar[System.Array.index(1, this.m_singleChar)];\r\n charsRemaining = (charsRemaining - 1) | 0;\r\n }\r\n\r\n charsRemaining = (charsRemaining - 1) | 0;\r\n index = (index + 1) | 0;\r\n }\r\n\r\n\r\n return (((count - charsRemaining) | 0));\r\n },\r\n InternalReadOneChar: function (allowSurrogate) {\r\n if (allowSurrogate === void 0) { allowSurrogate = false; }\r\n var charsRead = 0;\r\n var numBytes = 0;\r\n var posSav = System.Int64(0);\r\n\r\n if (this.m_stream.CanSeek) {\r\n posSav = this.m_stream.Position;\r\n }\r\n\r\n if (this.m_charBytes == null) {\r\n this.m_charBytes = System.Array.init(System.IO.BinaryReader.MaxCharBytesSize, 0, System.Byte);\r\n }\r\n if (this.m_singleChar == null) {\r\n this.m_singleChar = System.Array.init(2, 0, System.Char);\r\n }\r\n\r\n var addByte = false;\r\n var internalPos = 0;\r\n while (charsRead === 0) {\r\n numBytes = this.m_2BytesPerChar ? 2 : 1;\r\n\r\n if (Bridge.is(this.m_encoding, System.Text.UTF32Encoding)) {\r\n numBytes = 4;\r\n }\r\n\r\n if (addByte) {\r\n var r = this.m_stream.ReadByte();\r\n this.m_charBytes[System.Array.index(((internalPos = (internalPos + 1) | 0)), this.m_charBytes)] = r & 255;\r\n if (r === -1) {\r\n numBytes = 0;\r\n }\r\n\r\n if (numBytes === 2) {\r\n r = this.m_stream.ReadByte();\r\n this.m_charBytes[System.Array.index(((internalPos = (internalPos + 1) | 0)), this.m_charBytes)] = r & 255;\r\n if (r === -1) {\r\n numBytes = 1;\r\n }\r\n }\r\n } else {\r\n var r1 = this.m_stream.ReadByte();\r\n this.m_charBytes[System.Array.index(0, this.m_charBytes)] = r1 & 255;\r\n internalPos = 0;\r\n if (r1 === -1) {\r\n numBytes = 0;\r\n }\r\n\r\n if (numBytes === 2) {\r\n r1 = this.m_stream.ReadByte();\r\n this.m_charBytes[System.Array.index(1, this.m_charBytes)] = r1 & 255;\r\n if (r1 === -1) {\r\n numBytes = 1;\r\n }\r\n internalPos = 1;\r\n } else if (numBytes === 4) {\r\n r1 = this.m_stream.ReadByte();\r\n this.m_charBytes[System.Array.index(1, this.m_charBytes)] = r1 & 255;\r\n if (r1 === -1) {\r\n return -1;\r\n }\r\n\r\n r1 = this.m_stream.ReadByte();\r\n this.m_charBytes[System.Array.index(2, this.m_charBytes)] = r1 & 255;\r\n if (r1 === -1) {\r\n return -1;\r\n }\r\n\r\n r1 = this.m_stream.ReadByte();\r\n this.m_charBytes[System.Array.index(3, this.m_charBytes)] = r1 & 255;\r\n if (r1 === -1) {\r\n return -1;\r\n }\r\n\r\n internalPos = 3;\r\n }\r\n }\r\n\r\n\r\n if (numBytes === 0) {\r\n return -1;\r\n }\r\n\r\n addByte = false;\r\n try {\r\n charsRead = this.m_encoding.GetChars$2(this.m_charBytes, 0, ((internalPos + 1) | 0), this.m_singleChar, 0);\r\n\r\n if (!allowSurrogate && charsRead === 2) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n\r\n if (this.m_stream.CanSeek) {\r\n this.m_stream.Seek((posSav.sub(this.m_stream.Position)), 1);\r\n }\r\n\r\n throw $e1;\r\n }\r\n\r\n if (this.m_encoding._hasError) {\r\n charsRead = 0;\r\n addByte = true;\r\n }\r\n\r\n if (!allowSurrogate) {\r\n }\r\n }\r\n\r\n this.lastCharsRead = charsRead;\r\n\r\n if (charsRead === 0) {\r\n return -1;\r\n }\r\n\r\n return this.m_singleChar[System.Array.index(0, this.m_singleChar)];\r\n },\r\n ReadChars: function (count) {\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"count\", \"ArgumentOutOfRange_NeedNonNegNum\");\r\n }\r\n if (this.m_stream == null) {\r\n System.IO.__Error.FileNotOpen();\r\n }\r\n\r\n if (count === 0) {\r\n return System.Array.init(0, 0, System.Char);\r\n }\r\n\r\n var chars = System.Array.init(count, 0, System.Char);\r\n var n = this.InternalReadChars(chars, 0, count);\r\n if (n !== count) {\r\n var copy = System.Array.init(n, 0, System.Char);\r\n System.Array.copy(chars, 0, copy, 0, Bridge.Int.mul(2, n));\r\n chars = copy;\r\n }\r\n\r\n return chars;\r\n },\r\n ReadBytes: function (count) {\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"count\", \"ArgumentOutOfRange_NeedNonNegNum\");\r\n }\r\n if (this.m_stream == null) {\r\n System.IO.__Error.FileNotOpen();\r\n }\r\n\r\n if (count === 0) {\r\n return System.Array.init(0, 0, System.Byte);\r\n }\r\n\r\n var result = System.Array.init(count, 0, System.Byte);\r\n\r\n var numRead = 0;\r\n do {\r\n var n = this.m_stream.Read(result, numRead, count);\r\n if (n === 0) {\r\n break;\r\n }\r\n numRead = (numRead + n) | 0;\r\n count = (count - n) | 0;\r\n } while (count > 0);\r\n\r\n if (numRead !== result.length) {\r\n var copy = System.Array.init(numRead, 0, System.Byte);\r\n System.Array.copy(result, 0, copy, 0, numRead);\r\n result = copy;\r\n }\r\n\r\n return result;\r\n },\r\n FillBuffer: function (numBytes) {\r\n if (this.m_buffer != null && (numBytes < 0 || numBytes > this.m_buffer.length)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"numBytes\", \"ArgumentOutOfRange_BinaryReaderFillBuffer\");\r\n }\r\n var bytesRead = 0;\r\n var n = 0;\r\n\r\n if (this.m_stream == null) {\r\n System.IO.__Error.FileNotOpen();\r\n }\r\n\r\n if (numBytes === 1) {\r\n n = this.m_stream.ReadByte();\r\n if (n === -1) {\r\n System.IO.__Error.EndOfFile();\r\n }\r\n this.m_buffer[System.Array.index(0, this.m_buffer)] = n & 255;\r\n return;\r\n }\r\n\r\n do {\r\n n = this.m_stream.Read(this.m_buffer, bytesRead, ((numBytes - bytesRead) | 0));\r\n if (n === 0) {\r\n System.IO.__Error.EndOfFile();\r\n }\r\n bytesRead = (bytesRead + n) | 0;\r\n } while (bytesRead < numBytes);\r\n },\r\n Read7BitEncodedInt: function () {\r\n var count = 0;\r\n var shift = 0;\r\n var b;\r\n do {\r\n if (shift === 35) {\r\n throw new System.FormatException.$ctor1(\"Format_Bad7BitInt32\");\r\n }\r\n\r\n b = this.ReadByte();\r\n count = count | ((b & 127) << shift);\r\n shift = (shift + 7) | 0;\r\n } while ((b & 128) !== 0);\r\n return count;\r\n }\r\n }\r\n });\r\n\r\n // @source BinaryWriter.js\r\n\r\n Bridge.define(\"System.IO.BinaryWriter\", {\r\n inherits: [System.IDisposable],\r\n statics: {\r\n fields: {\r\n LargeByteBufferSize: 0,\r\n Null: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.LargeByteBufferSize = 256;\r\n this.Null = new System.IO.BinaryWriter.ctor();\r\n }\r\n }\r\n },\r\n fields: {\r\n OutStream: null,\r\n _buffer: null,\r\n _encoding: null,\r\n _leaveOpen: false,\r\n _tmpOneCharBuffer: null\r\n },\r\n props: {\r\n BaseStream: {\r\n get: function () {\r\n this.Flush();\r\n return this.OutStream;\r\n }\r\n }\r\n },\r\n alias: [\"Dispose\", \"System$IDisposable$Dispose\"],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n this.OutStream = System.IO.Stream.Null;\r\n this._buffer = System.Array.init(16, 0, System.Byte);\r\n this._encoding = new System.Text.UTF8Encoding.$ctor2(false, true);\r\n },\r\n $ctor1: function (output) {\r\n System.IO.BinaryWriter.$ctor3.call(this, output, new System.Text.UTF8Encoding.$ctor2(false, true), false);\r\n },\r\n $ctor2: function (output, encoding) {\r\n System.IO.BinaryWriter.$ctor3.call(this, output, encoding, false);\r\n },\r\n $ctor3: function (output, encoding, leaveOpen) {\r\n this.$initialize();\r\n if (output == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"output\");\r\n }\r\n if (encoding == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"encoding\");\r\n }\r\n if (!output.CanWrite) {\r\n throw new System.ArgumentException.$ctor1(\"Argument_StreamNotWritable\");\r\n }\r\n\r\n this.OutStream = output;\r\n this._buffer = System.Array.init(16, 0, System.Byte);\r\n this._encoding = encoding;\r\n this._leaveOpen = leaveOpen;\r\n }\r\n },\r\n methods: {\r\n Close: function () {\r\n this.Dispose$1(true);\r\n },\r\n Dispose$1: function (disposing) {\r\n if (disposing) {\r\n if (this._leaveOpen) {\r\n this.OutStream.Flush();\r\n } else {\r\n this.OutStream.Close();\r\n }\r\n }\r\n },\r\n Dispose: function () {\r\n this.Dispose$1(true);\r\n },\r\n Flush: function () {\r\n this.OutStream.Flush();\r\n },\r\n Seek: function (offset, origin) {\r\n return this.OutStream.Seek(System.Int64(offset), origin);\r\n },\r\n Write: function (value) {\r\n this._buffer[System.Array.index(0, this._buffer)] = (value ? 1 : 0) & 255;\r\n this.OutStream.Write(this._buffer, 0, 1);\r\n },\r\n Write$1: function (value) {\r\n this.OutStream.WriteByte(value);\r\n },\r\n Write$12: function (value) {\r\n this.OutStream.WriteByte((value & 255));\r\n },\r\n Write$2: function (buffer) {\r\n if (buffer == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"buffer\");\r\n }\r\n this.OutStream.Write(buffer, 0, buffer.length);\r\n },\r\n Write$3: function (buffer, index, count) {\r\n this.OutStream.Write(buffer, index, count);\r\n },\r\n Write$4: function (ch) {\r\n if (System.Char.isSurrogate(ch)) {\r\n throw new System.ArgumentException.$ctor1(\"Arg_SurrogatesNotAllowedAsSingleChar\");\r\n }\r\n\r\n var numBytes = 0;\r\n numBytes = this._encoding.GetBytes$3(System.Array.init([ch], System.Char), 0, 1, this._buffer, 0);\r\n\r\n this.OutStream.Write(this._buffer, 0, numBytes);\r\n },\r\n Write$5: function (chars) {\r\n if (chars == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"chars\");\r\n }\r\n\r\n var bytes = this._encoding.GetBytes$1(chars, 0, chars.length);\r\n this.OutStream.Write(bytes, 0, bytes.length);\r\n },\r\n Write$6: function (chars, index, count) {\r\n var bytes = this._encoding.GetBytes$1(chars, index, count);\r\n this.OutStream.Write(bytes, 0, bytes.length);\r\n },\r\n Write$8: function (value) {\r\n var TmpValue = System.Int64.clipu64(System.BitConverter.doubleToInt64Bits(value));\r\n this._buffer[System.Array.index(0, this._buffer)] = System.Int64.clipu8(TmpValue);\r\n this._buffer[System.Array.index(1, this._buffer)] = System.Int64.clipu8(TmpValue.shru(8));\r\n this._buffer[System.Array.index(2, this._buffer)] = System.Int64.clipu8(TmpValue.shru(16));\r\n this._buffer[System.Array.index(3, this._buffer)] = System.Int64.clipu8(TmpValue.shru(24));\r\n this._buffer[System.Array.index(4, this._buffer)] = System.Int64.clipu8(TmpValue.shru(32));\r\n this._buffer[System.Array.index(5, this._buffer)] = System.Int64.clipu8(TmpValue.shru(40));\r\n this._buffer[System.Array.index(6, this._buffer)] = System.Int64.clipu8(TmpValue.shru(48));\r\n this._buffer[System.Array.index(7, this._buffer)] = System.Int64.clipu8(TmpValue.shru(56));\r\n this.OutStream.Write(this._buffer, 0, 8);\r\n },\r\n Write$7: function (value) {\r\n var buf = value.getBytes();\r\n this.OutStream.Write(buf, 0, 23);\r\n },\r\n Write$9: function (value) {\r\n this._buffer[System.Array.index(0, this._buffer)] = value & 255;\r\n this._buffer[System.Array.index(1, this._buffer)] = (value >> 8) & 255;\r\n this.OutStream.Write(this._buffer, 0, 2);\r\n },\r\n Write$15: function (value) {\r\n this._buffer[System.Array.index(0, this._buffer)] = value & 255;\r\n this._buffer[System.Array.index(1, this._buffer)] = (value >> 8) & 255;\r\n this.OutStream.Write(this._buffer, 0, 2);\r\n },\r\n Write$10: function (value) {\r\n this._buffer[System.Array.index(0, this._buffer)] = value & 255;\r\n this._buffer[System.Array.index(1, this._buffer)] = (value >> 8) & 255;\r\n this._buffer[System.Array.index(2, this._buffer)] = (value >> 16) & 255;\r\n this._buffer[System.Array.index(3, this._buffer)] = (value >> 24) & 255;\r\n this.OutStream.Write(this._buffer, 0, 4);\r\n },\r\n Write$16: function (value) {\r\n this._buffer[System.Array.index(0, this._buffer)] = value & 255;\r\n this._buffer[System.Array.index(1, this._buffer)] = (value >>> 8) & 255;\r\n this._buffer[System.Array.index(2, this._buffer)] = (value >>> 16) & 255;\r\n this._buffer[System.Array.index(3, this._buffer)] = (value >>> 24) & 255;\r\n this.OutStream.Write(this._buffer, 0, 4);\r\n },\r\n Write$11: function (value) {\r\n this._buffer[System.Array.index(0, this._buffer)] = System.Int64.clipu8(value);\r\n this._buffer[System.Array.index(1, this._buffer)] = System.Int64.clipu8(value.shr(8));\r\n this._buffer[System.Array.index(2, this._buffer)] = System.Int64.clipu8(value.shr(16));\r\n this._buffer[System.Array.index(3, this._buffer)] = System.Int64.clipu8(value.shr(24));\r\n this._buffer[System.Array.index(4, this._buffer)] = System.Int64.clipu8(value.shr(32));\r\n this._buffer[System.Array.index(5, this._buffer)] = System.Int64.clipu8(value.shr(40));\r\n this._buffer[System.Array.index(6, this._buffer)] = System.Int64.clipu8(value.shr(48));\r\n this._buffer[System.Array.index(7, this._buffer)] = System.Int64.clipu8(value.shr(56));\r\n this.OutStream.Write(this._buffer, 0, 8);\r\n },\r\n Write$17: function (value) {\r\n this._buffer[System.Array.index(0, this._buffer)] = System.Int64.clipu8(value);\r\n this._buffer[System.Array.index(1, this._buffer)] = System.Int64.clipu8(value.shru(8));\r\n this._buffer[System.Array.index(2, this._buffer)] = System.Int64.clipu8(value.shru(16));\r\n this._buffer[System.Array.index(3, this._buffer)] = System.Int64.clipu8(value.shru(24));\r\n this._buffer[System.Array.index(4, this._buffer)] = System.Int64.clipu8(value.shru(32));\r\n this._buffer[System.Array.index(5, this._buffer)] = System.Int64.clipu8(value.shru(40));\r\n this._buffer[System.Array.index(6, this._buffer)] = System.Int64.clipu8(value.shru(48));\r\n this._buffer[System.Array.index(7, this._buffer)] = System.Int64.clipu8(value.shru(56));\r\n this.OutStream.Write(this._buffer, 0, 8);\r\n },\r\n Write$13: function (value) {\r\n var TmpValue = System.BitConverter.toUInt32(System.BitConverter.getBytes$6(value), 0);\r\n this._buffer[System.Array.index(0, this._buffer)] = TmpValue & 255;\r\n this._buffer[System.Array.index(1, this._buffer)] = (TmpValue >>> 8) & 255;\r\n this._buffer[System.Array.index(2, this._buffer)] = (TmpValue >>> 16) & 255;\r\n this._buffer[System.Array.index(3, this._buffer)] = (TmpValue >>> 24) & 255;\r\n this.OutStream.Write(this._buffer, 0, 4);\r\n },\r\n Write$14: function (value) {\r\n if (value == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"value\");\r\n }\r\n\r\n var buffer = this._encoding.GetBytes$2(value);\r\n var len = buffer.length;\r\n this.Write7BitEncodedInt(len);\r\n this.OutStream.Write(buffer, 0, len);\r\n },\r\n Write7BitEncodedInt: function (value) {\r\n var v = value >>> 0;\r\n while (v >= 128) {\r\n this.Write$1(((((v | 128) >>> 0)) & 255));\r\n v = v >>> 7;\r\n }\r\n this.Write$1((v & 255));\r\n }\r\n }\r\n });\r\n\r\n // @source Stream.js\r\n\r\n Bridge.define(\"System.IO.Stream\", {\r\n inherits: [System.IDisposable],\r\n statics: {\r\n fields: {\r\n _DefaultCopyBufferSize: 0,\r\n Null: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this._DefaultCopyBufferSize = 81920;\r\n this.Null = new System.IO.Stream.NullStream();\r\n }\r\n },\r\n methods: {\r\n Synchronized: function (stream) {\r\n if (stream == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"stream\");\r\n }\r\n\r\n return stream;\r\n },\r\n BlockingEndRead: function (asyncResult) {\r\n\r\n return System.IO.Stream.SynchronousAsyncResult.EndRead(asyncResult);\r\n },\r\n BlockingEndWrite: function (asyncResult) {\r\n System.IO.Stream.SynchronousAsyncResult.EndWrite(asyncResult);\r\n }\r\n }\r\n },\r\n props: {\r\n CanTimeout: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n ReadTimeout: {\r\n get: function () {\r\n throw new System.InvalidOperationException.ctor();\r\n },\r\n set: function (value) {\r\n throw new System.InvalidOperationException.ctor();\r\n }\r\n },\r\n WriteTimeout: {\r\n get: function () {\r\n throw new System.InvalidOperationException.ctor();\r\n },\r\n set: function (value) {\r\n throw new System.InvalidOperationException.ctor();\r\n }\r\n }\r\n },\r\n alias: [\"Dispose\", \"System$IDisposable$Dispose\"],\r\n methods: {\r\n CopyTo: function (destination) {\r\n if (destination == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"destination\");\r\n }\r\n if (!this.CanRead && !this.CanWrite) {\r\n throw new System.Exception();\r\n }\r\n if (!destination.CanRead && !destination.CanWrite) {\r\n throw new System.Exception(\"destination\");\r\n }\r\n if (!this.CanRead) {\r\n throw new System.NotSupportedException.ctor();\r\n }\r\n if (!destination.CanWrite) {\r\n throw new System.NotSupportedException.ctor();\r\n }\r\n\r\n this.InternalCopyTo(destination, System.IO.Stream._DefaultCopyBufferSize);\r\n },\r\n CopyTo$1: function (destination, bufferSize) {\r\n if (destination == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"destination\");\r\n }\r\n if (bufferSize <= 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"bufferSize\");\r\n }\r\n if (!this.CanRead && !this.CanWrite) {\r\n throw new System.Exception();\r\n }\r\n if (!destination.CanRead && !destination.CanWrite) {\r\n throw new System.Exception(\"destination\");\r\n }\r\n if (!this.CanRead) {\r\n throw new System.NotSupportedException.ctor();\r\n }\r\n if (!destination.CanWrite) {\r\n throw new System.NotSupportedException.ctor();\r\n }\r\n\r\n this.InternalCopyTo(destination, bufferSize);\r\n },\r\n InternalCopyTo: function (destination, bufferSize) {\r\n\r\n var buffer = System.Array.init(bufferSize, 0, System.Byte);\r\n var read;\r\n while (((read = this.Read(buffer, 0, buffer.length))) !== 0) {\r\n destination.Write(buffer, 0, read);\r\n }\r\n },\r\n Close: function () {\r\n /* These are correct, but we'd have to fix PipeStream & NetworkStream very carefully.\r\n Contract.Ensures(CanRead == false);\r\n Contract.Ensures(CanWrite == false);\r\n Contract.Ensures(CanSeek == false);\r\n */\r\n\r\n this.Dispose$1(true);\r\n },\r\n Dispose: function () {\r\n /* These are correct, but we'd have to fix PipeStream & NetworkStream very carefully.\r\n Contract.Ensures(CanRead == false);\r\n Contract.Ensures(CanWrite == false);\r\n Contract.Ensures(CanSeek == false);\r\n */\r\n\r\n this.Close();\r\n },\r\n Dispose$1: function (disposing) { },\r\n BeginRead: function (buffer, offset, count, callback, state) {\r\n return this.BeginReadInternal(buffer, offset, count, callback, state, false);\r\n },\r\n BeginReadInternal: function (buffer, offset, count, callback, state, serializeAsynchronously) {\r\n if (!this.CanRead) {\r\n System.IO.__Error.ReadNotSupported();\r\n }\r\n\r\n return this.BlockingBeginRead(buffer, offset, count, callback, state);\r\n },\r\n EndRead: function (asyncResult) {\r\n if (asyncResult == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"asyncResult\");\r\n }\r\n\r\n return System.IO.Stream.BlockingEndRead(asyncResult);\r\n },\r\n BeginWrite: function (buffer, offset, count, callback, state) {\r\n return this.BeginWriteInternal(buffer, offset, count, callback, state, false);\r\n },\r\n BeginWriteInternal: function (buffer, offset, count, callback, state, serializeAsynchronously) {\r\n if (!this.CanWrite) {\r\n System.IO.__Error.WriteNotSupported();\r\n }\r\n return this.BlockingBeginWrite(buffer, offset, count, callback, state);\r\n },\r\n EndWrite: function (asyncResult) {\r\n if (asyncResult == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"asyncResult\");\r\n }\r\n\r\n System.IO.Stream.BlockingEndWrite(asyncResult);\r\n },\r\n ReadByte: function () {\r\n\r\n var oneByteArray = System.Array.init(1, 0, System.Byte);\r\n var r = this.Read(oneByteArray, 0, 1);\r\n if (r === 0) {\r\n return -1;\r\n }\r\n return oneByteArray[System.Array.index(0, oneByteArray)];\r\n },\r\n WriteByte: function (value) {\r\n var oneByteArray = System.Array.init(1, 0, System.Byte);\r\n oneByteArray[System.Array.index(0, oneByteArray)] = value;\r\n this.Write(oneByteArray, 0, 1);\r\n },\r\n BlockingBeginRead: function (buffer, offset, count, callback, state) {\r\n\r\n var asyncResult;\r\n try {\r\n var numRead = this.Read(buffer, offset, count);\r\n asyncResult = new System.IO.Stream.SynchronousAsyncResult.$ctor1(numRead, state);\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n var ex;\r\n if (Bridge.is($e1, System.IO.IOException)) {\r\n ex = $e1;\r\n asyncResult = new System.IO.Stream.SynchronousAsyncResult.ctor(ex, state, false);\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n\r\n if (!Bridge.staticEquals(callback, null)) {\r\n callback(asyncResult);\r\n }\r\n\r\n return asyncResult;\r\n },\r\n BlockingBeginWrite: function (buffer, offset, count, callback, state) {\r\n\r\n var asyncResult;\r\n try {\r\n this.Write(buffer, offset, count);\r\n asyncResult = new System.IO.Stream.SynchronousAsyncResult.$ctor2(state);\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n var ex;\r\n if (Bridge.is($e1, System.IO.IOException)) {\r\n ex = $e1;\r\n asyncResult = new System.IO.Stream.SynchronousAsyncResult.ctor(ex, state, true);\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n\r\n if (!Bridge.staticEquals(callback, null)) {\r\n callback(asyncResult);\r\n }\r\n\r\n return asyncResult;\r\n }\r\n }\r\n });\r\n\r\n // @source BufferedStream.js\r\n\r\n Bridge.define(\"System.IO.BufferedStream\", {\r\n inherits: [System.IO.Stream],\r\n statics: {\r\n fields: {\r\n _DefaultBufferSize: 0,\r\n MaxShadowBufferSize: 0\r\n },\r\n ctors: {\r\n init: function () {\r\n this._DefaultBufferSize = 4096;\r\n this.MaxShadowBufferSize = 81920;\r\n }\r\n }\r\n },\r\n fields: {\r\n _stream: null,\r\n _buffer: null,\r\n _bufferSize: 0,\r\n _readPos: 0,\r\n _readLen: 0,\r\n _writePos: 0\r\n },\r\n props: {\r\n UnderlyingStream: {\r\n get: function () {\r\n return this._stream;\r\n }\r\n },\r\n BufferSize: {\r\n get: function () {\r\n return this._bufferSize;\r\n }\r\n },\r\n CanRead: {\r\n get: function () {\r\n return this._stream != null && this._stream.CanRead;\r\n }\r\n },\r\n CanWrite: {\r\n get: function () {\r\n return this._stream != null && this._stream.CanWrite;\r\n }\r\n },\r\n CanSeek: {\r\n get: function () {\r\n return this._stream != null && this._stream.CanSeek;\r\n }\r\n },\r\n Length: {\r\n get: function () {\r\n this.EnsureNotClosed();\r\n\r\n if (this._writePos > 0) {\r\n this.FlushWrite();\r\n }\r\n\r\n return this._stream.Length;\r\n }\r\n },\r\n Position: {\r\n get: function () {\r\n this.EnsureNotClosed();\r\n this.EnsureCanSeek();\r\n\r\n return this._stream.Position.add(System.Int64((((((this._readPos - this._readLen) | 0) + this._writePos) | 0))));\r\n },\r\n set: function (value) {\r\n if (value.lt(System.Int64(0))) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"value\");\r\n }\r\n\r\n this.EnsureNotClosed();\r\n this.EnsureCanSeek();\r\n\r\n if (this._writePos > 0) {\r\n this.FlushWrite();\r\n }\r\n\r\n this._readPos = 0;\r\n this._readLen = 0;\r\n this._stream.Seek(value, 0);\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.IO.Stream.ctor.call(this);\r\n },\r\n $ctor1: function (stream) {\r\n System.IO.BufferedStream.$ctor2.call(this, stream, System.IO.BufferedStream._DefaultBufferSize);\r\n },\r\n $ctor2: function (stream, bufferSize) {\r\n this.$initialize();\r\n System.IO.Stream.ctor.call(this);\r\n\r\n if (stream == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"stream\");\r\n }\r\n\r\n if (bufferSize <= 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"bufferSize\");\r\n }\r\n\r\n this._stream = stream;\r\n this._bufferSize = bufferSize;\r\n\r\n\r\n if (!this._stream.CanRead && !this._stream.CanWrite) {\r\n System.IO.__Error.StreamIsClosed();\r\n }\r\n }\r\n },\r\n methods: {\r\n EnsureNotClosed: function () {\r\n\r\n if (this._stream == null) {\r\n System.IO.__Error.StreamIsClosed();\r\n }\r\n },\r\n EnsureCanSeek: function () {\r\n\r\n\r\n if (!this._stream.CanSeek) {\r\n System.IO.__Error.SeekNotSupported();\r\n }\r\n },\r\n EnsureCanRead: function () {\r\n\r\n\r\n if (!this._stream.CanRead) {\r\n System.IO.__Error.ReadNotSupported();\r\n }\r\n },\r\n EnsureCanWrite: function () {\r\n\r\n\r\n if (!this._stream.CanWrite) {\r\n System.IO.__Error.WriteNotSupported();\r\n }\r\n },\r\n EnsureShadowBufferAllocated: function () {\r\n\r\n\r\n if (this._buffer.length !== this._bufferSize || this._bufferSize >= System.IO.BufferedStream.MaxShadowBufferSize) {\r\n return;\r\n }\r\n\r\n var shadowBuffer = System.Array.init(Math.min(((this._bufferSize + this._bufferSize) | 0), System.IO.BufferedStream.MaxShadowBufferSize), 0, System.Byte);\r\n System.Array.copy(this._buffer, 0, shadowBuffer, 0, this._writePos);\r\n this._buffer = shadowBuffer;\r\n },\r\n EnsureBufferAllocated: function () {\r\n\r\n\r\n if (this._buffer == null) {\r\n this._buffer = System.Array.init(this._bufferSize, 0, System.Byte);\r\n }\r\n },\r\n Dispose$1: function (disposing) {\r\n\r\n try {\r\n if (disposing && this._stream != null) {\r\n try {\r\n this.Flush();\r\n } finally {\r\n this._stream.Close();\r\n }\r\n }\r\n } finally {\r\n this._stream = null;\r\n this._buffer = null;\r\n\r\n System.IO.Stream.prototype.Dispose$1.call(this, disposing);\r\n }\r\n },\r\n Flush: function () {\r\n\r\n this.EnsureNotClosed();\r\n\r\n if (this._writePos > 0) {\r\n\r\n this.FlushWrite();\r\n return;\r\n }\r\n\r\n if (this._readPos < this._readLen) {\r\n\r\n if (!this._stream.CanSeek) {\r\n return;\r\n }\r\n\r\n this.FlushRead();\r\n\r\n if (this._stream.CanWrite || Bridge.is(this._stream, System.IO.BufferedStream)) {\r\n this._stream.Flush();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (this._stream.CanWrite || Bridge.is(this._stream, System.IO.BufferedStream)) {\r\n this._stream.Flush();\r\n }\r\n\r\n this._writePos = (this._readPos = (this._readLen = 0));\r\n },\r\n FlushRead: function () {\r\n\r\n\r\n if (((this._readPos - this._readLen) | 0) !== 0) {\r\n this._stream.Seek(System.Int64(this._readPos - this._readLen), 1);\r\n }\r\n\r\n this._readPos = 0;\r\n this._readLen = 0;\r\n },\r\n ClearReadBufferBeforeWrite: function () {\r\n\r\n\r\n\r\n if (this._readPos === this._readLen) {\r\n\r\n this._readPos = (this._readLen = 0);\r\n return;\r\n }\r\n\r\n\r\n if (!this._stream.CanSeek) {\r\n throw new System.NotSupportedException.ctor();\r\n }\r\n\r\n this.FlushRead();\r\n },\r\n FlushWrite: function () {\r\n\r\n\r\n this._stream.Write(this._buffer, 0, this._writePos);\r\n this._writePos = 0;\r\n this._stream.Flush();\r\n },\r\n ReadFromBuffer: function (array, offset, count) {\r\n\r\n var readBytes = (this._readLen - this._readPos) | 0;\r\n\r\n if (readBytes === 0) {\r\n return 0;\r\n }\r\n\r\n\r\n if (readBytes > count) {\r\n readBytes = count;\r\n }\r\n\r\n System.Array.copy(this._buffer, this._readPos, array, offset, readBytes);\r\n this._readPos = (this._readPos + readBytes) | 0;\r\n\r\n return readBytes;\r\n },\r\n ReadFromBuffer$1: function (array, offset, count, error) {\r\n\r\n try {\r\n\r\n error.v = null;\r\n return this.ReadFromBuffer(array, offset, count);\r\n\r\n } catch (ex) {\r\n ex = System.Exception.create(ex);\r\n error.v = ex;\r\n return 0;\r\n }\r\n },\r\n Read: function (array, offset, count) {\r\n\r\n if (array == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n if (offset < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"offset\");\r\n }\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n if (((array.length - offset) | 0) < count) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n this.EnsureNotClosed();\r\n this.EnsureCanRead();\r\n\r\n var bytesFromBuffer = this.ReadFromBuffer(array, offset, count);\r\n\r\n\r\n if (bytesFromBuffer === count) {\r\n return bytesFromBuffer;\r\n }\r\n\r\n var alreadySatisfied = bytesFromBuffer;\r\n if (bytesFromBuffer > 0) {\r\n count = (count - bytesFromBuffer) | 0;\r\n offset = (offset + bytesFromBuffer) | 0;\r\n }\r\n\r\n this._readPos = (this._readLen = 0);\r\n\r\n if (this._writePos > 0) {\r\n this.FlushWrite();\r\n }\r\n\r\n if (count >= this._bufferSize) {\r\n\r\n return ((this._stream.Read(array, offset, count) + alreadySatisfied) | 0);\r\n }\r\n\r\n this.EnsureBufferAllocated();\r\n this._readLen = this._stream.Read(this._buffer, 0, this._bufferSize);\r\n\r\n bytesFromBuffer = this.ReadFromBuffer(array, offset, count);\r\n\r\n\r\n return ((bytesFromBuffer + alreadySatisfied) | 0);\r\n },\r\n ReadByte: function () {\r\n\r\n this.EnsureNotClosed();\r\n this.EnsureCanRead();\r\n\r\n if (this._readPos === this._readLen) {\r\n\r\n if (this._writePos > 0) {\r\n this.FlushWrite();\r\n }\r\n\r\n this.EnsureBufferAllocated();\r\n this._readLen = this._stream.Read(this._buffer, 0, this._bufferSize);\r\n this._readPos = 0;\r\n }\r\n\r\n if (this._readPos === this._readLen) {\r\n return -1;\r\n }\r\n\r\n var b = this._buffer[System.Array.index(Bridge.identity(this._readPos, ((this._readPos = (this._readPos + 1) | 0))), this._buffer)];\r\n return b;\r\n },\r\n WriteToBuffer: function (array, offset, count) {\r\n\r\n var bytesToWrite = Math.min(((this._bufferSize - this._writePos) | 0), count.v);\r\n\r\n if (bytesToWrite <= 0) {\r\n return;\r\n }\r\n\r\n this.EnsureBufferAllocated();\r\n System.Array.copy(array, offset.v, this._buffer, this._writePos, bytesToWrite);\r\n\r\n this._writePos = (this._writePos + bytesToWrite) | 0;\r\n count.v = (count.v - bytesToWrite) | 0;\r\n offset.v = (offset.v + bytesToWrite) | 0;\r\n },\r\n WriteToBuffer$1: function (array, offset, count, error) {\r\n\r\n try {\r\n\r\n error.v = null;\r\n this.WriteToBuffer(array, offset, count);\r\n\r\n } catch (ex) {\r\n ex = System.Exception.create(ex);\r\n error.v = ex;\r\n }\r\n },\r\n Write: function (array, offset, count) {\r\n offset = {v:offset};\r\n count = {v:count};\r\n\r\n if (array == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"array\");\r\n }\r\n if (offset.v < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"offset\");\r\n }\r\n if (count.v < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n if (((array.length - offset.v) | 0) < count.v) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n this.EnsureNotClosed();\r\n this.EnsureCanWrite();\r\n\r\n if (this._writePos === 0) {\r\n this.ClearReadBufferBeforeWrite();\r\n }\r\n\r\n\r\n\r\n var totalUserBytes;\r\n var useBuffer;\r\n totalUserBytes = Bridge.Int.check(this._writePos + count.v, System.Int32);\r\n useBuffer = (Bridge.Int.check(totalUserBytes + count.v, System.Int32) < (Bridge.Int.check(this._bufferSize + this._bufferSize, System.Int32)));\r\n\r\n if (useBuffer) {\r\n\r\n this.WriteToBuffer(array, offset, count);\r\n\r\n if (this._writePos < this._bufferSize) {\r\n\r\n return;\r\n }\r\n\r\n\r\n this._stream.Write(this._buffer, 0, this._writePos);\r\n this._writePos = 0;\r\n\r\n this.WriteToBuffer(array, offset, count);\r\n\r\n\r\n } else {\r\n\r\n if (this._writePos > 0) {\r\n\r\n\r\n if (totalUserBytes <= (((this._bufferSize + this._bufferSize) | 0)) && totalUserBytes <= System.IO.BufferedStream.MaxShadowBufferSize) {\r\n\r\n this.EnsureShadowBufferAllocated();\r\n System.Array.copy(array, offset.v, this._buffer, this._writePos, count.v);\r\n this._stream.Write(this._buffer, 0, totalUserBytes);\r\n this._writePos = 0;\r\n return;\r\n }\r\n\r\n this._stream.Write(this._buffer, 0, this._writePos);\r\n this._writePos = 0;\r\n }\r\n\r\n this._stream.Write(array, offset.v, count.v);\r\n }\r\n },\r\n WriteByte: function (value) {\r\n\r\n this.EnsureNotClosed();\r\n\r\n if (this._writePos === 0) {\r\n\r\n this.EnsureCanWrite();\r\n this.ClearReadBufferBeforeWrite();\r\n this.EnsureBufferAllocated();\r\n }\r\n\r\n if (this._writePos >= ((this._bufferSize - 1) | 0)) {\r\n this.FlushWrite();\r\n }\r\n\r\n this._buffer[System.Array.index(Bridge.identity(this._writePos, ((this._writePos = (this._writePos + 1) | 0))), this._buffer)] = value;\r\n\r\n },\r\n Seek: function (offset, origin) {\r\n\r\n this.EnsureNotClosed();\r\n this.EnsureCanSeek();\r\n\r\n if (this._writePos > 0) {\r\n\r\n this.FlushWrite();\r\n return this._stream.Seek(offset, origin);\r\n }\r\n\r\n\r\n if (((this._readLen - this._readPos) | 0) > 0 && origin === 1) {\r\n\r\n offset = offset.sub(System.Int64((((this._readLen - this._readPos) | 0))));\r\n }\r\n\r\n var oldPos = this.Position;\r\n\r\n var newPos = this._stream.Seek(offset, origin);\r\n\r\n\r\n this._readPos = System.Int64.clip32(newPos.sub((oldPos.sub(System.Int64(this._readPos)))));\r\n\r\n if (0 <= this._readPos && this._readPos < this._readLen) {\r\n\r\n this._stream.Seek(System.Int64(this._readLen - this._readPos), 1);\r\n\r\n } else {\r\n\r\n this._readPos = (this._readLen = 0);\r\n }\r\n\r\n return newPos;\r\n },\r\n SetLength: function (value) {\r\n\r\n if (value.lt(System.Int64(0))) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"value\");\r\n }\r\n\r\n this.EnsureNotClosed();\r\n this.EnsureCanSeek();\r\n this.EnsureCanWrite();\r\n\r\n this.Flush();\r\n this._stream.SetLength(value);\r\n }\r\n }\r\n });\r\n\r\n // @source IOException.js\r\n\r\n Bridge.define(\"System.IO.IOException\", {\r\n inherits: [System.SystemException],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, \"I/O error occurred.\");\r\n this.HResult = -2146232800;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2146232800;\r\n },\r\n $ctor3: function (message, hresult) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = hresult;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, innerException);\r\n this.HResult = -2146232800;\r\n }\r\n }\r\n });\r\n\r\n // @source EndOfStreamException.js\r\n\r\n Bridge.define(\"System.IO.EndOfStreamException\", {\r\n inherits: [System.IO.IOException],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.IO.IOException.$ctor1.call(this, \"Arg_EndOfStreamException\");\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.IO.IOException.$ctor1.call(this, message);\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.IO.IOException.$ctor2.call(this, message, innerException);\r\n }\r\n }\r\n });\r\n\r\n // @source File.js\r\n\r\n Bridge.define(\"System.IO.File\", {\r\n statics: {\r\n methods: {\r\n OpenText: function (path) {\r\n if (path == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"path\");\r\n }\r\n return new System.IO.StreamReader.$ctor7(path);\r\n },\r\n OpenRead: function (path) {\r\n return new System.IO.FileStream.$ctor1(path, 3);\r\n },\r\n ReadAllText: function (path) {\r\n if (path == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"path\");\r\n }\r\n if (path.length === 0) {\r\n throw new System.ArgumentException.$ctor1(\"Argument_EmptyPath\");\r\n }\r\n\r\n return System.IO.File.InternalReadAllText(path, System.Text.Encoding.UTF8, true);\r\n },\r\n ReadAllText$1: function (path, encoding) {\r\n if (path == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"path\");\r\n }\r\n if (encoding == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"encoding\");\r\n }\r\n if (path.length === 0) {\r\n throw new System.ArgumentException.$ctor1(\"Argument_EmptyPath\");\r\n }\r\n\r\n return System.IO.File.InternalReadAllText(path, encoding, true);\r\n },\r\n InternalReadAllText: function (path, encoding, checkHost) {\r\n\r\n var sr = new System.IO.StreamReader.$ctor12(path, encoding, true, System.IO.StreamReader.DefaultBufferSize, checkHost);\r\n try {\r\n return sr.ReadToEnd();\r\n }\r\n finally {\r\n if (Bridge.hasValue(sr)) {\r\n sr.System$IDisposable$Dispose();\r\n }\r\n }\r\n },\r\n ReadAllBytes: function (path) {\r\n return System.IO.File.InternalReadAllBytes(path, true);\r\n },\r\n InternalReadAllBytes: function (path, checkHost) {\r\n var bytes;\r\n var fs = new System.IO.FileStream.$ctor1(path, 3);\r\n try {\r\n var index = 0;\r\n var fileLength = fs.Length;\r\n if (fileLength.gt(System.Int64(2147483647))) {\r\n throw new System.IO.IOException.$ctor1(\"IO.IO_FileTooLong2GB\");\r\n }\r\n var count = System.Int64.clip32(fileLength);\r\n bytes = System.Array.init(count, 0, System.Byte);\r\n while (count > 0) {\r\n var n = fs.Read(bytes, index, count);\r\n if (n === 0) {\r\n System.IO.__Error.EndOfFile();\r\n }\r\n index = (index + n) | 0;\r\n count = (count - n) | 0;\r\n }\r\n }\r\n finally {\r\n if (Bridge.hasValue(fs)) {\r\n fs.System$IDisposable$Dispose();\r\n }\r\n }\r\n return bytes;\r\n },\r\n ReadAllLines: function (path) {\r\n if (path == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"path\");\r\n }\r\n if (path.length === 0) {\r\n throw new System.ArgumentException.$ctor1(\"Argument_EmptyPath\");\r\n }\r\n\r\n return System.IO.File.InternalReadAllLines(path, System.Text.Encoding.UTF8);\r\n },\r\n ReadAllLines$1: function (path, encoding) {\r\n if (path == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"path\");\r\n }\r\n if (encoding == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"encoding\");\r\n }\r\n if (path.length === 0) {\r\n throw new System.ArgumentException.$ctor1(\"Argument_EmptyPath\");\r\n }\r\n\r\n return System.IO.File.InternalReadAllLines(path, encoding);\r\n },\r\n InternalReadAllLines: function (path, encoding) {\r\n\r\n var line;\r\n var lines = new (System.Collections.Generic.List$1(System.String)).ctor();\r\n\r\n var sr = new System.IO.StreamReader.$ctor9(path, encoding);\r\n try {\r\n while (((line = sr.ReadLine())) != null) {\r\n lines.add(line);\r\n }\r\n }\r\n finally {\r\n if (Bridge.hasValue(sr)) {\r\n sr.System$IDisposable$Dispose();\r\n }\r\n }\r\n\r\n return lines.ToArray();\r\n },\r\n ReadLines: function (path) {\r\n if (path == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"path\");\r\n }\r\n if (path.length === 0) {\r\n throw new System.ArgumentException.$ctor3(\"Argument_EmptyPath\", \"path\");\r\n }\r\n\r\n return System.IO.ReadLinesIterator.CreateIterator(path, System.Text.Encoding.UTF8);\r\n },\r\n ReadLines$1: function (path, encoding) {\r\n if (path == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"path\");\r\n }\r\n if (encoding == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"encoding\");\r\n }\r\n if (path.length === 0) {\r\n throw new System.ArgumentException.$ctor3(\"Argument_EmptyPath\", \"path\");\r\n }\r\n\r\n return System.IO.ReadLinesIterator.CreateIterator(path, encoding);\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source FileMode.js\r\n\r\n Bridge.define(\"System.IO.FileMode\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n CreateNew: 1,\r\n Create: 2,\r\n Open: 3,\r\n OpenOrCreate: 4,\r\n Truncate: 5,\r\n Append: 6\r\n }\r\n }\r\n });\r\n\r\n // @source FileOptions.js\r\n\r\n Bridge.define(\"System.IO.FileOptions\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n None: 0,\r\n WriteThrough: -2147483648,\r\n Asynchronous: 1073741824,\r\n RandomAccess: 268435456,\r\n DeleteOnClose: 67108864,\r\n SequentialScan: 134217728,\r\n Encrypted: 16384\r\n }\r\n },\r\n $flags: true\r\n });\r\n\r\n // @source FileShare.js\r\n\r\n Bridge.define(\"System.IO.FileShare\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n None: 0,\r\n Read: 1,\r\n Write: 2,\r\n ReadWrite: 3,\r\n Delete: 4,\r\n Inheritable: 16\r\n }\r\n },\r\n $flags: true\r\n });\r\n\r\n // @source FileStream.js\r\n\r\n Bridge.define(\"System.IO.FileStream\", {\r\n inherits: [System.IO.Stream],\r\n statics: {\r\n methods: {\r\n FromFile: function (file) {\r\n var completer = new System.Threading.Tasks.TaskCompletionSource();\r\n var fileReader = new FileReader();\r\n fileReader.onload = function () {\r\n completer.setResult(new System.IO.FileStream.ctor(fileReader.result, file.name));\r\n };\r\n fileReader.onerror = function (e) {\r\n completer.setException(new System.SystemException.$ctor1(Bridge.unbox(e).target.error.As()));\r\n };\r\n fileReader.readAsArrayBuffer(file);\r\n\r\n return completer.task;\r\n },\r\n ReadBytes: function (path) {\r\n if (Bridge.isNode) {\r\n var fs = require(\"fs\");\r\n return Bridge.cast(fs.readFileSync(path), ArrayBuffer);\r\n } else {\r\n var req = new XMLHttpRequest();\r\n req.open(\"GET\", path, false);\r\n req.overrideMimeType(\"text/plain; charset=x-user-defined\");\r\n req.send(null);\r\n if (req.status !== 200) {\r\n throw new System.IO.IOException.$ctor1(System.String.concat(\"Status of request to \" + (path || \"\") + \" returned status: \", req.status));\r\n }\r\n\r\n var text = req.responseText;\r\n var resultArray = new Uint8Array(text.length);\r\n System.String.toCharArray(text, 0, text.length).forEach(function (v, index, array) {\r\n var $t;\r\n return ($t = (v & 255) & 255, resultArray[index] = $t, $t);\r\n });\r\n return resultArray.buffer;\r\n }\r\n },\r\n ReadBytesAsync: function (path) {\r\n var tcs = new System.Threading.Tasks.TaskCompletionSource();\r\n\r\n if (Bridge.isNode) {\r\n var fs = require(\"fs\");\r\n fs.readFile(path, Bridge.fn.$build([function (err, data) {\r\n if (err != null) {\r\n throw new System.IO.IOException.ctor();\r\n }\r\n\r\n tcs.setResult(data);\r\n }]));\r\n } else {\r\n var req = new XMLHttpRequest();\r\n req.open(\"GET\", path, true);\r\n req.overrideMimeType(\"text/plain; charset=binary-data\");\r\n req.send(null);\r\n\r\n req.onreadystatechange = function () {\r\n if (req.readyState !== 4) {\r\n return;\r\n }\r\n\r\n if (req.status !== 200) {\r\n throw new System.IO.IOException.$ctor1(System.String.concat(\"Status of request to \" + (path || \"\") + \" returned status: \", req.status));\r\n }\r\n\r\n var text = req.responseText;\r\n var resultArray = new Uint8Array(text.length);\r\n System.String.toCharArray(text, 0, text.length).forEach(function (v, index, array) {\r\n var $t;\r\n return ($t = (v & 255) & 255, resultArray[index] = $t, $t);\r\n });\r\n tcs.setResult(resultArray.buffer);\r\n };\r\n }\r\n\r\n return tcs.task;\r\n }\r\n }\r\n },\r\n fields: {\r\n name: null,\r\n _buffer: null\r\n },\r\n props: {\r\n CanRead: {\r\n get: function () {\r\n return true;\r\n }\r\n },\r\n CanWrite: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n CanSeek: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n IsAsync: {\r\n get: function () {\r\n return false;\r\n }\r\n },\r\n Name: {\r\n get: function () {\r\n return this.name;\r\n }\r\n },\r\n Length: {\r\n get: function () {\r\n return System.Int64(this.GetInternalBuffer().byteLength);\r\n }\r\n },\r\n Position: System.Int64(0)\r\n },\r\n ctors: {\r\n $ctor1: function (path, mode) {\r\n this.$initialize();\r\n System.IO.Stream.ctor.call(this);\r\n this.name = path;\r\n },\r\n ctor: function (buffer, name) {\r\n this.$initialize();\r\n System.IO.Stream.ctor.call(this);\r\n this._buffer = buffer;\r\n this.name = name;\r\n }\r\n },\r\n methods: {\r\n Flush: function () { },\r\n Seek: function (offset, origin) {\r\n throw new System.NotImplementedException.ctor();\r\n },\r\n SetLength: function (value) {\r\n throw new System.NotImplementedException.ctor();\r\n },\r\n Write: function (buffer, offset, count) {\r\n throw new System.NotImplementedException.ctor();\r\n },\r\n GetInternalBuffer: function () {\r\n if (this._buffer == null) {\r\n this._buffer = System.IO.FileStream.ReadBytes(this.name);\r\n\r\n }\r\n\r\n return this._buffer;\r\n },\r\n EnsureBufferAsync: function () {\r\n var $step = 0,\r\n $task1, \r\n $taskResult1, \r\n $jumpFromFinally, \r\n $tcs = new System.Threading.Tasks.TaskCompletionSource(), \r\n $returnValue, \r\n $async_e, \r\n $asyncBody = Bridge.fn.bind(this, function () {\r\n try {\r\n for (;;) {\r\n $step = System.Array.min([0,1,2,3], $step);\r\n switch ($step) {\r\n case 0: {\r\n if (this._buffer == null) {\r\n $step = 1;\r\n continue;\r\n } \r\n $step = 3;\r\n continue;\r\n }\r\n case 1: {\r\n $task1 = System.IO.FileStream.ReadBytesAsync(this.name);\r\n $step = 2;\r\n if ($task1.isCompleted()) {\r\n continue;\r\n }\r\n $task1.continue($asyncBody);\r\n return;\r\n }\r\n case 2: {\r\n $taskResult1 = $task1.getAwaitedResult();\r\n this._buffer = $taskResult1;\r\n $step = 3;\r\n continue;\r\n }\r\n case 3: {\r\n $tcs.setResult(null);\r\n return;\r\n }\r\n default: {\r\n $tcs.setResult(null);\r\n return;\r\n }\r\n }\r\n }\r\n } catch($async_e1) {\r\n $async_e = System.Exception.create($async_e1);\r\n $tcs.setException($async_e);\r\n }\r\n }, arguments);\r\n\r\n $asyncBody();\r\n return $tcs.task;\r\n },\r\n Read: function (buffer, offset, count) {\r\n if (buffer == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"buffer\");\r\n }\r\n\r\n if (offset < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"offset\");\r\n }\r\n\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n\r\n if ((((buffer.length - offset) | 0)) < count) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n var num = this.Length.sub(this.Position);\r\n if (num.gt(System.Int64(count))) {\r\n num = System.Int64(count);\r\n }\r\n\r\n if (num.lte(System.Int64(0))) {\r\n return 0;\r\n }\r\n\r\n var byteBuffer = new Uint8Array(this.GetInternalBuffer());\r\n if (num.gt(System.Int64(8))) {\r\n for (var n = 0; System.Int64(n).lt(num); n = (n + 1) | 0) {\r\n buffer[System.Array.index(((n + offset) | 0), buffer)] = byteBuffer[this.Position.add(System.Int64(n))];\r\n }\r\n } else {\r\n var num1 = num;\r\n while (true) {\r\n var num2 = num1.sub(System.Int64(1));\r\n num1 = num2;\r\n if (num2.lt(System.Int64(0))) {\r\n break;\r\n }\r\n buffer[System.Array.index(System.Int64.toNumber(System.Int64(offset).add(num1)), buffer)] = byteBuffer[this.Position.add(num1)];\r\n }\r\n }\r\n this.Position = this.Position.add(num);\r\n return System.Int64.clip32(num);\r\n }\r\n }\r\n });\r\n\r\n // @source Iterator.js\r\n\r\n Bridge.define(\"System.IO.Iterator$1\", function (TSource) { return {\r\n inherits: [System.Collections.Generic.IEnumerable$1(TSource),System.Collections.Generic.IEnumerator$1(TSource)],\r\n fields: {\r\n state: 0,\r\n current: Bridge.getDefaultValue(TSource)\r\n },\r\n props: {\r\n Current: {\r\n get: function () {\r\n return this.current;\r\n }\r\n },\r\n System$Collections$IEnumerator$Current: {\r\n get: function () {\r\n return this.Current;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"Current\", [\"System$Collections$Generic$IEnumerator$1$\" + Bridge.getTypeAlias(TSource) + \"$Current$1\", \"System$Collections$Generic$IEnumerator$1$Current$1\"],\r\n \"Dispose\", \"System$IDisposable$Dispose\",\r\n \"GetEnumerator\", [\"System$Collections$Generic$IEnumerable$1$\" + Bridge.getTypeAlias(TSource) + \"$GetEnumerator\", \"System$Collections$Generic$IEnumerable$1$GetEnumerator\"]\r\n ],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n Dispose: function () {\r\n this.Dispose$1(true);\r\n },\r\n Dispose$1: function (disposing) {\r\n this.current = Bridge.getDefaultValue(TSource);\r\n this.state = -1;\r\n },\r\n GetEnumerator: function () {\r\n if (this.state === 0) {\r\n this.state = 1;\r\n return this;\r\n }\r\n\r\n var duplicate = this.Clone();\r\n duplicate.state = 1;\r\n return duplicate;\r\n },\r\n System$Collections$IEnumerable$GetEnumerator: function () {\r\n return this.GetEnumerator();\r\n },\r\n System$Collections$IEnumerator$reset: function () {\r\n throw new System.NotSupportedException.ctor();\r\n }\r\n }\r\n }; });\r\n\r\n // @source MemoryStream.js\r\n\r\n Bridge.define(\"System.IO.MemoryStream\", {\r\n inherits: [System.IO.Stream],\r\n statics: {\r\n fields: {\r\n MemStreamMaxLength: 0\r\n },\r\n ctors: {\r\n init: function () {\r\n this.MemStreamMaxLength = 2147483647;\r\n }\r\n }\r\n },\r\n fields: {\r\n _buffer: null,\r\n _origin: 0,\r\n _position: 0,\r\n _length: 0,\r\n _capacity: 0,\r\n _expandable: false,\r\n _writable: false,\r\n _exposable: false,\r\n _isOpen: false\r\n },\r\n props: {\r\n CanRead: {\r\n get: function () {\r\n return this._isOpen;\r\n }\r\n },\r\n CanSeek: {\r\n get: function () {\r\n return this._isOpen;\r\n }\r\n },\r\n CanWrite: {\r\n get: function () {\r\n return this._writable;\r\n }\r\n },\r\n Capacity: {\r\n get: function () {\r\n if (!this._isOpen) {\r\n System.IO.__Error.StreamIsClosed();\r\n }\r\n return ((this._capacity - this._origin) | 0);\r\n },\r\n set: function (value) {\r\n if (System.Int64(value).lt(this.Length)) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"value\", \"ArgumentOutOfRange_SmallCapacity\");\r\n }\r\n\r\n if (!this._isOpen) {\r\n System.IO.__Error.StreamIsClosed();\r\n }\r\n if (!this._expandable && (value !== this.Capacity)) {\r\n System.IO.__Error.MemoryStreamNotExpandable();\r\n }\r\n\r\n if (this._expandable && value !== this._capacity) {\r\n if (value > 0) {\r\n var newBuffer = System.Array.init(value, 0, System.Byte);\r\n if (this._length > 0) {\r\n System.Array.copy(this._buffer, 0, newBuffer, 0, this._length);\r\n }\r\n this._buffer = newBuffer;\r\n } else {\r\n this._buffer = null;\r\n }\r\n this._capacity = value;\r\n }\r\n }\r\n },\r\n Length: {\r\n get: function () {\r\n if (!this._isOpen) {\r\n System.IO.__Error.StreamIsClosed();\r\n }\r\n return System.Int64(this._length - this._origin);\r\n }\r\n },\r\n Position: {\r\n get: function () {\r\n if (!this._isOpen) {\r\n System.IO.__Error.StreamIsClosed();\r\n }\r\n return System.Int64(this._position - this._origin);\r\n },\r\n set: function (value) {\r\n if (value.lt(System.Int64(0))) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"value\", \"ArgumentOutOfRange_NeedNonNegNum\");\r\n }\r\n\r\n if (!this._isOpen) {\r\n System.IO.__Error.StreamIsClosed();\r\n }\r\n\r\n if (value.gt(System.Int64(System.IO.MemoryStream.MemStreamMaxLength))) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"value\", \"ArgumentOutOfRange_StreamLength\");\r\n }\r\n this._position = (this._origin + System.Int64.clip32(value)) | 0;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n System.IO.MemoryStream.$ctor6.call(this, 0);\r\n },\r\n $ctor6: function (capacity) {\r\n this.$initialize();\r\n System.IO.Stream.ctor.call(this);\r\n if (capacity < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"capacity\", \"ArgumentOutOfRange_NegativeCapacity\");\r\n }\r\n\r\n this._buffer = System.Array.init(capacity, 0, System.Byte);\r\n this._capacity = capacity;\r\n this._expandable = true;\r\n this._writable = true;\r\n this._exposable = true;\r\n this._origin = 0;\r\n this._isOpen = true;\r\n },\r\n $ctor1: function (buffer) {\r\n System.IO.MemoryStream.$ctor2.call(this, buffer, true);\r\n },\r\n $ctor2: function (buffer, writable) {\r\n this.$initialize();\r\n System.IO.Stream.ctor.call(this);\r\n if (buffer == null) {\r\n throw new System.ArgumentNullException.$ctor3(\"buffer\", \"ArgumentNull_Buffer\");\r\n }\r\n this._buffer = buffer;\r\n this._length = (this._capacity = buffer.length);\r\n this._writable = writable;\r\n this._exposable = false;\r\n this._origin = 0;\r\n this._isOpen = true;\r\n },\r\n $ctor3: function (buffer, index, count) {\r\n System.IO.MemoryStream.$ctor5.call(this, buffer, index, count, true, false);\r\n },\r\n $ctor4: function (buffer, index, count, writable) {\r\n System.IO.MemoryStream.$ctor5.call(this, buffer, index, count, writable, false);\r\n },\r\n $ctor5: function (buffer, index, count, writable, publiclyVisible) {\r\n this.$initialize();\r\n System.IO.Stream.ctor.call(this);\r\n if (buffer == null) {\r\n throw new System.ArgumentNullException.$ctor3(\"buffer\", \"ArgumentNull_Buffer\");\r\n }\r\n if (index < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"index\", \"ArgumentOutOfRange_NeedNonNegNum\");\r\n }\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"count\", \"ArgumentOutOfRange_NeedNonNegNum\");\r\n }\r\n if (((buffer.length - index) | 0) < count) {\r\n throw new System.ArgumentException.$ctor1(\"Argument_InvalidOffLen\");\r\n }\r\n\r\n this._buffer = buffer;\r\n this._origin = (this._position = index);\r\n this._length = (this._capacity = (index + count) | 0);\r\n this._writable = writable;\r\n this._exposable = publiclyVisible;\r\n this._expandable = false;\r\n this._isOpen = true;\r\n }\r\n },\r\n methods: {\r\n EnsureWriteable: function () {\r\n if (!this.CanWrite) {\r\n System.IO.__Error.WriteNotSupported();\r\n }\r\n },\r\n Dispose$1: function (disposing) {\r\n try {\r\n if (disposing) {\r\n this._isOpen = false;\r\n this._writable = false;\r\n this._expandable = false;\r\n }\r\n } finally {\r\n System.IO.Stream.prototype.Dispose$1.call(this, disposing);\r\n }\r\n },\r\n EnsureCapacity: function (value) {\r\n if (value < 0) {\r\n throw new System.IO.IOException.$ctor1(\"IO.IO_StreamTooLong\");\r\n }\r\n if (value > this._capacity) {\r\n var newCapacity = value;\r\n if (newCapacity < 256) {\r\n newCapacity = 256;\r\n }\r\n if (newCapacity < Bridge.Int.mul(this._capacity, 2)) {\r\n newCapacity = Bridge.Int.mul(this._capacity, 2);\r\n }\r\n if ((((Bridge.Int.mul(this._capacity, 2))) >>> 0) > 2147483591) {\r\n newCapacity = value > 2147483591 ? value : 2147483591;\r\n }\r\n\r\n this.Capacity = newCapacity;\r\n return true;\r\n }\r\n return false;\r\n },\r\n Flush: function () { },\r\n GetBuffer: function () {\r\n if (!this._exposable) {\r\n throw new System.Exception(\"UnauthorizedAccess_MemStreamBuffer\");\r\n }\r\n return this._buffer;\r\n },\r\n TryGetBuffer: function (buffer) {\r\n if (!this._exposable) {\r\n buffer.v = Bridge.getDefaultValue(System.ArraySegment);\r\n return false;\r\n }\r\n\r\n buffer.v = new System.ArraySegment(this._buffer, this._origin, (((this._length - this._origin) | 0)));\r\n return true;\r\n },\r\n InternalGetBuffer: function () {\r\n return this._buffer;\r\n },\r\n InternalGetPosition: function () {\r\n if (!this._isOpen) {\r\n System.IO.__Error.StreamIsClosed();\r\n }\r\n return this._position;\r\n },\r\n InternalReadInt32: function () {\r\n if (!this._isOpen) {\r\n System.IO.__Error.StreamIsClosed();\r\n }\r\n\r\n var pos = ((this._position = (this._position + 4) | 0));\r\n if (pos > this._length) {\r\n this._position = this._length;\r\n System.IO.__Error.EndOfFile();\r\n }\r\n return this._buffer[System.Array.index(((pos - 4) | 0), this._buffer)] | this._buffer[System.Array.index(((pos - 3) | 0), this._buffer)] << 8 | this._buffer[System.Array.index(((pos - 2) | 0), this._buffer)] << 16 | this._buffer[System.Array.index(((pos - 1) | 0), this._buffer)] << 24;\r\n },\r\n InternalEmulateRead: function (count) {\r\n if (!this._isOpen) {\r\n System.IO.__Error.StreamIsClosed();\r\n }\r\n\r\n var n = (this._length - this._position) | 0;\r\n if (n > count) {\r\n n = count;\r\n }\r\n if (n < 0) {\r\n n = 0;\r\n }\r\n\r\n this._position = (this._position + n) | 0;\r\n return n;\r\n },\r\n Read: function (buffer, offset, count) {\r\n if (buffer == null) {\r\n throw new System.ArgumentNullException.$ctor3(\"buffer\", \"ArgumentNull_Buffer\");\r\n }\r\n if (offset < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"offset\", \"ArgumentOutOfRange_NeedNonNegNum\");\r\n }\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"count\", \"ArgumentOutOfRange_NeedNonNegNum\");\r\n }\r\n if (((buffer.length - offset) | 0) < count) {\r\n throw new System.ArgumentException.$ctor1(\"Argument_InvalidOffLen\");\r\n }\r\n\r\n if (!this._isOpen) {\r\n System.IO.__Error.StreamIsClosed();\r\n }\r\n\r\n var n = (this._length - this._position) | 0;\r\n if (n > count) {\r\n n = count;\r\n }\r\n if (n <= 0) {\r\n return 0;\r\n }\r\n\r\n\r\n if (n <= 8) {\r\n var byteCount = n;\r\n while (((byteCount = (byteCount - 1) | 0)) >= 0) {\r\n buffer[System.Array.index(((offset + byteCount) | 0), buffer)] = this._buffer[System.Array.index(((this._position + byteCount) | 0), this._buffer)];\r\n }\r\n } else {\r\n System.Array.copy(this._buffer, this._position, buffer, offset, n);\r\n }\r\n this._position = (this._position + n) | 0;\r\n\r\n return n;\r\n },\r\n ReadByte: function () {\r\n if (!this._isOpen) {\r\n System.IO.__Error.StreamIsClosed();\r\n }\r\n\r\n if (this._position >= this._length) {\r\n return -1;\r\n }\r\n\r\n return this._buffer[System.Array.index(Bridge.identity(this._position, ((this._position = (this._position + 1) | 0))), this._buffer)];\r\n },\r\n Seek: function (offset, loc) {\r\n if (!this._isOpen) {\r\n System.IO.__Error.StreamIsClosed();\r\n }\r\n\r\n if (offset.gt(System.Int64(System.IO.MemoryStream.MemStreamMaxLength))) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"offset\", \"ArgumentOutOfRange_StreamLength\");\r\n }\r\n switch (loc) {\r\n case 0: \r\n {\r\n var tempPosition = ((this._origin + System.Int64.clip32(offset)) | 0);\r\n if (offset.lt(System.Int64(0)) || tempPosition < this._origin) {\r\n throw new System.IO.IOException.$ctor1(\"IO.IO_SeekBeforeBegin\");\r\n }\r\n this._position = tempPosition;\r\n break;\r\n }\r\n case 1: \r\n {\r\n var tempPosition1 = ((this._position + System.Int64.clip32(offset)) | 0);\r\n if (System.Int64(this._position).add(offset).lt(System.Int64(this._origin)) || tempPosition1 < this._origin) {\r\n throw new System.IO.IOException.$ctor1(\"IO.IO_SeekBeforeBegin\");\r\n }\r\n this._position = tempPosition1;\r\n break;\r\n }\r\n case 2: \r\n {\r\n var tempPosition2 = ((this._length + System.Int64.clip32(offset)) | 0);\r\n if (System.Int64(this._length).add(offset).lt(System.Int64(this._origin)) || tempPosition2 < this._origin) {\r\n throw new System.IO.IOException.$ctor1(\"IO.IO_SeekBeforeBegin\");\r\n }\r\n this._position = tempPosition2;\r\n break;\r\n }\r\n default: \r\n throw new System.ArgumentException.$ctor1(\"Argument_InvalidSeekOrigin\");\r\n }\r\n\r\n return System.Int64(this._position);\r\n },\r\n SetLength: function (value) {\r\n if (value.lt(System.Int64(0)) || value.gt(System.Int64(2147483647))) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"value\", \"ArgumentOutOfRange_StreamLength\");\r\n }\r\n this.EnsureWriteable();\r\n\r\n if (value.gt(System.Int64((((2147483647 - this._origin) | 0))))) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"value\", \"ArgumentOutOfRange_StreamLength\");\r\n }\r\n\r\n var newLength = (this._origin + System.Int64.clip32(value)) | 0;\r\n var allocatedNewArray = this.EnsureCapacity(newLength);\r\n if (!allocatedNewArray && newLength > this._length) {\r\n System.Array.fill(this._buffer, 0, this._length, ((newLength - this._length) | 0));\r\n }\r\n this._length = newLength;\r\n if (this._position > newLength) {\r\n this._position = newLength;\r\n }\r\n\r\n },\r\n ToArray: function () {\r\n var copy = System.Array.init(((this._length - this._origin) | 0), 0, System.Byte);\r\n System.Array.copy(this._buffer, this._origin, copy, 0, ((this._length - this._origin) | 0));\r\n return copy;\r\n },\r\n Write: function (buffer, offset, count) {\r\n if (buffer == null) {\r\n throw new System.ArgumentNullException.$ctor3(\"buffer\", \"ArgumentNull_Buffer\");\r\n }\r\n if (offset < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"offset\", \"ArgumentOutOfRange_NeedNonNegNum\");\r\n }\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"count\", \"ArgumentOutOfRange_NeedNonNegNum\");\r\n }\r\n if (((buffer.length - offset) | 0) < count) {\r\n throw new System.ArgumentException.$ctor1(\"Argument_InvalidOffLen\");\r\n }\r\n\r\n if (!this._isOpen) {\r\n System.IO.__Error.StreamIsClosed();\r\n }\r\n this.EnsureWriteable();\r\n\r\n var i = (this._position + count) | 0;\r\n if (i < 0) {\r\n throw new System.IO.IOException.$ctor1(\"IO.IO_StreamTooLong\");\r\n }\r\n\r\n if (i > this._length) {\r\n var mustZero = this._position > this._length;\r\n if (i > this._capacity) {\r\n var allocatedNewArray = this.EnsureCapacity(i);\r\n if (allocatedNewArray) {\r\n mustZero = false;\r\n }\r\n }\r\n if (mustZero) {\r\n System.Array.fill(this._buffer, 0, this._length, ((i - this._length) | 0));\r\n }\r\n this._length = i;\r\n }\r\n if ((count <= 8) && (!Bridge.referenceEquals(buffer, this._buffer))) {\r\n var byteCount = count;\r\n while (((byteCount = (byteCount - 1) | 0)) >= 0) {\r\n this._buffer[System.Array.index(((this._position + byteCount) | 0), this._buffer)] = buffer[System.Array.index(((offset + byteCount) | 0), buffer)];\r\n }\r\n } else {\r\n System.Array.copy(buffer, offset, this._buffer, this._position, count);\r\n }\r\n this._position = i;\r\n\r\n },\r\n WriteByte: function (value) {\r\n if (!this._isOpen) {\r\n System.IO.__Error.StreamIsClosed();\r\n }\r\n this.EnsureWriteable();\r\n\r\n if (this._position >= this._length) {\r\n var newLength = (this._position + 1) | 0;\r\n var mustZero = this._position > this._length;\r\n if (newLength >= this._capacity) {\r\n var allocatedNewArray = this.EnsureCapacity(newLength);\r\n if (allocatedNewArray) {\r\n mustZero = false;\r\n }\r\n }\r\n if (mustZero) {\r\n System.Array.fill(this._buffer, 0, this._length, ((this._position - this._length) | 0));\r\n }\r\n this._length = newLength;\r\n }\r\n this._buffer[System.Array.index(Bridge.identity(this._position, ((this._position = (this._position + 1) | 0))), this._buffer)] = value;\r\n\r\n },\r\n WriteTo: function (stream) {\r\n if (stream == null) {\r\n throw new System.ArgumentNullException.$ctor3(\"stream\", \"ArgumentNull_Stream\");\r\n }\r\n\r\n if (!this._isOpen) {\r\n System.IO.__Error.StreamIsClosed();\r\n }\r\n stream.Write(this._buffer, this._origin, ((this._length - this._origin) | 0));\r\n }\r\n }\r\n });\r\n\r\n // @source ReadLinesIterator.js\r\n\r\n Bridge.define(\"System.IO.ReadLinesIterator\", {\r\n inherits: [System.IO.Iterator$1(System.String)],\r\n statics: {\r\n methods: {\r\n CreateIterator: function (path, encoding) {\r\n return System.IO.ReadLinesIterator.CreateIterator$1(path, encoding, null);\r\n },\r\n CreateIterator$1: function (path, encoding, reader) {\r\n return new System.IO.ReadLinesIterator(path, encoding, reader || new System.IO.StreamReader.$ctor9(path, encoding));\r\n }\r\n }\r\n },\r\n fields: {\r\n _path: null,\r\n _encoding: null,\r\n _reader: null\r\n },\r\n alias: [\"moveNext\", \"System$Collections$IEnumerator$moveNext\"],\r\n ctors: {\r\n ctor: function (path, encoding, reader) {\r\n this.$initialize();\r\n System.IO.Iterator$1(System.String).ctor.call(this);\r\n\r\n this._path = path;\r\n this._encoding = encoding;\r\n this._reader = reader;\r\n }\r\n },\r\n methods: {\r\n moveNext: function () {\r\n if (this._reader != null) {\r\n this.current = this._reader.ReadLine();\r\n if (this.current != null) {\r\n return true;\r\n }\r\n\r\n this.Dispose();\r\n }\r\n\r\n return false;\r\n },\r\n Clone: function () {\r\n return System.IO.ReadLinesIterator.CreateIterator$1(this._path, this._encoding, this._reader);\r\n },\r\n Dispose$1: function (disposing) {\r\n try {\r\n if (disposing) {\r\n if (this._reader != null) {\r\n this._reader.Dispose();\r\n }\r\n }\r\n } finally {\r\n this._reader = null;\r\n System.IO.Iterator$1(System.String).prototype.Dispose$1.call(this, disposing);\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source SeekOrigin.js\r\n\r\n Bridge.define(\"System.IO.SeekOrigin\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n Begin: 0,\r\n Current: 1,\r\n End: 2\r\n }\r\n }\r\n });\r\n\r\n // @source NullStream.js\r\n\r\n Bridge.define(\"System.IO.Stream.NullStream\", {\r\n inherits: [System.IO.Stream],\r\n $kind: \"nested class\",\r\n props: {\r\n CanRead: {\r\n get: function () {\r\n return true;\r\n }\r\n },\r\n CanWrite: {\r\n get: function () {\r\n return true;\r\n }\r\n },\r\n CanSeek: {\r\n get: function () {\r\n return true;\r\n }\r\n },\r\n Length: {\r\n get: function () {\r\n return System.Int64(0);\r\n }\r\n },\r\n Position: {\r\n get: function () {\r\n return System.Int64(0);\r\n },\r\n set: function (value) { }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.IO.Stream.ctor.call(this);\r\n }\r\n },\r\n methods: {\r\n Dispose$1: function (disposing) { },\r\n Flush: function () { },\r\n BeginRead: function (buffer, offset, count, callback, state) {\r\n if (!this.CanRead) {\r\n System.IO.__Error.ReadNotSupported();\r\n }\r\n\r\n return this.BlockingBeginRead(buffer, offset, count, callback, state);\r\n },\r\n EndRead: function (asyncResult) {\r\n if (asyncResult == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"asyncResult\");\r\n }\r\n\r\n return System.IO.Stream.BlockingEndRead(asyncResult);\r\n },\r\n BeginWrite: function (buffer, offset, count, callback, state) {\r\n if (!this.CanWrite) {\r\n System.IO.__Error.WriteNotSupported();\r\n }\r\n\r\n return this.BlockingBeginWrite(buffer, offset, count, callback, state);\r\n },\r\n EndWrite: function (asyncResult) {\r\n if (asyncResult == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"asyncResult\");\r\n }\r\n\r\n System.IO.Stream.BlockingEndWrite(asyncResult);\r\n },\r\n Read: function (buffer, offset, count) {\r\n return 0;\r\n },\r\n ReadByte: function () {\r\n return -1;\r\n },\r\n Write: function (buffer, offset, count) { },\r\n WriteByte: function (value) { },\r\n Seek: function (offset, origin) {\r\n return System.Int64(0);\r\n },\r\n SetLength: function (length) { }\r\n }\r\n });\r\n\r\n // @source SynchronousAsyncResult.js\r\n\r\n Bridge.define(\"System.IO.Stream.SynchronousAsyncResult\", {\r\n inherits: [System.IAsyncResult],\r\n $kind: \"nested class\",\r\n statics: {\r\n methods: {\r\n EndRead: function (asyncResult) {\r\n\r\n var ar = Bridge.as(asyncResult, System.IO.Stream.SynchronousAsyncResult);\r\n if (ar == null || ar._isWrite) {\r\n System.IO.__Error.WrongAsyncResult();\r\n }\r\n\r\n if (ar._endXxxCalled) {\r\n System.IO.__Error.EndReadCalledTwice();\r\n }\r\n\r\n ar._endXxxCalled = true;\r\n\r\n ar.ThrowIfError();\r\n return ar._bytesRead;\r\n },\r\n EndWrite: function (asyncResult) {\r\n\r\n var ar = Bridge.as(asyncResult, System.IO.Stream.SynchronousAsyncResult);\r\n if (ar == null || !ar._isWrite) {\r\n System.IO.__Error.WrongAsyncResult();\r\n }\r\n\r\n if (ar._endXxxCalled) {\r\n System.IO.__Error.EndWriteCalledTwice();\r\n }\r\n\r\n ar._endXxxCalled = true;\r\n\r\n ar.ThrowIfError();\r\n }\r\n }\r\n },\r\n fields: {\r\n _stateObject: null,\r\n _isWrite: false,\r\n _exceptionInfo: null,\r\n _endXxxCalled: false,\r\n _bytesRead: 0\r\n },\r\n props: {\r\n IsCompleted: {\r\n get: function () {\r\n return true;\r\n }\r\n },\r\n AsyncState: {\r\n get: function () {\r\n return this._stateObject;\r\n }\r\n },\r\n CompletedSynchronously: {\r\n get: function () {\r\n return true;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"IsCompleted\", \"System$IAsyncResult$IsCompleted\",\r\n \"AsyncState\", \"System$IAsyncResult$AsyncState\",\r\n \"CompletedSynchronously\", \"System$IAsyncResult$CompletedSynchronously\"\r\n ],\r\n ctors: {\r\n $ctor1: function (bytesRead, asyncStateObject) {\r\n this.$initialize();\r\n this._bytesRead = bytesRead;\r\n this._stateObject = asyncStateObject;\r\n },\r\n $ctor2: function (asyncStateObject) {\r\n this.$initialize();\r\n this._stateObject = asyncStateObject;\r\n this._isWrite = true;\r\n },\r\n ctor: function (ex, asyncStateObject, isWrite) {\r\n this.$initialize();\r\n this._exceptionInfo = ex;\r\n this._stateObject = asyncStateObject;\r\n this._isWrite = isWrite;\r\n }\r\n },\r\n methods: {\r\n ThrowIfError: function () {\r\n if (this._exceptionInfo != null) {\r\n throw this._exceptionInfo;\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source TextReader.js\r\n\r\n Bridge.define(\"System.IO.TextReader\", {\r\n inherits: [System.IDisposable],\r\n statics: {\r\n fields: {\r\n Null: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.Null = new System.IO.TextReader.NullTextReader();\r\n }\r\n },\r\n methods: {\r\n Synchronized: function (reader) {\r\n if (reader == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"reader\");\r\n }\r\n\r\n return reader;\r\n }\r\n }\r\n },\r\n alias: [\"Dispose\", \"System$IDisposable$Dispose\"],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n Close: function () {\r\n this.Dispose$1(true);\r\n },\r\n Dispose: function () {\r\n this.Dispose$1(true);\r\n },\r\n Dispose$1: function (disposing) { },\r\n Peek: function () {\r\n\r\n return -1;\r\n },\r\n Read: function () {\r\n return -1;\r\n },\r\n Read$1: function (buffer, index, count) {\r\n if (buffer == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"buffer\");\r\n }\r\n if (index < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n if (((buffer.length - index) | 0) < count) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n var n = 0;\r\n do {\r\n var ch = this.Read();\r\n if (ch === -1) {\r\n break;\r\n }\r\n buffer[System.Array.index(((index + Bridge.identity(n, ((n = (n + 1) | 0)))) | 0), buffer)] = ch & 65535;\r\n } while (n < count);\r\n return n;\r\n },\r\n ReadToEndAsync: function () {\r\n return System.Threading.Tasks.Task.fromResult(this.ReadToEnd(), System.String);\r\n },\r\n ReadToEnd: function () {\r\n\r\n var chars = System.Array.init(4096, 0, System.Char);\r\n var len;\r\n var sb = new System.Text.StringBuilder(\"\", 4096);\r\n while (((len = this.Read$1(chars, 0, chars.length))) !== 0) {\r\n sb.append(System.String.fromCharArray(chars, 0, len));\r\n }\r\n return sb.toString();\r\n },\r\n ReadBlock: function (buffer, index, count) {\r\n\r\n var i, n = 0;\r\n do {\r\n n = (n + ((i = this.Read$1(buffer, ((index + n) | 0), ((count - n) | 0))))) | 0;\r\n } while (i > 0 && n < count);\r\n return n;\r\n },\r\n ReadLine: function () {\r\n var sb = new System.Text.StringBuilder();\r\n while (true) {\r\n var ch = this.Read();\r\n if (ch === -1) {\r\n break;\r\n }\r\n if (ch === 13 || ch === 10) {\r\n if (ch === 13 && this.Peek() === 10) {\r\n this.Read();\r\n }\r\n return sb.toString();\r\n }\r\n sb.append(String.fromCharCode((ch & 65535)));\r\n }\r\n if (sb.getLength() > 0) {\r\n return sb.toString();\r\n }\r\n return null;\r\n }\r\n }\r\n });\r\n\r\n // @source StreamReader.js\r\n\r\n Bridge.define(\"System.IO.StreamReader\", {\r\n inherits: [System.IO.TextReader],\r\n statics: {\r\n fields: {\r\n DefaultFileStreamBufferSize: 0,\r\n MinBufferSize: 0,\r\n Null: null\r\n },\r\n props: {\r\n DefaultBufferSize: {\r\n get: function () {\r\n return 1024;\r\n }\r\n }\r\n },\r\n ctors: {\r\n init: function () {\r\n this.DefaultFileStreamBufferSize = 4096;\r\n this.MinBufferSize = 128;\r\n this.Null = new System.IO.StreamReader.NullStreamReader();\r\n }\r\n }\r\n },\r\n fields: {\r\n stream: null,\r\n encoding: null,\r\n byteBuffer: null,\r\n charBuffer: null,\r\n charPos: 0,\r\n charLen: 0,\r\n byteLen: 0,\r\n bytePos: 0,\r\n _maxCharsPerBuffer: 0,\r\n _detectEncoding: false,\r\n _isBlocked: false,\r\n _closable: false\r\n },\r\n props: {\r\n CurrentEncoding: {\r\n get: function () {\r\n return this.encoding;\r\n }\r\n },\r\n BaseStream: {\r\n get: function () {\r\n return this.stream;\r\n }\r\n },\r\n LeaveOpen: {\r\n get: function () {\r\n return !this._closable;\r\n }\r\n },\r\n EndOfStream: {\r\n get: function () {\r\n if (this.stream == null) {\r\n System.IO.__Error.ReaderClosed();\r\n }\r\n\r\n\r\n if (this.charPos < this.charLen) {\r\n return false;\r\n }\r\n\r\n var numRead = this.ReadBuffer();\r\n return numRead === 0;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.IO.TextReader.ctor.call(this);\r\n },\r\n $ctor1: function (stream) {\r\n System.IO.StreamReader.$ctor2.call(this, stream, true);\r\n },\r\n $ctor2: function (stream, detectEncodingFromByteOrderMarks) {\r\n System.IO.StreamReader.$ctor6.call(this, stream, System.Text.Encoding.UTF8, detectEncodingFromByteOrderMarks, System.IO.StreamReader.DefaultBufferSize, false);\r\n },\r\n $ctor3: function (stream, encoding) {\r\n System.IO.StreamReader.$ctor6.call(this, stream, encoding, true, System.IO.StreamReader.DefaultBufferSize, false);\r\n },\r\n $ctor4: function (stream, encoding, detectEncodingFromByteOrderMarks) {\r\n System.IO.StreamReader.$ctor6.call(this, stream, encoding, detectEncodingFromByteOrderMarks, System.IO.StreamReader.DefaultBufferSize, false);\r\n },\r\n $ctor5: function (stream, encoding, detectEncodingFromByteOrderMarks, bufferSize) {\r\n System.IO.StreamReader.$ctor6.call(this, stream, encoding, detectEncodingFromByteOrderMarks, bufferSize, false);\r\n },\r\n $ctor6: function (stream, encoding, detectEncodingFromByteOrderMarks, bufferSize, leaveOpen) {\r\n this.$initialize();\r\n System.IO.TextReader.ctor.call(this);\r\n if (stream == null || encoding == null) {\r\n throw new System.ArgumentNullException.$ctor1((stream == null ? \"stream\" : \"encoding\"));\r\n }\r\n if (!stream.CanRead) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n if (bufferSize <= 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"bufferSize\");\r\n }\r\n\r\n this.Init$1(stream, encoding, detectEncodingFromByteOrderMarks, bufferSize, leaveOpen);\r\n },\r\n $ctor7: function (path) {\r\n System.IO.StreamReader.$ctor8.call(this, path, true);\r\n },\r\n $ctor8: function (path, detectEncodingFromByteOrderMarks) {\r\n System.IO.StreamReader.$ctor11.call(this, path, System.Text.Encoding.UTF8, detectEncodingFromByteOrderMarks, System.IO.StreamReader.DefaultBufferSize);\r\n },\r\n $ctor9: function (path, encoding) {\r\n System.IO.StreamReader.$ctor11.call(this, path, encoding, true, System.IO.StreamReader.DefaultBufferSize);\r\n },\r\n $ctor10: function (path, encoding, detectEncodingFromByteOrderMarks) {\r\n System.IO.StreamReader.$ctor11.call(this, path, encoding, detectEncodingFromByteOrderMarks, System.IO.StreamReader.DefaultBufferSize);\r\n },\r\n $ctor11: function (path, encoding, detectEncodingFromByteOrderMarks, bufferSize) {\r\n System.IO.StreamReader.$ctor12.call(this, path, encoding, detectEncodingFromByteOrderMarks, bufferSize, true);\r\n },\r\n $ctor12: function (path, encoding, detectEncodingFromByteOrderMarks, bufferSize, checkHost) {\r\n this.$initialize();\r\n System.IO.TextReader.ctor.call(this);\r\n if (path == null || encoding == null) {\r\n throw new System.ArgumentNullException.$ctor1((path == null ? \"path\" : \"encoding\"));\r\n }\r\n if (path.length === 0) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n if (bufferSize <= 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"bufferSize\");\r\n }\r\n\r\n var stream = new System.IO.FileStream.$ctor1(path, 3);\r\n this.Init$1(stream, encoding, detectEncodingFromByteOrderMarks, bufferSize, false);\r\n }\r\n },\r\n methods: {\r\n Init$1: function (stream, encoding, detectEncodingFromByteOrderMarks, bufferSize, leaveOpen) {\r\n this.stream = stream;\r\n this.encoding = encoding;\r\n if (bufferSize < System.IO.StreamReader.MinBufferSize) {\r\n bufferSize = System.IO.StreamReader.MinBufferSize;\r\n }\r\n this.byteBuffer = System.Array.init(bufferSize, 0, System.Byte);\r\n this._maxCharsPerBuffer = encoding.GetMaxCharCount(bufferSize);\r\n this.charBuffer = System.Array.init(this._maxCharsPerBuffer, 0, System.Char);\r\n this.byteLen = 0;\r\n this.bytePos = 0;\r\n this._detectEncoding = detectEncodingFromByteOrderMarks;\r\n this._isBlocked = false;\r\n this._closable = !leaveOpen;\r\n },\r\n Init: function (stream) {\r\n this.stream = stream;\r\n this._closable = true;\r\n },\r\n Close: function () {\r\n this.Dispose$1(true);\r\n },\r\n Dispose$1: function (disposing) {\r\n try {\r\n if (!this.LeaveOpen && disposing && (this.stream != null)) {\r\n this.stream.Close();\r\n }\r\n } finally {\r\n if (!this.LeaveOpen && (this.stream != null)) {\r\n this.stream = null;\r\n this.encoding = null;\r\n this.byteBuffer = null;\r\n this.charBuffer = null;\r\n this.charPos = 0;\r\n this.charLen = 0;\r\n System.IO.TextReader.prototype.Dispose$1.call(this, disposing);\r\n }\r\n }\r\n },\r\n DiscardBufferedData: function () {\r\n\r\n this.byteLen = 0;\r\n this.charLen = 0;\r\n this.charPos = 0;\r\n this._isBlocked = false;\r\n },\r\n Peek: function () {\r\n if (this.stream == null) {\r\n System.IO.__Error.ReaderClosed();\r\n }\r\n\r\n if (this.charPos === this.charLen) {\r\n if (this._isBlocked || this.ReadBuffer() === 0) {\r\n return -1;\r\n }\r\n }\r\n return this.charBuffer[System.Array.index(this.charPos, this.charBuffer)];\r\n },\r\n Read: function () {\r\n if (this.stream == null) {\r\n System.IO.__Error.ReaderClosed();\r\n }\r\n\r\n\r\n if (this.charPos === this.charLen) {\r\n if (this.ReadBuffer() === 0) {\r\n return -1;\r\n }\r\n }\r\n var result = this.charBuffer[System.Array.index(this.charPos, this.charBuffer)];\r\n this.charPos = (this.charPos + 1) | 0;\r\n return result;\r\n },\r\n Read$1: function (buffer, index, count) {\r\n if (buffer == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"buffer\");\r\n }\r\n if (index < 0 || count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1((index < 0 ? \"index\" : \"count\"));\r\n }\r\n if (((buffer.length - index) | 0) < count) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n if (this.stream == null) {\r\n System.IO.__Error.ReaderClosed();\r\n }\r\n\r\n\r\n var charsRead = 0;\r\n var readToUserBuffer = { v : false };\r\n while (count > 0) {\r\n var n = (this.charLen - this.charPos) | 0;\r\n if (n === 0) {\r\n n = this.ReadBuffer$1(buffer, ((index + charsRead) | 0), count, readToUserBuffer);\r\n }\r\n if (n === 0) {\r\n break;\r\n }\r\n if (n > count) {\r\n n = count;\r\n }\r\n if (!readToUserBuffer.v) {\r\n System.Array.copy(this.charBuffer, this.charPos, buffer, (((index + charsRead) | 0)), n);\r\n this.charPos = (this.charPos + n) | 0;\r\n }\r\n charsRead = (charsRead + n) | 0;\r\n count = (count - n) | 0;\r\n if (this._isBlocked) {\r\n break;\r\n }\r\n }\r\n\r\n return charsRead;\r\n },\r\n ReadToEndAsync: function () {\r\n var $step = 0,\r\n $task1, \r\n $task2, \r\n $taskResult2, \r\n $jumpFromFinally, \r\n $tcs = new System.Threading.Tasks.TaskCompletionSource(), \r\n $returnValue, \r\n $async_e, \r\n $asyncBody = Bridge.fn.bind(this, function () {\r\n try {\r\n for (;;) {\r\n $step = System.Array.min([0,1,2,3,4], $step);\r\n switch ($step) {\r\n case 0: {\r\n if (Bridge.is(this.stream, System.IO.FileStream)) {\r\n $step = 1;\r\n continue;\r\n } \r\n $step = 3;\r\n continue;\r\n }\r\n case 1: {\r\n $task1 = this.stream.EnsureBufferAsync();\r\n $step = 2;\r\n if ($task1.isCompleted()) {\r\n continue;\r\n }\r\n $task1.continue($asyncBody);\r\n return;\r\n }\r\n case 2: {\r\n $task1.getAwaitedResult();\r\n $step = 3;\r\n continue;\r\n }\r\n case 3: {\r\n $task2 = System.IO.TextReader.prototype.ReadToEndAsync.call(this);\r\n $step = 4;\r\n if ($task2.isCompleted()) {\r\n continue;\r\n }\r\n $task2.continue($asyncBody);\r\n return;\r\n }\r\n case 4: {\r\n $taskResult2 = $task2.getAwaitedResult();\r\n $tcs.setResult($taskResult2);\r\n return;\r\n }\r\n default: {\r\n $tcs.setResult(null);\r\n return;\r\n }\r\n }\r\n }\r\n } catch($async_e1) {\r\n $async_e = System.Exception.create($async_e1);\r\n $tcs.setException($async_e);\r\n }\r\n }, arguments);\r\n\r\n $asyncBody();\r\n return $tcs.task;\r\n },\r\n ReadToEnd: function () {\r\n if (this.stream == null) {\r\n System.IO.__Error.ReaderClosed();\r\n }\r\n\r\n var sb = new System.Text.StringBuilder(\"\", ((this.charLen - this.charPos) | 0));\r\n do {\r\n sb.append(System.String.fromCharArray(this.charBuffer, this.charPos, ((this.charLen - this.charPos) | 0)));\r\n this.charPos = this.charLen;\r\n this.ReadBuffer();\r\n } while (this.charLen > 0);\r\n return sb.toString();\r\n },\r\n ReadBlock: function (buffer, index, count) {\r\n if (buffer == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"buffer\");\r\n }\r\n if (index < 0 || count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1((index < 0 ? \"index\" : \"count\"));\r\n }\r\n if (((buffer.length - index) | 0) < count) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n if (this.stream == null) {\r\n System.IO.__Error.ReaderClosed();\r\n }\r\n\r\n return System.IO.TextReader.prototype.ReadBlock.call(this, buffer, index, count);\r\n },\r\n CompressBuffer: function (n) {\r\n System.Array.copy(this.byteBuffer, n, this.byteBuffer, 0, ((this.byteLen - n) | 0));\r\n this.byteLen = (this.byteLen - n) | 0;\r\n },\r\n DetectEncoding: function () {\r\n if (this.byteLen < 2) {\r\n return;\r\n }\r\n this._detectEncoding = false;\r\n var changedEncoding = false;\r\n if (this.byteBuffer[System.Array.index(0, this.byteBuffer)] === 254 && this.byteBuffer[System.Array.index(1, this.byteBuffer)] === 255) {\r\n\r\n this.encoding = new System.Text.UnicodeEncoding.$ctor1(true, true);\r\n this.CompressBuffer(2);\r\n changedEncoding = true;\r\n } else if (this.byteBuffer[System.Array.index(0, this.byteBuffer)] === 255 && this.byteBuffer[System.Array.index(1, this.byteBuffer)] === 254) {\r\n if (this.byteLen < 4 || this.byteBuffer[System.Array.index(2, this.byteBuffer)] !== 0 || this.byteBuffer[System.Array.index(3, this.byteBuffer)] !== 0) {\r\n this.encoding = new System.Text.UnicodeEncoding.$ctor1(false, true);\r\n this.CompressBuffer(2);\r\n changedEncoding = true;\r\n } else {\r\n this.encoding = new System.Text.UTF32Encoding.$ctor1(false, true);\r\n this.CompressBuffer(4);\r\n changedEncoding = true;\r\n }\r\n } else if (this.byteLen >= 3 && this.byteBuffer[System.Array.index(0, this.byteBuffer)] === 239 && this.byteBuffer[System.Array.index(1, this.byteBuffer)] === 187 && this.byteBuffer[System.Array.index(2, this.byteBuffer)] === 191) {\r\n this.encoding = System.Text.Encoding.UTF8;\r\n this.CompressBuffer(3);\r\n changedEncoding = true;\r\n } else if (this.byteLen >= 4 && this.byteBuffer[System.Array.index(0, this.byteBuffer)] === 0 && this.byteBuffer[System.Array.index(1, this.byteBuffer)] === 0 && this.byteBuffer[System.Array.index(2, this.byteBuffer)] === 254 && this.byteBuffer[System.Array.index(3, this.byteBuffer)] === 255) {\r\n this.encoding = new System.Text.UTF32Encoding.$ctor1(true, true);\r\n this.CompressBuffer(4);\r\n changedEncoding = true;\r\n } else if (this.byteLen === 2) {\r\n this._detectEncoding = true;\r\n }\r\n\r\n if (changedEncoding) {\r\n this._maxCharsPerBuffer = this.encoding.GetMaxCharCount(this.byteBuffer.length);\r\n this.charBuffer = System.Array.init(this._maxCharsPerBuffer, 0, System.Char);\r\n }\r\n },\r\n IsPreamble: function () {\r\n return false;\r\n },\r\n ReadBuffer: function () {\r\n this.charLen = 0;\r\n this.charPos = 0;\r\n\r\n this.byteLen = 0;\r\n do {\r\n this.byteLen = this.stream.Read(this.byteBuffer, 0, this.byteBuffer.length);\r\n\r\n if (this.byteLen === 0) {\r\n return this.charLen;\r\n }\r\n\r\n this._isBlocked = (this.byteLen < this.byteBuffer.length);\r\n\r\n if (this.IsPreamble()) {\r\n continue;\r\n }\r\n\r\n if (this._detectEncoding && this.byteLen >= 2) {\r\n this.DetectEncoding();\r\n }\r\n\r\n this.charLen = (this.charLen + (this.encoding.GetChars$2(this.byteBuffer, 0, this.byteLen, this.charBuffer, this.charLen))) | 0;\r\n } while (this.charLen === 0);\r\n return this.charLen;\r\n },\r\n ReadBuffer$1: function (userBuffer, userOffset, desiredChars, readToUserBuffer) {\r\n this.charLen = 0;\r\n this.charPos = 0;\r\n\r\n this.byteLen = 0;\r\n\r\n var charsRead = 0;\r\n\r\n readToUserBuffer.v = desiredChars >= this._maxCharsPerBuffer;\r\n\r\n do {\r\n\r\n\r\n this.byteLen = this.stream.Read(this.byteBuffer, 0, this.byteBuffer.length);\r\n\r\n\r\n if (this.byteLen === 0) {\r\n break;\r\n }\r\n\r\n this._isBlocked = (this.byteLen < this.byteBuffer.length);\r\n\r\n if (this.IsPreamble()) {\r\n continue;\r\n }\r\n\r\n if (this._detectEncoding && this.byteLen >= 2) {\r\n this.DetectEncoding();\r\n readToUserBuffer.v = desiredChars >= this._maxCharsPerBuffer;\r\n }\r\n\r\n this.charPos = 0;\r\n if (readToUserBuffer.v) {\r\n charsRead = (charsRead + (this.encoding.GetChars$2(this.byteBuffer, 0, this.byteLen, userBuffer, ((userOffset + charsRead) | 0)))) | 0;\r\n this.charLen = 0;\r\n } else {\r\n charsRead = this.encoding.GetChars$2(this.byteBuffer, 0, this.byteLen, this.charBuffer, charsRead);\r\n this.charLen = (this.charLen + charsRead) | 0;\r\n }\r\n } while (charsRead === 0);\r\n\r\n this._isBlocked = !!(this._isBlocked & charsRead < desiredChars);\r\n\r\n return charsRead;\r\n },\r\n ReadLine: function () {\r\n if (this.stream == null) {\r\n System.IO.__Error.ReaderClosed();\r\n }\r\n\r\n if (this.charPos === this.charLen) {\r\n if (this.ReadBuffer() === 0) {\r\n return null;\r\n }\r\n }\r\n\r\n var sb = null;\r\n do {\r\n var i = this.charPos;\r\n do {\r\n var ch = this.charBuffer[System.Array.index(i, this.charBuffer)];\r\n if (ch === 13 || ch === 10) {\r\n var s;\r\n if (sb != null) {\r\n sb.append(System.String.fromCharArray(this.charBuffer, this.charPos, ((i - this.charPos) | 0)));\r\n s = sb.toString();\r\n } else {\r\n s = System.String.fromCharArray(this.charBuffer, this.charPos, ((i - this.charPos) | 0));\r\n }\r\n this.charPos = (i + 1) | 0;\r\n if (ch === 13 && (this.charPos < this.charLen || this.ReadBuffer() > 0)) {\r\n if (this.charBuffer[System.Array.index(this.charPos, this.charBuffer)] === 10) {\r\n this.charPos = (this.charPos + 1) | 0;\r\n }\r\n }\r\n return s;\r\n }\r\n i = (i + 1) | 0;\r\n } while (i < this.charLen);\r\n i = (this.charLen - this.charPos) | 0;\r\n if (sb == null) {\r\n sb = new System.Text.StringBuilder(\"\", ((i + 80) | 0));\r\n }\r\n sb.append(System.String.fromCharArray(this.charBuffer, this.charPos, i));\r\n } while (this.ReadBuffer() > 0);\r\n return sb.toString();\r\n }\r\n }\r\n });\r\n\r\n // @source NullStreamReader.js\r\n\r\n Bridge.define(\"System.IO.StreamReader.NullStreamReader\", {\r\n inherits: [System.IO.StreamReader],\r\n $kind: \"nested class\",\r\n props: {\r\n BaseStream: {\r\n get: function () {\r\n return System.IO.Stream.Null;\r\n }\r\n },\r\n CurrentEncoding: {\r\n get: function () {\r\n return System.Text.Encoding.Unicode;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.IO.StreamReader.ctor.call(this);\r\n this.Init(System.IO.Stream.Null);\r\n }\r\n },\r\n methods: {\r\n Dispose$1: function (disposing) { },\r\n Peek: function () {\r\n return -1;\r\n },\r\n Read: function () {\r\n return -1;\r\n },\r\n Read$1: function (buffer, index, count) {\r\n return 0;\r\n },\r\n ReadLine: function () {\r\n return null;\r\n },\r\n ReadToEnd: function () {\r\n return \"\";\r\n },\r\n ReadBuffer: function () {\r\n return 0;\r\n }\r\n }\r\n });\r\n\r\n // @source TextWriter.js\r\n\r\n Bridge.define(\"System.IO.TextWriter\", {\r\n inherits: [System.IDisposable],\r\n statics: {\r\n fields: {\r\n InitialNewLine: null,\r\n Null: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.InitialNewLine = \"\\r\\n\";\r\n this.Null = new System.IO.TextWriter.NullTextWriter();\r\n }\r\n },\r\n methods: {\r\n Synchronized: function (writer) {\r\n if (writer == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"writer\");\r\n }\r\n\r\n return writer;\r\n }\r\n }\r\n },\r\n fields: {\r\n CoreNewLine: null,\r\n InternalFormatProvider: null\r\n },\r\n props: {\r\n FormatProvider: {\r\n get: function () {\r\n if (this.InternalFormatProvider == null) {\r\n return System.Globalization.CultureInfo.getCurrentCulture();\r\n } else {\r\n return this.InternalFormatProvider;\r\n }\r\n }\r\n },\r\n NewLine: {\r\n get: function () {\r\n return System.String.fromCharArray(this.CoreNewLine);\r\n },\r\n set: function (value) {\r\n if (value == null) {\r\n value = System.IO.TextWriter.InitialNewLine;\r\n }\r\n this.CoreNewLine = System.String.toCharArray(value, 0, value.length);\r\n }\r\n }\r\n },\r\n alias: [\"Dispose\", \"System$IDisposable$Dispose\"],\r\n ctors: {\r\n init: function () {\r\n this.CoreNewLine = System.Array.init([13, 10], System.Char);\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n this.InternalFormatProvider = null;\r\n },\r\n $ctor1: function (formatProvider) {\r\n this.$initialize();\r\n this.InternalFormatProvider = formatProvider;\r\n }\r\n },\r\n methods: {\r\n Close: function () {\r\n this.Dispose$1(true);\r\n },\r\n Dispose$1: function (disposing) { },\r\n Dispose: function () {\r\n this.Dispose$1(true);\r\n },\r\n Flush: function () { },\r\n Write$1: function (value) { },\r\n Write$2: function (buffer) {\r\n if (buffer != null) {\r\n this.Write$3(buffer, 0, buffer.length);\r\n }\r\n },\r\n Write$3: function (buffer, index, count) {\r\n if (buffer == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"buffer\");\r\n }\r\n if (index < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n if (((buffer.length - index) | 0) < count) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n for (var i = 0; i < count; i = (i + 1) | 0) {\r\n this.Write$1(buffer[System.Array.index(((index + i) | 0), buffer)]);\r\n }\r\n },\r\n Write: function (value) {\r\n this.Write$10(value ? System.Boolean.trueString : System.Boolean.falseString);\r\n },\r\n Write$6: function (value) {\r\n this.Write$10(System.Int32.format(value, \"G\", this.FormatProvider));\r\n },\r\n Write$15: function (value) {\r\n this.Write$10(System.UInt32.format(value, \"G\", this.FormatProvider));\r\n },\r\n Write$7: function (value) {\r\n this.Write$10(value.format(\"G\", this.FormatProvider));\r\n },\r\n Write$16: function (value) {\r\n this.Write$10(value.format(\"G\", this.FormatProvider));\r\n },\r\n Write$9: function (value) {\r\n this.Write$10(System.Single.format(value, \"G\", this.FormatProvider));\r\n },\r\n Write$5: function (value) {\r\n this.Write$10(System.Double.format(value, \"G\", this.FormatProvider));\r\n },\r\n Write$4: function (value) {\r\n this.Write$10(Bridge.Int.format(value, \"G\", this.FormatProvider));\r\n },\r\n Write$10: function (value) {\r\n if (value != null) {\r\n this.Write$2(System.String.toCharArray(value, 0, value.length));\r\n }\r\n },\r\n Write$8: function (value) {\r\n if (value != null) {\r\n var f = Bridge.as(value, System.IFormattable);\r\n if (f != null) {\r\n this.Write$10(Bridge.format(f, null, this.FormatProvider));\r\n } else {\r\n this.Write$10(Bridge.toString(value));\r\n }\r\n }\r\n },\r\n Write$11: function (format, arg0) {\r\n this.Write$10(System.String.formatProvider(this.FormatProvider, format, [arg0]));\r\n },\r\n Write$12: function (format, arg0, arg1) {\r\n this.Write$10(System.String.formatProvider(this.FormatProvider, format, arg0, arg1));\r\n },\r\n Write$13: function (format, arg0, arg1, arg2) {\r\n this.Write$10(System.String.formatProvider(this.FormatProvider, format, arg0, arg1, arg2));\r\n },\r\n Write$14: function (format, arg) {\r\n if (arg === void 0) { arg = []; }\r\n this.Write$10(System.String.formatProvider.apply(System.String, [this.FormatProvider, format].concat(arg)));\r\n },\r\n WriteLine: function () {\r\n this.Write$2(this.CoreNewLine);\r\n },\r\n WriteLine$2: function (value) {\r\n this.Write$1(value);\r\n this.WriteLine();\r\n },\r\n WriteLine$3: function (buffer) {\r\n this.Write$2(buffer);\r\n this.WriteLine();\r\n },\r\n WriteLine$4: function (buffer, index, count) {\r\n this.Write$3(buffer, index, count);\r\n this.WriteLine();\r\n },\r\n WriteLine$1: function (value) {\r\n this.Write(value);\r\n this.WriteLine();\r\n },\r\n WriteLine$7: function (value) {\r\n this.Write$6(value);\r\n this.WriteLine();\r\n },\r\n WriteLine$16: function (value) {\r\n this.Write$15(value);\r\n this.WriteLine();\r\n },\r\n WriteLine$8: function (value) {\r\n this.Write$7(value);\r\n this.WriteLine();\r\n },\r\n WriteLine$17: function (value) {\r\n this.Write$16(value);\r\n this.WriteLine();\r\n },\r\n WriteLine$10: function (value) {\r\n this.Write$9(value);\r\n this.WriteLine();\r\n },\r\n WriteLine$6: function (value) {\r\n this.Write$5(value);\r\n this.WriteLine();\r\n },\r\n WriteLine$5: function (value) {\r\n this.Write$4(value);\r\n this.WriteLine();\r\n },\r\n WriteLine$11: function (value) {\r\n\r\n if (value == null) {\r\n this.WriteLine();\r\n } else {\r\n var vLen = value.length;\r\n var nlLen = this.CoreNewLine.length;\r\n var chars = System.Array.init(((vLen + nlLen) | 0), 0, System.Char);\r\n System.String.copyTo(value, 0, chars, 0, vLen);\r\n if (nlLen === 2) {\r\n chars[System.Array.index(vLen, chars)] = this.CoreNewLine[System.Array.index(0, this.CoreNewLine)];\r\n chars[System.Array.index(((vLen + 1) | 0), chars)] = this.CoreNewLine[System.Array.index(1, this.CoreNewLine)];\r\n } else if (nlLen === 1) {\r\n chars[System.Array.index(vLen, chars)] = this.CoreNewLine[System.Array.index(0, this.CoreNewLine)];\r\n } else {\r\n System.Array.copy(this.CoreNewLine, 0, chars, Bridge.Int.mul(vLen, 2), Bridge.Int.mul(nlLen, 2));\r\n }\r\n this.Write$3(chars, 0, ((vLen + nlLen) | 0));\r\n }\r\n /* \r\n Write(value); // We could call Write(String) on StreamWriter...\r\n WriteLine();\r\n */\r\n },\r\n WriteLine$9: function (value) {\r\n if (value == null) {\r\n this.WriteLine();\r\n } else {\r\n var f = Bridge.as(value, System.IFormattable);\r\n if (f != null) {\r\n this.WriteLine$11(Bridge.format(f, null, this.FormatProvider));\r\n } else {\r\n this.WriteLine$11(Bridge.toString(value));\r\n }\r\n }\r\n },\r\n WriteLine$12: function (format, arg0) {\r\n this.WriteLine$11(System.String.formatProvider(this.FormatProvider, format, [arg0]));\r\n },\r\n WriteLine$13: function (format, arg0, arg1) {\r\n this.WriteLine$11(System.String.formatProvider(this.FormatProvider, format, arg0, arg1));\r\n },\r\n WriteLine$14: function (format, arg0, arg1, arg2) {\r\n this.WriteLine$11(System.String.formatProvider(this.FormatProvider, format, arg0, arg1, arg2));\r\n },\r\n WriteLine$15: function (format, arg) {\r\n if (arg === void 0) { arg = []; }\r\n this.WriteLine$11(System.String.formatProvider.apply(System.String, [this.FormatProvider, format].concat(arg)));\r\n }\r\n }\r\n });\r\n\r\n // @source StreamWriter.js\r\n\r\n Bridge.define(\"System.IO.StreamWriter\", {\r\n inherits: [System.IO.TextWriter],\r\n statics: {\r\n fields: {\r\n DefaultBufferSize: 0,\r\n DefaultFileStreamBufferSize: 0,\r\n MinBufferSize: 0,\r\n Null: null,\r\n _UTF8NoBOM: null\r\n },\r\n props: {\r\n UTF8NoBOM: {\r\n get: function () {\r\n if (System.IO.StreamWriter._UTF8NoBOM == null) {\r\n var noBOM = new System.Text.UTF8Encoding.$ctor2(false, true);\r\n System.IO.StreamWriter._UTF8NoBOM = noBOM;\r\n }\r\n return System.IO.StreamWriter._UTF8NoBOM;\r\n }\r\n }\r\n },\r\n ctors: {\r\n init: function () {\r\n this.DefaultBufferSize = 1024;\r\n this.DefaultFileStreamBufferSize = 4096;\r\n this.MinBufferSize = 128;\r\n this.Null = new System.IO.StreamWriter.$ctor4(System.IO.Stream.Null, new System.Text.UTF8Encoding.$ctor2(false, true), System.IO.StreamWriter.MinBufferSize, true);\r\n }\r\n }\r\n },\r\n fields: {\r\n stream: null,\r\n encoding: null,\r\n byteBuffer: null,\r\n charBuffer: null,\r\n charPos: 0,\r\n charLen: 0,\r\n autoFlush: false,\r\n haveWrittenPreamble: false,\r\n closable: false\r\n },\r\n props: {\r\n AutoFlush: {\r\n get: function () {\r\n return this.autoFlush;\r\n },\r\n set: function (value) {\r\n this.autoFlush = value;\r\n if (value) {\r\n this.Flush$1(true, false);\r\n }\r\n }\r\n },\r\n BaseStream: {\r\n get: function () {\r\n return this.stream;\r\n }\r\n },\r\n LeaveOpen: {\r\n get: function () {\r\n return !this.closable;\r\n }\r\n },\r\n HaveWrittenPreamble: {\r\n set: function (value) {\r\n this.haveWrittenPreamble = value;\r\n }\r\n },\r\n Encoding: {\r\n get: function () {\r\n return this.encoding;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.IO.TextWriter.$ctor1.call(this, null);\r\n },\r\n $ctor1: function (stream) {\r\n System.IO.StreamWriter.$ctor4.call(this, stream, System.IO.StreamWriter.UTF8NoBOM, System.IO.StreamWriter.DefaultBufferSize, false);\r\n },\r\n $ctor2: function (stream, encoding) {\r\n System.IO.StreamWriter.$ctor4.call(this, stream, encoding, System.IO.StreamWriter.DefaultBufferSize, false);\r\n },\r\n $ctor3: function (stream, encoding, bufferSize) {\r\n System.IO.StreamWriter.$ctor4.call(this, stream, encoding, bufferSize, false);\r\n },\r\n $ctor4: function (stream, encoding, bufferSize, leaveOpen) {\r\n this.$initialize();\r\n System.IO.TextWriter.$ctor1.call(this, null);\r\n if (stream == null || encoding == null) {\r\n throw new System.ArgumentNullException.$ctor1((stream == null ? \"stream\" : \"encoding\"));\r\n }\r\n if (!stream.CanWrite) {\r\n throw new System.ArgumentException.$ctor1(\"Argument_StreamNotWritable\");\r\n }\r\n if (bufferSize <= 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"bufferSize\", \"ArgumentOutOfRange_NeedPosNum\");\r\n }\r\n\r\n this.Init(stream, encoding, bufferSize, leaveOpen);\r\n },\r\n $ctor5: function (path) {\r\n System.IO.StreamWriter.$ctor8.call(this, path, false, System.IO.StreamWriter.UTF8NoBOM, System.IO.StreamWriter.DefaultBufferSize);\r\n },\r\n $ctor6: function (path, append) {\r\n System.IO.StreamWriter.$ctor8.call(this, path, append, System.IO.StreamWriter.UTF8NoBOM, System.IO.StreamWriter.DefaultBufferSize);\r\n },\r\n $ctor7: function (path, append, encoding) {\r\n System.IO.StreamWriter.$ctor8.call(this, path, append, encoding, System.IO.StreamWriter.DefaultBufferSize);\r\n },\r\n $ctor8: function (path, append, encoding, bufferSize) {\r\n System.IO.StreamWriter.$ctor9.call(this, path, append, encoding, bufferSize, true);\r\n },\r\n $ctor9: function (path, append, encoding, bufferSize, checkHost) {\r\n this.$initialize();\r\n System.IO.TextWriter.$ctor1.call(this, null);\r\n throw new System.NotSupportedException.ctor();\r\n }\r\n },\r\n methods: {\r\n Init: function (streamArg, encodingArg, bufferSize, shouldLeaveOpen) {\r\n this.stream = streamArg;\r\n this.encoding = encodingArg;\r\n if (bufferSize < System.IO.StreamWriter.MinBufferSize) {\r\n bufferSize = System.IO.StreamWriter.MinBufferSize;\r\n }\r\n this.charBuffer = System.Array.init(bufferSize, 0, System.Char);\r\n this.byteBuffer = System.Array.init(this.encoding.GetMaxByteCount(bufferSize), 0, System.Byte);\r\n this.charLen = bufferSize;\r\n if (this.stream.CanSeek && this.stream.Position.gt(System.Int64(0))) {\r\n this.haveWrittenPreamble = true;\r\n }\r\n this.closable = !shouldLeaveOpen;\r\n },\r\n Close: function () {\r\n this.Dispose$1(true);\r\n },\r\n Dispose$1: function (disposing) {\r\n try {\r\n if (this.stream != null) {\r\n if (disposing) {\r\n this.Flush$1(true, true);\r\n }\r\n }\r\n } finally {\r\n if (!this.LeaveOpen && this.stream != null) {\r\n try {\r\n if (disposing) {\r\n this.stream.Close();\r\n }\r\n } finally {\r\n this.stream = null;\r\n this.byteBuffer = null;\r\n this.charBuffer = null;\r\n this.encoding = null;\r\n this.charLen = 0;\r\n System.IO.TextWriter.prototype.Dispose$1.call(this, disposing);\r\n }\r\n }\r\n }\r\n },\r\n Flush: function () {\r\n this.Flush$1(true, true);\r\n },\r\n Flush$1: function (flushStream, flushEncoder) {\r\n if (this.stream == null) {\r\n System.IO.__Error.WriterClosed();\r\n }\r\n\r\n if (this.charPos === 0 && (!flushStream && !flushEncoder)) {\r\n return;\r\n }\r\n\r\n /* if (!haveWrittenPreamble) {\r\n haveWrittenPreamble = true;\r\n byte[] preamble = encoding.GetPreamble();\r\n if (preamble.Length > 0)\r\n stream.Write(preamble, 0, preamble.Length);\r\n }*/\r\n\r\n var count = this.encoding.GetBytes$3(this.charBuffer, 0, this.charPos, this.byteBuffer, 0);\r\n this.charPos = 0;\r\n if (count > 0) {\r\n this.stream.Write(this.byteBuffer, 0, count);\r\n }\r\n if (flushStream) {\r\n this.stream.Flush();\r\n }\r\n },\r\n Write$1: function (value) {\r\n if (this.charPos === this.charLen) {\r\n this.Flush$1(false, false);\r\n }\r\n this.charBuffer[System.Array.index(this.charPos, this.charBuffer)] = value;\r\n this.charPos = (this.charPos + 1) | 0;\r\n if (this.autoFlush) {\r\n this.Flush$1(true, false);\r\n }\r\n },\r\n Write$2: function (buffer) {\r\n if (buffer == null) {\r\n return;\r\n }\r\n\r\n var index = 0;\r\n var count = buffer.length;\r\n while (count > 0) {\r\n if (this.charPos === this.charLen) {\r\n this.Flush$1(false, false);\r\n }\r\n var n = (this.charLen - this.charPos) | 0;\r\n if (n > count) {\r\n n = count;\r\n }\r\n System.Array.copy(buffer, index, this.charBuffer, this.charPos, n);\r\n this.charPos = (this.charPos + n) | 0;\r\n index = (index + n) | 0;\r\n count = (count - n) | 0;\r\n }\r\n if (this.autoFlush) {\r\n this.Flush$1(true, false);\r\n }\r\n },\r\n Write$3: function (buffer, index, count) {\r\n if (buffer == null) {\r\n throw new System.ArgumentNullException.$ctor3(\"buffer\", \"ArgumentNull_Buffer\");\r\n }\r\n if (index < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"index\", \"ArgumentOutOfRange_NeedNonNegNum\");\r\n }\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"count\", \"ArgumentOutOfRange_NeedNonNegNum\");\r\n }\r\n if (((buffer.length - index) | 0) < count) {\r\n throw new System.ArgumentException.$ctor1(\"Argument_InvalidOffLen\");\r\n }\r\n\r\n while (count > 0) {\r\n if (this.charPos === this.charLen) {\r\n this.Flush$1(false, false);\r\n }\r\n var n = (this.charLen - this.charPos) | 0;\r\n if (n > count) {\r\n n = count;\r\n }\r\n System.Array.copy(buffer, index, this.charBuffer, this.charPos, n);\r\n this.charPos = (this.charPos + n) | 0;\r\n index = (index + n) | 0;\r\n count = (count - n) | 0;\r\n }\r\n if (this.autoFlush) {\r\n this.Flush$1(true, false);\r\n }\r\n },\r\n Write$10: function (value) {\r\n if (value != null) {\r\n var count = value.length;\r\n var index = 0;\r\n while (count > 0) {\r\n if (this.charPos === this.charLen) {\r\n this.Flush$1(false, false);\r\n }\r\n var n = (this.charLen - this.charPos) | 0;\r\n if (n > count) {\r\n n = count;\r\n }\r\n System.String.copyTo(value, index, this.charBuffer, this.charPos, n);\r\n this.charPos = (this.charPos + n) | 0;\r\n index = (index + n) | 0;\r\n count = (count - n) | 0;\r\n }\r\n if (this.autoFlush) {\r\n this.Flush$1(true, false);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source StringReader.js\r\n\r\n Bridge.define(\"System.IO.StringReader\", {\r\n inherits: [System.IO.TextReader],\r\n fields: {\r\n _s: null,\r\n _pos: 0,\r\n _length: 0\r\n },\r\n ctors: {\r\n ctor: function (s) {\r\n this.$initialize();\r\n System.IO.TextReader.ctor.call(this);\r\n if (s == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"s\");\r\n }\r\n this._s = s;\r\n this._length = s == null ? 0 : s.length;\r\n }\r\n },\r\n methods: {\r\n Close: function () {\r\n this.Dispose$1(true);\r\n },\r\n Dispose$1: function (disposing) {\r\n this._s = null;\r\n this._pos = 0;\r\n this._length = 0;\r\n System.IO.TextReader.prototype.Dispose$1.call(this, disposing);\r\n },\r\n Peek: function () {\r\n if (this._s == null) {\r\n System.IO.__Error.ReaderClosed();\r\n }\r\n if (this._pos === this._length) {\r\n return -1;\r\n }\r\n return this._s.charCodeAt(this._pos);\r\n },\r\n Read: function () {\r\n if (this._s == null) {\r\n System.IO.__Error.ReaderClosed();\r\n }\r\n if (this._pos === this._length) {\r\n return -1;\r\n }\r\n return this._s.charCodeAt(Bridge.identity(this._pos, ((this._pos = (this._pos + 1) | 0))));\r\n },\r\n Read$1: function (buffer, index, count) {\r\n if (buffer == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"buffer\");\r\n }\r\n if (index < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n if (((buffer.length - index) | 0) < count) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n if (this._s == null) {\r\n System.IO.__Error.ReaderClosed();\r\n }\r\n\r\n var n = (this._length - this._pos) | 0;\r\n if (n > 0) {\r\n if (n > count) {\r\n n = count;\r\n }\r\n System.String.copyTo(this._s, this._pos, buffer, index, n);\r\n this._pos = (this._pos + n) | 0;\r\n }\r\n return n;\r\n },\r\n ReadToEnd: function () {\r\n if (this._s == null) {\r\n System.IO.__Error.ReaderClosed();\r\n }\r\n var s;\r\n if (this._pos === 0) {\r\n s = this._s;\r\n } else {\r\n s = this._s.substr(this._pos, ((this._length - this._pos) | 0));\r\n }\r\n this._pos = this._length;\r\n return s;\r\n },\r\n ReadLine: function () {\r\n if (this._s == null) {\r\n System.IO.__Error.ReaderClosed();\r\n }\r\n var i = this._pos;\r\n while (i < this._length) {\r\n var ch = this._s.charCodeAt(i);\r\n if (ch === 13 || ch === 10) {\r\n var result = this._s.substr(this._pos, ((i - this._pos) | 0));\r\n this._pos = (i + 1) | 0;\r\n if (ch === 13 && this._pos < this._length && this._s.charCodeAt(this._pos) === 10) {\r\n this._pos = (this._pos + 1) | 0;\r\n }\r\n return result;\r\n }\r\n i = (i + 1) | 0;\r\n }\r\n if (i > this._pos) {\r\n var result1 = this._s.substr(this._pos, ((i - this._pos) | 0));\r\n this._pos = i;\r\n return result1;\r\n }\r\n return null;\r\n }\r\n }\r\n });\r\n\r\n // @source StringWriter.js\r\n\r\n Bridge.define(\"System.IO.StringWriter\", {\r\n inherits: [System.IO.TextWriter],\r\n statics: {\r\n fields: {\r\n m_encoding: null\r\n }\r\n },\r\n fields: {\r\n _sb: null,\r\n _isOpen: false\r\n },\r\n props: {\r\n Encoding: {\r\n get: function () {\r\n if (System.IO.StringWriter.m_encoding == null) {\r\n System.IO.StringWriter.m_encoding = new System.Text.UnicodeEncoding.$ctor1(false, false);\r\n }\r\n return System.IO.StringWriter.m_encoding;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n System.IO.StringWriter.$ctor3.call(this, new System.Text.StringBuilder(), System.Globalization.CultureInfo.getCurrentCulture());\r\n },\r\n $ctor1: function (formatProvider) {\r\n System.IO.StringWriter.$ctor3.call(this, new System.Text.StringBuilder(), formatProvider);\r\n },\r\n $ctor2: function (sb) {\r\n System.IO.StringWriter.$ctor3.call(this, sb, System.Globalization.CultureInfo.getCurrentCulture());\r\n },\r\n $ctor3: function (sb, formatProvider) {\r\n this.$initialize();\r\n System.IO.TextWriter.$ctor1.call(this, formatProvider);\r\n if (sb == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"sb\");\r\n }\r\n this._sb = sb;\r\n this._isOpen = true;\r\n }\r\n },\r\n methods: {\r\n Close: function () {\r\n this.Dispose$1(true);\r\n },\r\n Dispose$1: function (disposing) {\r\n this._isOpen = false;\r\n System.IO.TextWriter.prototype.Dispose$1.call(this, disposing);\r\n },\r\n GetStringBuilder: function () {\r\n return this._sb;\r\n },\r\n Write$1: function (value) {\r\n if (!this._isOpen) {\r\n System.IO.__Error.WriterClosed();\r\n }\r\n this._sb.append(String.fromCharCode(value));\r\n },\r\n Write$3: function (buffer, index, count) {\r\n if (buffer == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"buffer\");\r\n }\r\n if (index < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"index\");\r\n }\r\n if (count < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"count\");\r\n }\r\n if (((buffer.length - index) | 0) < count) {\r\n throw new System.ArgumentException.ctor();\r\n }\r\n\r\n if (!this._isOpen) {\r\n System.IO.__Error.WriterClosed();\r\n }\r\n\r\n this._sb.append(System.String.fromCharArray(buffer, index, count));\r\n },\r\n Write$10: function (value) {\r\n if (!this._isOpen) {\r\n System.IO.__Error.WriterClosed();\r\n }\r\n if (value != null) {\r\n this._sb.append(value);\r\n }\r\n },\r\n toString: function () {\r\n return this._sb.toString();\r\n }\r\n }\r\n });\r\n\r\n // @source NullTextReader.js\r\n\r\n Bridge.define(\"System.IO.TextReader.NullTextReader\", {\r\n inherits: [System.IO.TextReader],\r\n $kind: \"nested class\",\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.IO.TextReader.ctor.call(this);\r\n }\r\n },\r\n methods: {\r\n Read$1: function (buffer, index, count) {\r\n return 0;\r\n },\r\n ReadLine: function () {\r\n return null;\r\n }\r\n }\r\n });\r\n\r\n // @source NullTextWriter.js\r\n\r\n Bridge.define(\"System.IO.TextWriter.NullTextWriter\", {\r\n inherits: [System.IO.TextWriter],\r\n $kind: \"nested class\",\r\n props: {\r\n Encoding: {\r\n get: function () {\r\n return System.Text.Encoding.Default;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.IO.TextWriter.$ctor1.call(this, System.Globalization.CultureInfo.invariantCulture);\r\n }\r\n },\r\n methods: {\r\n Write$3: function (buffer, index, count) { },\r\n Write$10: function (value) { },\r\n WriteLine: function () { },\r\n WriteLine$11: function (value) { },\r\n WriteLine$9: function (value) { }\r\n }\r\n });\r\n\r\n // @source __Error.js\r\n\r\n Bridge.define(\"System.IO.__Error\", {\r\n statics: {\r\n methods: {\r\n EndOfFile: function () {\r\n throw new System.IO.EndOfStreamException.$ctor1(\"IO.EOF_ReadBeyondEOF\");\r\n },\r\n FileNotOpen: function () {\r\n throw new System.Exception(\"ObjectDisposed_FileClosed\");\r\n },\r\n StreamIsClosed: function () {\r\n throw new System.Exception(\"ObjectDisposed_StreamClosed\");\r\n },\r\n MemoryStreamNotExpandable: function () {\r\n throw new System.NotSupportedException.$ctor1(\"NotSupported_MemStreamNotExpandable\");\r\n },\r\n ReaderClosed: function () {\r\n throw new System.Exception(\"ObjectDisposed_ReaderClosed\");\r\n },\r\n ReadNotSupported: function () {\r\n throw new System.NotSupportedException.$ctor1(\"NotSupported_UnreadableStream\");\r\n },\r\n SeekNotSupported: function () {\r\n throw new System.NotSupportedException.$ctor1(\"NotSupported_UnseekableStream\");\r\n },\r\n WrongAsyncResult: function () {\r\n throw new System.ArgumentException.$ctor1(\"Arg_WrongAsyncResult\");\r\n },\r\n EndReadCalledTwice: function () {\r\n throw new System.ArgumentException.$ctor1(\"InvalidOperation_EndReadCalledMultiple\");\r\n },\r\n EndWriteCalledTwice: function () {\r\n throw new System.ArgumentException.$ctor1(\"InvalidOperation_EndWriteCalledMultiple\");\r\n },\r\n WriteNotSupported: function () {\r\n throw new System.NotSupportedException.$ctor1(\"NotSupported_UnwritableStream\");\r\n },\r\n WriterClosed: function () {\r\n throw new System.Exception(\"ObjectDisposed_WriterClosed\");\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source AmbiguousMatchException.js\r\n\r\n Bridge.define(\"System.Reflection.AmbiguousMatchException\", {\r\n inherits: [System.SystemException],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, \"Ambiguous match found.\");\r\n this.HResult = -2147475171;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2147475171;\r\n },\r\n $ctor2: function (message, inner) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, inner);\r\n this.HResult = -2147475171;\r\n }\r\n }\r\n });\r\n\r\n // @source Binder.js\r\n\r\n Bridge.define(\"System.Reflection.Binder\", {\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n }\r\n });\r\n\r\n // @source BindingFlags.js\r\n\r\n Bridge.define(\"System.Reflection.BindingFlags\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n Default: 0,\r\n IgnoreCase: 1,\r\n DeclaredOnly: 2,\r\n Instance: 4,\r\n Static: 8,\r\n Public: 16,\r\n NonPublic: 32,\r\n FlattenHierarchy: 64,\r\n InvokeMethod: 256,\r\n CreateInstance: 512,\r\n GetField: 1024,\r\n SetField: 2048,\r\n GetProperty: 4096,\r\n SetProperty: 8192,\r\n PutDispProperty: 16384,\r\n PutRefDispProperty: 32768,\r\n ExactBinding: 65536,\r\n SuppressChangeType: 131072,\r\n OptionalParamBinding: 262144,\r\n IgnoreReturn: 16777216,\r\n DoNotWrapExceptions: 33554432\r\n }\r\n },\r\n $flags: true\r\n });\r\n\r\n // @source CallingConventions.js\r\n\r\n Bridge.define(\"System.Reflection.CallingConventions\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n Standard: 1,\r\n VarArgs: 2,\r\n Any: 3,\r\n HasThis: 32,\r\n ExplicitThis: 64\r\n }\r\n },\r\n $flags: true\r\n });\r\n\r\n // @source ICustomAttributeProvider.js\r\n\r\n Bridge.define(\"System.Reflection.ICustomAttributeProvider\", {\r\n $kind: \"interface\"\r\n });\r\n\r\n // @source InvalidFilterCriteriaException.js\r\n\r\n Bridge.define(\"System.Reflection.InvalidFilterCriteriaException\", {\r\n inherits: [System.ApplicationException],\r\n ctors: {\r\n ctor: function () {\r\n System.Reflection.InvalidFilterCriteriaException.$ctor1.call(this, \"Specified filter criteria was invalid.\");\r\n },\r\n $ctor1: function (message) {\r\n System.Reflection.InvalidFilterCriteriaException.$ctor2.call(this, message, null);\r\n },\r\n $ctor2: function (message, inner) {\r\n this.$initialize();\r\n System.ApplicationException.$ctor2.call(this, message, inner);\r\n this.HResult = -2146232831;\r\n }\r\n }\r\n });\r\n\r\n // @source IReflect.js\r\n\r\n Bridge.define(\"System.Reflection.IReflect\", {\r\n $kind: \"interface\"\r\n });\r\n\r\n // @source MemberTypes.js\r\n\r\n Bridge.define(\"System.Reflection.MemberTypes\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n Constructor: 1,\r\n Event: 2,\r\n Field: 4,\r\n Method: 8,\r\n Property: 16,\r\n TypeInfo: 32,\r\n Custom: 64,\r\n NestedType: 128,\r\n All: 191\r\n }\r\n },\r\n $flags: true\r\n });\r\n\r\n // @source Module.js\r\n\r\n Bridge.define(\"System.Reflection.Module\", {\r\n inherits: [System.Reflection.ICustomAttributeProvider,System.Runtime.Serialization.ISerializable],\r\n statics: {\r\n fields: {\r\n DefaultLookup: 0,\r\n FilterTypeName: null,\r\n FilterTypeNameIgnoreCase: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.DefaultLookup = 28;\r\n this.FilterTypeName = System.Reflection.Module.FilterTypeNameImpl;\r\n this.FilterTypeNameIgnoreCase = System.Reflection.Module.FilterTypeNameIgnoreCaseImpl;\r\n }\r\n },\r\n methods: {\r\n FilterTypeNameImpl: function (cls, filterCriteria) {\r\n if (filterCriteria == null || !(Bridge.is(filterCriteria, System.String))) {\r\n throw new System.Reflection.InvalidFilterCriteriaException.$ctor1(\"A String must be provided for the filter criteria.\");\r\n }\r\n\r\n var str = Bridge.cast(filterCriteria, System.String);\r\n\r\n if (str.length > 0 && str.charCodeAt(((str.length - 1) | 0)) === 42) {\r\n str = str.substr(0, ((str.length - 1) | 0));\r\n return System.String.startsWith(Bridge.Reflection.getTypeName(cls), str, 4);\r\n }\r\n\r\n return System.String.equals(Bridge.Reflection.getTypeName(cls), str);\r\n },\r\n FilterTypeNameIgnoreCaseImpl: function (cls, filterCriteria) {\r\n var $t;\r\n if (filterCriteria == null || !(Bridge.is(filterCriteria, System.String))) {\r\n throw new System.Reflection.InvalidFilterCriteriaException.$ctor1(\"A String must be provided for the filter criteria.\");\r\n }\r\n\r\n var str = Bridge.cast(filterCriteria, System.String);\r\n\r\n if (str.length > 0 && str.charCodeAt(((str.length - 1) | 0)) === 42) {\r\n str = str.substr(0, ((str.length - 1) | 0));\r\n var name = Bridge.Reflection.getTypeName(cls);\r\n if (name.length >= str.length) {\r\n return (($t = str.length, System.String.compare(name.substr(0, $t), str.substr(0, $t), 5)) === 0);\r\n } else {\r\n return false;\r\n }\r\n }\r\n return (System.String.compare(str, Bridge.Reflection.getTypeName(cls), 5) === 0);\r\n },\r\n op_Equality: function (left, right) {\r\n if (Bridge.referenceEquals(left, right)) {\r\n return true;\r\n }\r\n\r\n if (left == null || right == null) {\r\n return false;\r\n }\r\n\r\n return left.equals(right);\r\n },\r\n op_Inequality: function (left, right) {\r\n return !(System.Reflection.Module.op_Equality(left, right));\r\n }\r\n }\r\n },\r\n props: {\r\n Assembly: {\r\n get: function () {\r\n throw System.NotImplemented.ByDesign;\r\n }\r\n },\r\n FullyQualifiedName: {\r\n get: function () {\r\n throw System.NotImplemented.ByDesign;\r\n }\r\n },\r\n Name: {\r\n get: function () {\r\n throw System.NotImplemented.ByDesign;\r\n }\r\n },\r\n MDStreamVersion: {\r\n get: function () {\r\n throw System.NotImplemented.ByDesign;\r\n }\r\n },\r\n ModuleVersionId: {\r\n get: function () {\r\n throw System.NotImplemented.ByDesign;\r\n }\r\n },\r\n ScopeName: {\r\n get: function () {\r\n throw System.NotImplemented.ByDesign;\r\n }\r\n },\r\n MetadataToken: {\r\n get: function () {\r\n throw System.NotImplemented.ByDesign;\r\n }\r\n }\r\n },\r\n alias: [\r\n \"IsDefined\", \"System$Reflection$ICustomAttributeProvider$IsDefined\",\r\n \"GetCustomAttributes\", \"System$Reflection$ICustomAttributeProvider$GetCustomAttributes\",\r\n \"GetCustomAttributes$1\", \"System$Reflection$ICustomAttributeProvider$GetCustomAttributes$1\"\r\n ],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n IsResource: function () {\r\n throw System.NotImplemented.ByDesign;\r\n },\r\n IsDefined: function (attributeType, inherit) {\r\n throw System.NotImplemented.ByDesign;\r\n },\r\n GetCustomAttributes: function (inherit) {\r\n throw System.NotImplemented.ByDesign;\r\n },\r\n GetCustomAttributes$1: function (attributeType, inherit) {\r\n throw System.NotImplemented.ByDesign;\r\n },\r\n GetMethod: function (name) {\r\n if (name == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"name\");\r\n }\r\n\r\n return this.GetMethodImpl(name, System.Reflection.Module.DefaultLookup, null, 3, null, null);\r\n },\r\n GetMethod$2: function (name, types) {\r\n return this.GetMethod$1(name, System.Reflection.Module.DefaultLookup, null, 3, types, null);\r\n },\r\n GetMethod$1: function (name, bindingAttr, binder, callConvention, types, modifiers) {\r\n if (name == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"name\");\r\n }\r\n if (types == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"types\");\r\n }\r\n for (var i = 0; i < types.length; i = (i + 1) | 0) {\r\n if (types[System.Array.index(i, types)] == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"types\");\r\n }\r\n }\r\n return this.GetMethodImpl(name, bindingAttr, binder, callConvention, types, modifiers);\r\n },\r\n GetMethodImpl: function (name, bindingAttr, binder, callConvention, types, modifiers) {\r\n throw System.NotImplemented.ByDesign;\r\n },\r\n GetMethods: function () {\r\n return this.GetMethods$1(System.Reflection.Module.DefaultLookup);\r\n },\r\n GetMethods$1: function (bindingFlags) {\r\n throw System.NotImplemented.ByDesign;\r\n },\r\n GetField: function (name) {\r\n return this.GetField$1(name, System.Reflection.Module.DefaultLookup);\r\n },\r\n GetField$1: function (name, bindingAttr) {\r\n throw System.NotImplemented.ByDesign;\r\n },\r\n GetFields: function () {\r\n return this.GetFields$1(System.Reflection.Module.DefaultLookup);\r\n },\r\n GetFields$1: function (bindingFlags) {\r\n throw System.NotImplemented.ByDesign;\r\n },\r\n GetTypes: function () {\r\n throw System.NotImplemented.ByDesign;\r\n },\r\n GetType: function (className) {\r\n return this.GetType$2(className, false, false);\r\n },\r\n GetType$1: function (className, ignoreCase) {\r\n return this.GetType$2(className, false, ignoreCase);\r\n },\r\n GetType$2: function (className, throwOnError, ignoreCase) {\r\n throw System.NotImplemented.ByDesign;\r\n },\r\n FindTypes: function (filter, filterCriteria) {\r\n var c = this.GetTypes();\r\n var cnt = 0;\r\n for (var i = 0; i < c.length; i = (i + 1) | 0) {\r\n if (!Bridge.staticEquals(filter, null) && !filter(c[System.Array.index(i, c)], filterCriteria)) {\r\n c[System.Array.index(i, c)] = null;\r\n } else {\r\n cnt = (cnt + 1) | 0;\r\n }\r\n }\r\n if (cnt === c.length) {\r\n return c;\r\n }\r\n\r\n var ret = System.Array.init(cnt, null, System.Type);\r\n cnt = 0;\r\n for (var i1 = 0; i1 < c.length; i1 = (i1 + 1) | 0) {\r\n if (c[System.Array.index(i1, c)] != null) {\r\n ret[System.Array.index(Bridge.identity(cnt, ((cnt = (cnt + 1) | 0))), ret)] = c[System.Array.index(i1, c)];\r\n }\r\n }\r\n return ret;\r\n },\r\n ResolveField: function (metadataToken) {\r\n return this.ResolveField$1(metadataToken, null, null);\r\n },\r\n ResolveField$1: function (metadataToken, genericTypeArguments, genericMethodArguments) {\r\n throw System.NotImplemented.ByDesign;\r\n },\r\n ResolveMember: function (metadataToken) {\r\n return this.ResolveMember$1(metadataToken, null, null);\r\n },\r\n ResolveMember$1: function (metadataToken, genericTypeArguments, genericMethodArguments) {\r\n throw System.NotImplemented.ByDesign;\r\n },\r\n ResolveMethod: function (metadataToken) {\r\n return this.ResolveMethod$1(metadataToken, null, null);\r\n },\r\n ResolveMethod$1: function (metadataToken, genericTypeArguments, genericMethodArguments) {\r\n throw System.NotImplemented.ByDesign;\r\n },\r\n ResolveSignature: function (metadataToken) {\r\n throw System.NotImplemented.ByDesign;\r\n },\r\n ResolveString: function (metadataToken) {\r\n throw System.NotImplemented.ByDesign;\r\n },\r\n ResolveType: function (metadataToken) {\r\n return this.ResolveType$1(metadataToken, null, null);\r\n },\r\n ResolveType$1: function (metadataToken, genericTypeArguments, genericMethodArguments) {\r\n throw System.NotImplemented.ByDesign;\r\n },\r\n equals: function (o) {\r\n return Bridge.equals(this, o);\r\n },\r\n getHashCode: function () {\r\n return Bridge.getHashCode(this);\r\n },\r\n toString: function () {\r\n return this.ScopeName;\r\n }\r\n }\r\n });\r\n\r\n // @source ParameterModifier.js\r\n\r\n Bridge.define(\"System.Reflection.ParameterModifier\", {\r\n $kind: \"struct\",\r\n statics: {\r\n methods: {\r\n getDefaultValue: function () { return new System.Reflection.ParameterModifier(); }\r\n }\r\n },\r\n fields: {\r\n _byRef: null\r\n },\r\n ctors: {\r\n $ctor1: function (parameterCount) {\r\n this.$initialize();\r\n if (parameterCount <= 0) {\r\n throw new System.ArgumentException.$ctor1(\"Must specify one or more parameters.\");\r\n }\r\n\r\n this._byRef = System.Array.init(parameterCount, false, System.Boolean);\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n getItem: function (index) {\r\n return this._byRef[System.Array.index(index, this._byRef)];\r\n },\r\n setItem: function (index, value) {\r\n this._byRef[System.Array.index(index, this._byRef)] = value;\r\n },\r\n getHashCode: function () {\r\n var h = Bridge.addHash([6723435274, this._byRef]);\r\n return h;\r\n },\r\n equals: function (o) {\r\n if (!Bridge.is(o, System.Reflection.ParameterModifier)) {\r\n return false;\r\n }\r\n return Bridge.equals(this._byRef, o._byRef);\r\n },\r\n $clone: function (to) {\r\n var s = to || new System.Reflection.ParameterModifier();\r\n s._byRef = this._byRef;\r\n return s;\r\n }\r\n }\r\n });\r\n\r\n // @source TypeAttributes.js\r\n\r\n Bridge.define(\"System.Reflection.TypeAttributes\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n VisibilityMask: 7,\r\n NotPublic: 0,\r\n Public: 1,\r\n NestedPublic: 2,\r\n NestedPrivate: 3,\r\n NestedFamily: 4,\r\n NestedAssembly: 5,\r\n NestedFamANDAssem: 6,\r\n NestedFamORAssem: 7,\r\n LayoutMask: 24,\r\n AutoLayout: 0,\r\n SequentialLayout: 8,\r\n ExplicitLayout: 16,\r\n ClassSemanticsMask: 32,\r\n Class: 0,\r\n Interface: 32,\r\n Abstract: 128,\r\n Sealed: 256,\r\n SpecialName: 1024,\r\n Import: 4096,\r\n Serializable: 8192,\r\n WindowsRuntime: 16384,\r\n StringFormatMask: 196608,\r\n AnsiClass: 0,\r\n UnicodeClass: 65536,\r\n AutoClass: 131072,\r\n CustomFormatClass: 196608,\r\n CustomFormatMask: 12582912,\r\n BeforeFieldInit: 1048576,\r\n RTSpecialName: 2048,\r\n HasSecurity: 262144,\r\n ReservedMask: 264192\r\n }\r\n },\r\n $flags: true\r\n });\r\n\r\n // @source Random.js\r\n\r\n Bridge.define(\"System.Random\", {\r\n statics: {\r\n fields: {\r\n MBIG: 0,\r\n MSEED: 0,\r\n MZ: 0\r\n },\r\n ctors: {\r\n init: function () {\r\n this.MBIG = 2147483647;\r\n this.MSEED = 161803398;\r\n this.MZ = 0;\r\n }\r\n }\r\n },\r\n fields: {\r\n inext: 0,\r\n inextp: 0,\r\n SeedArray: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.SeedArray = System.Array.init(56, 0, System.Int32);\r\n },\r\n ctor: function () {\r\n System.Random.$ctor1.call(this, System.Int64.clip32(System.DateTime.getTicks(System.DateTime.getNow())));\r\n },\r\n $ctor1: function (seed) {\r\n this.$initialize();\r\n var ii;\r\n var mj, mk;\r\n\r\n var subtraction = (seed === -2147483648) ? 2147483647 : Math.abs(seed);\r\n mj = (System.Random.MSEED - subtraction) | 0;\r\n this.SeedArray[System.Array.index(55, this.SeedArray)] = mj;\r\n mk = 1;\r\n for (var i = 1; i < 55; i = (i + 1) | 0) {\r\n ii = (Bridge.Int.mul(21, i)) % 55;\r\n this.SeedArray[System.Array.index(ii, this.SeedArray)] = mk;\r\n mk = (mj - mk) | 0;\r\n if (mk < 0) {\r\n mk = (mk + System.Random.MBIG) | 0;\r\n }\r\n mj = this.SeedArray[System.Array.index(ii, this.SeedArray)];\r\n }\r\n for (var k = 1; k < 5; k = (k + 1) | 0) {\r\n for (var i1 = 1; i1 < 56; i1 = (i1 + 1) | 0) {\r\n this.SeedArray[System.Array.index(i1, this.SeedArray)] = (this.SeedArray[System.Array.index(i1, this.SeedArray)] - this.SeedArray[System.Array.index(((1 + (((i1 + 30) | 0)) % 55) | 0), this.SeedArray)]) | 0;\r\n if (this.SeedArray[System.Array.index(i1, this.SeedArray)] < 0) {\r\n this.SeedArray[System.Array.index(i1, this.SeedArray)] = (this.SeedArray[System.Array.index(i1, this.SeedArray)] + System.Random.MBIG) | 0;\r\n }\r\n }\r\n }\r\n this.inext = 0;\r\n this.inextp = 21;\r\n seed = 1;\r\n }\r\n },\r\n methods: {\r\n Sample: function () {\r\n return (this.InternalSample() * (4.6566128752457969E-10));\r\n },\r\n InternalSample: function () {\r\n var retVal;\r\n var locINext = this.inext;\r\n var locINextp = this.inextp;\r\n\r\n if (((locINext = (locINext + 1) | 0)) >= 56) {\r\n locINext = 1;\r\n }\r\n\r\n if (((locINextp = (locINextp + 1) | 0)) >= 56) {\r\n locINextp = 1;\r\n }\r\n\r\n retVal = (this.SeedArray[System.Array.index(locINext, this.SeedArray)] - this.SeedArray[System.Array.index(locINextp, this.SeedArray)]) | 0;\r\n\r\n if (retVal === System.Random.MBIG) {\r\n retVal = (retVal - 1) | 0;\r\n }\r\n\r\n if (retVal < 0) {\r\n retVal = (retVal + System.Random.MBIG) | 0;\r\n }\r\n\r\n this.SeedArray[System.Array.index(locINext, this.SeedArray)] = retVal;\r\n\r\n this.inext = locINext;\r\n this.inextp = locINextp;\r\n\r\n return retVal;\r\n },\r\n Next: function () {\r\n return this.InternalSample();\r\n },\r\n Next$2: function (minValue, maxValue) {\r\n if (minValue > maxValue) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"minValue\", \"'minValue' cannot be greater than maxValue.\");\r\n }\r\n\r\n var range = System.Int64(maxValue).sub(System.Int64(minValue));\r\n if (range.lte(System.Int64(2147483647))) {\r\n return (((Bridge.Int.clip32((this.Sample() * System.Int64.toNumber(range))) + minValue) | 0));\r\n } else {\r\n return System.Int64.clip32(Bridge.Int.clip64((this.GetSampleForLargeRange() * System.Int64.toNumber(range))).add(System.Int64(minValue)));\r\n }\r\n },\r\n Next$1: function (maxValue) {\r\n if (maxValue < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"maxValue\", \"'maxValue' must be greater than zero.\");\r\n }\r\n return Bridge.Int.clip32(this.Sample() * maxValue);\r\n },\r\n GetSampleForLargeRange: function () {\r\n\r\n var result = this.InternalSample();\r\n var negative = (this.InternalSample() % 2 === 0) ? true : false;\r\n if (negative) {\r\n result = (-result) | 0;\r\n }\r\n var d = result;\r\n d += (2147483646);\r\n d /= 4294967293;\r\n return d;\r\n },\r\n NextDouble: function () {\r\n return this.Sample();\r\n },\r\n NextBytes: function (buffer) {\r\n if (buffer == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"buffer\");\r\n }\r\n for (var i = 0; i < buffer.length; i = (i + 1) | 0) {\r\n buffer[System.Array.index(i, buffer)] = (this.InternalSample() % (256)) & 255;\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source RankException.js\r\n\r\n Bridge.define(\"System.RankException\", {\r\n inherits: [System.SystemException],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, \"Attempted to operate on an array with the incorrect number of dimensions.\");\r\n this.HResult = -2146233065;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2146233065;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, innerException);\r\n this.HResult = -2146233065;\r\n }\r\n }\r\n });\r\n\r\n // @source SR.js\r\n\r\n Bridge.define(\"System.SR\", {\r\n statics: {\r\n fields: {\r\n ArgumentException_ValueTupleIncorrectType: null,\r\n ArgumentException_ValueTupleLastArgumentNotAValueTuple: null,\r\n _lock: null\r\n },\r\n props: {\r\n ResourceManager: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.ArgumentException_ValueTupleIncorrectType = \"Argument must be of type {0}.\";\r\n this.ArgumentException_ValueTupleLastArgumentNotAValueTuple = \"The last element of an eight element ValueTuple must be a ValueTuple.\";\r\n this._lock = { };\r\n }\r\n },\r\n methods: {\r\n UsingResourceKeys: function () {\r\n return false;\r\n },\r\n GetResourceString: function (resourceKey) {\r\n return System.SR.GetResourceString$1(resourceKey, \"\");\r\n },\r\n GetResourceString$1: function (resourceKey, defaultString) {\r\n var resourceString = null;\r\n try {\r\n resourceString = System.SR.InternalGetResourceString(resourceKey);\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n if (Bridge.is($e1, System.Resources.MissingManifestResourceException)) {\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n\r\n if (defaultString != null && System.String.equals(resourceKey, resourceString, 4)) {\r\n return defaultString;\r\n }\r\n\r\n return resourceString;\r\n },\r\n InternalGetResourceString: function (key) {\r\n if (key == null || key.length === 0) {\r\n return key;\r\n }\r\n\r\n return key;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n },\r\n Format$3: function (resourceFormat, args) {\r\n if (args === void 0) { args = []; }\r\n if (args != null) {\r\n if (System.SR.UsingResourceKeys()) {\r\n return (resourceFormat || \"\") + ((args).join(\", \") || \"\");\r\n }\r\n\r\n return System.String.format.apply(System.String, [resourceFormat].concat(args));\r\n }\r\n\r\n return resourceFormat;\r\n },\r\n Format: function (resourceFormat, p1) {\r\n if (System.SR.UsingResourceKeys()) {\r\n return ([resourceFormat, p1]).join(\", \");\r\n }\r\n\r\n return System.String.format(resourceFormat, [p1]);\r\n },\r\n Format$1: function (resourceFormat, p1, p2) {\r\n if (System.SR.UsingResourceKeys()) {\r\n return ([resourceFormat, p1, p2]).join(\", \");\r\n }\r\n\r\n return System.String.format(resourceFormat, p1, p2);\r\n },\r\n Format$2: function (resourceFormat, p1, p2, p3) {\r\n if (System.SR.UsingResourceKeys()) {\r\n return ([resourceFormat, p1, p2, p3]).join(\", \");\r\n }\r\n return System.String.format(resourceFormat, p1, p2, p3);\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source StringComparison.js\r\n\r\n Bridge.define(\"System.StringComparison\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n CurrentCulture: 0,\r\n CurrentCultureIgnoreCase: 1,\r\n InvariantCulture: 2,\r\n InvariantCultureIgnoreCase: 3,\r\n Ordinal: 4,\r\n OrdinalIgnoreCase: 5\r\n }\r\n }\r\n });\r\n\r\n // @source AggregateException.js\r\n\r\n Bridge.define(\"System.AggregateException\", {\r\n inherits: [System.Exception],\r\n\r\n ctor: function (message, innerExceptions) {\r\n this.$initialize();\r\n this.innerExceptions = new(System.Collections.ObjectModel.ReadOnlyCollection$1(System.Exception))(Bridge.hasValue(innerExceptions) ? Bridge.toArray(innerExceptions) : []);\r\n System.Exception.ctor.call(this, message || 'One or more errors occurred.', this.innerExceptions.Count > 0 ? this.innerExceptions.getItem(0) : null);\r\n },\r\n\r\n handle: function (predicate) {\r\n if (!Bridge.hasValue(predicate)) {\r\n throw new System.ArgumentNullException.$ctor1(\"predicate\");\r\n }\r\n\r\n var count = this.innerExceptions.Count,\r\n unhandledExceptions = [];\r\n\r\n for (var i = 0; i < count; i++) {\r\n if (!predicate(this.innerExceptions.get(i))) {\r\n unhandledExceptions.push(this.innerExceptions.getItem(i));\r\n }\r\n }\r\n\r\n if (unhandledExceptions.length > 0) {\r\n throw new System.AggregateException(this.Message, unhandledExceptions);\r\n }\r\n },\r\n\r\n getBaseException: function () {\r\n var back = this;\r\n var backAsAggregate = this;\r\n\r\n while (backAsAggregate != null && backAsAggregate.innerExceptions.Count === 1)\r\n {\r\n back = back.InnerException;\r\n backAsAggregate = Bridge.as(back, System.AggregateException);\r\n }\r\n\r\n return back;\r\n },\r\n\r\n hasTaskCanceledException: function () {\r\n for (var i = 0; i < this.innerExceptions.Count; i++) {\r\n var e = this.innerExceptions.getItem(i);\r\n if (Bridge.is(e, System.Threading.Tasks.TaskCanceledException) || (Bridge.is(e, System.AggregateException) && e.hasTaskCanceledException())) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n\r\n flatten: function () {\r\n // Initialize a collection to contain the flattened exceptions.\r\n var flattenedExceptions = new(System.Collections.Generic.List$1(System.Exception))();\r\n\r\n // Create a list to remember all aggregates to be flattened, this will be accessed like a FIFO queue\r\n var exceptionsToFlatten = new(System.Collections.Generic.List$1(System.AggregateException))();\r\n exceptionsToFlatten.add(this);\r\n var nDequeueIndex = 0;\r\n\r\n // Continue removing and recursively flattening exceptions, until there are no more.\r\n while (exceptionsToFlatten.Count > nDequeueIndex) {\r\n // dequeue one from exceptionsToFlatten\r\n var currentInnerExceptions = exceptionsToFlatten.getItem(nDequeueIndex++).innerExceptions,\r\n count = currentInnerExceptions.Count;\r\n\r\n for (var i = 0; i < count; i++) {\r\n var currentInnerException = currentInnerExceptions.getItem(i);\r\n\r\n if (!Bridge.hasValue(currentInnerException)) {\r\n continue;\r\n }\r\n\r\n var currentInnerAsAggregate = Bridge.as(currentInnerException, System.AggregateException);\r\n\r\n // If this exception is an aggregate, keep it around for later. Otherwise,\r\n // simply add it to the list of flattened exceptions to be returned.\r\n if (Bridge.hasValue(currentInnerAsAggregate)) {\r\n exceptionsToFlatten.add(currentInnerAsAggregate);\r\n } else {\r\n flattenedExceptions.add(currentInnerException);\r\n }\r\n }\r\n }\r\n\r\n return new System.AggregateException(this.Message, flattenedExceptions);\r\n }\r\n });\r\n\r\n\r\n // @source PromiseException.js\r\n\r\n Bridge.define(\"Bridge.PromiseException\", {\r\n inherits: [System.Exception],\r\n\r\n ctor: function (args, message, innerException) {\r\n this.$initialize();\r\n this.arguments = System.Array.clone(args);\r\n\r\n if (message == null) {\r\n message = \"Promise exception: [\";\r\n message += this.arguments.map(function (item) { return item == null ? \"null\" : item.toString(); }).join(\", \");\r\n message += \"]\";\r\n }\r\n\r\n System.Exception.ctor.call(this, message, innerException);\r\n },\r\n\r\n getArguments: function () {\r\n return this.arguments;\r\n }\r\n });\r\n\r\n // @source ThrowHelper.js\r\n\r\n Bridge.define(\"System.ThrowHelper\", {\r\n statics: {\r\n methods: {\r\n ThrowArrayTypeMismatchException: function () {\r\n throw new System.ArrayTypeMismatchException.ctor();\r\n },\r\n ThrowInvalidTypeWithPointersNotSupported: function (targetType) {\r\n throw new System.ArgumentException.$ctor1(System.SR.Format(\"Cannot use type '{0}'. Only value types without pointers or references are supported.\", targetType));\r\n },\r\n ThrowIndexOutOfRangeException: function () {\r\n throw new System.IndexOutOfRangeException.ctor();\r\n },\r\n ThrowArgumentOutOfRangeException: function () {\r\n throw new System.ArgumentOutOfRangeException.ctor();\r\n },\r\n ThrowArgumentOutOfRangeException$1: function (argument) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(System.ThrowHelper.GetArgumentName(argument));\r\n },\r\n ThrowArgumentOutOfRangeException$2: function (argument, resource) {\r\n throw System.ThrowHelper.GetArgumentOutOfRangeException(argument, resource);\r\n },\r\n ThrowArgumentOutOfRangeException$3: function (argument, paramNumber, resource) {\r\n throw System.ThrowHelper.GetArgumentOutOfRangeException$1(argument, paramNumber, resource);\r\n },\r\n ThrowArgumentException_DestinationTooShort: function () {\r\n throw new System.ArgumentException.$ctor1(\"Destination is too short.\");\r\n },\r\n ThrowArgumentException_OverlapAlignmentMismatch: function () {\r\n throw new System.ArgumentException.$ctor1(\"Overlapping spans have mismatching alignment.\");\r\n },\r\n ThrowArgumentOutOfRange_IndexException: function () {\r\n throw System.ThrowHelper.GetArgumentOutOfRangeException(System.ExceptionArgument.index, System.ExceptionResource.ArgumentOutOfRange_Index);\r\n },\r\n ThrowIndexArgumentOutOfRange_NeedNonNegNumException: function () {\r\n throw System.ThrowHelper.GetArgumentOutOfRangeException(System.ExceptionArgument.index, System.ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);\r\n },\r\n ThrowLengthArgumentOutOfRange_ArgumentOutOfRange_NeedNonNegNum: function () {\r\n throw System.ThrowHelper.GetArgumentOutOfRangeException(System.ExceptionArgument.$length, System.ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);\r\n },\r\n ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_Index: function () {\r\n throw System.ThrowHelper.GetArgumentOutOfRangeException(System.ExceptionArgument.startIndex, System.ExceptionResource.ArgumentOutOfRange_Index);\r\n },\r\n ThrowCountArgumentOutOfRange_ArgumentOutOfRange_Count: function () {\r\n throw System.ThrowHelper.GetArgumentOutOfRangeException(System.ExceptionArgument.count, System.ExceptionResource.ArgumentOutOfRange_Count);\r\n },\r\n ThrowWrongKeyTypeArgumentException: function (T, key, targetType) {\r\n throw System.ThrowHelper.GetWrongKeyTypeArgumentException(key, targetType);\r\n },\r\n ThrowWrongValueTypeArgumentException: function (T, value, targetType) {\r\n throw System.ThrowHelper.GetWrongValueTypeArgumentException(value, targetType);\r\n },\r\n GetAddingDuplicateWithKeyArgumentException: function (key) {\r\n return new System.ArgumentException.$ctor1(System.SR.Format(\"An item with the same key has already been added. Key: {0}\", key));\r\n },\r\n ThrowAddingDuplicateWithKeyArgumentException: function (T, key) {\r\n throw System.ThrowHelper.GetAddingDuplicateWithKeyArgumentException(key);\r\n },\r\n ThrowKeyNotFoundException: function (T, key) {\r\n throw System.ThrowHelper.GetKeyNotFoundException(key);\r\n },\r\n ThrowArgumentException: function (resource) {\r\n throw System.ThrowHelper.GetArgumentException(resource);\r\n },\r\n ThrowArgumentException$1: function (resource, argument) {\r\n throw System.ThrowHelper.GetArgumentException$1(resource, argument);\r\n },\r\n GetArgumentNullException: function (argument) {\r\n return new System.ArgumentNullException.$ctor1(System.ThrowHelper.GetArgumentName(argument));\r\n },\r\n ThrowArgumentNullException: function (argument) {\r\n throw System.ThrowHelper.GetArgumentNullException(argument);\r\n },\r\n ThrowArgumentNullException$2: function (resource) {\r\n throw new System.ArgumentNullException.$ctor1(System.ThrowHelper.GetResourceString(resource));\r\n },\r\n ThrowArgumentNullException$1: function (argument, resource) {\r\n throw new System.ArgumentNullException.$ctor3(System.ThrowHelper.GetArgumentName(argument), System.ThrowHelper.GetResourceString(resource));\r\n },\r\n ThrowInvalidOperationException: function (resource) {\r\n throw System.ThrowHelper.GetInvalidOperationException(resource);\r\n },\r\n ThrowInvalidOperationException$1: function (resource, e) {\r\n throw new System.InvalidOperationException.$ctor2(System.ThrowHelper.GetResourceString(resource), e);\r\n },\r\n ThrowInvalidOperationException_OutstandingReferences: function () {\r\n System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource.Memory_OutstandingReferences);\r\n },\r\n ThrowSerializationException: function (resource) {\r\n throw new System.Runtime.Serialization.SerializationException.$ctor1(System.ThrowHelper.GetResourceString(resource));\r\n },\r\n ThrowSecurityException: function (resource) {\r\n throw new System.Security.SecurityException.$ctor1(System.ThrowHelper.GetResourceString(resource));\r\n },\r\n ThrowRankException: function (resource) {\r\n throw new System.RankException.$ctor1(System.ThrowHelper.GetResourceString(resource));\r\n },\r\n ThrowNotSupportedException$1: function (resource) {\r\n throw new System.NotSupportedException.$ctor1(System.ThrowHelper.GetResourceString(resource));\r\n },\r\n ThrowNotSupportedException: function () {\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n ThrowUnauthorizedAccessException: function (resource) {\r\n throw new System.UnauthorizedAccessException.$ctor1(System.ThrowHelper.GetResourceString(resource));\r\n },\r\n ThrowObjectDisposedException$1: function (objectName, resource) {\r\n throw new System.ObjectDisposedException.$ctor3(objectName, System.ThrowHelper.GetResourceString(resource));\r\n },\r\n ThrowObjectDisposedException: function (resource) {\r\n throw new System.ObjectDisposedException.$ctor3(null, System.ThrowHelper.GetResourceString(resource));\r\n },\r\n ThrowObjectDisposedException_MemoryDisposed: function () {\r\n throw new System.ObjectDisposedException.$ctor3(\"OwnedMemory\", System.ThrowHelper.GetResourceString(System.ExceptionResource.MemoryDisposed));\r\n },\r\n ThrowAggregateException: function (exceptions) {\r\n throw new System.AggregateException(null, exceptions);\r\n },\r\n ThrowOutOfMemoryException: function () {\r\n throw new System.OutOfMemoryException.ctor();\r\n },\r\n ThrowArgumentException_Argument_InvalidArrayType: function () {\r\n throw System.ThrowHelper.GetArgumentException(System.ExceptionResource.Argument_InvalidArrayType);\r\n },\r\n ThrowInvalidOperationException_InvalidOperation_EnumNotStarted: function () {\r\n throw System.ThrowHelper.GetInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumNotStarted);\r\n },\r\n ThrowInvalidOperationException_InvalidOperation_EnumEnded: function () {\r\n throw System.ThrowHelper.GetInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumEnded);\r\n },\r\n ThrowInvalidOperationException_EnumCurrent: function (index) {\r\n throw System.ThrowHelper.GetInvalidOperationException_EnumCurrent(index);\r\n },\r\n ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion: function () {\r\n throw System.ThrowHelper.GetInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumFailedVersion);\r\n },\r\n ThrowInvalidOperationException_InvalidOperation_EnumOpCantHappen: function () {\r\n throw System.ThrowHelper.GetInvalidOperationException(System.ExceptionResource.InvalidOperation_EnumOpCantHappen);\r\n },\r\n ThrowInvalidOperationException_InvalidOperation_NoValue: function () {\r\n throw System.ThrowHelper.GetInvalidOperationException(System.ExceptionResource.InvalidOperation_NoValue);\r\n },\r\n ThrowArraySegmentCtorValidationFailedExceptions: function (array, offset, count) {\r\n throw System.ThrowHelper.GetArraySegmentCtorValidationFailedException(array, offset, count);\r\n },\r\n GetArraySegmentCtorValidationFailedException: function (array, offset, count) {\r\n if (array == null) {\r\n return System.ThrowHelper.GetArgumentNullException(System.ExceptionArgument.array);\r\n }\r\n if (offset < 0) {\r\n return System.ThrowHelper.GetArgumentOutOfRangeException(System.ExceptionArgument.offset, System.ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);\r\n }\r\n if (count < 0) {\r\n return System.ThrowHelper.GetArgumentOutOfRangeException(System.ExceptionArgument.count, System.ExceptionResource.ArgumentOutOfRange_NeedNonNegNum);\r\n }\r\n\r\n return System.ThrowHelper.GetArgumentException(System.ExceptionResource.Argument_InvalidOffLen);\r\n },\r\n GetArgumentException: function (resource) {\r\n return new System.ArgumentException.$ctor1(System.ThrowHelper.GetResourceString(resource));\r\n },\r\n GetArgumentException$1: function (resource, argument) {\r\n return new System.ArgumentException.$ctor3(System.ThrowHelper.GetResourceString(resource), System.ThrowHelper.GetArgumentName(argument));\r\n },\r\n GetInvalidOperationException: function (resource) {\r\n return new System.InvalidOperationException.$ctor1(System.ThrowHelper.GetResourceString(resource));\r\n },\r\n GetWrongKeyTypeArgumentException: function (key, targetType) {\r\n return new System.ArgumentException.$ctor3(System.SR.Format$1(\"The value \\\"{0}\\\" is not of type \\\"{1}\\\" and cannot be used in this generic collection.\", key, targetType), \"key\");\r\n },\r\n GetWrongValueTypeArgumentException: function (value, targetType) {\r\n return new System.ArgumentException.$ctor3(System.SR.Format$1(\"The value \\\"{0}\\\" is not of type \\\"{1}\\\" and cannot be used in this generic collection.\", value, targetType), \"value\");\r\n },\r\n GetKeyNotFoundException: function (key) {\r\n return new System.Collections.Generic.KeyNotFoundException.$ctor1(System.SR.Format(\"The given key '{0}' was not present in the dictionary.\", Bridge.toString(key)));\r\n },\r\n GetArgumentOutOfRangeException: function (argument, resource) {\r\n return new System.ArgumentOutOfRangeException.$ctor4(System.ThrowHelper.GetArgumentName(argument), System.ThrowHelper.GetResourceString(resource));\r\n },\r\n GetArgumentOutOfRangeException$1: function (argument, paramNumber, resource) {\r\n return new System.ArgumentOutOfRangeException.$ctor4((System.ThrowHelper.GetArgumentName(argument) || \"\") + \"[\" + (Bridge.toString(paramNumber) || \"\") + \"]\", System.ThrowHelper.GetResourceString(resource));\r\n },\r\n GetInvalidOperationException_EnumCurrent: function (index) {\r\n return System.ThrowHelper.GetInvalidOperationException(index < 0 ? System.ExceptionResource.InvalidOperation_EnumNotStarted : System.ExceptionResource.InvalidOperation_EnumEnded);\r\n },\r\n IfNullAndNullsAreIllegalThenThrow: function (T, value, argName) {\r\n if (!(Bridge.getDefaultValue(T) == null) && value == null) {\r\n System.ThrowHelper.ThrowArgumentNullException(argName);\r\n }\r\n },\r\n GetArgumentName: function (argument) {\r\n\r\n return System.Enum.toString(System.ExceptionArgument, argument);\r\n },\r\n GetResourceString: function (resource) {\r\n\r\n return System.SR.GetResourceString(System.Enum.toString(System.ExceptionResource, resource));\r\n },\r\n ThrowNotSupportedExceptionIfNonNumericType: function (T) {\r\n if (!Bridge.referenceEquals(T, System.Byte) && !Bridge.referenceEquals(T, System.SByte) && !Bridge.referenceEquals(T, System.Int16) && !Bridge.referenceEquals(T, System.UInt16) && !Bridge.referenceEquals(T, System.Int32) && !Bridge.referenceEquals(T, System.UInt32) && !Bridge.referenceEquals(T, System.Int64) && !Bridge.referenceEquals(T, System.UInt64) && !Bridge.referenceEquals(T, System.Single) && !Bridge.referenceEquals(T, System.Double)) {\r\n throw new System.NotSupportedException.$ctor1(\"Specified type is not supported\");\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source TimeoutException.js\r\n\r\n Bridge.define(\"System.TimeoutException\", {\r\n inherits: [System.SystemException],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, \"The operation has timed out.\");\r\n this.HResult = -2146233083;\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.SystemException.$ctor1.call(this, message);\r\n this.HResult = -2146233083;\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.SystemException.$ctor2.call(this, message, innerException);\r\n this.HResult = -2146233083;\r\n }\r\n }\r\n });\r\n\r\n // @source RegexMatchTimeoutException.js\r\n\r\n Bridge.define(\"System.RegexMatchTimeoutException\", {\r\n inherits: [System.TimeoutException],\r\n\r\n _regexInput: \"\",\r\n\r\n _regexPattern: \"\",\r\n\r\n _matchTimeout: null,\r\n\r\n config: {\r\n init: function () {\r\n this._matchTimeout = System.TimeSpan.fromTicks(-1);\r\n }\r\n },\r\n\r\n ctor: function (message, innerException, matchTimeout) {\r\n this.$initialize();\r\n\r\n if (arguments.length == 3) {\r\n this._regexInput = message;\r\n this._regexPattern = innerException;\r\n this._matchTimeout = matchTimeout;\r\n\r\n message = \"The RegEx engine has timed out while trying to match a pattern to an input string. This can occur for many reasons, including very large inputs or excessive backtracking caused by nested quantifiers, back-references and other factors.\";\r\n innerException = null;\r\n }\r\n\r\n System.TimeoutException.ctor.call(this, message, innerException);\r\n },\r\n\r\n getPattern: function () {\r\n return this._regexPattern;\r\n },\r\n\r\n getInput: function () {\r\n return this._regexInput;\r\n },\r\n\r\n getMatchTimeout: function () {\r\n return this._matchTimeout;\r\n }\r\n });\r\n\r\n // @source Encoding.js\r\n\r\n Bridge.define(\"System.Text.Encoding\", {\r\n statics: {\r\n fields: {\r\n _encodings: null\r\n },\r\n props: {\r\n Default: null,\r\n Unicode: null,\r\n ASCII: null,\r\n BigEndianUnicode: null,\r\n UTF7: null,\r\n UTF8: null,\r\n UTF32: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.Default = new System.Text.UnicodeEncoding.$ctor1(false, true);\r\n this.Unicode = new System.Text.UnicodeEncoding.$ctor1(false, true);\r\n this.ASCII = new System.Text.ASCIIEncoding();\r\n this.BigEndianUnicode = new System.Text.UnicodeEncoding.$ctor1(true, true);\r\n this.UTF7 = new System.Text.UTF7Encoding.ctor();\r\n this.UTF8 = new System.Text.UTF8Encoding.ctor();\r\n this.UTF32 = new System.Text.UTF32Encoding.$ctor1(false, true);\r\n }\r\n },\r\n methods: {\r\n Convert: function (srcEncoding, dstEncoding, bytes) {\r\n return System.Text.Encoding.Convert$1(srcEncoding, dstEncoding, bytes, 0, bytes.length);\r\n },\r\n Convert$1: function (srcEncoding, dstEncoding, bytes, index, count) {\r\n if (srcEncoding == null || dstEncoding == null) {\r\n throw new System.ArgumentNullException.$ctor1(srcEncoding == null ? \"srcEncoding\" : \"dstEncoding\");\r\n }\r\n\r\n if (bytes == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"bytes\");\r\n }\r\n\r\n return dstEncoding.GetBytes(srcEncoding.GetChars$1(bytes, index, count));\r\n },\r\n GetEncoding: function (codepage) {\r\n switch (codepage) {\r\n case 1200: \r\n return System.Text.Encoding.Unicode;\r\n case 20127: \r\n return System.Text.Encoding.ASCII;\r\n case 1201: \r\n return System.Text.Encoding.BigEndianUnicode;\r\n case 65000: \r\n return System.Text.Encoding.UTF7;\r\n case 65001: \r\n return System.Text.Encoding.UTF8;\r\n case 12000: \r\n return System.Text.Encoding.UTF32;\r\n }\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n GetEncoding$1: function (codepage) {\r\n switch (codepage) {\r\n case \"utf-16\": \r\n return System.Text.Encoding.Unicode;\r\n case \"us-ascii\": \r\n return System.Text.Encoding.ASCII;\r\n case \"utf-16BE\": \r\n return System.Text.Encoding.BigEndianUnicode;\r\n case \"utf-7\": \r\n return System.Text.Encoding.UTF7;\r\n case \"utf-8\": \r\n return System.Text.Encoding.UTF8;\r\n case \"utf-32\": \r\n return System.Text.Encoding.UTF32;\r\n }\r\n throw new System.NotSupportedException.ctor();\r\n },\r\n GetEncodings: function () {\r\n if (System.Text.Encoding._encodings != null) {\r\n return System.Text.Encoding._encodings;\r\n }\r\n System.Text.Encoding._encodings = System.Array.init(6, null, System.Text.EncodingInfo);\r\n var result = System.Text.Encoding._encodings;\r\n\r\n result[System.Array.index(0, result)] = new System.Text.EncodingInfo(20127, \"us-ascii\", \"US-ASCII\");\r\n result[System.Array.index(1, result)] = new System.Text.EncodingInfo(1200, \"utf-16\", \"Unicode\");\r\n result[System.Array.index(2, result)] = new System.Text.EncodingInfo(1201, \"utf-16BE\", \"Unicode (Big-Endian)\");\r\n result[System.Array.index(3, result)] = new System.Text.EncodingInfo(65000, \"utf-7\", \"Unicode (UTF-7)\");\r\n result[System.Array.index(4, result)] = new System.Text.EncodingInfo(65001, \"utf-8\", \"Unicode (UTF-8)\");\r\n result[System.Array.index(5, result)] = new System.Text.EncodingInfo(1200, \"utf-32\", \"Unicode (UTF-32)\");\r\n return result;\r\n }\r\n }\r\n },\r\n fields: {\r\n _hasError: false,\r\n fallbackCharacter: 0\r\n },\r\n props: {\r\n CodePage: {\r\n get: function () {\r\n return 0;\r\n }\r\n },\r\n EncodingName: {\r\n get: function () {\r\n return null;\r\n }\r\n }\r\n },\r\n ctors: {\r\n init: function () {\r\n this.fallbackCharacter = 63;\r\n }\r\n },\r\n methods: {\r\n Encode$1: function (chars, index, count) {\r\n var writtenCount = { };\r\n return this.Encode$3(System.String.fromCharArray(chars, index, count), null, 0, writtenCount);\r\n },\r\n Encode$5: function (s, index, count, outputBytes, outputIndex) {\r\n var writtenBytes = { };\r\n this.Encode$3(s.substr(index, count), outputBytes, outputIndex, writtenBytes);\r\n return writtenBytes.v;\r\n },\r\n Encode$4: function (chars, index, count, outputBytes, outputIndex) {\r\n var writtenBytes = { };\r\n this.Encode$3(System.String.fromCharArray(chars, index, count), outputBytes, outputIndex, writtenBytes);\r\n return writtenBytes.v;\r\n },\r\n Encode: function (chars) {\r\n var count = { };\r\n return this.Encode$3(System.String.fromCharArray(chars), null, 0, count);\r\n },\r\n Encode$2: function (str) {\r\n var count = { };\r\n return this.Encode$3(str, null, 0, count);\r\n },\r\n Decode$1: function (bytes, index, count) {\r\n return this.Decode$2(bytes, index, count, null, 0);\r\n },\r\n Decode: function (bytes) {\r\n return this.Decode$2(bytes, 0, bytes.length, null, 0);\r\n },\r\n GetByteCount: function (chars) {\r\n return this.GetByteCount$1(chars, 0, chars.length);\r\n },\r\n GetByteCount$2: function (s) {\r\n return this.Encode$2(s).length;\r\n },\r\n GetByteCount$1: function (chars, index, count) {\r\n return this.Encode$1(chars, index, count).length;\r\n },\r\n GetBytes: function (chars) {\r\n return this.GetBytes$1(chars, 0, chars.length);\r\n },\r\n GetBytes$1: function (chars, index, count) {\r\n return this.Encode$2(System.String.fromCharArray(chars, index, count));\r\n },\r\n GetBytes$3: function (chars, charIndex, charCount, bytes, byteIndex) {\r\n return this.Encode$4(chars, charIndex, charCount, bytes, byteIndex);\r\n },\r\n GetBytes$2: function (s) {\r\n return this.Encode$2(s);\r\n },\r\n GetBytes$4: function (s, charIndex, charCount, bytes, byteIndex) {\r\n return this.Encode$5(s, charIndex, charCount, bytes, byteIndex);\r\n },\r\n GetCharCount: function (bytes) {\r\n return this.Decode(bytes).length;\r\n },\r\n GetCharCount$1: function (bytes, index, count) {\r\n return this.Decode$1(bytes, index, count).length;\r\n },\r\n GetChars: function (bytes) {\r\n var $t;\r\n return ($t = this.Decode(bytes), System.String.toCharArray($t, 0, $t.length));\r\n },\r\n GetChars$1: function (bytes, index, count) {\r\n var $t;\r\n return ($t = this.Decode$1(bytes, index, count), System.String.toCharArray($t, 0, $t.length));\r\n },\r\n GetChars$2: function (bytes, byteIndex, byteCount, chars, charIndex) {\r\n var s = this.Decode$1(bytes, byteIndex, byteCount);\r\n var arr = System.String.toCharArray(s, 0, s.length);\r\n\r\n if (chars.length < (((arr.length + charIndex) | 0))) {\r\n throw new System.ArgumentException.$ctor3(null, \"chars\");\r\n }\r\n\r\n for (var i = 0; i < arr.length; i = (i + 1) | 0) {\r\n chars[System.Array.index(((charIndex + i) | 0), chars)] = arr[System.Array.index(i, arr)];\r\n }\r\n\r\n return arr.length;\r\n },\r\n GetString: function (bytes) {\r\n return this.Decode(bytes);\r\n },\r\n GetString$1: function (bytes, index, count) {\r\n return this.Decode$1(bytes, index, count);\r\n }\r\n }\r\n });\r\n\r\n // @source ASCIIEncoding.js\r\n\r\n Bridge.define(\"System.Text.ASCIIEncoding\", {\r\n inherits: [System.Text.Encoding],\r\n props: {\r\n CodePage: {\r\n get: function () {\r\n return 20127;\r\n }\r\n },\r\n EncodingName: {\r\n get: function () {\r\n return \"US-ASCII\";\r\n }\r\n }\r\n },\r\n methods: {\r\n Encode$3: function (s, outputBytes, outputIndex, writtenBytes) {\r\n var hasBuffer = outputBytes != null;\r\n\r\n if (!hasBuffer) {\r\n outputBytes = System.Array.init(0, 0, System.Byte);\r\n }\r\n\r\n var recorded = 0;\r\n for (var i = 0; i < s.length; i = (i + 1) | 0) {\r\n var ch = s.charCodeAt(i);\r\n var byteCode = (ch <= 127 ? ch : this.fallbackCharacter) & 255;\r\n\r\n if (hasBuffer) {\r\n if ((((i + outputIndex) | 0)) >= outputBytes.length) {\r\n throw new System.ArgumentException.$ctor1(\"bytes\");\r\n }\r\n outputBytes[System.Array.index(((i + outputIndex) | 0), outputBytes)] = byteCode;\r\n } else {\r\n outputBytes.push(byteCode);\r\n }\r\n recorded = (recorded + 1) | 0;\r\n }\r\n\r\n writtenBytes.v = recorded;\r\n\r\n if (hasBuffer) {\r\n return null;\r\n }\r\n\r\n return outputBytes;\r\n },\r\n Decode$2: function (bytes, index, count, chars, charIndex) {\r\n var position = index;\r\n var result = \"\";\r\n var endpoint = (position + count) | 0;\r\n\r\n for (; position < endpoint; position = (position + 1) | 0) {\r\n var byteCode = bytes[System.Array.index(position, bytes)];\r\n\r\n if (byteCode > 127) {\r\n result = (result || \"\") + String.fromCharCode(this.fallbackCharacter);\r\n } else {\r\n result = (result || \"\") + ((String.fromCharCode(byteCode)) || \"\");\r\n }\r\n }\r\n\r\n return result;\r\n },\r\n GetMaxByteCount: function (charCount) {\r\n if (charCount < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"charCount\");\r\n }\r\n\r\n var byteCount = System.Int64(charCount).add(System.Int64(1));\r\n\r\n if (byteCount.gt(System.Int64(2147483647))) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"charCount\");\r\n }\r\n\r\n return System.Int64.clip32(byteCount);\r\n },\r\n GetMaxCharCount: function (byteCount) {\r\n if (byteCount < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"byteCount\");\r\n }\r\n\r\n var charCount = System.Int64(byteCount);\r\n\r\n if (charCount.gt(System.Int64(2147483647))) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"byteCount\");\r\n }\r\n\r\n return System.Int64.clip32(charCount);\r\n }\r\n }\r\n });\r\n\r\n // @source EncodingInfo.js\r\n\r\n Bridge.define(\"System.Text.EncodingInfo\", {\r\n props: {\r\n CodePage: 0,\r\n Name: null,\r\n DisplayName: null\r\n },\r\n ctors: {\r\n ctor: function (codePage, name, displayName) {\r\n var $t;\r\n this.$initialize();\r\n this.CodePage = codePage;\r\n this.Name = name;\r\n this.DisplayName = ($t = displayName, $t != null ? $t : name);\r\n }\r\n },\r\n methods: {\r\n GetEncoding: function () {\r\n return System.Text.Encoding.GetEncoding(this.CodePage);\r\n },\r\n getHashCode: function () {\r\n return this.CodePage;\r\n },\r\n equals: function (o) {\r\n var that = Bridge.as(o, System.Text.EncodingInfo);\r\n return System.Nullable.eq(this.CodePage, (that != null ? that.CodePage : null));\r\n }\r\n }\r\n });\r\n\r\n // @source UnicodeEncoding.js\r\n\r\n Bridge.define(\"System.Text.UnicodeEncoding\", {\r\n inherits: [System.Text.Encoding],\r\n fields: {\r\n bigEndian: false,\r\n byteOrderMark: false,\r\n throwOnInvalid: false\r\n },\r\n props: {\r\n CodePage: {\r\n get: function () {\r\n return this.bigEndian ? 1201 : 1200;\r\n }\r\n },\r\n EncodingName: {\r\n get: function () {\r\n return this.bigEndian ? \"Unicode (Big-Endian)\" : \"Unicode\";\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n System.Text.UnicodeEncoding.$ctor1.call(this, false, true);\r\n },\r\n $ctor1: function (bigEndian, byteOrderMark) {\r\n System.Text.UnicodeEncoding.$ctor2.call(this, bigEndian, byteOrderMark, false);\r\n },\r\n $ctor2: function (bigEndian, byteOrderMark, throwOnInvalidBytes) {\r\n this.$initialize();\r\n System.Text.Encoding.ctor.call(this);\r\n this.bigEndian = bigEndian;\r\n this.byteOrderMark = byteOrderMark;\r\n this.throwOnInvalid = throwOnInvalidBytes;\r\n this.fallbackCharacter = 65533;\r\n }\r\n },\r\n methods: {\r\n Encode$3: function (s, outputBytes, outputIndex, writtenBytes) {\r\n var hasBuffer = outputBytes != null;\r\n var recorded = 0;\r\n var surrogate_1st = 0;\r\n var fallbackCharacterCode = this.fallbackCharacter;\r\n\r\n var write = function (ch) {\r\n if (hasBuffer) {\r\n if (outputIndex >= outputBytes.length) {\r\n throw new System.ArgumentException.$ctor1(\"bytes\");\r\n }\r\n\r\n outputBytes[System.Array.index(Bridge.identity(outputIndex, ((outputIndex = (outputIndex + 1) | 0))), outputBytes)] = ch;\r\n } else {\r\n outputBytes.push(ch);\r\n }\r\n recorded = (recorded + 1) | 0;\r\n };\r\n\r\n var writePair = function (a, b) {\r\n write(a);\r\n write(b);\r\n };\r\n\r\n var swap = $asm.$.System.Text.UnicodeEncoding.f1;\r\n\r\n var fallback = Bridge.fn.bind(this, function () {\r\n if (this.throwOnInvalid) {\r\n throw new System.Exception(\"Invalid character in UTF16 text\");\r\n }\r\n\r\n writePair((fallbackCharacterCode & 255), ((fallbackCharacterCode >> 8) & 255));\r\n });\r\n\r\n if (!hasBuffer) {\r\n outputBytes = System.Array.init(0, 0, System.Byte);\r\n }\r\n\r\n if (this.bigEndian) {\r\n fallbackCharacterCode = swap(fallbackCharacterCode);\r\n }\r\n\r\n for (var i = 0; i < s.length; i = (i + 1) | 0) {\r\n var ch = s.charCodeAt(i);\r\n\r\n if (surrogate_1st !== 0) {\r\n if (ch >= 56320 && ch <= 57343) {\r\n if (this.bigEndian) {\r\n surrogate_1st = swap(surrogate_1st);\r\n ch = swap(ch);\r\n }\r\n writePair((surrogate_1st & 255), ((surrogate_1st >> 8) & 255));\r\n writePair((ch & 255), ((ch >> 8) & 255));\r\n surrogate_1st = 0;\r\n continue;\r\n }\r\n fallback();\r\n surrogate_1st = 0;\r\n }\r\n\r\n if (55296 <= ch && ch <= 56319) {\r\n surrogate_1st = ch;\r\n continue;\r\n } else if (56320 <= ch && ch <= 57343) {\r\n fallback();\r\n surrogate_1st = 0;\r\n continue;\r\n }\r\n\r\n if (ch < 65536) {\r\n if (this.bigEndian) {\r\n ch = swap(ch);\r\n }\r\n writePair((ch & 255), ((ch >> 8) & 255));\r\n } else if (ch <= 1114111) {\r\n ch = ch - 0x10000;\r\n\r\n var lowBits = ((ch & 1023) | 56320) & 65535;\r\n var highBits = (((ch >> 10) & 1023) | 55296) & 65535;\r\n\r\n if (this.bigEndian) {\r\n highBits = swap(highBits);\r\n lowBits = swap(lowBits);\r\n }\r\n writePair((highBits & 255), ((highBits >> 8) & 255));\r\n writePair((lowBits & 255), ((lowBits >> 8) & 255));\r\n } else {\r\n fallback();\r\n }\r\n }\r\n\r\n if (surrogate_1st !== 0) {\r\n fallback();\r\n }\r\n\r\n writtenBytes.v = recorded;\r\n\r\n if (hasBuffer) {\r\n return null;\r\n }\r\n\r\n return outputBytes;\r\n },\r\n Decode$2: function (bytes, index, count, chars, charIndex) {\r\n var position = index;\r\n var result = \"\";\r\n var endpoint = (position + count) | 0;\r\n this._hasError = false;\r\n\r\n var fallback = Bridge.fn.bind(this, function () {\r\n if (this.throwOnInvalid) {\r\n throw new System.Exception(\"Invalid character in UTF16 text\");\r\n }\r\n\r\n result = (result || \"\") + String.fromCharCode(this.fallbackCharacter);\r\n });\r\n\r\n var swap = $asm.$.System.Text.UnicodeEncoding.f2;\r\n\r\n var readPair = Bridge.fn.bind(this, function () {\r\n if ((((position + 2) | 0)) > endpoint) {\r\n position = (position + 2) | 0;\r\n return null;\r\n }\r\n\r\n var a = bytes[System.Array.index(Bridge.identity(position, ((position = (position + 1) | 0))), bytes)];\r\n var b = bytes[System.Array.index(Bridge.identity(position, ((position = (position + 1) | 0))), bytes)];\r\n\r\n var point = ((a << 8) | b) & 65535;\r\n if (!this.bigEndian) {\r\n point = swap(point);\r\n }\r\n\r\n return point;\r\n });\r\n\r\n while (position < endpoint) {\r\n var firstWord = readPair();\r\n\r\n if (!System.Nullable.hasValue(firstWord)) {\r\n fallback();\r\n this._hasError = true;\r\n } else if ((System.Nullable.lt(firstWord, 55296)) || (System.Nullable.gt(firstWord, 57343))) {\r\n result = (result || \"\") + ((System.String.fromCharCode(System.Nullable.getValue(firstWord))) || \"\");\r\n } else if ((System.Nullable.gte(firstWord, 55296)) && (System.Nullable.lte(firstWord, 56319))) {\r\n var end = position >= endpoint;\r\n var secondWord = readPair();\r\n if (end) {\r\n fallback();\r\n this._hasError = true;\r\n } else if (!System.Nullable.hasValue(secondWord)) {\r\n fallback();\r\n fallback();\r\n } else if ((System.Nullable.gte(secondWord, 56320)) && (System.Nullable.lte(secondWord, 57343))) {\r\n var highBits = System.Nullable.band(firstWord, 1023);\r\n var lowBits = System.Nullable.band(secondWord, 1023);\r\n\r\n var charCode = Bridge.Int.clip32(System.Nullable.add((System.Nullable.bor((System.Nullable.sl(highBits, 10)), lowBits)), 65536));\r\n\r\n result = (result || \"\") + ((System.String.fromCharCode(System.Nullable.getValue(charCode))) || \"\");\r\n } else {\r\n fallback();\r\n position = (position - 2) | 0;\r\n }\r\n } else {\r\n fallback();\r\n }\r\n }\r\n\r\n return result;\r\n },\r\n GetMaxByteCount: function (charCount) {\r\n if (charCount < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"charCount\");\r\n }\r\n\r\n var byteCount = System.Int64(charCount).add(System.Int64(1));\r\n byteCount = byteCount.shl(1);\r\n\r\n if (byteCount.gt(System.Int64(2147483647))) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"charCount\");\r\n }\r\n\r\n return System.Int64.clip32(byteCount);\r\n },\r\n GetMaxCharCount: function (byteCount) {\r\n if (byteCount < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"byteCount\");\r\n }\r\n\r\n var charCount = System.Int64((byteCount >> 1)).add(System.Int64((byteCount & 1))).add(System.Int64(1));\r\n\r\n if (charCount.gt(System.Int64(2147483647))) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"byteCount\");\r\n }\r\n\r\n return System.Int64.clip32(charCount);\r\n }\r\n }\r\n });\r\n\r\n Bridge.ns(\"System.Text.UnicodeEncoding\", $asm.$);\r\n\r\n Bridge.apply($asm.$.System.Text.UnicodeEncoding, {\r\n f1: function (ch) {\r\n return ((((ch & 255) << 8) | ((ch >> 8) & 255)) & 65535);\r\n },\r\n f2: function (ch) {\r\n return ((((ch & 255) << 8) | (((ch >> 8)) & 255)) & 65535);\r\n }\r\n });\r\n\r\n // @source UTF32Encoding.js\r\n\r\n Bridge.define(\"System.Text.UTF32Encoding\", {\r\n inherits: [System.Text.Encoding],\r\n fields: {\r\n bigEndian: false,\r\n byteOrderMark: false,\r\n throwOnInvalid: false\r\n },\r\n props: {\r\n CodePage: {\r\n get: function () {\r\n return this.bigEndian ? 1201 : 1200;\r\n }\r\n },\r\n EncodingName: {\r\n get: function () {\r\n return this.bigEndian ? \"Unicode (UTF-32 Big-Endian)\" : \"Unicode (UTF-32)\";\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n System.Text.UTF32Encoding.$ctor2.call(this, false, true, false);\r\n },\r\n $ctor1: function (bigEndian, byteOrderMark) {\r\n System.Text.UTF32Encoding.$ctor2.call(this, bigEndian, byteOrderMark, false);\r\n },\r\n $ctor2: function (bigEndian, byteOrderMark, throwOnInvalidBytes) {\r\n this.$initialize();\r\n System.Text.Encoding.ctor.call(this);\r\n this.bigEndian = bigEndian;\r\n this.byteOrderMark = byteOrderMark;\r\n this.throwOnInvalid = throwOnInvalidBytes;\r\n this.fallbackCharacter = 65533;\r\n }\r\n },\r\n methods: {\r\n ToCodePoints: function (str) {\r\n var surrogate_1st = 0;\r\n var unicode_codes = System.Array.init(0, 0, System.Char);\r\n var fallback = Bridge.fn.bind(this, function () {\r\n if (this.throwOnInvalid) {\r\n throw new System.Exception(\"Invalid character in UTF32 text\");\r\n }\r\n unicode_codes.push(this.fallbackCharacter);\r\n });\r\n\r\n for (var i = 0; i < str.length; i = (i + 1) | 0) {\r\n var utf16_code = str.charCodeAt(i);\r\n\r\n if (surrogate_1st !== 0) {\r\n if (utf16_code >= 56320 && utf16_code <= 57343) {\r\n var surrogate_2nd = utf16_code;\r\n var unicode_code = (((Bridge.Int.mul((((surrogate_1st - 55296) | 0)), (1024)) + (65536)) | 0) + (((surrogate_2nd - 56320) | 0))) | 0;\r\n unicode_codes.push(unicode_code);\r\n } else {\r\n fallback();\r\n i = (i - 1) | 0;\r\n }\r\n surrogate_1st = 0;\r\n } else if (utf16_code >= 55296 && utf16_code <= 56319) {\r\n surrogate_1st = utf16_code;\r\n } else if ((utf16_code >= 56320) && (utf16_code <= 57343)) {\r\n fallback();\r\n } else {\r\n unicode_codes.push(utf16_code);\r\n }\r\n }\r\n\r\n if (surrogate_1st !== 0) {\r\n fallback();\r\n }\r\n\r\n return unicode_codes;\r\n },\r\n Encode$3: function (s, outputBytes, outputIndex, writtenBytes) {\r\n var hasBuffer = outputBytes != null;\r\n var recorded = 0;\r\n\r\n var write = function (ch) {\r\n if (hasBuffer) {\r\n if (outputIndex >= outputBytes.length) {\r\n throw new System.ArgumentException.$ctor1(\"bytes\");\r\n }\r\n\r\n outputBytes[System.Array.index(Bridge.identity(outputIndex, ((outputIndex = (outputIndex + 1) | 0))), outputBytes)] = ch;\r\n } else {\r\n outputBytes.push(ch);\r\n }\r\n recorded = (recorded + 1) | 0;\r\n };\r\n\r\n var write32 = Bridge.fn.bind(this, function (a) {\r\n var r = System.Array.init(4, 0, System.Byte);\r\n r[System.Array.index(0, r)] = (((a & 255) >>> 0));\r\n r[System.Array.index(1, r)] = ((((a & 65280) >>> 0)) >>> 8);\r\n r[System.Array.index(2, r)] = ((((a & 16711680) >>> 0)) >>> 16);\r\n r[System.Array.index(3, r)] = ((((a & 4278190080) >>> 0)) >>> 24);\r\n\r\n if (this.bigEndian) {\r\n r.reverse();\r\n }\r\n\r\n write(r[System.Array.index(0, r)]);\r\n write(r[System.Array.index(1, r)]);\r\n write(r[System.Array.index(2, r)]);\r\n write(r[System.Array.index(3, r)]);\r\n });\r\n\r\n if (!hasBuffer) {\r\n outputBytes = System.Array.init(0, 0, System.Byte);\r\n }\r\n\r\n var unicode_codes = this.ToCodePoints(s);\r\n for (var i = 0; i < unicode_codes.length; i = (i + 1) | 0) {\r\n write32(unicode_codes[System.Array.index(i, unicode_codes)]);\r\n }\r\n\r\n writtenBytes.v = recorded;\r\n\r\n if (hasBuffer) {\r\n return null;\r\n }\r\n\r\n return outputBytes;\r\n },\r\n Decode$2: function (bytes, index, count, chars, charIndex) {\r\n var position = index;\r\n var result = \"\";\r\n var endpoint = (position + count) | 0;\r\n this._hasError = false;\r\n\r\n var fallback = Bridge.fn.bind(this, function () {\r\n if (this.throwOnInvalid) {\r\n throw new System.Exception(\"Invalid character in UTF32 text\");\r\n }\r\n\r\n result = (result || \"\") + ((String.fromCharCode(this.fallbackCharacter)) || \"\");\r\n });\r\n\r\n var read32 = Bridge.fn.bind(this, function () {\r\n if ((((position + 4) | 0)) > endpoint) {\r\n position = (position + 4) | 0;\r\n return null;\r\n }\r\n\r\n var a = bytes[System.Array.index(Bridge.identity(position, ((position = (position + 1) | 0))), bytes)];\r\n var b = bytes[System.Array.index(Bridge.identity(position, ((position = (position + 1) | 0))), bytes)];\r\n var c = bytes[System.Array.index(Bridge.identity(position, ((position = (position + 1) | 0))), bytes)];\r\n var d = bytes[System.Array.index(Bridge.identity(position, ((position = (position + 1) | 0))), bytes)];\r\n\r\n if (this.bigEndian) {\r\n var tmp = b;\r\n b = c;\r\n c = tmp;\r\n\r\n tmp = a;\r\n a = d;\r\n d = tmp;\r\n }\r\n\r\n return ((d << 24) | (c << 16) | (b << 8) | a);\r\n });\r\n\r\n while (position < endpoint) {\r\n var unicode_code = read32();\r\n\r\n if (unicode_code == null) {\r\n fallback();\r\n this._hasError = true;\r\n continue;\r\n }\r\n\r\n if (System.Nullable.lt(unicode_code, 65536) || System.Nullable.gt(unicode_code, 1114111)) {\r\n if (System.Nullable.lt(unicode_code, 0) || System.Nullable.gt(unicode_code, 1114111) || (System.Nullable.gte(unicode_code, 55296) && System.Nullable.lte(unicode_code, 57343))) {\r\n fallback();\r\n } else {\r\n result = (result || \"\") + ((String.fromCharCode(unicode_code)) || \"\");\r\n }\r\n } else {\r\n result = (result || \"\") + ((String.fromCharCode((Bridge.Int.clipu32(System.Nullable.add((Bridge.Int.clipu32(Bridge.Int.div((Bridge.Int.clipu32(System.Nullable.sub(unicode_code, (65536)))), (1024)))), 55296))))) || \"\");\r\n result = (result || \"\") + ((String.fromCharCode((Bridge.Int.clipu32(System.Nullable.add((System.Nullable.mod(unicode_code, (1024))), 56320))))) || \"\");\r\n }\r\n }\r\n\r\n return result;\r\n },\r\n GetMaxByteCount: function (charCount) {\r\n if (charCount < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"charCount\");\r\n }\r\n\r\n var byteCount = System.Int64(charCount).add(System.Int64(1));\r\n byteCount = byteCount.mul(System.Int64(4));\r\n\r\n if (byteCount.gt(System.Int64(2147483647))) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"charCount\");\r\n }\r\n\r\n return System.Int64.clip32(byteCount);\r\n },\r\n GetMaxCharCount: function (byteCount) {\r\n if (byteCount < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"byteCount\");\r\n }\r\n\r\n var charCount = (((Bridge.Int.div(byteCount, 2)) | 0) + 2) | 0;\r\n\r\n if (charCount > 2147483647) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"byteCount\");\r\n }\r\n\r\n return charCount;\r\n }\r\n }\r\n });\r\n\r\n // @source UTF7Encoding.js\r\n\r\n Bridge.define(\"System.Text.UTF7Encoding\", {\r\n inherits: [System.Text.Encoding],\r\n statics: {\r\n methods: {\r\n Escape: function (chars) {\r\n return chars.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\r\n }\r\n }\r\n },\r\n fields: {\r\n allowOptionals: false\r\n },\r\n props: {\r\n CodePage: {\r\n get: function () {\r\n return 65000;\r\n }\r\n },\r\n EncodingName: {\r\n get: function () {\r\n return \"Unicode (UTF-7)\";\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n System.Text.UTF7Encoding.$ctor1.call(this, false);\r\n },\r\n $ctor1: function (allowOptionals) {\r\n this.$initialize();\r\n System.Text.Encoding.ctor.call(this);\r\n this.allowOptionals = allowOptionals;\r\n this.fallbackCharacter = 65533;\r\n }\r\n },\r\n methods: {\r\n Encode$3: function (s, outputBytes, outputIndex, writtenBytes) {\r\n var setD = \"A-Za-z0-9\" + (System.Text.UTF7Encoding.Escape(\"'(),-./:?\") || \"\");\r\n\r\n var encode = $asm.$.System.Text.UTF7Encoding.f1;\r\n\r\n var setO = System.Text.UTF7Encoding.Escape(\"!\\\"#$%&*;<=>@[]^_`{|}\");\r\n var setW = System.Text.UTF7Encoding.Escape(\" \\r\\n\\t\");\r\n\r\n s = s.replace(new RegExp(\"[^\" + setW + setD + (this.allowOptionals ? setO : \"\") + \"]+\", \"g\"), function (chunk) { return \"+\" + (chunk === \"+\" ? \"\" : encode(chunk)) + \"-\"; });\r\n\r\n var arr = System.String.toCharArray(s, 0, s.length);\r\n\r\n if (outputBytes != null) {\r\n var recorded = 0;\r\n\r\n if (arr.length > (((outputBytes.length - outputIndex) | 0))) {\r\n throw new System.ArgumentException.$ctor1(\"bytes\");\r\n }\r\n\r\n for (var j = 0; j < arr.length; j = (j + 1) | 0) {\r\n outputBytes[System.Array.index(((j + outputIndex) | 0), outputBytes)] = arr[System.Array.index(j, arr)];\r\n recorded = (recorded + 1) | 0;\r\n }\r\n\r\n writtenBytes.v = recorded;\r\n return null;\r\n }\r\n\r\n writtenBytes.v = arr.length;\r\n\r\n return arr;\r\n },\r\n Decode$2: function (bytes, index, count, chars, charIndex) {\r\n var _base64ToArrayBuffer = $asm.$.System.Text.UTF7Encoding.f2;\r\n\r\n var decode = function (s) {\r\n var b = _base64ToArrayBuffer(s);\r\n var r = System.Array.init(0, 0, System.Char);\r\n for (var i = 0; i < b.length; ) {\r\n r.push(((b[System.Array.index(Bridge.identity(i, ((i = (i + 1) | 0))), b)] << 8 | b[System.Array.index(Bridge.identity(i, ((i = (i + 1) | 0))), b)]) & 65535));\r\n }\r\n return System.String.fromCharArray(r);\r\n };\r\n\r\n var str = System.String.fromCharArray(bytes, index, count);\r\n return str.replace(/\\+([A-Za-z0-9\\/]*)-?/gi, function (_, chunk) { if (chunk === \"\") { return _ == \"+-\" ? \"+\" : \"\"; } return decode(chunk); });\r\n },\r\n GetMaxByteCount: function (charCount) {\r\n if (charCount < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"charCount\");\r\n }\r\n\r\n var byteCount = System.Int64(charCount).mul(System.Int64(3)).add(System.Int64(2));\r\n\r\n if (byteCount.gt(System.Int64(2147483647))) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"charCount\");\r\n }\r\n\r\n return System.Int64.clip32(byteCount);\r\n },\r\n GetMaxCharCount: function (byteCount) {\r\n if (byteCount < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"byteCount\");\r\n }\r\n\r\n var charCount = byteCount;\r\n if (charCount === 0) {\r\n charCount = 1;\r\n }\r\n\r\n return charCount | 0;\r\n }\r\n }\r\n });\r\n\r\n Bridge.ns(\"System.Text.UTF7Encoding\", $asm.$);\r\n\r\n Bridge.apply($asm.$.System.Text.UTF7Encoding, {\r\n f1: function (str) {\r\n var b = System.Array.init(Bridge.Int.mul(str.length, 2), 0, System.Byte);\r\n var bi = 0;\r\n for (var i = 0; i < str.length; i = (i + 1) | 0) {\r\n var c = str.charCodeAt(i);\r\n b[System.Array.index(Bridge.identity(bi, ((bi = (bi + 1) | 0))), b)] = (c >> 8);\r\n b[System.Array.index(Bridge.identity(bi, ((bi = (bi + 1) | 0))), b)] = (c & 255);\r\n }\r\n var base64Str = System.Convert.toBase64String(b, null, null, null);\r\n return base64Str.replace(/=+$/, \"\");\r\n },\r\n f2: function (base64) {\r\n try {\r\n if (typeof window === \"undefined\") { throw new System.Exception(); };\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var arr = System.Array.init(len, 0, System.Char);\r\n\r\n if (len === 1 && binary_string.charCodeAt(0) === 0) {\r\n return System.Array.init(0, 0, System.Char);\r\n }\r\n\r\n for (var i = 0; i < len; i = (i + 1) | 0) {\r\n arr[System.Array.index(i, arr)] = binary_string.charCodeAt(i);\r\n }\r\n\r\n return arr;\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n return System.Array.init(0, 0, System.Char);\r\n }\r\n }\r\n });\r\n\r\n // @source UTF8Encoding.js\r\n\r\n Bridge.define(\"System.Text.UTF8Encoding\", {\r\n inherits: [System.Text.Encoding],\r\n fields: {\r\n encoderShouldEmitUTF8Identifier: false,\r\n throwOnInvalid: false\r\n },\r\n props: {\r\n CodePage: {\r\n get: function () {\r\n return 65001;\r\n }\r\n },\r\n EncodingName: {\r\n get: function () {\r\n return \"Unicode (UTF-8)\";\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n System.Text.UTF8Encoding.$ctor1.call(this, false);\r\n },\r\n $ctor1: function (encoderShouldEmitUTF8Identifier) {\r\n System.Text.UTF8Encoding.$ctor2.call(this, encoderShouldEmitUTF8Identifier, false);\r\n },\r\n $ctor2: function (encoderShouldEmitUTF8Identifier, throwOnInvalidBytes) {\r\n this.$initialize();\r\n System.Text.Encoding.ctor.call(this);\r\n this.encoderShouldEmitUTF8Identifier = encoderShouldEmitUTF8Identifier;\r\n this.throwOnInvalid = throwOnInvalidBytes;\r\n this.fallbackCharacter = 65533;\r\n }\r\n },\r\n methods: {\r\n Encode$3: function (s, outputBytes, outputIndex, writtenBytes) {\r\n var hasBuffer = outputBytes != null;\r\n var record = 0;\r\n\r\n var write = function (args) {\r\n var len = args.length;\r\n for (var j = 0; j < len; j = (j + 1) | 0) {\r\n var code = args[System.Array.index(j, args)];\r\n if (hasBuffer) {\r\n if (outputIndex >= outputBytes.length) {\r\n throw new System.ArgumentException.$ctor1(\"bytes\");\r\n }\r\n\r\n outputBytes[System.Array.index(Bridge.identity(outputIndex, ((outputIndex = (outputIndex + 1) | 0))), outputBytes)] = code;\r\n } else {\r\n outputBytes.push(code);\r\n }\r\n record = (record + 1) | 0;\r\n }\r\n };\r\n\r\n var fallback = Bridge.fn.bind(this, $asm.$.System.Text.UTF8Encoding.f1);\r\n\r\n if (!hasBuffer) {\r\n outputBytes = System.Array.init(0, 0, System.Byte);\r\n }\r\n\r\n for (var i = 0; i < s.length; i = (i + 1) | 0) {\r\n var charcode = s.charCodeAt(i);\r\n\r\n if ((charcode >= 55296) && (charcode <= 56319)) {\r\n var next = s.charCodeAt(((i + 1) | 0));\r\n if (!((next >= 56320) && (next <= 57343))) {\r\n charcode = fallback();\r\n }\r\n } else if ((charcode >= 56320) && (charcode <= 57343)) {\r\n charcode = fallback();\r\n }\r\n\r\n if (charcode < 128) {\r\n write(System.Array.init([charcode], System.Byte));\r\n } else if (charcode < 2048) {\r\n write(System.Array.init([(192 | (charcode >> 6)), (128 | (charcode & 63))], System.Byte));\r\n } else if (charcode < 55296 || charcode >= 57344) {\r\n write(System.Array.init([(224 | (charcode >> 12)), (128 | ((charcode >> 6) & 63)), (128 | (charcode & 63))], System.Byte));\r\n } else {\r\n i = (i + 1) | 0;\r\n var code = (65536 + (((charcode & 1023) << 10) | (s.charCodeAt(i) & 1023))) | 0;\r\n write(System.Array.init([(240 | (code >> 18)), (128 | ((code >> 12) & 63)), (128 | ((code >> 6) & 63)), (128 | (code & 63))], System.Byte));\r\n }\r\n }\r\n\r\n writtenBytes.v = record;\r\n\r\n if (hasBuffer) {\r\n return null;\r\n }\r\n\r\n return outputBytes;\r\n },\r\n Decode$2: function (bytes, index, count, chars, charIndex) {\r\n this._hasError = false;\r\n var position = index;\r\n var result = \"\";\r\n var surrogate1 = 0;\r\n var addFallback = false;\r\n var endpoint = (position + count) | 0;\r\n\r\n for (; position < endpoint; position = (position + 1) | 0) {\r\n var accumulator = 0;\r\n var extraBytes = 0;\r\n var hasError = false;\r\n var firstByte = bytes[System.Array.index(position, bytes)];\r\n\r\n if (firstByte <= 127) {\r\n accumulator = firstByte;\r\n } else if ((firstByte & 64) === 0) {\r\n hasError = true;\r\n } else if ((firstByte & 224) === 192) {\r\n accumulator = firstByte & 31;\r\n extraBytes = 1;\r\n } else if ((firstByte & 240) === 224) {\r\n accumulator = firstByte & 15;\r\n extraBytes = 2;\r\n } else if ((firstByte & 248) === 240) {\r\n accumulator = firstByte & 7;\r\n extraBytes = 3;\r\n } else if ((firstByte & 252) === 248) {\r\n accumulator = firstByte & 3;\r\n extraBytes = 4;\r\n hasError = true;\r\n } else if ((firstByte & 254) === 252) {\r\n accumulator = firstByte & 3;\r\n extraBytes = 5;\r\n hasError = true;\r\n } else {\r\n accumulator = firstByte;\r\n hasError = false;\r\n }\r\n\r\n while (extraBytes > 0) {\r\n position = (position + 1) | 0;\r\n\r\n if (position >= endpoint) {\r\n hasError = true;\r\n break;\r\n }\r\n\r\n var extraByte = bytes[System.Array.index(position, bytes)];\r\n extraBytes = (extraBytes - 1) | 0;\r\n\r\n if ((extraByte & 192) !== 128) {\r\n position = (position - 1) | 0;\r\n hasError = true;\r\n break;\r\n }\r\n\r\n accumulator = (accumulator << 6) | (extraByte & 63);\r\n }\r\n\r\n /* if ((accumulator == 0xFFFE) || (accumulator == 0xFFFF)) {\r\n hasError = true;\r\n }*/\r\n\r\n var characters = null;\r\n addFallback = false;\r\n if (!hasError) {\r\n if (surrogate1 > 0 && !((accumulator >= 56320) && (accumulator <= 57343))) {\r\n hasError = true;\r\n surrogate1 = 0;\r\n } else if ((accumulator >= 55296) && (accumulator <= 56319)) {\r\n surrogate1 = accumulator & 65535;\r\n } else if ((accumulator >= 56320) && (accumulator <= 57343)) {\r\n hasError = true;\r\n addFallback = true;\r\n surrogate1 = 0;\r\n } else {\r\n characters = System.String.fromCharCode(accumulator);\r\n surrogate1 = 0;\r\n }\r\n }\r\n\r\n if (hasError) {\r\n if (this.throwOnInvalid) {\r\n throw new System.Exception(\"Invalid character in UTF8 text\");\r\n }\r\n\r\n result = (result || \"\") + String.fromCharCode(this.fallbackCharacter);\r\n this._hasError = true;\r\n } else if (surrogate1 === 0) {\r\n result = (result || \"\") + (characters || \"\");\r\n }\r\n }\r\n\r\n if (surrogate1 > 0 || addFallback) {\r\n if (this.throwOnInvalid) {\r\n throw new System.Exception(\"Invalid character in UTF8 text\");\r\n }\r\n\r\n if (result.length > 0 && result.charCodeAt(((result.length - 1) | 0)) === this.fallbackCharacter) {\r\n result = (result || \"\") + String.fromCharCode(this.fallbackCharacter);\r\n } else {\r\n result = (result || \"\") + (((this.fallbackCharacter + this.fallbackCharacter) | 0));\r\n }\r\n\r\n this._hasError = true;\r\n }\r\n\r\n return result;\r\n },\r\n GetMaxByteCount: function (charCount) {\r\n if (charCount < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"charCount\");\r\n }\r\n\r\n\r\n var byteCount = System.Int64(charCount).add(System.Int64(1));\r\n byteCount = byteCount.mul(System.Int64(3));\r\n\r\n if (byteCount.gt(System.Int64(2147483647))) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"charCount\");\r\n }\r\n\r\n return System.Int64.clip32(byteCount);\r\n },\r\n GetMaxCharCount: function (byteCount) {\r\n if (byteCount < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"byteCount\");\r\n }\r\n\r\n var charCount = System.Int64(byteCount).add(System.Int64(1));\r\n\r\n if (charCount.gt(System.Int64(2147483647))) {\r\n throw new System.ArgumentOutOfRangeException.$ctor1(\"byteCount\");\r\n }\r\n\r\n return System.Int64.clip32(charCount);\r\n }\r\n }\r\n });\r\n\r\n Bridge.ns(\"System.Text.UTF8Encoding\", $asm.$);\r\n\r\n Bridge.apply($asm.$.System.Text.UTF8Encoding, {\r\n f1: function () {\r\n if (this.throwOnInvalid) {\r\n throw new System.Exception(\"Invalid character in UTF8 text\");\r\n }\r\n\r\n return this.fallbackCharacter;\r\n }\r\n });\r\n\r\n // @source Timer.js\r\n\r\n Bridge.define(\"System.Threading.Timer\", {\r\n inherits: [System.IDisposable],\r\n statics: {\r\n fields: {\r\n MAX_SUPPORTED_TIMEOUT: 0,\r\n EXC_LESS: null,\r\n EXC_MORE: null,\r\n EXC_DISPOSED: null\r\n },\r\n ctors: {\r\n init: function () {\r\n this.MAX_SUPPORTED_TIMEOUT = 4294967294;\r\n this.EXC_LESS = \"Number must be either non-negative and less than or equal to Int32.MaxValue or -1.\";\r\n this.EXC_MORE = \"Time-out interval must be less than 2^32-2.\";\r\n this.EXC_DISPOSED = \"The timer has been already disposed.\";\r\n }\r\n }\r\n },\r\n fields: {\r\n dueTime: System.Int64(0),\r\n period: System.Int64(0),\r\n timerCallback: null,\r\n state: null,\r\n id: null,\r\n disposed: false\r\n },\r\n alias: [\"Dispose\", \"System$IDisposable$Dispose\"],\r\n ctors: {\r\n $ctor1: function (callback, state, dueTime, period) {\r\n this.$initialize();\r\n this.TimerSetup(callback, state, System.Int64(dueTime), System.Int64(period));\r\n },\r\n $ctor3: function (callback, state, dueTime, period) {\r\n this.$initialize();\r\n var dueTm = Bridge.Int.clip64(dueTime.getTotalMilliseconds());\r\n var periodTm = Bridge.Int.clip64(period.getTotalMilliseconds());\r\n\r\n this.TimerSetup(callback, state, dueTm, periodTm);\r\n },\r\n $ctor4: function (callback, state, dueTime, period) {\r\n this.$initialize();\r\n this.TimerSetup(callback, state, System.Int64(dueTime), System.Int64(period));\r\n },\r\n $ctor2: function (callback, state, dueTime, period) {\r\n this.$initialize();\r\n this.TimerSetup(callback, state, dueTime, period);\r\n },\r\n ctor: function (callback) {\r\n this.$initialize();\r\n var dueTime = -1;\r\n var period = -1;\r\n\r\n this.TimerSetup(callback, this, System.Int64(dueTime), System.Int64(period));\r\n }\r\n },\r\n methods: {\r\n TimerSetup: function (callback, state, dueTime, period) {\r\n if (this.disposed) {\r\n throw new System.InvalidOperationException.$ctor1(System.Threading.Timer.EXC_DISPOSED);\r\n }\r\n\r\n if (Bridge.staticEquals(callback, null)) {\r\n throw new System.ArgumentNullException.$ctor1(\"TimerCallback\");\r\n }\r\n\r\n if (dueTime.lt(System.Int64(-1))) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"dueTime\", System.Threading.Timer.EXC_LESS);\r\n }\r\n if (period.lt(System.Int64(-1))) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"period\", System.Threading.Timer.EXC_LESS);\r\n }\r\n if (dueTime.gt(System.Int64(System.Threading.Timer.MAX_SUPPORTED_TIMEOUT))) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"dueTime\", System.Threading.Timer.EXC_MORE);\r\n }\r\n if (period.gt(System.Int64(System.Threading.Timer.MAX_SUPPORTED_TIMEOUT))) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"period\", System.Threading.Timer.EXC_MORE);\r\n }\r\n\r\n this.dueTime = dueTime;\r\n this.period = period;\r\n\r\n this.state = state;\r\n this.timerCallback = callback;\r\n\r\n return this.RunTimer(this.dueTime);\r\n },\r\n HandleCallback: function () {\r\n if (this.disposed) {\r\n return;\r\n }\r\n\r\n if (!Bridge.staticEquals(this.timerCallback, null)) {\r\n var myId = this.id;\r\n this.timerCallback(this.state);\r\n\r\n if (System.Nullable.eq(this.id, myId)) {\r\n this.RunTimer(this.period, false);\r\n }\r\n }\r\n },\r\n RunTimer: function (period, checkDispose) {\r\n if (checkDispose === void 0) { checkDispose = true; }\r\n if (checkDispose && this.disposed) {\r\n throw new System.InvalidOperationException.$ctor1(System.Threading.Timer.EXC_DISPOSED);\r\n }\r\n\r\n if (period.ne(System.Int64(-1)) && !this.disposed) {\r\n var p = period.toNumber();\r\n this.id = Bridge.global.setTimeout(Bridge.fn.cacheBind(this, this.HandleCallback), p);\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n Change: function (dueTime, period) {\r\n return this.ChangeTimer(System.Int64(dueTime), System.Int64(period));\r\n },\r\n Change$2: function (dueTime, period) {\r\n return this.ChangeTimer(Bridge.Int.clip64(dueTime.getTotalMilliseconds()), Bridge.Int.clip64(period.getTotalMilliseconds()));\r\n },\r\n Change$3: function (dueTime, period) {\r\n return this.ChangeTimer(System.Int64(dueTime), System.Int64(period));\r\n },\r\n Change$1: function (dueTime, period) {\r\n return this.ChangeTimer(dueTime, period);\r\n },\r\n ChangeTimer: function (dueTime, period) {\r\n this.ClearTimeout();\r\n return this.TimerSetup(this.timerCallback, this.state, dueTime, period);\r\n },\r\n ClearTimeout: function () {\r\n if (System.Nullable.hasValue(this.id)) {\r\n Bridge.global.clearTimeout(System.Nullable.getValue(this.id));\r\n this.id = null;\r\n }\r\n },\r\n Dispose: function () {\r\n this.ClearTimeout();\r\n this.disposed = true;\r\n }\r\n }\r\n });\r\n\r\n // @source TaskCanceledException.js\r\n\r\n Bridge.define(\"System.Threading.Tasks.TaskCanceledException\", {\r\n inherits: [System.OperationCanceledException],\r\n fields: {\r\n _canceledTask: null\r\n },\r\n props: {\r\n Task: {\r\n get: function () {\r\n return this._canceledTask;\r\n }\r\n }\r\n },\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.OperationCanceledException.$ctor1.call(this, \"A task was canceled.\");\r\n },\r\n $ctor1: function (message) {\r\n this.$initialize();\r\n System.OperationCanceledException.$ctor1.call(this, message);\r\n },\r\n $ctor2: function (message, innerException) {\r\n this.$initialize();\r\n System.OperationCanceledException.$ctor2.call(this, message, innerException);\r\n },\r\n $ctor3: function (task) {\r\n this.$initialize();\r\n System.OperationCanceledException.$ctor4.call(this, \"A task was canceled.\", task != null ? new System.Threading.CancellationToken() : new System.Threading.CancellationToken());\r\n this._canceledTask = task;\r\n }\r\n }\r\n });\r\n\r\n // @source TaskSchedulerException.js\r\n\r\n Bridge.define(\"System.Threading.Tasks.TaskSchedulerException\", {\r\n inherits: [System.Exception],\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n System.Exception.ctor.call(this, \"An exception was thrown by a TaskScheduler.\");\r\n },\r\n $ctor2: function (message) {\r\n this.$initialize();\r\n System.Exception.ctor.call(this, message);\r\n },\r\n $ctor1: function (innerException) {\r\n this.$initialize();\r\n System.Exception.ctor.call(this, \"An exception was thrown by a TaskScheduler.\", innerException);\r\n },\r\n $ctor3: function (message, innerException) {\r\n this.$initialize();\r\n System.Exception.ctor.call(this, message, innerException);\r\n }\r\n }\r\n });\r\n\r\n // @source Version.js\r\n\r\n Bridge.define(\"System.Version\", {\r\n inherits: function () { return [System.ICloneable,System.IComparable$1(System.Version),System.IEquatable$1(System.Version)]; },\r\n statics: {\r\n fields: {\r\n ZERO_CHAR_VALUE: 0,\r\n separatorsArray: 0\r\n },\r\n ctors: {\r\n init: function () {\r\n this.ZERO_CHAR_VALUE = 48;\r\n this.separatorsArray = 46;\r\n }\r\n },\r\n methods: {\r\n appendPositiveNumber: function (num, sb) {\r\n var index = sb.getLength();\r\n var reminder;\r\n\r\n do {\r\n reminder = num % 10;\r\n num = (Bridge.Int.div(num, 10)) | 0;\r\n sb.insert(index, String.fromCharCode(((((System.Version.ZERO_CHAR_VALUE + reminder) | 0)) & 65535)));\r\n } while (num > 0);\r\n },\r\n parse: function (input) {\r\n if (input == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"input\");\r\n }\r\n\r\n var r = { v : new System.Version.VersionResult() };\r\n r.v.init(\"input\", true);\r\n if (!System.Version.tryParseVersion(input, r)) {\r\n throw r.v.getVersionParseException();\r\n }\r\n return r.v.m_parsedVersion;\r\n },\r\n tryParse: function (input, result) {\r\n var r = { v : new System.Version.VersionResult() };\r\n r.v.init(\"input\", false);\r\n var b = System.Version.tryParseVersion(input, r);\r\n result.v = r.v.m_parsedVersion;\r\n return b;\r\n },\r\n tryParseVersion: function (version, result) {\r\n var major = { }, minor = { }, build = { }, revision = { };\r\n\r\n if (version == null) {\r\n result.v.setFailure(System.Version.ParseFailureKind.ArgumentNullException);\r\n\r\n return false;\r\n }\r\n\r\n var parsedComponents = System.String.split(version, [System.Version.separatorsArray].map(function (i) {{ return String.fromCharCode(i); }}));\r\n var parsedComponentsLength = parsedComponents.length;\r\n\r\n if ((parsedComponentsLength < 2) || (parsedComponentsLength > 4)) {\r\n result.v.setFailure(System.Version.ParseFailureKind.ArgumentException);\r\n return false;\r\n }\r\n\r\n if (!System.Version.tryParseComponent(parsedComponents[System.Array.index(0, parsedComponents)], \"version\", result, major)) {\r\n return false;\r\n }\r\n\r\n if (!System.Version.tryParseComponent(parsedComponents[System.Array.index(1, parsedComponents)], \"version\", result, minor)) {\r\n return false;\r\n }\r\n\r\n parsedComponentsLength = (parsedComponentsLength - 2) | 0;\r\n\r\n if (parsedComponentsLength > 0) {\r\n if (!System.Version.tryParseComponent(parsedComponents[System.Array.index(2, parsedComponents)], \"build\", result, build)) {\r\n return false;\r\n }\r\n\r\n parsedComponentsLength = (parsedComponentsLength - 1) | 0;\r\n\r\n if (parsedComponentsLength > 0) {\r\n if (!System.Version.tryParseComponent(parsedComponents[System.Array.index(3, parsedComponents)], \"revision\", result, revision)) {\r\n return false;\r\n } else {\r\n result.v.m_parsedVersion = new System.Version.$ctor3(major.v, minor.v, build.v, revision.v);\r\n }\r\n } else {\r\n result.v.m_parsedVersion = new System.Version.$ctor2(major.v, minor.v, build.v);\r\n }\r\n } else {\r\n result.v.m_parsedVersion = new System.Version.$ctor1(major.v, minor.v);\r\n }\r\n\r\n return true;\r\n },\r\n tryParseComponent: function (component, componentName, result, parsedComponent) {\r\n if (!System.Int32.tryParse(component, parsedComponent)) {\r\n result.v.setFailure$1(System.Version.ParseFailureKind.FormatException, component);\r\n return false;\r\n }\r\n\r\n if (parsedComponent.v < 0) {\r\n result.v.setFailure$1(System.Version.ParseFailureKind.ArgumentOutOfRangeException, componentName);\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n op_Equality: function (v1, v2) {\r\n if (Bridge.referenceEquals(v1, null)) {\r\n return Bridge.referenceEquals(v2, null);\r\n }\r\n\r\n return v1.equalsT(v2);\r\n },\r\n op_Inequality: function (v1, v2) {\r\n return !(System.Version.op_Equality(v1, v2));\r\n },\r\n op_LessThan: function (v1, v2) {\r\n if (v1 == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"v1\");\r\n }\r\n\r\n return (v1.compareTo(v2) < 0);\r\n },\r\n op_LessThanOrEqual: function (v1, v2) {\r\n if (v1 == null) {\r\n throw new System.ArgumentNullException.$ctor1(\"v1\");\r\n }\r\n\r\n return (v1.compareTo(v2) <= 0);\r\n },\r\n op_GreaterThan: function (v1, v2) {\r\n return (System.Version.op_LessThan(v2, v1));\r\n },\r\n op_GreaterThanOrEqual: function (v1, v2) {\r\n return (System.Version.op_LessThanOrEqual(v2, v1));\r\n }\r\n }\r\n },\r\n fields: {\r\n _Major: 0,\r\n _Minor: 0,\r\n _Build: 0,\r\n _Revision: 0\r\n },\r\n props: {\r\n Major: {\r\n get: function () {\r\n return this._Major;\r\n }\r\n },\r\n Minor: {\r\n get: function () {\r\n return this._Minor;\r\n }\r\n },\r\n Build: {\r\n get: function () {\r\n return this._Build;\r\n }\r\n },\r\n Revision: {\r\n get: function () {\r\n return this._Revision;\r\n }\r\n },\r\n MajorRevision: {\r\n get: function () {\r\n return Bridge.Int.sxs((this._Revision >> 16) & 65535);\r\n }\r\n },\r\n MinorRevision: {\r\n get: function () {\r\n return Bridge.Int.sxs((this._Revision & 65535) & 65535);\r\n }\r\n }\r\n },\r\n alias: [\r\n \"clone\", \"System$ICloneable$clone\",\r\n \"compareTo\", [\"System$IComparable$1$System$Version$compareTo\", \"System$IComparable$1$compareTo\"],\r\n \"equalsT\", \"System$IEquatable$1$System$Version$equalsT\"\r\n ],\r\n ctors: {\r\n init: function () {\r\n this._Build = -1;\r\n this._Revision = -1;\r\n },\r\n $ctor3: function (major, minor, build, revision) {\r\n this.$initialize();\r\n if (major < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"major\", \"Cannot be < 0\");\r\n }\r\n\r\n if (minor < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"minor\", \"Cannot be < 0\");\r\n }\r\n\r\n if (build < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"build\", \"Cannot be < 0\");\r\n }\r\n\r\n if (revision < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"revision\", \"Cannot be < 0\");\r\n }\r\n\r\n this._Major = major;\r\n this._Minor = minor;\r\n this._Build = build;\r\n this._Revision = revision;\r\n },\r\n $ctor2: function (major, minor, build) {\r\n this.$initialize();\r\n if (major < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"major\", \"Cannot be < 0\");\r\n }\r\n\r\n if (minor < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"minor\", \"Cannot be < 0\");\r\n }\r\n\r\n if (build < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"build\", \"Cannot be < 0\");\r\n }\r\n\r\n this._Major = major;\r\n this._Minor = minor;\r\n this._Build = build;\r\n },\r\n $ctor1: function (major, minor) {\r\n this.$initialize();\r\n if (major < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"major\", \"Cannot be < 0\");\r\n }\r\n\r\n if (minor < 0) {\r\n throw new System.ArgumentOutOfRangeException.$ctor4(\"minor\", \"Cannot be < 0\");\r\n }\r\n\r\n this._Major = major;\r\n this._Minor = minor;\r\n },\r\n $ctor4: function (version) {\r\n this.$initialize();\r\n var v = System.Version.parse(version);\r\n this._Major = v.Major;\r\n this._Minor = v.Minor;\r\n this._Build = v.Build;\r\n this._Revision = v.Revision;\r\n },\r\n ctor: function () {\r\n this.$initialize();\r\n this._Major = 0;\r\n this._Minor = 0;\r\n }\r\n },\r\n methods: {\r\n clone: function () {\r\n var v = new System.Version.ctor();\r\n v._Major = this._Major;\r\n v._Minor = this._Minor;\r\n v._Build = this._Build;\r\n v._Revision = this._Revision;\r\n return (v);\r\n },\r\n compareTo$1: function (version) {\r\n if (version == null) {\r\n return 1;\r\n }\r\n\r\n var v = Bridge.as(version, System.Version);\r\n if (System.Version.op_Equality(v, null)) {\r\n throw new System.ArgumentException.$ctor1(\"version should be of System.Version type\");\r\n }\r\n\r\n if (this._Major !== v._Major) {\r\n if (this._Major > v._Major) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n\r\n if (this._Minor !== v._Minor) {\r\n if (this._Minor > v._Minor) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n\r\n if (this._Build !== v._Build) {\r\n if (this._Build > v._Build) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n\r\n if (this._Revision !== v._Revision) {\r\n if (this._Revision > v._Revision) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n\r\n return 0;\r\n },\r\n compareTo: function (value) {\r\n if (System.Version.op_Equality(value, null)) {\r\n return 1;\r\n }\r\n\r\n if (this._Major !== value._Major) {\r\n if (this._Major > value._Major) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n\r\n if (this._Minor !== value._Minor) {\r\n if (this._Minor > value._Minor) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n\r\n if (this._Build !== value._Build) {\r\n if (this._Build > value._Build) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n\r\n if (this._Revision !== value._Revision) {\r\n if (this._Revision > value._Revision) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n\r\n return 0;\r\n },\r\n equals: function (obj) {\r\n return this.equalsT(Bridge.as(obj, System.Version));\r\n },\r\n equalsT: function (obj) {\r\n if (System.Version.op_Equality(obj, null)) {\r\n return false;\r\n }\r\n\r\n if ((this._Major !== obj._Major) || (this._Minor !== obj._Minor) || (this._Build !== obj._Build) || (this._Revision !== obj._Revision)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n getHashCode: function () {\r\n\r\n var accumulator = 0;\r\n\r\n accumulator = accumulator | ((this._Major & 15) << 28);\r\n accumulator = accumulator | ((this._Minor & 255) << 20);\r\n accumulator = accumulator | ((this._Build & 255) << 12);\r\n accumulator = accumulator | (this._Revision & 4095);\r\n\r\n return accumulator;\r\n },\r\n toString: function () {\r\n if (this._Build === -1) {\r\n return (this.toString$1(2));\r\n }\r\n if (this._Revision === -1) {\r\n return (this.toString$1(3));\r\n }\r\n return (this.toString$1(4));\r\n },\r\n toString$1: function (fieldCount) {\r\n var sb;\r\n switch (fieldCount) {\r\n case 0: \r\n return (\"\");\r\n case 1: \r\n return (Bridge.toString(this._Major));\r\n case 2: \r\n sb = new System.Text.StringBuilder();\r\n System.Version.appendPositiveNumber(this._Major, sb);\r\n sb.append(String.fromCharCode(46));\r\n System.Version.appendPositiveNumber(this._Minor, sb);\r\n return sb.toString();\r\n default: \r\n if (this._Build === -1) {\r\n throw new System.ArgumentException.$ctor3(\"Build should be > 0 if fieldCount > 2\", \"fieldCount\");\r\n }\r\n if (fieldCount === 3) {\r\n sb = new System.Text.StringBuilder();\r\n System.Version.appendPositiveNumber(this._Major, sb);\r\n sb.append(String.fromCharCode(46));\r\n System.Version.appendPositiveNumber(this._Minor, sb);\r\n sb.append(String.fromCharCode(46));\r\n System.Version.appendPositiveNumber(this._Build, sb);\r\n return sb.toString();\r\n }\r\n if (this._Revision === -1) {\r\n throw new System.ArgumentException.$ctor3(\"Revision should be > 0 if fieldCount > 3\", \"fieldCount\");\r\n }\r\n if (fieldCount === 4) {\r\n sb = new System.Text.StringBuilder();\r\n System.Version.appendPositiveNumber(this._Major, sb);\r\n sb.append(String.fromCharCode(46));\r\n System.Version.appendPositiveNumber(this._Minor, sb);\r\n sb.append(String.fromCharCode(46));\r\n System.Version.appendPositiveNumber(this._Build, sb);\r\n sb.append(String.fromCharCode(46));\r\n System.Version.appendPositiveNumber(this._Revision, sb);\r\n return sb.toString();\r\n }\r\n throw new System.ArgumentException.$ctor3(\"Should be < 5\", \"fieldCount\");\r\n }\r\n }\r\n }\r\n });\r\n\r\n // @source ParseFailureKind.js\r\n\r\n Bridge.define(\"System.Version.ParseFailureKind\", {\r\n $kind: \"nested enum\",\r\n statics: {\r\n fields: {\r\n ArgumentNullException: 0,\r\n ArgumentException: 1,\r\n ArgumentOutOfRangeException: 2,\r\n FormatException: 3\r\n }\r\n }\r\n });\r\n\r\n // @source VersionResult.js\r\n\r\n Bridge.define(\"System.Version.VersionResult\", {\r\n $kind: \"nested struct\",\r\n statics: {\r\n methods: {\r\n getDefaultValue: function () { return new System.Version.VersionResult(); }\r\n }\r\n },\r\n fields: {\r\n m_parsedVersion: null,\r\n m_failure: 0,\r\n m_exceptionArgument: null,\r\n m_argumentName: null,\r\n m_canThrow: false\r\n },\r\n ctors: {\r\n ctor: function () {\r\n this.$initialize();\r\n }\r\n },\r\n methods: {\r\n init: function (argumentName, canThrow) {\r\n this.m_canThrow = canThrow;\r\n this.m_argumentName = argumentName;\r\n },\r\n setFailure: function (failure) {\r\n this.setFailure$1(failure, \"\");\r\n },\r\n setFailure$1: function (failure, argument) {\r\n this.m_failure = failure;\r\n this.m_exceptionArgument = argument;\r\n if (this.m_canThrow) {\r\n throw this.getVersionParseException();\r\n }\r\n },\r\n getVersionParseException: function () {\r\n switch (this.m_failure) {\r\n case System.Version.ParseFailureKind.ArgumentNullException: \r\n return new System.ArgumentNullException.$ctor1(this.m_argumentName);\r\n case System.Version.ParseFailureKind.ArgumentException: \r\n return new System.ArgumentException.$ctor1(\"VersionString\");\r\n case System.Version.ParseFailureKind.ArgumentOutOfRangeException: \r\n return new System.ArgumentOutOfRangeException.$ctor4(this.m_exceptionArgument, \"Cannot be < 0\");\r\n case System.Version.ParseFailureKind.FormatException: \r\n try {\r\n System.Int32.parse(this.m_exceptionArgument);\r\n } catch ($e1) {\r\n $e1 = System.Exception.create($e1);\r\n var e;\r\n if (Bridge.is($e1, System.FormatException)) {\r\n e = $e1;\r\n return e;\r\n } else if (Bridge.is($e1, System.OverflowException)) {\r\n e = $e1;\r\n return e;\r\n } else {\r\n throw $e1;\r\n }\r\n }\r\n return new System.FormatException.$ctor1(\"InvalidString\");\r\n default: \r\n return new System.ArgumentException.$ctor1(\"VersionString\");\r\n }\r\n },\r\n getHashCode: function () {\r\n var h = Bridge.addHash([5139482776, this.m_parsedVersion, this.m_failure, this.m_exceptionArgument, this.m_argumentName, this.m_canThrow]);\r\n return h;\r\n },\r\n equals: function (o) {\r\n if (!Bridge.is(o, System.Version.VersionResult)) {\r\n return false;\r\n }\r\n return Bridge.equals(this.m_parsedVersion, o.m_parsedVersion) && Bridge.equals(this.m_failure, o.m_failure) && Bridge.equals(this.m_exceptionArgument, o.m_exceptionArgument) && Bridge.equals(this.m_argumentName, o.m_argumentName) && Bridge.equals(this.m_canThrow, o.m_canThrow);\r\n },\r\n $clone: function (to) {\r\n var s = to || new System.Version.VersionResult();\r\n s.m_parsedVersion = this.m_parsedVersion;\r\n s.m_failure = this.m_failure;\r\n s.m_exceptionArgument = this.m_exceptionArgument;\r\n s.m_argumentName = this.m_argumentName;\r\n s.m_canThrow = this.m_canThrow;\r\n return s;\r\n }\r\n }\r\n });\r\n\r\n // @source End.js\r\n\r\n // module export\r\n if (typeof define === \"function\" && define.amd) {\r\n // AMD\r\n define(\"bridge\", [], function () { return Bridge; });\r\n } else if (typeof module !== \"undefined\" && module.exports) {\r\n // Node\r\n module.exports = Bridge;\r\n }\r\n\r\n // @source Finally.js\r\n\r\n})(this);\r\n","/**\r\n * @version 1.0.0.0\r\n * @copyright Copyright © 2020\r\n * @compiler Bridge.NET 17.10.1\r\n */\r\nBridge.assembly(\"VPAEngine\", function ($asm, globals) {\r\n \"use strict\";\r\n\r\n Bridge.define(\"VPAEngine.ModelAnalysis\", {\r\n $kind: \"enum\",\r\n statics: {\r\n fields: {\r\n Stocks: 0,\r\n DowJones: 1\r\n }\r\n }\r\n });\r\n\r\n Bridge.define(\"VPAEngine.VpaEngine\", {\r\n methods: {\r\n Calculate: function (vpa, modelAnalysis) {\r\n var $step = 0,\r\n $jumpFromFinally, \r\n MP, \r\n $t, \r\n $asyncBody = Bridge.fn.bind(this, function () {\r\n for (;;) {\r\n $step = System.Array.min([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287], $step);\r\n switch ($step) {\r\n case 0: {\r\n\r\n }\r\n case 1: {\r\n vpa.F = 0;\r\n }\r\n case 2: {\r\n vpa.DS = vpa.DSS;\r\n vpa.DS = 0.01 * vpa.DS;\r\n vpa.DE = vpa.DEE;\r\n vpa.DE = 0.01 * vpa.DE;\r\n vpa.RB = vpa.RBB;\r\n vpa.RB = 0.01 * vpa.RB;\r\n vpa.DRB = vpa.DRBB;\r\n vpa.DRB = 0.01 * vpa.DRB / vpa.RB;\r\n vpa.H = vpa.HH;\r\n vpa.S = vpa.SS;\r\n vpa.XLTD = vpa.XLTDD;\r\n if (vpa.DRB <= 0) {\r\n $step = 3;\r\n continue;\r\n } else {\r\n $step = 4;\r\n continue;\r\n }\r\n }\r\n case 3: {\r\n $step = 7;\r\n continue;\r\n }\r\n case 4: {\r\n $step = 6;\r\n continue;\r\n }\r\n case 5: {\r\n\r\n }\r\n case 6: {\r\n vpa.AK3 = vpa.RB * (1 + vpa.DRB);\r\n $step = 8;\r\n continue;\r\n }\r\n case 7: {\r\n vpa.AK3 = vpa.RB;\r\n }\r\n case 8: {\r\n vpa.XLTD = (modelAnalysis === VPAEngine.ModelAnalysis.Stocks) ? (vpa.XLTD / vpa.S) : (modelAnalysis === VPAEngine.ModelAnalysis.DowJones) ? (vpa.XLTD / vpa.BV) : 0;\r\n vpa.RT = vpa.E1 / (vpa.BV + vpa.XLTD);\r\n vpa.XL = vpa.XLTD / (vpa.BV + vpa.XLTD);\r\n vpa.ZK = 1;\r\n if (vpa.BV <= 0) {\r\n $step = 9;\r\n continue;\r\n } else {\r\n $step = 10;\r\n continue;\r\n }\r\n }\r\n case 9: {\r\n $step = 53;\r\n continue;\r\n }\r\n case 10: {\r\n $step = 12;\r\n continue;\r\n }\r\n case 11: {\r\n\r\n }\r\n case 12: {\r\n if ((vpa.E1 - 0.1 * vpa.BV) < 0) {\r\n $step = 13;\r\n continue;\r\n } else {\r\n $step = 14;\r\n continue;\r\n }\r\n }\r\n case 13: {\r\n $step = 53;\r\n continue;\r\n }\r\n case 14: {\r\n $step = 16;\r\n continue;\r\n }\r\n case 15: {\r\n\r\n }\r\n case 16: {\r\n if ((vpa.DE - vpa.AK3) < 0) {\r\n $step = 17;\r\n continue;\r\n } else {\r\n $step = 18;\r\n continue;\r\n }\r\n }\r\n case 17: {\r\n $step = 53;\r\n continue;\r\n }\r\n case 18: {\r\n $step = 20;\r\n continue;\r\n }\r\n case 19: {\r\n\r\n }\r\n case 20: {\r\n vpa.AK1 = -10 * (vpa.E1 / vpa.BV - 0.2);\r\n if ((vpa.E1 / vpa.BV - 0.2) <= 0) {\r\n $step = 21;\r\n continue;\r\n } else {\r\n $step = 22;\r\n continue;\r\n }\r\n }\r\n case 21: {\r\n $step = 25;\r\n continue;\r\n }\r\n case 22: {\r\n $step = 24;\r\n continue;\r\n }\r\n case 23: {\r\n\r\n }\r\n case 24: {\r\n vpa.AK1 = 0;\r\n }\r\n case 25: {\r\n vpa.AK2 = -1.5 * (vpa.DE / vpa.AK3 - 1.67);\r\n if ((vpa.DE / vpa.AK3 - 1.67) <= 0) {\r\n $step = 26;\r\n continue;\r\n } else {\r\n $step = 27;\r\n continue;\r\n }\r\n }\r\n case 26: {\r\n $step = 30;\r\n continue;\r\n }\r\n case 27: {\r\n $step = 29;\r\n continue;\r\n }\r\n case 28: {\r\n\r\n }\r\n case 29: {\r\n vpa.AK2 = 0;\r\n }\r\n case 30: {\r\n vpa.AK = 0.5 * (vpa.AK1 + vpa.AK2);\r\n vpa.XLH = vpa.XLTD / (vpa.BV + vpa.AK * vpa.XLTD);\r\n vpa.ZK = (1 + vpa.XLH) / (1 + vpa.XL);\r\n if ((vpa.ZK - 2) <= 0) {\r\n $step = 31;\r\n continue;\r\n } else {\r\n $step = 32;\r\n continue;\r\n }\r\n }\r\n case 31: {\r\n $step = 35;\r\n continue;\r\n }\r\n case 32: {\r\n $step = 34;\r\n continue;\r\n }\r\n case 33: {\r\n\r\n }\r\n case 34: {\r\n vpa.ZK = 2;\r\n }\r\n case 35: {\r\n if ((1 + vpa.DE - vpa.ZK) <= 0) {\r\n $step = 36;\r\n continue;\r\n } else {\r\n $step = 37;\r\n continue;\r\n }\r\n }\r\n case 36: {\r\n $step = 53;\r\n continue;\r\n }\r\n case 37: {\r\n $step = 39;\r\n continue;\r\n }\r\n case 38: {\r\n\r\n }\r\n case 39: {\r\n if ((0.5 - vpa.AK) <= 0) {\r\n $step = 40;\r\n continue;\r\n } else {\r\n $step = 41;\r\n continue;\r\n }\r\n }\r\n case 40: {\r\n $step = 53;\r\n continue;\r\n }\r\n case 41: {\r\n $step = 43;\r\n continue;\r\n }\r\n case 42: {\r\n\r\n }\r\n case 43: {\r\n if ((0.4 - vpa.AK2) <= 0) {\r\n $step = 44;\r\n continue;\r\n } else {\r\n $step = 45;\r\n continue;\r\n }\r\n }\r\n case 44: {\r\n $step = 53;\r\n continue;\r\n }\r\n case 45: {\r\n $step = 47;\r\n continue;\r\n }\r\n case 46: {\r\n\r\n }\r\n case 47: {\r\n if (vpa.AK <= 0) {\r\n $step = 48;\r\n continue;\r\n } else {\r\n $step = 49;\r\n continue;\r\n }\r\n }\r\n case 48: {\r\n $step = 51;\r\n continue;\r\n }\r\n case 49: {\r\n $step = 52;\r\n continue;\r\n }\r\n case 50: {\r\n\r\n }\r\n case 51: {\r\n vpa.H = vpa.H + 1;\r\n }\r\n case 52: {\r\n vpa.ZK = 1;\r\n $step = 54;\r\n continue;\r\n }\r\n case 53: {\r\n vpa.H = vpa.H - 1;\r\n }\r\n case 54: {\r\n if (vpa.H <= 0) {\r\n $step = 55;\r\n continue;\r\n } else {\r\n $step = 56;\r\n continue;\r\n }\r\n }\r\n case 55: {\r\n $step = 58;\r\n continue;\r\n }\r\n case 56: {\r\n $step = 59;\r\n continue;\r\n }\r\n case 57: {\r\n\r\n }\r\n case 58: {\r\n vpa.EQ = vpa.E1;\r\n $step = 64;\r\n continue;\r\n }\r\n case 59: {\r\n if (vpa.DE <= 0) {\r\n $step = 60;\r\n continue;\r\n } else {\r\n $step = 61;\r\n continue;\r\n }\r\n }\r\n case 60: {\r\n $step = 58;\r\n continue;\r\n }\r\n case 61: {\r\n $step = 63;\r\n continue;\r\n }\r\n case 62: {\r\n\r\n }\r\n case 63: {\r\n vpa.EQ = vpa.E1 * Math.pow((1 + vpa.DE), vpa.H);\r\n }\r\n case 64: {\r\n if (vpa.DRB <= 0) {\r\n $step = 65;\r\n continue;\r\n } else {\r\n $step = 66;\r\n continue;\r\n }\r\n }\r\n case 65: {\r\n $step = 69;\r\n continue;\r\n }\r\n case 66: {\r\n $step = 68;\r\n continue;\r\n }\r\n case 67: {\r\n\r\n }\r\n case 68: {\r\n vpa.V1 = (vpa.EQ * (1 + vpa.DE * (1 + vpa.XL)) / vpa.AK3) * vpa.ZK;\r\n $step = 70;\r\n continue;\r\n }\r\n case 69: {\r\n vpa.V1 = ((vpa.EQ * (1 + vpa.DE * (1 + vpa.XL) - vpa.DRB)) / vpa.AK3) * vpa.ZK;\r\n }\r\n case 70: {\r\n vpa.V2 = vpa.D / vpa.AK3;\r\n vpa.V4 = vpa.BV + vpa.XLTD;\r\n vpa.V5 = vpa.BV * (1 + vpa.DE);\r\n vpa.XK = vpa.RT / vpa.AK3;\r\n if (vpa.XK <= 0) {\r\n $step = 71;\r\n continue;\r\n } else {\r\n $step = 72;\r\n continue;\r\n }\r\n }\r\n case 71: {\r\n $step = 74;\r\n continue;\r\n }\r\n case 72: {\r\n $step = 78;\r\n continue;\r\n }\r\n case 73: {\r\n\r\n }\r\n case 74: {\r\n if ((vpa.V2 - vpa.V5) <= 0) {\r\n $step = 75;\r\n continue;\r\n } else {\r\n $step = 76;\r\n continue;\r\n }\r\n }\r\n case 75: {\r\n $step = 270;\r\n continue;\r\n }\r\n case 76: {\r\n $step = 268;\r\n continue;\r\n }\r\n case 77: {\r\n\r\n }\r\n case 78: {\r\n if ((vpa.DE - vpa.AK3) < 0) {\r\n $step = 79;\r\n continue;\r\n } else {\r\n $step = 80;\r\n continue;\r\n }\r\n }\r\n case 79: {\r\n $step = 86;\r\n continue;\r\n }\r\n case 80: {\r\n $step = 82;\r\n continue;\r\n }\r\n case 81: {\r\n\r\n }\r\n case 82: {\r\n if ((vpa.V1 - vpa.V4) < 0) {\r\n $step = 83;\r\n continue;\r\n } else {\r\n $step = 84;\r\n continue;\r\n }\r\n }\r\n case 83: {\r\n $step = 242;\r\n continue;\r\n }\r\n case 84: {\r\n $step = 267;\r\n continue;\r\n }\r\n case 85: {\r\n\r\n }\r\n case 86: {\r\n if (vpa.DE <= 0) {\r\n $step = 87;\r\n continue;\r\n } else {\r\n $step = 88;\r\n continue;\r\n }\r\n }\r\n case 87: {\r\n $step = 157;\r\n continue;\r\n }\r\n case 88: {\r\n $step = 90;\r\n continue;\r\n }\r\n case 89: {\r\n\r\n }\r\n case 90: {\r\n if (vpa.DS > (vpa.AK3 + vpa.DE)) {\r\n vpa.XINC = (vpa.DS + vpa.DE) / (vpa.DS + vpa.AK3);\r\n } else {\r\n vpa.XINC = vpa.DE / vpa.AK3;\r\n }\r\n if (vpa.D <= 0) {\r\n $step = 91;\r\n continue;\r\n } else {\r\n $step = 92;\r\n continue;\r\n }\r\n }\r\n case 91: {\r\n $step = 143;\r\n continue;\r\n }\r\n case 92: {\r\n $step = 94;\r\n continue;\r\n }\r\n case 93: {\r\n\r\n }\r\n case 94: {\r\n if ((vpa.V1 - vpa.V4) < 0) {\r\n $step = 95;\r\n continue;\r\n } \r\n $step = 96;\r\n continue;\r\n }\r\n case 95: {\r\n $step = 126;\r\n continue;\r\n }\r\n case 96: {\r\n if ((vpa.V1 - vpa.V4) === 0) {\r\n $step = 97;\r\n continue;\r\n } else {\r\n $step = 98;\r\n continue;\r\n }\r\n }\r\n case 97: {\r\n $step = 122;\r\n continue;\r\n }\r\n case 98: {\r\n $step = 100;\r\n continue;\r\n }\r\n case 99: {\r\n\r\n }\r\n case 100: {\r\n if ((vpa.V4 - vpa.V2) <= 0) {\r\n $step = 101;\r\n continue;\r\n } else {\r\n $step = 102;\r\n continue;\r\n }\r\n }\r\n case 101: {\r\n $step = 108;\r\n continue;\r\n }\r\n case 102: {\r\n $step = 104;\r\n continue;\r\n }\r\n case 103: {\r\n\r\n }\r\n case 104: {\r\n vpa.VU = vpa.V1;\r\n vpa.VM = ((vpa.V1 * vpa.V2 / vpa.V4) + vpa.V2 + vpa.V1) / 3;\r\n vpa.VL = vpa.V2;\r\n if ((vpa.DS - 1.5 * vpa.AK3) > 0) {\r\n $step = 105;\r\n continue;\r\n } else {\r\n $step = 106;\r\n continue;\r\n }\r\n }\r\n case 105: {\r\n $step = 142;\r\n continue;\r\n }\r\n case 106: {\r\n $step = 109;\r\n continue;\r\n }\r\n case 107: {\r\n\r\n }\r\n case 108: {\r\n vpa.VU = vpa.V1;\r\n vpa.VM = (vpa.V1 + vpa.V2) / 2;\r\n vpa.VL = vpa.V2;\r\n }\r\n case 109: {\r\n if ((vpa.DE - vpa.DRB) < 0) {\r\n $step = 110;\r\n continue;\r\n } else {\r\n $step = 111;\r\n continue;\r\n }\r\n }\r\n case 110: {\r\n $step = 113;\r\n continue;\r\n }\r\n case 111: {\r\n $step = 138;\r\n continue;\r\n }\r\n case 112: {\r\n\r\n }\r\n case 113: {\r\n if ((vpa.D / vpa.E1 - 0.475) < 0) {\r\n $step = 114;\r\n continue;\r\n } else {\r\n $step = 115;\r\n continue;\r\n }\r\n }\r\n case 114: {\r\n $step = 117;\r\n continue;\r\n }\r\n case 115: {\r\n $step = 137;\r\n continue;\r\n }\r\n case 116: {\r\n\r\n }\r\n case 117: {\r\n if ((vpa.XINC - vpa.D / vpa.E1) < 0) {\r\n $step = 118;\r\n continue;\r\n } else {\r\n $step = 119;\r\n continue;\r\n }\r\n }\r\n case 118: {\r\n $step = 121;\r\n continue;\r\n }\r\n case 119: {\r\n $step = 137;\r\n continue;\r\n }\r\n case 120: {\r\n\r\n }\r\n case 121: {\r\n vpa.V = vpa.VL + (vpa.VM - vpa.VL) * (vpa.XINC - 0.52 * vpa.D / vpa.E1 + 0.25);\r\n $step = 275;\r\n continue;\r\n }\r\n case 122: {\r\n if ((vpa.V1 - vpa.V2) <= 0) {\r\n $step = 123;\r\n continue;\r\n } else {\r\n $step = 124;\r\n continue;\r\n }\r\n }\r\n case 123: {\r\n $step = 268;\r\n continue;\r\n }\r\n case 124: {\r\n $step = 108;\r\n continue;\r\n }\r\n case 125: {\r\n\r\n }\r\n case 126: {\r\n if ((vpa.V1 - vpa.V2) <= 0) {\r\n $step = 127;\r\n continue;\r\n } else {\r\n $step = 128;\r\n continue;\r\n }\r\n }\r\n case 127: {\r\n $step = 268;\r\n continue;\r\n }\r\n case 128: {\r\n $step = 130;\r\n continue;\r\n }\r\n case 129: {\r\n\r\n }\r\n case 130: {\r\n vpa.VU = vpa.V4;\r\n vpa.VM = vpa.V1;\r\n vpa.VL = vpa.V2;\r\n vpa.XINC = vpa.XINC * vpa.D / vpa.E1;\r\n if ((vpa.DS - 1.5 * vpa.AK3) < 0) {\r\n $step = 131;\r\n continue;\r\n } \r\n $step = 132;\r\n continue;\r\n }\r\n case 131: {\r\n $step = 137;\r\n continue;\r\n }\r\n case 132: {\r\n if ((vpa.DS - 1.5 * vpa.AK3) === 0) {\r\n $step = 133;\r\n continue;\r\n } else {\r\n $step = 134;\r\n continue;\r\n }\r\n }\r\n case 133: {\r\n $step = 138;\r\n continue;\r\n }\r\n case 134: {\r\n $step = 136;\r\n continue;\r\n }\r\n case 135: {\r\n\r\n }\r\n case 136: {\r\n vpa.XINC = (vpa.DS + vpa.DE) / (vpa.DS + vpa.AK3);\r\n $step = 142;\r\n continue;\r\n }\r\n case 137: {\r\n vpa.V = vpa.VL + vpa.XINC * (vpa.VM - vpa.VL);\r\n $step = 275;\r\n continue;\r\n }\r\n case 138: {\r\n if ((vpa.DS - 1.5 * vpa.AK3) > 0) {\r\n $step = 139;\r\n continue;\r\n } else {\r\n $step = 140;\r\n continue;\r\n }\r\n }\r\n case 139: {\r\n $step = 142;\r\n continue;\r\n }\r\n case 140: {\r\n vpa.V = vpa.VM;\r\n $step = 141;\r\n continue;\r\n }\r\n case 141: {\r\n $step = 275;\r\n continue;\r\n }\r\n case 142: {\r\n MP = vpa.BV / vpa.V4;\r\n if (vpa.XLTD <= 0) {\r\n MP = 1;\r\n }\r\n vpa.V = vpa.VM + vpa.XINC * MP * (vpa.VU - vpa.VM);\r\n $step = 275;\r\n continue;\r\n }\r\n case 143: {\r\n if ((vpa.V1 - vpa.V4) <= 0) {\r\n $step = 144;\r\n continue;\r\n } else {\r\n $step = 145;\r\n continue;\r\n }\r\n }\r\n case 144: {\r\n $step = 153;\r\n continue;\r\n }\r\n case 145: {\r\n $step = 147;\r\n continue;\r\n }\r\n case 146: {\r\n\r\n }\r\n case 147: {\r\n vpa.VU = vpa.V1;\r\n vpa.VM = (vpa.V1 + vpa.V4 + vpa.V5) / 3;\r\n vpa.VL = (vpa.V4 + vpa.V5) / 2;\r\n }\r\n case 148: {\r\n if ((vpa.DS - 1.5 * vpa.AK3) <= 0) {\r\n $step = 149;\r\n continue;\r\n } else {\r\n $step = 150;\r\n continue;\r\n }\r\n }\r\n case 149: {\r\n $step = 152;\r\n continue;\r\n }\r\n case 150: {\r\n $step = 136;\r\n continue;\r\n }\r\n case 151: {\r\n\r\n }\r\n case 152: {\r\n vpa.XINC = vpa.XINC * vpa.VL / vpa.VM;\r\n $step = 137;\r\n continue;\r\n }\r\n case 153: {\r\n vpa.VU = vpa.V4;\r\n vpa.VM = (vpa.V4 + vpa.V1 + vpa.V5) / 3;\r\n vpa.VL = (vpa.V1 + vpa.V5) / 2;\r\n if ((vpa.DE - vpa.DRB) <= 0) {\r\n $step = 154;\r\n continue;\r\n } else {\r\n $step = 155;\r\n continue;\r\n }\r\n }\r\n case 154: {\r\n $step = 152;\r\n continue;\r\n }\r\n case 155: {\r\n $step = 148;\r\n continue;\r\n }\r\n case 156: {\r\n\r\n }\r\n case 157: {\r\n if (vpa.D <= 0) {\r\n $step = 158;\r\n continue;\r\n } else {\r\n $step = 159;\r\n continue;\r\n }\r\n }\r\n case 158: {\r\n $step = 189;\r\n continue;\r\n }\r\n case 159: {\r\n $step = 161;\r\n continue;\r\n }\r\n case 160: {\r\n\r\n }\r\n case 161: {\r\n if ((vpa.DS + vpa.DE) <= 0) {\r\n $step = 162;\r\n continue;\r\n } else {\r\n $step = 163;\r\n continue;\r\n }\r\n }\r\n case 162: {\r\n $step = 210;\r\n continue;\r\n }\r\n case 163: {\r\n $step = 165;\r\n continue;\r\n }\r\n case 164: {\r\n\r\n }\r\n case 165: {\r\n vpa.XINC = (vpa.DS / (vpa.DS + vpa.AK3)) * (vpa.DS + vpa.DE) / (vpa.DS - vpa.DE);\r\n if (vpa.DS < 2 * vpa.AK3) {\r\n vpa.XINC = vpa.XINC * 0.5 * vpa.DS / vpa.AK3;\r\n }\r\n if ((vpa.V1 - vpa.V4) < 0) {\r\n $step = 166;\r\n continue;\r\n } else {\r\n $step = 167;\r\n continue;\r\n }\r\n }\r\n case 166: {\r\n $step = 180;\r\n continue;\r\n }\r\n case 167: {\r\n $step = 169;\r\n continue;\r\n }\r\n case 168: {\r\n\r\n }\r\n case 169: {\r\n if ((vpa.V4 - vpa.V2) <= 0) {\r\n $step = 170;\r\n continue;\r\n } else {\r\n $step = 171;\r\n continue;\r\n }\r\n }\r\n case 170: {\r\n $step = 173;\r\n continue;\r\n }\r\n case 171: {\r\n $step = 184;\r\n continue;\r\n }\r\n case 172: {\r\n\r\n }\r\n case 173: {\r\n vpa.VU = vpa.V1;\r\n vpa.VM = (vpa.V1 + vpa.V2) / 2;\r\n vpa.VL = vpa.V2;\r\n $step = 185;\r\n continue;\r\n }\r\n case 174: {\r\n vpa.VU = vpa.V4;\r\n vpa.VM = vpa.V1;\r\n vpa.VL = vpa.V2;\r\n }\r\n case 175: {\r\n if ((vpa.DS - 1.5 * vpa.AK3) <= 0) {\r\n $step = 176;\r\n continue;\r\n } else {\r\n $step = 177;\r\n continue;\r\n }\r\n }\r\n case 176: {\r\n $step = 137;\r\n continue;\r\n }\r\n case 177: {\r\n $step = 179;\r\n continue;\r\n }\r\n case 178: {\r\n\r\n }\r\n case 179: {\r\n vpa.XINC = (vpa.V1 / vpa.V4) * vpa.XINC;\r\n $step = 142;\r\n continue;\r\n }\r\n case 180: {\r\n if ((vpa.V1 - vpa.V2) <= 0) {\r\n $step = 181;\r\n continue;\r\n } else {\r\n $step = 182;\r\n continue;\r\n }\r\n }\r\n case 181: {\r\n $step = 268;\r\n continue;\r\n }\r\n case 182: {\r\n $step = 174;\r\n continue;\r\n }\r\n case 183: {\r\n\r\n }\r\n case 184: {\r\n vpa.VU = vpa.V1;\r\n vpa.VM = ((vpa.V1 * vpa.V2 / vpa.V4) + vpa.V2 + vpa.V1) / 3;\r\n vpa.VL = vpa.V2;\r\n }\r\n case 185: {\r\n if ((vpa.DS - 1.5 * vpa.AK3) <= 0) {\r\n $step = 186;\r\n continue;\r\n } else {\r\n $step = 187;\r\n continue;\r\n }\r\n }\r\n case 186: {\r\n $step = 137;\r\n continue;\r\n }\r\n case 187: {\r\n $step = 142;\r\n continue;\r\n }\r\n case 188: {\r\n\r\n }\r\n case 189: {\r\n if (vpa.DS <= 0) {\r\n $step = 190;\r\n continue;\r\n } else {\r\n $step = 191;\r\n continue;\r\n }\r\n }\r\n case 190: {\r\n $step = 193;\r\n continue;\r\n }\r\n case 191: {\r\n $step = 198;\r\n continue;\r\n }\r\n case 192: {\r\n\r\n }\r\n case 193: {\r\n if ((vpa.V1 - vpa.V4) <= 0) {\r\n $step = 194;\r\n continue;\r\n } else {\r\n $step = 195;\r\n continue;\r\n }\r\n }\r\n case 194: {\r\n $step = 197;\r\n continue;\r\n }\r\n case 195: {\r\n $step = 269;\r\n continue;\r\n }\r\n case 196: {\r\n\r\n }\r\n case 197: {\r\n vpa.V = (vpa.V1 + vpa.V5) / 2;\r\n $step = 275;\r\n continue;\r\n }\r\n case 198: {\r\n if ((vpa.V1 - vpa.V4) <= 0) {\r\n $step = 199;\r\n continue;\r\n } else {\r\n $step = 200;\r\n continue;\r\n }\r\n }\r\n case 199: {\r\n $step = 206;\r\n continue;\r\n }\r\n case 200: {\r\n $step = 202;\r\n continue;\r\n }\r\n case 201: {\r\n\r\n }\r\n case 202: {\r\n vpa.VU = vpa.V1;\r\n vpa.VM = (vpa.V1 + vpa.V4 + vpa.V5) / 3;\r\n vpa.VL = (vpa.V4 + vpa.V5) / 2;\r\n vpa.XINC = (vpa.DS / (vpa.DS + vpa.AK3)) * (vpa.DS + vpa.DE) / (vpa.DS - vpa.DE);\r\n if (vpa.DS < 2 * vpa.AK3) {\r\n vpa.XINC = vpa.XINC * 0.5 * vpa.DS / vpa.AK3;\r\n }\r\n if ((vpa.DS + vpa.DE) <= 0) {\r\n $step = 203;\r\n continue;\r\n } else {\r\n $step = 204;\r\n continue;\r\n }\r\n }\r\n case 203: {\r\n $step = 235;\r\n continue;\r\n }\r\n case 204: {\r\n $step = 185;\r\n continue;\r\n }\r\n case 205: {\r\n\r\n }\r\n case 206: {\r\n vpa.VU = vpa.V4;\r\n vpa.VM = (vpa.V4 + vpa.V1 + vpa.V5) / 3;\r\n vpa.VL = (vpa.V1 + vpa.V5) / 2;\r\n vpa.XINC = (vpa.DS / (vpa.DS + vpa.AK3)) * (vpa.DS + vpa.DE) / (vpa.DS - vpa.DE);\r\n if (vpa.DS < 2 * vpa.AK3) {\r\n vpa.XINC = vpa.XINC * 0.5 * vpa.DS / vpa.AK3;\r\n }\r\n if ((vpa.DS + vpa.DE) <= 0) {\r\n $step = 207;\r\n continue;\r\n } else {\r\n $step = 208;\r\n continue;\r\n }\r\n }\r\n case 207: {\r\n $step = 235;\r\n continue;\r\n }\r\n case 208: {\r\n $step = 175;\r\n continue;\r\n }\r\n case 209: {\r\n\r\n }\r\n case 210: {\r\n if ((vpa.DS - 1.5 * vpa.AK3) <= 0) {\r\n $step = 211;\r\n continue;\r\n } else {\r\n $step = 212;\r\n continue;\r\n }\r\n }\r\n case 211: {\r\n $step = 227;\r\n continue;\r\n }\r\n case 212: {\r\n $step = 214;\r\n continue;\r\n }\r\n case 213: {\r\n\r\n }\r\n case 214: {\r\n if ((vpa.V1 - vpa.V4) < 0) {\r\n $step = 215;\r\n continue;\r\n } else {\r\n $step = 216;\r\n continue;\r\n }\r\n }\r\n case 215: {\r\n $step = 222;\r\n continue;\r\n }\r\n case 216: {\r\n $step = 218;\r\n continue;\r\n }\r\n case 217: {\r\n\r\n }\r\n case 218: {\r\n if ((vpa.V1 - vpa.V2) < 0) {\r\n $step = 219;\r\n continue;\r\n } else {\r\n $step = 220;\r\n continue;\r\n }\r\n }\r\n case 219: {\r\n $step = 268;\r\n continue;\r\n }\r\n case 220: {\r\n $step = 267;\r\n continue;\r\n }\r\n case 221: {\r\n\r\n }\r\n case 222: {\r\n if ((vpa.V1 - vpa.V2) <= 0) {\r\n $step = 223;\r\n continue;\r\n } else {\r\n $step = 224;\r\n continue;\r\n }\r\n }\r\n case 223: {\r\n $step = 226;\r\n continue;\r\n }\r\n case 224: {\r\n $step = 241;\r\n continue;\r\n }\r\n case 225: {\r\n\r\n }\r\n case 226: {\r\n vpa.V = vpa.V2 + (vpa.V1 / vpa.V4) * (vpa.V4 - vpa.V2);\r\n $step = 275;\r\n continue;\r\n }\r\n case 227: {\r\n if (vpa.DS <= 0) {\r\n $step = 228;\r\n continue;\r\n } else {\r\n $step = 229;\r\n continue;\r\n }\r\n }\r\n case 228: {\r\n $step = 268;\r\n continue;\r\n }\r\n case 229: {\r\n $step = 231;\r\n continue;\r\n }\r\n case 230: {\r\n\r\n }\r\n case 231: {\r\n if ((vpa.V1 - vpa.V2) <= 0) {\r\n $step = 232;\r\n continue;\r\n } else {\r\n $step = 233;\r\n continue;\r\n }\r\n }\r\n case 232: {\r\n $step = 268;\r\n continue;\r\n }\r\n case 233: {\r\n $step = 266;\r\n continue;\r\n }\r\n case 234: {\r\n\r\n }\r\n case 235: {\r\n if ((vpa.DS - 1.5 * vpa.AK3) <= 0) {\r\n $step = 236;\r\n continue;\r\n } else {\r\n $step = 237;\r\n continue;\r\n }\r\n }\r\n case 236: {\r\n $step = 239;\r\n continue;\r\n }\r\n case 237: {\r\n $step = 240;\r\n continue;\r\n }\r\n case 238: {\r\n\r\n }\r\n case 239: {\r\n vpa.V = vpa.VL;\r\n $step = 275;\r\n continue;\r\n }\r\n case 240: {\r\n vpa.V = vpa.VM;\r\n $step = 275;\r\n continue;\r\n }\r\n case 241: {\r\n vpa.V = vpa.V1 + (vpa.V1 / vpa.V4) * (vpa.V4 - vpa.V1) / 2;\r\n $step = 275;\r\n continue;\r\n }\r\n case 242: {\r\n $step = 243;\r\n continue;\r\n }\r\n case 243: {\r\n if (vpa.D <= 0) {\r\n $step = 244;\r\n continue;\r\n } else {\r\n $step = 245;\r\n continue;\r\n }\r\n }\r\n case 244: {\r\n $step = 261;\r\n continue;\r\n }\r\n case 245: {\r\n $step = 251;\r\n continue;\r\n }\r\n case 246: {\r\n\r\n }\r\n case 247: {\r\n if ((vpa.DS - 1.5 * vpa.AK3) <= 0) {\r\n $step = 248;\r\n continue;\r\n } else {\r\n $step = 249;\r\n continue;\r\n }\r\n }\r\n case 248: {\r\n $step = 255;\r\n continue;\r\n }\r\n case 249: {\r\n $step = 256;\r\n continue;\r\n }\r\n case 250: {\r\n\r\n }\r\n case 251: {\r\n if ((vpa.V1 - vpa.V2) < 0) {\r\n $step = 252;\r\n continue;\r\n } else {\r\n $step = 253;\r\n continue;\r\n }\r\n }\r\n case 252: {\r\n $step = 247;\r\n continue;\r\n }\r\n case 253: {\r\n $step = 267;\r\n continue;\r\n }\r\n case 254: {\r\n\r\n }\r\n case 255: {\r\n vpa.VU = vpa.V4;\r\n vpa.VM = vpa.V2;\r\n vpa.XINC = vpa.DE / (vpa.DE + vpa.AK3);\r\n $step = 142;\r\n continue;\r\n }\r\n case 256: {\r\n vpa.XINC = vpa.DS / (vpa.DS + vpa.AK3);\r\n if ((vpa.DS - vpa.DE) < 0) {\r\n $step = 257;\r\n continue;\r\n } else {\r\n $step = 258;\r\n continue;\r\n }\r\n }\r\n case 257: {\r\n $step = 255;\r\n continue;\r\n }\r\n case 258: {\r\n $step = 260;\r\n continue;\r\n }\r\n case 259: {\r\n\r\n }\r\n case 260: {\r\n vpa.VM = vpa.V2;\r\n vpa.VU = vpa.V4;\r\n $step = 142;\r\n continue;\r\n }\r\n case 261: {\r\n if ((vpa.DS - 1.5 * vpa.AK3) <= 0) {\r\n $step = 262;\r\n continue;\r\n } else {\r\n $step = 263;\r\n continue;\r\n }\r\n }\r\n case 262: {\r\n $step = 267;\r\n continue;\r\n }\r\n case 263: {\r\n $step = 265;\r\n continue;\r\n }\r\n case 264: {\r\n\r\n }\r\n case 265: {\r\n vpa.XINC = vpa.DE / (vpa.DE + vpa.AK3);\r\n vpa.VM = (vpa.V4 + vpa.V1) / 2;\r\n vpa.VU = vpa.V4;\r\n $step = 142;\r\n continue;\r\n }\r\n case 266: {\r\n vpa.XINC = vpa.DS / (vpa.DS + vpa.DE);\r\n vpa.V = vpa.V2 + vpa.XINC * (vpa.V1 - vpa.V2) / 2;\r\n $step = 275;\r\n continue;\r\n }\r\n case 267: {\r\n vpa.V = vpa.V1;\r\n $step = 275;\r\n continue;\r\n }\r\n case 268: {\r\n vpa.V = vpa.V2;\r\n $step = 275;\r\n continue;\r\n }\r\n case 269: {\r\n vpa.V = (vpa.V4 + vpa.V5) / 2;\r\n $step = 275;\r\n continue;\r\n }\r\n case 270: {\r\n if ((vpa.DS - 1.5 * vpa.AK3) > 0) {\r\n vpa.V = vpa.V5;\r\n } else {\r\n if (0.6 * vpa.V5 < vpa.D) {\r\n vpa.V = vpa.D;\r\n } else {\r\n vpa.V = 0.6 * vpa.V5;\r\n }\r\n }\r\n if (vpa.V < 0) {\r\n $step = 271;\r\n continue;\r\n } else {\r\n $step = 272;\r\n continue;\r\n }\r\n }\r\n case 271: {\r\n $step = 274;\r\n continue;\r\n }\r\n case 272: {\r\n $step = 275;\r\n continue;\r\n }\r\n case 273: {\r\n\r\n }\r\n case 274: {\r\n vpa.V = 0.0;\r\n }\r\n case 275: {\r\n if (vpa.E1 <= 0) {\r\n $step = 276;\r\n continue;\r\n } else {\r\n $step = 277;\r\n continue;\r\n }\r\n }\r\n case 276: {\r\n $step = 280;\r\n continue;\r\n }\r\n case 277: {\r\n $step = 279;\r\n continue;\r\n }\r\n case 278: {\r\n\r\n }\r\n case 279: {\r\n vpa.X1 = vpa.V / vpa.E1;\r\n $step = 281;\r\n continue;\r\n }\r\n case 280: {\r\n vpa.X1 = 0;\r\n }\r\n case 281: {\r\n if (vpa.V < vpa.BV) {\r\n vpa.V = vpa.V + (vpa.V / vpa.BV) * (vpa.BV - vpa.V);\r\n }\r\n if (vpa.XINC >= 0.6 && vpa.V < vpa.XINC * vpa.BV) {\r\n vpa.V = vpa.XINC * vpa.BV;\r\n } else {\r\n if (vpa.V < 0.6 * vpa.BV) {\r\n vpa.V = 0.6 * vpa.BV;\r\n }\r\n }\r\n if (vpa.E1 <= 0) {\r\n vpa.X1 = 0;\r\n } else {\r\n vpa.X1 = vpa.V / vpa.E1;\r\n }\r\n vpa.X2 = vpa.V / vpa.CP;\r\n if (vpa.E0 <= 0) {\r\n $step = 282;\r\n continue;\r\n } else {\r\n $step = 283;\r\n continue;\r\n }\r\n }\r\n case 282: {\r\n $step = 286;\r\n continue;\r\n }\r\n case 283: {\r\n $step = 285;\r\n continue;\r\n }\r\n case 284: {\r\n\r\n }\r\n case 285: {\r\n vpa.X3 = vpa.CP / vpa.E0;\r\n $step = 287;\r\n continue;\r\n }\r\n case 286: {\r\n vpa.X3 = 0;\r\n }\r\n case 287: {\r\n vpa.X4 = (vpa.D / vpa.CP) * 100;\r\n\r\n if (vpa.X3 <= 0) {\r\n vpa.RRF = 0;\r\n } else {\r\n vpa.RRF = vpa.X1 / vpa.X3;\r\n }\r\n\r\n if (vpa.RRF < 0) {\r\n vpa.RRF = 0;\r\n }\r\n\r\n return ($t = new VPAEngine.VpaResultsVM(), $t.CP = vpa.CP, $t.E1 = vpa.E1, $t.STK = vpa.STK, $t.V = vpa.V, $t.X1 = vpa.X1, $t.X2 = vpa.X2, $t.X3 = vpa.X3, $t.X4 = vpa.X4, $t.RRF = vpa.RRF, $t);\r\n }\r\n default: {\r\n return;\r\n }\r\n }\r\n }\r\n }, arguments);\r\n\r\n return $asyncBody();\r\n }\r\n }\r\n });\r\n\r\n Bridge.define(\"VPAEngine.VpaResultsVM\", {\r\n fields: {\r\n STK: null,\r\n V: 0,\r\n E1: 0,\r\n X1: 0,\r\n X2: 0,\r\n X3: 0,\r\n X4: 0,\r\n CP: 0,\r\n RRF: 0\r\n }\r\n });\r\n\r\n Bridge.define(\"VPAEngine.VpaUserVM\", {\r\n fields: {\r\n STK: null,\r\n SS: 0,\r\n XLTDD: 0,\r\n D: 0,\r\n BV: 0,\r\n E1: 0,\r\n DEE: 0,\r\n DSS: 0,\r\n RBB: 0,\r\n DRBB: 0,\r\n E0: 0,\r\n CP: 0,\r\n HH: 0\r\n }\r\n });\r\n\r\n Bridge.define(\"VPAEngine.VpaSystemVM\", {\r\n inherits: [VPAEngine.VpaUserVM],\r\n fields: {\r\n F: 0,\r\n DS: 0,\r\n DE: 0,\r\n RB: 0,\r\n DRB: 0,\r\n H: 0,\r\n S: 0,\r\n XLTD: 0,\r\n AK3: 0,\r\n RT: 0,\r\n XL: 0,\r\n ZK: 0,\r\n AK1: 0,\r\n AK2: 0,\r\n AK: 0,\r\n XLH: 0,\r\n EQ: 0,\r\n V1: 0,\r\n V2: 0,\r\n V4: 0,\r\n V5: 0,\r\n XK: 0,\r\n VU: 0,\r\n VM: 0,\r\n VL: 0,\r\n V: 0,\r\n XINC: 0,\r\n X1: 0,\r\n X2: 0,\r\n X3: 0,\r\n X4: 0,\r\n RRF: 0\r\n }\r\n });\r\n});"],"sourceRoot":"webpack:///"}