1 /*
   2  * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 /*
  25  * @test
  26  * @bug 6716441
  27  * @summary error in meet with +DoEscapeAnalysis
  28  *
  29  * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -Xcomp -XX:+EliminateAutoBox -XX:AutoBoxCacheMax=20000
  30  *                   compiler.escapeAnalysis.cr6716441.Tester
  31  */
  32 
  33 /* Complexity upper bound: 70070 ops */
  34 
  35 package compiler.escapeAnalysis.cr6716441;
  36 
  37 class Tester_Class_0 {
  38     Object var_1;
  39 
  40 
  41     public Tester_Class_0()
  42     {
  43         var_1 = "cmlv";
  44         {
  45             final Object var_7 = false ? (var_1 = "flwnujmm") : (var_1 = "");
  46         }
  47         float var_8 = 0F;
  48         boolean var_9;
  49         do
  50         {
  51             ((var_9 = (var_9 = (var_9 = false))) && true ? new String("yvirc") : "rmfkjbx").indexOf(99854165);
  52             var_8++;
  53             boolean var_10 = true;
  54             var_10 |= true ? true : false;
  55             var_10 |= false | var_10 ? (var_10 |= true) : true;
  56         } while (var_8 < 1 && "tpb".charAt(~ ((byte)2449669946597620736L)) >>> (byte)1.704554E38F >= ('t' < var_8 ? (short)var_8 : 1237471887 / +4199632387838836736L));
  57         var_1 = (var_1 = "y");
  58         switch ((var_9 = "".equalsIgnoreCase("kqalxwsnu") | false) ? (new char[(byte)1.3230508534158742E308])[(byte)(short)93390917] : 'c')
  59         {
  60             case 'U':
  61 
  62             case 'W':
  63 
  64             case 'A':
  65 
  66             case 72:
  67 
  68         }
  69         var_9 = (var_9 = false);
  70         float var_11 = 0F;
  71         var_9 = true;
  72         for (var_1 = (var_1 = new boolean[(new byte[(byte)'O'])[(byte)'l']]); var_11 < 2; var_1 = (true ? "" : "nn").toUpperCase())
  73         {
  74             var_9 = true;
  75             var_11++;
  76             var_9 = true;
  77             int var_12 = (new short[(byte)1825213428])[(byte)1.6151095881186834E308] + (byte)(short)'V';
  78         }
  79         var_1 = (new boolean[(byte)1546704177][(byte)6314352927310996480L][(byte)6838913812451802112L])["e".equalsIgnoreCase("d") ? (byte)3.964472879846357E307 : (byte)'L'];
  80         var_9 = (var_9 = false);
  81     }
  82 
  83 
  84 
  85     protected Object clone()
  86     {
  87         var_1 = (var_1 = "dbogknllu");
  88         var_1 = "jljax";
  89         var_1 = (var_1 = false ? "s" : "upqinst");
  90         if (false)
  91         {
  92             var_1 = (var_1 = (var_1 = "nwhu"));
  93         }
  94         else
  95         {
  96             short var_2;
  97             var_2 = false ? (byte)((short)'e' - (byte)2.267975E38F) : (byte)1.28920093132789E308;
  98         }
  99         (((byte)2.3450009E38F >= (byte)- (+ - -1.6256751428449317E306 * 954071273906192384L) ? true : true) ? "gpv".substring(468176669, 1915798010) : "macqbvf").offsetByCodePoints("ivwivjege".charAt(1819923298) >>> (byte)((- ~653213024937366528L + 'N') * +1.0297164E38F) + (short)~ + -4535402293751053312L, (short)3837656677199316992L + (new byte[(byte)2.1586717E38F])[(byte)((short)719847962 - 8.599263E37F)]);
 100         new String((char)650047353 > (short)'I' ? "maygldu".replaceAll("hpn", "bacoyows") : "nkx").endsWith(new String("h" + "vx"));
 101         byte var_3;
 102         return var_1 = "vbiccvdu";
 103     }
 104 
 105     public boolean equals(Object obj)
 106     {
 107         var_1 = "rxpocj";
 108         obj = "ndogtwvuh";
 109         {
 110             {
 111                 var_1 = "vmdkvs";
 112             }
 113             final boolean var_4 = false;
 114             long var_5;
 115             var_5 = (short)'G' >> + ((byte)1.1872624048733707E308);
 116         }
 117         var_1 = (new byte[(byte)(short)1.7804576633213148E308][(byte)(short)8.300151422843056E307])[(byte)3110360603258978304L];
 118         obj = "fudebwroh";
 119         obj = new Object[(false && false) & false ? (byte)8796624364629753856L : (byte)- +1.5843542184394165E308];
 120         if (true)
 121         {
 122             var_1 = new float[(byte)1372189277][(byte)((byte)8.352642520619892E307 == (! !false ^ true ? (short)1.3871033E37F : (byte)'f') ? 7.33899E37F - (short)2.2558552E37F : 2.6072269E38F)];
 123         }
 124         else
 125         {
 126             var_1 = obj;
 127             obj = new boolean[(byte)8.623747E37F][(byte)~ ((byte)(short)(byte)2100816354)];
 128         }
 129         var_1 = new int[(new byte[(byte)7410132537719084032L])[(byte)1524949007]][(byte)((long)9188640 ^ 'n')];
 130         if (-3.0364305E38F > 8.114229090672013E307)
 131         {
 132             var_1 = (var_1 = new boolean[(byte)1.0354788699727844E308][(byte)-4867581638981979136L]);
 133         }
 134         else
 135         {
 136             obj = (obj = obj);
 137             obj = (new int[(byte)'f'][(byte)7563033606293564416L])[(byte)2052737645];
 138         }
 139         long var_6;
 140         var_6 = (+ + ~3862500564271147008L != (short)8549491352795953152L || (byte)+ + (var_6 = 'D') > (var_6 = 1687952259)) && true ? (short)1756260278 : (byte)(short)3.202384E36F;
 141         return false ^ ((false ? !true : true) ? false : (true ? ! !false : false));
 142     }
 143 
 144 
 145 
 146     public String toString()
 147     {
 148         String result =  "[\n";
 149         result += "Tester_Class_0.var_1 = "; result += Tester.Printer.print(var_1);
 150         result += "";
 151         result += "\n]";
 152         return result;
 153     }
 154 }
 155 
 156 
 157 interface Tester_Interface_1 {
 158 }
 159 
 160 
 161 final class Tester_Class_2 extends Tester_Class_0 {
 162     static char var_13;
 163     final static long var_14 = ~ ~ (((false ? !true ^ !true : !false | true) ? (byte)1.4363583E38F : (byte)(short)'X') * + + +3767002589844008960L << (var_13 = (var_13 = 'X')));
 164 
 165 
 166     public Tester_Class_2()
 167     {
 168         ((true ? (byte)- ((byte)2.6338962E38F) : (byte)'H') <= (short)8.671266E37F || !false & true ? (Tester_Class_0)(var_1 = "tgoexsr") : (Tester_Class_0)(var_1 = "mptusv")).var_1 = "tbxbgyti";
 169         var_1 = true ? (var_1 = "islgpxwa") : "rypkbu";
 170         var_1 = "vngiif";
 171         var_13 = (var_13 = (short)~ (-3250577075350561792L + +2983539228635145216L - '`') < 861590495 * (short)1.5299644E38F ? 'V' : 'G');
 172         Object[] var_27;
 173         var_1 = (var_1 = "glu");
 174     }
 175 
 176 
 177 
 178 
 179 
 180     private static int func_0(Tester_Interface_1 arg_0, Tester_Interface_1 arg_1, final int arg_2)
 181     {
 182         var_13 = 'i';
 183         new String();
 184         (true ? "pu" : "oltbcysyd").substring(1236315614);
 185         byte var_15;
 186         var_15 = (new byte[(byte)1582653493940204544L][(byte)(char)-1.5806537192822515E308])[(byte)1.2986292E38F][(byte)(short)arg_2];
 187         if (true || true)
 188         {
 189             ((new Tester_Class_2[var_15 = (byte)'q'])[var_15 = 7.653082E37F < (var_13 = 'o') ? (byte)- - + +3.1640875E38F : (byte)-6820511772487837696L]).var_1 = (new Tester_Class_0[(byte)(short)(new byte[(byte)1080194717])[(byte)8297829563314362368L]])[var_15 = (var_15 = (var_15 = (var_15 = (byte)'t')))];
 190             double[] var_16;
 191         }
 192         else
 193         {
 194             arg_1 = (arg_1 = arg_0);
 195         }
 196         var_13 = (var_13 = 'o');
 197         var_13 = (false || false ^ false) ^ !true ? 'Z' : (var_13 = 'i');
 198         return true ? (var_15 = (byte)'C') : 1120493294;
 199     }
 200 
 201     static double func_1(final int arg_0, long arg_1, long arg_2)
 202     {
 203         "ghtfhmbeg".compareToIgnoreCase("djn");
 204         {
 205             ((true ? true : ! !true) ? "" : "ioowivxge").substring(1844979226, "ppsk".startsWith("lllmn") | false ? arg_0 * arg_0 : (byte)663320199);
 206             ((Tester_Class_0)(((new Tester_Class_2[(byte)4797509007239530496L])[(byte)(- -2.8961086E38F - arg_1)]).var_1 = new float[(byte)('m' / 6.0657416E37F)])).var_1 = new boolean[(byte)(short)(+4.515459E37F - (short)arg_0)][(byte)(-1.3002677717712297E308 + (var_13 = "bcjfdnc".charAt(arg_0)) * (arg_2 - 1.6058080036165979E308))];
 207             var_13 = 'E';
 208         }
 209         float var_17 = 0F;
 210         --arg_1;
 211         do
 212         {
 213             final String[] var_18 = new String[(byte)(short)arg_0];
 214             var_17++;
 215             Object var_19 = (new Object[(byte)var_17])[(false ? "xfkx".equalsIgnoreCase("j") : !false) ^ !false ? (byte)(1.6627987E35F * 2.62825E38F) : (byte)var_17];
 216         } while (var_17 < 2 && false | ((byte)1.4661115E38F | arg_0 - 'l') < ('J' & (byte)+ ((float)1200013759)));
 217         long var_20 = 0L;
 218         arg_2--;
 219         for (var_13 = (var_13 = (var_13 = (var_13 = (var_13 = (var_13 = 'p'))))); var_20 < 4; var_13 = 'y')
 220         {
 221             new String((true | true ? "oxpfy" : "gaynucv") + (true ? "cmrrk".substring(653981013, arg_0) : "ociewl" + "srhbvcgci"));
 222             var_20++;
 223             arg_2 >>= arg_0;
 224             arg_2 = false ? (byte)'l' : (byte)(~var_20 - (byte)1.1290483681734838E308);
 225         }
 226         ((new Tester_Class_2[(byte)arg_1++])[(byte)685259385]).var_1 = new Tester_Interface_1[(byte)arg_0];
 227         --arg_1;
 228         var_13 = 483446392 - (byte)'P' < ((short)(true ? (var_13 = 't') : 'n') & (short)'l') ? (var_13 = 'q') : (var_13 = (var_13 = 'h'));
 229         var_13 = 'y';
 230         return 1.097000731360761E308;
 231     }
 232 
 233     private final boolean func_2(final short[][] arg_0, byte arg_1, Object arg_2)
 234     {
 235         var_1 = new char[arg_1];
 236         arg_1 /= (var_13 = 'A') + -var_14;
 237         int var_21 = 0;
 238         arg_2 = (new Tester_Class_0[arg_1 += var_14][arg_1])[arg_1 >>>= 'R' + + -var_14 - 4078879817303787520L];
 239         for (arg_1--; (+ +1.1473423E38F < 'w' & false | var_21 != (short)4633877342445358080L | !false ? false | !false : true) && (var_21 < 1 && (arg_0[arg_1])[arg_1 %= 7.136449148111178E307] > 7.362329280963185E307); arg_1++)
 240         {
 241             arg_1 = (arg_1 %= + -9.872181578576624E307);
 242             var_21++;
 243             arg_1 /= 7.365334241099395E307;
 244             var_13 = (var_13 = (var_13 = (var_13 = (var_13 = (var_13 = 'A')))));
 245         }
 246         arg_1 >>= var_14;
 247         boolean var_22 = false;
 248         return ((var_22 &= true) && var_22 ? (short)1.568578228250838E308 : arg_1) >= (new float[arg_1])[arg_1 /= 1.6849858816110731E308];
 249     }
 250 
 251     public final String func_3(Tester_Interface_1 arg_0)
 252     {
 253         arg_0 = arg_0;
 254         arg_0 = (arg_0 = arg_0);
 255         var_13 = (var_13 = (var_13 = (var_13 = "rqimya".charAt(390686412))));
 256         ((Tester_Class_0)(var_1 = "suxd")).var_1 = new Tester_Class_0[(byte)(float)(short)1.584667675541511E308];
 257         arg_0 = ((byte)+ + - +1.3636011E38F == 'L' ^ true) & (!true | true) ? (arg_0 = arg_0) : arg_0;
 258         var_1 = (((Tester_Class_0)(var_1 = (Tester_Class_0)(var_1 = "ndxcurdr"))).var_1 = (var_1 = (var_1 = "schnhe")));
 259         var_1 = (new Object[(byte)(var_13 = (var_13 = 'G'))])[(byte)((byte)1.5366658198344074E308 - 1.0051541518022535E308)];
 260         var_13 = (var_13 = 'x');
 261         (true ? (Tester_Class_0)(var_1 = "slesdph") : (Tester_Class_0)(var_1 = "wxj")).var_1 = false ? (Tester_Class_0)(var_1 = "iddvoil") : (Tester_Class_0)(var_1 = "yjbxhuip");
 262         var_13 = (var_13 = 'f');
 263         var_1 = (new short[(byte)1.8902424351360974E307])[(new byte[(byte)1552392028])[(byte)'V']] >= (1.2449926736063704E308 + 'K') / (short)1.0847178E38F / ((short)'M' % (1.225890077244388E308 + + ((byte)1.5358312881295287E308))) ? (Tester_Class_0)(var_1 = "khfntg".toString()) : (Tester_Class_0)(var_1 = "jkttx");
 264         {
 265             arg_0 = arg_0;
 266         }
 267         arg_0 = arg_0;
 268         var_13 = (true ? "jndbffakc" : "hhcsc").charAt((byte)7322932713210745856L >> (short)(var_13 = (var_13 = 'R')));
 269         var_13 = (var_13 = (var_13 = 'U'));
 270         {
 271             "gepdu".trim();
 272         }
 273         var_13 = 'H';
 274         new String();
 275         {
 276             (false ^ (true ^ ((!true | ! !true) ^ ! (1.7800668444792402E308 * var_14 >= (var_13 = (var_13 = (var_13 = 'g')))))) ? "dsm" : "g").toUpperCase().toString();
 277             ((Tester_Class_0)(var_1 = "fcdvd")).var_1 = (Tester_Class_0)(((Tester_Class_0)(var_1 = "uwhnte")).var_1 = "vpatqpd");
 278         }
 279         switch (((byte)((byte)((int)'n' / var_14) >>> (short)7.786475993917233E307 - (var_13 = 'm')) <= (("".endsWith("pbypgis") ^ false) & true ? (byte)func_0(arg_0, arg_0, 723551781) : (short)140766856) ? true | (!false || false) : 'F' != (var_13 = 'V')) ? (var_13 = 'j') : 'D')
 280         {
 281             case 'p':
 282 
 283         }
 284         var_13 = (var_13 = (var_13 = 'y'));
 285         var_13 = ("" + "wwbxwyt").charAt((short)8373354379880418304L << (short)(byte)1.557224945027141E308);
 286         arg_0 = true ? (arg_0 = arg_0) : arg_0;
 287         ((Tester_Class_0)(((Tester_Class_0)(var_1 = "rmkvbp")).var_1 = (var_1 = "gvb"))).var_1 = new Tester_Class_0[(byte)var_14];
 288         arg_0 = arg_0;
 289         return 2.5245162E38F + 3.9088502076337727E307 > 1.0883030748712796E308 ? "efttufmbg" : "xy";
 290     }
 291 
 292     protected short func_4(final double arg_0, long arg_1, final Object arg_2, final byte arg_3)
 293     {
 294         (((("ptnmpn".startsWith("xxgxjvsie") ? !true : ! !true) ? ! !false : false) ? (true ? true : false) : (var_13 = (var_13 = 'X')) == 1948276447) ? (Tester_Class_0)(var_1 = new float[arg_3][arg_3]) : (Tester_Class_0)arg_2).var_1 = new double[(new byte[arg_3][arg_3])[arg_3][arg_3]][arg_3];
 295         boolean var_23;
 296         return true ? (short)'r' : (byte)(short)('\\' >>> arg_3);
 297     }
 298 
 299     final static byte func_5(final long arg_0, float arg_1, final double arg_2)
 300     {
 301         arg_1 = arg_2 <= ((var_13 = 'D') <= - (3463565869695079424L << 'S') ? 'a' : (var_13 = 'o')) | (true ? !false : !false) ? (byte)(short)(var_13 = 'r') : (short)(byte)'S';
 302         {
 303             {
 304                 arg_1 %= '_';
 305             }
 306             char var_24 = 'G';
 307             "hc".lastIndexOf("");
 308             arg_1 *= (arg_1 /= (byte)-8.308933840953204E306);
 309             --var_24;
 310             arg_1 /= ~ ((byte)2.2736606E38F) <= (3392301601783633920L == 3.015267E38F ^ ! !true ? (byte)88382550 : (byte)1.2019729E38F) ? 1027309963 : + -4.355887546298483E307;
 311             ((new Tester_Class_2[(byte)arg_2])[(byte)870592870]).var_1 = "i";
 312             arg_1 /= 't';
 313         }
 314         var_13 = 'f';
 315         Tester_Class_0 var_25 = (new Tester_Class_0[(byte)arg_1])[(true | false ^ !false) & ! !true & - +2.758844E38F >= (new short[(byte)5.9160883E37F])[(byte)'r'] ? (byte)arg_0 : (byte)((short)1802078016 & arg_0)];
 316         arg_1 /= (byte)arg_2;
 317         var_13 = 'R';
 318         boolean var_26 = (true ? false : !false) ? false : !true == ! !false;
 319         arg_1 %= (var_26 ^= (byte)1101752087 <= (short)arg_1) ? arg_1 : (float)1882235314;
 320         var_25 = var_25;
 321         if (var_26 &= var_26)
 322         {
 323             var_13 = "".startsWith("vp", - ((byte)2040501187) ^ (byte)-3921263616446438400L) ? "gam".charAt(+ ((byte)arg_1)) : (var_13 = 'H');
 324             arg_1 /= var_26 | ! (var_26 ^ (byte)arg_0 <= (var_13 = 'r') | (var_26 |= var_26)) ? 'N' : ~8963227563301903360L;
 325         }
 326         else
 327         {
 328             var_13 = 'l';
 329             var_25 = (var_25 = var_25);
 330         }
 331         arg_1 += (byte)(("m".substring(837996717, 861903057).startsWith("vwpky", (var_13 = 'Z') % (byte)arg_1) ? !false ^ !var_26 : var_26) ? (byte)arg_1 : ((var_26 | var_26) ^ !false ? (short)'U' : (short)'d'));
 332         ((1.3445538E38F < (arg_1 -= 1236356135) ^ (var_26 = true)) & var_26 ? var_25 : (var_25 = var_25)).var_1 = true ? (var_25.var_1 = var_25) : (var_25.var_1 = var_25);
 333         var_26 |= - ((byte)251113415) < (short)arg_1 & false & false;
 334         arg_1 += (var_26 &= true) ? 7.546147305340402E307 : (true & !var_26 ? (byte)1.5107802154474685E307 : (byte)arg_1);
 335         var_25.var_1 = true ? "bqsewhn" : "aojssvan";
 336         return (byte)(var_13 = (char)(new short[(byte)46697464])[(byte)var_14]);
 337     }
 338 
 339     public String toString()
 340     {
 341         String result =  "[\n";
 342         result += "Tester_Class_2.var_13 = "; result += Tester.Printer.print(var_13);
 343         result += "\n";
 344         result += "Tester_Class_2.var_14 = "; result += Tester.Printer.print(var_14);
 345         result += "\n";
 346         result += "Tester_Class_2.var_1 = "; result += Tester.Printer.print(var_1);
 347         result += "";
 348         result += "\n]";
 349         return result;
 350     }
 351 }
 352 
 353 public class Tester {
 354     static Tester_Class_0 var_28;
 355     double var_29 = 4.861846831496217E307;
 356     static byte var_30 = 79;
 357     static boolean var_31 = false;
 358     final byte var_32 = 48;
 359 
 360 
 361     public short func_0(final byte arg_0, boolean arg_1, final double arg_2)
 362     {
 363         --var_30;
 364         new Tester_Class_2().var_1 = "xdwldeqhc";
 365         char var_33 = 'd';
 366         return (var_31 = var_30 < (new short[var_30])[var_30]) ? (short)(var_33 >>>= (short)2.3152642E38F) : var_30;
 367     }
 368 
 369     private final float func_1(final long arg_0, final Tester_Class_0 arg_1, Tester_Class_0 arg_2, final char arg_3)
 370     {
 371         {
 372             new Tester_Class_0();
 373         }
 374         var_30 >>= (short)1.1469118780047631E308;
 375         var_31 |= var_31;
 376         if (true)
 377         {
 378             Tester_Class_2 var_34 = (var_31 ^= (var_31 ^= false)) ? (Tester_Class_2)arg_1 : (new Tester_Class_2[var_32])[var_30];
 379         }
 380         else
 381         {
 382             "shqjwg".compareToIgnoreCase(false ? "gxoyw" + "cx" : "r" + "icj");
 383         }
 384         ((new Tester_Class_2[var_32])[++var_30]).var_1 = (new Object[var_30][var_32][var_32])[var_30 |= var_32];
 385         arg_1.var_1 = (arg_2 = arg_2);
 386         arg_1.var_1 = (((new Tester_Class_2[var_30])[var_30 = var_32]).var_1 = new String[var_32]);
 387         var_28 = (Tester_Class_2)((arg_2 = arg_2).var_1 = new double[var_30]);
 388         arg_2 = arg_1;
 389         final boolean var_35 = "qjsdfuyru".endsWith("nuw" + "bne") | arg_3 >= 1.2054153346397785E308;
 390         var_31 &= (var_31 ^= var_35);
 391         {
 392             var_31 &= var_31 ? false : !false;
 393         }
 394         if (var_31)
 395         {
 396             var_28 = (new Tester_Class_2[var_32])[var_32];
 397         }
 398         else
 399         {
 400             arg_1.equals((new Object[var_32])[var_32]);
 401         }
 402         ((var_31 ^= true) ? "x" : "euc").substring(+ (var_30 ^= var_30) & (byte)(new short[var_30])[var_30 /= 4.220757896697652E307]);
 403         arg_2 = var_31 ? (Tester_Class_2)arg_1 : (Tester_Class_2)arg_2;
 404         arg_2 = (Tester_Class_2)(new Object[var_32][var_32])[var_30][var_32];
 405         return 9.932983E36F * (Tester_Class_2.var_13 = arg_3);
 406     }
 407 
 408     public int func_2(Tester_Class_0 arg_0)
 409     {
 410         "ptwusxrxn".indexOf("v");
 411         var_30 |= 1770666843;
 412         var_29 += (short)(Tester_Class_2.var_14 / Tester_Class_2.var_14);
 413         if (var_31)
 414         {
 415             var_30 = var_32;
 416         }
 417         else
 418         {
 419             double var_36;
 420         }
 421         if (true)
 422         {
 423             var_30 -= 2.1474216E38F;
 424         }
 425         else
 426         {
 427             var_29 += 'f';
 428         }
 429         var_29 -= Tester_Class_2.var_14;
 430         if (false)
 431         {
 432             arg_0.var_1 = arg_0;
 433         }
 434         else
 435         {
 436             arg_0 = (var_28 = (var_28 = arg_0));
 437         }
 438         {
 439             Tester_Class_2.var_13 = 'p';
 440         }
 441         var_29 = ~Tester_Class_2.var_14 % 'y';
 442         switch (var_30 >>>= var_30)
 443         {
 444             case 115:
 445 
 446         }
 447         arg_0 = arg_0;
 448         var_31 ^= (var_31 = true);
 449         return "".charAt(~var_32) >> ((var_31 &= true) ? var_30 : var_32);
 450     }
 451 
 452     protected double func_3(boolean[] arg_0, double arg_1, long[][] arg_2)
 453     {
 454         switch (var_31 ? (short)(var_32 / (arg_1 /= (int)(arg_1 *= (Tester_Class_2.var_13 = ']')))) : (var_30 ^= + +Tester_Class_2.var_14 * (+ +3075166460237931520L / '[')))
 455         {
 456             case 31:
 457 
 458             case 118:
 459 
 460         }
 461         Tester_Class_2.var_13 = 'm';
 462         "mwkh".indexOf("hdgiquve", (new char[var_32])[var_30 &= 'S'] % var_30);
 463         final boolean var_37 = false;
 464         char var_38 = 'F';
 465         var_28 = (new Tester_Class_2[var_30][var_30])[var_30 *= var_38][var_32];
 466         new Tester_Class_0().var_1 = new char[var_32][var_30];
 467         var_30 &= var_30;
 468         var_31 |= (var_31 |= true);
 469         int var_39 = 1769831681;
 470         final Tester_Class_2 var_40 = (var_31 |= false ? var_31 : var_37) ? (Tester_Class_2)((new Object[var_30][var_30][var_32])[var_30 <<= var_30])[var_30][var_30++] : (Tester_Class_2)new Tester_Class_0();
 471         var_30 -= +var_30;
 472         "dvmuim".replaceFirst("clmisuxu", "".toLowerCase() + "xi");
 473         var_39 = var_38 - (short)585806817;
 474         arg_1 += (double)(short)(6.4329855E37F / var_32 * (var_38 += 'w'));
 475         ++var_39;
 476         var_40.var_1 = (var_28 = (var_28 = var_40));
 477         var_29 /= 3.5705444317400964E306;
 478         Tester_Interface_1 var_41;
 479         return arg_1;
 480     }
 481 
 482     final char func_4(final long arg_0, int arg_1, final int arg_2)
 483     {
 484         {
 485             Tester_Class_2.var_13 = 'D';
 486             var_31 = false;
 487         }
 488         if (var_31)
 489         {
 490             var_30--;
 491             Tester_Class_0 var_42 = var_28 = (new Tester_Class_0[var_32])[var_32];
 492         }
 493         else
 494         {
 495             Tester_Class_2.var_13 = (Tester_Class_2.var_13 = 'H');
 496         }
 497         var_28 = (Tester_Class_2)(new Tester_Class_2().var_1 = (var_28 = (new Tester_Class_0[var_30])[var_30]));
 498         arg_1 &= var_32;
 499         --var_30;
 500         return Tester_Class_2.var_13 = 'n';
 501     }
 502 
 503     final static Object func_5()
 504     {
 505         var_28 = (Tester_Class_2)(! (var_31 |= true & var_31) ? (new Tester_Class_0[var_30])[var_30] : (var_28 = (new Tester_Class_0[var_30])[var_30]));
 506         var_31 |= false;
 507         return var_31 ? (((Tester_Class_2)(new Object[var_30])[var_30]).var_1 = (new Tester_Class_0[var_30 /= 1366944127])[var_30]) : (new Tester_Class_0[var_30][var_30])[var_30 += 1.4070924450257891E307][var_30];
 508     }
 509 
 510     static Tester_Class_2 func_6(final Object arg_0)
 511     {
 512         var_28 = (var_31 ^= true) ? (Tester_Class_2)arg_0 : (Tester_Class_2)arg_0;
 513         ((new Tester[--var_30])[var_30]).var_29 -= -3.0029087E38F * (Tester_Class_2.var_13 = (Tester_Class_2.var_13 = 'k'));
 514         var_28 = (Tester_Class_2)(var_28 = (var_28 = (var_28 = (Tester_Class_0)arg_0)));
 515         return false ? new Tester_Class_2() : new Tester_Class_2();
 516     }
 517 
 518     private static Tester_Interface_1 func_7(byte arg_0, Tester_Class_2 arg_1, final int arg_2, char arg_3)
 519     {
 520         {
 521             var_31 = var_31;
 522             var_31 |= (var_31 &= (var_31 |= !true));
 523             arg_0 += Tester_Class_2.var_14;
 524         }
 525         var_30 = (var_30 *= ((new Tester[arg_0 ^= 1039546367])[arg_0]).var_32);
 526         arg_1.var_1 = (var_31 ^= (var_31 &= !var_31 && !var_31)) ? (arg_1 = (arg_1 = arg_1)) : (new Tester_Class_0[arg_0++][arg_0])[arg_0][arg_0];
 527         arg_1.var_1 = var_31 ? "jpmg" : "epwvupaqp";
 528         var_28 = arg_1;
 529         if (false)
 530         {
 531             arg_1 = arg_1;
 532         }
 533         else
 534         {
 535             arg_3 += var_30 % -9.298157E37F;
 536         }
 537         arg_1.var_1 = ((var_28 = (var_28 = arg_1)).var_1 = ((var_28 = arg_1).var_1 = "rlmf"));
 538         var_28 = (arg_1 = arg_1);
 539         arg_1 = arg_1;
 540         {
 541             var_31 = true;
 542         }
 543         (arg_1 = arg_1).var_1 = (arg_1.var_1 = (arg_1 = arg_1));
 544         final short[] var_43 = new short[(var_31 &= false) ? arg_0 : var_30];
 545         final short var_44 = 18087;
 546         return false ? (new Tester_Interface_1[var_30 %= Tester_Class_2.var_14])[arg_0 -= 8.913955E37F * +arg_0] : (new Tester_Interface_1[var_30])[var_30];
 547     }
 548 
 549     private static float func_8(final Object[] arg_0, final byte arg_1, Tester_Class_0[] arg_2)
 550     {
 551         ((new Tester_Class_2[var_30 /= -2.37832E38F])[((new Tester[arg_1])[(new byte[arg_1])[arg_1]]).var_32]).var_1 = new Tester_Interface_1[arg_1];
 552         if (var_31)
 553         {
 554             var_28 = (Tester_Class_2)(var_28 = arg_2[var_30]);
 555         }
 556         else
 557         {
 558             var_30 -= Tester_Class_2.var_14;
 559             final int var_45 = 1864933386;
 560             final Tester_Class_0 var_46 = var_28 = (new Tester_Class_2[arg_1][var_30 |= Tester_Class_2.var_14])[((new Tester[arg_1][var_30])[var_30][var_30]).var_32][arg_1];
 561             var_31 &= (var_31 ^= false);
 562             var_30 += (false ? 2.7581227E37F : + +1.8832631E38F) * ('P' * -1.9479086E38F);
 563         }
 564         (var_28 = (Tester_Class_2)arg_2[arg_1]).var_1 = (new Tester_Class_2[var_30][arg_1][arg_1])[arg_1];
 565         ++var_30;
 566         (var_28 = (new Tester_Class_2[var_30])[arg_1]).var_1 = false ? (new Tester_Class_0[var_30][var_30])[var_30][arg_1] : arg_2[var_30];
 567         var_31 |= false;
 568         ((new Tester[arg_1][var_30 >>>= (char)1981599])[arg_1][arg_1]).var_29 = false ^ (var_31 = var_31) ? (Tester_Class_2.var_13 = "nes".charAt(1080898679)) : - (var_30 %= 'n') ^ arg_1;
 569         {
 570             ((new Tester[arg_1])[var_30]).var_29 = (short)(Tester_Class_2.var_13 = (Tester_Class_2.var_13 = 'h'));
 571         }
 572         Tester_Class_2.var_13 = 'j';
 573         ((new Tester_Class_2[arg_1])[var_30]).var_1 = new byte[var_30];
 574         var_31 ^= (var_31 ^= !false);
 575         "wcbi".toString();
 576         final byte var_47 = var_30;
 577         if (true)
 578         {
 579             "mpbkilw".substring(199662864);
 580         }
 581         else
 582         {
 583             var_30++;
 584         }
 585         Tester_Class_2.var_13 = '`';
 586         "yujypq".indexOf("crve" + "inmvh", false ? ~arg_1 : "vukbkc".charAt(528096652));
 587         Tester_Class_2 var_48 = (Tester_Class_2)((!var_31 & (var_31 ^= false ^ !true) ? false | !true : false) ? (var_28 = (Tester_Class_2)arg_0[var_30]) : (new Tester_Class_2[arg_1])[var_30]);
 588         return (float)(var_31 ^ var_31 ? (var_30 ^= (short)((new Tester[var_30])[var_30]).var_29) : (var_30 /= - -5.917837279005691E307 - - +3.2004715720509636E306));
 589     }
 590 
 591     final Tester_Class_0 func_9()
 592     {
 593         var_30 += -3531557622894482432L / ~var_30;
 594         var_28 = (var_28 = (new Tester_Class_2[var_30 += + -7.0203367E37F])[var_30]);
 595         var_31 ^= ! !false ^ false;
 596         if (true)
 597         {
 598             byte[] var_49;
 599             var_31 &= true;
 600             short var_50 = 14869;
 601         }
 602         else
 603         {
 604             (((new Tester[var_32][var_30][var_32])[var_30])[var_32][var_30]).var_29 *= 'h';
 605         }
 606         final int var_51 = false ? +var_32 >>> ~var_30 : --var_30;
 607         var_31 |= false;
 608         return (new Tester_Class_0[var_32][var_32])[var_30][var_30];
 609     }
 610 
 611     public static Object func_10()
 612     {
 613         Tester_Class_2.var_13 = (Tester_Class_2.var_13 = 'O');
 614         return ((Tester_Class_2)(new Object[--var_30])[var_30]).var_1 = (((Tester_Class_2)(new Object[var_30])[var_30]).var_1 = "iu");
 615     }
 616 
 617     protected byte func_11(final Tester_Interface_1[] arg_0)
 618     {
 619         {
 620             --var_30;
 621             var_29 *= (short)1749707986816114688L;
 622             var_31 = (var_31 = (var_31 |= var_31));
 623             var_30 -= 6.4575257E37F;
 624         }
 625         var_28 = (var_28 = func_9());
 626         Tester_Class_2.var_13 = 'b';
 627         var_30--;
 628         var_28 = (var_28 = (var_28 = (var_28 = (Tester_Class_2)func_10())));
 629         var_28 = (new Tester_Class_2[var_32])[var_30];
 630         char var_52 = (var_31 = false) ? (char)+ +Tester_Class_2.var_14 : (Tester_Class_2.var_13 = (Tester_Class_2.var_13 = '_'));
 631         if (false)
 632         {
 633             var_30 += (short)(var_32 + 840104459);
 634         }
 635         else
 636         {
 637             var_29 /= 2.5320765E38F;
 638         }
 639         if (true)
 640         {
 641             var_30 %= 379977167934025728L;
 642         }
 643         else
 644         {
 645             var_52 = var_52;
 646         }
 647         var_30 >>= ('A' ^ --var_30) & 'H';
 648         Tester_Class_2 var_53;
 649         final int var_54 = 771623383;
 650         var_29 %= (+1.938582E37F - 'G') * ++var_30;
 651         int var_55 = (short)6.234053079170724E306 - (int)'^' / ((var_31 &= (var_31 ^= var_31)) ? (short)var_30 : ++var_30);
 652         var_55 >>>= var_55 / ~6865244393150017536L;
 653         var_31 ^= !false;
 654         return var_30 >>>= 4351766607072508928L >> func_0(var_32, var_31, 1.021781609675458E308);
 655     }
 656 
 657     public static String execute()
 658     {
 659         try {
 660             Tester t = new Tester();
 661             try { t.test(); }
 662             catch(Throwable e) { }
 663             try { return t.toString(); }
 664             catch (Throwable e) { return "Error during result conversion to String"; }
 665         } catch (Throwable e) { return "Error during test execution"; }
 666     }
 667 
 668     public static void main(String[] args)
 669     {
 670         try {
 671             Tester t = new Tester();
 672             try { t.test(); }
 673             catch(Throwable e) { }
 674             try { System.out.println(t); }
 675             catch(Throwable e) { }
 676         } catch (Throwable e) { }
 677     }
 678 
 679     private void test()
 680     {
 681         {
 682             ((Tester_Class_2)(Tester_Class_0)((var_31 = true) ^ (var_31 |= false & true) ? func_10() : new Tester_Class_2[var_32])).var_1 = ((var_28 = new Tester_Class_0()).var_1 = (new Tester_Class_0().var_1 = new Tester_Class_2()));
 683         }
 684         new String();
 685         Tester_Class_2.var_13 = '[';
 686         var_28 = (Tester_Class_2)(((var_31 ^= true) ? func_9() : new Tester_Class_0()).var_1 = new Tester_Class_2());
 687         var_28 = new Tester_Class_0();
 688         new String();
 689         {
 690             if ((new boolean[var_30])[var_30] & 732877932 == 1.4654316E38F & "xpqy".replace(']', 'f').startsWith("pqrqunvfx") ? ((var_31 ^= (var_31 &= var_31)) ? !var_31 : (var_31 &= true)) : var_31)
 691             {
 692                 var_31 &= var_31;
 693             }
 694             else
 695             {
 696                 func_2(var_28 = new Tester_Class_0());
 697             }
 698             {
 699                 ((new Tester_Class_0[var_30][var_30])[var_30][var_30]).var_1 = "uwrbjvl";
 700                 var_28 = (Tester_Class_0)func_5();
 701             }
 702             Tester_Class_2.var_13 = 's';
 703             Tester_Class_0 var_56 = var_28 = true ? func_6(func_5()) : (new Tester_Class_2[var_30][var_32])[var_32][var_32];
 704             double var_57 = 0;
 705             var_29 += 1024895641427426304L % ~ ~Tester_Class_2.var_14;
 706             while ((true || (var_31 = var_31)) && var_57 < 12)
 707             {
 708                 (false & !false ? var_56 : (var_56 = var_56)).var_1 = "vbc";
 709                 var_57++;
 710                 var_29 += func_0(var_30 /= (short)var_30 / var_32, false, var_57);
 711                 (var_31 ? (Tester_Class_2)var_56 : (new Tester_Class_2[var_30])[var_30]).var_1 = new double[var_31 ? (var_30 |= 177265600183083008L) : var_32];
 712             }
 713             switch (var_31 ^ var_31 | ! (var_31 = false) & (var_31 & false) ? (true ? (short)var_30 : func_0(var_30, true, var_57)) : func_0(var_30, var_31, var_29 /= 2.7203017E38F))
 714             {
 715                 case 23:
 716                     var_31 ^= true ? var_31 : var_31;
 717                     break;
 718 
 719                 case 40:
 720 
 721                 default:
 722 
 723                 case 104:
 724 
 725             }
 726             Object var_58 = (var_31 ^= (var_31 ^= false) | (~3392263608888292352L < 1681682009 | var_31)) ? (((new Tester_Class_2[Tester_Class_2.func_5(Tester_Class_2.var_14, 3.3507317E38F, var_57)])[var_30 %= var_32]).var_1 = (var_56 = (Tester_Class_0)func_5())) : func_5();
 727             (var_56 = (var_28 = (var_56 = func_6(var_58)))).var_1 = (((new Tester_Class_2[var_30])[var_30]).var_1 = new float[(byte)Tester_Class_2.var_14][var_32]);
 728             new Tester_Class_2().var_1 = new double[var_30];
 729             final Tester_Class_0 var_59 = var_28 = (!false & (false || (var_31 && !var_31) & false) ? var_31 : (var_31 |= !var_31)) ? (Tester_Class_2)(var_28 = new Tester_Class_2()) : (false ? new Tester_Class_2() : (Tester_Class_2)var_58);
 730         }
 731         var_30--;
 732         {
 733             var_29 += ~func_11(((new Tester_Interface_1[var_32][var_30][var_32])[var_30 ^= var_30])[var_32]);
 734         }
 735         float var_60 = 0F;
 736         double var_61 = var_29;
 737         do
 738         {
 739             long var_62;
 740             var_60++;
 741             "vcs".offsetByCodePoints((short)('w' | (short)var_30) & (new short[--var_30])[var_30], ((var_31 |= var_31) ^ (var_31 = var_31) ? var_32 : var_30) - (short)86413218);
 742         } while (false && (var_60 < 100 && ((var_31 = false) ? var_31 : (var_31 ^= false)) & var_31));
 743         long var_63 = 0L;
 744         double var_64 = (var_31 ? (Tester_Class_2.var_13 = 'V') : 'e') - (var_29 = 'A') * (var_29 = var_30);
 745         var_31 &= (short)+ var_30-- + var_30 <= var_60;
 746         while (false && (var_63 < 23 && false))
 747         {
 748             var_30 >>= func_0(var_30, var_31, var_29) ^ ("".endsWith("mecvlajq" + "jhrbf") ? var_30 : (short)var_61);
 749             var_63++;
 750             var_28 = (Tester_Class_2)(var_28 = new Tester_Class_2());
 751             new Tester_Class_0();
 752         }
 753         double var_65 = 0;
 754         var_61 -= var_65;
 755         for (((var_31 &= (var_31 ^= var_31)) | var_31 ? new Tester_Class_2() : new Tester_Class_2()).var_1 = ! (var_31 = false) && !var_31 ? func_10() : new Object[var_32][var_32]; var_31 | var_31 && (var_65 < 107 && (false ? !var_31 : (var_31 &= var_31))); var_30 *= Tester_Class_2.var_14)
 756         {
 757             var_28 = var_30 > (var_31 | true ? (Tester_Class_2.var_13 = (Tester_Class_2.var_13 = 'k')) : (Tester_Class_2.var_13 = (Tester_Class_2.var_13 = 'r'))) ? (Tester_Class_2)((var_28 = (Tester_Class_0)func_5()).var_1 = func_5()) : new Tester_Class_2();
 758             var_65++;
 759             var_29 = "efothsl".startsWith("qk") ? 3.2306712E37F : +1.1835607464479516E308;
 760             new Tester_Class_2().var_1 = new Tester_Class_0();
 761         }
 762         double var_66 = 0;
 763         func_6(((Tester_Class_2)((true ? (Tester_Class_2)func_10() : (Tester_Class_2)func_9()).var_1 = (var_28 = (Tester_Class_2)func_10()))).var_1 = "");
 764         while (false | (new boolean[var_30][var_30])[var_30][var_32] && (var_66 < 104 && false))
 765         {
 766             ((var_31 ^= !false) ? "" : "slgr").toUpperCase();
 767             var_66++;
 768             var_28 = func_6(func_9().var_1 = func_10());
 769             var_31 |= (var_31 |= true);
 770         }
 771         Tester_Class_2.var_13 = var_31 ? (Tester_Class_2.var_13 = 'Y') : (Tester_Class_2.var_13 = (Tester_Class_2.var_13 = (Tester_Class_2.var_13 = func_4(var_63, 137999726, 1870981930))));
 772         int var_67 = 0;
 773         final double var_68 = 9.955130040461458E307;
 774         do
 775         {
 776             "".lastIndexOf(var_32 != (Tester_Class_2.var_13 = 'f') ? (Tester_Class_2.var_13 = 'C') : ~var_30, (char)3.187607E38F + (var_30 /= var_30));
 777             var_67++;
 778             Tester_Class_2.var_13 = (Tester_Class_2.var_13 = 'B');
 779         } while (var_67 < 9 && var_31 ^ var_31);
 780         int var_69 = 0;
 781         (true ? func_6(func_10()) : (Tester_Class_2)func_9()).var_1 = ((var_28 = (var_28 = new Tester_Class_2())).var_1 = (func_6(new Tester_Class_2().var_1 = new Tester_Class_0()).var_1 = (Tester_Class_2)func_9()));
 782         do
 783         {
 784             var_28 = (Tester_Class_2)(var_28 = (Tester_Class_0)(new Tester_Class_2().var_1 = "qs"));
 785             var_69++;
 786             var_31 ^= var_31;
 787         } while (var_69 < 189);
 788         (! (var_31 = true) | var_31 ? new Tester_Class_2() : (new Tester_Class_0[var_30])[var_30]).var_1 = (((new Tester_Class_2[var_30 ^= (short)var_30])[var_30]).var_1 = (var_31 ? var_31 : (var_31 |= false)) ? "lfhliyphg" : "impovq");
 789         ((var_31 ? var_32 == (short)8901596111720974336L : 220705842 != var_60) ? (new Tester_Class_2[var_30])[var_32] : (new Tester_Class_2[var_30][var_32])[var_30][var_30]).var_1 = (var_28 = ((char)var_30 >= "pngjthlf".lastIndexOf("jjbuojp") & var_31 ? var_31 : var_31) ? (new Tester_Class_2[var_32])[var_30] : func_6(new Tester_Class_2().var_1 = new String[var_32]));
 790         Tester_Class_2.var_13 = 'c';
 791     }
 792     public String toString()
 793     {
 794         String result =  "[\n";
 795         result += "Tester.var_29 = "; result += Printer.print(var_29);
 796         result += "\n";
 797         result += "Tester.var_30 = "; result += Printer.print(var_30);
 798         result += "\n";
 799         result += "Tester.var_32 = "; result += Printer.print(var_32);
 800         result += "\n";
 801         result += "Tester.var_31 = "; result += Printer.print(var_31);
 802         result += "\n";
 803         result += "Tester.var_28 = "; result += Printer.print(var_28);
 804         result += "";
 805         result += "\n]";
 806         return result;
 807     }
 808     static class Printer
 809     {
 810         public static String print(boolean arg) { return String.valueOf(arg); }
 811         public static String print(byte arg)    { return String.valueOf(arg); }
 812         public static String print(short arg)   { return String.valueOf(arg); }
 813         public static String print(char arg)    { return String.valueOf((int)arg); }
 814         public static String print(int arg)     { return String.valueOf(arg); }
 815         public static String print(long arg)    { return String.valueOf(arg); }
 816         public static String print(float arg)   { return String.valueOf(arg); }
 817         public static String print(double arg)  { return String.valueOf(arg); }
 818 
 819 
 820         public static String print(Object arg)
 821         {
 822             return print_r(new java.util.Stack(), arg);
 823         }
 824 
 825         private static String print_r(java.util.Stack visitedObjects, Object arg)
 826         {
 827             String result = "";
 828             if (arg == null)
 829                 result += "null";
 830             else
 831             if (arg.getClass().isArray())
 832             {
 833                 for (int i = 0; i < visitedObjects.size(); i++)
 834                     if (visitedObjects.elementAt(i) == arg) return "<recursive>";
 835 
 836                 visitedObjects.push(arg);
 837 
 838                 final String delimiter = ", ";
 839                 result += "[";
 840 
 841                 if (arg instanceof Object[])
 842                 {
 843                     Object[] array = (Object[]) arg;
 844                     for (int i = 0; i < array.length; i++)
 845                     {
 846                         result += print_r(visitedObjects, array[i]);
 847                         if (i < array.length - 1) result += delimiter;
 848                     }
 849                 }
 850                 else
 851                 if (arg instanceof boolean[])
 852                 {
 853                     boolean[] array = (boolean[]) arg;
 854                     for (int i = 0; i < array.length; i++)
 855                     {
 856                         result += print(array[i]);
 857                         if (i < array.length - 1) result += delimiter;
 858                     }
 859                 }
 860                 else
 861                 if (arg instanceof byte[])
 862                 {
 863                     byte[] array = (byte[]) arg;
 864                     for (int i = 0; i < array.length; i++)
 865                     {
 866                         result += print(array[i]);
 867                         if (i < array.length - 1) result += delimiter;
 868                     }
 869                 }
 870                 else
 871                 if (arg instanceof short[])
 872                 {
 873                     short[] array = (short[]) arg;
 874                     for (int i = 0; i < array.length; i++)
 875                     {
 876                         result += print(array[i]);
 877                         if (i < array.length - 1) result += delimiter;
 878                     }
 879                 }
 880                 else
 881                 if (arg instanceof char[])
 882                 {
 883                     char[] array = (char[]) arg;
 884                     for (int i = 0; i < array.length; i++)
 885                     {
 886                         result += print(array[i]);
 887                         if (i < array.length - 1) result += delimiter;
 888                     }
 889                 }
 890                 else
 891                 if (arg instanceof int[])
 892                 {
 893                      int[] array = (int[]) arg;
 894                      for (int i = 0; i < array.length; i++)
 895                      {
 896                         result += print(array[i]);
 897                         if (i < array.length - 1) result += delimiter;
 898                      }
 899                 }
 900                 else
 901                 if (arg instanceof long[])
 902                 {
 903                     long[] array = (long[]) arg;
 904                     for (int i = 0; i < array.length; i++)
 905                     {
 906                         result += print(array[i]);
 907                         if (i < array.length - 1) result += delimiter;
 908                     }
 909                 }
 910                 else
 911                 if (arg instanceof float[])
 912                 {
 913                     float[] array = (float[]) arg;
 914                     for (int i = 0; i < array.length; i++)
 915                     {
 916                         result += print(array[i]);
 917                         if (i < array.length - 1) result += delimiter;
 918                     }
 919                 }
 920                 else
 921                 if (arg instanceof double[])
 922                 {
 923                     double[] array = (double[]) arg;
 924                     for (int i = 0; i < array.length; i++)
 925                     {
 926                         result += print(array[i]);
 927                         if (i < array.length - 1) result += delimiter;
 928                     }
 929                 }
 930 
 931                 result += "]";
 932                 visitedObjects.pop();
 933 
 934             } else
 935             {
 936                 result += arg.toString();
 937             }
 938 
 939             return result;
 940         }
 941     }
 942 }
 943 
 944