示例#1
0
        public static int RemapBlockIds(uint[] block_ids, int length)
        {
            global::haxe.ds.IntMap <int> new_id = new global::haxe.ds.IntMap <int>();
            int next_id = 0;

            {
                int _g1 = 0;
                while ((_g1 < length))
                {
                    int i = _g1++;
                    if ((new_id.exists(((int)(((uint)(((uint[])(block_ids))[i]))))) == false))
                    {
                        new_id.@set(((int)(((uint)(((uint[])(block_ids))[i])))), next_id);
                        ++next_id;
                    }
                }
            }

            {
                int _g11 = 0;
                while ((_g11 < length))
                {
                    int i1 = _g11++;
                    ((uint[])(block_ids))[i1] = ((uint)((new_id.@get(((int)(((uint)(((uint[])(block_ids))[i1])))))).@value));
                }
            }

            return(next_id);
        }
示例#2
0
        public static object @select(global::haxe.root.Array read, global::haxe.root.Array write, global::haxe.root.Array others, object timeout)
        {
            unchecked {
                                #line 142 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                global::haxe.ds.IntMap map = new global::haxe.ds.IntMap();
                                #line 165 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                if ((read != null))
                {
                                        #line 165 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g = 0;
                                        #line 165 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    while ((_g < read.length))
                    {
                                                #line 165 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        global::sys.net.Socket s = ((global::sys.net.Socket)(read.__get(_g)));
                                                #line 165 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        ++_g;
                                                #line 165 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        map.@set(((int)(s.sock.Handle.ToInt32())), ((object)(s)));
                    }
                }

                                #line 166 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                if ((write != null))
                {
                                        #line 166 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g1 = 0;
                                        #line 166 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    while ((_g1 < write.length))
                    {
                                                #line 166 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        global::sys.net.Socket s1 = ((global::sys.net.Socket)(write.__get(_g1)));
                                                #line 166 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        ++_g1;
                                                #line 166 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        map.@set(((int)(s1.sock.Handle.ToInt32())), ((object)(s1)));
                    }
                }

                                #line 167 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                if ((others != null))
                {
                                        #line 167 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g2 = 0;
                                        #line 167 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    while ((_g2 < others.length))
                    {
                                                #line 167 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        global::sys.net.Socket s2 = ((global::sys.net.Socket)(others.__get(_g2)));
                                                #line 167 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        ++_g2;
                                                #line 167 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        map.@set(((int)(s2.sock.Handle.ToInt32())), ((object)(s2)));
                    }
                }

                                #line 170 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                global::System.Collections.ArrayList a = new global::System.Collections.ArrayList(((int)((((read == null)) ? (0) : (read.length)))));
                                #line 170 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                if ((read != null))
                {
                                        #line 170 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g3 = 0;
                                        #line 170 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    while ((_g3 < read.length))
                    {
                                                #line 170 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        global::sys.net.Socket s3 = ((global::sys.net.Socket)(read.__get(_g3)));
                                                #line 170 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        ++_g3;
                                                #line 170 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        a.Add(((object)(s3.sock)));
                    }
                }

                                #line 170 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                global::System.Collections.ArrayList rawRead = a;
                global::System.Collections.ArrayList a1      = new global::System.Collections.ArrayList(((int)((((write == null)) ? (0) : (write.length)))));
                if ((write != null))
                {
                                        #line 171 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g4 = 0;
                                        #line 171 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    while ((_g4 < write.length))
                    {
                                                #line 171 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        global::sys.net.Socket s4 = ((global::sys.net.Socket)(write.__get(_g4)));
                                                #line 171 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        ++_g4;
                                                #line 171 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        a1.Add(((object)(s4.sock)));
                    }
                }

                                #line 170 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                global::System.Collections.ArrayList rawWrite = a1;
                                #line 172 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                global::System.Collections.ArrayList a2 = new global::System.Collections.ArrayList(((int)((((others == null)) ? (0) : (others.length)))));
                                #line 172 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                if ((others != null))
                {
                                        #line 172 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g5 = 0;
                                        #line 172 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    while ((_g5 < others.length))
                    {
                                                #line 172 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        global::sys.net.Socket s5 = ((global::sys.net.Socket)(others.__get(_g5)));
                                                #line 172 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        ++_g5;
                                                #line 172 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        a2.Add(((object)(s5.sock)));
                    }
                }

                                #line 170 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                global::System.Collections.ArrayList rawOthers = a2;
                                #line 173 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                int microsec = (((timeout == default(object))) ? (-1) : (((int)((((double)(global::haxe.lang.Runtime.toDouble(timeout))) * ((double)(1000000)))))));
                global::System.Net.Sockets.Socket.Select(((global::System.Collections.IList)(rawRead)), ((global::System.Collections.IList)(rawWrite)), ((global::System.Collections.IList)(rawOthers)), ((int)(microsec)));
                                #line 177 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                global::haxe.root.Array a3 = new global::haxe.root.Array(new object[] {});
                                #line 177 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                {
                                        #line 177 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g6 = 0;
                                        #line 177 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g11 = rawRead.Count;
                                        #line 177 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    while ((_g6 < _g11))
                    {
                                                #line 177 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        int i = _g6++;
                                                #line 177 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        global::System.Net.Sockets.Socket s6 = ((global::System.Net.Sockets.Socket)(rawRead[i]));
                                                #line 177 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        a3.push(((global::sys.net.Socket)(map.@get(((int)(s6.Handle.ToInt32()))))));
                    }
                }

                                #line 177 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                global::haxe.root.Array tmp = a3;
                global::haxe.root.Array a4  = new global::haxe.root.Array(new object[] {});
                {
                                        #line 178 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g7 = 0;
                                        #line 178 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g12 = rawWrite.Count;
                                        #line 178 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    while ((_g7 < _g12))
                    {
                                                #line 178 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        int i1 = _g7++;
                                                #line 178 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        global::System.Net.Sockets.Socket s7 = ((global::System.Net.Sockets.Socket)(rawWrite[i1]));
                                                #line 178 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        a4.push(((global::sys.net.Socket)(map.@get(((int)(s7.Handle.ToInt32()))))));
                    }
                }

                                #line 178 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                global::haxe.root.Array tmp1 = a4;
                global::haxe.root.Array a5   = new global::haxe.root.Array(new object[] {});
                {
                                        #line 179 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g8 = 0;
                                        #line 179 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    int _g13 = rawOthers.Count;
                                        #line 179 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                    while ((_g8 < _g13))
                    {
                                                #line 179 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        int i2 = _g8++;
                                                #line 179 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        global::System.Net.Sockets.Socket s8 = ((global::System.Net.Sockets.Socket)(rawOthers[i2]));
                                                #line 179 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                        a5.push(((global::sys.net.Socket)(map.@get(((int)(s8.Handle.ToInt32()))))));
                    }
                }

                                #line 176 "C:\\HaxeToolkit\\haxe\\std\\cs\\_std\\sys\\net\\Socket.hx"
                return(new global::haxe.lang.DynamicObject(new int[] { 1269254998, 1348037855, 1898155939 }, new object[] { tmp, tmp1, a5 }, new int[] {}, new double[] {}));
            }
                        #line default
        }
