}
}*/
    public static void paintAbsoluteBox(Context c, Box block, boolean restyle) {        Rectangle rect = c.getExtents();        //why this?		        int xoff = 0;        int yoff = 0;        //Uu.p("xoff = " + xoff + " yoff = " + yoff);        BlockFormattingContext bfc = c.getBlockFormattingContext();        //Uu.p("bfc = " + bfc + " x,y = " + bfc.getX() + "," + bfc.getY());        //Uu.p("bfc = " + bfc.hashCode());        //Uu.p(" insets = " + bfc.getInsets());        //Uu.p(" padding = " + bfc.getPadding());        xoff += bfc.getX();        yoff += bfc.getY();        //Uu.p("xoff = " + xoff + " yoff = " + yoff);        xoff += (bfc.getInsets().left - bfc.getPadding().left);        yoff += (bfc.getInsets().top - bfc.getPadding().top);        //Uu.p("xoff = " + xoff + " yoff = " + yoff);                        // since block.top can only be calculated at render time (in case of % widths)        // then we should either get rid of block.top, or find a way to do this at        // layout time.        CalculatedStyle style = c.getCurrentStyle();        //Uu.p("style = " + style);        if (style.isIdent(CSSName.TOP, IdentValue.AUTO)) {            //Uu.p("top is auto");            //Uu.p("box = " + block);            //Uu.p("yoff = " + yoff);            yoff = 0;        }        if (block.top_set) {            int tp = (int) style.getFloatPropertyProportionalHeight(CSSName.TOP, c.getBlockFormattingContext().getHeight(), c.getCtx());            yoff += tp;        }        if (block.right_set) {            xoff += -rect.x + rect.width - block.getWidth() - block.right;        }        //Uu.p("xoff = " + xoff + " yoff = " + yoff);        if (block.left_set) {            xoff += block.left;        }        if (block.bottom_set) {            yoff = -rect.y + rect.height - block.height - block.bottom;        }        //Uu.p("xoff = " + xoff + " yoff = " + yoff);        c.translate(xoff, yoff);        paintNormal(c, block, restyle);        c.translate(-xoff, -yoff);    }