home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Java / AnfyJava14 / data1.cab / Program_Files / Applet / morphmenu / morphmenu.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-19  |  20.4 KB  |  1,731 lines

  1. import java.applet.Applet;
  2. import java.awt.Color;
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.Event;
  6. import java.awt.Font;
  7. import java.awt.FontMetrics;
  8. import java.awt.Frame;
  9. import java.awt.Graphics;
  10. import java.awt.Image;
  11. import java.awt.Insets;
  12. import java.awt.Label;
  13. import java.awt.LayoutManager;
  14. import java.awt.MediaTracker;
  15. import java.awt.Panel;
  16. import java.awt.Toolkit;
  17. import java.awt.image.DirectColorModel;
  18. import java.awt.image.ImageObserver;
  19. import java.awt.image.MemoryImageSource;
  20. import java.awt.image.PixelGrabber;
  21. import java.io.ByteArrayOutputStream;
  22. import java.io.IOException;
  23. import java.io.InputStream;
  24. import java.io.OutputStream;
  25. import java.net.MalformedURLException;
  26. import java.net.URL;
  27.  
  28. public class morphmenu extends Applet implements Runnable, ImageObserver {
  29.    // $FF: renamed from: a java.awt.Frame
  30.    Frame field_0;
  31.    // $FF: renamed from: b boolean
  32.    boolean field_1 = false;
  33.    // $FF: renamed from: c java.lang.String
  34.    final String field_2 = method_13("\u001b:'^S.j5K\u0016\u001b$1K\u0016\u000e/6_\u0016r= E\u0018;$1K\\;<6\u001cU5'~");
  35.    // $FF: renamed from: d int
  36.    int field_3;
  37.    // $FF: renamed from: e int
  38.    int field_4;
  39.    // $FF: renamed from: f int
  40.    int field_5;
  41.    // $FF: renamed from: g java.awt.Color
  42.    Color field_6;
  43.    // $FF: renamed from: h morphmenub
  44.    morphmenub field_7;
  45.    // $FF: renamed from: i int
  46.    int field_8;
  47.    // $FF: renamed from: j int[]
  48.    int[] field_9;
  49.    // $FF: renamed from: k long
  50.    long field_10;
  51.    // $FF: renamed from: l int
  52.    int field_11;
  53.    // $FF: renamed from: m int[]
  54.    int[] field_12;
  55.    // $FF: renamed from: n int
  56.    int field_13;
  57.    // $FF: renamed from: o int
  58.    int field_14;
  59.    // $FF: renamed from: p boolean
  60.    boolean field_15 = false;
  61.    // $FF: renamed from: q boolean
  62.    boolean field_16 = false;
  63.    // $FF: renamed from: r int
  64.    int field_17;
  65.    // $FF: renamed from: s int
  66.    int field_18;
  67.    // $FF: renamed from: t int
  68.    int field_19;
  69.    // $FF: renamed from: u java.awt.Color
  70.    Color field_20;
  71.    // $FF: renamed from: v java.awt.Frame
  72.    Frame field_21;
  73.    // $FF: renamed from: w java.awt.Graphics
  74.    private Graphics field_22;
  75.    // $FF: renamed from: x java.awt.Image
  76.    private Image field_23;
  77.    // $FF: renamed from: y java.awt.Graphics
  78.    private Graphics field_24;
  79.    // $FF: renamed from: z java.lang.String
  80.    String field_25;
  81.    // $FF: renamed from: A boolean
  82.    boolean field_26 = false;
  83.    // $FF: renamed from: B java.net.URL
  84.    URL field_27;
  85.    // $FF: renamed from: C int[]
  86.    static int[] field_28;
  87.    // $FF: renamed from: D int
  88.    int field_29;
  89.    // $FF: renamed from: E int
  90.    int field_30;
  91.    // $FF: renamed from: F int
  92.    int field_31;
  93.    // $FF: renamed from: G int
  94.    int field_32;
  95.    // $FF: renamed from: H int
  96.    int field_33 = 30;
  97.    // $FF: renamed from: I int
  98.    int field_34;
  99.    // $FF: renamed from: J int
  100.    int field_35 = 100;
  101.    // $FF: renamed from: K int
  102.    int field_36;
  103.    // $FF: renamed from: L int
  104.    int field_37;
  105.    // $FF: renamed from: M java.awt.Graphics
  106.    Graphics field_38;
  107.    // $FF: renamed from: N java.awt.Image
  108.    Image field_39;
  109.    // $FF: renamed from: O morphmenuc[]
  110.    static morphmenuc[] field_40;
  111.    // $FF: renamed from: P java.awt.Font
  112.    Font field_41;
  113.    // $FF: renamed from: Q int
  114.    int field_42;
  115.    // $FF: renamed from: R boolean
  116.    private boolean field_43 = false;
  117.    // $FF: renamed from: S int[][]
  118.    int[][] field_44;
  119.    // $FF: renamed from: T int[]
  120.    int[] field_45;
  121.    // $FF: renamed from: U int
  122.    int field_46;
  123.    // $FF: renamed from: V int
  124.    int field_47;
  125.    // $FF: renamed from: W int[]
  126.    int[] field_48;
  127.    // $FF: renamed from: X int
  128.    private int field_49;
  129.    // $FF: renamed from: Y int
  130.    private int field_50 = 5;
  131.    // $FF: renamed from: Z boolean
  132.    boolean field_51 = false;
  133.    // $FF: renamed from: ba boolean
  134.    boolean field_52 = true;
  135.    // $FF: renamed from: bb int
  136.    int field_53;
  137.    // $FF: renamed from: bc int
  138.    int field_54;
  139.    // $FF: renamed from: bd float[]
  140.    float[] field_55;
  141.    // $FF: renamed from: be float[]
  142.    float[] field_56;
  143.    // $FF: renamed from: bf java.awt.Color
  144.    Color field_57;
  145.    // $FF: renamed from: bg boolean
  146.    boolean field_58 = false;
  147.    // $FF: renamed from: bh int[][]
  148.    static int[][] field_59;
  149.    // $FF: renamed from: bi int
  150.    int field_60;
  151.    // $FF: renamed from: bj java.awt.Graphics
  152.    private Graphics field_61;
  153.    // $FF: renamed from: bk java.awt.Image
  154.    private Image field_62;
  155.    // $FF: renamed from: bl boolean
  156.    boolean field_63 = false;
  157.    // $FF: renamed from: bm int
  158.    int field_64 = -1;
  159.    // $FF: renamed from: bn java.awt.Image
  160.    private Image field_65;
  161.    // $FF: renamed from: bo int
  162.    int field_66;
  163.    // $FF: renamed from: bp int
  164.    int field_67;
  165.    // $FF: renamed from: bq int
  166.    int field_68;
  167.    // $FF: renamed from: br anfy
  168.    anfy field_69;
  169.    // $FF: renamed from: bs java.awt.image.MemoryImageSource
  170.    MemoryImageSource field_70;
  171.    // $FF: renamed from: bt int
  172.    int field_71;
  173.    // $FF: renamed from: bu float[]
  174.    static float[] field_72;
  175.    // $FF: renamed from: bv int
  176.    int field_73;
  177.    // $FF: renamed from: bw int
  178.    int field_74;
  179.    // $FF: renamed from: bx boolean
  180.    boolean field_75 = false;
  181.    // $FF: renamed from: by java.lang.String
  182.    String field_76;
  183.    // $FF: renamed from: bz java.lang.String
  184.    String field_77;
  185.    // $FF: renamed from: bA int[]
  186.    int[] field_78;
  187.    // $FF: renamed from: bB int
  188.    int field_79;
  189.    // $FF: renamed from: bC int[]
  190.    int[] field_80;
  191.    // $FF: renamed from: bD int
  192.    int field_81;
  193.    // $FF: renamed from: bE java.lang.String
  194.    String field_82 = "";
  195.    // $FF: renamed from: bF int
  196.    int field_83;
  197.    // $FF: renamed from: bG long
  198.    long field_84;
  199.    // $FF: renamed from: bH int
  200.    int field_85;
  201.    // $FF: renamed from: bI java.awt.Toolkit
  202.    Toolkit field_86;
  203.    // $FF: renamed from: bJ java.lang.Thread
  204.    Thread field_87;
  205.    // $FF: renamed from: bK int[]
  206.    static int[] field_88;
  207.    // $FF: renamed from: bL int
  208.    int field_89;
  209.    // $FF: renamed from: bM Lware
  210.    Lware field_90;
  211.    // $FF: renamed from: bN java.awt.Graphics
  212.    private Graphics field_91;
  213.    // $FF: renamed from: bO java.awt.Image
  214.    private Image field_92;
  215.    // $FF: renamed from: bP float[]
  216.    float[] field_93;
  217.    // $FF: renamed from: bQ float[]
  218.    float[] field_94;
  219.  
  220.    // $FF: renamed from: a (java.lang.String, int) int
  221.    final int method_0(String var1, int var2) {
  222.       field_40[this.field_31] = new morphmenuc(var1, this.field_35, this.field_33, this.field_31);
  223.       Image var4 = ((Component)this).createImage(this.field_35, this.field_33);
  224.       Graphics var5 = var4.getGraphics();
  225.       var5.setFont(this.field_41);
  226.       FontMetrics var3 = var5.getFontMetrics(this.field_41);
  227.       String var6 = "";
  228.       if (var1.equals(method_13("fgz\u001f"))) {
  229.          var2 = 0;
  230.  
  231.          try {
  232.             var6 = System.getProperty(method_13("888EE?8yDS4.8@"));
  233.          } catch (SecurityException var13) {
  234.             var6 = "";
  235.          }
  236.       }
  237.  
  238.       if (var1.equals(method_13("fgz\u001f")) && this.field_26 && !var6.startsWith(method_13("\u0014/#AU;:2"))) {
  239.          int var14 = var3.stringWidth(var1);
  240.          int[] var8 = new int[3];
  241.          int[] var9 = new int[3];
  242.          var8[0] = this.field_35 / 2 - var14 / 2;
  243.          var9[0] = this.field_33 / 2;
  244.          var8[1] = this.field_35 / 2 + var14 / 2;
  245.          var9[1] = this.field_33 / 2 - this.field_18 / 2;
  246.          var8[2] = this.field_35 / 2 + var14 / 2;
  247.          var9[2] = this.field_33 / 2 + this.field_18 / 2;
  248.          var5.fillPolygon(var8, var9, 3);
  249.       } else {
  250.          int var7 = var3.stringWidth(var1);
  251.          switch (this.field_13) {
  252.             case 0:
  253.                var5.drawString(var1, 1, (this.field_33 - this.field_18) / 2 + this.field_18);
  254.                if (var2 == 1) {
  255.                   var5.drawLine(1, (this.field_33 - this.field_18) / 2 + this.field_18 + 2, 1 + var7, (this.field_33 - this.field_18) / 2 + this.field_18 + 2);
  256.                }
  257.                break;
  258.             case 1:
  259.                var5.drawString(var1, (this.field_35 - var7) / 2, (this.field_33 - this.field_18) / 2 + this.field_18);
  260.                if (var2 == 1) {
  261.                   var5.drawLine((this.field_35 - var7) / 2, (this.field_33 - this.field_18) / 2 + this.field_18 + 2, (this.field_35 - var7) / 2 + var7, (this.field_33 - this.field_18) / 2 + this.field_18 + 2);
  262.                }
  263.                break;
  264.             case 2:
  265.                var5.drawString(var1, this.field_35 - var7, (this.field_33 - this.field_18) / 2 + this.field_18);
  266.                if (var2 == 1) {
  267.                   var5.drawLine(this.field_35 - var7, (this.field_33 - this.field_18) / 2 + this.field_18 + 2, this.field_35 - var7 + var7, (this.field_33 - this.field_18) / 2 + this.field_18 + 2);
  268.                }
  269.          }
  270.       }
  271.  
  272.       this.method_9(var4, 0, 0, this.field_35, this.field_33, field_40[this.field_31].a, 0, this.field_35);
  273.       int var15 = this.field_33 * this.field_35;
  274.       int var16 = 0;
  275.       int var18 = 0;
  276.       var16 = field_40[this.field_31].a[0];
  277.  
  278.       for(int var10 = 0; var10 < var15; ++var10) {
  279.          if (var16 != field_40[this.field_31].a[var10]) {
  280.             var18 = field_40[this.field_31].a[var10];
  281.             break;
  282.          }
  283.       }
  284.  
  285.       for(int var11 = 0; var11 < var15; ++var11) {
  286.          if (field_40[this.field_31].a[var11] == var16) {
  287.             field_40[this.field_31].a[var11] = 0;
  288.          } else {
  289.             field_40[this.field_31].a[var11] = -1;
  290.          }
  291.       }
  292.  
  293.       for(int var12 = 0; var12 < var15; ++var12) {
  294.          field_40[this.field_31].j[var12] = field_40[this.field_31].a[var12] &= 16777215;
  295.       }
  296.  
  297.       ++this.field_31;
  298.       return this.field_31 - 1;
  299.    }
  300.  
  301.    // $FF: renamed from: a () void
  302.    private final void method_1() {
  303.       while(true) {
  304.          ((Applet)this).showStatus(method_13("\u001e%9\u0015Bz82_Y,/wEA-d6\\P# 6DWt)8_\u0016982V_.9w^_4/w[Xz\u0002\u0003\u007fz{"));
  305.  
  306.          try {
  307.             Thread.sleep(500L);
  308.          } catch (InterruptedException var1) {
  309.          }
  310.       }
  311.    }
  312.  
  313.    public void calc_rand() {
  314.       for(int var1 = 0; var1 < 3713; ++var1) {
  315.          field_72[var1] = (float)Math.random();
  316.       }
  317.  
  318.    }
  319.  
  320.    public synchronized boolean CheckAniGIF() {
  321.       ((Component)this).prepareImage(this.field_65, this);
  322.       if (!this.field_26) {
  323.          return false;
  324.       } else {
  325.          for(int var1 = 0; var1 < 3; ++var1) {
  326.             this.notifyAll();
  327.             Thread.yield();
  328.  
  329.             try {
  330.                Thread.sleep(100L);
  331.             } catch (InterruptedException var2) {
  332.             }
  333.          }
  334.  
  335.          return this.field_63;
  336.       }
  337.    }
  338.  
  339.    // $FF: renamed from: b () void
  340.    private void method_2() {
  341.       this.field_12 = new int[this.field_35 * this.field_33];
  342.  
  343.       for(int var1 = 0; var1 < this.field_35 * this.field_33; ++var1) {
  344.          this.field_12[var1] = 0;
  345.       }
  346.  
  347.       this.field_12[this.field_35 / 2 + this.field_33 / 2 * this.field_35] = -1;
  348.    }
  349.  
  350.    public void createMenus() {
  351.       for(int var1 = 0; var1 < 20; ++var1) {
  352.          for(int var2 = 0; var2 < 20; ++var2) {
  353.             field_59[var1][var2] = -1;
  354.          }
  355.       }
  356.  
  357.       for(int var16 = 0; var16 < 20; ++var16) {
  358.          field_88[var16] = field_28[var16] = -1;
  359.       }
  360.  
  361.       byte[] var12 = new byte[1];
  362.  
  363.       for(int var3 = 0; var3 < 20; ++var3) {
  364.          for(int var4 = 0; var4 < 20; ++var4) {
  365.             if (var3 < 10) {
  366.                var12[0] = (byte)(var3 + 48);
  367.             } else {
  368.                var12[0] = (byte)(var3 + 55);
  369.             }
  370.  
  371.             String var9;
  372.             if (!this.field_26) {
  373.                var9 = new String(var12, 0);
  374.             } else {
  375.                var9 = new String(var12);
  376.             }
  377.  
  378.             if (var4 < 10) {
  379.                var12[0] = (byte)(var4 + 48);
  380.             } else {
  381.                var12[0] = (byte)(var4 + 55);
  382.             }
  383.  
  384.             String var10;
  385.             if (!this.field_26) {
  386.                var10 = new String(var12, 0);
  387.             } else {
  388.                var10 = new String(var12);
  389.             }
  390.  
  391.             String var6 = ((Applet)this).getParameter(method_13("\u0017/9Gb?2#") + var9 + var10);
  392.             if (var6 != null) {
  393.                int var5;
  394.                if (((Applet)this).getParameter(method_13("\u0017/9Gz3$<") + var9 + var10) != null) {
  395.                   field_59[var3][var4] = var5 = this.method_0(var6, 1);
  396.                } else {
  397.                   field_59[var3][var4] = var5 = this.method_0(var6, 0);
  398.                }
  399.  
  400.                if (field_28[var3] == -1) {
  401.                   field_28[var3] = var5;
  402.                }
  403.  
  404.                if (field_88[var3] == -1) {
  405.                   field_88[var3] = var5;
  406.                } else {
  407.                   field_40[field_88[var3]].g = var5;
  408.                   field_88[var3] = var5;
  409.                }
  410.             }
  411.          }
  412.       }
  413.  
  414.       for(int var17 = 0; var17 < 20; ++var17) {
  415.          for(int var18 = 0; var18 < 20; ++var18) {
  416.             if (var17 < 10) {
  417.                var12[0] = (byte)(var17 + 48);
  418.             } else {
  419.                var12[0] = (byte)(var17 + 55);
  420.             }
  421.  
  422.             String var20;
  423.             if (!this.field_26) {
  424.                var20 = new String(var12, 0);
  425.             } else {
  426.                var20 = new String(var12);
  427.             }
  428.  
  429.             if (var18 < 10) {
  430.                var12[0] = (byte)(var18 + 48);
  431.             } else {
  432.                var12[0] = (byte)(var18 + 55);
  433.             }
  434.  
  435.             String var21;
  436.             if (!this.field_26) {
  437.                var21 = new String(var12, 0);
  438.             } else {
  439.                var21 = new String(var12);
  440.             }
  441.  
  442.             String var19 = ((Applet)this).getParameter(method_13("\u0017/9Gb?2#") + var20 + var21);
  443.             if (var19 != null) {
  444.                String var8 = ((Applet)this).getParameter(method_13("\u0017/9Gz3$<") + var20 + var21);
  445.                if (var8 != null) {
  446.                   int var13 = 0;
  447.                   if (var18 < 10) {
  448.                      var12[0] = (byte)(var18 + 48);
  449.                   } else {
  450.                      var12[0] = (byte)(var18 + 55);
  451.                   }
  452.  
  453.                   if (!this.field_26) {
  454.                      var20 = new String(var12, 0);
  455.                   } else {
  456.                      var20 = new String(var12);
  457.                   }
  458.  
  459.                   try {
  460.                      var13 = Integer.valueOf(var8);
  461.                   } catch (NumberFormatException var15) {
  462.                      if (var8.equalsIgnoreCase("a")) {
  463.                         var13 = 10;
  464.                      }
  465.  
  466.                      if (var8.equalsIgnoreCase("b")) {
  467.                         var13 = 11;
  468.                      }
  469.  
  470.                      if (var8.equalsIgnoreCase("c")) {
  471.                         var13 = 12;
  472.                      }
  473.  
  474.                      if (var8.equalsIgnoreCase("d")) {
  475.                         var13 = 13;
  476.                      }
  477.  
  478.                      if (var8.equalsIgnoreCase("e")) {
  479.                         var13 = 14;
  480.                      }
  481.  
  482.                      if (var8.equalsIgnoreCase("f")) {
  483.                         var13 = 15;
  484.                      }
  485.  
  486.                      if (var8.equalsIgnoreCase("g")) {
  487.                         var13 = 16;
  488.                      }
  489.  
  490.                      if (var8.equalsIgnoreCase("h")) {
  491.                         var13 = 17;
  492.                      }
  493.  
  494.                      if (var8.equalsIgnoreCase("i")) {
  495.                         var13 = 18;
  496.                      }
  497.  
  498.                      if (var8.equalsIgnoreCase("j")) {
  499.                         var13 = 19;
  500.                      }
  501.                   }
  502.  
  503.                   field_40[field_59[var17][var18]].b = field_28[var13];
  504.                }
  505.  
  506.                String var7 = ((Applet)this).getParameter(method_13("\u0017/9Gc(&") + var20 + var21);
  507.                if (var7 != null) {
  508.                   try {
  509.                      field_40[field_59[var17][var18]].c = new URL(((Applet)this).getDocumentBase(), var7);
  510.                   } catch (Exception var14) {
  511.                   }
  512.                }
  513.  
  514.                String var11 = ((Applet)this).getParameter(method_13("\u0017/9Gb;80WB") + var20 + var21);
  515.                if (var11 != null) {
  516.                   field_40[field_59[var17][var18]].k = new String(var11);
  517.                } else {
  518.                   field_40[field_59[var17][var18]].k = null;
  519.                }
  520.             }
  521.          }
  522.       }
  523.  
  524.    }
  525.  
  526.    public void destroy() {
  527.       if (this.field_65 != null) {
  528.          this.field_65.flush();
  529.       }
  530.  
  531.       this.field_65 = null;
  532.       if (this.field_62 != null) {
  533.          this.field_62.flush();
  534.       }
  535.  
  536.       this.field_62 = null;
  537.       if (this.field_61 != null) {
  538.          this.field_61.dispose();
  539.       }
  540.  
  541.       this.field_61 = null;
  542.       System.gc();
  543.    }
  544.  
  545.    public final void doublebuf(Graphics var1) {
  546.       this.field_61.drawImage(this.field_23, 0, 0, this);
  547.       if (this.field_65 != null) {
  548.          this.prepaniframe();
  549.       }
  550.  
  551.       this.method_11();
  552.       var1.drawImage(this.field_62, 0, 0, this);
  553.    }
  554.  
  555.    // $FF: renamed from: a (java.lang.String) java.awt.Image
  556.    Image method_3(String var1) {
  557.       try {
  558.          return this.method_4(var1);
  559.       } catch (NoSuchMethodError var2) {
  560.          return this.method_4(var1);
  561.       }
  562.    }
  563.  
  564.    // $FF: renamed from: b (java.lang.String) java.awt.Image
  565.    synchronized Image method_4(String var1) {
  566.       URL var2 = null;
  567.       Image var3 = null;
  568.  
  569.       try {
  570.          var2 = new URL(((Applet)this).getDocumentBase(), var1);
  571.       } catch (MalformedURLException var14) {
  572.       }
  573.  
  574.       try {
  575.          try {
  576.             InputStream var4 = this.getClass().getResourceAsStream(var2.toString());
  577.             if (var4 != null) {
  578.                ByteArrayOutputStream var5 = new ByteArrayOutputStream(1024);
  579.                byte[] var6 = new byte[512];
  580.                boolean var8 = false;
  581.                Object var9 = null;
  582.  
  583.                try {
  584.                   while(!var8) {
  585.                      int var7 = var4.read(var6, 0, 512);
  586.                      if (var7 != -1) {
  587.                         var5.write(var6, 0, var7);
  588.                         ((OutputStream)var5).flush();
  589.                      } else {
  590.                         var8 = true;
  591.                      }
  592.                   }
  593.  
  594.                   var21 = var5.toByteArray();
  595.                   ((OutputStream)var5).close();
  596.                   var4.close();
  597.                } catch (IOException var15) {
  598.                   var21 = null;
  599.                }
  600.  
  601.                System.gc();
  602.                if (var21 != null) {
  603.                   var3 = ((Component)this).getToolkit().createImage(var21);
  604.                   ((Component)this).prepareImage(var3, this);
  605.                }
  606.             }
  607.          } catch (NoSuchMethodError var16) {
  608.          }
  609.       } catch (SecurityException var17) {
  610.       }
  611.  
  612.       if (var3 == null) {
  613.          int var18 = 0;
  614.  
  615.          while(var18 < 5) {
  616.             try {
  617.                if (var18 % 2 == 0) {
  618.                   var3 = Toolkit.getDefaultToolkit().getImage(var2);
  619.                } else {
  620.                   var3 = ((Applet)this).getImage(var2);
  621.                }
  622.  
  623.                ++var18;
  624.                MediaTracker var20 = new MediaTracker(this);
  625.                this.notifyAll();
  626.                Thread.currentThread();
  627.                Thread.yield();
  628.  
  629.                try {
  630.                   var20.addImage(var3, 0);
  631.                   var20.waitForID(0);
  632.                } catch (InterruptedException var12) {
  633.                   var3 = null;
  634.                }
  635.  
  636.                if (var20.isErrorID(0)) {
  637.                   var3 = null;
  638.                } else {
  639.                   var18 = 6;
  640.                }
  641.             } catch (NullPointerException var13) {
  642.                System.gc();
  643.             }
  644.          }
  645.       }
  646.  
  647.       if (var3 == null) {
  648.          for(int var19 = 0; var19 < 25; ++var19) {
  649.             ((Applet)this).showStatus(method_13("\u0013'6USz") + var1 + method_13("z$8F\u0016<%\"\\R{"));
  650.  
  651.             try {
  652.                Thread.currentThread();
  653.                Thread.sleep(250L);
  654.             } catch (InterruptedException var11) {
  655.             }
  656.          }
  657.       } else {
  658.          while(var3.getWidth(this) < 0) {
  659.             this.notifyAll();
  660.             Thread.currentThread();
  661.             Thread.yield();
  662.  
  663.             try {
  664.                Thread.currentThread();
  665.                Thread.sleep(100L);
  666.             } catch (InterruptedException var10) {
  667.             }
  668.          }
  669.       }
  670.  
  671.       return var3;
  672.    }
  673.  
  674.    // $FF: renamed from: c () void
  675.    void method_5() {
  676.       Insets var1 = this.field_21.insets();
  677.       this.field_21.setResizable(true);
  678.       this.field_21.resize(this.field_17 + var1.left + var1.right, this.field_14 + var1.bottom + var1.top);
  679.       this.field_21.repaint();
  680.       this.field_21.validate();
  681.       this.field_21.setResizable(false);
  682.       this.field_21.move(Integer.valueOf(((Applet)this).getParameter(method_13("<&8SB\""))), Integer.valueOf(((Applet)this).getParameter(method_13("<&8SB#"))));
  683.    }
  684.  
  685.    public boolean imageUpdate(Image var1, int var2, int var3, int var4, int var5, int var6) {
  686.       if (var1 == this.field_65) {
  687.          if (var2 == 16) {
  688.             this.field_63 = true;
  689.          }
  690.  
  691.          return true;
  692.       } else {
  693.          return true;
  694.       }
  695.    }
  696.  
  697.    public void init() {
  698.       ((Container)this).setLayout((LayoutManager)null);
  699.       ((Panel)this).addNotify();
  700.       this.field_86 = ((Component)this).getToolkit();
  701.       Object var1 = null;
  702.       String var38 = ((Applet)this).getParameter(method_13("982V_.9"));
  703.       if (var38 != null) {
  704.          if (!var38.equals(method_13("\u001b:'^S.j5K\u0016\u001b$1K\u0016\u000e/6_\u0016r= E\u0018;$1K\\;<6\u001cU5'~"))) {
  705.             this.method_1();
  706.          }
  707.       } else {
  708.          this.method_1();
  709.       }
  710.  
  711.       Object var2 = null;
  712.       Object var3 = null;
  713.  
  714.       try {
  715.          var39 = ((Applet)this).getDocumentBase().getProtocol();
  716.       } catch (SecurityException var35) {
  717.          var39 = method_13("<#;W");
  718.       }
  719.  
  720.       try {
  721.          var40 = ((Applet)this).getDocumentBase().getHost();
  722.       } catch (SecurityException var34) {
  723.          var40 = "";
  724.       }
  725.  
  726.       if (!var39.equalsIgnoreCase(method_13("<#;W")) && var40.length() != 0 && !var40.equalsIgnoreCase(method_13("6%4SZ2%$F")) && !var40.equals(method_13("kx`\u001c\u0006tzy\u0003"))) {
  727.          if (var40.startsWith(method_13("-= \u001c"))) {
  728.             var40 = var40.substring(4);
  729.          }
  730.  
  731.          Object var4 = null;
  732.          String var41 = ((Applet)this).getParameter(method_13("(/0QY>/"));
  733.          if (var41 != null && !var41.equals("NO") && var41.length() > 10) {
  734.             int var5 = 1;
  735.  
  736.             try {
  737.                for(int var6 = 0; var6 < var41.length(); ++var6) {
  738.                   if (var41.charAt(var6) == '+') {
  739.                      ++var5;
  740.                   }
  741.                }
  742.             } catch (StringIndexOutOfBoundsException var37) {
  743.             }
  744.  
  745.             int[] var44 = new int[var5];
  746.             if (var5 == 1) {
  747.                var44[0] = var41.length();
  748.             } else {
  749.                int var7 = 0;
  750.  
  751.                try {
  752.                   for(int var8 = 0; var8 < var41.length(); ++var8) {
  753.                      if (var41.charAt(var8) == '+') {
  754.                         var44[var7] = var8;
  755.                         ++var7;
  756.                      }
  757.                   }
  758.                } catch (StringIndexOutOfBoundsException var36) {
  759.                }
  760.  
  761.                var44[var7] = var41.length();
  762.             }
  763.  
  764.             String[] var48 = new String[var5];
  765.             int var51 = 0;
  766.  
  767.             for(int var9 = 0; var9 < var5; ++var9) {
  768.                try {
  769.                   var48[var9] = var41.substring(var51, var44[var9]);
  770.                } catch (StringIndexOutOfBoundsException var33) {
  771.                }
  772.  
  773.                var51 = var44[var9] + 1;
  774.             }
  775.  
  776.             for(int var10 = 0; var10 < var5; ++var10) {
  777.                int var11 = var48[var10].length() - 8;
  778.                byte[] var15 = new byte[var11];
  779.                byte[] var16 = new byte[8];
  780.                var48[var10].getBytes(0, var11, var15, 0);
  781.                var48[var10].getBytes(var11, var11 + 8, var16, 0);
  782.                int var13 = var11 % 7;
  783.                int var14 = var11 % 3;
  784.  
  785.                for(int var17 = 0; var17 < var11; ++var17) {
  786.                   byte var12 = var15[var17];
  787.                   if (var12 >= 48 && var12 <= 57) {
  788.                      var15[var17] = this.method_10(var12, var13, 48, 57);
  789.                   } else if (var12 >= 65 && var12 <= 90) {
  790.                      var15[var17] = this.method_10(var12, var13, 65, 90);
  791.                   } else if (var12 >= 97 && var12 <= 122) {
  792.                      var15[var17] = this.method_10(var12, var13, 97, 122);
  793.                   } else if (var12 == 45) {
  794.                      var15[var17] = 46;
  795.                   } else if (var12 == 46) {
  796.                      var15[var17] = 45;
  797.                   }
  798.  
  799.                   if ((var13 += var14) > 7) {
  800.                      var13 = 1;
  801.                   }
  802.                }
  803.  
  804.                int var18 = 0;
  805.                int var19 = 0;
  806.  
  807.                for(int var20 = 0; var20 < 4; ++var20) {
  808.                   var16[var20] = (byte)(var16[var20] - 52);
  809.                }
  810.  
  811.                for(int var21 = 4; var21 < 8; ++var21) {
  812.                   var16[var21] = (byte)(var16[var21] - 55);
  813.                }
  814.  
  815.                for(int var22 = 0; var22 < var11; var22 += 2) {
  816.                   var18 += var15[var22];
  817.                }
  818.  
  819.                for(int var23 = 1; var23 < var11; var23 += 2) {
  820.                   var19 += var15[var23];
  821.                }
  822.  
  823.                String var24 = String.valueOf(var18);
  824.  
  825.                String var25;
  826.                for(var25 = String.valueOf(var19); var24.length() < 4; var24 = "0" + var24) {
  827.                }
  828.  
  829.                while(var25.length() < 4) {
  830.                   var25 = "0" + var25;
  831.                }
  832.  
  833.                byte[] var26 = new byte[8];
  834.                var24.getBytes(0, 4, var26, 0);
  835.                var25.getBytes(0, 4, var26, 4);
  836.                String var27 = new String(var26, 0);
  837.                if (var27.equals(new String(var16, 0))) {
  838.                   String var28 = new String(var15, 0);
  839.                   Object var29 = null;
  840.                   String var60;
  841.                   if (var28.startsWith(method_13("-= \u001c"))) {
  842.                      var60 = var28.substring(4);
  843.                   } else {
  844.                      var60 = var28;
  845.                   }
  846.  
  847.                   if (var40.equalsIgnoreCase(var60)) {
  848.                      this.field_75 = true;
  849.                   }
  850.                }
  851.             }
  852.          }
  853.       } else {
  854.          this.field_75 = true;
  855.       }
  856.  
  857.       String var42 = ((Applet)this).getParameter(method_13("(/0\\S-,%S[?"));
  858.       if (var42.equalsIgnoreCase(method_13("\u0003\u000f\u0004"))) {
  859.          this.field_58 = true;
  860.       }
  861.  
  862.       String var43 = ((Applet)this).getParameter(method_13("5<2@_7-"));
  863.       if (var43 != null && !var43.equalsIgnoreCase("NO")) {
  864.          this.field_65 = this.method_3(var43);
  865.          if (this.field_65 != null) {
  866.             String var45 = ((Applet)this).getParameter(method_13("5<2@_7-\u000f"));
  867.             if (var45 == null) {
  868.                var45 = "0";
  869.             }
  870.  
  871.             this.field_66 = Integer.valueOf(var45);
  872.             String var49 = ((Applet)this).getParameter(method_13("5<2@_7-\u000e"));
  873.             if (var49 == null) {
  874.                var49 = "0";
  875.             }
  876.  
  877.             this.field_67 = Integer.valueOf(var49);
  878.          }
  879.       }
  880.  
  881.       String var46 = ((Applet)this).getParameter(method_13("<&8SB7%3W"));
  882.       if (var46 == null) {
  883.          var46 = "NO";
  884.       }
  885.  
  886.       if (var46.equalsIgnoreCase(method_13("\u0003\u000f\u0004"))) {
  887.          this.field_16 = true;
  888.          this.field_17 = Integer.valueOf(((Applet)this).getParameter(method_13("<&8SB-")));
  889.          this.field_14 = Integer.valueOf(((Applet)this).getParameter(method_13("<&8SB2")));
  890.          var46 = ((Applet)this).getParameter(method_13("<&8SB3$1@Y4>"));
  891.          if (var46 == null) {
  892.             var46 = "NO";
  893.          }
  894.  
  895.          if (var46.equalsIgnoreCase(method_13("\u0003\u000f\u0004"))) {
  896.             this.field_15 = true;
  897.          }
  898.       } else {
  899.          this.field_16 = false;
  900.       }
  901.  
  902.       if (this.field_16) {
  903.          this.field_74 = this.field_17;
  904.          this.field_73 = this.field_14;
  905.       } else {
  906.          this.field_74 = ((Component)this).size().width;
  907.          this.field_73 = ((Component)this).size().height;
  908.       }
  909.  
  910.       this.field_89 = this.field_74 * this.field_73;
  911.       this.field_78 = new int[this.field_89];
  912.  
  913.       for(int var50 = 0; var50 < this.field_89; ++var50) {
  914.          this.field_78[var50] = this.field_5;
  915.       }
  916.  
  917.       this.field_35 = this.field_74;
  918.       this.field_33 = Integer.valueOf(((Applet)this).getParameter(method_13("<%9Fi2"))) + 8;
  919.       this.field_36 = 0;
  920.       this.field_37 = Integer.valueOf(((Applet)this).getParameter(method_13("7/9Gi#")));
  921.       String var52 = ((Applet)this).getParameter(method_13(".//FW6#0\\"));
  922.       this.field_13 = var52.equals(method_13("(#0ZB")) ? 2 : (var52.equals(method_13("9/9FS(")) ? 1 : 0);
  923.  
  924.       try {
  925.          this.method_7();
  926.       } catch (NoSuchMethodError var32) {
  927.          this.method_7();
  928.       }
  929.  
  930.       this.field_41 = new Font(((Applet)this).getParameter(method_13("<%9Fx;'2")), 1, this.field_18 = Integer.valueOf(((Applet)this).getParameter(method_13("<%9Fi2"))));
  931.       this.field_62 = ((Component)this).createImage(this.field_74, this.field_73);
  932.       this.field_61 = this.field_62.getGraphics();
  933.       this.field_39 = ((Component)this).createImage(this.field_35, this.field_33);
  934.       this.field_38 = this.field_39.getGraphics();
  935.       this.field_38.setFont(this.field_41);
  936.       this.field_92 = ((Component)this).createImage(256, 256);
  937.       this.field_91 = this.field_92.getGraphics();
  938.       this.field_76 = ((Applet)this).getParameter(method_13("7/:VS6+."));
  939.       this.field_77 = ((Applet)this).getParameter(method_13("*8>]D3>."));
  940.       this.field_30 = Integer.valueOf(this.field_76);
  941.       this.field_68 = Integer.valueOf(this.field_77);
  942.       if (this.field_30 < 0) {
  943.          this.field_30 = 0;
  944.       }
  945.  
  946.       if (this.field_68 > 10) {
  947.          this.field_68 = 10;
  948.       } else if (this.field_68 < 1) {
  949.          this.field_68 = 1;
  950.       }
  951.  
  952.       String var53 = ((Applet)this).getParameter(method_13("\u0017#9ao\u0014\t"));
  953.       if (var53 == null) {
  954.          var53 = "10";
  955.       }
  956.  
  957.       this.field_42 = Integer.valueOf(var53);
  958.       this.field_19 = Integer.valueOf(((Applet)this).getParameter(method_13(".//FU5&8@")), 16);
  959.       if (this.field_19 == 0) {
  960.          this.field_19 = 1;
  961.       }
  962.  
  963.       this.field_79 = Integer.valueOf(((Applet)this).getParameter(method_13(")/;WU./3QY6%%")), 16);
  964.       if (this.field_79 == 0) {
  965.          this.field_79 = 1;
  966.       }
  967.  
  968.       this.field_20 = new Color(20, 20, 20);
  969.       this.field_6 = new Color(0, 0, 0);
  970.       this.field_57 = new Color(this.field_19 >> 16 & 255, this.field_19 >> 8 & 255, this.field_19 & 255);
  971.       this.field_5 = Integer.valueOf(((Applet)this).getParameter(method_13("8+4YU5&8@")), 16);
  972.       this.field_32 = ((Applet)this).getParameter(method_13("7/9Gi<2")).equals(method_13("(+9VY7")) ? 1 : 0;
  973.       this.field_83 = Integer.valueOf(((Applet)this).getParameter(method_13(")>6FC)(6@i#")));
  974.  
  975.       Container var54;
  976.       for(var54 = ((Component)this).getParent(); !(var54 instanceof Frame); var54 = ((Component)var54).getParent()) {
  977.       }
  978.  
  979.       this.field_0 = (Frame)var54;
  980.       String var55 = ((Applet)this).getParameter(method_13("8+4Yi<2"));
  981.       if (var55.equals(method_13("9%;]D"))) {
  982.          this.field_4 = 0;
  983.       } else if (var55.equals(method_13("3'6US"))) {
  984.          this.field_4 = 1;
  985.          this.field_25 = ((Applet)this).getParameter(method_13("8+4Yi3'6US"));
  986.       } else {
  987.          try {
  988.             Class var56 = Class.forName(var55);
  989.             this.field_7 = (morphmenub)var56.newInstance();
  990.             this.field_4 = 2;
  991.          } catch (Exception var31) {
  992.             this.field_4 = 0;
  993.          }
  994.       }
  995.  
  996.       this.field_9 = new int[this.field_89];
  997.  
  998.       for(int var57 = 0; var57 < this.field_89; ++var57) {
  999.          this.field_9[var57] = this.field_5;
  1000.       }
  1001.  
  1002.       if (this.field_4 == 1) {
  1003.          Image var58 = this.method_3(this.field_25);
  1004.          if (var58 != null) {
  1005.             this.method_9(var58, 0, 0, this.field_74, this.field_73, this.field_9, 0, this.field_74);
  1006.          }
  1007.       }
  1008.  
  1009.       if (field_59 == null) {
  1010.          field_59 = new int[20][20];
  1011.       }
  1012.  
  1013.       if (field_88 == null) {
  1014.          field_88 = new int[20];
  1015.       }
  1016.  
  1017.       if (field_28 == null) {
  1018.          field_28 = new int[20];
  1019.       }
  1020.  
  1021.       if (field_72 == null) {
  1022.          field_72 = new float[3713];
  1023.          this.calc_rand();
  1024.       }
  1025.  
  1026.       if (this.field_4 == 2) {
  1027.          this.field_7.prep_back(this);
  1028.       }
  1029.  
  1030.       if (field_40 == null) {
  1031.          field_40 = new morphmenuc[100];
  1032.       }
  1033.  
  1034.       try {
  1035.          this.createMenus();
  1036.       } catch (NoSuchMethodError var30) {
  1037.          this.createMenus();
  1038.       }
  1039.  
  1040.       this.field_34 = field_28[0];
  1041.       this.method_2();
  1042.       if (this.field_16) {
  1043.          this.field_21 = new Frame(((Applet)this).getParameter(method_13("<&8SB3>;W")));
  1044.          this.field_21.add(method_13("\u0019/9FS("), this);
  1045.       }
  1046.  
  1047.       if (!this.field_75) {
  1048.          Label var59 = new Label(method_13("\u0017%%B^z\u00072\\Cz+'BZ?>wPOz\u000b9TOz\u001e2S[z{n\u000b\u000et"));
  1049.          this.field_90 = new Lware(((Applet)this).getAppletContext(), var59);
  1050.          this.field_90.setTitle(method_13("\u0017%%B^z\u00072\\Cz\u000b'BZ?>wPOz\u000b9TOz\u001e2S["));
  1051.          this.field_90.hide();
  1052.       }
  1053.  
  1054.    }
  1055.  
  1056.    // $FF: renamed from: a (int, int, int) void
  1057.    private void method_6(int var1, int var2, int var3) {
  1058.       this.field_64 = var3;
  1059.       int var5 = 0;
  1060.  
  1061.       for(int var4 = var1; var4 != -1; var4 = field_40[var4].g) {
  1062.          ++var5;
  1063.       }
  1064.  
  1065.       int var6 = 0;
  1066.  
  1067.       for(int var13 = var2; var13 != -1; var13 = field_40[var13].g) {
  1068.          ++var6;
  1069.       }
  1070.  
  1071.       int var7;
  1072.       if (var5 > var6) {
  1073.          var7 = var5;
  1074.       } else {
  1075.          var7 = var6;
  1076.       }
  1077.  
  1078.       this.field_44 = new int[var7][];
  1079.  
  1080.       for(int var8 = 0; var8 < var7; ++var8) {
  1081.          this.field_44[var8] = new int[this.field_35 * this.field_33];
  1082.       }
  1083.  
  1084.       this.field_48 = new int[var7];
  1085.       this.field_45 = new int[var7];
  1086.       int var9 = var1;
  1087.       int var10 = var2;
  1088.  
  1089.       for(int var11 = 0; var11 < var7; ++var11) {
  1090.          this.field_48[var11] = var9;
  1091.          if (var9 != -1) {
  1092.             var9 = field_40[var9].g;
  1093.          }
  1094.  
  1095.          this.field_45[var11] = var10;
  1096.          if (var10 != -1) {
  1097.             var10 = field_40[var10].g;
  1098.          }
  1099.  
  1100.          if (this.field_48[var11] != -1) {
  1101.             System.arraycopy(field_40[this.field_48[var11]].a, 0, this.field_44[var11], 0, this.field_35 * this.field_33);
  1102.          } else {
  1103.             for(int var12 = 0; var12 < this.field_35 * this.field_33; ++var12) {
  1104.                this.field_44[var11][var12] = 0;
  1105.             }
  1106.          }
  1107.       }
  1108.  
  1109.       this.field_46 = 0;
  1110.       this.field_47 = var7;
  1111.       this.method_12();
  1112.    }
  1113.  
  1114.    // $FF: renamed from: d () void
  1115.    void method_7() {
  1116.       this.field_70 = new MemoryImageSource(this.field_74, this.field_73, new DirectColorModel(24, 16711680, 65280, 255), this.field_78, 0, this.field_74);
  1117.  
  1118.       String var1;
  1119.       try {
  1120.          var1 = System.getProperty(method_13("0+!S\u0018,/%A_5$"));
  1121.       } catch (SecurityException var3) {
  1122.          var1 = method_13("/$<");
  1123.       }
  1124.  
  1125.       if (!var1.startsWith(method_13("kdg"))) {
  1126.          try {
  1127.             this.field_70.setAnimated(true);
  1128.             this.field_70.setFullBufferUpdates(true);
  1129.             this.field_23 = ((Component)this).createImage(this.field_70);
  1130.             this.field_70.newPixels();
  1131.             this.field_26 = true;
  1132.          } catch (NoSuchMethodError var2) {
  1133.             this.field_26 = false;
  1134.          }
  1135.       }
  1136.  
  1137.       if (!this.field_26) {
  1138.          this.field_70 = null;
  1139.          this.field_69 = new anfy(this.field_74, this.field_73, new DirectColorModel(24, 16711680, 65280, 255), this.field_78, 0, this.field_74);
  1140.          this.field_23 = ((Component)this).createImage(this.field_69);
  1141.       }
  1142.  
  1143.    }
  1144.  
  1145.    public void menu_normal(int var1) {
  1146.       int[] var2 = field_40[var1].a;
  1147.       int[] var3 = field_40[var1].j;
  1148.  
  1149.       for(int var4 = 0; var4 < this.field_33; ++var4) {
  1150.          for(int var5 = 0; var5 < this.field_35; ++var5) {
  1151.             if (var2[var4 * this.field_35 + var5] != 0) {
  1152.                var3[var4 * this.field_35 + var5] = 16777215;
  1153.             }
  1154.          }
  1155.       }
  1156.  
  1157.    }
  1158.  
  1159.    public void menu_rand(int var1) {
  1160.       int[] var2 = field_40[var1].a;
  1161.       int[] var3 = field_40[var1].j;
  1162.       int var4 = this.field_33 * this.field_35;
  1163.  
  1164.       for(int var5 = 0; var5 < var4; ++var5) {
  1165.          var3[var5] = 0;
  1166.       }
  1167.  
  1168.       for(int var6 = 1; var6 < this.field_33 - 1; ++var6) {
  1169.          for(int var7 = 1; var7 < this.field_35 - 1; ++var7) {
  1170.             int var8 = 1 - (int)(2.99 * (double)this.rand());
  1171.             int var9 = 1 - (int)(2.99 * (double)this.rand());
  1172.             if (var2[(var6 + var8) * this.field_35 + var7 + var9] != 0) {
  1173.                var3[var6 * this.field_35 + var7] = 16777215;
  1174.             }
  1175.          }
  1176.       }
  1177.  
  1178.    }
  1179.  
  1180.    public synchronized boolean mouseDown(Event var1, int var2, int var3) {
  1181.       if (!this.field_75) {
  1182.          this.field_90.show();
  1183.          this.field_90.toFront();
  1184.          this.field_90.requestFocus();
  1185.       } else if (this.field_29 != -1) {
  1186.          this.field_51 = true;
  1187.       } else {
  1188.          this.field_51 = false;
  1189.       }
  1190.  
  1191.       return true;
  1192.    }
  1193.  
  1194.    public synchronized boolean mouseMove(Event var1, int var2, int var3) {
  1195.       this.field_53 = var2;
  1196.       this.field_54 = var3;
  1197.       return true;
  1198.    }
  1199.  
  1200.    // $FF: renamed from: e () void
  1201.    private void method_8() {
  1202.       int var3 = this.field_35 * this.field_33;
  1203.       int[] var2 = this.field_44[this.field_46];
  1204.  
  1205.       for(int var1 = 0; var1 < var3; ++var1) {
  1206.          var2[var1] = 0;
  1207.       }
  1208.  
  1209.       for(int var4 = 0; var4 < this.field_60; ++var4) {
  1210.          float[] var10000 = this.field_55;
  1211.          var10000[var4] += this.field_93[var4];
  1212.          var10000 = this.field_56;
  1213.          var10000[var4] += this.field_94[var4];
  1214.          var2[(int)this.field_56[var4] * this.field_35 + (int)this.field_55[var4]] = this.field_19;
  1215.       }
  1216.  
  1217.       ++this.field_49;
  1218.       if (this.field_49 >= this.field_50) {
  1219.          if (this.field_45[this.field_46] != -1) {
  1220.             System.arraycopy(field_40[this.field_45[this.field_46]].a, 0, this.field_44[this.field_46], 0, var3);
  1221.          } else {
  1222.             for(int var5 = 0; var5 < var3; ++var5) {
  1223.                this.field_44[this.field_46][var5] = 0;
  1224.             }
  1225.          }
  1226.  
  1227.          ++this.field_46;
  1228.          this.field_49 = 0;
  1229.          if (this.field_46 >= this.field_47) {
  1230.             this.field_43 = false;
  1231.             if (field_40[this.field_64].b != -1) {
  1232.                this.field_34 = field_40[this.field_64].b;
  1233.             }
  1234.  
  1235.             this.field_64 = -1;
  1236.             return;
  1237.          }
  1238.  
  1239.          this.method_12();
  1240.       }
  1241.  
  1242.    }
  1243.  
  1244.    public final void paint(Graphics var1) {
  1245.       if (this.field_23 != null) {
  1246.          this.doublebuf(var1);
  1247.       }
  1248.  
  1249.    }
  1250.  
  1251.    // $FF: renamed from: a (java.awt.Image, int, int, int, int, int[], int, int) void
  1252.    void method_9(Image var1, int var2, int var3, int var4, int var5, int[] var6, int var7, int var8) {
  1253.       PixelGrabber var9 = new PixelGrabber(var1, var2, var3, var4, var5, var6, var7, var8);
  1254.       var1.getSource().addConsumer(var9);
  1255.       boolean var10 = false;
  1256.  
  1257.       try {
  1258.          var10 = var9.grabPixels();
  1259.       } catch (InterruptedException var11) {
  1260.          return;
  1261.       }
  1262.  
  1263.       if ((var9.status() & 128) == 0) {
  1264.          ;
  1265.       }
  1266.    }
  1267.  
  1268.    public synchronized void prepaniframe() {
  1269.       if (this.field_1) {
  1270.          this.notifyAll();
  1271.  
  1272.          while(!this.field_63) {
  1273.             Thread.yield();
  1274.  
  1275.             try {
  1276.                Thread.sleep(8L);
  1277.             } catch (InterruptedException var1) {
  1278.             }
  1279.          }
  1280.  
  1281.          this.field_63 = false;
  1282.       }
  1283.  
  1284.       this.field_61.drawImage(this.field_65, this.field_66, this.field_67, this);
  1285.    }
  1286.  
  1287.    public void print_menu(int var1, int var2, int var3, int var4) {
  1288.       int[] var5;
  1289.       int var6;
  1290.       if (var4 == 0) {
  1291.          var5 = field_40[var1].a;
  1292.          var6 = this.field_19;
  1293.       } else if (var4 == 1) {
  1294.          var5 = field_40[var1].j;
  1295.          var6 = this.field_79;
  1296.       } else {
  1297.          var5 = this.field_44[var1];
  1298.          var6 = this.field_19;
  1299.       }
  1300.  
  1301.       int[] var7 = this.field_78;
  1302.  
  1303.       for(int var8 = 0; var8 < this.field_33; ++var8) {
  1304.          for(int var9 = 0; var9 < this.field_35; ++var9) {
  1305.             if (var5[var8 * this.field_35 + var9] != 0) {
  1306.                var7[(var3 + var8) * this.field_74 + var2 + var9] = var6;
  1307.             }
  1308.          }
  1309.       }
  1310.  
  1311.    }
  1312.  
  1313.    public void print_table(int var1, int var2, int var3) {
  1314.       if (!this.field_43) {
  1315.          for(this.field_29 = -1; var1 != -1 && this.field_73 - var3 >= this.field_33; var1 = field_40[var1].g) {
  1316.             field_40[var1].i.x = var2;
  1317.             field_40[var1].i.y = var3;
  1318.             byte var4;
  1319.             if (field_40[var1].i.inside(this.field_53, this.field_54)) {
  1320.                var4 = 1;
  1321.                this.field_29 = var1;
  1322.             } else {
  1323.                var4 = 0;
  1324.             }
  1325.  
  1326.             this.print_menu(var1, var2, var3, var4);
  1327.             var3 += this.field_33;
  1328.          }
  1329.  
  1330.          if (this.field_29 == -1) {
  1331.             this.field_0.setCursor(0);
  1332.             this.field_82 = method_13("4%#Z_4-wAS6/4FS>");
  1333.             ((Applet)this).showStatus(this.field_82);
  1334.          } else if (field_40[this.field_29].b == -1 && field_40[this.field_29].c == null) {
  1335.             this.field_0.setCursor(0);
  1336.             this.field_82 = method_13("4%w^_4!");
  1337.             ((Applet)this).showStatus(this.field_82);
  1338.          } else {
  1339.             this.field_0.setCursor(12);
  1340.             if (field_40[this.field_29].b != -1) {
  1341.                this.field_82 = method_13("7/9G\u0016)/;WU./3");
  1342.             } else {
  1343.                this.field_82 = field_40[this.field_29].c.toString();
  1344.             }
  1345.  
  1346.             ((Applet)this).showStatus(this.field_82);
  1347.          }
  1348.       }
  1349.  
  1350.       if (!this.field_43) {
  1351.          if (this.field_29 != -1) {
  1352.             if (this.field_32 == 0) {
  1353.                this.menu_normal(this.field_29);
  1354.             } else if (this.field_32 == 1) {
  1355.                this.menu_rand(this.field_29);
  1356.             }
  1357.  
  1358.             if (this.field_51) {
  1359.                if (field_40[this.field_29].b != -1) {
  1360.                   this.method_6(this.field_34, field_40[this.field_29].b, this.field_29);
  1361.                } else if (field_40[this.field_29].c != null) {
  1362.                   if (field_40[this.field_29].k == null) {
  1363.                      if (this.field_58) {
  1364.                         ((Applet)this).getAppletContext().showDocument(field_40[this.field_29].c, ((Applet)this).getParameter(method_13("(/0TD;'2\\W7/")));
  1365.                      } else {
  1366.                         ((Applet)this).getAppletContext().showDocument(field_40[this.field_29].c);
  1367.                      }
  1368.                   } else {
  1369.                      ((Applet)this).getAppletContext().showDocument(field_40[this.field_29].c, field_40[this.field_29].k);
  1370.                   }
  1371.                }
  1372.  
  1373.                this.field_51 = false;
  1374.             }
  1375.          }
  1376.  
  1377.       } else {
  1378.          this.field_0.setCursor(0);
  1379.  
  1380.          for(int var5 = 0; var5 < this.field_47 && this.field_73 - var3 >= this.field_33; ++var5) {
  1381.             this.print_menu(var5, var2, var3, 2);
  1382.             var3 += this.field_33;
  1383.          }
  1384.  
  1385.          this.method_8();
  1386.       }
  1387.    }
  1388.  
  1389.    public final void producefixed() {
  1390.       try {
  1391.          if (this.field_26) {
  1392.             this.field_70.newPixels();
  1393.          } else {
  1394.             this.field_69.startProduction(this.field_69.getConsumer());
  1395.          }
  1396.       } catch (NoSuchMethodError var1) {
  1397.       }
  1398.    }
  1399.  
  1400.    public float rand() {
  1401.       if (this.field_71 >= 3713) {
  1402.          this.field_71 = 0;
  1403.       }
  1404.  
  1405.       return field_72[this.field_71++];
  1406.    }
  1407.  
  1408.    public void run() {
  1409.       if (this.field_16) {
  1410.          this.method_5();
  1411.       }
  1412.  
  1413.       Thread var1 = Thread.currentThread();
  1414.       var1.setPriority(this.field_68);
  1415.       this.field_85 = 0;
  1416.       Graphics var2 = ((Component)this).getGraphics();
  1417.       if (this.field_65 != null && !this.field_1) {
  1418.          this.field_1 = this.CheckAniGIF();
  1419.       }
  1420.  
  1421.       System.gc();
  1422.  
  1423.       while(this.field_87 != null) {
  1424.          ++this.field_85;
  1425.          if (this.field_4 == 2) {
  1426.             this.field_7.animate();
  1427.          } else {
  1428.             System.arraycopy(this.field_9, 0, this.field_78, 0, this.field_89);
  1429.          }
  1430.  
  1431.          this.print_table(this.field_34, this.field_36, this.field_37);
  1432.          if (this.field_4 == 2) {
  1433.             this.field_7.animate2();
  1434.          }
  1435.  
  1436.          if (++this.field_8 == this.field_30) {
  1437.             System.gc();
  1438.             this.field_8 = 0;
  1439.          }
  1440.  
  1441.          try {
  1442.             this.producefixed();
  1443.          } catch (NoSuchMethodError var3) {
  1444.          }
  1445.  
  1446.          this.doublebuf(var2);
  1447.          this.waitsync();
  1448.       }
  1449.  
  1450.    }
  1451.  
  1452.    // $FF: renamed from: a (int, int, int, int) byte
  1453.    byte method_10(int var1, int var2, int var3, int var4) {
  1454.       int var5 = var1 - var2;
  1455.       if (var5 >= var3) {
  1456.          return (byte)var5;
  1457.       } else {
  1458.          int var6 = var3 - var5 - 1;
  1459.          return (byte)(var4 - var6);
  1460.       }
  1461.    }
  1462.  
  1463.    // $FF: renamed from: f () void
  1464.    void method_11() {
  1465.       this.field_61.setColor(this.field_57);
  1466.       this.field_61.drawString(this.field_82, 0, this.field_83);
  1467.    }
  1468.  
  1469.    public synchronized void start() {
  1470.       if (this.field_87 == null) {
  1471.          this.field_87 = new Thread(this);
  1472.          this.field_87.start();
  1473.          if (this.field_16) {
  1474.             this.method_5();
  1475.             this.field_21.show();
  1476.          }
  1477.       }
  1478.  
  1479.    }
  1480.  
  1481.    // $FF: renamed from: g () void
  1482.    private void method_12() {
  1483.       int var3 = this.field_48[this.field_46];
  1484.       int var4 = this.field_45[this.field_46];
  1485.       int[] var2;
  1486.       if (var3 != -1) {
  1487.          var2 = field_40[var3].a;
  1488.       } else {
  1489.          var2 = this.field_12;
  1490.       }
  1491.  
  1492.       int[] var1;
  1493.       if (var4 != -1) {
  1494.          var1 = field_40[var4].a;
  1495.       } else {
  1496.          var1 = this.field_12;
  1497.       }
  1498.  
  1499.       this.field_43 = true;
  1500.       this.field_49 = 0;
  1501.       int[] var7 = new int[this.field_33];
  1502.       int[] var8 = new int[this.field_33];
  1503.       int[][] var9 = new int[this.field_33][this.field_35];
  1504.       int[][] var10 = new int[this.field_33][this.field_35];
  1505.       int[][] var11 = new int[this.field_33][this.field_35];
  1506.       int[][] var12 = new int[this.field_33][this.field_35];
  1507.  
  1508.       for(int var6 = 0; var6 < this.field_33; ++var6) {
  1509.          var7[var6] = 0;
  1510.          var8[var6] = 0;
  1511.          int var13 = var6 * this.field_35;
  1512.  
  1513.          for(int var5 = 0; var5 < this.field_35; ++var5) {
  1514.             if (var2[var13 + var5] != 0) {
  1515.                var9[var6][var7[var6]] = var5;
  1516.                var10[var6][var7[var6]] = var6;
  1517.                int var10002 = var7[var6]++;
  1518.             }
  1519.  
  1520.             if (var1[var13 + var5] != 0) {
  1521.                var11[var6][var8[var6]] = var5;
  1522.                var12[var6][var8[var6]] = var6;
  1523.                int var46 = var8[var6]++;
  1524.             }
  1525.          }
  1526.       }
  1527.  
  1528.       int var14 = 0;
  1529.       int var15 = 0;
  1530.  
  1531.       for(int var37 = 0; var37 < this.field_33; ++var37) {
  1532.          if (var7[var37] > 0) {
  1533.             ++var14;
  1534.          }
  1535.  
  1536.          if (var8[var37] > 0) {
  1537.             ++var15;
  1538.          }
  1539.       }
  1540.  
  1541.       int var16 = 0;
  1542.       if (var14 > var15) {
  1543.          var16 = var14;
  1544.       } else {
  1545.          var16 = var15;
  1546.       }
  1547.  
  1548.       if (var15 == 0) {
  1549.          int var30 = this.field_33 / 2;
  1550.          var8[var30] = 1;
  1551.          var15 = 1;
  1552.          var11[var30][var8[var30]] = this.field_35 / 2;
  1553.          var12[var30][var8[var30]] = this.field_33 / 2;
  1554.       }
  1555.  
  1556.       int[] var17 = new int[var16];
  1557.       int[] var18 = new int[var14];
  1558.       int[] var19 = new int[var15];
  1559.       int var38 = 0;
  1560.       int var20 = 0;
  1561.  
  1562.       for(int var31 = 0; var31 < this.field_33; ++var31) {
  1563.          if (var7[var31] > 0) {
  1564.             var18[var38] = var31;
  1565.             ++var38;
  1566.          }
  1567.  
  1568.          if (var8[var31] > 0) {
  1569.             var19[var20] = var31;
  1570.             ++var20;
  1571.          }
  1572.       }
  1573.  
  1574.       float var21 = (float)var14 / (float)var16;
  1575.       float var22 = (float)var15 / (float)var16;
  1576.       float[] var23 = new float[var16];
  1577.       float[] var24 = new float[var16];
  1578.       int var25 = 0;
  1579.  
  1580.       for(int var39 = 0; var39 < var16; ++var39) {
  1581.          if (var7[var18[(int)((float)var39 * var21)]] > var8[var19[(int)((float)var39 * var22)]]) {
  1582.             var17[var39] = var7[var18[(int)((float)var39 * var21)]];
  1583.          } else {
  1584.             var17[var39] = var8[var19[(int)((float)var39 * var22)]];
  1585.          }
  1586.  
  1587.          var23[var39] = (float)var7[var18[(int)((float)var39 * var21)]] / (float)var17[var39];
  1588.          var24[var39] = (float)var8[var19[(int)((float)var39 * var22)]] / (float)var17[var39];
  1589.          var25 += var17[var39];
  1590.       }
  1591.  
  1592.       this.field_55 = null;
  1593.       this.field_56 = null;
  1594.       this.field_93 = null;
  1595.       this.field_94 = null;
  1596.       this.field_55 = new float[var25];
  1597.       this.field_56 = new float[var25];
  1598.       this.field_93 = new float[var25];
  1599.       this.field_94 = new float[var25];
  1600.       float[] var26 = new float[var25];
  1601.       float[] var27 = new float[var25];
  1602.       var25 = 0;
  1603.  
  1604.       for(int var32 = 0; var32 < var16; ++var32) {
  1605.          for(int var29 = 0; var29 < var17[var32]; ++var29) {
  1606.             int var28 = (int)(var22 * (float)var32);
  1607.             var26[var25] = (float)var11[var19[var28]][(int)((float)var29 * var24[var32])];
  1608.             var27[var25] = (float)var12[var19[var28]][(int)((float)var29 * var24[var32])];
  1609.             var28 = (int)(var21 * (float)var32);
  1610.             this.field_55[var25] = (float)var9[var18[var28]][(int)((float)var29 * var23[var32])];
  1611.             this.field_56[var25] = (float)var10[var18[var28]][(int)((float)var29 * var23[var32])];
  1612.             ++var25;
  1613.          }
  1614.       }
  1615.  
  1616.       for(int var40 = 0; var40 < var25; ++var40) {
  1617.          this.field_93[var40] = (var26[var40] - this.field_55[var40]) / (float)this.field_50;
  1618.          this.field_94[var40] = (var27[var40] - this.field_56[var40]) / (float)this.field_50;
  1619.       }
  1620.  
  1621.       this.field_49 = 0;
  1622.       this.field_43 = true;
  1623.       this.field_60 = var25;
  1624.       this.field_81 = var3;
  1625.       this.field_11 = var4;
  1626.       this.method_8();
  1627.       Object var43 = null;
  1628.       Object var44 = null;
  1629.       Object var33 = null;
  1630.       Object var34 = null;
  1631.       Object var35 = null;
  1632.       Object var36 = null;
  1633.    }
  1634.  
  1635.    public synchronized void stop() {
  1636.       if (this.field_87 != null && this.field_87.isAlive()) {
  1637.          this.field_87.stop();
  1638.       }
  1639.  
  1640.       if (this.field_16) {
  1641.          this.field_21.hide();
  1642.       }
  1643.  
  1644.       this.field_87 = null;
  1645.    }
  1646.  
  1647.    public final void update(Graphics var1) {
  1648.       if (this.field_23 != null) {
  1649.          this.doublebuf(var1);
  1650.       }
  1651.  
  1652.    }
  1653.  
  1654.    public synchronized void waitsync() {
  1655.       Thread.yield();
  1656.       this.field_86.sync();
  1657.       long var1 = 10L - (System.currentTimeMillis() - this.field_10);
  1658.       if (var1 > 0L) {
  1659.          try {
  1660.             Thread.sleep(var1);
  1661.          } catch (InterruptedException var5) {
  1662.          }
  1663.       } else {
  1664.          try {
  1665.             Thread.sleep(1L);
  1666.          } catch (InterruptedException var4) {
  1667.          }
  1668.       }
  1669.  
  1670.       this.field_10 = System.currentTimeMillis();
  1671.  
  1672.       try {
  1673.          Thread.sleep((long)this.field_42);
  1674.       } catch (InterruptedException var3) {
  1675.       }
  1676.    }
  1677.  
  1678.    // $FF: renamed from: c (java.lang.String) java.lang.String
  1679.    private static String method_13(String var0) {
  1680.       char[] var1 = var0.toCharArray();
  1681.       int var2 = var1.length;
  1682.       int var3 = 0;
  1683.  
  1684.       label32:
  1685.       while(true) {
  1686.          int var4 = 0;
  1687.          byte var10000 = 90;
  1688.          char[] var10001 = var1;
  1689.          int var10002 = var3;
  1690.  
  1691.          label30:
  1692.          while(true) {
  1693.             var10001[var10002] ^= var10000;
  1694.  
  1695.             while(true) {
  1696.                ++var3;
  1697.                ++var4;
  1698.                if (var2 == var3) {
  1699.                   return new String(var1);
  1700.                }
  1701.  
  1702.                switch (var4) {
  1703.                   case 1:
  1704.                      var10000 = 74;
  1705.                      var10001 = var1;
  1706.                      var10002 = var3;
  1707.                      continue label30;
  1708.                   case 2:
  1709.                      var10000 = 87;
  1710.                      var10001 = var1;
  1711.                      var10002 = var3;
  1712.                      continue label30;
  1713.                   case 3:
  1714.                      var10000 = 50;
  1715.                      var10001 = var1;
  1716.                      var10002 = var3;
  1717.                      continue label30;
  1718.                   case 4:
  1719.                      var10000 = 54;
  1720.                      var10001 = var1;
  1721.                      var10002 = var3;
  1722.                      continue label30;
  1723.                   case 5:
  1724.                      continue label32;
  1725.                }
  1726.             }
  1727.          }
  1728.       }
  1729.    }
  1730. }
  1731.