示例#3
0
        public virtual void setupMap(object map)
        {
            unchecked {
                {
                    int _g = 0;
                    global::Array <object> _g1 = ((global::Array <object>)(global::Array <object> .__hx_cast <object>(((global::Array)(global::haxe.lang.Runtime.getField(map, "sites", 2094299916, true))))));
                    while ((_g < _g1.length))
                    {
                        object data = _g1[_g];
                        ++_g;
                        global::game.Site site = new global::game.Site(this, ((int)(global::haxe.lang.Runtime.getField_f(data, "id", 23515, true))), ((!(global::haxe.lang.Null <object> .ofDynamic <double>(global::haxe.lang.Runtime.getField(data, "x", 120, true)).hasValue)) ? (global::Math.rand.NextDouble()) : (((double)(global::haxe.lang.Runtime.toDouble(global::haxe.lang.Runtime.getField(data, "x", 120, true)))))), ((!(global::haxe.lang.Null <object> .ofDynamic <double>(global::haxe.lang.Runtime.getField(data, "y", 121, true)).hasValue)) ? (global::Math.rand.NextDouble()) : (((double)(global::haxe.lang.Runtime.toDouble(global::haxe.lang.Runtime.getField(data, "y", 121, true)))))));
                        ((global::haxe.IMap <int, object>)(this.sites)).@set(site.id, site);
                    }
                }

                {
                    int _g2 = 0;
                    global::Array <int> _g11 = ((global::Array <int>)(global::Array <object> .__hx_cast <int>(((global::Array)(global::haxe.lang.Runtime.getField(map, "mines", 141062784, true))))));
                    while ((_g2 < _g11.length))
                    {
                        int siteId = _g11[_g2];
                        ++_g2;
                        global::game.Site site1 = ((global::game.Site)((((global::haxe.IMap <int, object>)(this.sites)).@get(siteId)).@value));
                        site1.isMine = true;
                        ((global::haxe.IMap <int, object>)(this.mines)).@set(siteId, site1);
                    }
                }

                int i = 0;
                {
                    int _g3 = 0;
                    global::Array <object> _g12 = ((global::Array <object>)(global::Array <object> .__hx_cast <object>(((global::Array)(global::haxe.lang.Runtime.getField(map, "rivers", 1477328871, true))))));
                    while ((_g3 < _g12.length))
                    {
                        object data1 = _g12[_g3];
                        ++_g3;
                        int id = global::game._RiverId.RiverId_Impl_._new(i);
                        global::game.River river = new global::game.River(this, id, ((int)(global::haxe.lang.Runtime.getField_f(data1, "source", 842117339, true))), ((int)(global::haxe.lang.Runtime.getField_f(data1, "target", 116192081, true))));
                        ((global::haxe.ds.IntMap <object>)(global::haxe.ds.IntMap <object> .__hx_cast <object>(((global::haxe.ds.IntMap)(((global::haxe.IMap <int, object>)(this.rivers))))))).@set(id, river);
                        ((global::haxe.IMap <int, object>)(((global::game.Site)((((global::haxe.IMap <int, object>)(this.sites)).@get(river.a)).@value)).rivers)).@set((((river.a == river.a)) ? (river.b) : (river.a)), river);
                        ((global::haxe.IMap <int, object>)(((global::game.Site)((((global::haxe.IMap <int, object>)(this.sites)).@get(river.b)).@value)).rivers)).@set((((river.a == river.b)) ? (river.b) : (river.a)), river);
                        ++i;
                    }
                }

                this.mineCount  = ((global::Array <int>)(global::Array <object> .__hx_cast <int>(((global::Array)(global::haxe.lang.Runtime.getField(map, "mines", 141062784, true)))))).length;
                this.siteCount  = ((global::Array <object>)(global::Array <object> .__hx_cast <object>(((global::Array)(global::haxe.lang.Runtime.getField(map, "sites", 2094299916, true)))))).length;
                this.riverCount = ((global::Array <object>)(global::Array <object> .__hx_cast <object>(((global::Array)(global::haxe.lang.Runtime.getField(map, "rivers", 1477328871, true)))))).length;
                this.maxScore   = 0;
                {
                    object mine = ((global::haxe.IMap <int, object>)(this.mines)).iterator();
                    while (global::haxe.lang.Runtime.toBool(global::haxe.lang.Runtime.callField(mine, "hasNext", 407283053, null)))
                    {
                        global::game.Site            mine1       = ((global::game.Site)(global::haxe.lang.Runtime.callField(mine, "next", 1224901875, null)));
                        global::haxe.IMap <int, int> localScores = new global::haxe.ds.IntMap <int>();
                        ((global::haxe.IMap <int, object>)(this.scoreDictionary)).@set(mine1.id, localScores);
                        global::Array <object>       currentSites = new global::Array <object>(new object[] { mine1 });
                        global::haxe.IMap <int, int> distances    = new global::haxe.ds.IntMap <int>();
                        distances.@set(mine1.id, 0);
                        {
                            int _g13 = 0;
                            int _g4  = this.siteCount;
                            while ((_g13 < _g4))
                            {
                                int i1 = _g13++;
                                global::Array <object> nextSites = new global::Array <object>(new object[] {});
                                {
                                    int _g21 = 0;
                                    while ((_g21 < currentSites.length))
                                    {
                                        global::game.Site site2 = ((global::game.Site)(currentSites[_g21]));
                                        ++_g21;
                                        {
                                            object river1 = ((global::haxe.IMap <int, object>)(site2.rivers)).iterator();
                                            while (global::haxe.lang.Runtime.toBool(global::haxe.lang.Runtime.callField(river1, "hasNext", 407283053, null)))
                                            {
                                                global::game.River river2 = ((global::game.River)(global::haxe.lang.Runtime.callField(river1, "next", 1224901875, null)));
                                                int another = (((river2.a == site2.id)) ? (river2.b) : (river2.a));
                                                if (!(distances.exists(another)))
                                                {
                                                    {
                                                        int v = (i1 + 1);
                                                        distances.@set(another, v);
                                                    }

                                                    nextSites.push(((global::game.Site)((((global::haxe.IMap <int, object>)(this.sites)).@get(another)).@value)));
                                                }
                                            }
                                        }
                                    }
                                }

                                currentSites = nextSites;
                            }
                        }

                        {
                            object siteId1 = distances.keys();
                            while (global::haxe.lang.Runtime.toBool(global::haxe.lang.Runtime.callField(siteId1, "hasNext", 407283053, null)))
                            {
                                int siteId2 = ((int)(global::haxe.lang.Runtime.toInt(global::haxe.lang.Runtime.callField(siteId1, "next", 1224901875, null))));
                                global::haxe.lang.Null <int> distance = ((global::haxe.lang.Null <int>)(distances.@get(siteId2)));
                                int score = ((distance).@value * (distance).@value);
                                localScores.@set(siteId2, score);
                                this.maxScore += score;
                            }
                        }
                    }
                }
            }
        }
示例#4
0
        public static void solve()
        {
            unchecked {
                global::System.Console.WriteLine(((object)("Solving Day10")));
                global::Array <string>     _this = global::haxe.lang.StringExt.split(global::solutions.Day10.input, "\r\n");
                global::haxe.lang.Function f     = ((global::haxe.lang.Function)(new global::haxe.lang.Closure(typeof(global::Std), "parseInt", 1450317436)));
                global::Array <object>     ret   = new global::Array <object>(((object[])(new object[_this.length])));
                {
                    int _g  = 0;
                    int _g1 = _this.length;
                    while ((_g < _g1))
                    {
                        int i = _g++;
                        {
                            global::haxe.lang.Null <int> val = global::haxe.lang.Null <object> .ofDynamic <int>(f.__hx_invoke1_o(default(double), ((string)(_this.__a[i]))));

                            ret.__a[i] = (val).toDynamic();
                        }
                    }
                }

                global::Array <int>          arr          = ((global::Array <int>)(global::Array <object> .__hx_cast <int>(((global::Array)(ret)))));
                global::haxe.ds.IntMap <int> joltageDiffs = new global::haxe.ds.IntMap <int>();
                global::Array <int>          diffSequence = new global::Array <int>();
                arr.sort((((global::solutions.Day10_solve_11__Fun.__hx_current != null)) ? (global::solutions.Day10_solve_11__Fun.__hx_current) : (global::solutions.Day10_solve_11__Fun.__hx_current = ((global::solutions.Day10_solve_11__Fun)(new global::solutions.Day10_solve_11__Fun())))));
                int deviceJoltage = (arr[(arr.length - 1)] + 3);
                {
                    int tmp = arr[0];
                    {
                        int v = (new global::haxe.lang.Null <int>(((joltageDiffs.@get(tmp)).@value + 1), true)).@value;
                        joltageDiffs.@set(tmp, v);
                    }
                }

                diffSequence.push(arr[0]);
                {
                    int _g2 = 1;
                    int _g3 = arr.length;
                    while ((_g2 < _g3))
                    {
                        int i1   = _g2++;
                        int diff = (arr[i1] - arr[(i1 - 1)]);
                        {
                            int tmp1 = diff;
                            {
                                int v1 = (new global::haxe.lang.Null <int>(((joltageDiffs.@get(tmp1)).@value + 1), true)).@value;
                                joltageDiffs.@set(tmp1, v1);
                            }
                        }

                        diffSequence.push(diff);
                    }
                }

                {
                    int tmp2 = (deviceJoltage - arr[(arr.length - 1)]);
                    {
                        int v2 = (new global::haxe.lang.Null <int>(((joltageDiffs.@get(tmp2)).@value + 1), true)).@value;
                        joltageDiffs.@set(tmp2, v2);
                    }
                }

                global::System.Console.WriteLine(((object)(global::haxe.lang.Runtime.concat("a: ", global::haxe.lang.Runtime.toString(((joltageDiffs.@get(1)).@value * (joltageDiffs.@get(3)).@value))))));
                global::Array <int> lengthsOfRemovableOnes = new global::Array <int>();
                int oneCounter = 0;
                {
                    int _g4 = 0;
                    int _g5 = diffSequence.length;
                    while ((_g4 < _g5))
                    {
                        int i2 = _g4++;
                        if ((diffSequence[i2] == 1))
                        {
                            ++oneCounter;
                        }

                        if ((diffSequence[i2] == 3))
                        {
                            if ((oneCounter > 1))
                            {
                                lengthsOfRemovableOnes.push((oneCounter - 1));
                            }

                            oneCounter = 0;
                        }
                        else if ((((i2 + 1) >= diffSequence.length) && (oneCounter > 1)))
                        {
                            lengthsOfRemovableOnes.push((oneCounter - 1));
                        }
                    }
                }

                double resultB = 1.0;
                {
                    int _g6 = 0;
                    while ((_g6 < lengthsOfRemovableOnes.length))
                    {
                        int length = lengthsOfRemovableOnes[_g6];
                        ++_g6;
                        switch (length)
                        {
                        case 1:
                        {
                            resultB *= ((double)(2));
                            break;
                        }


                        case 2:
                        {
                            resultB *= ((double)(4));
                            break;
                        }


                        case 3:
                        {
                            resultB *= ((double)(7));
                            break;
                        }


                        default:
                        {
                            global::System.Console.WriteLine(((object)("Unhandled length in lengthsOfRemovableOnes")));
                            break;
                        }
                        }
                    }
                }

                global::System.Console.WriteLine(((object)(global::haxe.lang.Runtime.concat("b: ", global::haxe.lang.Runtime.toString(resultB)))));
            }
        }
示例#5
0
        public virtual global::haxe.zip.Huffman make(global::haxe.root.Array lengths, int pos, int nlengths, int maxbits)
        {
            unchecked {
                                #line 87 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                global::haxe.root.Array counts = new global::haxe.root.Array();
                global::haxe.root.Array tmp    = new global::haxe.root.Array();
                                #line 89 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                if ((maxbits > 32))
                {
                                        #line 90 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                    throw global::haxe.lang.HaxeException.wrap("Invalid huffman");
                }

                                #line 91 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                {
                                        #line 91 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                    int _g = 0;
                                        #line 91 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                    int _g1 = maxbits;
                                        #line 91 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                    while ((_g < _g1))
                    {
                                                #line 91 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                        int i = _g++;
                        counts.push(0);
                                                #line 93 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                        tmp.push(0);
                    }
                }

                                #line 95 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                {
                                        #line 95 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                    int _g2 = 0;
                                        #line 95 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                    int _g3 = nlengths;
                                        #line 95 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                    while ((_g2 < _g3))
                    {
                                                #line 95 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                        int i1 = _g2++;
                        int p  = ((int)(global::haxe.lang.Runtime.toInt(lengths.__get((i1 + pos)))));
                                                #line 97 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                        if ((p >= maxbits))
                        {
                                                        #line 98 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                            throw global::haxe.lang.HaxeException.wrap("Invalid huffman");
                        }

                                                #line 99 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                        {
                                                        #line 99 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                            int __temp_arrVal1 = ((int)(global::haxe.lang.Runtime.toInt(counts.__get(p))));
                                                        #line 99 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                            int __temp_arrRet2 = __temp_arrVal1++;
                                                        #line 99 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                            int __temp_expr1 = ((int)(global::haxe.lang.Runtime.toInt(counts.__set(p, __temp_arrVal1))));
                                                        #line 99 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                            int __temp_expr2 = __temp_arrRet2;
                        }
                    }
                }

                                #line 101 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                int code = 0;
                {
                                        #line 102 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                    int _g4 = 1;
                                        #line 102 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                    int _g5 = (maxbits - 1);
                                        #line 102 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                    while ((_g4 < _g5))
                    {
                                                #line 102 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                        int i2 = _g4++;
                        code = ((code + ((int)(global::haxe.lang.Runtime.toInt(counts.__get(i2))))) << 1);
                                                #line 104 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                        int __temp_expr3 = ((int)(global::haxe.lang.Runtime.toInt(tmp.__set(i2, code))));
                    }
                }

                                #line 106 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                global::haxe.ds.IntMap bits = new global::haxe.ds.IntMap();
                {
                                        #line 107 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                    int _g6 = 0;
                                        #line 107 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                    int _g7 = nlengths;
                                        #line 107 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                    while ((_g6 < _g7))
                    {
                                                #line 107 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                        int i3 = _g6++;
                        int l  = ((int)(global::haxe.lang.Runtime.toInt(lengths.__get((i3 + pos)))));
                                                #line 109 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                        if ((l != 0))
                        {
                                                        #line 110 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                            int n            = ((int)(global::haxe.lang.Runtime.toInt(tmp.__get((l - 1)))));
                            int __temp_expr4 = ((int)(global::haxe.lang.Runtime.toInt(tmp.__set((l - 1), (n + 1)))));
                                                        #line 112 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                            bits.@set(((int)(((n << 5) | l))), ((object)(i3)));
                        }
                    }
                }

                                #line 115 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx"
                return(this.treeCompress(global::haxe.zip.Huffman.NeedBit(this.treeMake(bits, maxbits, 0, 1), this.treeMake(bits, maxbits, 1, 1))));
            }
                        #line default
        }
示例#6
0
        public static void HistogramReindex(global::Array <object> @out, int[] symbols)
        {
            global::Array <object> tmp = new global::Array <object>();

            {
                int _g1 = 0;
                int _g  = @out.length;
                while ((_g1 < _g))
                {
                    int i = _g1++;
                    tmp[i] = new global::encode.histogram.Histogram(((int)((((int[])(((global::encode.histogram.Histogram)(@out[i])).data_)) as global::System.Array).Length)));
                    ((global::encode.histogram.Histogram)(tmp[i])).bit_cost_ = ((global::encode.histogram.Histogram)(@out[i])).bit_cost_;
                    {
                        int _g3 = 0;
                        int _g2 = (((int[])(((global::encode.histogram.Histogram)(@out[i])).data_)) as global::System.Array).Length;
                        while ((_g3 < _g2))
                        {
                            int a = _g3++;
                            ((int[])(((global::encode.histogram.Histogram)(tmp[i])).data_))[a] = ((int[])(((global::encode.histogram.Histogram)(@out[i])).data_))[a];
                        }
                    }

                    ((global::encode.histogram.Histogram)(tmp[i])).kDataSize    = ((global::encode.histogram.Histogram)(@out[i])).kDataSize;
                    ((global::encode.histogram.Histogram)(tmp[i])).total_count_ = ((global::encode.histogram.Histogram)(@out[i])).total_count_;
                }
            }

            global::haxe.ds.IntMap <int> new_index = new global::haxe.ds.IntMap <int>();
            int next_index = 0;

            {
                int _g11 = 0;
                int _g4  = (((int[])(symbols)) as global::System.Array).Length;
                while ((_g11 < _g4))
                {
                    int i1 = _g11++;
                    if ((new_index.exists(((int)(((int[])(symbols))[i1]))) == false))
                    {
                        new_index.@set(((int)(((int[])(symbols))[i1])), next_index);
                        ((global::encode.histogram.Histogram)(@out[next_index])).bit_cost_ = ((global::encode.histogram.Histogram)(tmp[((int)(((int[])(symbols))[i1]))])).bit_cost_;
                        {
                            int _g31 = 0;
                            int _g21 = (((int[])(((global::encode.histogram.Histogram)(tmp[((int)(((int[])(symbols))[i1]))])).data_)) as global::System.Array).Length;
                            while ((_g31 < _g21))
                            {
                                int a1 = _g31++;
                                ((int[])(((global::encode.histogram.Histogram)(@out[next_index])).data_))[a1] = ((int[])(((global::encode.histogram.Histogram)(tmp[((int)(((int[])(symbols))[i1]))])).data_))[a1];
                            }
                        }

                        ((global::encode.histogram.Histogram)(@out[next_index])).kDataSize    = ((global::encode.histogram.Histogram)(tmp[((int)(((int[])(symbols))[i1]))])).kDataSize;
                        ((global::encode.histogram.Histogram)(@out[next_index])).total_count_ = ((global::encode.histogram.Histogram)(tmp[((int)(((int[])(symbols))[i1]))])).total_count_;
                        ++next_index;
                    }
                }
            }

            while ((@out.length > next_index))
            {
                @out.pop();
            }

            {
                int _g12 = 0;
                int _g5  = (((int[])(symbols)) as global::System.Array).Length;
                while ((_g12 < _g5))
                {
                    int i2 = _g12++;
                    ((int[])(symbols))[i2] = (new_index.@get(((int)(((int[])(symbols))[i2])))).@value;
                }
            }
        }
示例#7
0
        public virtual object readMap(global::haxe.io.BytesInput i, int length, global::org.msgpack.DecodeOption option)
        {
            unchecked {
                                #line 116 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                switch (option._hx_index)
                {
                case 0:
                {
                                                #line 128 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                    global::haxe.root.Array pairs = new global::haxe.root.Array(new object[] {});
                    {
                                                        #line 129 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                        int _g = 0;
                                                        #line 129 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                        int _g1 = length;
                                                        #line 129 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                        while ((_g < _g1))
                        {
                                                                #line 129 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                            int    n = _g++;
                            object k = this.decode(i, option);
                                                                #line 131 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                            object v = this.decode(i, option);
                            pairs.push(new global::org.msgpack._Decoder.Pair(k, v));
                        }
                    }

                                                #line 135 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                    if ((pairs.length == 0))
                    {
                                                        #line 136 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                        return(new global::haxe.ds.StringMap());
                    }

                                                #line 138 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                    global::haxe.root.ValueType _g2 = global::haxe.root.Type.@typeof(((global::org.msgpack._Decoder.Pair)(pairs.__get(0))).k);
                                                #line 138 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                    switch (_g2._hx_index)
                    {
                    case 1:
                    {
                                                                #line 141 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                        global::haxe.ds.IntMap @out = new global::haxe.ds.IntMap();
                        {
                                                                        #line 142 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                            int _g21 = 0;
                                                                        #line 142 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                            while ((_g21 < pairs.length))
                            {
                                                                                #line 142 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                                global::org.msgpack._Decoder.Pair p = ((global::org.msgpack._Decoder.Pair)(pairs.__get(_g21)));
                                                                                #line 142 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                                ++_g21;
                                if ((global::haxe.root.Type.@typeof(p.k)._hx_index == 1))
                                {
                                }
                                else
                                {
                                                                                        #line 146 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                                    throw global::haxe.lang.HaxeException.wrap("Error: Mixed key type when decoding IntMap");
                                }

                                                                                #line 149 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                                if (@out.exists(((int)(global::haxe.lang.Runtime.toInt(p.k)))))
                                {
                                                                                        #line 150 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                                    throw global::haxe.lang.HaxeException.wrap(global::haxe.lang.Runtime.concat("Error: Duplicate keys found => ", global::haxe.root.Std.@string(p.k)));
                                }

                                                                                #line 152 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                                @out.@set(((int)(global::haxe.lang.Runtime.toInt(p.k))), ((object)(p.v)));
                            }
                        }

                                                                #line 155 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                        return(@out);
                    }


                    case 6:
                    {
                                                                #line 157 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                        global::System.Type c = (_g2 as global::haxe.root.ValueType_TClass).c;
                                                                #line 157 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                        if ((global::haxe.root.Type.getClassName(c) == "String"))
                        {
                                                                        #line 158 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                            global::haxe.ds.StringMap out1 = new global::haxe.ds.StringMap();
                            {
                                                                                #line 159 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                                int _g22 = 0;
                                                                                #line 159 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                                while ((_g22 < pairs.length))
                                {
                                                                                        #line 159 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                                    global::org.msgpack._Decoder.Pair p1 = ((global::org.msgpack._Decoder.Pair)(pairs.__get(_g22)));
                                                                                        #line 159 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                                    ++_g22;
                                    {
                                                                                                #line 160 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                                        global::haxe.root.ValueType _g23 = global::haxe.root.Type.@typeof(p1.k);
                                                                                                #line 160 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                                        if ((_g23._hx_index == 6))
                                        {
                                                                                                        #line 161 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                                            global::System.Type c1 = (_g23 as global::haxe.root.ValueType_TClass).c;
                                                                                                        #line 161 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                                            if ((global::haxe.root.Type.getClassName(c1) == "String"))
                                            {
                                            }
                                            else
                                            {
                                                                                                                #line 163 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                                                throw global::haxe.lang.HaxeException.wrap("Error: Mixed key type when decoding StringMap");
                                            }
                                        }
                                        else
                                        {
                                                                                                        #line 163 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                                            throw global::haxe.lang.HaxeException.wrap("Error: Mixed key type when decoding StringMap");
                                        }
                                    }

                                                                                        #line 166 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                                    if (out1.exists(global::haxe.lang.Runtime.toString(p1.k)))
                                    {
                                                                                                #line 167 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                                        throw global::haxe.lang.HaxeException.wrap(global::haxe.lang.Runtime.concat("Error: Duplicate keys found => ", global::haxe.root.Std.@string(p1.k)));
                                    }

                                                                                        #line 169 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                                    out1.@set(global::haxe.lang.Runtime.toString(p1.k), ((object)(p1.v)));
                                }
                            }

                                                                        #line 172 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                            return(out1);
                        }
                        else
                        {
                                                                        #line 175 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                            throw global::haxe.lang.HaxeException.wrap("Error: Unsupported key Type");
                        }
                    }


                    default:
                    {
                                                                #line 175 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                        throw global::haxe.lang.HaxeException.wrap("Error: Unsupported key Type");
                    }
                    }
                }


                case 1:
                {
                                                #line 118 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                    object out2 = new global::haxe.lang.DynamicObject(new int[] {}, new object[] {}, new int[] {}, new double[] {});
                    {
                                                        #line 119 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                        int _g3 = 0;
                                                        #line 119 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                        int _g11 = length;
                                                        #line 119 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                        while ((_g3 < _g11))
                        {
                                                                #line 119 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                            int    n1 = _g3++;
                            object k1 = this.decode(i, option);
                                                                #line 121 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                            object v1 = this.decode(i, option);
                            global::haxe.root.Reflect.setField(out2, global::haxe.root.Std.@string(k1), v1);
                        }
                    }

                                                #line 125 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                    return(out2);
                }
                }

                                #line 115 "D:\\project\\sangong\\sangong\\src\\org\\msgpack\\Decoder.hx"
                return(null);
            }
                        #line default
        }
示例#8
0
        public static object @select(global::Array <object> read, global::Array <object> write, global::Array <object> others, global::haxe.lang.Null <double> timeout)
        {
            unchecked {
                                #line 142 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                global::haxe.ds.IntMap <object> map = new global::haxe.ds.IntMap <object>();
                                #line 165 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                if ((read != null))
                {
                                        #line 165 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g = 0;
                                        #line 165 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    while ((_g < read.length))
                    {
                                                #line 165 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        global::sys.net.Socket s = ((global::sys.net.Socket)(read[_g]));
                                                #line 165 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        ++_g;
                                                #line 165 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        map.@set(s.sock.Handle.ToInt32(), s);
                    }
                }

                                #line 166 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                if ((write != null))
                {
                                        #line 166 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g1 = 0;
                                        #line 166 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    while ((_g1 < write.length))
                    {
                                                #line 166 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        global::sys.net.Socket s1 = ((global::sys.net.Socket)(write[_g1]));
                                                #line 166 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        ++_g1;
                                                #line 166 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        map.@set(s1.sock.Handle.ToInt32(), s1);
                    }
                }

                                #line 167 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                if ((others != null))
                {
                                        #line 167 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g2 = 0;
                                        #line 167 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    while ((_g2 < others.length))
                    {
                                                #line 167 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        global::sys.net.Socket s2 = ((global::sys.net.Socket)(others[_g2]));
                                                #line 167 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        ++_g2;
                                                #line 167 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        map.@set(s2.sock.Handle.ToInt32(), s2);
                    }
                }

                                #line 170 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                global::System.Collections.ArrayList a = new global::System.Collections.ArrayList(((int)((((read == null)) ? (0) : (read.length)))));
                                #line 170 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                if ((read != null))
                {
                                        #line 170 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g3 = 0;
                                        #line 170 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    while ((_g3 < read.length))
                    {
                                                #line 170 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        global::sys.net.Socket s3 = ((global::sys.net.Socket)(read[_g3]));
                                                #line 170 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        ++_g3;
                                                #line 170 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        a.Add(((object)(s3.sock)));
                    }
                }

                                #line 170 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                global::System.Collections.ArrayList rawRead = a;
                global::System.Collections.ArrayList a1      = new global::System.Collections.ArrayList(((int)((((write == null)) ? (0) : (write.length)))));
                if ((write != null))
                {
                                        #line 171 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g4 = 0;
                                        #line 171 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    while ((_g4 < write.length))
                    {
                                                #line 171 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        global::sys.net.Socket s4 = ((global::sys.net.Socket)(write[_g4]));
                                                #line 171 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        ++_g4;
                                                #line 171 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        a1.Add(((object)(s4.sock)));
                    }
                }

                                #line 170 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                global::System.Collections.ArrayList rawWrite = a1;
                                #line 172 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                global::System.Collections.ArrayList a2 = new global::System.Collections.ArrayList(((int)((((others == null)) ? (0) : (others.length)))));
                                #line 172 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                if ((others != null))
                {
                                        #line 172 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g5 = 0;
                                        #line 172 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    while ((_g5 < others.length))
                    {
                                                #line 172 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        global::sys.net.Socket s5 = ((global::sys.net.Socket)(others[_g5]));
                                                #line 172 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        ++_g5;
                                                #line 172 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        a2.Add(((object)(s5.sock)));
                    }
                }

                                #line 170 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                global::System.Collections.ArrayList rawOthers = a2;
                                #line 173 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                int microsec = ((!(timeout.hasValue)) ? (-1) : (((int)(((timeout).@value * 1000000)))));
                global::System.Net.Sockets.Socket.Select(((global::System.Collections.IList)(rawRead)), ((global::System.Collections.IList)(rawWrite)), ((global::System.Collections.IList)(rawOthers)), ((int)(microsec)));
                                #line 177 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                global::Array <object> a3 = new global::Array <object>(new object[] {});
                                #line 177 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                {
                                        #line 177 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g6 = 0;
                                        #line 177 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g7 = rawRead.Count;
                                        #line 177 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    while ((_g6 < _g7))
                    {
                                                #line 177 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        int i = _g6++;
                                                #line 177 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        global::System.Net.Sockets.Socket s6 = ((global::System.Net.Sockets.Socket)(rawRead[i]));
                                                #line 177 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        a3.push(((global::sys.net.Socket)((map.@get(s6.Handle.ToInt32())).@value)));
                    }
                }

                                #line 177 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                global::Array <object> tmp = a3;
                global::Array <object> a4  = new global::Array <object>(new object[] {});
                {
                                        #line 178 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g8 = 0;
                                        #line 178 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g9 = rawWrite.Count;
                                        #line 178 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    while ((_g8 < _g9))
                    {
                                                #line 178 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        int i1 = _g8++;
                                                #line 178 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        global::System.Net.Sockets.Socket s7 = ((global::System.Net.Sockets.Socket)(rawWrite[i1]));
                                                #line 178 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        a4.push(((global::sys.net.Socket)((map.@get(s7.Handle.ToInt32())).@value)));
                    }
                }

                                #line 178 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                global::Array <object> tmp1 = a4;
                global::Array <object> a5   = new global::Array <object>(new object[] {});
                {
                                        #line 179 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g10 = 0;
                                        #line 179 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    int _g11 = rawOthers.Count;
                                        #line 179 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                    while ((_g10 < _g11))
                    {
                                                #line 179 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        int i2 = _g10++;
                                                #line 179 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        global::System.Net.Sockets.Socket s8 = ((global::System.Net.Sockets.Socket)(rawOthers[i2]));
                                                #line 179 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                        a5.push(((global::sys.net.Socket)((map.@get(s8.Handle.ToInt32())).@value)));
                    }
                }

                                #line 176 "/opt/haxe/std/cs/_std/sys/net/Socket.hx"
                return(new global::haxe.lang.DynamicObject(new int[] { 1269254998, 1348037855, 1898155939 }, new object[] { tmp, tmp1, a5 }, new int[] {}, new double[] {}));
            }
                        #line default
        }