diff --git a/checkstyle.xml b/checkstyle.xml index bd80337fd..4ba014248 100644 --- a/checkstyle.xml +++ b/checkstyle.xml @@ -351,15 +351,13 @@ METHOD_CALL, METHOD_DEF, QUESTION, RESOURCE_SPECIFICATION, SUPER_CTOR_CALL, LAMBDA, RECORD_DEF"/> - - + + diff --git a/openpdf-core/src/main/java/org/openpdf/text/Image.java b/openpdf-core/src/main/java/org/openpdf/text/Image.java index 65816834a..97e5bd183 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/Image.java +++ b/openpdf-core/src/main/java/org/openpdf/text/Image.java @@ -2271,8 +2271,8 @@ public void setCompressionLevel(int compressionLevel) { } private static boolean isJBIG2(int[] array) { - return array[0] == 0x97 && array[1] == 'J' && array[2] == 'B' && array[3] == '2' && - array[4] == '\r' && array[5] == '\n' && array[6] == 0x1a && array[7] == '\n'; + return array[0] == 0x97 && array[1] == 'J' && array[2] == 'B' && array[3] == '2' + && array[4] == '\r' && array[5] == '\n' && array[6] == 0x1a && array[7] == '\n'; } private static boolean isGif(int[] array) { @@ -2292,13 +2292,13 @@ private static boolean isJpeg(int[] array) { } private static boolean isJpeg2000(int[] array) { - return (array[0] == 0x00 && array[1] == 0x00 && array[2] == 0x00 && array[3] == 0x0c) || - (array[0] == 0xff && array[1] == 0x4f && array[2] == 0xff && array[3] == 0x51); + return (array[0] == 0x00 && array[1] == 0x00 && array[2] == 0x00 && array[3] == 0x0c) + || (array[0] == 0xff && array[1] == 0x4f && array[2] == 0xff && array[3] == 0x51); } private static boolean isTiff(int[] array) { - return (array[0] == 'M' && array[1] == 'M' && array[2] == 0 && array[3] == 42) || - (array[0] == 'I' && array[1] == 'I' && array[2] == 42 && array[3] == 0); + return (array[0] == 'M' && array[1] == 'M' && array[2] == 0 && array[3] == 42) + || (array[0] == 'I' && array[1] == 'I' && array[2] == 42 && array[3] == 0); } private static boolean isWMF(int[] array) { diff --git a/openpdf-core/src/main/java/org/openpdf/text/Paragraph.java b/openpdf-core/src/main/java/org/openpdf/text/Paragraph.java index f9b80d97c..e8f3bf730 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/Paragraph.java +++ b/openpdf-core/src/main/java/org/openpdf/text/Paragraph.java @@ -374,8 +374,7 @@ public void setMultipliedLeading(float multipliedLeading) { * @return the total leading (fixed and multiplied) */ public float getTotalLeading() { - float m = font == null ? - Font.DEFAULTSIZE * multipliedLeading : font.getCalculatedLeading(multipliedLeading); + float m = font == null ? Font.DEFAULTSIZE * multipliedLeading : font.getCalculatedLeading(multipliedLeading); if (m > 0 && !hasLeading()) { return m; } diff --git a/openpdf-core/src/main/java/org/openpdf/text/Phrase.java b/openpdf-core/src/main/java/org/openpdf/text/Phrase.java index 539536316..b5869feac 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/Phrase.java +++ b/openpdf-core/src/main/java/org/openpdf/text/Phrase.java @@ -361,12 +361,12 @@ public void add(int index, Element element) { chunk.setHyphenation(hyphenation); } super.add(index, chunk); - } else if (element.type() == Element.PHRASE || - element.type() == Element.ANCHOR || - element.type() == Element.ANNOTATION || - element.type() == Element.TABLE || // line added by David Freels - element.type() == Element.YMARK || - element.type() == Element.MARKED) { + } else if (element.type() == Element.PHRASE + || element.type() == Element.ANCHOR + || element.type() == Element.ANNOTATION + || element.type() == Element.TABLE // line added by David Freels + || element.type() == Element.YMARK + || element.type() == Element.MARKED) { super.add(index, element); } else { throw new ClassCastException(String.valueOf(element.type())); diff --git a/openpdf-core/src/main/java/org/openpdf/text/html/simpleparser/HTMLWorker.java b/openpdf-core/src/main/java/org/openpdf/text/html/simpleparser/HTMLWorker.java index a5e78203e..776fd6aa6 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/html/simpleparser/HTMLWorker.java +++ b/openpdf-core/src/main/java/org/openpdf/text/html/simpleparser/HTMLWorker.java @@ -281,8 +281,9 @@ public void startElement(String tag, Map style) { } if (addLeadingBreak) { // Not a new paragraph int numChunks = currentParagraph.getChunks().size(); - if (numChunks == 0 || - ((Chunk) (currentParagraph.getChunks().get(numChunks - 1))).getContent().endsWith("\n")) { + if (numChunks == 0 + || ((Chunk) (currentParagraph.getChunks().get(numChunks - 1))).getContent() + .endsWith("\n")) { addLeadingBreak = false; } } diff --git a/openpdf-core/src/main/java/org/openpdf/text/pdf/AcroFields.java b/openpdf-core/src/main/java/org/openpdf/text/pdf/AcroFields.java index ca8d426c3..2d0017e8c 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/pdf/AcroFields.java +++ b/openpdf-core/src/main/java/org/openpdf/text/pdf/AcroFields.java @@ -3113,8 +3113,7 @@ public int read() throws IOException { public int read(byte[] b, int off, int len) throws IOException { if (b == null) { throw new NullPointerException(); - } else if ((off < 0) || (off > b.length) || (len < 0) || - ((off + len) > b.length) || ((off + len) < 0)) { + } else if ((off < 0) || (off > b.length) || (len < 0) || ((off + len) > b.length) || ((off + len) < 0)) { throw new IndexOutOfBoundsException(); } else if (len == 0) { return 0; diff --git a/openpdf-core/src/main/java/org/openpdf/text/pdf/Barcode39.java b/openpdf-core/src/main/java/org/openpdf/text/pdf/Barcode39.java index eda152244..146e00fa1 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/pdf/Barcode39.java +++ b/openpdf-core/src/main/java/org/openpdf/text/pdf/Barcode39.java @@ -136,14 +136,14 @@ public class Barcode39 extends Barcode { /** * The character combinations to make the code 39 extended. */ - private static final String EXTENDED = "%U" + - "$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z" + - "%A%B%C%D%E /A/B/C/D/E/F/G/H/I/J/K/L - ./O" + - " 0 1 2 3 4 5 6 7 8 9/Z%F%G%H%I%J%V" + - " A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" + - "%K%L%M%N%O%W" + - "+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z" + - "%P%Q%R%S%T"; + private static final String EXTENDED = "%U" + + "$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z" + + "%A%B%C%D%E /A/B/C/D/E/F/G/H/I/J/K/L - ./O" + + " 0 1 2 3 4 5 6 7 8 9/Z%F%G%H%I%J%V" + + " A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" + + "%K%L%M%N%O%W" + + "+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z" + + "%P%Q%R%S%T"; /** * Creates a new Barcode39. diff --git a/openpdf-core/src/main/java/org/openpdf/text/pdf/ByteBuffer.java b/openpdf-core/src/main/java/org/openpdf/text/pdf/ByteBuffer.java index a2d1916fe..c3419ae5d 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/pdf/ByteBuffer.java +++ b/openpdf-core/src/main/java/org/openpdf/text/pdf/ByteBuffer.java @@ -477,8 +477,8 @@ public ByteBuffer append_i(int b) { * @return a reference to this ByteBuffer object */ public ByteBuffer append(byte[] b, int off, int len) { - if ((off < 0) || (off > b.length) || (len < 0) || - ((off + len) > b.length) || ((off + len) < 0) || len == 0) { + if ((off < 0) || (off > b.length) || (len < 0) + || ((off + len) > b.length) || ((off + len) < 0) || len == 0) { return this; } int newcount = count + len; diff --git a/openpdf-core/src/main/java/org/openpdf/text/pdf/CFFFontSubset.java b/openpdf-core/src/main/java/org/openpdf/text/pdf/CFFFontSubset.java index cba2faabc..90041c618 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/pdf/CFFFontSubset.java +++ b/openpdf-core/src/main/java/org/openpdf/text/pdf/CFFFontSubset.java @@ -743,16 +743,25 @@ protected int StackOpp() { if (Objects.equals(key, "roll") || Objects.equals(key, "put")) { return -2; } - if (Objects.equals(key, "callsubr") || Objects.equals(key, "callgsubr") || Objects.equals(key, "add") - || Objects.equals(key, "sub") || - Objects.equals(key, "div") || Objects.equals(key, "mul") || Objects.equals(key, "drop") - || Objects.equals(key, "and") || - Objects.equals(key, "or") || Objects.equals(key, "eq")) { + if (Objects.equals(key, "callsubr") + || Objects.equals(key, "callgsubr") + || Objects.equals(key, "add") + || Objects.equals(key, "sub") + || Objects.equals(key, "div") + || Objects.equals(key, "mul") + || Objects.equals(key, "drop") + || Objects.equals(key, "and") + || Objects.equals(key, "or") + || Objects.equals(key, "eq")) { return -1; } - if (Objects.equals(key, "abs") || Objects.equals(key, "neg") || Objects.equals(key, "sqrt") || Objects.equals( - key, "exch") || - Objects.equals(key, "index") || Objects.equals(key, "get") || Objects.equals(key, "not") + if (Objects.equals(key, "abs") + || Objects.equals(key, "neg") + || Objects.equals(key, "sqrt") + || Objects.equals(key, "exch") + || Objects.equals(key, "index") + || Objects.equals(key, "get") + || Objects.equals(key, "not") || Objects.equals(key, "return")) { return 0; } diff --git a/openpdf-core/src/main/java/org/openpdf/text/pdf/EnumerateTTC.java b/openpdf-core/src/main/java/org/openpdf/text/pdf/EnumerateTTC.java index 8fd009f68..50cd8a4a0 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/pdf/EnumerateTTC.java +++ b/openpdf-core/src/main/java/org/openpdf/text/pdf/EnumerateTTC.java @@ -111,8 +111,8 @@ void findNames() throws DocumentException, IOException { rf.seek(directoryOffset); int sfntVersion = rf.readInt(); boolean trueTypeFont = sfntVersion == TRUE_TYPE_SFNT_VERSION; - boolean cffDataFont = sfntVersion == CFF_DATA_SFNT_VERSION && - (majorVersion == 1 || majorVersion == 2); + boolean cffDataFont = sfntVersion == CFF_DATA_SFNT_VERSION + && (majorVersion == 1 || majorVersion == 2); if (!trueTypeFont && !cffDataFont) { throw new DocumentException( MessageLocalization.getComposedMessage("1.is.not.a.valid.ttf.file", fileName)); diff --git a/openpdf-core/src/main/java/org/openpdf/text/pdf/FontDetails.java b/openpdf-core/src/main/java/org/openpdf/text/pdf/FontDetails.java index ccb869edb..a8897dd4f 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/pdf/FontDetails.java +++ b/openpdf-core/src/main/java/org/openpdf/text/pdf/FontDetails.java @@ -342,8 +342,7 @@ private IVSResult tryProcessIVS(String text, int vsStartIndex, int baseCp) { } private static boolean isVariationSelector(int codePoint) { - return (codePoint >= 0xFE00 && codePoint <= 0xFE0F) || - (codePoint >= 0xE0100 && codePoint <= 0xE01EF); + return (codePoint >= 0xFE00 && codePoint <= 0xFE0F) || (codePoint >= 0xE0100 && codePoint <= 0xE01EF); } private byte[] getCJKEncodingBytes(int[] glyph, int size) { diff --git a/openpdf-core/src/main/java/org/openpdf/text/pdf/GlyphLayoutManager.java b/openpdf-core/src/main/java/org/openpdf/text/pdf/GlyphLayoutManager.java index 0d06b2c53..efcc5ae5b 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/pdf/GlyphLayoutManager.java +++ b/openpdf-core/src/main/java/org/openpdf/text/pdf/GlyphLayoutManager.java @@ -274,8 +274,8 @@ public void showText(PdfContentByte cb, BaseFont baseFont, float fontSize, Strin * @return Font.LAYOUT_LEFT_TO_RIGHT or Font.LAYOUT_RIGHT_TO_LEFT */ protected int computeBidiFlags(String text) { - int bidiFlags = (defaultBidiDirection == Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT ? - Font.LAYOUT_LEFT_TO_RIGHT : Font.LAYOUT_RIGHT_TO_LEFT); + int bidiFlags = (defaultBidiDirection == Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT + ? Font.LAYOUT_LEFT_TO_RIGHT : Font.LAYOUT_RIGHT_TO_LEFT); if (Bidi.requiresBidi(text.toCharArray(), 0, text.length())) { Bidi bidi = new Bidi(text, defaultBidiDirection); diff --git a/openpdf-core/src/main/java/org/openpdf/text/pdf/MultiColumnText.java b/openpdf-core/src/main/java/org/openpdf/text/pdf/MultiColumnText.java index 9bf15bace..7be9987f9 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/pdf/MultiColumnText.java +++ b/openpdf-core/src/main/java/org/openpdf/text/pdf/MultiColumnText.java @@ -600,8 +600,8 @@ private float[] resolvePositions(float[] positions) { } if (top == AUTOMATIC) { // this is bad - must be programmer error - throw new RuntimeException("resolvePositions called with top=AUTOMATIC (-1). " + - "Top position must be set befure lines can be resolved"); + throw new RuntimeException("resolvePositions called with top=AUTOMATIC (-1). " + + "Top position must be set befure lines can be resolved"); } positions[1] = top; positions[3] = getColumnBottom(); diff --git a/openpdf-core/src/main/java/org/openpdf/text/pdf/PRAcroForm.java b/openpdf-core/src/main/java/org/openpdf/text/pdf/PRAcroForm.java index d3cc200b7..1371c231a 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/pdf/PRAcroForm.java +++ b/openpdf-core/src/main/java/org/openpdf/text/pdf/PRAcroForm.java @@ -197,9 +197,9 @@ protected PdfDictionary mergeAttrib(PdfDictionary parent, PdfDictionary child) { } for (PdfName key : child.getKeys()) { - if (key.equals(PdfName.DR) || key.equals(PdfName.DA) || - key.equals(PdfName.Q) || key.equals(PdfName.FF) || - key.equals(PdfName.DV) || key.equals(PdfName.V) + if (key.equals(PdfName.DR) || key.equals(PdfName.DA) + || key.equals(PdfName.Q) || key.equals(PdfName.FF) + || key.equals(PdfName.DV) || key.equals(PdfName.V) || key.equals(PdfName.FT) || key.equals(PdfName.F)) { targ.put(key, child.get(key)); diff --git a/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfDocument.java b/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfDocument.java index 91b37e3de..ee27f9911 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfDocument.java +++ b/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfDocument.java @@ -1272,8 +1272,7 @@ public float getVerticalPosition(boolean ensureNewLine) { */ protected void ensureNewLine() { try { - if ((lastElementType == Element.PHRASE) || - (lastElementType == Element.CHUNK)) { + if ((lastElementType == Element.PHRASE) || (lastElementType == Element.CHUNK)) { newLine(); flushLines(); } diff --git a/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfGraphics2D.java b/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfGraphics2D.java index 5992ded07..133a9cee6 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfGraphics2D.java +++ b/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfGraphics2D.java @@ -518,11 +518,11 @@ private double drawString(String s, BaseFont baseFont, double x, double y) { String fontFaceName = font.getFontName(); String fontLogicalName = font.getName(); if ((font.isBold() || (weight >= TextAttribute.WEIGHT_SEMIBOLD)) - && (fontFaceName.equals(fontLogicalName) || + && (fontFaceName.equals(fontLogicalName) // bold logical font face name has suffix ".bold" / ".bolditalic" - (LOGICAL_FONT_NAMES.contains(fontLogicalName) && - (fontFaceName.equals(fontLogicalName + BOLD_FONT_FACE_NAME_SUFFIX) || - fontFaceName.equals(fontLogicalName + BOLD_ITALIC_FONT_FACE_NAME_SUFFIX))))) { + || (LOGICAL_FONT_NAMES.contains(fontLogicalName) + && (fontFaceName.equals(fontLogicalName + BOLD_FONT_FACE_NAME_SUFFIX) + || fontFaceName.equals(fontLogicalName + BOLD_ITALIC_FONT_FACE_NAME_SUFFIX))))) { // Simulate a bold font. float strokeWidth = font.getSize2D() * (weight - TextAttribute.WEIGHT_REGULAR) / 30f; if (strokeWidth != 1) { @@ -1854,9 +1854,9 @@ private static class CompositeFontDrawer { GET_FONT_NAME_METHOD = null; } - SUPPORTED = FONT_UTILITIES_CLASS != null && COMPOSITE_FONT_CLASS != null && - FONT2D_CLASS != null && GET_FONT2D_METHOD != null && GET_NUM_SLOTS_METHOD != null && - GET_SLOT_FONT_METHOD != null && CAN_DYSPLAY_METHOD != null && GET_FONT_NAME_METHOD != null; + SUPPORTED = FONT_UTILITIES_CLASS != null && COMPOSITE_FONT_CLASS != null + && FONT2D_CLASS != null && GET_FONT2D_METHOD != null && GET_NUM_SLOTS_METHOD != null + && GET_SLOT_FONT_METHOD != null && CAN_DYSPLAY_METHOD != null && GET_FONT_NAME_METHOD != null; } private final transient StringBuilder sb = new StringBuilder(); diff --git a/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfName.java b/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfName.java index 88d19a682..bd7b57662 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfName.java +++ b/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfName.java @@ -3234,8 +3234,7 @@ public class PdfName extends PdfObject implements Comparable { final int flags = Modifier.STATIC | Modifier.PUBLIC | Modifier.FINAL; try { for (Field curFld : fields) { - if ((curFld.getModifiers() & flags) == flags && - curFld.getType().equals(PdfName.class)) { + if ((curFld.getModifiers() & flags) == flags && curFld.getType().equals(PdfName.class)) { PdfName name = (PdfName) curFld.get(null); staticNames.put(decodeName(name.toString()), name); } diff --git a/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfPageLabels.java b/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfPageLabels.java index 153711f5e..00e391817 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfPageLabels.java +++ b/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfPageLabels.java @@ -333,12 +333,12 @@ public PdfPageLabelFormat(int physicalPage, @Override public String toString() { - return "PdfPageLabelFormat{" + - "physicalPage=" + physicalPage + - ", numberStyle=" + numberStyle + - ", prefix='" + prefix + '\'' + - ", logicalPage=" + logicalPage + - '}'; + return "PdfPageLabelFormat{" + + "physicalPage=" + physicalPage + + ", numberStyle=" + numberStyle + + ", prefix='" + prefix + '\'' + + ", logicalPage=" + logicalPage + + '}'; } } } diff --git a/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfStamperImp.java b/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfStamperImp.java index 82b2da595..f4fe5dd7a 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfStamperImp.java +++ b/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfStamperImp.java @@ -396,8 +396,8 @@ void close(Map moreInfo) throws IOException { encryption = encryptionObject.getIndirectReference(); } if (includeFileID) { - byte[] fileIDPartTwo = overrideFileId != null ? - PdfEncryption.getFileIdChangingPart(overrideFileId) : PdfEncryption.createDocumentId(); + byte[] fileIDPartTwo = overrideFileId != null + ? PdfEncryption.getFileIdChangingPart(overrideFileId) : PdfEncryption.createDocumentId(); fileID = PdfEncryption.createInfoId(crypto.documentID, fileIDPartTwo); } } else if (includeFileID) { @@ -1232,8 +1232,8 @@ private void flatFreeTextFields() { if (obj1 == null) { continue; } - PdfDictionary appDic = (obj1 instanceof PdfIndirectReference) ? - (PdfDictionary) PdfReader.getPdfObject(obj1) : (PdfDictionary) obj1; + PdfDictionary appDic = (obj1 instanceof PdfIndirectReference) + ? (PdfDictionary) PdfReader.getPdfObject(obj1) : (PdfDictionary) obj1; PdfObject obj = appDic.get(PdfName.N); PdfAppearance app = null; PdfObject objReal = PdfReader.getPdfObject(obj); @@ -1843,11 +1843,11 @@ boolean isAppend() { * @throws PdfException on invalid action type */ public void setAdditionalAction(PdfName actionType, PdfAction action) throws PdfException { - if (!(actionType.equals(DOCUMENT_CLOSE) || - actionType.equals(WILL_SAVE) || - actionType.equals(DID_SAVE) || - actionType.equals(WILL_PRINT) || - actionType.equals(DID_PRINT))) { + if (!(actionType.equals(DOCUMENT_CLOSE) + || actionType.equals(WILL_SAVE) + || actionType.equals(DID_SAVE) + || actionType.equals(WILL_PRINT) + || actionType.equals(DID_PRINT))) { throw new PdfException( MessageLocalization.getComposedMessage("invalid.additional.action.type.1", actionType.toString())); } diff --git a/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfWriter.java b/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfWriter.java index fc715075a..2706b0017 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfWriter.java +++ b/openpdf-core/src/main/java/org/openpdf/text/pdf/PdfWriter.java @@ -1306,8 +1306,8 @@ public void close() { // ITextRenderer is not thread safe. So if you get this problem here, create a new // instance, rather than re-using it. // See: https://github.com/LibrePDF/OpenPDF/issues/164 - throw new RuntimeException("The page " + pageReferences.size() + - " was requested but the document has only " + (currentPageNumber - 1) + " pages."); + throw new RuntimeException("The page " + pageReferences.size() + + " was requested but the document has only " + (currentPageNumber - 1) + " pages."); } try { @@ -1696,11 +1696,11 @@ public void setOpenAction(PdfAction action) { * org.openpdf.text.pdf.PdfAction) */ public void setAdditionalAction(PdfName actionType, PdfAction action) throws DocumentException { - if (!(actionType.equals(DOCUMENT_CLOSE) || - actionType.equals(WILL_SAVE) || - actionType.equals(DID_SAVE) || - actionType.equals(WILL_PRINT) || - actionType.equals(DID_PRINT))) { + if (!(actionType.equals(DOCUMENT_CLOSE) + || actionType.equals(WILL_SAVE) + || actionType.equals(DID_SAVE) + || actionType.equals(WILL_PRINT) + || actionType.equals(DID_PRINT))) { throw new DocumentException( MessageLocalization.getComposedMessage("invalid.additional.action.type.1", actionType.toString())); } diff --git a/openpdf-core/src/main/java/org/openpdf/text/pdf/Pfm2afm.java b/openpdf-core/src/main/java/org/openpdf/text/pdf/Pfm2afm.java index db60d0c7b..9fad5627a 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/pdf/Pfm2afm.java +++ b/openpdf-core/src/main/java/org/openpdf/text/pdf/Pfm2afm.java @@ -684,8 +684,8 @@ private void putheader() throws IOException { * table of font widths, not if they are all the same. */ out.print("\nIsFixedPitch "); - if ((kind & 1) == 0 || /* Flag for mono */ - avgwidth == maxwidth) { /* Avg width = max width */ + if ((kind & 1) == 0 /* Flag for mono */ + || avgwidth == maxwidth) { /* Avg width = max width */ out.print("true"); isMono = true; } else { diff --git a/openpdf-core/src/main/java/org/openpdf/text/pdf/fonts/cmaps/CMapParser.java b/openpdf-core/src/main/java/org/openpdf/text/pdf/fonts/cmaps/CMapParser.java index 034a36605..cefb23d8f 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/pdf/fonts/cmaps/CMapParser.java +++ b/openpdf-core/src/main/java/org/openpdf/text/pdf/fonts/cmaps/CMapParser.java @@ -299,9 +299,7 @@ private Object parseNextToken(PushbackInputStream is) throws IOException { buffer.append((char) nextByte); nextByte = is.read(); - while (!isWhitespaceOrEOF(nextByte) && - (Character.isDigit((char) nextByte) || - nextByte == '.')) { + while (!isWhitespaceOrEOF(nextByte) && (Character.isDigit((char) nextByte) || nextByte == '.')) { buffer.append((char) nextByte); nextByte = is.read(); } diff --git a/openpdf-core/src/main/java/org/openpdf/text/pdf/parser/Matrix.java b/openpdf-core/src/main/java/org/openpdf/text/pdf/parser/Matrix.java index 2ac50e9fc..fd1f3c48a 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/pdf/parser/Matrix.java +++ b/openpdf-core/src/main/java/org/openpdf/text/pdf/parser/Matrix.java @@ -243,8 +243,8 @@ public int hashCode() { */ @Override public String toString() { - return vals[I11] + "\t" + vals[I12] + "\t" + vals[I13] + "\n" + - vals[I21] + "\t" + vals[I22] + "\t" + vals[I13] + "\n" + - vals[I31] + "\t" + vals[I32] + "\t" + vals[I33]; + return vals[I11] + "\t" + vals[I12] + "\t" + vals[I13] + "\n" + + vals[I21] + "\t" + vals[I22] + "\t" + vals[I13] + "\n" + + vals[I31] + "\t" + vals[I32] + "\t" + vals[I33]; } } diff --git a/openpdf-core/src/main/java/org/openpdf/text/utils/PdfBatch.java b/openpdf-core/src/main/java/org/openpdf/text/utils/PdfBatch.java index 3d4821b55..36a79dfed 100644 --- a/openpdf-core/src/main/java/org/openpdf/text/utils/PdfBatch.java +++ b/openpdf-core/src/main/java/org/openpdf/text/utils/PdfBatch.java @@ -32,11 +32,11 @@ public int total() { @Override public String toString() { - return "BatchResult{" + - "successes=" + successes.size() + - ", failures=" + failures.size() + - ", total=" + total() + - '}'; + return "BatchResult{" + + "successes=" + successes.size() + + ", failures=" + failures.size() + + ", total=" + total() + + '}'; } } diff --git a/openpdf-core/src/test/java/org/openpdf/text/OpenPdfVersionTest.java b/openpdf-core/src/test/java/org/openpdf/text/OpenPdfVersionTest.java index c5eaaa980..58667a07d 100644 --- a/openpdf-core/src/test/java/org/openpdf/text/OpenPdfVersionTest.java +++ b/openpdf-core/src/test/java/org/openpdf/text/OpenPdfVersionTest.java @@ -117,8 +117,8 @@ void legacyCharSetterIfPresent(@TempDir Path tmp) throws Exception { @DisplayName("Read existing PDFs: log header & reader versions; open when possible") void readExistingPdfsAndVerifyVersion() throws IOException { assertTrue(Files.isDirectory(SAMPLE_DIR), - "Sample directory not found: " + SAMPLE_DIR.toAbsolutePath() + - " (override with -Dopenpdf.test.pdfdir=/path/to/dir)"); + "Sample directory not found: " + SAMPLE_DIR.toAbsolutePath() + + " (override with -Dopenpdf.test.pdfdir=/path/to/dir)"); for (String name : SAMPLE_FILES) { Path p = SAMPLE_DIR.resolve(name); @@ -131,8 +131,8 @@ void readExistingPdfsAndVerifyVersion() throws IOException { assertTrue(headerVersion.matches("\\d+\\.\\d+"), () -> name + ": header version not x.y: " + headerVersion); assertTrue(SUPPORTED_VERSIONS.contains(headerVersion), - () -> name + ": unexpected header version " + headerVersion + - " (allowed: " + SUPPORTED_VERSIONS + ")"); + () -> name + ": unexpected header version " + headerVersion + + " (allowed: " + SUPPORTED_VERSIONS + ")"); // Try to open and get reader version (normalize if needed) try (PdfReader reader = new PdfReader(new ByteArrayInputStream(bytes))) { @@ -153,8 +153,8 @@ void readExistingPdfsAndVerifyVersion() throws IOException { // Likely encrypted/signed. Acceptable as long as header is OK. String msg = String.valueOf(openEx.getMessage()).toLowerCase(); boolean looksEncrypted = msg.contains("password") || msg.contains("encrypted"); - boolean namedProtected = name.toLowerCase().contains("protected") || - name.toLowerCase().contains("signed"); + boolean namedProtected = name.toLowerCase().contains("protected") + || name.toLowerCase().contains("signed"); System.out.printf("PDF %-35s | header=%-4s | reader=(failed to open: %s)%n", name, headerVersion, openEx.getClass().getSimpleName()); assertTrue(looksEncrypted || namedProtected, diff --git a/openpdf-core/src/test/java/org/openpdf/text/pdf/FirstLineBaselineExample.java b/openpdf-core/src/test/java/org/openpdf/text/pdf/FirstLineBaselineExample.java index 1c66b2f11..913475203 100644 --- a/openpdf-core/src/test/java/org/openpdf/text/pdf/FirstLineBaselineExample.java +++ b/openpdf-core/src/test/java/org/openpdf/text/pdf/FirstLineBaselineExample.java @@ -62,8 +62,8 @@ private static void demonstrateOldBehavior(PdfContentByte cb, Document document) float desiredBaseline = 540f; ct.setYLine(desiredBaseline + leading); // Manual calculation required! - Paragraph paragraph = new Paragraph("This text uses the old approach.\n" + - "First line baseline had to be calculated manually.", font); + Paragraph paragraph = new Paragraph("This text uses the old approach.\n" + + "First line baseline had to be calculated manually.", font); paragraph.setLeading(leading); ct.addText(paragraph); ct.go(); @@ -86,8 +86,8 @@ private static void demonstrateNewAPI(PdfContentByte cb) throws Exception { float desiredBaseline = 340f; ct.setFirstLineBaselineY(desiredBaseline); // Simple and intuitive! - Paragraph paragraph = new Paragraph("This text uses the new API.\n" + - "First line baseline is set directly to " + desiredBaseline + ".", font); + Paragraph paragraph = new Paragraph("This text uses the new API.\n" + + "First line baseline is set directly to " + desiredBaseline + ".", font); paragraph.setLeading(leading); ct.addText(paragraph); ct.go(); @@ -115,8 +115,7 @@ public static void createAdvancedExample() throws Exception { // Set first line baseline to exact position ct.setFirstLineBaselineY(baselineYPositions[i]); - Paragraph para = new Paragraph("Line " + (i + 1) + - " at baseline Y = " + baselineYPositions[i], font); + Paragraph para = new Paragraph("Line " + (i + 1) + " at baseline Y = " + baselineYPositions[i], font); ct.addText(para); ct.go(); } diff --git a/openpdf-core/src/test/java/org/openpdf/text/pdf/FopGlyphProcessorTest.java b/openpdf-core/src/test/java/org/openpdf/text/pdf/FopGlyphProcessorTest.java index 2d5d20d2c..ac3f960cf 100644 --- a/openpdf-core/src/test/java/org/openpdf/text/pdf/FopGlyphProcessorTest.java +++ b/openpdf-core/src/test/java/org/openpdf/text/pdf/FopGlyphProcessorTest.java @@ -38,8 +38,8 @@ void textCreateDocument() throws IOException { // 3. เขียนเนื้อหาทดสอบ document.add(new Paragraph("คำทดสอบ: จำ ทำ น้ำ ต่ำ ก้ำ", thaiFont)); - String longText = "Lorem Ipsum คือ เนื้อหาจำลองที่ใช้กันในธุรกิจงานพิมพ์หรืองานเรียงพิมพ์ " + - "มันได้กลายมาเป็นเนื้อหาจำลองมาตรฐานของธุรกิจดังกล่าวมาตั้งแต่ศตวรรษที่ 16"; + String longText = "Lorem Ipsum คือ เนื้อหาจำลองที่ใช้กันในธุรกิจงานพิมพ์หรืองานเรียงพิมพ์ " + + "มันได้กลายมาเป็นเนื้อหาจำลองมาตรฐานของธุรกิจดังกล่าวมาตั้งแต่ศตวรรษที่ 16"; document.add(new Paragraph(longText, thaiFont)); FopGlyphProcessorTest.log.info("Save to: " + tmp.toAbsolutePath()); diff --git a/openpdf-core/src/test/java/org/openpdf/text/pdf/LayoutProcessor534Test.java b/openpdf-core/src/test/java/org/openpdf/text/pdf/LayoutProcessor534Test.java index 6d3ee69c7..8b311ed0c 100644 --- a/openpdf-core/src/test/java/org/openpdf/text/pdf/LayoutProcessor534Test.java +++ b/openpdf-core/src/test/java/org/openpdf/text/pdf/LayoutProcessor534Test.java @@ -75,13 +75,13 @@ void whenLayoutRightToLeftHebrewThenRevertCharOrder() throws IOException { PdfWriter.getInstance(document, pdfOut); document.open(); // when - String text = "שוב היתה זו שעת לילה. דממה שררה בפונדק אבן־הדרך, והיתה זו דממה בת שלושה חלקים." + - "החלק המתבקש מאליו היה שקט חלול, מהדהד, עשוי מן הדברים שלא היו. אילו היתה רוח, כי" + - "אז היתה נאנחת בעוברה בין העצים, מטלטלת את שלט הפונדק בחריקה על ציריו וסוחפת את" + - "הדממה במורד הדרך, כפי שהיא גורפת עלי סתיו. אילו היה קהל בפונדק, אפילו קומץ אנשים, כי" + - "אז היו ממלאים את הדממה בשיחה ובצחוק, בהמולה ובשאון שהיה מקום לצַפות להם במסבאה," + - "בשעות הלילה החשוכות. אילו היתה מוסיקה... אבל לא , ודאי שלא היתה מוסיקה. למען האמת, אף" + - "לא אחד מהדברים האלה היה שם, ולכן נותרה הדממה בעינה."; + String text = "שוב היתה זו שעת לילה. דממה שררה בפונדק אבן־הדרך, והיתה זו דממה בת שלושה חלקים." + + "החלק המתבקש מאליו היה שקט חלול, מהדהד, עשוי מן הדברים שלא היו. אילו היתה רוח, כי" + + "אז היתה נאנחת בעוברה בין העצים, מטלטלת את שלט הפונדק בחריקה על ציריו וסוחפת את" + + "הדממה במורד הדרך, כפי שהיא גורפת עלי סתיו. אילו היה קהל בפונדק, אפילו קומץ אנשים, כי" + + "אז היו ממלאים את הדממה בשיחה ובצחוק, בהמולה ובשאון שהיה מקום לצַפות להם במסבאה," + + "בשעות הלילה החשוכות. אילו היתה מוסיקה... אבל לא , ודאי שלא היתה מוסיקה. למען האמת, אף" + + "לא אחד מהדברים האלה היה שם, ולכן נותרה הדממה בעינה."; Paragraph paragraph = new Paragraph(new Chunk(text)); paragraph.setAlignment(Element.ALIGN_JUSTIFIED); diff --git a/openpdf-core/src/test/java/org/openpdf/text/pdf/PdfDocument620Test.java b/openpdf-core/src/test/java/org/openpdf/text/pdf/PdfDocument620Test.java index b3eb6f58a..452b110bd 100644 --- a/openpdf-core/src/test/java/org/openpdf/text/pdf/PdfDocument620Test.java +++ b/openpdf-core/src/test/java/org/openpdf/text/pdf/PdfDocument620Test.java @@ -33,10 +33,10 @@ public void generate2DocumentsWithShortLine() throws IOException { @Test public void generate2DocumentsWithLongLine() throws IOException { - String s = "sagdageafedddddd dddddddddddddd dddddddddddddddddd ddddddddddd dddddddd" + - "sdaffffff ffffffffffffff ffffffffffffff ffffffffffff" + - "dsaffffffffff ffffffffffffffffff ffffffffffffff fffffffffffff" + - "dsaffff ffffffffff fffffffffffffffff"; + String s = "sagdageafedddddd dddddddddddddd dddddddddddddddddd ddddddddddd dddddddd" + + "sdaffffff ffffffffffffff ffffffffffffff ffffffffffff" + + "dsaffffffffff ffffffffffffffffff ffffffffffffff fffffffffffff" + + "dsaffff ffffffffff fffffffffffffffff"; createPdf("longLine", s, true); createPdf("longLine", s, false); } diff --git a/openpdf-fonts-extra/src/test/java/org/librepdf/openpdf/fonts/GreekAndCyrillicTest.java b/openpdf-fonts-extra/src/test/java/org/librepdf/openpdf/fonts/GreekAndCyrillicTest.java index 55a948855..a3117463d 100644 --- a/openpdf-fonts-extra/src/test/java/org/librepdf/openpdf/fonts/GreekAndCyrillicTest.java +++ b/openpdf-fonts-extra/src/test/java/org/librepdf/openpdf/fonts/GreekAndCyrillicTest.java @@ -9,20 +9,14 @@ class GreekAndCyrillicTest { @Test void testGreek() throws IOException { - String greekText = "Some greek text: " + - "Οἱ δὲ Φοίνιϰες οὗτοι οἱ σὺν Κάδμῳ ἀπιϰόμενοι.. ἐσήγαγον διδασϰάλια ἐς τοὺς ῞Ελληνας ϰαὶ δὴ ϰαὶ " - + - "γράμματα, οὐϰ ἐόντα πρὶν ῞Ελλησι ὡς ἐμοὶ δοϰέειν, πρῶτα μὲν τοῖσι ϰαὶ ἅπαντες χρέωνται " - + - "Φοίνιϰες· μετὰ δὲ χρόνου προβαίνοντος ἅμα τῇ ϕωνῇ μετέβαλον ϰαὶ τὸν ϱυϑμὸν τῶν γραμμάτων. " - + - "Περιοίϰεον δέ σϕεας τὰ πολλὰ τῶν χώρων τοῦτον τὸν χρόνον ῾Ελλήνων ῎Ιωνες· οἳ παραλαβόντες " - + - "διδαχῇ παρὰ τῶν Φοινίϰων τὰ γράμματα, μεταρρυϑμίσαντές σϕεων ὀλίγα ἐχρέωντο, χρεώμενοι δὲ " - + - "ἐϕάτισαν, ὥσπερ ϰαὶ τὸ δίϰαιον ἔϕερε ἐσαγαγόντων Φοινίϰων ἐς τὴν ῾Ελλάδα, ϕοινιϰήια " - + - "ϰεϰλῆσϑαι."; + String greekText = "Some greek text: " + + "Οἱ δὲ Φοίνιϰες οὗτοι οἱ σὺν Κάδμῳ ἀπιϰόμενοι.. ἐσήγαγον διδασϰάλια ἐς τοὺς ῞Ελληνας ϰαὶ δὴ ϰαὶ " + + "γράμματα, οὐϰ ἐόντα πρὶν ῞Ελλησι ὡς ἐμοὶ δοϰέειν, πρῶτα μὲν τοῖσι ϰαὶ ἅπαντες χρέωνται " + + "Φοίνιϰες· μετὰ δὲ χρόνου προβαίνοντος ἅμα τῇ ϕωνῇ μετέβαλον ϰαὶ τὸν ϱυϑμὸν τῶν γραμμάτων. " + + "Περιοίϰεον δέ σϕεας τὰ πολλὰ τῶν χώρων τοῦτον τὸν χρόνον ῾Ελλήνων ῎Ιωνες· οἳ παραλαβόντες " + + "διδαχῇ παρὰ τῶν Φοινίϰων τὰ γράμματα, μεταρρυϑμίσαντές σϕεων ὀλίγα ἐχρέωντο, χρεώμενοι δὲ " + + "ἐϕάτισαν, ὥσπερ ϰαὶ τὸ δίϰαιον ἔϕερε ἐσαγαγόντων Φοινίϰων ἐς τὴν ῾Ελλάδα, ϕοινιϰήια " + + "ϰεϰλῆσϑαι."; Document document = FontsTestUtil.createPdf("target/greek.pdf"); document.open(); document.add(new Paragraph(greekText, Liberation.SANS_BOLD.create())); @@ -31,10 +25,9 @@ void testGreek() throws IOException { @Test void testCyrillic() throws IOException { - String cyrillicText = "Some cyrillic text: " + - "Статья 1 Все люди рождаются свободными и равными в своем достоинстве и правах. Они " - + - "наделены разумом и совестью и должны поступать в отношении друг друга в духе братства."; + String cyrillicText = "Some cyrillic text: " + + "Статья 1 Все люди рождаются свободными и равными в своем достоинстве и правах. Они " + + "наделены разумом и совестью и должны поступать в отношении друг друга в духе братства."; Document document = FontsTestUtil.createPdf("target/cyrillic.pdf"); document.open(); document.add(new Paragraph(cyrillicText, Liberation.SANS_ITALIC.create())); diff --git a/openpdf-html/src/main/java/org/openpdf/context/AWTFontResolver.java b/openpdf-html/src/main/java/org/openpdf/context/AWTFontResolver.java index 625ee1449..bf081dddc 100644 --- a/openpdf-html/src/main/java/org/openpdf/context/AWTFontResolver.java +++ b/openpdf-html/src/main/java/org/openpdf/context/AWTFontResolver.java @@ -100,11 +100,11 @@ protected static Font createFont(SharedContext ctx, Font root_font, float size, IdentValue style, IdentValue variant) { int font_const = Font.PLAIN; - if (weight != null && - (weight == IdentValue.BOLD || - weight == IdentValue.FONT_WEIGHT_700 || - weight == IdentValue.FONT_WEIGHT_800 || - weight == IdentValue.FONT_WEIGHT_900)) { + if (weight != null + && (weight == IdentValue.BOLD + || weight == IdentValue.FONT_WEIGHT_700 + || weight == IdentValue.FONT_WEIGHT_800 + || weight == IdentValue.FONT_WEIGHT_900)) { font_const = font_const | Font.BOLD; } diff --git a/openpdf-html/src/main/java/org/openpdf/context/ContentFunctionFactory.java b/openpdf-html/src/main/java/org/openpdf/context/ContentFunctionFactory.java index 902f8f82a..adf371c2d 100644 --- a/openpdf-html/src/main/java/org/openpdf/context/ContentFunctionFactory.java +++ b/openpdf-html/src/main/java/org/openpdf/context/ContentFunctionFactory.java @@ -102,8 +102,7 @@ protected boolean isCounter(FSFunction function, String counterName) { List parameters = function.getParameters(); if (parameters.size() == 1 || parameters.size() == 2) { PropertyValue param = parameters.get(0); - if (param.getPrimitiveType() != CSS_IDENT || - !Objects.equals(param.getStringValue(), counterName)) { + if (param.getPrimitiveType() != CSS_IDENT || !Objects.equals(param.getStringValue(), counterName)) { return false; } @@ -187,16 +186,15 @@ public boolean canHandle(LayoutContext c, FSFunction function) { List parameters = function.getParameters(); if (parameters.size() == 2 || parameters.size() == 3) { FSFunction f = parameters.get(0).getFunction(); - if (f == null || - f.getParameters().size() != 1 || - f.getParameters().get(0).getPrimitiveType() != CSS_IDENT || - ! "href".equals(f.getParameters().get(0).getStringValue())) { + if (f == null + || f.getParameters().size() != 1 + || f.getParameters().get(0).getPrimitiveType() != CSS_IDENT + || !"href".equals(f.getParameters().get(0).getStringValue())) { return false; } PropertyValue param = parameters.get(1); - return param.getPrimitiveType() == CSS_IDENT && - Objects.equals(param.getStringValue(), "page"); + return param.getPrimitiveType() == CSS_IDENT && Objects.equals(param.getStringValue(), "page"); } } @@ -296,11 +294,11 @@ public boolean canHandle(LayoutContext c, FSFunction function) { List parameters = function.getParameters(); if (parameters.size() == 1) { PropertyValue param = parameters.get(0); - return param.getPrimitiveType() == CSS_STRING || - (param.getPrimitiveType() == CSS_IDENT && - ("dotted".equals(param.getStringValue()) || - "solid".equals(param.getStringValue()) || - "space".equals(param.getStringValue()))); + return param.getPrimitiveType() == CSS_STRING + || (param.getPrimitiveType() == CSS_IDENT + && ("dotted".equals(param.getStringValue()) + || "solid".equals(param.getStringValue()) + || "space".equals(param.getStringValue()))); } } diff --git a/openpdf-html/src/main/java/org/openpdf/css/constants/IdentValue.java b/openpdf-html/src/main/java/org/openpdf/css/constants/IdentValue.java index f39ba2637..a4e02b471 100644 --- a/openpdf-html/src/main/java/org/openpdf/css/constants/IdentValue.java +++ b/openpdf-html/src/main/java/org/openpdf/css/constants/IdentValue.java @@ -325,8 +325,8 @@ public IdentValue asIdentValue() { @Override public boolean hasAbsoluteUnit() { // log and return false - throw new XRRuntimeException("Ident value is never an absolute unit; wrong class used for derived value; this " + - "ident value is a " + this.asString()); + throw new XRRuntimeException("Ident value is never an absolute unit; wrong class used for derived value; this " + + "ident value is a " + this.asString()); } @Override diff --git a/openpdf-html/src/main/java/org/openpdf/css/constants/ValueConstants.java b/openpdf-html/src/main/java/org/openpdf/css/constants/ValueConstants.java index 5f79ee79a..7bd948ab5 100644 --- a/openpdf-html/src/main/java/org/openpdf/css/constants/ValueConstants.java +++ b/openpdf-html/src/main/java/org/openpdf/css/constants/ValueConstants.java @@ -169,8 +169,8 @@ public static boolean isAbsoluteUnit(short type) { case CSSPrimitiveValue.CSS_STRING: return true; case CSSPrimitiveValue.CSS_UNKNOWN: - XRLog.cascade(Level.WARNING, "Asked whether type was absolute, given CSS_UNKNOWN as the type. " + - "Might be one of those funny values like background-position."); + XRLog.cascade(Level.WARNING, "Asked whether type was absolute, given CSS_UNKNOWN as the type. " + + "Might be one of those funny values like background-position."); GeneralUtil.dumpShortException(new Exception("Taking a thread dump...")); // fall-through default: @@ -216,17 +216,14 @@ public static boolean isNumber(short cssPrimitiveType) { Field[] fields = CSSPrimitiveValue.class.getFields(); for (Field f : fields) { int mod = f.getModifiers(); - if (Modifier.isFinal(mod) && - Modifier.isStatic(mod) && - Modifier.isPublic(mod)) { - + if (Modifier.isFinal(mod) && Modifier.isStatic(mod) && Modifier.isPublic(mod)) { Short val = (Short) f.get(null); String name = f.getName(); if (name.startsWith("CSS_")) { - if (!name.equals("CSS_INHERIT") && - !name.equals("CSS_PRIMITIVE_VALUE") && - !name.equals("CSS_VALUE_LIST") && - !name.equals("CSS_CUSTOM")) { + if (!name.equals("CSS_INHERIT") + && !name.equals("CSS_PRIMITIVE_VALUE") + && !name.equals("CSS_VALUE_LIST") + && !name.equals("CSS_CUSTOM")) { map.put(val, name.substring("CSS_".length())); } diff --git a/openpdf-html/src/main/java/org/openpdf/css/parser/CSSParseException.java b/openpdf-html/src/main/java/org/openpdf/css/parser/CSSParseException.java index e9d633f4b..7494fe67b 100644 --- a/openpdf-html/src/main/java/org/openpdf/css/parser/CSSParseException.java +++ b/openpdf-html/src/main/java/org/openpdf/css/parser/CSSParseException.java @@ -64,8 +64,7 @@ public String getMessage() { return _genericMessage + " at line " + (_line + 1) + "."; } else { String found = _found == null ? "end of file" : _found.getExternalName(); - return "Found " + found + " where " + - descr(_expected) + " was expected at line " + (_line + 1) + "."; + return "Found " + found + " where " + descr(_expected) + " was expected at line " + (_line + 1) + "."; } } diff --git a/openpdf-html/src/main/java/org/openpdf/css/parser/CSSParser.java b/openpdf-html/src/main/java/org/openpdf/css/parser/CSSParser.java index 4951f9041..8c20f47de 100644 --- a/openpdf-html/src/main/java/org/openpdf/css/parser/CSSParser.java +++ b/openpdf-html/src/main/java/org/openpdf/css/parser/CSSParser.java @@ -121,9 +121,9 @@ public PropertyValue parsePropertyValue(CSSName cssName, Origin origin, String e try { reset(new StringReader(expr)); List values = expr( - cssName.equals(CSSName.FONT_FAMILY) || - cssName.equals(CSSName.FONT_SHORTHAND) || - cssName.equals(CSSName.FS_PDF_FONT_ENCODING)); + cssName.equals(CSSName.FONT_FAMILY) + || cssName.equals(CSSName.FONT_SHORTHAND) + || cssName.equals(CSSName.FS_PDF_FONT_ENCODING)); PropertyBuilder builder = CSSName.getPropertyBuilder(cssName); List props; @@ -827,8 +827,8 @@ private Selector mergeSimpleSelectors(List selectors, List comb if (first.getPseudoElement() != null) { throw new CSSParseException( - "A simple selector with a pseudo element cannot be " + - "combined with another simple selector", getCurrentLine()); + "A simple selector with a pseudo element cannot be " + + "combined with another simple selector", getCurrentLine()); } boolean sibling = false; @@ -1251,9 +1251,9 @@ private void declaration(Ruleset ruleset, boolean inFontFace) throws IOException skip_whitespace(); List values = expr( - CSSName.FONT_FAMILY.equals(cssName) || - CSSName.FONT_SHORTHAND.equals(cssName) || - CSSName.FS_PDF_FONT_ENCODING.equals(cssName)); + CSSName.FONT_FAMILY.equals(cssName) + || CSSName.FONT_SHORTHAND.equals(cssName) + || CSSName.FS_PDF_FONT_ENCODING.equals(cssName)); boolean important = false; t = la(); @@ -1629,8 +1629,8 @@ private float parseCMYKColorComponent(PropertyValue value, int paramNo) { result = value.getFloatValue() / 100.0f; } else { throw new CSSParseException( - "Parameter " + paramNo + " to the cmyk() function is " + - "not a number or a percentage", getCurrentLine()); + "Parameter " + paramNo + " to the cmyk() function is " + + "not a number or a percentage", getCurrentLine()); } if (result < 0.0f || result > 1.0f) { @@ -1678,14 +1678,13 @@ private short validateType(int index, PropertyValue value) { short type = value.getPrimitiveType(); if (type != CSS_PERCENTAGE && type != CSS_NUMBER) { throw new CSSParseException( - "Parameter " + (index + 1) + " to the rgb() function is " + - "not a number or percentage", getCurrentLine()); + "Parameter " + (index + 1) + " to the rgb() function is " + + "not a number or percentage", getCurrentLine()); } if (type != CSS_NUMBER && index == 3) { throw new CSSParseException( - "Parameter alpha to the rgba() function is " + - "not a number", getCurrentLine()); + "Parameter alpha to the rgba() function is " + "not a number", getCurrentLine()); } return type; } @@ -1866,16 +1865,14 @@ private String getTokenValue(Token t, boolean literal) { case URI -> { char[] ch = _lexer.yytext().toCharArray(); int start = 4; - while (ch[start] == '\t' || ch[start] == '\r' || - ch[start] == '\n' || ch[start] == '\f') { + while (ch[start] == '\t' || ch[start] == '\r' || ch[start] == '\n' || ch[start] == '\f') { start++; } if (ch[start] == '\'' || ch[start] == '"') { start++; } int end = ch.length - 2; - while (ch[end] == '\t' || ch[end] == '\r' || - ch[end] == '\n' || ch[end] == '\f') { + while (ch[end] == '\t' || ch[end] == '\r' || ch[end] == '\n' || ch[end] == '\f') { end--; } if (ch[end] == '\'' || ch[end] == '"') { @@ -1981,10 +1978,10 @@ private static String processEscapes(char[] ch, int start, int end) { if (i < end - 2 && (ch[i + 1] == '\r' && ch[i + 2] == '\n')) { i += 2; - } else if (i < end - 1 && - (ch[i + 1] == ' ' || ch[i + 1] == '\t' || - ch[i + 1] == '\n' || ch[i + 1] == '\r' || - ch[i + 1] == '\f')) { + } else if (i < end - 1 + && (ch[i + 1] == ' ' || ch[i + 1] == '\t' + || ch[i + 1] == '\n' || ch[i + 1] == '\r' + || ch[i + 1] == '\f')) { i++; } } else { diff --git a/openpdf-html/src/main/java/org/openpdf/css/parser/FSRGBColor.java b/openpdf-html/src/main/java/org/openpdf/css/parser/FSRGBColor.java index b59b85afd..3f7974c78 100644 --- a/openpdf-html/src/main/java/org/openpdf/css/parser/FSRGBColor.java +++ b/openpdf-html/src/main/java/org/openpdf/css/parser/FSRGBColor.java @@ -149,9 +149,9 @@ private static float calculateHue(int r, int g, int b, float cmax, float cmin) { float redc = (cmax - r) / (cmax - cmin); float greenc = (cmax - g) / (cmax - cmin); float bluec = (cmax - b) / (cmax - cmin); - final float hue1 = (r == cmax) ? - bluec - greenc : (g == cmax) ? - 2.0f + redc - bluec : + final float hue1 = (r == cmax) + ? bluec - greenc : (g == cmax) + ? 2.0f + redc - bluec : 4.0f + greenc - redc; float hue2 = hue1 / 6.0f; diff --git a/openpdf-html/src/main/java/org/openpdf/css/parser/Lexer.java b/openpdf-html/src/main/java/org/openpdf/css/parser/Lexer.java index 49ded97fb..6171b353d 100644 --- a/openpdf-html/src/main/java/org/openpdf/css/parser/Lexer.java +++ b/openpdf-html/src/main/java/org/openpdf/css/parser/Lexer.java @@ -46,17 +46,17 @@ class Lexer { * Translates characters to character classes */ private static final String ZZ_CMAP_PACKED = - "\11\2\1\6\1\5\1\2\1\7\1\4\22\2\1\70\1\53\1\12" + - "\1\65\1\61\1\71\1\17\1\13\1\74\1\75\1\15\1\63\1\64" + - "\1\11\1\16\1\14\1\21\1\23\1\1\1\26\1\22\1\31\1\24" + - "\1\33\1\35\1\37\1\100\1\77\1\52\1\56\1\54\1\17\1\66" + - "\1\20\1\41\1\25\1\27\1\30\1\10\1\32\1\34\1\36\1\0" + - "\1\40\1\73\1\42\1\43\1\67\1\44\1\0\1\45\1\46\1\47" + - "\1\72\2\0\1\50\1\0\1\51\1\101\1\3\1\102\1\60\1\0" + - "\1\17\1\20\1\41\1\25\1\27\1\30\1\10\1\32\1\34\1\36" + - "\1\0\1\40\1\73\1\42\1\43\1\67\1\44\1\0\1\45\1\46" + - "\1\47\1\72\2\0\1\50\1\0\1\51\1\62\1\57\1\76\1\55" + - "\1\2\uff80\0"; + "\11\2\1\6\1\5\1\2\1\7\1\4\22\2\1\70\1\53\1\12" + + "\1\65\1\61\1\71\1\17\1\13\1\74\1\75\1\15\1\63\1\64" + + "\1\11\1\16\1\14\1\21\1\23\1\1\1\26\1\22\1\31\1\24" + + "\1\33\1\35\1\37\1\100\1\77\1\52\1\56\1\54\1\17\1\66" + + "\1\20\1\41\1\25\1\27\1\30\1\10\1\32\1\34\1\36\1\0" + + "\1\40\1\73\1\42\1\43\1\67\1\44\1\0\1\45\1\46\1\47" + + "\1\72\2\0\1\50\1\0\1\51\1\101\1\3\1\102\1\60\1\0" + + "\1\17\1\20\1\41\1\25\1\27\1\30\1\10\1\32\1\34\1\36" + + "\1\0\1\40\1\73\1\42\1\43\1\67\1\44\1\0\1\45\1\46" + + "\1\47\1\72\2\0\1\50\1\0\1\51\1\62\1\57\1\76\1\55" + + "\1\2\uff80\0"; /** * Translates characters to character classes @@ -69,37 +69,37 @@ class Lexer { private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\1\0\1\1\1\2\2\3\1\4\1\5\2\6\1\7" + - "\1\10\1\11\2\3\1\12\1\3\1\13\1\14\2\3" + - "\1\15\1\16\1\17\2\3\1\1\1\20\1\21\1\22" + - "\1\23\1\24\1\25\1\0\1\26\1\27\3\0\12\27" + - "\1\30\1\31\1\1\2\0\1\32\2\0\1\33\1\2" + - "\4\0\1\34\1\35\1\36\1\37\1\40\1\0\1\41" + - "\1\0\1\41\1\0\5\41\1\1\1\0\4\27\1\0" + - "\1\42\1\0\1\27\1\0\1\43\1\44\2\0\1\45" + - "\1\0\1\46\2\0\1\47\1\0\1\50\1\51\1\52" + - "\1\0\1\27\2\1\1\53\4\6\4\0\1\40\7\41" + - "\1\1\17\27\1\30\4\27\1\0\1\54\23\27\1\0" + - "\1\1\2\6\1\55\1\56\2\0\2\40\10\41\1\26" + - "\16\27\1\30\14\27\1\50\1\30\2\27\1\42\10\27" + - "\1\43\1\44\4\27\1\45\2\27\1\46\5\27\1\47" + - "\3\27\1\50\1\51\1\52\5\27\1\1\2\6\1\0" + - "\1\40\6\41\1\57\5\0\1\60\16\27\1\30\2\27" + - "\1\50\1\54\2\27\2\42\6\27\1\54\3\27\1\43" + - "\1\44\1\43\1\44\4\27\2\45\2\27\2\46\5\27" + - "\2\47\3\27\1\50\1\51\1\52\1\50\1\51\1\52" + - "\4\27\1\54\2\27\1\1\2\6\1\0\1\40\4\41" + - "\1\61\1\41\2\0\1\60\2\0\15\27\1\30\2\27" + - "\1\50\1\54\2\27\1\42\5\27\2\54\3\27\1\43" + - "\1\44\4\27\1\45\2\27\1\46\5\27\1\47\3\27" + - "\1\50\1\51\1\52\5\27\1\1\2\6\1\0\1\40" + - "\3\41\1\62\1\41\6\0\13\27\1\30\2\27\1\50" + - "\1\54\1\27\1\42\4\27\1\54\2\27\1\43\1\44" + - "\2\27\1\45\1\27\1\46\3\27\1\47\2\27\1\50" + - "\1\51\1\52\4\27\2\6\1\0\1\40\4\41\3\0" + - "\1\42\2\27\1\54\1\43\1\44\1\45\1\46\1\47" + - "\1\50\1\51\1\52\2\27\1\0\1\41\1\63\1\41" + - "\3\0\1\54\1\64\1\65\1\66\10\0"; + "\1\0\1\1\1\2\2\3\1\4\1\5\2\6\1\7" + + "\1\10\1\11\2\3\1\12\1\3\1\13\1\14\2\3" + + "\1\15\1\16\1\17\2\3\1\1\1\20\1\21\1\22" + + "\1\23\1\24\1\25\1\0\1\26\1\27\3\0\12\27" + + "\1\30\1\31\1\1\2\0\1\32\2\0\1\33\1\2" + + "\4\0\1\34\1\35\1\36\1\37\1\40\1\0\1\41" + + "\1\0\1\41\1\0\5\41\1\1\1\0\4\27\1\0" + + "\1\42\1\0\1\27\1\0\1\43\1\44\2\0\1\45" + + "\1\0\1\46\2\0\1\47\1\0\1\50\1\51\1\52" + + "\1\0\1\27\2\1\1\53\4\6\4\0\1\40\7\41" + + "\1\1\17\27\1\30\4\27\1\0\1\54\23\27\1\0" + + "\1\1\2\6\1\55\1\56\2\0\2\40\10\41\1\26" + + "\16\27\1\30\14\27\1\50\1\30\2\27\1\42\10\27" + + "\1\43\1\44\4\27\1\45\2\27\1\46\5\27\1\47" + + "\3\27\1\50\1\51\1\52\5\27\1\1\2\6\1\0" + + "\1\40\6\41\1\57\5\0\1\60\16\27\1\30\2\27" + + "\1\50\1\54\2\27\2\42\6\27\1\54\3\27\1\43" + + "\1\44\1\43\1\44\4\27\2\45\2\27\2\46\5\27" + + "\2\47\3\27\1\50\1\51\1\52\1\50\1\51\1\52" + + "\4\27\1\54\2\27\1\1\2\6\1\0\1\40\4\41" + + "\1\61\1\41\2\0\1\60\2\0\15\27\1\30\2\27" + + "\1\50\1\54\2\27\1\42\5\27\2\54\3\27\1\43" + + "\1\44\4\27\1\45\2\27\1\46\5\27\1\47\3\27" + + "\1\50\1\51\1\52\5\27\1\1\2\6\1\0\1\40" + + "\3\41\1\62\1\41\6\0\13\27\1\30\2\27\1\50" + + "\1\54\1\27\1\42\4\27\1\54\2\27\1\43\1\44" + + "\2\27\1\45\1\27\1\46\3\27\1\47\2\27\1\50" + + "\1\51\1\52\4\27\2\6\1\0\1\40\4\41\3\0" + + "\1\42\2\27\1\54\1\43\1\44\1\45\1\46\1\47" + + "\1\50\1\51\1\52\2\27\1\0\1\41\1\63\1\41" + + "\3\0\1\54\1\64\1\65\1\66\10\0"; private static int [] zzUnpackAction() { int [] result = new int[518]; @@ -127,71 +127,71 @@ private static void zzUnpackAction(int [] result) { private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\103\0\206\0\311\0\u010c\0\u014f\0\u0192\0\u01d5" + - "\0\u0218\0\u025b\0\u029e\0\u02e1\0\u0324\0\u0367\0\311\0\u03aa" + - "\0\311\0\u03ed\0\u0430\0\u0473\0\311\0\311\0\311\0\u04b6" + - "\0\u04f9\0\u053c\0\311\0\311\0\311\0\311\0\311\0\311" + - "\0\u010c\0\311\0\u057f\0\u05c2\0\u0605\0\u02e1\0\u0648\0\u068b" + - "\0\u06ce\0\u0711\0\u0754\0\u0797\0\u07da\0\u081d\0\u0860\0\u08a3" + - "\0\u057f\0\311\0\u08e6\0\u0929\0\u096c\0\311\0\u09af\0\u09f2" + - "\0\311\0\u0a35\0\u0a78\0\u0367\0\u0abb\0\u0afe\0\311\0\311" + - "\0\311\0\311\0\u04b6\0\u0b41\0\u0b84\0\u0bc7\0\u0c0a\0\u0c4d" + - "\0\u0c90\0\u0cd3\0\u0d16\0\u0d59\0\u0d9c\0\u0ddf\0\u0e22\0\u0e65" + - "\0\u0ea8\0\u0eeb\0\u0f2e\0\u0f71\0\u057f\0\u0fb4\0\u0ff7\0\u103a" + - "\0\u057f\0\u057f\0\u107d\0\u10c0\0\u057f\0\u1103\0\u057f\0\u1146" + - "\0\u1189\0\u057f\0\u11cc\0\u057f\0\u057f\0\u057f\0\u120f\0\u1252" + - "\0\u1295\0\u12d8\0\311\0\u131b\0\u135e\0\u13a1\0\u13e4\0\u1427" + - "\0\u146a\0\u14ad\0\u14f0\0\u1533\0\u1576\0\u15b9\0\u15fc\0\u163f" + - "\0\u1682\0\u16c5\0\u1708\0\u174b\0\u178e\0\u17d1\0\u1814\0\u1857" + - "\0\u189a\0\u18dd\0\u1920\0\u1963\0\u19a6\0\u19e9\0\u1a2c\0\u1a6f" + - "\0\u1ab2\0\u1af5\0\u1b38\0\u1b7b\0\u1bbe\0\u1c01\0\u1c44\0\u1c87" + - "\0\u1cca\0\u057f\0\u1d0d\0\u1d50\0\u1d93\0\u1dd6\0\u1e19\0\u1e5c" + - "\0\u1e9f\0\u1ee2\0\u1f25\0\u1f68\0\u1fab\0\u1fee\0\u2031\0\u2074" + - "\0\u20b7\0\u20fa\0\u213d\0\u2180\0\u21c3\0\u2206\0\u2249\0\u228c" + - "\0\u22cf\0\311\0\311\0\u2312\0\u2355\0\u2398\0\u23db\0\u241e" + - "\0\u2461\0\u24a4\0\u24e7\0\u252a\0\u256d\0\u25b0\0\u25f3\0\u2636" + - "\0\u2679\0\u26bc\0\u26ff\0\u2742\0\u2785\0\u27c8\0\u280b\0\u284e" + - "\0\u2891\0\u28d4\0\u2917\0\u295a\0\u299d\0\u29e0\0\u2a23\0\u2a66" + - "\0\u2aa9\0\u2aec\0\u2b2f\0\u2b72\0\u2bb5\0\u2bf8\0\u2c3b\0\u2c7e" + - "\0\u2cc1\0\u2d04\0\u2d47\0\u2679\0\u2d8a\0\u2dcd\0\u2e10\0\u2e53" + - "\0\u2e96\0\u2ed9\0\u2f1c\0\u2f5f\0\u2fa2\0\u2fe5\0\u3028\0\u306b" + - "\0\u30ae\0\u30f1\0\u3134\0\u3177\0\u31ba\0\u31fd\0\u3240\0\u3283" + - "\0\u32c6\0\u3309\0\u334c\0\u338f\0\u33d2\0\u3415\0\u3458\0\u349b" + - "\0\u34de\0\u3521\0\u3564\0\u35a7\0\u35ea\0\u362d\0\u3670\0\u36b3" + - "\0\u36f6\0\u3739\0\u377c\0\u37bf\0\u3802\0\u3845\0\u3888\0\u38cb" + - "\0\u390e\0\u3951\0\u3994\0\u39d7\0\u3a1a\0\u3a5d\0\u0b84\0\u3aa0" + - "\0\u3ae3\0\u2636\0\u3b26\0\u3b69\0\311\0\u3bac\0\u3bef\0\u3c32" + - "\0\u3c75\0\u3cb8\0\u3cfb\0\u3d3e\0\u3d81\0\u3dc4\0\u3e07\0\u3e4a" + - "\0\u3e8d\0\u3ed0\0\u3f13\0\u3f56\0\u3f99\0\u3fdc\0\u3bac\0\u3bac" + - "\0\u401f\0\u4062\0\u40a5\0\u40e8\0\u412b\0\u416e\0\u41b1\0\u41f4" + - "\0\u4237\0\u427a\0\u42bd\0\u4300\0\u4343\0\u4386\0\u43c9\0\u440c" + - "\0\u444f\0\u4492\0\u44d5\0\u4518\0\u455b\0\u459e\0\u45e1\0\u4624" + - "\0\u4667\0\u46aa\0\u46ed\0\u4730\0\u4773\0\u47b6\0\u47f9\0\u483c" + - "\0\u487f\0\u48c2\0\u4905\0\u4948\0\u498b\0\u49ce\0\u4a11\0\u4a54" + - "\0\u4a97\0\u4ada\0\u4b1d\0\u4b60\0\u4ba3\0\u4be6\0\u4c29\0\u4c6c" + - "\0\u2679\0\u4caf\0\u4cf2\0\u4d35\0\u4d78\0\u4dbb\0\u4dfe\0\u4e41" + - "\0\u4e84\0\u4ec7\0\u4f0a\0\u4f4d\0\u0b84\0\u4f90\0\u4fd3\0\u5016" + - "\0\u3aa0\0\u5059\0\u509c\0\u50df\0\u5122\0\u5165\0\u51a8\0\u51eb" + - "\0\u522e\0\u5271\0\u52b4\0\u52f7\0\u533a\0\u537d\0\u53c0\0\u5403" + - "\0\u5446\0\u5489\0\u54cc\0\u50df\0\u50df\0\u550f\0\u5552\0\u5595" + - "\0\u55d8\0\u561b\0\u565e\0\u56a1\0\u56e4\0\u5727\0\u576a\0\u57ad" + - "\0\u57f0\0\u5833\0\u5876\0\u58b9\0\u58fc\0\u593f\0\u5982\0\u59c5" + - "\0\u5a08\0\u5a4b\0\u5a8e\0\u5ad1\0\u5b14\0\u5b57\0\u5b9a\0\u5bdd" + - "\0\u5c20\0\u5c63\0\u5ca6\0\u5ce9\0\u5d2c\0\u5d6f\0\u5db2\0\u5df5" + - "\0\u5e38\0\u5e7b\0\u5ebe\0\u5f01\0\u5f44\0\u5f87\0\u5fca\0\u600d" + - "\0\u6050\0\u6093\0\u60d6\0\u6119\0\u615c\0\u0b84\0\u619f\0\u61e2" + - "\0\u6225\0\u6268\0\u62ab\0\u62ee\0\u6331\0\u6374\0\u63b7\0\u63fa" + - "\0\u643d\0\u6480\0\u64c3\0\u6506\0\u6549\0\u658c\0\u65cf\0\u6612" + - "\0\u6655\0\u6698\0\u66db\0\u6374\0\u6374\0\u671e\0\u6761\0\u67a4" + - "\0\u67e7\0\u682a\0\u686d\0\u68b0\0\u68f3\0\u6936\0\u6979\0\u69bc" + - "\0\u69ff\0\u6a42\0\u6a85\0\u6ac8\0\u6b0b\0\u6b4e\0\u6b91\0\u6bd4" + - "\0\u6c17\0\u6c5a\0\u6c9d\0\u6ce0\0\u6d23\0\u6d66\0\u6da9\0\u6dec" + - "\0\u6e2f\0\u6e72\0\u6eb5\0\u6ef8\0\u6f3b\0\u6f7e\0\u6fc1\0\u7004" + - "\0\u7047\0\u708a\0\u70cd\0\u7110\0\u7153\0\u7196\0\u71d9\0\u721c" + - "\0\u725f\0\u72a2\0\u72e5\0\u7328\0\u736b\0\u73ae\0\u73f1\0\u7434" + - "\0\u7477\0\u74ba\0\u74fd\0\u7540\0\u7583\0\311\0\u75c6\0\u7609" + - "\0\u764c\0\u768f\0\u76d2\0\311\0\u0b84\0\u0b84\0\u7715\0\u7758" + - "\0\u779b\0\u77de\0\u7821\0\u7864\0\u78a7\0\u78ea"; + "\0\0\0\103\0\206\0\311\0\u010c\0\u014f\0\u0192\0\u01d5" + + "\0\u0218\0\u025b\0\u029e\0\u02e1\0\u0324\0\u0367\0\311\0\u03aa" + + "\0\311\0\u03ed\0\u0430\0\u0473\0\311\0\311\0\311\0\u04b6" + + "\0\u04f9\0\u053c\0\311\0\311\0\311\0\311\0\311\0\311" + + "\0\u010c\0\311\0\u057f\0\u05c2\0\u0605\0\u02e1\0\u0648\0\u068b" + + "\0\u06ce\0\u0711\0\u0754\0\u0797\0\u07da\0\u081d\0\u0860\0\u08a3" + + "\0\u057f\0\311\0\u08e6\0\u0929\0\u096c\0\311\0\u09af\0\u09f2" + + "\0\311\0\u0a35\0\u0a78\0\u0367\0\u0abb\0\u0afe\0\311\0\311" + + "\0\311\0\311\0\u04b6\0\u0b41\0\u0b84\0\u0bc7\0\u0c0a\0\u0c4d" + + "\0\u0c90\0\u0cd3\0\u0d16\0\u0d59\0\u0d9c\0\u0ddf\0\u0e22\0\u0e65" + + "\0\u0ea8\0\u0eeb\0\u0f2e\0\u0f71\0\u057f\0\u0fb4\0\u0ff7\0\u103a" + + "\0\u057f\0\u057f\0\u107d\0\u10c0\0\u057f\0\u1103\0\u057f\0\u1146" + + "\0\u1189\0\u057f\0\u11cc\0\u057f\0\u057f\0\u057f\0\u120f\0\u1252" + + "\0\u1295\0\u12d8\0\311\0\u131b\0\u135e\0\u13a1\0\u13e4\0\u1427" + + "\0\u146a\0\u14ad\0\u14f0\0\u1533\0\u1576\0\u15b9\0\u15fc\0\u163f" + + "\0\u1682\0\u16c5\0\u1708\0\u174b\0\u178e\0\u17d1\0\u1814\0\u1857" + + "\0\u189a\0\u18dd\0\u1920\0\u1963\0\u19a6\0\u19e9\0\u1a2c\0\u1a6f" + + "\0\u1ab2\0\u1af5\0\u1b38\0\u1b7b\0\u1bbe\0\u1c01\0\u1c44\0\u1c87" + + "\0\u1cca\0\u057f\0\u1d0d\0\u1d50\0\u1d93\0\u1dd6\0\u1e19\0\u1e5c" + + "\0\u1e9f\0\u1ee2\0\u1f25\0\u1f68\0\u1fab\0\u1fee\0\u2031\0\u2074" + + "\0\u20b7\0\u20fa\0\u213d\0\u2180\0\u21c3\0\u2206\0\u2249\0\u228c" + + "\0\u22cf\0\311\0\311\0\u2312\0\u2355\0\u2398\0\u23db\0\u241e" + + "\0\u2461\0\u24a4\0\u24e7\0\u252a\0\u256d\0\u25b0\0\u25f3\0\u2636" + + "\0\u2679\0\u26bc\0\u26ff\0\u2742\0\u2785\0\u27c8\0\u280b\0\u284e" + + "\0\u2891\0\u28d4\0\u2917\0\u295a\0\u299d\0\u29e0\0\u2a23\0\u2a66" + + "\0\u2aa9\0\u2aec\0\u2b2f\0\u2b72\0\u2bb5\0\u2bf8\0\u2c3b\0\u2c7e" + + "\0\u2cc1\0\u2d04\0\u2d47\0\u2679\0\u2d8a\0\u2dcd\0\u2e10\0\u2e53" + + "\0\u2e96\0\u2ed9\0\u2f1c\0\u2f5f\0\u2fa2\0\u2fe5\0\u3028\0\u306b" + + "\0\u30ae\0\u30f1\0\u3134\0\u3177\0\u31ba\0\u31fd\0\u3240\0\u3283" + + "\0\u32c6\0\u3309\0\u334c\0\u338f\0\u33d2\0\u3415\0\u3458\0\u349b" + + "\0\u34de\0\u3521\0\u3564\0\u35a7\0\u35ea\0\u362d\0\u3670\0\u36b3" + + "\0\u36f6\0\u3739\0\u377c\0\u37bf\0\u3802\0\u3845\0\u3888\0\u38cb" + + "\0\u390e\0\u3951\0\u3994\0\u39d7\0\u3a1a\0\u3a5d\0\u0b84\0\u3aa0" + + "\0\u3ae3\0\u2636\0\u3b26\0\u3b69\0\311\0\u3bac\0\u3bef\0\u3c32" + + "\0\u3c75\0\u3cb8\0\u3cfb\0\u3d3e\0\u3d81\0\u3dc4\0\u3e07\0\u3e4a" + + "\0\u3e8d\0\u3ed0\0\u3f13\0\u3f56\0\u3f99\0\u3fdc\0\u3bac\0\u3bac" + + "\0\u401f\0\u4062\0\u40a5\0\u40e8\0\u412b\0\u416e\0\u41b1\0\u41f4" + + "\0\u4237\0\u427a\0\u42bd\0\u4300\0\u4343\0\u4386\0\u43c9\0\u440c" + + "\0\u444f\0\u4492\0\u44d5\0\u4518\0\u455b\0\u459e\0\u45e1\0\u4624" + + "\0\u4667\0\u46aa\0\u46ed\0\u4730\0\u4773\0\u47b6\0\u47f9\0\u483c" + + "\0\u487f\0\u48c2\0\u4905\0\u4948\0\u498b\0\u49ce\0\u4a11\0\u4a54" + + "\0\u4a97\0\u4ada\0\u4b1d\0\u4b60\0\u4ba3\0\u4be6\0\u4c29\0\u4c6c" + + "\0\u2679\0\u4caf\0\u4cf2\0\u4d35\0\u4d78\0\u4dbb\0\u4dfe\0\u4e41" + + "\0\u4e84\0\u4ec7\0\u4f0a\0\u4f4d\0\u0b84\0\u4f90\0\u4fd3\0\u5016" + + "\0\u3aa0\0\u5059\0\u509c\0\u50df\0\u5122\0\u5165\0\u51a8\0\u51eb" + + "\0\u522e\0\u5271\0\u52b4\0\u52f7\0\u533a\0\u537d\0\u53c0\0\u5403" + + "\0\u5446\0\u5489\0\u54cc\0\u50df\0\u50df\0\u550f\0\u5552\0\u5595" + + "\0\u55d8\0\u561b\0\u565e\0\u56a1\0\u56e4\0\u5727\0\u576a\0\u57ad" + + "\0\u57f0\0\u5833\0\u5876\0\u58b9\0\u58fc\0\u593f\0\u5982\0\u59c5" + + "\0\u5a08\0\u5a4b\0\u5a8e\0\u5ad1\0\u5b14\0\u5b57\0\u5b9a\0\u5bdd" + + "\0\u5c20\0\u5c63\0\u5ca6\0\u5ce9\0\u5d2c\0\u5d6f\0\u5db2\0\u5df5" + + "\0\u5e38\0\u5e7b\0\u5ebe\0\u5f01\0\u5f44\0\u5f87\0\u5fca\0\u600d" + + "\0\u6050\0\u6093\0\u60d6\0\u6119\0\u615c\0\u0b84\0\u619f\0\u61e2" + + "\0\u6225\0\u6268\0\u62ab\0\u62ee\0\u6331\0\u6374\0\u63b7\0\u63fa" + + "\0\u643d\0\u6480\0\u64c3\0\u6506\0\u6549\0\u658c\0\u65cf\0\u6612" + + "\0\u6655\0\u6698\0\u66db\0\u6374\0\u6374\0\u671e\0\u6761\0\u67a4" + + "\0\u67e7\0\u682a\0\u686d\0\u68b0\0\u68f3\0\u6936\0\u6979\0\u69bc" + + "\0\u69ff\0\u6a42\0\u6a85\0\u6ac8\0\u6b0b\0\u6b4e\0\u6b91\0\u6bd4" + + "\0\u6c17\0\u6c5a\0\u6c9d\0\u6ce0\0\u6d23\0\u6d66\0\u6da9\0\u6dec" + + "\0\u6e2f\0\u6e72\0\u6eb5\0\u6ef8\0\u6f3b\0\u6f7e\0\u6fc1\0\u7004" + + "\0\u7047\0\u708a\0\u70cd\0\u7110\0\u7153\0\u7196\0\u71d9\0\u721c" + + "\0\u725f\0\u72a2\0\u72e5\0\u7328\0\u736b\0\u73ae\0\u73f1\0\u7434" + + "\0\u7477\0\u74ba\0\u74fd\0\u7540\0\u7583\0\311\0\u75c6\0\u7609" + + "\0\u764c\0\u768f\0\u76d2\0\311\0\u0b84\0\u0b84\0\u7715\0\u7758" + + "\0\u779b\0\u77de\0\u7821\0\u7864\0\u78a7\0\u78ea"; private static int [] zzUnpackRowMap() { int [] result = new int[518]; @@ -215,1221 +215,1221 @@ private static void zzUnpackRowMap(int [] result) { private static final int [] ZZ_TRANS = zzUnpackTrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\2\1\3\1\4\1\5\4\6\1\2\1\7\1\10" + - "\1\11\1\12\1\13\1\14\1\4\1\2\4\3\1\2" + - "\1\3\2\2\1\3\1\2\1\3\1\2\1\3\1\2" + - "\1\3\12\2\1\15\1\16\1\17\1\20\1\21\1\22" + - "\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\2" + - "\1\6\1\4\1\32\1\2\1\4\1\33\1\34\1\35" + - "\1\36\1\37\1\40\2\2\1\0\1\41\4\0\2\2" + - "\6\0\32\2\15\0\1\2\2\0\2\2\1\42\6\0" + - "\1\43\1\3\1\0\1\44\4\0\1\43\1\45\4\0" + - "\1\46\1\0\1\43\4\3\1\47\1\3\1\50\1\51" + - "\1\3\1\52\1\3\1\53\1\3\1\54\1\3\1\55" + - "\1\43\1\56\1\43\1\57\1\60\1\61\3\43\15\0" + - "\1\43\1\0\1\62\2\43\112\0\1\2\1\63\2\2" + - "\2\0\1\2\1\0\1\63\7\2\12\63\1\2\1\63" + - "\1\2\1\63\1\2\1\63\1\2\1\63\41\2\4\0" + - "\4\6\44\0\1\17\5\0\1\25\1\26\1\27\3\0" + - "\1\6\12\0\1\2\2\0\1\41\4\0\1\2\1\64" + - "\6\0\1\2\4\0\1\2\1\0\2\2\1\0\1\2" + - "\1\0\1\2\1\0\1\2\1\0\12\2\15\0\1\2" + - "\2\0\2\2\7\0\3\10\1\65\2\0\1\10\1\0" + - "\2\10\1\66\70\10\3\11\1\67\2\0\1\11\1\0" + - "\3\11\1\66\67\11\15\0\1\70\143\0\1\71\25\0" + - "\1\72\17\0\4\72\1\0\1\72\2\0\1\72\1\0" + - "\1\72\1\0\1\72\1\0\1\72\116\0\1\73\33\0" + - "\4\74\4\0\1\75\21\0\1\76\31\0\1\74\70\0" + - "\1\77\102\0\1\100\102\0\1\101\102\0\1\102\24\0" + - "\2\103\1\0\1\104\4\0\2\103\6\0\32\103\15\0" + - "\1\103\2\0\2\103\7\0\1\105\2\0\1\106\4\0" + - "\1\107\1\110\6\0\1\105\4\0\1\111\1\0\2\105" + - "\1\0\1\105\1\0\1\105\1\0\1\112\1\0\2\105" + - "\1\113\1\114\1\115\5\105\15\0\1\105\2\0\2\105" + - "\7\0\2\2\1\0\1\41\4\0\2\2\6\0\25\2" + - "\1\116\4\2\15\0\1\2\2\0\2\2\1\42\6\0" + - "\2\43\1\0\1\117\4\0\2\43\6\0\32\43\15\0" + - "\1\43\2\0\2\43\7\0\1\43\1\120\2\43\2\0" + - "\1\43\1\0\1\120\7\43\1\120\1\121\1\122\1\120" + - "\1\122\4\120\1\123\1\52\1\123\1\53\1\120\1\54" + - "\1\120\1\55\1\120\1\56\1\43\1\57\1\60\1\61" + - "\35\43\2\0\1\117\4\0\1\43\7\0\1\43\4\0" + - "\1\43\1\0\2\43\1\0\1\43\1\0\1\43\1\0" + - "\1\43\1\0\12\43\15\0\1\43\2\0\2\43\7\0" + - "\2\43\1\0\1\124\4\0\2\43\6\0\22\43\1\125" + - "\7\43\15\0\1\43\2\0\2\43\7\0\2\43\1\0" + - "\1\126\4\0\2\43\6\0\10\43\1\127\21\43\15\0" + - "\1\43\2\0\2\43\7\0\2\43\1\0\1\130\4\0" + - "\2\43\6\0\22\43\1\131\5\43\1\132\1\43\15\0" + - "\1\43\2\0\2\43\7\0\2\43\1\0\1\133\4\0" + - "\2\43\6\0\25\43\1\60\4\43\15\0\1\43\2\0" + - "\2\43\7\0\2\43\1\0\1\134\4\0\2\43\6\0" + - "\31\43\1\135\15\0\1\43\2\0\2\43\7\0\2\43" + - "\1\0\1\136\4\0\2\43\6\0\23\43\1\137\6\43" + - "\15\0\1\43\2\0\2\43\7\0\2\43\1\0\1\140" + - "\4\0\2\43\6\0\14\43\1\53\15\43\15\0\1\43" + - "\2\0\2\43\7\0\2\43\1\0\1\141\4\0\2\43" + - "\6\0\22\43\1\142\3\43\1\61\3\43\15\0\1\43" + - "\2\0\2\43\7\0\2\43\1\0\1\143\4\0\2\43" + - "\6\0\5\43\1\144\21\43\1\145\1\146\1\43\15\0" + - "\1\43\2\0\2\43\7\0\2\43\1\0\1\147\4\0" + - "\2\43\6\0\1\150\31\43\15\0\1\43\2\0\2\43" + - "\7\0\1\2\1\151\1\0\1\41\1\152\3\2\1\151" + - "\1\2\6\0\12\151\1\2\1\151\1\2\1\151\1\2" + - "\1\151\1\2\1\151\10\2\15\0\2\2\1\0\2\2" + - "\1\42\62\0\1\153\26\0\1\10\1\154\2\10\1\155" + - "\3\10\1\154\7\10\12\154\1\10\1\154\1\10\1\154" + - "\1\10\1\154\1\10\1\154\41\10\1\11\1\156\2\11" + - "\1\157\3\11\1\156\7\11\12\156\1\11\1\156\1\11" + - "\1\156\1\11\1\156\1\11\1\156\41\11\15\70\1\160" + - "\65\70\1\43\1\72\1\0\1\44\4\0\1\43\1\45" + - "\6\0\1\43\4\72\1\47\1\72\1\50\1\51\1\72" + - "\1\52\1\72\1\53\1\72\1\54\1\72\1\55\1\43" + - "\1\56\1\43\1\57\1\60\1\61\3\43\15\0\1\43" + - "\1\0\1\62\2\43\20\0\1\161\106\0\1\162\127\0" + - "\1\163\40\0\1\103\1\164\2\103\2\0\1\103\1\0" + - "\1\164\7\103\12\164\1\103\1\164\1\103\1\164\1\103" + - "\1\164\1\103\1\164\41\103\2\105\1\0\1\106\4\0" + - "\2\105\6\0\32\105\15\0\1\105\2\0\2\105\7\0" + - "\1\105\1\165\2\105\2\0\1\105\1\0\1\165\7\105" + - "\12\165\1\105\1\165\1\105\1\165\1\105\1\165\1\105" + - "\1\165\43\105\1\0\1\106\4\0\2\105\6\0\32\105" + - "\15\0\1\166\2\0\2\105\7\0\1\105\2\0\1\106" + - "\4\0\1\105\7\0\1\105\4\0\1\105\1\0\2\105" + - "\1\0\1\105\1\0\1\105\1\0\1\105\1\0\12\105" + - "\15\0\1\105\2\0\2\105\7\0\2\105\1\0\1\106" + - "\4\0\2\105\6\0\14\105\1\167\15\105\15\0\1\105" + - "\2\0\2\105\7\0\2\105\1\0\1\106\4\0\2\105" + - "\6\0\22\105\1\170\7\105\15\0\1\105\2\0\2\105" + - "\7\0\2\105\1\0\1\106\4\0\2\105\6\0\10\105" + - "\1\171\21\105\15\0\1\105\2\0\2\105\7\0\2\105" + - "\1\0\1\106\4\0\2\105\6\0\1\172\31\105\15\0" + - "\1\105\2\0\2\105\7\0\2\105\1\0\1\106\4\0" + - "\2\105\6\0\1\173\31\105\15\0\1\105\2\0\2\105" + - "\7\0\2\2\1\0\1\41\4\0\2\2\6\0\32\2" + - "\15\0\1\2\2\0\1\2\1\174\1\42\6\0\1\43" + - "\1\120\2\43\2\0\1\43\1\0\1\120\7\43\12\120" + - "\1\43\1\120\1\43\1\120\1\43\1\120\1\43\1\120" + - "\42\43\1\175\1\0\1\117\1\176\3\43\1\175\1\43" + - "\6\0\12\175\1\43\1\175\1\43\1\175\1\43\1\175" + - "\1\43\1\175\10\43\15\0\2\43\1\0\2\43\7\0" + - "\1\43\1\175\1\0\1\117\1\176\3\43\1\175\1\43" + - "\6\0\1\175\1\177\1\200\1\175\1\200\4\175\1\201" + - "\1\43\1\201\1\43\1\175\1\43\1\175\1\43\1\175" + - "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\175" + - "\1\0\1\117\1\176\3\43\1\175\1\43\6\0\2\175" + - "\1\202\3\175\1\203\1\204\1\175\1\205\1\43\1\206" + - "\1\43\1\207\1\43\1\210\1\43\1\211\10\43\15\0" + - "\2\43\1\0\2\43\7\0\1\43\1\212\1\0\1\117" + - "\1\176\3\43\1\175\1\43\6\0\1\175\1\213\4\175" + - "\1\214\3\175\1\43\1\175\1\43\1\175\1\43\1\175" + - "\1\43\1\175\10\43\15\0\2\43\1\0\2\43\7\0" + - "\1\43\1\120\2\43\2\0\1\43\1\0\1\120\7\43" + - "\1\120\1\215\1\216\1\120\1\216\5\120\1\43\1\120" + - "\1\43\1\120\1\43\1\120\1\43\1\120\1\125\41\43" + - "\1\120\2\43\2\0\1\43\1\0\1\120\7\43\1\120" + - "\1\217\1\220\1\120\1\220\5\120\1\43\1\120\1\43" + - "\1\120\1\43\1\120\1\43\1\120\43\43\1\0\1\221" + - "\4\0\2\43\6\0\12\43\1\222\17\43\15\0\1\43" + - "\2\0\2\43\7\0\1\43\1\120\2\43\2\0\1\43" + - "\1\0\1\120\7\43\1\120\1\223\1\224\1\120\1\224" + - "\4\120\1\225\1\43\1\225\1\43\1\120\1\43\1\120" + - "\1\43\1\120\1\131\5\43\1\132\33\43\1\120\2\43" + - "\2\0\1\43\1\0\1\120\7\43\1\120\1\226\7\120" + - "\1\227\1\43\1\227\1\43\1\120\1\43\1\120\1\43" + - "\1\120\3\43\1\60\36\43\1\120\2\43\2\0\1\43" + - "\1\0\1\120\7\43\1\120\1\230\7\120\1\231\1\43" + - "\1\231\1\43\1\120\1\43\1\120\1\43\1\120\7\43" + - "\1\135\32\43\1\120\2\43\2\0\1\43\1\0\1\120" + - "\7\43\1\120\1\232\1\233\1\120\1\233\5\120\1\43" + - "\1\120\1\43\1\120\1\43\1\120\1\43\1\120\1\43" + - "\1\137\40\43\1\120\2\43\2\0\1\43\1\0\1\120" + - "\7\43\1\120\1\234\1\235\1\120\1\235\5\120\1\43" + - "\1\120\1\53\1\120\1\43\1\120\1\43\1\120\42\43" + - "\1\120\2\43\2\0\1\43\1\0\1\120\7\43\1\120" + - "\1\236\1\237\1\120\1\237\4\120\1\240\1\43\1\240" + - "\1\43\1\120\1\43\1\120\1\43\1\120\1\142\3\43" + - "\1\61\35\43\1\120\2\43\2\0\1\43\1\0\1\120" + - "\7\43\1\120\1\241\1\242\1\120\1\242\4\120\1\243" + - "\1\43\1\243\1\43\1\120\1\43\1\120\1\43\1\120" + - "\5\43\1\145\1\146\33\43\1\120\2\43\2\0\1\43" + - "\1\0\1\120\7\43\1\120\1\244\1\245\1\120\1\245" + - "\5\120\1\43\1\120\1\43\1\120\1\43\1\120\1\43" + - "\1\120\43\43\1\0\1\246\4\0\2\43\6\0\7\43" + - "\1\222\22\43\15\0\1\43\2\0\2\43\7\0\1\2" + - "\1\247\1\0\1\41\1\152\3\2\1\247\1\2\6\0" + - "\12\247\1\2\1\247\1\2\1\247\1\2\1\247\1\2" + - "\1\247\10\2\15\0\2\2\1\0\2\2\1\42\6\0" + - "\2\2\1\0\1\41\1\0\1\2\2\0\2\2\6\0" + - "\32\2\15\0\1\2\2\0\2\2\1\42\6\0\1\10" + - "\1\250\1\10\1\65\1\155\3\10\1\250\1\10\1\66" + - "\5\10\12\250\1\10\1\250\1\10\1\250\1\10\1\250" + - "\1\10\1\250\44\10\1\65\1\0\2\10\1\0\2\10" + - "\1\66\70\10\1\11\1\251\1\11\1\67\1\157\3\11" + - "\1\251\2\11\1\66\4\11\12\251\1\11\1\251\1\11" + - "\1\251\1\11\1\251\1\11\1\251\44\11\1\67\1\0" + - "\2\11\1\0\3\11\1\66\67\11\14\70\1\252\1\160" + - "\65\70\11\0\1\253\71\0\15\162\1\254\65\162\44\0" + - "\1\255\36\0\1\103\1\256\1\0\1\104\1\257\3\103" + - "\1\256\1\103\6\0\12\256\1\103\1\256\1\103\1\256" + - "\1\103\1\256\1\103\1\256\10\103\15\0\2\103\1\0" + - "\2\103\7\0\1\105\1\260\1\0\1\106\1\261\3\105" + - "\1\260\1\105\6\0\12\260\1\105\1\260\1\105\1\260" + - "\1\105\1\260\1\105\1\260\10\105\15\0\2\105\1\0" + - "\2\105\7\0\2\105\1\0\1\106\4\0\2\105\6\0" + - "\23\105\1\262\6\105\15\0\1\105\2\0\2\105\7\0" + - "\2\105\1\0\1\106\4\0\2\105\6\0\1\263\31\105" + - "\15\0\1\105\2\0\2\105\7\0\2\105\1\0\1\106" + - "\4\0\2\105\6\0\24\105\1\264\5\105\15\0\1\105" + - "\2\0\2\105\7\0\2\105\1\0\1\106\4\0\2\105" + - "\6\0\7\105\1\265\22\105\15\0\1\105\2\0\2\105" + - "\7\0\2\105\1\0\1\106\4\0\2\105\6\0\22\105" + - "\1\266\7\105\15\0\1\105\2\0\2\105\7\0\2\105" + - "\1\0\1\106\4\0\2\105\6\0\12\105\1\267\17\105" + - "\15\0\1\105\2\0\2\105\7\0\2\2\1\0\1\41" + - "\4\0\2\2\6\0\32\2\15\0\1\2\2\0\2\2" + - "\1\270\6\0\1\43\1\271\1\0\1\117\1\176\3\43" + - "\1\271\1\43\6\0\12\271\1\43\1\271\1\43\1\271" + - "\1\43\1\271\1\43\1\271\10\43\15\0\2\43\1\0" + - "\2\43\7\0\2\43\1\0\1\117\1\0\1\43\2\0" + - "\2\43\6\0\32\43\15\0\1\43\2\0\2\43\7\0" + - "\1\43\1\271\1\0\1\117\1\176\3\43\1\271\1\43" + - "\6\0\1\271\1\272\1\273\1\271\1\273\4\271\1\274" + - "\1\43\1\274\1\43\1\271\1\43\1\271\1\43\1\271" + - "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\271" + - "\1\0\1\117\1\176\3\43\1\271\1\43\6\0\2\271" + - "\1\275\3\271\1\276\1\277\1\271\1\300\1\43\1\301" + - "\1\43\1\302\1\43\1\303\1\43\1\304\10\43\15\0" + - "\2\43\1\0\2\43\7\0\1\43\1\305\1\0\1\117" + - "\1\176\3\43\1\271\1\43\6\0\1\271\1\306\4\271" + - "\1\307\3\271\1\43\1\271\1\43\1\271\1\43\1\271" + - "\1\43\1\271\10\43\15\0\2\43\1\0\2\43\7\0" + - "\1\43\1\271\1\0\1\126\1\310\3\50\1\271\1\43" + - "\6\0\10\271\1\311\1\271\1\43\1\271\1\43\1\271" + - "\1\43\1\271\1\43\1\271\10\43\15\0\1\43\1\50" + - "\1\0\2\43\7\0\1\43\1\271\1\0\1\124\1\312" + - "\3\47\1\271\1\43\6\0\12\271\1\43\1\271\1\43" + - "\1\271\1\43\1\271\1\43\1\271\1\125\7\43\15\0" + - "\1\43\1\47\1\0\2\43\7\0\1\43\1\271\1\0" + - "\1\141\1\313\3\56\1\271\1\43\6\0\12\271\1\43" + - "\1\271\1\43\1\271\1\43\1\271\1\43\1\271\1\142" + - "\3\43\1\61\3\43\15\0\1\43\1\56\1\0\2\43" + - "\7\0\1\43\1\271\1\0\1\130\1\314\3\51\1\271" + - "\1\43\6\0\12\271\1\43\1\271\1\43\1\271\1\43" + - "\1\271\1\43\1\271\1\131\5\43\1\132\1\43\15\0" + - "\1\43\1\51\1\0\2\43\7\0\1\43\1\271\1\0" + - "\1\133\1\315\3\52\1\271\1\43\6\0\12\271\1\43" + - "\1\271\1\43\1\271\1\43\1\271\1\43\1\271\3\43" + - "\1\60\4\43\15\0\1\43\1\52\1\0\2\43\7\0" + - "\1\43\1\271\1\0\1\134\1\316\3\53\1\271\1\43" + - "\6\0\12\271\1\43\1\271\1\43\1\271\1\43\1\271" + - "\1\43\1\271\7\43\1\135\15\0\1\43\1\53\1\0" + - "\2\43\7\0\1\43\1\271\1\0\1\136\1\317\3\54" + - "\1\271\1\43\6\0\12\271\1\43\1\271\1\43\1\271" + - "\1\43\1\271\1\43\1\271\1\43\1\137\6\43\15\0" + - "\1\43\1\54\1\0\2\43\7\0\1\43\1\271\1\0" + - "\1\140\1\320\3\55\1\271\1\43\6\0\12\271\1\43" + - "\1\271\1\53\1\271\1\43\1\271\1\43\1\271\10\43" + - "\15\0\1\43\1\55\1\0\2\43\7\0\1\43\1\271" + - "\1\0\1\147\1\321\3\60\1\271\1\43\6\0\1\322" + - "\11\271\1\43\1\271\1\43\1\271\1\43\1\271\1\43" + - "\1\271\10\43\15\0\1\43\1\60\1\0\2\43\7\0" + - "\1\43\1\271\1\0\1\143\1\323\3\57\1\271\1\43" + - "\6\0\5\271\1\324\4\271\1\43\1\271\1\43\1\271" + - "\1\43\1\271\1\43\1\271\5\43\1\145\1\146\1\43" + - "\15\0\1\43\1\57\1\0\2\43\7\0\1\43\1\271" + - "\1\0\1\117\1\325\3\61\1\271\1\43\6\0\12\271" + - "\1\43\1\271\1\43\1\271\1\43\1\271\1\43\1\271" + - "\10\43\15\0\1\43\1\61\1\0\2\43\7\0\1\43" + - "\1\175\1\0\1\117\1\176\3\43\1\175\1\43\6\0" + - "\1\175\1\326\1\327\1\175\1\327\5\175\1\43\1\175" + - "\1\43\1\175\1\43\1\175\1\43\1\175\10\43\15\0" + - "\2\43\1\0\2\43\7\0\1\43\1\175\1\0\1\117" + - "\1\176\3\43\1\175\1\43\6\0\7\175\1\330\2\175" + - "\1\43\1\175\1\43\1\175\1\43\1\175\1\43\1\175" + - "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\175" + - "\1\0\1\117\1\176\3\43\1\175\1\43\6\0\1\175" + - "\1\331\1\332\1\175\1\332\5\175\1\43\1\175\1\43" + - "\1\175\1\43\1\175\1\43\1\175\10\43\15\0\2\43" + - "\1\0\2\43\7\0\1\43\1\175\1\0\1\117\1\176" + - "\3\43\1\175\1\43\6\0\11\175\1\333\1\43\1\175" + - "\1\43\1\175\1\43\1\175\1\43\1\175\10\43\15\0" + - "\2\43\1\0\2\43\7\0\1\43\1\120\2\43\2\0" + - "\1\43\1\0\1\120\7\43\1\120\1\334\1\335\1\120" + - "\1\335\5\120\1\222\1\120\1\43\1\120\1\43\1\120" + - "\1\43\1\120\42\43\1\175\1\0\1\117\1\176\3\43" + - "\1\175\1\43\6\0\1\175\1\336\1\337\1\175\1\337" + - "\4\175\1\340\1\43\1\340\1\43\1\175\1\43\1\175" + - "\1\43\1\175\10\43\15\0\2\43\1\0\2\43\7\0" + - "\1\43\1\175\1\0\1\117\1\176\3\43\1\175\1\43" + - "\6\0\7\175\1\341\2\175\1\43\1\175\1\43\1\175" + - "\1\43\1\175\1\43\1\175\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\175\1\0\1\117\1\176\3\43" + - "\1\175\1\43\6\0\12\175\1\43\1\175\1\43\1\342" + - "\1\43\1\175\1\43\1\175\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\175\1\0\1\117\1\176\3\43" + - "\1\175\1\43\6\0\1\175\1\343\7\175\1\344\1\43" + - "\1\344\1\43\1\175\1\43\1\175\1\43\1\175\10\43" + - "\15\0\2\43\1\0\2\43\7\0\1\43\1\212\1\0" + - "\1\117\1\176\3\43\1\175\1\43\6\0\12\175\1\43" + - "\1\175\1\43\1\175\1\43\1\175\1\43\1\175\10\43" + - "\15\0\2\43\1\0\2\43\7\0\1\43\1\175\1\0" + - "\1\117\1\176\3\43\1\175\1\43\6\0\1\175\1\345" + - "\7\175\1\346\1\43\1\346\1\43\1\175\1\43\1\175" + - "\1\43\1\175\10\43\15\0\2\43\1\0\2\43\7\0" + - "\1\43\1\175\1\0\1\117\1\176\3\43\1\175\1\43" + - "\6\0\1\347\11\175\1\43\1\175\1\43\1\175\1\43" + - "\1\175\1\43\1\175\10\43\15\0\2\43\1\0\2\43" + - "\7\0\1\43\1\175\1\0\1\117\1\176\3\43\1\175" + - "\1\43\6\0\1\175\1\350\1\351\1\175\1\351\5\175" + - "\1\43\1\175\1\43\1\175\1\43\1\175\1\43\1\175" + - "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\175" + - "\1\0\1\117\1\176\3\43\1\175\1\43\6\0\10\175" + - "\1\352\1\175\1\43\1\175\1\43\1\175\1\43\1\175" + - "\1\43\1\175\10\43\15\0\2\43\1\0\2\43\7\0" + - "\1\43\1\175\1\0\1\117\1\176\3\43\1\175\1\43" + - "\6\0\1\175\1\353\1\354\1\175\1\354\5\175\1\43" + - "\1\175\1\43\1\175\1\43\1\175\1\43\1\175\10\43" + - "\15\0\2\43\1\0\2\43\7\0\1\43\1\175\1\0" + - "\1\117\1\176\3\43\1\175\1\43\6\0\12\175\1\43" + - "\1\175\1\43\1\207\1\43\1\175\1\43\1\175\10\43" + - "\15\0\2\43\1\0\2\43\7\0\1\43\1\175\1\0" + - "\1\117\1\176\3\43\1\175\1\43\6\0\1\175\1\355" + - "\1\356\1\175\1\356\4\175\1\357\1\43\1\357\1\43" + - "\1\175\1\43\1\175\1\43\1\175\10\43\15\0\2\43" + - "\1\0\2\43\7\0\1\43\1\175\1\0\1\117\1\176" + - "\3\43\1\175\1\43\6\0\7\175\1\360\2\175\1\43" + - "\1\175\1\43\1\175\1\43\1\175\1\43\1\175\10\43" + - "\15\0\2\43\1\0\2\43\7\0\1\43\1\175\1\0" + - "\1\117\1\176\3\43\1\175\1\43\6\0\6\175\1\214" + - "\3\175\1\43\1\175\1\43\1\175\1\43\1\175\1\43" + - "\1\175\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + - "\1\175\1\0\1\117\1\176\3\43\1\175\1\43\6\0" + - "\1\175\1\361\1\362\1\175\1\362\4\175\1\363\1\43" + - "\1\363\1\43\1\175\1\43\1\175\1\43\1\175\10\43" + - "\15\0\2\43\1\0\2\43\7\0\1\43\1\175\1\0" + - "\1\117\1\176\3\43\1\175\1\43\6\0\6\175\1\364" + - "\3\175\1\43\1\175\1\43\1\175\1\43\1\175\1\43" + - "\1\175\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + - "\1\175\1\0\1\117\1\176\3\43\1\175\1\43\6\0" + - "\2\175\1\365\7\175\1\43\1\175\1\43\1\366\1\43" + - "\1\175\1\43\1\175\10\43\15\0\2\43\1\0\2\43" + - "\7\0\1\43\1\175\1\0\1\117\1\176\3\43\1\175" + - "\1\43\6\0\1\175\1\367\1\370\1\175\1\370\5\175" + - "\1\43\1\175\1\43\1\175\1\43\1\175\1\43\1\175" + - "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\175" + - "\1\0\1\117\1\176\3\43\1\175\1\43\6\0\3\175" + - "\1\371\6\175\1\43\1\175\1\43\1\175\1\43\1\175" + - "\1\43\1\175\10\43\15\0\2\43\1\0\2\43\7\0" + - "\1\43\1\120\2\43\2\0\1\43\1\0\1\120\7\43" + - "\1\120\1\372\1\373\1\120\1\373\5\120\1\43\1\120" + - "\1\43\1\120\1\43\1\120\1\43\1\120\41\43\1\2" + - "\1\374\1\0\1\41\1\152\3\2\1\374\1\2\6\0" + - "\12\374\1\2\1\374\1\2\1\374\1\2\1\374\1\2" + - "\1\374\10\2\15\0\2\2\1\0\2\2\1\42\6\0" + - "\1\10\1\375\1\10\1\65\1\155\3\10\1\375\1\10" + - "\1\66\5\10\12\375\1\10\1\375\1\10\1\375\1\10" + - "\1\375\1\10\1\375\41\10\1\11\1\376\1\11\1\67" + - "\1\157\3\11\1\376\2\11\1\66\4\11\12\376\1\11" + - "\1\376\1\11\1\376\1\11\1\376\1\11\1\376\41\11" + - "\14\162\1\74\1\254\65\162\67\0\1\377\13\0\1\103" + - "\1\u0100\1\0\1\104\1\257\3\103\1\u0100\1\103\6\0" + - "\12\u0100\1\103\1\u0100\1\103\1\u0100\1\103\1\u0100\1\103" + - "\1\u0100\10\103\15\0\2\103\1\0\2\103\7\0\2\103" + - "\1\0\1\104\1\0\1\103\2\0\2\103\6\0\32\103" + - "\15\0\1\103\2\0\2\103\7\0\1\105\1\u0101\1\0" + - "\1\106\1\261\3\105\1\u0101\1\105\6\0\12\u0101\1\105" + - "\1\u0101\1\105\1\u0101\1\105\1\u0101\1\105\1\u0101\10\105" + - "\15\0\2\105\1\0\2\105\7\0\2\105\1\0\1\106" + - "\1\0\1\105\2\0\2\105\6\0\32\105\15\0\1\105" + - "\2\0\2\105\7\0\2\105\1\0\1\106\4\0\2\105" + - "\6\0\27\105\1\u0102\2\105\15\0\1\105\2\0\2\105" + - "\7\0\2\105\1\0\1\106\4\0\2\105\6\0\25\105" + - "\1\u0103\4\105\15\0\1\105\2\0\2\105\7\0\2\105" + - "\1\0\1\106\4\0\2\105\6\0\32\105\15\0\1\u0104" + - "\2\0\2\105\7\0\2\105\1\0\1\106\4\0\2\105" + - "\6\0\16\105\1\u0105\13\105\15\0\1\105\2\0\2\105" + - "\7\0\2\105\1\0\1\106\4\0\2\105\6\0\10\105" + - "\1\u0106\21\105\15\0\1\105\2\0\2\105\7\0\2\105" + - "\1\0\1\106\4\0\2\105\6\0\10\105\1\u0107\21\105" + - "\15\0\1\105\2\0\2\105\7\0\2\u0108\1\0\1\u0109" + - "\4\u010a\2\u0108\1\u010b\1\u010c\54\u0108\1\u010a\3\u0108\1\0" + - "\1\u010d\5\u0108\1\43\1\u010e\1\0\1\117\1\176\3\43" + - "\1\u010e\1\43\6\0\12\u010e\1\43\1\u010e\1\43\1\u010e" + - "\1\43\1\u010e\1\43\1\u010e\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\u010e\1\0\1\117\1\176\3\43" + - "\1\u010e\1\43\6\0\1\u010e\1\u010f\1\u0110\1\u010e\1\u0110" + - "\4\u010e\1\u0111\1\43\1\u0111\1\43\1\u010e\1\43\1\u010e" + - "\1\43\1\u010e\10\43\15\0\2\43\1\0\2\43\7\0" + - "\1\43\1\u010e\1\0\1\117\1\176\3\43\1\u010e\1\43" + - "\6\0\2\u010e\1\u0112\3\u010e\1\u0113\1\u0114\1\u010e\1\u0115" + - "\1\43\1\u0116\1\43\1\u0117\1\43\1\u0118\1\43\1\u0119" + - "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u011a" + - "\1\0\1\117\1\176\3\43\1\u010e\1\43\6\0\1\u010e" + - "\1\u011b\4\u010e\1\u011c\3\u010e\1\43\1\u010e\1\43\1\u010e" + - "\1\43\1\u010e\1\43\1\u010e\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\u010e\1\0\1\126\1\310\3\50" + - "\1\u010e\1\43\6\0\10\u010e\1\u011d\1\u010e\1\43\1\u010e" + - "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43\15\0" + - "\1\43\1\50\1\0\2\43\7\0\1\43\1\u010e\1\0" + - "\1\124\1\312\3\47\1\u010e\1\43\6\0\12\u010e\1\43" + - "\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\125" + - "\7\43\15\0\1\43\1\47\1\0\2\43\7\0\1\43" + - "\1\u010e\1\0\1\141\1\313\3\56\1\u010e\1\43\6\0" + - "\12\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43" + - "\1\u010e\1\142\3\43\1\61\3\43\15\0\1\43\1\56" + - "\1\0\2\43\7\0\1\43\1\u010e\1\0\1\130\1\314" + - "\3\51\1\u010e\1\43\6\0\12\u010e\1\43\1\u010e\1\43" + - "\1\u010e\1\43\1\u010e\1\43\1\u010e\1\131\5\43\1\132" + - "\1\43\15\0\1\43\1\51\1\0\2\43\7\0\1\43" + - "\1\u010e\1\0\1\133\1\315\3\52\1\u010e\1\43\6\0" + - "\12\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43" + - "\1\u010e\3\43\1\60\4\43\15\0\1\43\1\52\1\0" + - "\2\43\7\0\1\43\1\u010e\1\0\1\134\1\316\3\53" + - "\1\u010e\1\43\6\0\12\u010e\1\43\1\u010e\1\43\1\u010e" + - "\1\43\1\u010e\1\43\1\u010e\7\43\1\135\15\0\1\43" + - "\1\53\1\0\2\43\7\0\1\43\1\u010e\1\0\1\136" + - "\1\317\3\54\1\u010e\1\43\6\0\12\u010e\1\43\1\u010e" + - "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\137" + - "\6\43\15\0\1\43\1\54\1\0\2\43\7\0\1\43" + - "\1\u010e\1\0\1\140\1\320\3\55\1\u010e\1\43\6\0" + - "\12\u010e\1\43\1\u010e\1\53\1\u010e\1\43\1\u010e\1\43" + - "\1\u010e\10\43\15\0\1\43\1\55\1\0\2\43\7\0" + - "\1\43\1\u010e\1\0\1\147\1\321\3\60\1\u010e\1\43" + - "\6\0\1\u011e\11\u010e\1\43\1\u010e\1\43\1\u010e\1\43" + - "\1\u010e\1\43\1\u010e\10\43\15\0\1\43\1\60\1\0" + - "\2\43\7\0\1\43\1\u010e\1\0\1\143\1\323\3\57" + - "\1\u010e\1\43\6\0\5\u010e\1\u011f\4\u010e\1\43\1\u010e" + - "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\5\43\1\145" + - "\1\146\1\43\15\0\1\43\1\57\1\0\2\43\7\0" + - "\1\43\1\u010e\1\0\1\117\1\325\3\61\1\u010e\1\43" + - "\6\0\12\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + - "\1\43\1\u010e\10\43\15\0\1\43\1\61\1\0\2\43" + - "\7\0\2\43\1\0\1\126\1\0\1\50\2\0\2\43" + - "\6\0\10\43\1\127\21\43\15\0\1\43\2\0\2\43" + - "\7\0\1\43\1\u010e\1\0\1\221\1\176\3\43\1\u010e" + - "\1\43\6\0\12\u010e\1\222\1\u010e\1\43\1\u010e\1\43" + - "\1\u010e\1\43\1\u010e\10\43\15\0\2\43\1\0\2\43" + - "\7\0\2\43\1\0\1\124\1\0\1\47\2\0\2\43" + - "\6\0\22\43\1\125\7\43\15\0\1\43\2\0\2\43" + - "\7\0\2\43\1\0\1\141\1\0\1\56\2\0\2\43" + - "\6\0\22\43\1\142\3\43\1\61\3\43\15\0\1\43" + - "\2\0\2\43\7\0\2\43\1\0\1\130\1\0\1\51" + - "\2\0\2\43\6\0\22\43\1\131\5\43\1\132\1\43" + - "\15\0\1\43\2\0\2\43\7\0\2\43\1\0\1\133" + - "\1\0\1\52\2\0\2\43\6\0\25\43\1\60\4\43" + - "\15\0\1\43\2\0\2\43\7\0\2\43\1\0\1\134" + - "\1\0\1\53\2\0\2\43\6\0\31\43\1\135\15\0" + - "\1\43\2\0\2\43\7\0\2\43\1\0\1\136\1\0" + - "\1\54\2\0\2\43\6\0\23\43\1\137\6\43\15\0" + - "\1\43\2\0\2\43\7\0\2\43\1\0\1\140\1\0" + - "\1\55\2\0\2\43\6\0\14\43\1\53\15\43\15\0" + - "\1\43\2\0\2\43\7\0\2\43\1\0\1\147\1\0" + - "\1\60\2\0\2\43\6\0\1\150\31\43\15\0\1\43" + - "\2\0\2\43\7\0\1\43\1\u010e\1\0\1\246\1\176" + - "\3\43\1\u010e\1\43\6\0\7\u010e\1\u0120\2\u010e\1\43" + - "\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43" + - "\15\0\2\43\1\0\2\43\7\0\2\43\1\0\1\143" + - "\1\0\1\57\2\0\2\43\6\0\5\43\1\144\21\43" + - "\1\145\1\146\1\43\15\0\1\43\2\0\2\43\7\0" + - "\2\43\1\0\1\117\1\0\1\61\2\0\2\43\6\0" + - "\32\43\15\0\1\43\2\0\2\43\7\0\1\43\1\271" + - "\1\0\1\117\1\176\3\43\1\271\1\43\6\0\1\271" + - "\1\u0121\1\u0122\1\271\1\u0122\5\271\1\43\1\271\1\43" + - "\1\271\1\43\1\271\1\43\1\271\10\43\15\0\2\43" + - "\1\0\2\43\7\0\1\43\1\271\1\0\1\117\1\176" + - "\3\43\1\271\1\43\6\0\7\271\1\u0123\2\271\1\43" + - "\1\271\1\43\1\271\1\43\1\271\1\43\1\271\10\43" + - "\15\0\2\43\1\0\2\43\7\0\1\43\1\271\1\0" + - "\1\117\1\u0124\3\125\1\271\1\43\6\0\12\271\1\43" + - "\1\271\1\43\1\271\1\43\1\271\1\43\1\271\10\43" + - "\15\0\1\43\1\125\1\0\2\43\7\0\1\43\1\271" + - "\1\0\1\117\1\176\3\43\1\271\1\43\6\0\1\271" + - "\1\u0125\1\u0126\1\271\1\u0126\5\271\1\43\1\271\1\43" + - "\1\271\1\43\1\271\1\43\1\271\10\43\15\0\2\43" + - "\1\0\2\43\7\0\1\43\1\271\1\0\1\117\1\176" + - "\3\43\1\271\1\43\6\0\11\271\1\u0127\1\43\1\271" + - "\1\43\1\271\1\43\1\271\1\43\1\271\10\43\15\0" + - "\2\43\1\0\2\43\7\0\1\43\1\271\1\0\1\221" + - "\1\u0128\3\127\1\271\1\43\6\0\12\271\1\222\1\271" + - "\1\43\1\271\1\43\1\271\1\43\1\271\10\43\15\0" + - "\1\43\1\127\1\0\2\43\7\0\1\43\1\175\1\0" + - "\1\117\1\176\3\43\1\175\1\43\6\0\1\175\1\u0129" + - "\1\u012a\1\175\1\u012a\5\175\1\43\1\175\1\43\1\175" + - "\1\43\1\175\1\43\1\175\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\175\1\0\1\117\1\176\3\43" + - "\1\175\1\43\6\0\12\175\1\43\1\u012b\1\43\1\175" + - "\1\43\1\175\1\43\1\175\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\271\1\0\1\117\1\176\3\43" + - "\1\271\1\43\6\0\1\271\1\u012c\1\u012d\1\271\1\u012d" + - "\4\271\1\u012e\1\43\1\u012e\1\43\1\271\1\43\1\271" + - "\1\43\1\271\10\43\15\0\2\43\1\0\2\43\7\0" + - "\1\43\1\271\1\0\1\117\1\176\3\43\1\271\1\43" + - "\6\0\7\271\1\u012f\2\271\1\43\1\271\1\43\1\271" + - "\1\43\1\271\1\43\1\271\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\271\1\0\1\117\1\176\3\43" + - "\1\271\1\43\6\0\12\271\1\43\1\271\1\43\1\u0130" + - "\1\43\1\271\1\43\1\271\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\271\1\0\1\117\1\u0131\3\131" + - "\1\271\1\43\6\0\12\271\1\43\1\271\1\43\1\271" + - "\1\43\1\271\1\43\1\271\10\43\15\0\1\43\1\131" + - "\1\0\2\43\7\0\1\43\1\271\1\0\1\117\1\u0132" + - "\3\132\1\271\1\43\6\0\12\271\1\43\1\271\1\43" + - "\1\271\1\43\1\271\1\43\1\271\10\43\15\0\1\43" + - "\1\132\1\0\2\43\7\0\1\43\1\271\1\0\1\117" + - "\1\176\3\43\1\271\1\43\6\0\1\271\1\u0133\7\271" + - "\1\u0134\1\43\1\u0134\1\43\1\271\1\43\1\271\1\43" + - "\1\271\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + - "\1\305\1\0\1\117\1\176\3\43\1\271\1\43\6\0" + - "\12\271\1\43\1\271\1\43\1\271\1\43\1\271\1\43" + - "\1\271\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + - "\1\271\1\0\1\117\1\176\3\43\1\271\1\43\6\0" + - "\1\271\1\u0135\7\271\1\u0136\1\43\1\u0136\1\43\1\271" + - "\1\43\1\271\1\43\1\271\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\271\1\0\1\117\1\176\3\43" + - "\1\271\1\43\6\0\1\u0137\11\271\1\43\1\271\1\43" + - "\1\271\1\43\1\271\1\43\1\271\10\43\15\0\2\43" + - "\1\0\2\43\7\0\1\43\1\271\1\0\1\117\1\u0138" + - "\3\135\1\271\1\43\6\0\12\271\1\43\1\271\1\43" + - "\1\271\1\43\1\271\1\43\1\271\10\43\15\0\1\43" + - "\1\135\1\0\2\43\7\0\1\43\1\271\1\0\1\117" + - "\1\176\3\43\1\271\1\43\6\0\1\271\1\u0139\1\u013a" + - "\1\271\1\u013a\5\271\1\43\1\271\1\43\1\271\1\43" + - "\1\271\1\43\1\271\10\43\15\0\2\43\1\0\2\43" + - "\7\0\1\43\1\271\1\0\1\117\1\176\3\43\1\271" + - "\1\43\6\0\10\271\1\u013b\1\271\1\43\1\271\1\43" + - "\1\271\1\43\1\271\1\43\1\271\10\43\15\0\2\43" + - "\1\0\2\43\7\0\1\43\1\271\1\0\1\117\1\u013c" + - "\3\137\1\271\1\43\6\0\12\271\1\43\1\271\1\43" + - "\1\271\1\43\1\271\1\43\1\271\10\43\15\0\1\43" + - "\1\137\1\0\2\43\7\0\1\43\1\271\1\0\1\117" + - "\1\176\3\43\1\271\1\43\6\0\1\271\1\u013d\1\u013e" + - "\1\271\1\u013e\5\271\1\43\1\271\1\43\1\271\1\43" + - "\1\271\1\43\1\271\10\43\15\0\2\43\1\0\2\43" + - "\7\0\1\43\1\271\1\0\1\117\1\176\3\43\1\271" + - "\1\43\6\0\12\271\1\43\1\271\1\43\1\302\1\43" + - "\1\271\1\43\1\271\10\43\15\0\2\43\1\0\2\43" + - "\7\0\1\43\1\271\1\0\1\117\1\176\3\43\1\271" + - "\1\43\6\0\1\271\1\u013f\1\u0140\1\271\1\u0140\4\271" + - "\1\u0141\1\43\1\u0141\1\43\1\271\1\43\1\271\1\43" + - "\1\271\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + - "\1\271\1\0\1\117\1\176\3\43\1\271\1\43\6\0" + - "\7\271\1\u0142\2\271\1\43\1\271\1\43\1\271\1\43" + - "\1\271\1\43\1\271\10\43\15\0\2\43\1\0\2\43" + - "\7\0\1\43\1\271\1\0\1\117\1\176\3\43\1\271" + - "\1\43\6\0\6\271\1\307\3\271\1\43\1\271\1\43" + - "\1\271\1\43\1\271\1\43\1\271\10\43\15\0\2\43" + - "\1\0\2\43\7\0\1\43\1\271\1\0\1\117\1\u0143" + - "\3\142\1\271\1\43\6\0\12\271\1\43\1\271\1\43" + - "\1\271\1\43\1\271\1\43\1\271\10\43\15\0\1\43" + - "\1\142\1\0\2\43\7\0\1\43\1\271\1\0\1\117" + - "\1\176\3\43\1\271\1\43\6\0\1\271\1\u0144\1\u0145" + - "\1\271\1\u0145\4\271\1\u0146\1\43\1\u0146\1\43\1\271" + - "\1\43\1\271\1\43\1\271\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\271\1\0\1\117\1\176\3\43" + - "\1\271\1\43\6\0\6\271\1\u0147\3\271\1\43\1\271" + - "\1\43\1\271\1\43\1\271\1\43\1\271\10\43\15\0" + - "\2\43\1\0\2\43\7\0\1\43\1\271\1\0\1\117" + - "\1\176\3\43\1\271\1\43\6\0\2\271\1\u0148\7\271" + - "\1\43\1\271\1\43\1\u0149\1\43\1\271\1\43\1\271" + - "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\271" + - "\1\0\1\117\1\u014a\3\144\1\271\1\43\6\0\12\271" + - "\1\43\1\271\1\43\1\271\1\43\1\271\1\43\1\271" + - "\10\43\15\0\1\43\1\144\1\0\2\43\7\0\1\43" + - "\1\271\1\0\1\117\1\u014b\3\145\1\271\1\43\6\0" + - "\12\271\1\43\1\271\1\43\1\271\1\43\1\271\1\43" + - "\1\271\10\43\15\0\1\43\1\145\1\0\2\43\7\0" + - "\1\43\1\271\1\0\1\117\1\u014c\3\146\1\271\1\43" + - "\6\0\12\271\1\43\1\271\1\43\1\271\1\43\1\271" + - "\1\43\1\271\10\43\15\0\1\43\1\146\1\0\2\43" + - "\7\0\1\43\1\271\1\0\1\117\1\176\3\43\1\271" + - "\1\43\6\0\1\271\1\u014d\1\u014e\1\271\1\u014e\5\271" + - "\1\43\1\271\1\43\1\271\1\43\1\271\1\43\1\271" + - "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\271" + - "\1\0\1\117\1\176\3\43\1\271\1\43\6\0\3\271" + - "\1\u014f\6\271\1\43\1\271\1\43\1\271\1\43\1\271" + - "\1\43\1\271\10\43\15\0\2\43\1\0\2\43\7\0" + - "\1\43\1\271\1\0\1\246\1\u0150\3\150\1\271\1\43" + - "\6\0\7\271\1\u0151\2\271\1\43\1\271\1\43\1\271" + - "\1\43\1\271\1\43\1\271\10\43\15\0\1\43\1\150" + - "\1\0\2\43\7\0\1\43\1\175\1\0\1\117\1\176" + - "\3\43\1\175\1\43\6\0\1\175\1\u0152\1\u0153\1\175" + - "\1\u0153\5\175\1\43\1\175\1\43\1\175\1\43\1\175" + - "\1\43\1\175\10\43\15\0\2\43\1\0\2\43\7\0" + - "\1\43\1\175\1\0\1\117\1\176\3\43\1\175\1\43" + - "\6\0\2\175\1\u012b\7\175\1\43\1\175\1\43\1\175" + - "\1\43\1\175\1\43\1\175\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\2\1\u0154\1\0\1\41\1\152\3\2" + - "\1\u0154\1\2\6\0\12\u0154\1\2\1\u0154\1\2\1\u0154" + - "\1\2\1\u0154\1\2\1\u0154\10\2\15\0\2\2\1\0" + - "\2\2\1\42\6\0\1\10\1\u0155\1\10\1\65\1\155" + - "\3\10\1\u0155\1\10\1\66\5\10\12\u0155\1\10\1\u0155" + - "\1\10\1\u0155\1\10\1\u0155\1\10\1\u0155\41\10\1\11" + - "\1\u0156\1\11\1\67\1\157\3\11\1\u0156\2\11\1\66" + - "\4\11\12\u0156\1\11\1\u0156\1\11\1\u0156\1\11\1\u0156" + - "\1\11\1\u0156\41\11\45\0\1\u0157\35\0\1\103\1\u0158" + - "\1\0\1\104\1\257\3\103\1\u0158\1\103\6\0\12\u0158" + - "\1\103\1\u0158\1\103\1\u0158\1\103\1\u0158\1\103\1\u0158" + - "\10\103\15\0\2\103\1\0\2\103\7\0\1\105\1\u0159" + - "\1\0\1\106\1\261\3\105\1\u0159\1\105\6\0\12\u0159" + - "\1\105\1\u0159\1\105\1\u0159\1\105\1\u0159\1\105\1\u0159" + - "\10\105\15\0\2\105\1\0\2\105\7\0\2\105\1\0" + - "\1\106\4\0\1\105\1\u015a\6\0\32\105\15\0\1\105" + - "\2\0\2\105\7\0\2\105\1\0\1\106\4\0\2\105" + - "\6\0\26\105\1\u015b\3\105\15\0\1\105\2\0\2\105" + - "\7\0\2\105\1\0\1\106\4\0\2\105\6\0\25\105" + - "\1\u015c\4\105\15\0\1\105\2\0\2\105\7\0\2\105" + - "\1\0\1\106\4\0\2\105\6\0\1\u015d\31\105\15\0" + - "\1\105\2\0\2\105\7\0\2\105\1\0\1\106\4\0" + - "\2\105\6\0\26\105\1\u015e\3\105\15\0\1\105\2\0" + - "\2\105\7\0\2\u0108\1\0\1\u0109\4\u015f\2\u0108\2\0" + - "\54\u0108\1\u015f\3\u0108\1\0\1\u010d\6\u0108\1\u0160\1\u0108" + - "\1\u0109\2\u015f\1\u0108\1\u015f\1\u0160\7\u0108\12\u0160\1\u0108" + - "\1\u0160\1\u0108\1\u0160\1\u0108\1\u0160\1\u0108\1\u0160\33\u0108" + - "\1\u0161\5\u0108\3\u010b\1\u0162\2\0\1\u010b\1\0\2\u010b" + - "\1\u015f\70\u010b\3\u010c\1\u0163\2\0\1\u010c\1\0\3\u010c" + - "\1\u015f\67\u010c\1\43\1\u0164\1\0\1\117\1\176\3\43" + - "\1\u0164\1\43\6\0\12\u0164\1\43\1\u0164\1\43\1\u0164" + - "\1\43\1\u0164\1\43\1\u0164\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\u0164\1\0\1\117\1\176\3\43" + - "\1\u0164\1\43\6\0\2\u0164\1\u0165\1\u0164\1\u0165\4\u0164" + - "\1\u0166\1\43\1\u0166\1\43\1\u0164\1\43\1\u0164\1\43" + - "\1\u0164\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + - "\1\u0164\1\0\1\117\1\176\3\43\1\u0164\1\43\6\0" + - "\2\u0164\1\u0167\3\u0164\1\u0168\1\u0169\1\u0164\1\u016a\1\43" + - "\1\u016b\1\43\1\u016c\1\43\1\u016d\1\43\1\u016e\10\43" + - "\15\0\2\43\1\0\2\43\7\0\1\43\1\u016f\1\0" + - "\1\117\1\176\3\43\1\u0164\1\43\6\0\1\u0164\1\u0170" + - "\4\u0164\1\u0171\3\u0164\1\43\1\u0164\1\43\1\u0164\1\43" + - "\1\u0164\1\43\1\u0164\10\43\15\0\2\43\1\0\2\43" + - "\7\0\1\43\1\u0164\1\0\1\126\1\310\3\50\1\u0164" + - "\1\43\6\0\10\u0164\1\u0172\1\u0164\1\43\1\u0164\1\43" + - "\1\u0164\1\43\1\u0164\1\43\1\u0164\10\43\15\0\1\43" + - "\1\50\1\0\2\43\7\0\1\43\1\u0164\1\0\1\124" + - "\1\312\3\47\1\u0164\1\43\6\0\12\u0164\1\43\1\u0164" + - "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\125\7\43" + - "\15\0\1\43\1\47\1\0\2\43\7\0\1\43\1\u0164" + - "\1\0\1\141\1\313\3\56\1\u0164\1\43\6\0\12\u0164" + - "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + - "\1\142\3\43\1\61\3\43\15\0\1\43\1\56\1\0" + - "\2\43\7\0\1\43\1\u0164\1\0\1\130\1\314\3\51" + - "\1\u0164\1\43\6\0\12\u0164\1\43\1\u0164\1\43\1\u0164" + - "\1\43\1\u0164\1\43\1\u0164\1\131\5\43\1\132\1\43" + - "\15\0\1\43\1\51\1\0\2\43\7\0\1\43\1\u0164" + - "\1\0\1\133\1\315\3\52\1\u0164\1\43\6\0\12\u0164" + - "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + - "\3\43\1\60\4\43\15\0\1\43\1\52\1\0\2\43" + - "\7\0\1\43\1\u0164\1\0\1\134\1\316\3\53\1\u0164" + - "\1\43\6\0\12\u0164\1\43\1\u0164\1\43\1\u0164\1\43" + - "\1\u0164\1\43\1\u0164\7\43\1\135\15\0\1\43\1\53" + - "\1\0\2\43\7\0\1\43\1\u0164\1\0\1\136\1\317" + - "\3\54\1\u0164\1\43\6\0\12\u0164\1\43\1\u0164\1\43" + - "\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\137\6\43" + - "\15\0\1\43\1\54\1\0\2\43\7\0\1\43\1\u0164" + - "\1\0\1\140\1\320\3\55\1\u0164\1\43\6\0\12\u0164" + - "\1\43\1\u0164\1\53\1\u0164\1\43\1\u0164\1\43\1\u0164" + - "\10\43\15\0\1\43\1\55\1\0\2\43\7\0\1\43" + - "\1\u0164\1\0\1\147\1\321\3\60\1\u0164\1\43\6\0" + - "\1\u0173\11\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + - "\1\43\1\u0164\10\43\15\0\1\43\1\60\1\0\2\43" + - "\7\0\1\43\1\u0164\1\0\1\143\1\323\3\57\1\u0164" + - "\1\43\6\0\5\u0164\1\u0174\4\u0164\1\43\1\u0164\1\43" + - "\1\u0164\1\43\1\u0164\1\43\1\u0164\5\43\1\145\1\146" + - "\1\43\15\0\1\43\1\57\1\0\2\43\7\0\1\43" + - "\1\u0164\1\0\1\117\1\325\3\61\1\u0164\1\43\6\0" + - "\12\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43" + - "\1\u0164\10\43\15\0\1\43\1\61\1\0\2\43\7\0" + - "\1\43\1\u0164\1\0\1\221\1\176\3\43\1\u0164\1\43" + - "\6\0\12\u0164\1\222\1\u0164\1\43\1\u0164\1\43\1\u0164" + - "\1\43\1\u0164\10\43\15\0\2\43\1\0\2\43\7\0" + - "\1\43\1\u0164\1\0\1\246\1\176\3\43\1\u0164\1\43" + - "\6\0\7\u0164\1\u0175\2\u0164\1\43\1\u0164\1\43\1\u0164" + - "\1\43\1\u0164\1\43\1\u0164\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\u010e\1\0\1\117\1\176\3\43" + - "\1\u010e\1\43\6\0\1\u010e\1\u0176\1\u0177\1\u010e\1\u0177" + - "\5\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43" + - "\1\u010e\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + - "\1\u010e\1\0\1\117\1\176\3\43\1\u010e\1\43\6\0" + - "\7\u010e\1\u0178\2\u010e\1\43\1\u010e\1\43\1\u010e\1\43" + - "\1\u010e\1\43\1\u010e\10\43\15\0\2\43\1\0\2\43" + - "\7\0\1\43\1\u010e\1\0\1\117\1\u0124\3\125\1\u010e" + - "\1\43\6\0\12\u010e\1\43\1\u010e\1\43\1\u010e\1\43" + - "\1\u010e\1\43\1\u010e\10\43\15\0\1\43\1\125\1\0" + - "\2\43\7\0\2\43\1\0\1\117\1\0\1\125\2\0" + - "\2\43\6\0\32\43\15\0\1\43\2\0\2\43\7\0" + - "\1\43\1\u010e\1\0\1\117\1\176\3\43\1\u010e\1\43" + - "\6\0\1\u010e\1\u0179\1\u017a\1\u010e\1\u017a\5\u010e\1\43" + - "\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43" + - "\15\0\2\43\1\0\2\43\7\0\1\43\1\u010e\1\0" + - "\1\117\1\176\3\43\1\u010e\1\43\6\0\11\u010e\1\u017b" + - "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + - "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u010e" + - "\1\0\1\221\1\u0128\3\127\1\u010e\1\43\6\0\12\u010e" + - "\1\222\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + - "\10\43\15\0\1\43\1\127\1\0\2\43\7\0\2\43" + - "\1\0\1\221\1\0\1\127\2\0\2\43\6\0\12\43" + - "\1\222\17\43\15\0\1\43\2\0\2\43\7\0\1\43" + - "\1\271\1\0\1\117\1\176\3\43\1\271\1\43\6\0" + - "\1\271\1\u017c\1\u017d\1\271\1\u017d\5\271\1\43\1\271" + - "\1\43\1\271\1\43\1\271\1\43\1\271\10\43\15\0" + - "\2\43\1\0\2\43\7\0\1\43\1\271\1\0\1\117" + - "\1\176\3\43\1\271\1\43\6\0\12\271\1\43\1\u017e" + - "\1\43\1\271\1\43\1\271\1\43\1\271\10\43\15\0" + - "\2\43\1\0\2\43\7\0\1\43\1\271\1\0\1\117" + - "\1\u017f\3\222\1\271\1\43\6\0\12\271\1\43\1\271" + - "\1\43\1\271\1\43\1\271\1\43\1\271\10\43\15\0" + - "\1\43\1\222\1\0\2\43\7\0\1\43\1\u010e\1\0" + - "\1\117\1\176\3\43\1\u010e\1\43\6\0\1\u010e\1\u0180" + - "\1\u0181\1\u010e\1\u0181\4\u010e\1\u0182\1\43\1\u0182\1\43" + - "\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43\15\0\2\43" + - "\1\0\2\43\7\0\1\43\1\u010e\1\0\1\117\1\176" + - "\3\43\1\u010e\1\43\6\0\7\u010e\1\u0183\2\u010e\1\43" + - "\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43" + - "\15\0\2\43\1\0\2\43\7\0\1\43\1\u010e\1\0" + - "\1\117\1\176\3\43\1\u010e\1\43\6\0\12\u010e\1\43" + - "\1\u010e\1\43\1\u0184\1\43\1\u010e\1\43\1\u010e\10\43" + - "\15\0\2\43\1\0\2\43\7\0\1\43\1\u010e\1\0" + - "\1\117\1\u0131\3\131\1\u010e\1\43\6\0\12\u010e\1\43" + - "\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43" + - "\15\0\1\43\1\131\1\0\2\43\7\0\1\43\1\u010e" + - "\1\0\1\117\1\u0132\3\132\1\u010e\1\43\6\0\12\u010e" + - "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + - "\10\43\15\0\1\43\1\132\1\0\2\43\7\0\2\43" + - "\1\0\1\117\1\0\1\131\2\0\2\43\6\0\32\43" + - "\15\0\1\43\2\0\2\43\7\0\2\43\1\0\1\117" + - "\1\0\1\132\2\0\2\43\6\0\32\43\15\0\1\43" + - "\2\0\2\43\7\0\1\43\1\u010e\1\0\1\117\1\176" + - "\3\43\1\u010e\1\43\6\0\1\u010e\1\u0185\7\u010e\1\u0186" + - "\1\43\1\u0186\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + - "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u011a" + - "\1\0\1\117\1\176\3\43\1\u010e\1\43\6\0\12\u010e" + - "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + - "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u010e" + - "\1\0\1\117\1\176\3\43\1\u010e\1\43\6\0\1\u010e" + - "\1\u0187\7\u010e\1\u0188\1\43\1\u0188\1\43\1\u010e\1\43" + - "\1\u010e\1\43\1\u010e\10\43\15\0\2\43\1\0\2\43" + - "\7\0\1\43\1\u010e\1\0\1\117\1\176\3\43\1\u010e" + - "\1\43\6\0\1\u0189\11\u010e\1\43\1\u010e\1\43\1\u010e" + - "\1\43\1\u010e\1\43\1\u010e\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\u010e\1\0\1\117\1\u0138\3\135" + - "\1\u010e\1\43\6\0\12\u010e\1\43\1\u010e\1\43\1\u010e" + - "\1\43\1\u010e\1\43\1\u010e\10\43\15\0\1\43\1\135" + - "\1\0\2\43\7\0\2\43\1\0\1\117\1\0\1\135" + - "\2\0\2\43\6\0\32\43\15\0\1\43\2\0\2\43" + - "\7\0\1\43\1\u010e\1\0\1\117\1\176\3\43\1\u010e" + - "\1\43\6\0\1\u010e\1\u018a\1\u018b\1\u010e\1\u018b\5\u010e" + - "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + - "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u010e" + - "\1\0\1\117\1\176\3\43\1\u010e\1\43\6\0\10\u010e" + - "\1\u018c\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + - "\1\43\1\u010e\10\43\15\0\2\43\1\0\2\43\7\0" + - "\1\43\1\u010e\1\0\1\117\1\u013c\3\137\1\u010e\1\43" + - "\6\0\12\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + - "\1\43\1\u010e\10\43\15\0\1\43\1\137\1\0\2\43" + - "\7\0\2\43\1\0\1\117\1\0\1\137\2\0\2\43" + - "\6\0\32\43\15\0\1\43\2\0\2\43\7\0\1\43" + - "\1\u010e\1\0\1\117\1\176\3\43\1\u010e\1\43\6\0" + - "\1\u010e\1\u018d\1\u018e\1\u010e\1\u018e\5\u010e\1\43\1\u010e" + - "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43\15\0" + - "\2\43\1\0\2\43\7\0\1\43\1\u010e\1\0\1\117" + - "\1\176\3\43\1\u010e\1\43\6\0\12\u010e\1\43\1\u010e" + - "\1\43\1\u0117\1\43\1\u010e\1\43\1\u010e\10\43\15\0" + - "\2\43\1\0\2\43\7\0\1\43\1\u010e\1\0\1\117" + - "\1\176\3\43\1\u010e\1\43\6\0\1\u010e\1\u018f\1\u0190" + - "\1\u010e\1\u0190\4\u010e\1\u0191\1\43\1\u0191\1\43\1\u010e" + - "\1\43\1\u010e\1\43\1\u010e\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\u010e\1\0\1\117\1\176\3\43" + - "\1\u010e\1\43\6\0\7\u010e\1\u0192\2\u010e\1\43\1\u010e" + - "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43\15\0" + - "\2\43\1\0\2\43\7\0\1\43\1\u010e\1\0\1\117" + - "\1\176\3\43\1\u010e\1\43\6\0\6\u010e\1\u011c\3\u010e" + - "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + - "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u010e" + - "\1\0\1\117\1\u0143\3\142\1\u010e\1\43\6\0\12\u010e" + - "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + - "\10\43\15\0\1\43\1\142\1\0\2\43\7\0\2\43" + - "\1\0\1\117\1\0\1\142\2\0\2\43\6\0\32\43" + - "\15\0\1\43\2\0\2\43\7\0\1\43\1\u010e\1\0" + - "\1\117\1\176\3\43\1\u010e\1\43\6\0\1\u010e\1\u0193" + - "\1\u0194\1\u010e\1\u0194\4\u010e\1\u0195\1\43\1\u0195\1\43" + - "\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43\15\0\2\43" + - "\1\0\2\43\7\0\1\43\1\u010e\1\0\1\117\1\176" + - "\3\43\1\u010e\1\43\6\0\6\u010e\1\u0196\3\u010e\1\43" + - "\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43" + - "\15\0\2\43\1\0\2\43\7\0\1\43\1\u010e\1\0" + - "\1\117\1\176\3\43\1\u010e\1\43\6\0\2\u010e\1\u0197" + - "\7\u010e\1\43\1\u010e\1\43\1\u0198\1\43\1\u010e\1\43" + - "\1\u010e\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + - "\1\u010e\1\0\1\117\1\u014a\3\144\1\u010e\1\43\6\0" + - "\12\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43" + - "\1\u010e\10\43\15\0\1\43\1\144\1\0\2\43\7\0" + - "\1\43\1\u010e\1\0\1\117\1\u014b\3\145\1\u010e\1\43" + - "\6\0\12\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + - "\1\43\1\u010e\10\43\15\0\1\43\1\145\1\0\2\43" + - "\7\0\1\43\1\u010e\1\0\1\117\1\u014c\3\146\1\u010e" + - "\1\43\6\0\12\u010e\1\43\1\u010e\1\43\1\u010e\1\43" + - "\1\u010e\1\43\1\u010e\10\43\15\0\1\43\1\146\1\0" + - "\2\43\7\0\2\43\1\0\1\117\1\0\1\144\2\0" + - "\2\43\6\0\32\43\15\0\1\43\2\0\2\43\7\0" + - "\2\43\1\0\1\117\1\0\1\145\2\0\2\43\6\0" + - "\32\43\15\0\1\43\2\0\2\43\7\0\2\43\1\0" + - "\1\117\1\0\1\146\2\0\2\43\6\0\32\43\15\0" + - "\1\43\2\0\2\43\7\0\1\43\1\u010e\1\0\1\117" + - "\1\176\3\43\1\u010e\1\43\6\0\1\u010e\1\u0199\1\u019a" + - "\1\u010e\1\u019a\5\u010e\1\43\1\u010e\1\43\1\u010e\1\43" + - "\1\u010e\1\43\1\u010e\10\43\15\0\2\43\1\0\2\43" + - "\7\0\1\43\1\u010e\1\0\1\117\1\176\3\43\1\u010e" + - "\1\43\6\0\3\u010e\1\u019b\6\u010e\1\43\1\u010e\1\43" + - "\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43\15\0\2\43" + - "\1\0\2\43\7\0\1\43\1\u010e\1\0\1\246\1\u0150" + - "\3\150\1\u010e\1\43\6\0\7\u010e\1\u0120\2\u010e\1\43" + - "\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43" + - "\15\0\1\43\1\150\1\0\2\43\7\0\2\43\1\0" + - "\1\246\1\0\1\150\2\0\2\43\6\0\7\43\1\222" + - "\22\43\15\0\1\43\2\0\2\43\7\0\1\43\1\271" + - "\1\0\1\117\1\176\3\43\1\271\1\43\6\0\1\271" + - "\1\u019c\1\u019d\1\271\1\u019d\5\271\1\43\1\271\1\43" + - "\1\271\1\43\1\271\1\43\1\271\10\43\15\0\2\43" + - "\1\0\2\43\7\0\1\43\1\271\1\0\1\117\1\176" + - "\3\43\1\271\1\43\6\0\2\271\1\u017e\7\271\1\43" + - "\1\271\1\43\1\271\1\43\1\271\1\43\1\271\10\43" + - "\15\0\2\43\1\0\2\43\7\0\1\2\1\u019e\1\0" + - "\1\41\1\152\3\2\1\u019e\1\2\6\0\12\u019e\1\2" + - "\1\u019e\1\2\1\u019e\1\2\1\u019e\1\2\1\u019e\10\2" + - "\15\0\2\2\1\0\2\2\1\42\6\0\1\10\1\u019f" + - "\1\10\1\65\1\155\3\10\1\u019f\1\10\1\66\5\10" + - "\12\u019f\1\10\1\u019f\1\10\1\u019f\1\10\1\u019f\1\10" + - "\1\u019f\41\10\1\11\1\u01a0\1\11\1\67\1\157\3\11" + - "\1\u01a0\2\11\1\66\4\11\12\u01a0\1\11\1\u01a0\1\11" + - "\1\u01a0\1\11\1\u01a0\1\11\1\u01a0\41\11\47\0\1\u01a1" + - "\33\0\1\103\1\u01a2\1\0\1\104\1\257\3\103\1\u01a2" + - "\1\103\6\0\12\u01a2\1\103\1\u01a2\1\103\1\u01a2\1\103" + - "\1\u01a2\1\103\1\u01a2\10\103\15\0\2\103\1\0\2\103" + - "\7\0\1\105\1\u01a3\1\0\1\106\1\261\3\105\1\u01a3" + - "\1\105\6\0\12\u01a3\1\105\1\u01a3\1\105\1\u01a3\1\105" + - "\1\u01a3\1\105\1\u01a3\10\105\15\0\2\105\1\0\2\105" + - "\7\0\2\105\1\0\1\106\4\0\1\u01a4\1\105\6\0" + - "\32\105\15\0\1\105\2\0\2\105\7\0\2\105\1\0" + - "\1\106\4\0\2\105\6\0\10\105\1\u01a5\21\105\15\0" + - "\1\105\2\0\2\105\7\0\2\105\1\0\1\106\4\0" + - "\2\105\6\0\27\105\1\u01a6\2\105\15\0\1\105\2\0" + - "\2\105\7\0\2\105\1\0\1\106\4\0\2\105\6\0" + - "\24\105\1\u01a7\5\105\15\0\1\105\2\0\2\105\13\0" + - "\4\u015f\60\0\1\u015f\4\0\1\u010d\5\0\1\u0108\1\u01a8" + - "\1\0\1\u0109\1\u01a9\3\u0108\1\u01a8\1\u0108\2\0\4\u0108" + - "\12\u01a8\1\u0108\1\u01a8\1\u0108\1\u01a8\1\u0108\1\u01a8\1\u0108" + - "\1\u01a8\32\u0108\1\0\1\u010d\5\u0108\1\u010b\1\u01aa\2\u010b" + - "\1\u01ab\3\u010b\1\u01aa\7\u010b\12\u01aa\1\u010b\1\u01aa\1\u010b" + - "\1\u01aa\1\u010b\1\u01aa\1\u010b\1\u01aa\41\u010b\1\u010c\1\u01ac" + - "\2\u010c\1\u01ad\3\u010c\1\u01ac\7\u010c\12\u01ac\1\u010c\1\u01ac" + - "\1\u010c\1\u01ac\1\u010c\1\u01ac\1\u010c\1\u01ac\41\u010c\1\43" + - "\1\u01ae\1\0\1\117\1\176\3\43\1\u01ae\1\43\6\0" + - "\12\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43" + - "\1\u01ae\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + - "\1\u01ae\1\0\1\117\1\176\3\43\1\u01ae\1\43\6\0" + - "\2\u01ae\1\u01af\3\u01ae\1\u01b0\1\u01b1\1\u01ae\1\u01b2\1\43" + - "\1\u01b3\1\43\1\u01b4\1\43\1\u01b5\1\43\1\u01b6\10\43" + - "\15\0\2\43\1\0\2\43\7\0\1\43\1\u01b7\1\0" + - "\1\117\1\176\3\43\1\u01ae\1\43\6\0\1\u01ae\1\u01b8" + - "\4\u01ae\1\u01b9\3\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43" + - "\1\u01ae\1\43\1\u01ae\10\43\15\0\2\43\1\0\2\43" + - "\7\0\1\43\1\u01ae\1\0\1\126\1\310\3\50\1\u01ae" + - "\1\43\6\0\10\u01ae\1\u01ba\1\u01ae\1\43\1\u01ae\1\43" + - "\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\1\43" + - "\1\50\1\0\2\43\7\0\1\43\1\u01ae\1\0\1\124" + - "\1\312\3\47\1\u01ae\1\43\6\0\12\u01ae\1\43\1\u01ae" + - "\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\125\7\43" + - "\15\0\1\43\1\47\1\0\2\43\7\0\1\43\1\u01ae" + - "\1\0\1\141\1\313\3\56\1\u01ae\1\43\6\0\12\u01ae" + - "\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae" + - "\1\142\3\43\1\61\3\43\15\0\1\43\1\56\1\0" + - "\2\43\7\0\1\43\1\u01ae\1\0\1\130\1\314\3\51" + - "\1\u01ae\1\43\6\0\12\u01ae\1\43\1\u01ae\1\43\1\u01ae" + - "\1\43\1\u01ae\1\43\1\u01ae\1\131\5\43\1\132\1\43" + - "\15\0\1\43\1\51\1\0\2\43\7\0\1\43\1\u01ae" + - "\1\0\1\133\1\315\3\52\1\u01ae\1\43\6\0\12\u01ae" + - "\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae" + - "\3\43\1\60\4\43\15\0\1\43\1\52\1\0\2\43" + - "\7\0\1\43\1\u01ae\1\0\1\134\1\316\3\53\1\u01ae" + - "\1\43\6\0\12\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43" + - "\1\u01ae\1\43\1\u01ae\7\43\1\135\15\0\1\43\1\53" + - "\1\0\2\43\7\0\1\43\1\u01ae\1\0\1\136\1\317" + - "\3\54\1\u01ae\1\43\6\0\12\u01ae\1\43\1\u01ae\1\43" + - "\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\137\6\43" + - "\15\0\1\43\1\54\1\0\2\43\7\0\1\43\1\u01ae" + - "\1\0\1\140\1\320\3\55\1\u01ae\1\43\6\0\12\u01ae" + - "\1\43\1\u01ae\1\53\1\u01ae\1\43\1\u01ae\1\43\1\u01ae" + - "\10\43\15\0\1\43\1\55\1\0\2\43\7\0\1\43" + - "\1\u01ae\1\0\1\147\1\321\3\60\1\u01ae\1\43\6\0" + - "\1\u01bb\11\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae" + - "\1\43\1\u01ae\10\43\15\0\1\43\1\60\1\0\2\43" + - "\7\0\1\43\1\u01ae\1\0\1\143\1\323\3\57\1\u01ae" + - "\1\43\6\0\5\u01ae\1\u01bc\4\u01ae\1\43\1\u01ae\1\43" + - "\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\5\43\1\145\1\146" + - "\1\43\15\0\1\43\1\57\1\0\2\43\7\0\1\43" + - "\1\u01ae\1\0\1\117\1\325\3\61\1\u01ae\1\43\6\0" + - "\12\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43" + - "\1\u01ae\10\43\15\0\1\43\1\61\1\0\2\43\7\0" + - "\1\43\1\u01ae\1\0\1\221\1\176\3\43\1\u01ae\1\43" + - "\6\0\12\u01ae\1\222\1\u01ae\1\43\1\u01ae\1\43\1\u01ae" + - "\1\43\1\u01ae\10\43\15\0\2\43\1\0\2\43\7\0" + - "\1\43\1\u01ae\1\0\1\246\1\176\3\43\1\u01ae\1\43" + - "\6\0\7\u01ae\1\u01bd\2\u01ae\1\43\1\u01ae\1\43\1\u01ae" + - "\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\u0164\1\0\1\117\1\176\3\43" + - "\1\u0164\1\43\6\0\2\u0164\1\u01be\1\u0164\1\u01be\5\u0164" + - "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + - "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u0164" + - "\1\0\1\117\1\176\3\43\1\u0164\1\43\6\0\7\u0164" + - "\1\u01bf\2\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + - "\1\43\1\u0164\10\43\15\0\2\43\1\0\2\43\7\0" + - "\1\43\1\u0164\1\0\1\117\1\u0124\3\125\1\u0164\1\43" + - "\6\0\12\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + - "\1\43\1\u0164\10\43\15\0\1\43\1\125\1\0\2\43" + - "\7\0\1\43\1\u0164\1\0\1\117\1\176\3\43\1\u0164" + - "\1\43\6\0\2\u0164\1\u01c0\1\u0164\1\u01c0\5\u0164\1\43" + - "\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\10\43" + - "\15\0\2\43\1\0\2\43\7\0\1\43\1\u0164\1\0" + - "\1\117\1\176\3\43\1\u0164\1\43\6\0\11\u0164\1\u01c1" + - "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + - "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u0164" + - "\1\0\1\221\1\u0128\3\127\1\u0164\1\43\6\0\12\u0164" + - "\1\222\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + - "\10\43\15\0\1\43\1\127\1\0\2\43\7\0\1\43" + - "\1\u010e\1\0\1\117\1\176\3\43\1\u010e\1\43\6\0" + - "\1\u010e\1\u01c2\1\u01c3\1\u010e\1\u01c3\5\u010e\1\43\1\u010e" + - "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43\15\0" + - "\2\43\1\0\2\43\7\0\1\43\1\u010e\1\0\1\117" + - "\1\176\3\43\1\u010e\1\43\6\0\12\u010e\1\43\1\u01c4" + - "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43\15\0" + - "\2\43\1\0\2\43\7\0\1\43\1\u010e\1\0\1\117" + - "\1\u017f\3\222\1\u010e\1\43\6\0\12\u010e\1\43\1\u010e" + - "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43\15\0" + - "\1\43\1\222\1\0\2\43\7\0\2\43\1\0\1\117" + - "\1\0\1\222\2\0\2\43\6\0\32\43\15\0\1\43" + - "\2\0\2\43\7\0\1\43\1\u0164\1\0\1\117\1\176" + - "\3\43\1\u0164\1\43\6\0\2\u0164\1\u01c5\1\u0164\1\u01c5" + - "\4\u0164\1\u01c6\1\43\1\u01c6\1\43\1\u0164\1\43\1\u0164" + - "\1\43\1\u0164\10\43\15\0\2\43\1\0\2\43\7\0" + - "\1\43\1\u0164\1\0\1\117\1\176\3\43\1\u0164\1\43" + - "\6\0\7\u0164\1\u01c7\2\u0164\1\43\1\u0164\1\43\1\u0164" + - "\1\43\1\u0164\1\43\1\u0164\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\u0164\1\0\1\117\1\176\3\43" + - "\1\u0164\1\43\6\0\12\u0164\1\43\1\u0164\1\43\1\u01c8" + - "\1\43\1\u0164\1\43\1\u0164\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\u0164\1\0\1\117\1\u0131\3\131" + - "\1\u0164\1\43\6\0\12\u0164\1\43\1\u0164\1\43\1\u0164" + - "\1\43\1\u0164\1\43\1\u0164\10\43\15\0\1\43\1\131" + - "\1\0\2\43\7\0\1\43\1\u0164\1\0\1\117\1\u0132" + - "\3\132\1\u0164\1\43\6\0\12\u0164\1\43\1\u0164\1\43" + - "\1\u0164\1\43\1\u0164\1\43\1\u0164\10\43\15\0\1\43" + - "\1\132\1\0\2\43\7\0\1\43\1\u0164\1\0\1\117" + - "\1\176\3\43\1\u0164\1\43\6\0\11\u0164\1\u01c9\1\43" + - "\1\u01c9\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\10\43" + - "\15\0\2\43\1\0\2\43\7\0\1\43\1\u016f\1\0" + - "\1\117\1\176\3\43\1\u0164\1\43\6\0\12\u0164\1\43" + - "\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\10\43" + - "\15\0\2\43\1\0\2\43\7\0\1\43\1\u0164\1\0" + - "\1\117\1\176\3\43\1\u0164\1\43\6\0\11\u0164\1\u01ca" + - "\1\43\1\u01ca\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + - "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u0164" + - "\1\0\1\117\1\176\3\43\1\u0164\1\43\6\0\1\u01cb" + - "\11\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43" + - "\1\u0164\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + - "\1\u0164\1\0\1\117\1\u0138\3\135\1\u0164\1\43\6\0" + - "\12\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43" + - "\1\u0164\10\43\15\0\1\43\1\135\1\0\2\43\7\0" + - "\1\43\1\u0164\1\0\1\117\1\176\3\43\1\u0164\1\43" + - "\6\0\2\u0164\1\u01cc\1\u0164\1\u01cc\5\u0164\1\43\1\u0164" + - "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\10\43\15\0" + - "\2\43\1\0\2\43\7\0\1\43\1\u0164\1\0\1\117" + - "\1\176\3\43\1\u0164\1\43\6\0\10\u0164\1\u01cd\1\u0164" + - "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + - "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u0164" + - "\1\0\1\117\1\u013c\3\137\1\u0164\1\43\6\0\12\u0164" + - "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + - "\10\43\15\0\1\43\1\137\1\0\2\43\7\0\1\43" + - "\1\u0164\1\0\1\117\1\176\3\43\1\u0164\1\43\6\0" + - "\2\u0164\1\u01ce\1\u0164\1\u01ce\5\u0164\1\43\1\u0164\1\43" + - "\1\u0164\1\43\1\u0164\1\43\1\u0164\10\43\15\0\2\43" + - "\1\0\2\43\7\0\1\43\1\u0164\1\0\1\117\1\176" + - "\3\43\1\u0164\1\43\6\0\12\u0164\1\43\1\u0164\1\43" + - "\1\u016c\1\43\1\u0164\1\43\1\u0164\10\43\15\0\2\43" + - "\1\0\2\43\7\0\1\43\1\u0164\1\0\1\117\1\176" + - "\3\43\1\u0164\1\43\6\0\2\u0164\1\u01cf\1\u0164\1\u01cf" + - "\4\u0164\1\u01d0\1\43\1\u01d0\1\43\1\u0164\1\43\1\u0164" + - "\1\43\1\u0164\10\43\15\0\2\43\1\0\2\43\7\0" + - "\1\43\1\u0164\1\0\1\117\1\176\3\43\1\u0164\1\43" + - "\6\0\7\u0164\1\u01d1\2\u0164\1\43\1\u0164\1\43\1\u0164" + - "\1\43\1\u0164\1\43\1\u0164\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\u0164\1\0\1\117\1\176\3\43" + - "\1\u0164\1\43\6\0\6\u0164\1\u0171\3\u0164\1\43\1\u0164" + - "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\10\43\15\0" + - "\2\43\1\0\2\43\7\0\1\43\1\u0164\1\0\1\117" + - "\1\u0143\3\142\1\u0164\1\43\6\0\12\u0164\1\43\1\u0164" + - "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\10\43\15\0" + - "\1\43\1\142\1\0\2\43\7\0\1\43\1\u0164\1\0" + - "\1\117\1\176\3\43\1\u0164\1\43\6\0\2\u0164\1\u01d2" + - "\1\u0164\1\u01d2\4\u0164\1\u01d3\1\43\1\u01d3\1\43\1\u0164" + - "\1\43\1\u0164\1\43\1\u0164\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\u0164\1\0\1\117\1\176\3\43" + - "\1\u0164\1\43\6\0\6\u0164\1\u01d4\3\u0164\1\43\1\u0164" + - "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\10\43\15\0" + - "\2\43\1\0\2\43\7\0\1\43\1\u0164\1\0\1\117" + - "\1\176\3\43\1\u0164\1\43\6\0\2\u0164\1\u01d5\7\u0164" + - "\1\43\1\u0164\1\43\1\u01d6\1\43\1\u0164\1\43\1\u0164" + - "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u0164" + - "\1\0\1\117\1\u014a\3\144\1\u0164\1\43\6\0\12\u0164" + - "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + - "\10\43\15\0\1\43\1\144\1\0\2\43\7\0\1\43" + - "\1\u0164\1\0\1\117\1\u014b\3\145\1\u0164\1\43\6\0" + - "\12\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43" + - "\1\u0164\10\43\15\0\1\43\1\145\1\0\2\43\7\0" + - "\1\43\1\u0164\1\0\1\117\1\u014c\3\146\1\u0164\1\43" + - "\6\0\12\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + - "\1\43\1\u0164\10\43\15\0\1\43\1\146\1\0\2\43" + - "\7\0\1\43\1\u0164\1\0\1\117\1\176\3\43\1\u0164" + - "\1\43\6\0\2\u0164\1\u01d7\1\u0164\1\u01d7\5\u0164\1\43" + - "\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\10\43" + - "\15\0\2\43\1\0\2\43\7\0\1\43\1\u0164\1\0" + - "\1\117\1\176\3\43\1\u0164\1\43\6\0\3\u0164\1\u01d8" + - "\6\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43" + - "\1\u0164\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + - "\1\u0164\1\0\1\246\1\u0150\3\150\1\u0164\1\43\6\0" + - "\7\u0164\1\u0175\2\u0164\1\43\1\u0164\1\43\1\u0164\1\43" + - "\1\u0164\1\43\1\u0164\10\43\15\0\1\43\1\150\1\0" + - "\2\43\7\0\1\43\1\u010e\1\0\1\117\1\176\3\43" + - "\1\u010e\1\43\6\0\1\u010e\1\u01d9\1\u01da\1\u010e\1\u01da" + - "\5\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43" + - "\1\u010e\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + - "\1\u010e\1\0\1\117\1\176\3\43\1\u010e\1\43\6\0" + - "\2\u010e\1\u01c4\7\u010e\1\43\1\u010e\1\43\1\u010e\1\43" + - "\1\u010e\1\43\1\u010e\10\43\15\0\2\43\1\0\2\43" + - "\7\0\2\2\1\0\1\41\1\152\5\2\6\0\32\2" + - "\15\0\2\2\1\0\2\2\1\42\6\0\1\10\1\u01db" + - "\1\10\1\65\1\155\3\10\1\u01db\1\10\1\66\5\10" + - "\12\u01db\1\10\1\u01db\1\10\1\u01db\1\10\1\u01db\1\10" + - "\1\u01db\41\10\1\11\1\u01dc\1\11\1\67\1\157\3\11" + - "\1\u01dc\2\11\1\66\4\11\12\u01dc\1\11\1\u01dc\1\11" + - "\1\u01dc\1\11\1\u01dc\1\11\1\u01dc\41\11\20\0\1\u01dd" + - "\62\0\1\103\1\u01de\1\0\1\104\1\257\3\103\1\u01de" + - "\1\103\6\0\12\u01de\1\103\1\u01de\1\103\1\u01de\1\103" + - "\1\u01de\1\103\1\u01de\10\103\15\0\2\103\1\0\2\103" + - "\7\0\1\105\1\u01df\1\0\1\106\1\261\3\105\1\u01df" + - "\1\105\6\0\12\u01df\1\105\1\u01df\1\105\1\u01df\1\105" + - "\1\u01df\1\105\1\u01df\10\105\15\0\2\105\1\0\2\105" + - "\7\0\2\105\1\0\1\106\4\0\2\105\6\0\1\u01e0" + - "\31\105\15\0\1\105\2\0\2\105\7\0\2\105\1\0" + - "\1\106\4\0\2\105\6\0\27\105\1\u01e1\2\105\15\0" + - "\1\105\2\0\2\105\7\0\2\105\1\0\1\106\4\0" + - "\2\105\6\0\1\u01e2\31\105\15\0\1\105\2\0\2\105" + - "\7\0\1\u0108\1\u01e3\1\0\1\u0109\1\u01a9\3\u0108\1\u01e3" + - "\1\u0108\2\0\4\u0108\12\u01e3\1\u0108\1\u01e3\1\u0108\1\u01e3" + - "\1\u0108\1\u01e3\1\u0108\1\u01e3\32\u0108\1\0\1\u010d\7\u0108" + - "\1\0\1\u0109\1\u015f\1\u0108\2\u015f\2\u0108\2\0\54\u0108" + - "\1\u015f\3\u0108\1\0\1\u010d\5\u0108\1\u010b\1\u01e4\1\u010b" + - "\1\u0162\1\u01ab\3\u010b\1\u01e4\1\u010b\1\u015f\5\u010b\12\u01e4" + - "\1\u010b\1\u01e4\1\u010b\1\u01e4\1\u010b\1\u01e4\1\u010b\1\u01e4" + - "\44\u010b\1\u0162\1\0\2\u010b\1\0\2\u010b\1\u015f\70\u010b" + - "\1\u010c\1\u01e5\1\u010c\1\u0163\1\u01ad\3\u010c\1\u01e5\2\u010c" + - "\1\u015f\4\u010c\12\u01e5\1\u010c\1\u01e5\1\u010c\1\u01e5\1\u010c" + - "\1\u01e5\1\u010c\1\u01e5\44\u010c\1\u0163\1\0\2\u010c\1\0" + - "\3\u010c\1\u015f\67\u010c\2\43\1\0\1\117\1\176\5\43" + - "\6\0\32\43\15\0\2\43\1\0\2\43\7\0\2\43" + - "\1\0\1\126\1\310\3\50\2\43\6\0\10\43\1\127" + - "\21\43\15\0\1\43\1\50\1\0\2\43\7\0\2\43" + - "\1\0\1\124\1\312\3\47\2\43\6\0\22\43\1\125" + - "\7\43\15\0\1\43\1\47\1\0\2\43\7\0\2\43" + - "\1\0\1\141\1\313\3\56\2\43\6\0\22\43\1\142" + - "\3\43\1\61\3\43\15\0\1\43\1\56\1\0\2\43" + - "\7\0\2\43\1\0\1\130\1\314\3\51\2\43\6\0" + - "\22\43\1\131\5\43\1\132\1\43\15\0\1\43\1\51" + - "\1\0\2\43\7\0\2\43\1\0\1\133\1\315\3\52" + - "\2\43\6\0\25\43\1\60\4\43\15\0\1\43\1\52" + - "\1\0\2\43\7\0\2\43\1\0\1\134\1\316\3\53" + - "\2\43\6\0\31\43\1\135\15\0\1\43\1\53\1\0" + - "\2\43\7\0\2\43\1\0\1\136\1\317\3\54\2\43" + - "\6\0\23\43\1\137\6\43\15\0\1\43\1\54\1\0" + - "\2\43\7\0\2\43\1\0\1\140\1\320\3\55\2\43" + - "\6\0\14\43\1\53\15\43\15\0\1\43\1\55\1\0" + - "\2\43\7\0\2\43\1\0\1\147\1\321\3\60\2\43" + - "\6\0\1\150\31\43\15\0\1\43\1\60\1\0\2\43" + - "\7\0\2\43\1\0\1\143\1\323\3\57\2\43\6\0" + - "\5\43\1\144\21\43\1\145\1\146\1\43\15\0\1\43" + - "\1\57\1\0\2\43\7\0\2\43\1\0\1\117\1\325" + - "\3\61\2\43\6\0\32\43\15\0\1\43\1\61\1\0" + - "\2\43\7\0\2\43\1\0\1\221\1\176\5\43\6\0" + - "\12\43\1\222\17\43\15\0\2\43\1\0\2\43\7\0" + - "\2\43\1\0\1\246\1\176\5\43\6\0\7\43\1\222" + - "\22\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u01ae" + - "\1\0\1\117\1\176\3\43\1\u01ae\1\43\6\0\7\u01ae" + - "\1\u01e6\2\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae" + - "\1\43\1\u01ae\10\43\15\0\2\43\1\0\2\43\7\0" + - "\1\43\1\u01ae\1\0\1\117\1\u0124\3\125\1\u01ae\1\43" + - "\6\0\12\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae" + - "\1\43\1\u01ae\10\43\15\0\1\43\1\125\1\0\2\43" + - "\7\0\1\43\1\u01ae\1\0\1\117\1\176\3\43\1\u01ae" + - "\1\43\6\0\11\u01ae\1\u01e7\1\43\1\u01ae\1\43\1\u01ae" + - "\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\u01ae\1\0\1\221\1\u0128\3\127" + - "\1\u01ae\1\43\6\0\12\u01ae\1\222\1\u01ae\1\43\1\u01ae" + - "\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\1\43\1\127" + - "\1\0\2\43\7\0\1\43\1\u0164\1\0\1\117\1\176" + - "\3\43\1\u0164\1\43\6\0\2\u0164\1\u01e8\1\u0164\1\u01e8" + - "\5\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43" + - "\1\u0164\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + - "\1\u0164\1\0\1\117\1\176\3\43\1\u0164\1\43\6\0" + - "\12\u0164\1\43\1\u01e9\1\43\1\u0164\1\43\1\u0164\1\43" + - "\1\u0164\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + - "\1\u0164\1\0\1\117\1\u017f\3\222\1\u0164\1\43\6\0" + - "\12\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43" + - "\1\u0164\10\43\15\0\1\43\1\222\1\0\2\43\7\0" + - "\1\43\1\u01ae\1\0\1\117\1\176\3\43\1\u01ae\1\43" + - "\6\0\7\u01ae\1\u01ea\2\u01ae\1\43\1\u01ae\1\43\1\u01ae" + - "\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\u01ae\1\0\1\117\1\176\3\43" + - "\1\u01ae\1\43\6\0\12\u01ae\1\43\1\u01ae\1\43\1\u01eb" + - "\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\u01ae\1\0\1\117\1\u0131\3\131" + - "\1\u01ae\1\43\6\0\12\u01ae\1\43\1\u01ae\1\43\1\u01ae" + - "\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\1\43\1\131" + - "\1\0\2\43\7\0\1\43\1\u01ae\1\0\1\117\1\u0132" + - "\3\132\1\u01ae\1\43\6\0\12\u01ae\1\43\1\u01ae\1\43" + - "\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\1\43" + - "\1\132\1\0\2\43\7\0\1\43\1\u01b7\1\0\1\117" + - "\1\176\3\43\1\u01ae\1\43\6\0\12\u01ae\1\43\1\u01ae" + - "\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0" + - "\2\43\1\0\2\43\7\0\1\43\1\u01ae\1\0\1\117" + - "\1\176\3\43\1\u01ae\1\43\6\0\1\u01ec\11\u01ae\1\43" + - "\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43" + - "\15\0\2\43\1\0\2\43\7\0\1\43\1\u01ae\1\0" + - "\1\117\1\u0138\3\135\1\u01ae\1\43\6\0\12\u01ae\1\43" + - "\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43" + - "\15\0\1\43\1\135\1\0\2\43\7\0\1\43\1\u01ae" + - "\1\0\1\117\1\176\3\43\1\u01ae\1\43\6\0\10\u01ae" + - "\1\u01ed\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae" + - "\1\43\1\u01ae\10\43\15\0\2\43\1\0\2\43\7\0" + - "\1\43\1\u01ae\1\0\1\117\1\u013c\3\137\1\u01ae\1\43" + - "\6\0\12\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae" + - "\1\43\1\u01ae\10\43\15\0\1\43\1\137\1\0\2\43" + - "\7\0\1\43\1\u01ae\1\0\1\117\1\176\3\43\1\u01ae" + - "\1\43\6\0\12\u01ae\1\43\1\u01ae\1\43\1\u01b4\1\43" + - "\1\u01ae\1\43\1\u01ae\10\43\15\0\2\43\1\0\2\43" + - "\7\0\1\43\1\u01ae\1\0\1\117\1\176\3\43\1\u01ae" + - "\1\43\6\0\7\u01ae\1\u01ee\2\u01ae\1\43\1\u01ae\1\43" + - "\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\2\43" + - "\1\0\2\43\7\0\1\43\1\u01ae\1\0\1\117\1\176" + - "\3\43\1\u01ae\1\43\6\0\6\u01ae\1\u01b9\3\u01ae\1\43" + - "\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43" + - "\15\0\2\43\1\0\2\43\7\0\1\43\1\u01ae\1\0" + - "\1\117\1\u0143\3\142\1\u01ae\1\43\6\0\12\u01ae\1\43" + - "\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43" + - "\15\0\1\43\1\142\1\0\2\43\7\0\1\43\1\u01ae" + - "\1\0\1\117\1\176\3\43\1\u01ae\1\43\6\0\6\u01ae" + - "\1\u01ef\3\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae" + - "\1\43\1\u01ae\10\43\15\0\2\43\1\0\2\43\7\0" + - "\1\43\1\u01ae\1\0\1\117\1\176\3\43\1\u01ae\1\43" + - "\6\0\2\u01ae\1\u01f0\7\u01ae\1\43\1\u01ae\1\43\1\u01f1" + - "\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\2\43\1\0" + - "\2\43\7\0\1\43\1\u01ae\1\0\1\117\1\u014a\3\144" + - "\1\u01ae\1\43\6\0\12\u01ae\1\43\1\u01ae\1\43\1\u01ae" + - "\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\1\43\1\144" + - "\1\0\2\43\7\0\1\43\1\u01ae\1\0\1\117\1\u014b" + - "\3\145\1\u01ae\1\43\6\0\12\u01ae\1\43\1\u01ae\1\43" + - "\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\1\43" + - "\1\145\1\0\2\43\7\0\1\43\1\u01ae\1\0\1\117" + - "\1\u014c\3\146\1\u01ae\1\43\6\0\12\u01ae\1\43\1\u01ae" + - "\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0" + - "\1\43\1\146\1\0\2\43\7\0\1\43\1\u01ae\1\0" + - "\1\117\1\176\3\43\1\u01ae\1\43\6\0\3\u01ae\1\u01f2" + - "\6\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43" + - "\1\u01ae\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + - "\1\u01ae\1\0\1\246\1\u0150\3\150\1\u01ae\1\43\6\0" + - "\7\u01ae\1\u01bd\2\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43" + - "\1\u01ae\1\43\1\u01ae\10\43\15\0\1\43\1\150\1\0" + - "\2\43\7\0\1\43\1\u0164\1\0\1\117\1\176\3\43" + - "\1\u0164\1\43\6\0\2\u0164\1\u01f3\1\u0164\1\u01f3\5\u0164" + - "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + - "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u0164" + - "\1\0\1\117\1\176\3\43\1\u0164\1\43\6\0\2\u0164" + - "\1\u01e9\7\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + - "\1\43\1\u0164\10\43\15\0\2\43\1\0\2\43\7\0" + - "\3\10\1\65\1\155\5\10\1\66\70\10\3\11\1\67" + - "\1\157\6\11\1\66\67\11\43\0\1\u01f4\37\0\2\103" + - "\1\0\1\104\1\257\5\103\6\0\32\103\15\0\2\103" + - "\1\0\2\103\7\0\2\105\1\0\1\106\1\261\5\105" + - "\6\0\32\105\15\0\2\105\1\0\2\105\7\0\2\105" + - "\1\0\1\106\4\0\2\105\6\0\5\105\1\u01f5\24\105" + - "\15\0\1\105\2\0\2\105\7\0\2\105\1\0\1\106" + - "\4\0\2\105\6\0\32\105\15\0\1\105\1\u01f6\1\0" + - "\2\105\7\0\2\105\1\0\1\106\4\0\2\105\6\0" + - "\5\105\1\u01f7\24\105\15\0\1\105\2\0\2\105\7\0" + - "\1\u0108\1\u01f8\1\0\1\u0109\1\u01a9\3\u0108\1\u01f8\1\u0108" + - "\2\0\4\u0108\12\u01f8\1\u0108\1\u01f8\1\u0108\1\u01f8\1\u0108" + - "\1\u01f8\1\u0108\1\u01f8\32\u0108\1\0\1\u010d\5\u0108\1\u010b" + - "\1\u01f9\1\u010b\1\u0162\1\u01ab\3\u010b\1\u01f9\1\u010b\1\u015f" + - "\5\u010b\12\u01f9\1\u010b\1\u01f9\1\u010b\1\u01f9\1\u010b\1\u01f9" + - "\1\u010b\1\u01f9\41\u010b\1\u010c\1\u01fa\1\u010c\1\u0163\1\u01ad" + - "\3\u010c\1\u01fa\2\u010c\1\u015f\4\u010c\12\u01fa\1\u010c\1\u01fa" + - "\1\u010c\1\u01fa\1\u010c\1\u01fa\1\u010c\1\u01fa\41\u010c\2\43" + - "\1\0\1\117\1\u0124\3\125\2\43\6\0\32\43\15\0" + - "\1\43\1\125\1\0\2\43\7\0\2\43\1\0\1\221" + - "\1\u0128\3\127\2\43\6\0\12\43\1\222\17\43\15\0" + - "\1\43\1\127\1\0\2\43\7\0\1\43\1\u01ae\1\0" + - "\1\117\1\176\3\43\1\u01ae\1\43\6\0\12\u01ae\1\43" + - "\1\u01fb\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43" + - "\15\0\2\43\1\0\2\43\7\0\1\43\1\u01ae\1\0" + - "\1\117\1\u017f\3\222\1\u01ae\1\43\6\0\12\u01ae\1\43" + - "\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43" + - "\15\0\1\43\1\222\1\0\2\43\7\0\2\43\1\0" + - "\1\117\1\u0131\3\131\2\43\6\0\32\43\15\0\1\43" + - "\1\131\1\0\2\43\7\0\2\43\1\0\1\117\1\u0132" + - "\3\132\2\43\6\0\32\43\15\0\1\43\1\132\1\0" + - "\2\43\7\0\2\43\1\0\1\117\1\u0138\3\135\2\43" + - "\6\0\32\43\15\0\1\43\1\135\1\0\2\43\7\0" + - "\2\43\1\0\1\117\1\u013c\3\137\2\43\6\0\32\43" + - "\15\0\1\43\1\137\1\0\2\43\7\0\2\43\1\0" + - "\1\117\1\u0143\3\142\2\43\6\0\32\43\15\0\1\43" + - "\1\142\1\0\2\43\7\0\2\43\1\0\1\117\1\u014a" + - "\3\144\2\43\6\0\32\43\15\0\1\43\1\144\1\0" + - "\2\43\7\0\2\43\1\0\1\117\1\u014b\3\145\2\43" + - "\6\0\32\43\15\0\1\43\1\145\1\0\2\43\7\0" + - "\2\43\1\0\1\117\1\u014c\3\146\2\43\6\0\32\43" + - "\15\0\1\43\1\146\1\0\2\43\7\0\2\43\1\0" + - "\1\246\1\u0150\3\150\2\43\6\0\7\43\1\222\22\43" + - "\15\0\1\43\1\150\1\0\2\43\7\0\1\43\1\u01ae" + - "\1\0\1\117\1\176\3\43\1\u01ae\1\43\6\0\2\u01ae" + - "\1\u01fb\7\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae" + - "\1\43\1\u01ae\10\43\15\0\2\43\1\0\2\43\56\0" + - "\1\u01fc\33\0\2\105\1\0\1\106\4\0\2\105\6\0" + - "\10\105\1\u01fd\21\105\15\0\1\105\2\0\2\105\7\0" + - "\2\105\1\0\1\106\4\0\2\105\6\0\10\105\1\u01fe" + - "\21\105\15\0\1\105\2\0\2\105\7\0\1\u0108\1\u01ff" + - "\1\0\1\u0109\1\u01a9\3\u0108\1\u01ff\1\u0108\2\0\4\u0108" + - "\12\u01ff\1\u0108\1\u01ff\1\u0108\1\u01ff\1\u0108\1\u01ff\1\u0108" + - "\1\u01ff\32\u0108\1\0\1\u010d\5\u0108\1\u010b\1\u0200\1\u010b" + - "\1\u0162\1\u01ab\3\u010b\1\u0200\1\u010b\1\u015f\5\u010b\12\u0200" + - "\1\u010b\1\u0200\1\u010b\1\u0200\1\u010b\1\u0200\1\u010b\1\u0200" + - "\41\u010b\1\u010c\1\u0201\1\u010c\1\u0163\1\u01ad\3\u010c\1\u0201" + - "\2\u010c\1\u015f\4\u010c\12\u0201\1\u010c\1\u0201\1\u010c\1\u0201" + - "\1\u010c\1\u0201\1\u010c\1\u0201\41\u010c\2\43\1\0\1\117" + - "\1\u017f\3\222\2\43\6\0\32\43\15\0\1\43\1\222" + - "\1\0\2\43\7\0\1\u0108\1\u0202\1\0\1\u0109\1\u01a9" + - "\3\u0108\1\u0202\1\u0108\2\0\4\u0108\12\u0202\1\u0108\1\u0202" + - "\1\u0108\1\u0202\1\u0108\1\u0202\1\u0108\1\u0202\32\u0108\1\0" + - "\1\u010d\5\u0108\1\u010b\1\u0203\1\u010b\1\u0162\1\u01ab\3\u010b" + - "\1\u0203\1\u010b\1\u015f\5\u010b\12\u0203\1\u010b\1\u0203\1\u010b" + - "\1\u0203\1\u010b\1\u0203\1\u010b\1\u0203\41\u010b\1\u010c\1\u0204" + - "\1\u010c\1\u0163\1\u01ad\3\u010c\1\u0204\2\u010c\1\u015f\4\u010c" + - "\12\u0204\1\u010c\1\u0204\1\u010c\1\u0204\1\u010c\1\u0204\1\u010c" + - "\1\u0204\41\u010c\2\u0108\1\0\1\u0109\1\u01a9\5\u0108\2\0" + - "\60\u0108\1\0\1\u010d\5\u0108\1\u010b\1\u0205\1\u010b\1\u0162" + - "\1\u01ab\3\u010b\1\u0205\1\u010b\1\u015f\5\u010b\12\u0205\1\u010b" + - "\1\u0205\1\u010b\1\u0205\1\u010b\1\u0205\1\u010b\1\u0205\41\u010b" + - "\1\u010c\1\u0206\1\u010c\1\u0163\1\u01ad\3\u010c\1\u0206\2\u010c" + - "\1\u015f\4\u010c\12\u0206\1\u010c\1\u0206\1\u010c\1\u0206\1\u010c" + - "\1\u0206\1\u010c\1\u0206\41\u010c\3\u010b\1\u0162\1\u01ab\5\u010b" + - "\1\u015f\70\u010b\3\u010c\1\u0163\1\u01ad\6\u010c\1\u015f\67\u010c"; + "\1\2\1\3\1\4\1\5\4\6\1\2\1\7\1\10" + + "\1\11\1\12\1\13\1\14\1\4\1\2\4\3\1\2" + + "\1\3\2\2\1\3\1\2\1\3\1\2\1\3\1\2" + + "\1\3\12\2\1\15\1\16\1\17\1\20\1\21\1\22" + + "\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\2" + + "\1\6\1\4\1\32\1\2\1\4\1\33\1\34\1\35" + + "\1\36\1\37\1\40\2\2\1\0\1\41\4\0\2\2" + + "\6\0\32\2\15\0\1\2\2\0\2\2\1\42\6\0" + + "\1\43\1\3\1\0\1\44\4\0\1\43\1\45\4\0" + + "\1\46\1\0\1\43\4\3\1\47\1\3\1\50\1\51" + + "\1\3\1\52\1\3\1\53\1\3\1\54\1\3\1\55" + + "\1\43\1\56\1\43\1\57\1\60\1\61\3\43\15\0" + + "\1\43\1\0\1\62\2\43\112\0\1\2\1\63\2\2" + + "\2\0\1\2\1\0\1\63\7\2\12\63\1\2\1\63" + + "\1\2\1\63\1\2\1\63\1\2\1\63\41\2\4\0" + + "\4\6\44\0\1\17\5\0\1\25\1\26\1\27\3\0" + + "\1\6\12\0\1\2\2\0\1\41\4\0\1\2\1\64" + + "\6\0\1\2\4\0\1\2\1\0\2\2\1\0\1\2" + + "\1\0\1\2\1\0\1\2\1\0\12\2\15\0\1\2" + + "\2\0\2\2\7\0\3\10\1\65\2\0\1\10\1\0" + + "\2\10\1\66\70\10\3\11\1\67\2\0\1\11\1\0" + + "\3\11\1\66\67\11\15\0\1\70\143\0\1\71\25\0" + + "\1\72\17\0\4\72\1\0\1\72\2\0\1\72\1\0" + + "\1\72\1\0\1\72\1\0\1\72\116\0\1\73\33\0" + + "\4\74\4\0\1\75\21\0\1\76\31\0\1\74\70\0" + + "\1\77\102\0\1\100\102\0\1\101\102\0\1\102\24\0" + + "\2\103\1\0\1\104\4\0\2\103\6\0\32\103\15\0" + + "\1\103\2\0\2\103\7\0\1\105\2\0\1\106\4\0" + + "\1\107\1\110\6\0\1\105\4\0\1\111\1\0\2\105" + + "\1\0\1\105\1\0\1\105\1\0\1\112\1\0\2\105" + + "\1\113\1\114\1\115\5\105\15\0\1\105\2\0\2\105" + + "\7\0\2\2\1\0\1\41\4\0\2\2\6\0\25\2" + + "\1\116\4\2\15\0\1\2\2\0\2\2\1\42\6\0" + + "\2\43\1\0\1\117\4\0\2\43\6\0\32\43\15\0" + + "\1\43\2\0\2\43\7\0\1\43\1\120\2\43\2\0" + + "\1\43\1\0\1\120\7\43\1\120\1\121\1\122\1\120" + + "\1\122\4\120\1\123\1\52\1\123\1\53\1\120\1\54" + + "\1\120\1\55\1\120\1\56\1\43\1\57\1\60\1\61" + + "\35\43\2\0\1\117\4\0\1\43\7\0\1\43\4\0" + + "\1\43\1\0\2\43\1\0\1\43\1\0\1\43\1\0" + + "\1\43\1\0\12\43\15\0\1\43\2\0\2\43\7\0" + + "\2\43\1\0\1\124\4\0\2\43\6\0\22\43\1\125" + + "\7\43\15\0\1\43\2\0\2\43\7\0\2\43\1\0" + + "\1\126\4\0\2\43\6\0\10\43\1\127\21\43\15\0" + + "\1\43\2\0\2\43\7\0\2\43\1\0\1\130\4\0" + + "\2\43\6\0\22\43\1\131\5\43\1\132\1\43\15\0" + + "\1\43\2\0\2\43\7\0\2\43\1\0\1\133\4\0" + + "\2\43\6\0\25\43\1\60\4\43\15\0\1\43\2\0" + + "\2\43\7\0\2\43\1\0\1\134\4\0\2\43\6\0" + + "\31\43\1\135\15\0\1\43\2\0\2\43\7\0\2\43" + + "\1\0\1\136\4\0\2\43\6\0\23\43\1\137\6\43" + + "\15\0\1\43\2\0\2\43\7\0\2\43\1\0\1\140" + + "\4\0\2\43\6\0\14\43\1\53\15\43\15\0\1\43" + + "\2\0\2\43\7\0\2\43\1\0\1\141\4\0\2\43" + + "\6\0\22\43\1\142\3\43\1\61\3\43\15\0\1\43" + + "\2\0\2\43\7\0\2\43\1\0\1\143\4\0\2\43" + + "\6\0\5\43\1\144\21\43\1\145\1\146\1\43\15\0" + + "\1\43\2\0\2\43\7\0\2\43\1\0\1\147\4\0" + + "\2\43\6\0\1\150\31\43\15\0\1\43\2\0\2\43" + + "\7\0\1\2\1\151\1\0\1\41\1\152\3\2\1\151" + + "\1\2\6\0\12\151\1\2\1\151\1\2\1\151\1\2" + + "\1\151\1\2\1\151\10\2\15\0\2\2\1\0\2\2" + + "\1\42\62\0\1\153\26\0\1\10\1\154\2\10\1\155" + + "\3\10\1\154\7\10\12\154\1\10\1\154\1\10\1\154" + + "\1\10\1\154\1\10\1\154\41\10\1\11\1\156\2\11" + + "\1\157\3\11\1\156\7\11\12\156\1\11\1\156\1\11" + + "\1\156\1\11\1\156\1\11\1\156\41\11\15\70\1\160" + + "\65\70\1\43\1\72\1\0\1\44\4\0\1\43\1\45" + + "\6\0\1\43\4\72\1\47\1\72\1\50\1\51\1\72" + + "\1\52\1\72\1\53\1\72\1\54\1\72\1\55\1\43" + + "\1\56\1\43\1\57\1\60\1\61\3\43\15\0\1\43" + + "\1\0\1\62\2\43\20\0\1\161\106\0\1\162\127\0" + + "\1\163\40\0\1\103\1\164\2\103\2\0\1\103\1\0" + + "\1\164\7\103\12\164\1\103\1\164\1\103\1\164\1\103" + + "\1\164\1\103\1\164\41\103\2\105\1\0\1\106\4\0" + + "\2\105\6\0\32\105\15\0\1\105\2\0\2\105\7\0" + + "\1\105\1\165\2\105\2\0\1\105\1\0\1\165\7\105" + + "\12\165\1\105\1\165\1\105\1\165\1\105\1\165\1\105" + + "\1\165\43\105\1\0\1\106\4\0\2\105\6\0\32\105" + + "\15\0\1\166\2\0\2\105\7\0\1\105\2\0\1\106" + + "\4\0\1\105\7\0\1\105\4\0\1\105\1\0\2\105" + + "\1\0\1\105\1\0\1\105\1\0\1\105\1\0\12\105" + + "\15\0\1\105\2\0\2\105\7\0\2\105\1\0\1\106" + + "\4\0\2\105\6\0\14\105\1\167\15\105\15\0\1\105" + + "\2\0\2\105\7\0\2\105\1\0\1\106\4\0\2\105" + + "\6\0\22\105\1\170\7\105\15\0\1\105\2\0\2\105" + + "\7\0\2\105\1\0\1\106\4\0\2\105\6\0\10\105" + + "\1\171\21\105\15\0\1\105\2\0\2\105\7\0\2\105" + + "\1\0\1\106\4\0\2\105\6\0\1\172\31\105\15\0" + + "\1\105\2\0\2\105\7\0\2\105\1\0\1\106\4\0" + + "\2\105\6\0\1\173\31\105\15\0\1\105\2\0\2\105" + + "\7\0\2\2\1\0\1\41\4\0\2\2\6\0\32\2" + + "\15\0\1\2\2\0\1\2\1\174\1\42\6\0\1\43" + + "\1\120\2\43\2\0\1\43\1\0\1\120\7\43\12\120" + + "\1\43\1\120\1\43\1\120\1\43\1\120\1\43\1\120" + + "\42\43\1\175\1\0\1\117\1\176\3\43\1\175\1\43" + + "\6\0\12\175\1\43\1\175\1\43\1\175\1\43\1\175" + + "\1\43\1\175\10\43\15\0\2\43\1\0\2\43\7\0" + + "\1\43\1\175\1\0\1\117\1\176\3\43\1\175\1\43" + + "\6\0\1\175\1\177\1\200\1\175\1\200\4\175\1\201" + + "\1\43\1\201\1\43\1\175\1\43\1\175\1\43\1\175" + + "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\175" + + "\1\0\1\117\1\176\3\43\1\175\1\43\6\0\2\175" + + "\1\202\3\175\1\203\1\204\1\175\1\205\1\43\1\206" + + "\1\43\1\207\1\43\1\210\1\43\1\211\10\43\15\0" + + "\2\43\1\0\2\43\7\0\1\43\1\212\1\0\1\117" + + "\1\176\3\43\1\175\1\43\6\0\1\175\1\213\4\175" + + "\1\214\3\175\1\43\1\175\1\43\1\175\1\43\1\175" + + "\1\43\1\175\10\43\15\0\2\43\1\0\2\43\7\0" + + "\1\43\1\120\2\43\2\0\1\43\1\0\1\120\7\43" + + "\1\120\1\215\1\216\1\120\1\216\5\120\1\43\1\120" + + "\1\43\1\120\1\43\1\120\1\43\1\120\1\125\41\43" + + "\1\120\2\43\2\0\1\43\1\0\1\120\7\43\1\120" + + "\1\217\1\220\1\120\1\220\5\120\1\43\1\120\1\43" + + "\1\120\1\43\1\120\1\43\1\120\43\43\1\0\1\221" + + "\4\0\2\43\6\0\12\43\1\222\17\43\15\0\1\43" + + "\2\0\2\43\7\0\1\43\1\120\2\43\2\0\1\43" + + "\1\0\1\120\7\43\1\120\1\223\1\224\1\120\1\224" + + "\4\120\1\225\1\43\1\225\1\43\1\120\1\43\1\120" + + "\1\43\1\120\1\131\5\43\1\132\33\43\1\120\2\43" + + "\2\0\1\43\1\0\1\120\7\43\1\120\1\226\7\120" + + "\1\227\1\43\1\227\1\43\1\120\1\43\1\120\1\43" + + "\1\120\3\43\1\60\36\43\1\120\2\43\2\0\1\43" + + "\1\0\1\120\7\43\1\120\1\230\7\120\1\231\1\43" + + "\1\231\1\43\1\120\1\43\1\120\1\43\1\120\7\43" + + "\1\135\32\43\1\120\2\43\2\0\1\43\1\0\1\120" + + "\7\43\1\120\1\232\1\233\1\120\1\233\5\120\1\43" + + "\1\120\1\43\1\120\1\43\1\120\1\43\1\120\1\43" + + "\1\137\40\43\1\120\2\43\2\0\1\43\1\0\1\120" + + "\7\43\1\120\1\234\1\235\1\120\1\235\5\120\1\43" + + "\1\120\1\53\1\120\1\43\1\120\1\43\1\120\42\43" + + "\1\120\2\43\2\0\1\43\1\0\1\120\7\43\1\120" + + "\1\236\1\237\1\120\1\237\4\120\1\240\1\43\1\240" + + "\1\43\1\120\1\43\1\120\1\43\1\120\1\142\3\43" + + "\1\61\35\43\1\120\2\43\2\0\1\43\1\0\1\120" + + "\7\43\1\120\1\241\1\242\1\120\1\242\4\120\1\243" + + "\1\43\1\243\1\43\1\120\1\43\1\120\1\43\1\120" + + "\5\43\1\145\1\146\33\43\1\120\2\43\2\0\1\43" + + "\1\0\1\120\7\43\1\120\1\244\1\245\1\120\1\245" + + "\5\120\1\43\1\120\1\43\1\120\1\43\1\120\1\43" + + "\1\120\43\43\1\0\1\246\4\0\2\43\6\0\7\43" + + "\1\222\22\43\15\0\1\43\2\0\2\43\7\0\1\2" + + "\1\247\1\0\1\41\1\152\3\2\1\247\1\2\6\0" + + "\12\247\1\2\1\247\1\2\1\247\1\2\1\247\1\2" + + "\1\247\10\2\15\0\2\2\1\0\2\2\1\42\6\0" + + "\2\2\1\0\1\41\1\0\1\2\2\0\2\2\6\0" + + "\32\2\15\0\1\2\2\0\2\2\1\42\6\0\1\10" + + "\1\250\1\10\1\65\1\155\3\10\1\250\1\10\1\66" + + "\5\10\12\250\1\10\1\250\1\10\1\250\1\10\1\250" + + "\1\10\1\250\44\10\1\65\1\0\2\10\1\0\2\10" + + "\1\66\70\10\1\11\1\251\1\11\1\67\1\157\3\11" + + "\1\251\2\11\1\66\4\11\12\251\1\11\1\251\1\11" + + "\1\251\1\11\1\251\1\11\1\251\44\11\1\67\1\0" + + "\2\11\1\0\3\11\1\66\67\11\14\70\1\252\1\160" + + "\65\70\11\0\1\253\71\0\15\162\1\254\65\162\44\0" + + "\1\255\36\0\1\103\1\256\1\0\1\104\1\257\3\103" + + "\1\256\1\103\6\0\12\256\1\103\1\256\1\103\1\256" + + "\1\103\1\256\1\103\1\256\10\103\15\0\2\103\1\0" + + "\2\103\7\0\1\105\1\260\1\0\1\106\1\261\3\105" + + "\1\260\1\105\6\0\12\260\1\105\1\260\1\105\1\260" + + "\1\105\1\260\1\105\1\260\10\105\15\0\2\105\1\0" + + "\2\105\7\0\2\105\1\0\1\106\4\0\2\105\6\0" + + "\23\105\1\262\6\105\15\0\1\105\2\0\2\105\7\0" + + "\2\105\1\0\1\106\4\0\2\105\6\0\1\263\31\105" + + "\15\0\1\105\2\0\2\105\7\0\2\105\1\0\1\106" + + "\4\0\2\105\6\0\24\105\1\264\5\105\15\0\1\105" + + "\2\0\2\105\7\0\2\105\1\0\1\106\4\0\2\105" + + "\6\0\7\105\1\265\22\105\15\0\1\105\2\0\2\105" + + "\7\0\2\105\1\0\1\106\4\0\2\105\6\0\22\105" + + "\1\266\7\105\15\0\1\105\2\0\2\105\7\0\2\105" + + "\1\0\1\106\4\0\2\105\6\0\12\105\1\267\17\105" + + "\15\0\1\105\2\0\2\105\7\0\2\2\1\0\1\41" + + "\4\0\2\2\6\0\32\2\15\0\1\2\2\0\2\2" + + "\1\270\6\0\1\43\1\271\1\0\1\117\1\176\3\43" + + "\1\271\1\43\6\0\12\271\1\43\1\271\1\43\1\271" + + "\1\43\1\271\1\43\1\271\10\43\15\0\2\43\1\0" + + "\2\43\7\0\2\43\1\0\1\117\1\0\1\43\2\0" + + "\2\43\6\0\32\43\15\0\1\43\2\0\2\43\7\0" + + "\1\43\1\271\1\0\1\117\1\176\3\43\1\271\1\43" + + "\6\0\1\271\1\272\1\273\1\271\1\273\4\271\1\274" + + "\1\43\1\274\1\43\1\271\1\43\1\271\1\43\1\271" + + "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\271" + + "\1\0\1\117\1\176\3\43\1\271\1\43\6\0\2\271" + + "\1\275\3\271\1\276\1\277\1\271\1\300\1\43\1\301" + + "\1\43\1\302\1\43\1\303\1\43\1\304\10\43\15\0" + + "\2\43\1\0\2\43\7\0\1\43\1\305\1\0\1\117" + + "\1\176\3\43\1\271\1\43\6\0\1\271\1\306\4\271" + + "\1\307\3\271\1\43\1\271\1\43\1\271\1\43\1\271" + + "\1\43\1\271\10\43\15\0\2\43\1\0\2\43\7\0" + + "\1\43\1\271\1\0\1\126\1\310\3\50\1\271\1\43" + + "\6\0\10\271\1\311\1\271\1\43\1\271\1\43\1\271" + + "\1\43\1\271\1\43\1\271\10\43\15\0\1\43\1\50" + + "\1\0\2\43\7\0\1\43\1\271\1\0\1\124\1\312" + + "\3\47\1\271\1\43\6\0\12\271\1\43\1\271\1\43" + + "\1\271\1\43\1\271\1\43\1\271\1\125\7\43\15\0" + + "\1\43\1\47\1\0\2\43\7\0\1\43\1\271\1\0" + + "\1\141\1\313\3\56\1\271\1\43\6\0\12\271\1\43" + + "\1\271\1\43\1\271\1\43\1\271\1\43\1\271\1\142" + + "\3\43\1\61\3\43\15\0\1\43\1\56\1\0\2\43" + + "\7\0\1\43\1\271\1\0\1\130\1\314\3\51\1\271" + + "\1\43\6\0\12\271\1\43\1\271\1\43\1\271\1\43" + + "\1\271\1\43\1\271\1\131\5\43\1\132\1\43\15\0" + + "\1\43\1\51\1\0\2\43\7\0\1\43\1\271\1\0" + + "\1\133\1\315\3\52\1\271\1\43\6\0\12\271\1\43" + + "\1\271\1\43\1\271\1\43\1\271\1\43\1\271\3\43" + + "\1\60\4\43\15\0\1\43\1\52\1\0\2\43\7\0" + + "\1\43\1\271\1\0\1\134\1\316\3\53\1\271\1\43" + + "\6\0\12\271\1\43\1\271\1\43\1\271\1\43\1\271" + + "\1\43\1\271\7\43\1\135\15\0\1\43\1\53\1\0" + + "\2\43\7\0\1\43\1\271\1\0\1\136\1\317\3\54" + + "\1\271\1\43\6\0\12\271\1\43\1\271\1\43\1\271" + + "\1\43\1\271\1\43\1\271\1\43\1\137\6\43\15\0" + + "\1\43\1\54\1\0\2\43\7\0\1\43\1\271\1\0" + + "\1\140\1\320\3\55\1\271\1\43\6\0\12\271\1\43" + + "\1\271\1\53\1\271\1\43\1\271\1\43\1\271\10\43" + + "\15\0\1\43\1\55\1\0\2\43\7\0\1\43\1\271" + + "\1\0\1\147\1\321\3\60\1\271\1\43\6\0\1\322" + + "\11\271\1\43\1\271\1\43\1\271\1\43\1\271\1\43" + + "\1\271\10\43\15\0\1\43\1\60\1\0\2\43\7\0" + + "\1\43\1\271\1\0\1\143\1\323\3\57\1\271\1\43" + + "\6\0\5\271\1\324\4\271\1\43\1\271\1\43\1\271" + + "\1\43\1\271\1\43\1\271\5\43\1\145\1\146\1\43" + + "\15\0\1\43\1\57\1\0\2\43\7\0\1\43\1\271" + + "\1\0\1\117\1\325\3\61\1\271\1\43\6\0\12\271" + + "\1\43\1\271\1\43\1\271\1\43\1\271\1\43\1\271" + + "\10\43\15\0\1\43\1\61\1\0\2\43\7\0\1\43" + + "\1\175\1\0\1\117\1\176\3\43\1\175\1\43\6\0" + + "\1\175\1\326\1\327\1\175\1\327\5\175\1\43\1\175" + + "\1\43\1\175\1\43\1\175\1\43\1\175\10\43\15\0" + + "\2\43\1\0\2\43\7\0\1\43\1\175\1\0\1\117" + + "\1\176\3\43\1\175\1\43\6\0\7\175\1\330\2\175" + + "\1\43\1\175\1\43\1\175\1\43\1\175\1\43\1\175" + + "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\175" + + "\1\0\1\117\1\176\3\43\1\175\1\43\6\0\1\175" + + "\1\331\1\332\1\175\1\332\5\175\1\43\1\175\1\43" + + "\1\175\1\43\1\175\1\43\1\175\10\43\15\0\2\43" + + "\1\0\2\43\7\0\1\43\1\175\1\0\1\117\1\176" + + "\3\43\1\175\1\43\6\0\11\175\1\333\1\43\1\175" + + "\1\43\1\175\1\43\1\175\1\43\1\175\10\43\15\0" + + "\2\43\1\0\2\43\7\0\1\43\1\120\2\43\2\0" + + "\1\43\1\0\1\120\7\43\1\120\1\334\1\335\1\120" + + "\1\335\5\120\1\222\1\120\1\43\1\120\1\43\1\120" + + "\1\43\1\120\42\43\1\175\1\0\1\117\1\176\3\43" + + "\1\175\1\43\6\0\1\175\1\336\1\337\1\175\1\337" + + "\4\175\1\340\1\43\1\340\1\43\1\175\1\43\1\175" + + "\1\43\1\175\10\43\15\0\2\43\1\0\2\43\7\0" + + "\1\43\1\175\1\0\1\117\1\176\3\43\1\175\1\43" + + "\6\0\7\175\1\341\2\175\1\43\1\175\1\43\1\175" + + "\1\43\1\175\1\43\1\175\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\175\1\0\1\117\1\176\3\43" + + "\1\175\1\43\6\0\12\175\1\43\1\175\1\43\1\342" + + "\1\43\1\175\1\43\1\175\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\175\1\0\1\117\1\176\3\43" + + "\1\175\1\43\6\0\1\175\1\343\7\175\1\344\1\43" + + "\1\344\1\43\1\175\1\43\1\175\1\43\1\175\10\43" + + "\15\0\2\43\1\0\2\43\7\0\1\43\1\212\1\0" + + "\1\117\1\176\3\43\1\175\1\43\6\0\12\175\1\43" + + "\1\175\1\43\1\175\1\43\1\175\1\43\1\175\10\43" + + "\15\0\2\43\1\0\2\43\7\0\1\43\1\175\1\0" + + "\1\117\1\176\3\43\1\175\1\43\6\0\1\175\1\345" + + "\7\175\1\346\1\43\1\346\1\43\1\175\1\43\1\175" + + "\1\43\1\175\10\43\15\0\2\43\1\0\2\43\7\0" + + "\1\43\1\175\1\0\1\117\1\176\3\43\1\175\1\43" + + "\6\0\1\347\11\175\1\43\1\175\1\43\1\175\1\43" + + "\1\175\1\43\1\175\10\43\15\0\2\43\1\0\2\43" + + "\7\0\1\43\1\175\1\0\1\117\1\176\3\43\1\175" + + "\1\43\6\0\1\175\1\350\1\351\1\175\1\351\5\175" + + "\1\43\1\175\1\43\1\175\1\43\1\175\1\43\1\175" + + "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\175" + + "\1\0\1\117\1\176\3\43\1\175\1\43\6\0\10\175" + + "\1\352\1\175\1\43\1\175\1\43\1\175\1\43\1\175" + + "\1\43\1\175\10\43\15\0\2\43\1\0\2\43\7\0" + + "\1\43\1\175\1\0\1\117\1\176\3\43\1\175\1\43" + + "\6\0\1\175\1\353\1\354\1\175\1\354\5\175\1\43" + + "\1\175\1\43\1\175\1\43\1\175\1\43\1\175\10\43" + + "\15\0\2\43\1\0\2\43\7\0\1\43\1\175\1\0" + + "\1\117\1\176\3\43\1\175\1\43\6\0\12\175\1\43" + + "\1\175\1\43\1\207\1\43\1\175\1\43\1\175\10\43" + + "\15\0\2\43\1\0\2\43\7\0\1\43\1\175\1\0" + + "\1\117\1\176\3\43\1\175\1\43\6\0\1\175\1\355" + + "\1\356\1\175\1\356\4\175\1\357\1\43\1\357\1\43" + + "\1\175\1\43\1\175\1\43\1\175\10\43\15\0\2\43" + + "\1\0\2\43\7\0\1\43\1\175\1\0\1\117\1\176" + + "\3\43\1\175\1\43\6\0\7\175\1\360\2\175\1\43" + + "\1\175\1\43\1\175\1\43\1\175\1\43\1\175\10\43" + + "\15\0\2\43\1\0\2\43\7\0\1\43\1\175\1\0" + + "\1\117\1\176\3\43\1\175\1\43\6\0\6\175\1\214" + + "\3\175\1\43\1\175\1\43\1\175\1\43\1\175\1\43" + + "\1\175\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + + "\1\175\1\0\1\117\1\176\3\43\1\175\1\43\6\0" + + "\1\175\1\361\1\362\1\175\1\362\4\175\1\363\1\43" + + "\1\363\1\43\1\175\1\43\1\175\1\43\1\175\10\43" + + "\15\0\2\43\1\0\2\43\7\0\1\43\1\175\1\0" + + "\1\117\1\176\3\43\1\175\1\43\6\0\6\175\1\364" + + "\3\175\1\43\1\175\1\43\1\175\1\43\1\175\1\43" + + "\1\175\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + + "\1\175\1\0\1\117\1\176\3\43\1\175\1\43\6\0" + + "\2\175\1\365\7\175\1\43\1\175\1\43\1\366\1\43" + + "\1\175\1\43\1\175\10\43\15\0\2\43\1\0\2\43" + + "\7\0\1\43\1\175\1\0\1\117\1\176\3\43\1\175" + + "\1\43\6\0\1\175\1\367\1\370\1\175\1\370\5\175" + + "\1\43\1\175\1\43\1\175\1\43\1\175\1\43\1\175" + + "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\175" + + "\1\0\1\117\1\176\3\43\1\175\1\43\6\0\3\175" + + "\1\371\6\175\1\43\1\175\1\43\1\175\1\43\1\175" + + "\1\43\1\175\10\43\15\0\2\43\1\0\2\43\7\0" + + "\1\43\1\120\2\43\2\0\1\43\1\0\1\120\7\43" + + "\1\120\1\372\1\373\1\120\1\373\5\120\1\43\1\120" + + "\1\43\1\120\1\43\1\120\1\43\1\120\41\43\1\2" + + "\1\374\1\0\1\41\1\152\3\2\1\374\1\2\6\0" + + "\12\374\1\2\1\374\1\2\1\374\1\2\1\374\1\2" + + "\1\374\10\2\15\0\2\2\1\0\2\2\1\42\6\0" + + "\1\10\1\375\1\10\1\65\1\155\3\10\1\375\1\10" + + "\1\66\5\10\12\375\1\10\1\375\1\10\1\375\1\10" + + "\1\375\1\10\1\375\41\10\1\11\1\376\1\11\1\67" + + "\1\157\3\11\1\376\2\11\1\66\4\11\12\376\1\11" + + "\1\376\1\11\1\376\1\11\1\376\1\11\1\376\41\11" + + "\14\162\1\74\1\254\65\162\67\0\1\377\13\0\1\103" + + "\1\u0100\1\0\1\104\1\257\3\103\1\u0100\1\103\6\0" + + "\12\u0100\1\103\1\u0100\1\103\1\u0100\1\103\1\u0100\1\103" + + "\1\u0100\10\103\15\0\2\103\1\0\2\103\7\0\2\103" + + "\1\0\1\104\1\0\1\103\2\0\2\103\6\0\32\103" + + "\15\0\1\103\2\0\2\103\7\0\1\105\1\u0101\1\0" + + "\1\106\1\261\3\105\1\u0101\1\105\6\0\12\u0101\1\105" + + "\1\u0101\1\105\1\u0101\1\105\1\u0101\1\105\1\u0101\10\105" + + "\15\0\2\105\1\0\2\105\7\0\2\105\1\0\1\106" + + "\1\0\1\105\2\0\2\105\6\0\32\105\15\0\1\105" + + "\2\0\2\105\7\0\2\105\1\0\1\106\4\0\2\105" + + "\6\0\27\105\1\u0102\2\105\15\0\1\105\2\0\2\105" + + "\7\0\2\105\1\0\1\106\4\0\2\105\6\0\25\105" + + "\1\u0103\4\105\15\0\1\105\2\0\2\105\7\0\2\105" + + "\1\0\1\106\4\0\2\105\6\0\32\105\15\0\1\u0104" + + "\2\0\2\105\7\0\2\105\1\0\1\106\4\0\2\105" + + "\6\0\16\105\1\u0105\13\105\15\0\1\105\2\0\2\105" + + "\7\0\2\105\1\0\1\106\4\0\2\105\6\0\10\105" + + "\1\u0106\21\105\15\0\1\105\2\0\2\105\7\0\2\105" + + "\1\0\1\106\4\0\2\105\6\0\10\105\1\u0107\21\105" + + "\15\0\1\105\2\0\2\105\7\0\2\u0108\1\0\1\u0109" + + "\4\u010a\2\u0108\1\u010b\1\u010c\54\u0108\1\u010a\3\u0108\1\0" + + "\1\u010d\5\u0108\1\43\1\u010e\1\0\1\117\1\176\3\43" + + "\1\u010e\1\43\6\0\12\u010e\1\43\1\u010e\1\43\1\u010e" + + "\1\43\1\u010e\1\43\1\u010e\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\u010e\1\0\1\117\1\176\3\43" + + "\1\u010e\1\43\6\0\1\u010e\1\u010f\1\u0110\1\u010e\1\u0110" + + "\4\u010e\1\u0111\1\43\1\u0111\1\43\1\u010e\1\43\1\u010e" + + "\1\43\1\u010e\10\43\15\0\2\43\1\0\2\43\7\0" + + "\1\43\1\u010e\1\0\1\117\1\176\3\43\1\u010e\1\43" + + "\6\0\2\u010e\1\u0112\3\u010e\1\u0113\1\u0114\1\u010e\1\u0115" + + "\1\43\1\u0116\1\43\1\u0117\1\43\1\u0118\1\43\1\u0119" + + "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u011a" + + "\1\0\1\117\1\176\3\43\1\u010e\1\43\6\0\1\u010e" + + "\1\u011b\4\u010e\1\u011c\3\u010e\1\43\1\u010e\1\43\1\u010e" + + "\1\43\1\u010e\1\43\1\u010e\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\u010e\1\0\1\126\1\310\3\50" + + "\1\u010e\1\43\6\0\10\u010e\1\u011d\1\u010e\1\43\1\u010e" + + "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43\15\0" + + "\1\43\1\50\1\0\2\43\7\0\1\43\1\u010e\1\0" + + "\1\124\1\312\3\47\1\u010e\1\43\6\0\12\u010e\1\43" + + "\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\125" + + "\7\43\15\0\1\43\1\47\1\0\2\43\7\0\1\43" + + "\1\u010e\1\0\1\141\1\313\3\56\1\u010e\1\43\6\0" + + "\12\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43" + + "\1\u010e\1\142\3\43\1\61\3\43\15\0\1\43\1\56" + + "\1\0\2\43\7\0\1\43\1\u010e\1\0\1\130\1\314" + + "\3\51\1\u010e\1\43\6\0\12\u010e\1\43\1\u010e\1\43" + + "\1\u010e\1\43\1\u010e\1\43\1\u010e\1\131\5\43\1\132" + + "\1\43\15\0\1\43\1\51\1\0\2\43\7\0\1\43" + + "\1\u010e\1\0\1\133\1\315\3\52\1\u010e\1\43\6\0" + + "\12\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43" + + "\1\u010e\3\43\1\60\4\43\15\0\1\43\1\52\1\0" + + "\2\43\7\0\1\43\1\u010e\1\0\1\134\1\316\3\53" + + "\1\u010e\1\43\6\0\12\u010e\1\43\1\u010e\1\43\1\u010e" + + "\1\43\1\u010e\1\43\1\u010e\7\43\1\135\15\0\1\43" + + "\1\53\1\0\2\43\7\0\1\43\1\u010e\1\0\1\136" + + "\1\317\3\54\1\u010e\1\43\6\0\12\u010e\1\43\1\u010e" + + "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\137" + + "\6\43\15\0\1\43\1\54\1\0\2\43\7\0\1\43" + + "\1\u010e\1\0\1\140\1\320\3\55\1\u010e\1\43\6\0" + + "\12\u010e\1\43\1\u010e\1\53\1\u010e\1\43\1\u010e\1\43" + + "\1\u010e\10\43\15\0\1\43\1\55\1\0\2\43\7\0" + + "\1\43\1\u010e\1\0\1\147\1\321\3\60\1\u010e\1\43" + + "\6\0\1\u011e\11\u010e\1\43\1\u010e\1\43\1\u010e\1\43" + + "\1\u010e\1\43\1\u010e\10\43\15\0\1\43\1\60\1\0" + + "\2\43\7\0\1\43\1\u010e\1\0\1\143\1\323\3\57" + + "\1\u010e\1\43\6\0\5\u010e\1\u011f\4\u010e\1\43\1\u010e" + + "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\5\43\1\145" + + "\1\146\1\43\15\0\1\43\1\57\1\0\2\43\7\0" + + "\1\43\1\u010e\1\0\1\117\1\325\3\61\1\u010e\1\43" + + "\6\0\12\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + + "\1\43\1\u010e\10\43\15\0\1\43\1\61\1\0\2\43" + + "\7\0\2\43\1\0\1\126\1\0\1\50\2\0\2\43" + + "\6\0\10\43\1\127\21\43\15\0\1\43\2\0\2\43" + + "\7\0\1\43\1\u010e\1\0\1\221\1\176\3\43\1\u010e" + + "\1\43\6\0\12\u010e\1\222\1\u010e\1\43\1\u010e\1\43" + + "\1\u010e\1\43\1\u010e\10\43\15\0\2\43\1\0\2\43" + + "\7\0\2\43\1\0\1\124\1\0\1\47\2\0\2\43" + + "\6\0\22\43\1\125\7\43\15\0\1\43\2\0\2\43" + + "\7\0\2\43\1\0\1\141\1\0\1\56\2\0\2\43" + + "\6\0\22\43\1\142\3\43\1\61\3\43\15\0\1\43" + + "\2\0\2\43\7\0\2\43\1\0\1\130\1\0\1\51" + + "\2\0\2\43\6\0\22\43\1\131\5\43\1\132\1\43" + + "\15\0\1\43\2\0\2\43\7\0\2\43\1\0\1\133" + + "\1\0\1\52\2\0\2\43\6\0\25\43\1\60\4\43" + + "\15\0\1\43\2\0\2\43\7\0\2\43\1\0\1\134" + + "\1\0\1\53\2\0\2\43\6\0\31\43\1\135\15\0" + + "\1\43\2\0\2\43\7\0\2\43\1\0\1\136\1\0" + + "\1\54\2\0\2\43\6\0\23\43\1\137\6\43\15\0" + + "\1\43\2\0\2\43\7\0\2\43\1\0\1\140\1\0" + + "\1\55\2\0\2\43\6\0\14\43\1\53\15\43\15\0" + + "\1\43\2\0\2\43\7\0\2\43\1\0\1\147\1\0" + + "\1\60\2\0\2\43\6\0\1\150\31\43\15\0\1\43" + + "\2\0\2\43\7\0\1\43\1\u010e\1\0\1\246\1\176" + + "\3\43\1\u010e\1\43\6\0\7\u010e\1\u0120\2\u010e\1\43" + + "\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43" + + "\15\0\2\43\1\0\2\43\7\0\2\43\1\0\1\143" + + "\1\0\1\57\2\0\2\43\6\0\5\43\1\144\21\43" + + "\1\145\1\146\1\43\15\0\1\43\2\0\2\43\7\0" + + "\2\43\1\0\1\117\1\0\1\61\2\0\2\43\6\0" + + "\32\43\15\0\1\43\2\0\2\43\7\0\1\43\1\271" + + "\1\0\1\117\1\176\3\43\1\271\1\43\6\0\1\271" + + "\1\u0121\1\u0122\1\271\1\u0122\5\271\1\43\1\271\1\43" + + "\1\271\1\43\1\271\1\43\1\271\10\43\15\0\2\43" + + "\1\0\2\43\7\0\1\43\1\271\1\0\1\117\1\176" + + "\3\43\1\271\1\43\6\0\7\271\1\u0123\2\271\1\43" + + "\1\271\1\43\1\271\1\43\1\271\1\43\1\271\10\43" + + "\15\0\2\43\1\0\2\43\7\0\1\43\1\271\1\0" + + "\1\117\1\u0124\3\125\1\271\1\43\6\0\12\271\1\43" + + "\1\271\1\43\1\271\1\43\1\271\1\43\1\271\10\43" + + "\15\0\1\43\1\125\1\0\2\43\7\0\1\43\1\271" + + "\1\0\1\117\1\176\3\43\1\271\1\43\6\0\1\271" + + "\1\u0125\1\u0126\1\271\1\u0126\5\271\1\43\1\271\1\43" + + "\1\271\1\43\1\271\1\43\1\271\10\43\15\0\2\43" + + "\1\0\2\43\7\0\1\43\1\271\1\0\1\117\1\176" + + "\3\43\1\271\1\43\6\0\11\271\1\u0127\1\43\1\271" + + "\1\43\1\271\1\43\1\271\1\43\1\271\10\43\15\0" + + "\2\43\1\0\2\43\7\0\1\43\1\271\1\0\1\221" + + "\1\u0128\3\127\1\271\1\43\6\0\12\271\1\222\1\271" + + "\1\43\1\271\1\43\1\271\1\43\1\271\10\43\15\0" + + "\1\43\1\127\1\0\2\43\7\0\1\43\1\175\1\0" + + "\1\117\1\176\3\43\1\175\1\43\6\0\1\175\1\u0129" + + "\1\u012a\1\175\1\u012a\5\175\1\43\1\175\1\43\1\175" + + "\1\43\1\175\1\43\1\175\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\175\1\0\1\117\1\176\3\43" + + "\1\175\1\43\6\0\12\175\1\43\1\u012b\1\43\1\175" + + "\1\43\1\175\1\43\1\175\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\271\1\0\1\117\1\176\3\43" + + "\1\271\1\43\6\0\1\271\1\u012c\1\u012d\1\271\1\u012d" + + "\4\271\1\u012e\1\43\1\u012e\1\43\1\271\1\43\1\271" + + "\1\43\1\271\10\43\15\0\2\43\1\0\2\43\7\0" + + "\1\43\1\271\1\0\1\117\1\176\3\43\1\271\1\43" + + "\6\0\7\271\1\u012f\2\271\1\43\1\271\1\43\1\271" + + "\1\43\1\271\1\43\1\271\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\271\1\0\1\117\1\176\3\43" + + "\1\271\1\43\6\0\12\271\1\43\1\271\1\43\1\u0130" + + "\1\43\1\271\1\43\1\271\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\271\1\0\1\117\1\u0131\3\131" + + "\1\271\1\43\6\0\12\271\1\43\1\271\1\43\1\271" + + "\1\43\1\271\1\43\1\271\10\43\15\0\1\43\1\131" + + "\1\0\2\43\7\0\1\43\1\271\1\0\1\117\1\u0132" + + "\3\132\1\271\1\43\6\0\12\271\1\43\1\271\1\43" + + "\1\271\1\43\1\271\1\43\1\271\10\43\15\0\1\43" + + "\1\132\1\0\2\43\7\0\1\43\1\271\1\0\1\117" + + "\1\176\3\43\1\271\1\43\6\0\1\271\1\u0133\7\271" + + "\1\u0134\1\43\1\u0134\1\43\1\271\1\43\1\271\1\43" + + "\1\271\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + + "\1\305\1\0\1\117\1\176\3\43\1\271\1\43\6\0" + + "\12\271\1\43\1\271\1\43\1\271\1\43\1\271\1\43" + + "\1\271\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + + "\1\271\1\0\1\117\1\176\3\43\1\271\1\43\6\0" + + "\1\271\1\u0135\7\271\1\u0136\1\43\1\u0136\1\43\1\271" + + "\1\43\1\271\1\43\1\271\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\271\1\0\1\117\1\176\3\43" + + "\1\271\1\43\6\0\1\u0137\11\271\1\43\1\271\1\43" + + "\1\271\1\43\1\271\1\43\1\271\10\43\15\0\2\43" + + "\1\0\2\43\7\0\1\43\1\271\1\0\1\117\1\u0138" + + "\3\135\1\271\1\43\6\0\12\271\1\43\1\271\1\43" + + "\1\271\1\43\1\271\1\43\1\271\10\43\15\0\1\43" + + "\1\135\1\0\2\43\7\0\1\43\1\271\1\0\1\117" + + "\1\176\3\43\1\271\1\43\6\0\1\271\1\u0139\1\u013a" + + "\1\271\1\u013a\5\271\1\43\1\271\1\43\1\271\1\43" + + "\1\271\1\43\1\271\10\43\15\0\2\43\1\0\2\43" + + "\7\0\1\43\1\271\1\0\1\117\1\176\3\43\1\271" + + "\1\43\6\0\10\271\1\u013b\1\271\1\43\1\271\1\43" + + "\1\271\1\43\1\271\1\43\1\271\10\43\15\0\2\43" + + "\1\0\2\43\7\0\1\43\1\271\1\0\1\117\1\u013c" + + "\3\137\1\271\1\43\6\0\12\271\1\43\1\271\1\43" + + "\1\271\1\43\1\271\1\43\1\271\10\43\15\0\1\43" + + "\1\137\1\0\2\43\7\0\1\43\1\271\1\0\1\117" + + "\1\176\3\43\1\271\1\43\6\0\1\271\1\u013d\1\u013e" + + "\1\271\1\u013e\5\271\1\43\1\271\1\43\1\271\1\43" + + "\1\271\1\43\1\271\10\43\15\0\2\43\1\0\2\43" + + "\7\0\1\43\1\271\1\0\1\117\1\176\3\43\1\271" + + "\1\43\6\0\12\271\1\43\1\271\1\43\1\302\1\43" + + "\1\271\1\43\1\271\10\43\15\0\2\43\1\0\2\43" + + "\7\0\1\43\1\271\1\0\1\117\1\176\3\43\1\271" + + "\1\43\6\0\1\271\1\u013f\1\u0140\1\271\1\u0140\4\271" + + "\1\u0141\1\43\1\u0141\1\43\1\271\1\43\1\271\1\43" + + "\1\271\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + + "\1\271\1\0\1\117\1\176\3\43\1\271\1\43\6\0" + + "\7\271\1\u0142\2\271\1\43\1\271\1\43\1\271\1\43" + + "\1\271\1\43\1\271\10\43\15\0\2\43\1\0\2\43" + + "\7\0\1\43\1\271\1\0\1\117\1\176\3\43\1\271" + + "\1\43\6\0\6\271\1\307\3\271\1\43\1\271\1\43" + + "\1\271\1\43\1\271\1\43\1\271\10\43\15\0\2\43" + + "\1\0\2\43\7\0\1\43\1\271\1\0\1\117\1\u0143" + + "\3\142\1\271\1\43\6\0\12\271\1\43\1\271\1\43" + + "\1\271\1\43\1\271\1\43\1\271\10\43\15\0\1\43" + + "\1\142\1\0\2\43\7\0\1\43\1\271\1\0\1\117" + + "\1\176\3\43\1\271\1\43\6\0\1\271\1\u0144\1\u0145" + + "\1\271\1\u0145\4\271\1\u0146\1\43\1\u0146\1\43\1\271" + + "\1\43\1\271\1\43\1\271\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\271\1\0\1\117\1\176\3\43" + + "\1\271\1\43\6\0\6\271\1\u0147\3\271\1\43\1\271" + + "\1\43\1\271\1\43\1\271\1\43\1\271\10\43\15\0" + + "\2\43\1\0\2\43\7\0\1\43\1\271\1\0\1\117" + + "\1\176\3\43\1\271\1\43\6\0\2\271\1\u0148\7\271" + + "\1\43\1\271\1\43\1\u0149\1\43\1\271\1\43\1\271" + + "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\271" + + "\1\0\1\117\1\u014a\3\144\1\271\1\43\6\0\12\271" + + "\1\43\1\271\1\43\1\271\1\43\1\271\1\43\1\271" + + "\10\43\15\0\1\43\1\144\1\0\2\43\7\0\1\43" + + "\1\271\1\0\1\117\1\u014b\3\145\1\271\1\43\6\0" + + "\12\271\1\43\1\271\1\43\1\271\1\43\1\271\1\43" + + "\1\271\10\43\15\0\1\43\1\145\1\0\2\43\7\0" + + "\1\43\1\271\1\0\1\117\1\u014c\3\146\1\271\1\43" + + "\6\0\12\271\1\43\1\271\1\43\1\271\1\43\1\271" + + "\1\43\1\271\10\43\15\0\1\43\1\146\1\0\2\43" + + "\7\0\1\43\1\271\1\0\1\117\1\176\3\43\1\271" + + "\1\43\6\0\1\271\1\u014d\1\u014e\1\271\1\u014e\5\271" + + "\1\43\1\271\1\43\1\271\1\43\1\271\1\43\1\271" + + "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\271" + + "\1\0\1\117\1\176\3\43\1\271\1\43\6\0\3\271" + + "\1\u014f\6\271\1\43\1\271\1\43\1\271\1\43\1\271" + + "\1\43\1\271\10\43\15\0\2\43\1\0\2\43\7\0" + + "\1\43\1\271\1\0\1\246\1\u0150\3\150\1\271\1\43" + + "\6\0\7\271\1\u0151\2\271\1\43\1\271\1\43\1\271" + + "\1\43\1\271\1\43\1\271\10\43\15\0\1\43\1\150" + + "\1\0\2\43\7\0\1\43\1\175\1\0\1\117\1\176" + + "\3\43\1\175\1\43\6\0\1\175\1\u0152\1\u0153\1\175" + + "\1\u0153\5\175\1\43\1\175\1\43\1\175\1\43\1\175" + + "\1\43\1\175\10\43\15\0\2\43\1\0\2\43\7\0" + + "\1\43\1\175\1\0\1\117\1\176\3\43\1\175\1\43" + + "\6\0\2\175\1\u012b\7\175\1\43\1\175\1\43\1\175" + + "\1\43\1\175\1\43\1\175\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\2\1\u0154\1\0\1\41\1\152\3\2" + + "\1\u0154\1\2\6\0\12\u0154\1\2\1\u0154\1\2\1\u0154" + + "\1\2\1\u0154\1\2\1\u0154\10\2\15\0\2\2\1\0" + + "\2\2\1\42\6\0\1\10\1\u0155\1\10\1\65\1\155" + + "\3\10\1\u0155\1\10\1\66\5\10\12\u0155\1\10\1\u0155" + + "\1\10\1\u0155\1\10\1\u0155\1\10\1\u0155\41\10\1\11" + + "\1\u0156\1\11\1\67\1\157\3\11\1\u0156\2\11\1\66" + + "\4\11\12\u0156\1\11\1\u0156\1\11\1\u0156\1\11\1\u0156" + + "\1\11\1\u0156\41\11\45\0\1\u0157\35\0\1\103\1\u0158" + + "\1\0\1\104\1\257\3\103\1\u0158\1\103\6\0\12\u0158" + + "\1\103\1\u0158\1\103\1\u0158\1\103\1\u0158\1\103\1\u0158" + + "\10\103\15\0\2\103\1\0\2\103\7\0\1\105\1\u0159" + + "\1\0\1\106\1\261\3\105\1\u0159\1\105\6\0\12\u0159" + + "\1\105\1\u0159\1\105\1\u0159\1\105\1\u0159\1\105\1\u0159" + + "\10\105\15\0\2\105\1\0\2\105\7\0\2\105\1\0" + + "\1\106\4\0\1\105\1\u015a\6\0\32\105\15\0\1\105" + + "\2\0\2\105\7\0\2\105\1\0\1\106\4\0\2\105" + + "\6\0\26\105\1\u015b\3\105\15\0\1\105\2\0\2\105" + + "\7\0\2\105\1\0\1\106\4\0\2\105\6\0\25\105" + + "\1\u015c\4\105\15\0\1\105\2\0\2\105\7\0\2\105" + + "\1\0\1\106\4\0\2\105\6\0\1\u015d\31\105\15\0" + + "\1\105\2\0\2\105\7\0\2\105\1\0\1\106\4\0" + + "\2\105\6\0\26\105\1\u015e\3\105\15\0\1\105\2\0" + + "\2\105\7\0\2\u0108\1\0\1\u0109\4\u015f\2\u0108\2\0" + + "\54\u0108\1\u015f\3\u0108\1\0\1\u010d\6\u0108\1\u0160\1\u0108" + + "\1\u0109\2\u015f\1\u0108\1\u015f\1\u0160\7\u0108\12\u0160\1\u0108" + + "\1\u0160\1\u0108\1\u0160\1\u0108\1\u0160\1\u0108\1\u0160\33\u0108" + + "\1\u0161\5\u0108\3\u010b\1\u0162\2\0\1\u010b\1\0\2\u010b" + + "\1\u015f\70\u010b\3\u010c\1\u0163\2\0\1\u010c\1\0\3\u010c" + + "\1\u015f\67\u010c\1\43\1\u0164\1\0\1\117\1\176\3\43" + + "\1\u0164\1\43\6\0\12\u0164\1\43\1\u0164\1\43\1\u0164" + + "\1\43\1\u0164\1\43\1\u0164\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\u0164\1\0\1\117\1\176\3\43" + + "\1\u0164\1\43\6\0\2\u0164\1\u0165\1\u0164\1\u0165\4\u0164" + + "\1\u0166\1\43\1\u0166\1\43\1\u0164\1\43\1\u0164\1\43" + + "\1\u0164\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + + "\1\u0164\1\0\1\117\1\176\3\43\1\u0164\1\43\6\0" + + "\2\u0164\1\u0167\3\u0164\1\u0168\1\u0169\1\u0164\1\u016a\1\43" + + "\1\u016b\1\43\1\u016c\1\43\1\u016d\1\43\1\u016e\10\43" + + "\15\0\2\43\1\0\2\43\7\0\1\43\1\u016f\1\0" + + "\1\117\1\176\3\43\1\u0164\1\43\6\0\1\u0164\1\u0170" + + "\4\u0164\1\u0171\3\u0164\1\43\1\u0164\1\43\1\u0164\1\43" + + "\1\u0164\1\43\1\u0164\10\43\15\0\2\43\1\0\2\43" + + "\7\0\1\43\1\u0164\1\0\1\126\1\310\3\50\1\u0164" + + "\1\43\6\0\10\u0164\1\u0172\1\u0164\1\43\1\u0164\1\43" + + "\1\u0164\1\43\1\u0164\1\43\1\u0164\10\43\15\0\1\43" + + "\1\50\1\0\2\43\7\0\1\43\1\u0164\1\0\1\124" + + "\1\312\3\47\1\u0164\1\43\6\0\12\u0164\1\43\1\u0164" + + "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\125\7\43" + + "\15\0\1\43\1\47\1\0\2\43\7\0\1\43\1\u0164" + + "\1\0\1\141\1\313\3\56\1\u0164\1\43\6\0\12\u0164" + + "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + + "\1\142\3\43\1\61\3\43\15\0\1\43\1\56\1\0" + + "\2\43\7\0\1\43\1\u0164\1\0\1\130\1\314\3\51" + + "\1\u0164\1\43\6\0\12\u0164\1\43\1\u0164\1\43\1\u0164" + + "\1\43\1\u0164\1\43\1\u0164\1\131\5\43\1\132\1\43" + + "\15\0\1\43\1\51\1\0\2\43\7\0\1\43\1\u0164" + + "\1\0\1\133\1\315\3\52\1\u0164\1\43\6\0\12\u0164" + + "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + + "\3\43\1\60\4\43\15\0\1\43\1\52\1\0\2\43" + + "\7\0\1\43\1\u0164\1\0\1\134\1\316\3\53\1\u0164" + + "\1\43\6\0\12\u0164\1\43\1\u0164\1\43\1\u0164\1\43" + + "\1\u0164\1\43\1\u0164\7\43\1\135\15\0\1\43\1\53" + + "\1\0\2\43\7\0\1\43\1\u0164\1\0\1\136\1\317" + + "\3\54\1\u0164\1\43\6\0\12\u0164\1\43\1\u0164\1\43" + + "\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\137\6\43" + + "\15\0\1\43\1\54\1\0\2\43\7\0\1\43\1\u0164" + + "\1\0\1\140\1\320\3\55\1\u0164\1\43\6\0\12\u0164" + + "\1\43\1\u0164\1\53\1\u0164\1\43\1\u0164\1\43\1\u0164" + + "\10\43\15\0\1\43\1\55\1\0\2\43\7\0\1\43" + + "\1\u0164\1\0\1\147\1\321\3\60\1\u0164\1\43\6\0" + + "\1\u0173\11\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + + "\1\43\1\u0164\10\43\15\0\1\43\1\60\1\0\2\43" + + "\7\0\1\43\1\u0164\1\0\1\143\1\323\3\57\1\u0164" + + "\1\43\6\0\5\u0164\1\u0174\4\u0164\1\43\1\u0164\1\43" + + "\1\u0164\1\43\1\u0164\1\43\1\u0164\5\43\1\145\1\146" + + "\1\43\15\0\1\43\1\57\1\0\2\43\7\0\1\43" + + "\1\u0164\1\0\1\117\1\325\3\61\1\u0164\1\43\6\0" + + "\12\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43" + + "\1\u0164\10\43\15\0\1\43\1\61\1\0\2\43\7\0" + + "\1\43\1\u0164\1\0\1\221\1\176\3\43\1\u0164\1\43" + + "\6\0\12\u0164\1\222\1\u0164\1\43\1\u0164\1\43\1\u0164" + + "\1\43\1\u0164\10\43\15\0\2\43\1\0\2\43\7\0" + + "\1\43\1\u0164\1\0\1\246\1\176\3\43\1\u0164\1\43" + + "\6\0\7\u0164\1\u0175\2\u0164\1\43\1\u0164\1\43\1\u0164" + + "\1\43\1\u0164\1\43\1\u0164\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\u010e\1\0\1\117\1\176\3\43" + + "\1\u010e\1\43\6\0\1\u010e\1\u0176\1\u0177\1\u010e\1\u0177" + + "\5\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43" + + "\1\u010e\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + + "\1\u010e\1\0\1\117\1\176\3\43\1\u010e\1\43\6\0" + + "\7\u010e\1\u0178\2\u010e\1\43\1\u010e\1\43\1\u010e\1\43" + + "\1\u010e\1\43\1\u010e\10\43\15\0\2\43\1\0\2\43" + + "\7\0\1\43\1\u010e\1\0\1\117\1\u0124\3\125\1\u010e" + + "\1\43\6\0\12\u010e\1\43\1\u010e\1\43\1\u010e\1\43" + + "\1\u010e\1\43\1\u010e\10\43\15\0\1\43\1\125\1\0" + + "\2\43\7\0\2\43\1\0\1\117\1\0\1\125\2\0" + + "\2\43\6\0\32\43\15\0\1\43\2\0\2\43\7\0" + + "\1\43\1\u010e\1\0\1\117\1\176\3\43\1\u010e\1\43" + + "\6\0\1\u010e\1\u0179\1\u017a\1\u010e\1\u017a\5\u010e\1\43" + + "\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43" + + "\15\0\2\43\1\0\2\43\7\0\1\43\1\u010e\1\0" + + "\1\117\1\176\3\43\1\u010e\1\43\6\0\11\u010e\1\u017b" + + "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + + "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u010e" + + "\1\0\1\221\1\u0128\3\127\1\u010e\1\43\6\0\12\u010e" + + "\1\222\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + + "\10\43\15\0\1\43\1\127\1\0\2\43\7\0\2\43" + + "\1\0\1\221\1\0\1\127\2\0\2\43\6\0\12\43" + + "\1\222\17\43\15\0\1\43\2\0\2\43\7\0\1\43" + + "\1\271\1\0\1\117\1\176\3\43\1\271\1\43\6\0" + + "\1\271\1\u017c\1\u017d\1\271\1\u017d\5\271\1\43\1\271" + + "\1\43\1\271\1\43\1\271\1\43\1\271\10\43\15\0" + + "\2\43\1\0\2\43\7\0\1\43\1\271\1\0\1\117" + + "\1\176\3\43\1\271\1\43\6\0\12\271\1\43\1\u017e" + + "\1\43\1\271\1\43\1\271\1\43\1\271\10\43\15\0" + + "\2\43\1\0\2\43\7\0\1\43\1\271\1\0\1\117" + + "\1\u017f\3\222\1\271\1\43\6\0\12\271\1\43\1\271" + + "\1\43\1\271\1\43\1\271\1\43\1\271\10\43\15\0" + + "\1\43\1\222\1\0\2\43\7\0\1\43\1\u010e\1\0" + + "\1\117\1\176\3\43\1\u010e\1\43\6\0\1\u010e\1\u0180" + + "\1\u0181\1\u010e\1\u0181\4\u010e\1\u0182\1\43\1\u0182\1\43" + + "\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43\15\0\2\43" + + "\1\0\2\43\7\0\1\43\1\u010e\1\0\1\117\1\176" + + "\3\43\1\u010e\1\43\6\0\7\u010e\1\u0183\2\u010e\1\43" + + "\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43" + + "\15\0\2\43\1\0\2\43\7\0\1\43\1\u010e\1\0" + + "\1\117\1\176\3\43\1\u010e\1\43\6\0\12\u010e\1\43" + + "\1\u010e\1\43\1\u0184\1\43\1\u010e\1\43\1\u010e\10\43" + + "\15\0\2\43\1\0\2\43\7\0\1\43\1\u010e\1\0" + + "\1\117\1\u0131\3\131\1\u010e\1\43\6\0\12\u010e\1\43" + + "\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43" + + "\15\0\1\43\1\131\1\0\2\43\7\0\1\43\1\u010e" + + "\1\0\1\117\1\u0132\3\132\1\u010e\1\43\6\0\12\u010e" + + "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + + "\10\43\15\0\1\43\1\132\1\0\2\43\7\0\2\43" + + "\1\0\1\117\1\0\1\131\2\0\2\43\6\0\32\43" + + "\15\0\1\43\2\0\2\43\7\0\2\43\1\0\1\117" + + "\1\0\1\132\2\0\2\43\6\0\32\43\15\0\1\43" + + "\2\0\2\43\7\0\1\43\1\u010e\1\0\1\117\1\176" + + "\3\43\1\u010e\1\43\6\0\1\u010e\1\u0185\7\u010e\1\u0186" + + "\1\43\1\u0186\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + + "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u011a" + + "\1\0\1\117\1\176\3\43\1\u010e\1\43\6\0\12\u010e" + + "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + + "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u010e" + + "\1\0\1\117\1\176\3\43\1\u010e\1\43\6\0\1\u010e" + + "\1\u0187\7\u010e\1\u0188\1\43\1\u0188\1\43\1\u010e\1\43" + + "\1\u010e\1\43\1\u010e\10\43\15\0\2\43\1\0\2\43" + + "\7\0\1\43\1\u010e\1\0\1\117\1\176\3\43\1\u010e" + + "\1\43\6\0\1\u0189\11\u010e\1\43\1\u010e\1\43\1\u010e" + + "\1\43\1\u010e\1\43\1\u010e\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\u010e\1\0\1\117\1\u0138\3\135" + + "\1\u010e\1\43\6\0\12\u010e\1\43\1\u010e\1\43\1\u010e" + + "\1\43\1\u010e\1\43\1\u010e\10\43\15\0\1\43\1\135" + + "\1\0\2\43\7\0\2\43\1\0\1\117\1\0\1\135" + + "\2\0\2\43\6\0\32\43\15\0\1\43\2\0\2\43" + + "\7\0\1\43\1\u010e\1\0\1\117\1\176\3\43\1\u010e" + + "\1\43\6\0\1\u010e\1\u018a\1\u018b\1\u010e\1\u018b\5\u010e" + + "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + + "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u010e" + + "\1\0\1\117\1\176\3\43\1\u010e\1\43\6\0\10\u010e" + + "\1\u018c\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + + "\1\43\1\u010e\10\43\15\0\2\43\1\0\2\43\7\0" + + "\1\43\1\u010e\1\0\1\117\1\u013c\3\137\1\u010e\1\43" + + "\6\0\12\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + + "\1\43\1\u010e\10\43\15\0\1\43\1\137\1\0\2\43" + + "\7\0\2\43\1\0\1\117\1\0\1\137\2\0\2\43" + + "\6\0\32\43\15\0\1\43\2\0\2\43\7\0\1\43" + + "\1\u010e\1\0\1\117\1\176\3\43\1\u010e\1\43\6\0" + + "\1\u010e\1\u018d\1\u018e\1\u010e\1\u018e\5\u010e\1\43\1\u010e" + + "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43\15\0" + + "\2\43\1\0\2\43\7\0\1\43\1\u010e\1\0\1\117" + + "\1\176\3\43\1\u010e\1\43\6\0\12\u010e\1\43\1\u010e" + + "\1\43\1\u0117\1\43\1\u010e\1\43\1\u010e\10\43\15\0" + + "\2\43\1\0\2\43\7\0\1\43\1\u010e\1\0\1\117" + + "\1\176\3\43\1\u010e\1\43\6\0\1\u010e\1\u018f\1\u0190" + + "\1\u010e\1\u0190\4\u010e\1\u0191\1\43\1\u0191\1\43\1\u010e" + + "\1\43\1\u010e\1\43\1\u010e\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\u010e\1\0\1\117\1\176\3\43" + + "\1\u010e\1\43\6\0\7\u010e\1\u0192\2\u010e\1\43\1\u010e" + + "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43\15\0" + + "\2\43\1\0\2\43\7\0\1\43\1\u010e\1\0\1\117" + + "\1\176\3\43\1\u010e\1\43\6\0\6\u010e\1\u011c\3\u010e" + + "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + + "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u010e" + + "\1\0\1\117\1\u0143\3\142\1\u010e\1\43\6\0\12\u010e" + + "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + + "\10\43\15\0\1\43\1\142\1\0\2\43\7\0\2\43" + + "\1\0\1\117\1\0\1\142\2\0\2\43\6\0\32\43" + + "\15\0\1\43\2\0\2\43\7\0\1\43\1\u010e\1\0" + + "\1\117\1\176\3\43\1\u010e\1\43\6\0\1\u010e\1\u0193" + + "\1\u0194\1\u010e\1\u0194\4\u010e\1\u0195\1\43\1\u0195\1\43" + + "\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43\15\0\2\43" + + "\1\0\2\43\7\0\1\43\1\u010e\1\0\1\117\1\176" + + "\3\43\1\u010e\1\43\6\0\6\u010e\1\u0196\3\u010e\1\43" + + "\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43" + + "\15\0\2\43\1\0\2\43\7\0\1\43\1\u010e\1\0" + + "\1\117\1\176\3\43\1\u010e\1\43\6\0\2\u010e\1\u0197" + + "\7\u010e\1\43\1\u010e\1\43\1\u0198\1\43\1\u010e\1\43" + + "\1\u010e\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + + "\1\u010e\1\0\1\117\1\u014a\3\144\1\u010e\1\43\6\0" + + "\12\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43" + + "\1\u010e\10\43\15\0\1\43\1\144\1\0\2\43\7\0" + + "\1\43\1\u010e\1\0\1\117\1\u014b\3\145\1\u010e\1\43" + + "\6\0\12\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e" + + "\1\43\1\u010e\10\43\15\0\1\43\1\145\1\0\2\43" + + "\7\0\1\43\1\u010e\1\0\1\117\1\u014c\3\146\1\u010e" + + "\1\43\6\0\12\u010e\1\43\1\u010e\1\43\1\u010e\1\43" + + "\1\u010e\1\43\1\u010e\10\43\15\0\1\43\1\146\1\0" + + "\2\43\7\0\2\43\1\0\1\117\1\0\1\144\2\0" + + "\2\43\6\0\32\43\15\0\1\43\2\0\2\43\7\0" + + "\2\43\1\0\1\117\1\0\1\145\2\0\2\43\6\0" + + "\32\43\15\0\1\43\2\0\2\43\7\0\2\43\1\0" + + "\1\117\1\0\1\146\2\0\2\43\6\0\32\43\15\0" + + "\1\43\2\0\2\43\7\0\1\43\1\u010e\1\0\1\117" + + "\1\176\3\43\1\u010e\1\43\6\0\1\u010e\1\u0199\1\u019a" + + "\1\u010e\1\u019a\5\u010e\1\43\1\u010e\1\43\1\u010e\1\43" + + "\1\u010e\1\43\1\u010e\10\43\15\0\2\43\1\0\2\43" + + "\7\0\1\43\1\u010e\1\0\1\117\1\176\3\43\1\u010e" + + "\1\43\6\0\3\u010e\1\u019b\6\u010e\1\43\1\u010e\1\43" + + "\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43\15\0\2\43" + + "\1\0\2\43\7\0\1\43\1\u010e\1\0\1\246\1\u0150" + + "\3\150\1\u010e\1\43\6\0\7\u010e\1\u0120\2\u010e\1\43" + + "\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43" + + "\15\0\1\43\1\150\1\0\2\43\7\0\2\43\1\0" + + "\1\246\1\0\1\150\2\0\2\43\6\0\7\43\1\222" + + "\22\43\15\0\1\43\2\0\2\43\7\0\1\43\1\271" + + "\1\0\1\117\1\176\3\43\1\271\1\43\6\0\1\271" + + "\1\u019c\1\u019d\1\271\1\u019d\5\271\1\43\1\271\1\43" + + "\1\271\1\43\1\271\1\43\1\271\10\43\15\0\2\43" + + "\1\0\2\43\7\0\1\43\1\271\1\0\1\117\1\176" + + "\3\43\1\271\1\43\6\0\2\271\1\u017e\7\271\1\43" + + "\1\271\1\43\1\271\1\43\1\271\1\43\1\271\10\43" + + "\15\0\2\43\1\0\2\43\7\0\1\2\1\u019e\1\0" + + "\1\41\1\152\3\2\1\u019e\1\2\6\0\12\u019e\1\2" + + "\1\u019e\1\2\1\u019e\1\2\1\u019e\1\2\1\u019e\10\2" + + "\15\0\2\2\1\0\2\2\1\42\6\0\1\10\1\u019f" + + "\1\10\1\65\1\155\3\10\1\u019f\1\10\1\66\5\10" + + "\12\u019f\1\10\1\u019f\1\10\1\u019f\1\10\1\u019f\1\10" + + "\1\u019f\41\10\1\11\1\u01a0\1\11\1\67\1\157\3\11" + + "\1\u01a0\2\11\1\66\4\11\12\u01a0\1\11\1\u01a0\1\11" + + "\1\u01a0\1\11\1\u01a0\1\11\1\u01a0\41\11\47\0\1\u01a1" + + "\33\0\1\103\1\u01a2\1\0\1\104\1\257\3\103\1\u01a2" + + "\1\103\6\0\12\u01a2\1\103\1\u01a2\1\103\1\u01a2\1\103" + + "\1\u01a2\1\103\1\u01a2\10\103\15\0\2\103\1\0\2\103" + + "\7\0\1\105\1\u01a3\1\0\1\106\1\261\3\105\1\u01a3" + + "\1\105\6\0\12\u01a3\1\105\1\u01a3\1\105\1\u01a3\1\105" + + "\1\u01a3\1\105\1\u01a3\10\105\15\0\2\105\1\0\2\105" + + "\7\0\2\105\1\0\1\106\4\0\1\u01a4\1\105\6\0" + + "\32\105\15\0\1\105\2\0\2\105\7\0\2\105\1\0" + + "\1\106\4\0\2\105\6\0\10\105\1\u01a5\21\105\15\0" + + "\1\105\2\0\2\105\7\0\2\105\1\0\1\106\4\0" + + "\2\105\6\0\27\105\1\u01a6\2\105\15\0\1\105\2\0" + + "\2\105\7\0\2\105\1\0\1\106\4\0\2\105\6\0" + + "\24\105\1\u01a7\5\105\15\0\1\105\2\0\2\105\13\0" + + "\4\u015f\60\0\1\u015f\4\0\1\u010d\5\0\1\u0108\1\u01a8" + + "\1\0\1\u0109\1\u01a9\3\u0108\1\u01a8\1\u0108\2\0\4\u0108" + + "\12\u01a8\1\u0108\1\u01a8\1\u0108\1\u01a8\1\u0108\1\u01a8\1\u0108" + + "\1\u01a8\32\u0108\1\0\1\u010d\5\u0108\1\u010b\1\u01aa\2\u010b" + + "\1\u01ab\3\u010b\1\u01aa\7\u010b\12\u01aa\1\u010b\1\u01aa\1\u010b" + + "\1\u01aa\1\u010b\1\u01aa\1\u010b\1\u01aa\41\u010b\1\u010c\1\u01ac" + + "\2\u010c\1\u01ad\3\u010c\1\u01ac\7\u010c\12\u01ac\1\u010c\1\u01ac" + + "\1\u010c\1\u01ac\1\u010c\1\u01ac\1\u010c\1\u01ac\41\u010c\1\43" + + "\1\u01ae\1\0\1\117\1\176\3\43\1\u01ae\1\43\6\0" + + "\12\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43" + + "\1\u01ae\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + + "\1\u01ae\1\0\1\117\1\176\3\43\1\u01ae\1\43\6\0" + + "\2\u01ae\1\u01af\3\u01ae\1\u01b0\1\u01b1\1\u01ae\1\u01b2\1\43" + + "\1\u01b3\1\43\1\u01b4\1\43\1\u01b5\1\43\1\u01b6\10\43" + + "\15\0\2\43\1\0\2\43\7\0\1\43\1\u01b7\1\0" + + "\1\117\1\176\3\43\1\u01ae\1\43\6\0\1\u01ae\1\u01b8" + + "\4\u01ae\1\u01b9\3\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43" + + "\1\u01ae\1\43\1\u01ae\10\43\15\0\2\43\1\0\2\43" + + "\7\0\1\43\1\u01ae\1\0\1\126\1\310\3\50\1\u01ae" + + "\1\43\6\0\10\u01ae\1\u01ba\1\u01ae\1\43\1\u01ae\1\43" + + "\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\1\43" + + "\1\50\1\0\2\43\7\0\1\43\1\u01ae\1\0\1\124" + + "\1\312\3\47\1\u01ae\1\43\6\0\12\u01ae\1\43\1\u01ae" + + "\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\125\7\43" + + "\15\0\1\43\1\47\1\0\2\43\7\0\1\43\1\u01ae" + + "\1\0\1\141\1\313\3\56\1\u01ae\1\43\6\0\12\u01ae" + + "\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae" + + "\1\142\3\43\1\61\3\43\15\0\1\43\1\56\1\0" + + "\2\43\7\0\1\43\1\u01ae\1\0\1\130\1\314\3\51" + + "\1\u01ae\1\43\6\0\12\u01ae\1\43\1\u01ae\1\43\1\u01ae" + + "\1\43\1\u01ae\1\43\1\u01ae\1\131\5\43\1\132\1\43" + + "\15\0\1\43\1\51\1\0\2\43\7\0\1\43\1\u01ae" + + "\1\0\1\133\1\315\3\52\1\u01ae\1\43\6\0\12\u01ae" + + "\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae" + + "\3\43\1\60\4\43\15\0\1\43\1\52\1\0\2\43" + + "\7\0\1\43\1\u01ae\1\0\1\134\1\316\3\53\1\u01ae" + + "\1\43\6\0\12\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43" + + "\1\u01ae\1\43\1\u01ae\7\43\1\135\15\0\1\43\1\53" + + "\1\0\2\43\7\0\1\43\1\u01ae\1\0\1\136\1\317" + + "\3\54\1\u01ae\1\43\6\0\12\u01ae\1\43\1\u01ae\1\43" + + "\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\137\6\43" + + "\15\0\1\43\1\54\1\0\2\43\7\0\1\43\1\u01ae" + + "\1\0\1\140\1\320\3\55\1\u01ae\1\43\6\0\12\u01ae" + + "\1\43\1\u01ae\1\53\1\u01ae\1\43\1\u01ae\1\43\1\u01ae" + + "\10\43\15\0\1\43\1\55\1\0\2\43\7\0\1\43" + + "\1\u01ae\1\0\1\147\1\321\3\60\1\u01ae\1\43\6\0" + + "\1\u01bb\11\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae" + + "\1\43\1\u01ae\10\43\15\0\1\43\1\60\1\0\2\43" + + "\7\0\1\43\1\u01ae\1\0\1\143\1\323\3\57\1\u01ae" + + "\1\43\6\0\5\u01ae\1\u01bc\4\u01ae\1\43\1\u01ae\1\43" + + "\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\5\43\1\145\1\146" + + "\1\43\15\0\1\43\1\57\1\0\2\43\7\0\1\43" + + "\1\u01ae\1\0\1\117\1\325\3\61\1\u01ae\1\43\6\0" + + "\12\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43" + + "\1\u01ae\10\43\15\0\1\43\1\61\1\0\2\43\7\0" + + "\1\43\1\u01ae\1\0\1\221\1\176\3\43\1\u01ae\1\43" + + "\6\0\12\u01ae\1\222\1\u01ae\1\43\1\u01ae\1\43\1\u01ae" + + "\1\43\1\u01ae\10\43\15\0\2\43\1\0\2\43\7\0" + + "\1\43\1\u01ae\1\0\1\246\1\176\3\43\1\u01ae\1\43" + + "\6\0\7\u01ae\1\u01bd\2\u01ae\1\43\1\u01ae\1\43\1\u01ae" + + "\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\u0164\1\0\1\117\1\176\3\43" + + "\1\u0164\1\43\6\0\2\u0164\1\u01be\1\u0164\1\u01be\5\u0164" + + "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + + "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u0164" + + "\1\0\1\117\1\176\3\43\1\u0164\1\43\6\0\7\u0164" + + "\1\u01bf\2\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + + "\1\43\1\u0164\10\43\15\0\2\43\1\0\2\43\7\0" + + "\1\43\1\u0164\1\0\1\117\1\u0124\3\125\1\u0164\1\43" + + "\6\0\12\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + + "\1\43\1\u0164\10\43\15\0\1\43\1\125\1\0\2\43" + + "\7\0\1\43\1\u0164\1\0\1\117\1\176\3\43\1\u0164" + + "\1\43\6\0\2\u0164\1\u01c0\1\u0164\1\u01c0\5\u0164\1\43" + + "\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\10\43" + + "\15\0\2\43\1\0\2\43\7\0\1\43\1\u0164\1\0" + + "\1\117\1\176\3\43\1\u0164\1\43\6\0\11\u0164\1\u01c1" + + "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + + "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u0164" + + "\1\0\1\221\1\u0128\3\127\1\u0164\1\43\6\0\12\u0164" + + "\1\222\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + + "\10\43\15\0\1\43\1\127\1\0\2\43\7\0\1\43" + + "\1\u010e\1\0\1\117\1\176\3\43\1\u010e\1\43\6\0" + + "\1\u010e\1\u01c2\1\u01c3\1\u010e\1\u01c3\5\u010e\1\43\1\u010e" + + "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43\15\0" + + "\2\43\1\0\2\43\7\0\1\43\1\u010e\1\0\1\117" + + "\1\176\3\43\1\u010e\1\43\6\0\12\u010e\1\43\1\u01c4" + + "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43\15\0" + + "\2\43\1\0\2\43\7\0\1\43\1\u010e\1\0\1\117" + + "\1\u017f\3\222\1\u010e\1\43\6\0\12\u010e\1\43\1\u010e" + + "\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\10\43\15\0" + + "\1\43\1\222\1\0\2\43\7\0\2\43\1\0\1\117" + + "\1\0\1\222\2\0\2\43\6\0\32\43\15\0\1\43" + + "\2\0\2\43\7\0\1\43\1\u0164\1\0\1\117\1\176" + + "\3\43\1\u0164\1\43\6\0\2\u0164\1\u01c5\1\u0164\1\u01c5" + + "\4\u0164\1\u01c6\1\43\1\u01c6\1\43\1\u0164\1\43\1\u0164" + + "\1\43\1\u0164\10\43\15\0\2\43\1\0\2\43\7\0" + + "\1\43\1\u0164\1\0\1\117\1\176\3\43\1\u0164\1\43" + + "\6\0\7\u0164\1\u01c7\2\u0164\1\43\1\u0164\1\43\1\u0164" + + "\1\43\1\u0164\1\43\1\u0164\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\u0164\1\0\1\117\1\176\3\43" + + "\1\u0164\1\43\6\0\12\u0164\1\43\1\u0164\1\43\1\u01c8" + + "\1\43\1\u0164\1\43\1\u0164\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\u0164\1\0\1\117\1\u0131\3\131" + + "\1\u0164\1\43\6\0\12\u0164\1\43\1\u0164\1\43\1\u0164" + + "\1\43\1\u0164\1\43\1\u0164\10\43\15\0\1\43\1\131" + + "\1\0\2\43\7\0\1\43\1\u0164\1\0\1\117\1\u0132" + + "\3\132\1\u0164\1\43\6\0\12\u0164\1\43\1\u0164\1\43" + + "\1\u0164\1\43\1\u0164\1\43\1\u0164\10\43\15\0\1\43" + + "\1\132\1\0\2\43\7\0\1\43\1\u0164\1\0\1\117" + + "\1\176\3\43\1\u0164\1\43\6\0\11\u0164\1\u01c9\1\43" + + "\1\u01c9\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\10\43" + + "\15\0\2\43\1\0\2\43\7\0\1\43\1\u016f\1\0" + + "\1\117\1\176\3\43\1\u0164\1\43\6\0\12\u0164\1\43" + + "\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\10\43" + + "\15\0\2\43\1\0\2\43\7\0\1\43\1\u0164\1\0" + + "\1\117\1\176\3\43\1\u0164\1\43\6\0\11\u0164\1\u01ca" + + "\1\43\1\u01ca\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + + "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u0164" + + "\1\0\1\117\1\176\3\43\1\u0164\1\43\6\0\1\u01cb" + + "\11\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43" + + "\1\u0164\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + + "\1\u0164\1\0\1\117\1\u0138\3\135\1\u0164\1\43\6\0" + + "\12\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43" + + "\1\u0164\10\43\15\0\1\43\1\135\1\0\2\43\7\0" + + "\1\43\1\u0164\1\0\1\117\1\176\3\43\1\u0164\1\43" + + "\6\0\2\u0164\1\u01cc\1\u0164\1\u01cc\5\u0164\1\43\1\u0164" + + "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\10\43\15\0" + + "\2\43\1\0\2\43\7\0\1\43\1\u0164\1\0\1\117" + + "\1\176\3\43\1\u0164\1\43\6\0\10\u0164\1\u01cd\1\u0164" + + "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + + "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u0164" + + "\1\0\1\117\1\u013c\3\137\1\u0164\1\43\6\0\12\u0164" + + "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + + "\10\43\15\0\1\43\1\137\1\0\2\43\7\0\1\43" + + "\1\u0164\1\0\1\117\1\176\3\43\1\u0164\1\43\6\0" + + "\2\u0164\1\u01ce\1\u0164\1\u01ce\5\u0164\1\43\1\u0164\1\43" + + "\1\u0164\1\43\1\u0164\1\43\1\u0164\10\43\15\0\2\43" + + "\1\0\2\43\7\0\1\43\1\u0164\1\0\1\117\1\176" + + "\3\43\1\u0164\1\43\6\0\12\u0164\1\43\1\u0164\1\43" + + "\1\u016c\1\43\1\u0164\1\43\1\u0164\10\43\15\0\2\43" + + "\1\0\2\43\7\0\1\43\1\u0164\1\0\1\117\1\176" + + "\3\43\1\u0164\1\43\6\0\2\u0164\1\u01cf\1\u0164\1\u01cf" + + "\4\u0164\1\u01d0\1\43\1\u01d0\1\43\1\u0164\1\43\1\u0164" + + "\1\43\1\u0164\10\43\15\0\2\43\1\0\2\43\7\0" + + "\1\43\1\u0164\1\0\1\117\1\176\3\43\1\u0164\1\43" + + "\6\0\7\u0164\1\u01d1\2\u0164\1\43\1\u0164\1\43\1\u0164" + + "\1\43\1\u0164\1\43\1\u0164\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\u0164\1\0\1\117\1\176\3\43" + + "\1\u0164\1\43\6\0\6\u0164\1\u0171\3\u0164\1\43\1\u0164" + + "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\10\43\15\0" + + "\2\43\1\0\2\43\7\0\1\43\1\u0164\1\0\1\117" + + "\1\u0143\3\142\1\u0164\1\43\6\0\12\u0164\1\43\1\u0164" + + "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\10\43\15\0" + + "\1\43\1\142\1\0\2\43\7\0\1\43\1\u0164\1\0" + + "\1\117\1\176\3\43\1\u0164\1\43\6\0\2\u0164\1\u01d2" + + "\1\u0164\1\u01d2\4\u0164\1\u01d3\1\43\1\u01d3\1\43\1\u0164" + + "\1\43\1\u0164\1\43\1\u0164\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\u0164\1\0\1\117\1\176\3\43" + + "\1\u0164\1\43\6\0\6\u0164\1\u01d4\3\u0164\1\43\1\u0164" + + "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\10\43\15\0" + + "\2\43\1\0\2\43\7\0\1\43\1\u0164\1\0\1\117" + + "\1\176\3\43\1\u0164\1\43\6\0\2\u0164\1\u01d5\7\u0164" + + "\1\43\1\u0164\1\43\1\u01d6\1\43\1\u0164\1\43\1\u0164" + + "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u0164" + + "\1\0\1\117\1\u014a\3\144\1\u0164\1\43\6\0\12\u0164" + + "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + + "\10\43\15\0\1\43\1\144\1\0\2\43\7\0\1\43" + + "\1\u0164\1\0\1\117\1\u014b\3\145\1\u0164\1\43\6\0" + + "\12\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43" + + "\1\u0164\10\43\15\0\1\43\1\145\1\0\2\43\7\0" + + "\1\43\1\u0164\1\0\1\117\1\u014c\3\146\1\u0164\1\43" + + "\6\0\12\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + + "\1\43\1\u0164\10\43\15\0\1\43\1\146\1\0\2\43" + + "\7\0\1\43\1\u0164\1\0\1\117\1\176\3\43\1\u0164" + + "\1\43\6\0\2\u0164\1\u01d7\1\u0164\1\u01d7\5\u0164\1\43" + + "\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\10\43" + + "\15\0\2\43\1\0\2\43\7\0\1\43\1\u0164\1\0" + + "\1\117\1\176\3\43\1\u0164\1\43\6\0\3\u0164\1\u01d8" + + "\6\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43" + + "\1\u0164\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + + "\1\u0164\1\0\1\246\1\u0150\3\150\1\u0164\1\43\6\0" + + "\7\u0164\1\u0175\2\u0164\1\43\1\u0164\1\43\1\u0164\1\43" + + "\1\u0164\1\43\1\u0164\10\43\15\0\1\43\1\150\1\0" + + "\2\43\7\0\1\43\1\u010e\1\0\1\117\1\176\3\43" + + "\1\u010e\1\43\6\0\1\u010e\1\u01d9\1\u01da\1\u010e\1\u01da" + + "\5\u010e\1\43\1\u010e\1\43\1\u010e\1\43\1\u010e\1\43" + + "\1\u010e\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + + "\1\u010e\1\0\1\117\1\176\3\43\1\u010e\1\43\6\0" + + "\2\u010e\1\u01c4\7\u010e\1\43\1\u010e\1\43\1\u010e\1\43" + + "\1\u010e\1\43\1\u010e\10\43\15\0\2\43\1\0\2\43" + + "\7\0\2\2\1\0\1\41\1\152\5\2\6\0\32\2" + + "\15\0\2\2\1\0\2\2\1\42\6\0\1\10\1\u01db" + + "\1\10\1\65\1\155\3\10\1\u01db\1\10\1\66\5\10" + + "\12\u01db\1\10\1\u01db\1\10\1\u01db\1\10\1\u01db\1\10" + + "\1\u01db\41\10\1\11\1\u01dc\1\11\1\67\1\157\3\11" + + "\1\u01dc\2\11\1\66\4\11\12\u01dc\1\11\1\u01dc\1\11" + + "\1\u01dc\1\11\1\u01dc\1\11\1\u01dc\41\11\20\0\1\u01dd" + + "\62\0\1\103\1\u01de\1\0\1\104\1\257\3\103\1\u01de" + + "\1\103\6\0\12\u01de\1\103\1\u01de\1\103\1\u01de\1\103" + + "\1\u01de\1\103\1\u01de\10\103\15\0\2\103\1\0\2\103" + + "\7\0\1\105\1\u01df\1\0\1\106\1\261\3\105\1\u01df" + + "\1\105\6\0\12\u01df\1\105\1\u01df\1\105\1\u01df\1\105" + + "\1\u01df\1\105\1\u01df\10\105\15\0\2\105\1\0\2\105" + + "\7\0\2\105\1\0\1\106\4\0\2\105\6\0\1\u01e0" + + "\31\105\15\0\1\105\2\0\2\105\7\0\2\105\1\0" + + "\1\106\4\0\2\105\6\0\27\105\1\u01e1\2\105\15\0" + + "\1\105\2\0\2\105\7\0\2\105\1\0\1\106\4\0" + + "\2\105\6\0\1\u01e2\31\105\15\0\1\105\2\0\2\105" + + "\7\0\1\u0108\1\u01e3\1\0\1\u0109\1\u01a9\3\u0108\1\u01e3" + + "\1\u0108\2\0\4\u0108\12\u01e3\1\u0108\1\u01e3\1\u0108\1\u01e3" + + "\1\u0108\1\u01e3\1\u0108\1\u01e3\32\u0108\1\0\1\u010d\7\u0108" + + "\1\0\1\u0109\1\u015f\1\u0108\2\u015f\2\u0108\2\0\54\u0108" + + "\1\u015f\3\u0108\1\0\1\u010d\5\u0108\1\u010b\1\u01e4\1\u010b" + + "\1\u0162\1\u01ab\3\u010b\1\u01e4\1\u010b\1\u015f\5\u010b\12\u01e4" + + "\1\u010b\1\u01e4\1\u010b\1\u01e4\1\u010b\1\u01e4\1\u010b\1\u01e4" + + "\44\u010b\1\u0162\1\0\2\u010b\1\0\2\u010b\1\u015f\70\u010b" + + "\1\u010c\1\u01e5\1\u010c\1\u0163\1\u01ad\3\u010c\1\u01e5\2\u010c" + + "\1\u015f\4\u010c\12\u01e5\1\u010c\1\u01e5\1\u010c\1\u01e5\1\u010c" + + "\1\u01e5\1\u010c\1\u01e5\44\u010c\1\u0163\1\0\2\u010c\1\0" + + "\3\u010c\1\u015f\67\u010c\2\43\1\0\1\117\1\176\5\43" + + "\6\0\32\43\15\0\2\43\1\0\2\43\7\0\2\43" + + "\1\0\1\126\1\310\3\50\2\43\6\0\10\43\1\127" + + "\21\43\15\0\1\43\1\50\1\0\2\43\7\0\2\43" + + "\1\0\1\124\1\312\3\47\2\43\6\0\22\43\1\125" + + "\7\43\15\0\1\43\1\47\1\0\2\43\7\0\2\43" + + "\1\0\1\141\1\313\3\56\2\43\6\0\22\43\1\142" + + "\3\43\1\61\3\43\15\0\1\43\1\56\1\0\2\43" + + "\7\0\2\43\1\0\1\130\1\314\3\51\2\43\6\0" + + "\22\43\1\131\5\43\1\132\1\43\15\0\1\43\1\51" + + "\1\0\2\43\7\0\2\43\1\0\1\133\1\315\3\52" + + "\2\43\6\0\25\43\1\60\4\43\15\0\1\43\1\52" + + "\1\0\2\43\7\0\2\43\1\0\1\134\1\316\3\53" + + "\2\43\6\0\31\43\1\135\15\0\1\43\1\53\1\0" + + "\2\43\7\0\2\43\1\0\1\136\1\317\3\54\2\43" + + "\6\0\23\43\1\137\6\43\15\0\1\43\1\54\1\0" + + "\2\43\7\0\2\43\1\0\1\140\1\320\3\55\2\43" + + "\6\0\14\43\1\53\15\43\15\0\1\43\1\55\1\0" + + "\2\43\7\0\2\43\1\0\1\147\1\321\3\60\2\43" + + "\6\0\1\150\31\43\15\0\1\43\1\60\1\0\2\43" + + "\7\0\2\43\1\0\1\143\1\323\3\57\2\43\6\0" + + "\5\43\1\144\21\43\1\145\1\146\1\43\15\0\1\43" + + "\1\57\1\0\2\43\7\0\2\43\1\0\1\117\1\325" + + "\3\61\2\43\6\0\32\43\15\0\1\43\1\61\1\0" + + "\2\43\7\0\2\43\1\0\1\221\1\176\5\43\6\0" + + "\12\43\1\222\17\43\15\0\2\43\1\0\2\43\7\0" + + "\2\43\1\0\1\246\1\176\5\43\6\0\7\43\1\222" + + "\22\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u01ae" + + "\1\0\1\117\1\176\3\43\1\u01ae\1\43\6\0\7\u01ae" + + "\1\u01e6\2\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae" + + "\1\43\1\u01ae\10\43\15\0\2\43\1\0\2\43\7\0" + + "\1\43\1\u01ae\1\0\1\117\1\u0124\3\125\1\u01ae\1\43" + + "\6\0\12\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae" + + "\1\43\1\u01ae\10\43\15\0\1\43\1\125\1\0\2\43" + + "\7\0\1\43\1\u01ae\1\0\1\117\1\176\3\43\1\u01ae" + + "\1\43\6\0\11\u01ae\1\u01e7\1\43\1\u01ae\1\43\1\u01ae" + + "\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\u01ae\1\0\1\221\1\u0128\3\127" + + "\1\u01ae\1\43\6\0\12\u01ae\1\222\1\u01ae\1\43\1\u01ae" + + "\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\1\43\1\127" + + "\1\0\2\43\7\0\1\43\1\u0164\1\0\1\117\1\176" + + "\3\43\1\u0164\1\43\6\0\2\u0164\1\u01e8\1\u0164\1\u01e8" + + "\5\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43" + + "\1\u0164\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + + "\1\u0164\1\0\1\117\1\176\3\43\1\u0164\1\43\6\0" + + "\12\u0164\1\43\1\u01e9\1\43\1\u0164\1\43\1\u0164\1\43" + + "\1\u0164\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + + "\1\u0164\1\0\1\117\1\u017f\3\222\1\u0164\1\43\6\0" + + "\12\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43" + + "\1\u0164\10\43\15\0\1\43\1\222\1\0\2\43\7\0" + + "\1\43\1\u01ae\1\0\1\117\1\176\3\43\1\u01ae\1\43" + + "\6\0\7\u01ae\1\u01ea\2\u01ae\1\43\1\u01ae\1\43\1\u01ae" + + "\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\u01ae\1\0\1\117\1\176\3\43" + + "\1\u01ae\1\43\6\0\12\u01ae\1\43\1\u01ae\1\43\1\u01eb" + + "\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\u01ae\1\0\1\117\1\u0131\3\131" + + "\1\u01ae\1\43\6\0\12\u01ae\1\43\1\u01ae\1\43\1\u01ae" + + "\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\1\43\1\131" + + "\1\0\2\43\7\0\1\43\1\u01ae\1\0\1\117\1\u0132" + + "\3\132\1\u01ae\1\43\6\0\12\u01ae\1\43\1\u01ae\1\43" + + "\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\1\43" + + "\1\132\1\0\2\43\7\0\1\43\1\u01b7\1\0\1\117" + + "\1\176\3\43\1\u01ae\1\43\6\0\12\u01ae\1\43\1\u01ae" + + "\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0" + + "\2\43\1\0\2\43\7\0\1\43\1\u01ae\1\0\1\117" + + "\1\176\3\43\1\u01ae\1\43\6\0\1\u01ec\11\u01ae\1\43" + + "\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43" + + "\15\0\2\43\1\0\2\43\7\0\1\43\1\u01ae\1\0" + + "\1\117\1\u0138\3\135\1\u01ae\1\43\6\0\12\u01ae\1\43" + + "\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43" + + "\15\0\1\43\1\135\1\0\2\43\7\0\1\43\1\u01ae" + + "\1\0\1\117\1\176\3\43\1\u01ae\1\43\6\0\10\u01ae" + + "\1\u01ed\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae" + + "\1\43\1\u01ae\10\43\15\0\2\43\1\0\2\43\7\0" + + "\1\43\1\u01ae\1\0\1\117\1\u013c\3\137\1\u01ae\1\43" + + "\6\0\12\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae" + + "\1\43\1\u01ae\10\43\15\0\1\43\1\137\1\0\2\43" + + "\7\0\1\43\1\u01ae\1\0\1\117\1\176\3\43\1\u01ae" + + "\1\43\6\0\12\u01ae\1\43\1\u01ae\1\43\1\u01b4\1\43" + + "\1\u01ae\1\43\1\u01ae\10\43\15\0\2\43\1\0\2\43" + + "\7\0\1\43\1\u01ae\1\0\1\117\1\176\3\43\1\u01ae" + + "\1\43\6\0\7\u01ae\1\u01ee\2\u01ae\1\43\1\u01ae\1\43" + + "\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\2\43" + + "\1\0\2\43\7\0\1\43\1\u01ae\1\0\1\117\1\176" + + "\3\43\1\u01ae\1\43\6\0\6\u01ae\1\u01b9\3\u01ae\1\43" + + "\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43" + + "\15\0\2\43\1\0\2\43\7\0\1\43\1\u01ae\1\0" + + "\1\117\1\u0143\3\142\1\u01ae\1\43\6\0\12\u01ae\1\43" + + "\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43" + + "\15\0\1\43\1\142\1\0\2\43\7\0\1\43\1\u01ae" + + "\1\0\1\117\1\176\3\43\1\u01ae\1\43\6\0\6\u01ae" + + "\1\u01ef\3\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae" + + "\1\43\1\u01ae\10\43\15\0\2\43\1\0\2\43\7\0" + + "\1\43\1\u01ae\1\0\1\117\1\176\3\43\1\u01ae\1\43" + + "\6\0\2\u01ae\1\u01f0\7\u01ae\1\43\1\u01ae\1\43\1\u01f1" + + "\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\2\43\1\0" + + "\2\43\7\0\1\43\1\u01ae\1\0\1\117\1\u014a\3\144" + + "\1\u01ae\1\43\6\0\12\u01ae\1\43\1\u01ae\1\43\1\u01ae" + + "\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\1\43\1\144" + + "\1\0\2\43\7\0\1\43\1\u01ae\1\0\1\117\1\u014b" + + "\3\145\1\u01ae\1\43\6\0\12\u01ae\1\43\1\u01ae\1\43" + + "\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0\1\43" + + "\1\145\1\0\2\43\7\0\1\43\1\u01ae\1\0\1\117" + + "\1\u014c\3\146\1\u01ae\1\43\6\0\12\u01ae\1\43\1\u01ae" + + "\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43\15\0" + + "\1\43\1\146\1\0\2\43\7\0\1\43\1\u01ae\1\0" + + "\1\117\1\176\3\43\1\u01ae\1\43\6\0\3\u01ae\1\u01f2" + + "\6\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43" + + "\1\u01ae\10\43\15\0\2\43\1\0\2\43\7\0\1\43" + + "\1\u01ae\1\0\1\246\1\u0150\3\150\1\u01ae\1\43\6\0" + + "\7\u01ae\1\u01bd\2\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43" + + "\1\u01ae\1\43\1\u01ae\10\43\15\0\1\43\1\150\1\0" + + "\2\43\7\0\1\43\1\u0164\1\0\1\117\1\176\3\43" + + "\1\u0164\1\43\6\0\2\u0164\1\u01f3\1\u0164\1\u01f3\5\u0164" + + "\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + + "\10\43\15\0\2\43\1\0\2\43\7\0\1\43\1\u0164" + + "\1\0\1\117\1\176\3\43\1\u0164\1\43\6\0\2\u0164" + + "\1\u01e9\7\u0164\1\43\1\u0164\1\43\1\u0164\1\43\1\u0164" + + "\1\43\1\u0164\10\43\15\0\2\43\1\0\2\43\7\0" + + "\3\10\1\65\1\155\5\10\1\66\70\10\3\11\1\67" + + "\1\157\6\11\1\66\67\11\43\0\1\u01f4\37\0\2\103" + + "\1\0\1\104\1\257\5\103\6\0\32\103\15\0\2\103" + + "\1\0\2\103\7\0\2\105\1\0\1\106\1\261\5\105" + + "\6\0\32\105\15\0\2\105\1\0\2\105\7\0\2\105" + + "\1\0\1\106\4\0\2\105\6\0\5\105\1\u01f5\24\105" + + "\15\0\1\105\2\0\2\105\7\0\2\105\1\0\1\106" + + "\4\0\2\105\6\0\32\105\15\0\1\105\1\u01f6\1\0" + + "\2\105\7\0\2\105\1\0\1\106\4\0\2\105\6\0" + + "\5\105\1\u01f7\24\105\15\0\1\105\2\0\2\105\7\0" + + "\1\u0108\1\u01f8\1\0\1\u0109\1\u01a9\3\u0108\1\u01f8\1\u0108" + + "\2\0\4\u0108\12\u01f8\1\u0108\1\u01f8\1\u0108\1\u01f8\1\u0108" + + "\1\u01f8\1\u0108\1\u01f8\32\u0108\1\0\1\u010d\5\u0108\1\u010b" + + "\1\u01f9\1\u010b\1\u0162\1\u01ab\3\u010b\1\u01f9\1\u010b\1\u015f" + + "\5\u010b\12\u01f9\1\u010b\1\u01f9\1\u010b\1\u01f9\1\u010b\1\u01f9" + + "\1\u010b\1\u01f9\41\u010b\1\u010c\1\u01fa\1\u010c\1\u0163\1\u01ad" + + "\3\u010c\1\u01fa\2\u010c\1\u015f\4\u010c\12\u01fa\1\u010c\1\u01fa" + + "\1\u010c\1\u01fa\1\u010c\1\u01fa\1\u010c\1\u01fa\41\u010c\2\43" + + "\1\0\1\117\1\u0124\3\125\2\43\6\0\32\43\15\0" + + "\1\43\1\125\1\0\2\43\7\0\2\43\1\0\1\221" + + "\1\u0128\3\127\2\43\6\0\12\43\1\222\17\43\15\0" + + "\1\43\1\127\1\0\2\43\7\0\1\43\1\u01ae\1\0" + + "\1\117\1\176\3\43\1\u01ae\1\43\6\0\12\u01ae\1\43" + + "\1\u01fb\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43" + + "\15\0\2\43\1\0\2\43\7\0\1\43\1\u01ae\1\0" + + "\1\117\1\u017f\3\222\1\u01ae\1\43\6\0\12\u01ae\1\43" + + "\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae\10\43" + + "\15\0\1\43\1\222\1\0\2\43\7\0\2\43\1\0" + + "\1\117\1\u0131\3\131\2\43\6\0\32\43\15\0\1\43" + + "\1\131\1\0\2\43\7\0\2\43\1\0\1\117\1\u0132" + + "\3\132\2\43\6\0\32\43\15\0\1\43\1\132\1\0" + + "\2\43\7\0\2\43\1\0\1\117\1\u0138\3\135\2\43" + + "\6\0\32\43\15\0\1\43\1\135\1\0\2\43\7\0" + + "\2\43\1\0\1\117\1\u013c\3\137\2\43\6\0\32\43" + + "\15\0\1\43\1\137\1\0\2\43\7\0\2\43\1\0" + + "\1\117\1\u0143\3\142\2\43\6\0\32\43\15\0\1\43" + + "\1\142\1\0\2\43\7\0\2\43\1\0\1\117\1\u014a" + + "\3\144\2\43\6\0\32\43\15\0\1\43\1\144\1\0" + + "\2\43\7\0\2\43\1\0\1\117\1\u014b\3\145\2\43" + + "\6\0\32\43\15\0\1\43\1\145\1\0\2\43\7\0" + + "\2\43\1\0\1\117\1\u014c\3\146\2\43\6\0\32\43" + + "\15\0\1\43\1\146\1\0\2\43\7\0\2\43\1\0" + + "\1\246\1\u0150\3\150\2\43\6\0\7\43\1\222\22\43" + + "\15\0\1\43\1\150\1\0\2\43\7\0\1\43\1\u01ae" + + "\1\0\1\117\1\176\3\43\1\u01ae\1\43\6\0\2\u01ae" + + "\1\u01fb\7\u01ae\1\43\1\u01ae\1\43\1\u01ae\1\43\1\u01ae" + + "\1\43\1\u01ae\10\43\15\0\2\43\1\0\2\43\56\0" + + "\1\u01fc\33\0\2\105\1\0\1\106\4\0\2\105\6\0" + + "\10\105\1\u01fd\21\105\15\0\1\105\2\0\2\105\7\0" + + "\2\105\1\0\1\106\4\0\2\105\6\0\10\105\1\u01fe" + + "\21\105\15\0\1\105\2\0\2\105\7\0\1\u0108\1\u01ff" + + "\1\0\1\u0109\1\u01a9\3\u0108\1\u01ff\1\u0108\2\0\4\u0108" + + "\12\u01ff\1\u0108\1\u01ff\1\u0108\1\u01ff\1\u0108\1\u01ff\1\u0108" + + "\1\u01ff\32\u0108\1\0\1\u010d\5\u0108\1\u010b\1\u0200\1\u010b" + + "\1\u0162\1\u01ab\3\u010b\1\u0200\1\u010b\1\u015f\5\u010b\12\u0200" + + "\1\u010b\1\u0200\1\u010b\1\u0200\1\u010b\1\u0200\1\u010b\1\u0200" + + "\41\u010b\1\u010c\1\u0201\1\u010c\1\u0163\1\u01ad\3\u010c\1\u0201" + + "\2\u010c\1\u015f\4\u010c\12\u0201\1\u010c\1\u0201\1\u010c\1\u0201" + + "\1\u010c\1\u0201\1\u010c\1\u0201\41\u010c\2\43\1\0\1\117" + + "\1\u017f\3\222\2\43\6\0\32\43\15\0\1\43\1\222" + + "\1\0\2\43\7\0\1\u0108\1\u0202\1\0\1\u0109\1\u01a9" + + "\3\u0108\1\u0202\1\u0108\2\0\4\u0108\12\u0202\1\u0108\1\u0202" + + "\1\u0108\1\u0202\1\u0108\1\u0202\1\u0108\1\u0202\32\u0108\1\0" + + "\1\u010d\5\u0108\1\u010b\1\u0203\1\u010b\1\u0162\1\u01ab\3\u010b" + + "\1\u0203\1\u010b\1\u015f\5\u010b\12\u0203\1\u010b\1\u0203\1\u010b" + + "\1\u0203\1\u010b\1\u0203\1\u010b\1\u0203\41\u010b\1\u010c\1\u0204" + + "\1\u010c\1\u0163\1\u01ad\3\u010c\1\u0204\2\u010c\1\u015f\4\u010c" + + "\12\u0204\1\u010c\1\u0204\1\u010c\1\u0204\1\u010c\1\u0204\1\u010c" + + "\1\u0204\41\u010c\2\u0108\1\0\1\u0109\1\u01a9\5\u0108\2\0" + + "\60\u0108\1\0\1\u010d\5\u0108\1\u010b\1\u0205\1\u010b\1\u0162" + + "\1\u01ab\3\u010b\1\u0205\1\u010b\1\u015f\5\u010b\12\u0205\1\u010b" + + "\1\u0205\1\u010b\1\u0205\1\u010b\1\u0205\1\u010b\1\u0205\41\u010b" + + "\1\u010c\1\u0206\1\u010c\1\u0163\1\u01ad\3\u010c\1\u0206\2\u010c" + + "\1\u015f\4\u010c\12\u0206\1\u010c\1\u0206\1\u010c\1\u0206\1\u010c" + + "\1\u0206\1\u010c\1\u0206\41\u010c\3\u010b\1\u0162\1\u01ab\5\u010b" + + "\1\u015f\70\u010b\3\u010c\1\u0163\1\u01ad\6\u010c\1\u015f\67\u010c"; private static int [] zzUnpackTrans() { int [] result = new int[31021]; @@ -1470,18 +1470,18 @@ private static void zzUnpackTrans(int [] result) { private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\2\1\1\11\12\1\1\11\1\1\1\11\3\1" + - "\3\11\3\1\6\11\1\0\1\11\1\1\3\0\13\1" + - "\1\11\1\1\2\0\1\11\2\0\1\11\1\1\4\0" + - "\4\11\1\1\1\0\1\1\1\0\1\1\1\0\6\1" + - "\1\0\4\1\1\0\1\1\1\0\1\1\1\0\2\1" + - "\2\0\1\1\1\0\1\1\2\0\1\1\1\0\3\1" + - "\1\0\3\1\1\11\4\1\4\0\35\1\1\0\24\1" + - "\1\0\3\1\2\11\2\0\121\1\1\0\10\1\5\0" + - "\1\11\111\1\1\0\7\1\2\0\1\1\2\0\75\1" + - "\1\0\6\1\6\0\57\1\1\0\5\1\3\0\16\1" + - "\1\0\1\1\1\11\1\1\3\0\1\1\1\11\2\1" + - "\10\0"; + "\1\0\2\1\1\11\12\1\1\11\1\1\1\11\3\1" + + "\3\11\3\1\6\11\1\0\1\11\1\1\3\0\13\1" + + "\1\11\1\1\2\0\1\11\2\0\1\11\1\1\4\0" + + "\4\11\1\1\1\0\1\1\1\0\1\1\1\0\6\1" + + "\1\0\4\1\1\0\1\1\1\0\1\1\1\0\2\1" + + "\2\0\1\1\1\0\1\1\2\0\1\1\1\0\3\1" + + "\1\0\3\1\1\11\4\1\4\0\35\1\1\0\24\1" + + "\1\0\3\1\2\11\2\0\121\1\1\0\10\1\5\0" + + "\1\11\111\1\1\0\7\1\2\0\1\1\2\0\75\1" + + "\1\0\6\1\6\0\57\1\1\0\5\1\3\0\16\1" + + "\1\0\1\1\1\11\1\1\3\0\1\1\1\11\2\1" + + "\10\0"; private static int [] zzUnpackAttribute() { int [] result = new int[518]; diff --git a/openpdf-html/src/main/java/org/openpdf/css/parser/property/AbstractPropertyBuilder.java b/openpdf-html/src/main/java/org/openpdf/css/parser/property/AbstractPropertyBuilder.java index 71790903d..d6759bd20 100644 --- a/openpdf-html/src/main/java/org/openpdf/css/parser/property/AbstractPropertyBuilder.java +++ b/openpdf-html/src/main/java/org/openpdf/css/parser/property/AbstractPropertyBuilder.java @@ -71,19 +71,17 @@ protected void checkIdentOrColorType(CSSName cssName, CSSPrimitiveValue value) { protected void checkIdentOrIntegerType(CSSName cssName, CSSPrimitiveValue value) { int type = value.getPrimitiveType(); - if ((type != CSSPrimitiveValue.CSS_IDENT && - type != CSS_NUMBER) || - (type == CSS_NUMBER && - (int) value.getFloatValue(CSS_NUMBER) != - Math.round(value.getFloatValue(CSS_NUMBER)))) { + if ((type != CSSPrimitiveValue.CSS_IDENT && type != CSS_NUMBER) + || (type == CSS_NUMBER && (int) value.getFloatValue(CSS_NUMBER) + != Math.round(value.getFloatValue(CSS_NUMBER)))) { throw new CSSParseException("Value for " + cssName + " must be an identifier or an integer", -1); } } protected void checkInteger(CSSName cssName, CSSPrimitiveValue value) { int type = value.getPrimitiveType(); - if (type != CSS_NUMBER || - (int) value.getFloatValue(CSS_NUMBER) != Math.round(value.getFloatValue(CSS_NUMBER))) { + if (type != CSS_NUMBER || (int) value.getFloatValue(CSS_NUMBER) != Math.round( + value.getFloatValue(CSS_NUMBER))) { throw new CSSParseException("Value for " + cssName + " must be an integer", -1); } } @@ -137,10 +135,8 @@ protected void checkIdentOrString(CSSName cssName, CSSPrimitiveValue value) { protected void checkIdentLengthNumberOrPercentType(CSSName cssName, CSSPrimitiveValue value) { int type = value.getPrimitiveType(); - if (type != CSSPrimitiveValue.CSS_IDENT && - ! isLength(value) && - type != CSSPrimitiveValue.CSS_PERCENTAGE && - type != CSS_NUMBER) { + if (type != CSSPrimitiveValue.CSS_IDENT && ! isLength(value) && type != CSSPrimitiveValue.CSS_PERCENTAGE + && type != CSS_NUMBER) { throw new CSSParseException("Value for " + cssName + " must be an identifier, length, or percentage", -1); } } diff --git a/openpdf-html/src/main/java/org/openpdf/css/parser/property/BackgroundPropertyBuilder.java b/openpdf-html/src/main/java/org/openpdf/css/parser/property/BackgroundPropertyBuilder.java index 30558567b..63c70a654 100644 --- a/openpdf-html/src/main/java/org/openpdf/css/parser/property/BackgroundPropertyBuilder.java +++ b/openpdf-html/src/main/java/org/openpdf/css/parser/property/BackgroundPropertyBuilder.java @@ -49,8 +49,7 @@ private boolean isAppliesToBackgroundPosition(PropertyValue value) { return false; } else { IdentValue ident = IdentValue.valueOf(value.getStringValue()); - return ident != null && - PrimitivePropertyBuilders.BACKGROUND_POSITIONS.get(ident.FS_ID); + return ident != null && PrimitivePropertyBuilders.BACKGROUND_POSITIONS.get(ident.FS_ID); } } diff --git a/openpdf-html/src/main/java/org/openpdf/css/parser/property/ContentPropertyBuilder.java b/openpdf-html/src/main/java/org/openpdf/css/parser/property/ContentPropertyBuilder.java index 8a3fad845..7cab81fe7 100644 --- a/openpdf-html/src/main/java/org/openpdf/css/parser/property/ContentPropertyBuilder.java +++ b/openpdf-html/src/main/java/org/openpdf/css/parser/property/ContentPropertyBuilder.java @@ -76,8 +76,8 @@ public List buildDeclarations( resultValues.add(value); } else if (type == CSSPrimitiveValue.CSS_IDENT) { IdentValue ident = checkIdent(value); - if (ident == IdentValue.OPEN_QUOTE || ident == IdentValue.CLOSE_QUOTE || - ident == IdentValue.NO_CLOSE_QUOTE || ident == IdentValue.NO_OPEN_QUOTE) { + if (ident == IdentValue.OPEN_QUOTE || ident == IdentValue.CLOSE_QUOTE + || ident == IdentValue.NO_CLOSE_QUOTE || ident == IdentValue.NO_OPEN_QUOTE) { resultValues.add(value); } else { throw new CSSParseException( @@ -98,8 +98,8 @@ public List buildDeclarations( } private boolean isFunctionAllowed(FSFunction function) { - return function.is("attr") || function.is("counter") || function.is("counters") || - function.is("element") || function.getName().startsWith("-fs") || function.is("target-counter") || - function.is("leader"); + return function.is("attr") || function.is("counter") || function.is("counters") + || function.is("element") || function.getName().startsWith("-fs") + || function.is("target-counter") || function.is("leader"); } } diff --git a/openpdf-html/src/main/java/org/openpdf/css/parser/property/CounterPropertyBuilder.java b/openpdf-html/src/main/java/org/openpdf/css/parser/property/CounterPropertyBuilder.java index bbc47b4fb..4a81af9df 100644 --- a/openpdf-html/src/main/java/org/openpdf/css/parser/property/CounterPropertyBuilder.java +++ b/openpdf-html/src/main/java/org/openpdf/css/parser/property/CounterPropertyBuilder.java @@ -95,10 +95,10 @@ public List buildDeclarations(CSSName cssName, List values) { if (values.size() != 1) { - throw new CSSParseException("Found " + values.size() + " value(s) for " + - cssName + " when " + 1 + " value(s) were expected", -1); + throw new CSSParseException("Found " + values.size() + " value(s) for " + + cssName + " when " + 1 + " value(s) were expected", -1); } } @@ -672,8 +672,7 @@ public List buildDeclarations(CSSName cssName, List buildDeclarations( } checkInheritAllowed(first, inheritAllowed); - if (values.size() == 1 && - first.getCssValueType() == CSS_INHERIT) { + if (values.size() == 1 && first.getCssValueType() == CSS_INHERIT) { return singletonList( new PropertyDeclaration(cssName, first, important, origin)); } @@ -780,8 +778,7 @@ public List buildDeclarations( return singletonList(new PropertyDeclaration( CSSName.BACKGROUND_POSITION, new PropertyValue(values), important, origin)); } else if (firstIdent != null && secondIdent != null) { - if (firstIdent == TOP || firstIdent == BOTTOM || - secondIdent == LEFT || secondIdent == RIGHT) { + if (firstIdent == TOP || firstIdent == BOTTOM || secondIdent == LEFT || secondIdent == RIGHT) { IdentValue temp = firstIdent; firstIdent = secondIdent; secondIdent = temp; @@ -814,8 +811,7 @@ public List buildDeclarations( } private void checkIdentPosition(CSSName cssName, IdentValue firstIdent, IdentValue secondIdent) { - if (firstIdent == TOP || firstIdent == BOTTOM || - secondIdent == LEFT || secondIdent == RIGHT) { + if (firstIdent == TOP || firstIdent == BOTTOM || secondIdent == LEFT || secondIdent == RIGHT) { throw new CSSParseException("Invalid combination of keywords in " + cssName, -1); } } diff --git a/openpdf-html/src/main/java/org/openpdf/css/parser/property/SizePropertyBuilder.java b/openpdf-html/src/main/java/org/openpdf/css/parser/property/SizePropertyBuilder.java index 4d5951532..d3cc310f5 100644 --- a/openpdf-html/src/main/java/org/openpdf/css/parser/property/SizePropertyBuilder.java +++ b/openpdf-html/src/main/java/org/openpdf/css/parser/property/SizePropertyBuilder.java @@ -118,10 +118,9 @@ public List buildDeclarations( CSSName.FS_PAGE_HEIGHT, value2, important, origin)); return result; - } else if (value1.getPrimitiveType() == CSSPrimitiveValue.CSS_IDENT && - value2.getPrimitiveType() == CSSPrimitiveValue.CSS_IDENT) { - if (value2.getStringValue().equals("landscape") || - value2.getStringValue().equals("portrait")) { + } else if (value1.getPrimitiveType() == CSSPrimitiveValue.CSS_IDENT + && value2.getPrimitiveType() == CSSPrimitiveValue.CSS_IDENT) { + if (value2.getStringValue().equals("landscape") || value2.getStringValue().equals("portrait")) { PropertyValue temp = value1; value1 = value2; value2 = temp; diff --git a/openpdf-html/src/main/java/org/openpdf/css/sheet/MediaRule.java b/openpdf-html/src/main/java/org/openpdf/css/sheet/MediaRule.java index 5e4d98425..6251aa7b0 100644 --- a/openpdf-html/src/main/java/org/openpdf/css/sheet/MediaRule.java +++ b/openpdf-html/src/main/java/org/openpdf/css/sheet/MediaRule.java @@ -42,8 +42,8 @@ public void addMedium(String medium) { @CheckReturnValue public boolean matches(String medium) { - return medium.equalsIgnoreCase("all") || _mediaTypes.contains("all") || - _mediaTypes.contains(medium.toLowerCase(ROOT)); + return medium.equalsIgnoreCase("all") || _mediaTypes.contains("all") + || _mediaTypes.contains(medium.toLowerCase(ROOT)); } @Override diff --git a/openpdf-html/src/main/java/org/openpdf/css/sheet/PageRule.java b/openpdf-html/src/main/java/org/openpdf/css/sheet/PageRule.java index 248302838..b3b5a8487 100644 --- a/openpdf-html/src/main/java/org/openpdf/css/sheet/PageRule.java +++ b/openpdf-html/src/main/java/org/openpdf/css/sheet/PageRule.java @@ -96,9 +96,9 @@ public long getOrder() { public boolean applies(@Nullable String pageName, String pseudoPage) { if (_name == null && _pseudoPage == null) { return true; - } else if (_name == null && - (_pseudoPage.equals(pseudoPage) || - (_pseudoPage.equals("right") && pseudoPage != null && pseudoPage.equals("first")))) { // assume first page is a right page + } else if (_name == null && (_pseudoPage.equals(pseudoPage) + || (_pseudoPage.equals("right") && pseudoPage != null && pseudoPage.equals("first")))) { // assume + // first page is a right page return true; } else if (_name != null && _name.equals(pageName) && _pseudoPage == null) { return true; diff --git a/openpdf-html/src/main/java/org/openpdf/css/sheet/StylesheetInfo.java b/openpdf-html/src/main/java/org/openpdf/css/sheet/StylesheetInfo.java index 09564ca7b..292031d21 100644 --- a/openpdf-html/src/main/java/org/openpdf/css/sheet/StylesheetInfo.java +++ b/openpdf-html/src/main/java/org/openpdf/css/sheet/StylesheetInfo.java @@ -72,8 +72,7 @@ public StylesheetInfo(Origin origin, String uri, List mediaTypes, */ public boolean appliesToMedia(String media) { String mLowerCase = media.toLowerCase(ROOT); - return mLowerCase.equals("all") || - mediaTypes.contains("all") || mediaTypes.contains(mLowerCase); + return mLowerCase.equals("all") || mediaTypes.contains("all") || mediaTypes.contains(mLowerCase); } public static List mediaTypes(String media) { diff --git a/openpdf-html/src/main/java/org/openpdf/css/style/CalculatedStyle.java b/openpdf-html/src/main/java/org/openpdf/css/style/CalculatedStyle.java index bec313511..18fbab812 100644 --- a/openpdf-html/src/main/java/org/openpdf/css/style/CalculatedStyle.java +++ b/openpdf-html/src/main/java/org/openpdf/css/style/CalculatedStyle.java @@ -162,9 +162,9 @@ private CalculatedStyle(CalculatedStyle parent, CascadedStyle matched) { } private boolean checkPaddingAllowed(IdentValue display) { - return display != IdentValue.TABLE_HEADER_GROUP && display != IdentValue.TABLE_ROW_GROUP && - display != IdentValue.TABLE_FOOTER_GROUP && display != IdentValue.TABLE_ROW && - (!isTable(display) || !isCollapseBorders()); + return display != IdentValue.TABLE_HEADER_GROUP && display != IdentValue.TABLE_ROW_GROUP + && display != IdentValue.TABLE_FOOTER_GROUP && display != IdentValue.TABLE_ROW + && (!isTable(display) || !isCollapseBorders()); } private static boolean isTable(IdentValue display) { @@ -233,9 +233,9 @@ public boolean hasAbsoluteUnit(CSSName cssName) { try { isAbs = valueByName(cssName).hasAbsoluteUnit(); } catch (Exception e) { - XRLog.layout(Level.WARNING, "Property " + cssName + " has an assignment we don't understand, " + - "and can't tell if it's an absolute unit or not. Assuming it is not. Exception was: " + - e.getMessage()); + XRLog.layout(Level.WARNING, "Property " + cssName + " has an assignment we don't understand, " + + "and can't tell if it's an absolute unit or not. Assuming it is not. Exception was: " + + e.getMessage()); isAbs = false; } return isAbs; @@ -540,8 +540,8 @@ public FSDerivedValue valueByName(CSSName cssName) { // otherwise, use the initial value (defined by the CSS2 Spec) String initialValue = CSSName.initialValue(cssName); if (initialValue == null) { - throw new XRRuntimeException("Property '" + cssName + "' has no initial values assigned. " + - "Check CSSName declarations."); + throw new XRRuntimeException("Property '" + cssName + "' has no initial values assigned. " + + "Check CSSName declarations."); } if (initialValue.charAt(0) == '=') { CSSName ref = CSSName.getByPropertyName(initialValue.substring(1)); @@ -730,8 +730,8 @@ public boolean isFixedBackground() { } public boolean isInline() { - return isIdent(CSSName.DISPLAY, IdentValue.INLINE) && - ! (isFloated() || isAbsolute() || isFixed() || isRunning()); + return isIdent(CSSName.DISPLAY, IdentValue.INLINE) + && !(isFloated() || isAbsolute() || isFixed() || isRunning()); } public boolean isInlineBlock() { @@ -871,10 +871,9 @@ public boolean establishesBFC() { IdentValue display = getDisplay(); IdentValue position = (IdentValue) value; - return isFloated() || - position == IdentValue.ABSOLUTE || position == IdentValue.FIXED || - display == IdentValue.INLINE_BLOCK || display == IdentValue.TABLE_CELL || - ! isIdent(CSSName.OVERFLOW, IdentValue.VISIBLE); + return isFloated() || position == IdentValue.ABSOLUTE || position == IdentValue.FIXED + || display == IdentValue.INLINE_BLOCK || display == IdentValue.TABLE_CELL + || !isIdent(CSSName.OVERFLOW, IdentValue.VISIBLE); } } @@ -886,14 +885,12 @@ public boolean requiresLayer() { } else { IdentValue position = getIdent(CSSName.POSITION); - if (position == IdentValue.ABSOLUTE || - position == IdentValue.RELATIVE || position == IdentValue.FIXED) { + if (position == IdentValue.ABSOLUTE || position == IdentValue.RELATIVE || position == IdentValue.FIXED) { return true; } IdentValue overflow = getIdent(CSSName.OVERFLOW); - return (overflow == IdentValue.SCROLL || overflow == IdentValue.AUTO) && - isOverflowApplies(); + return (overflow == IdentValue.SCROLL || overflow == IdentValue.AUTO) && isOverflowApplies(); } } @@ -904,8 +901,8 @@ public boolean isRunning() { public boolean isLinearGradient() { FSDerivedValue value = valueByName(CSSName.BACKGROUND_IMAGE); - return value instanceof FunctionValue function && - GeneralUtil.ciEquals(function.getFunction().getName(), "linear-gradient"); + return value instanceof FunctionValue function + && GeneralUtil.ciEquals(function.getFunction().getName(), "linear-gradient"); } public FSLinearGradient getLinearGradient(final CssContext cssContext, final int w, final int h) { @@ -989,8 +986,8 @@ public boolean isNonFlowContent() { } public boolean isMayCollapseMarginsWithChildren() { - return isIdent(CSSName.OVERFLOW, IdentValue.VISIBLE) && - ! (isFloated() || isAbsolute() || isFixed() || isInlineBlock()); + return isIdent(CSSName.OVERFLOW, IdentValue.VISIBLE) + && !(isFloated() || isAbsolute() || isFixed() || isInlineBlock()); } public boolean isAbsFixedOrInlineBlockEquiv() { @@ -1065,8 +1062,8 @@ public boolean isShowEmptyCells() { } public boolean isHasBackground() { - return ! (isIdent(CSSName.BACKGROUND_COLOR, IdentValue.TRANSPARENT) && - isIdent(CSSName.BACKGROUND_IMAGE, IdentValue.NONE)); + return !(isIdent(CSSName.BACKGROUND_COLOR, IdentValue.TRANSPARENT) + && isIdent(CSSName.BACKGROUND_IMAGE, IdentValue.NONE)); } @Nullable @@ -1135,9 +1132,9 @@ public boolean isPaginateTable() { } public boolean isTextJustify() { - return isIdent(CSSName.TEXT_ALIGN, IdentValue.JUSTIFY) && - ! (isIdent(CSSName.WHITE_SPACE, IdentValue.PRE) || - isIdent(CSSName.WHITE_SPACE, IdentValue.PRE_LINE)); + return isIdent(CSSName.TEXT_ALIGN, IdentValue.JUSTIFY) + && !(isIdent(CSSName.WHITE_SPACE, IdentValue.PRE) + || isIdent(CSSName.WHITE_SPACE, IdentValue.PRE_LINE)); } public boolean isListMarkerInside() { diff --git a/openpdf-html/src/main/java/org/openpdf/css/style/DerivedValue.java b/openpdf-html/src/main/java/org/openpdf/css/style/DerivedValue.java index e76220207..a55f7d43b 100644 --- a/openpdf-html/src/main/java/org/openpdf/css/style/DerivedValue.java +++ b/openpdf-html/src/main/java/org/openpdf/css/style/DerivedValue.java @@ -46,8 +46,8 @@ protected DerivedValue( if (cssText == null) { throw new XRRuntimeException( - "CSSValue for '" + name + "' is null after " + - "resolving CSS identifier for value '" + cssStringValue + "'"); + "CSSValue for '" + name + "' is null after " + + "resolving CSS identifier for value '" + cssStringValue + "'"); } this._asString = deriveStringValue(cssText, cssStringValue); } diff --git a/openpdf-html/src/main/java/org/openpdf/css/style/derived/BorderPropertySet.java b/openpdf-html/src/main/java/org/openpdf/css/style/derived/BorderPropertySet.java index e746bdee0..a1bf90975 100644 --- a/openpdf-html/src/main/java/org/openpdf/css/style/derived/BorderPropertySet.java +++ b/openpdf-html/src/main/java/org/openpdf/css/style/derived/BorderPropertySet.java @@ -192,9 +192,8 @@ public static BorderPropertySet newInstance( @Nullable CssContext ctx ) { BorderPropertySet result = new BorderPropertySet(style, ctx); - return result.isAllZeros() && !result.hasHidden() && !result.hasBorderRadius() ? - BorderPropertySet.EMPTY_BORDER : - result; + return result.isAllZeros() && !result.hasHidden() && !result.hasBorderRadius() + ? BorderPropertySet.EMPTY_BORDER : result; } diff --git a/openpdf-html/src/main/java/org/openpdf/css/style/derived/FSLinearGradient.java b/openpdf-html/src/main/java/org/openpdf/css/style/derived/FSLinearGradient.java index d2796957e..7418e1712 100644 --- a/openpdf-html/src/main/java/org/openpdf/css/style/derived/FSLinearGradient.java +++ b/openpdf-html/src/main/java/org/openpdf/css/style/derived/FSLinearGradient.java @@ -347,9 +347,8 @@ public FSLinearGradient(final FSFunction func, final CalculatedStyle style, fina return; } - if (i + 1 < params.size() && - (BuilderUtil.isLength(params.get(i + 1)) || - params.get(i + 1).getPrimitiveType() == PropertyValue.CSS_PERCENTAGE)) { + if (i + 1 < params.size() && (BuilderUtil.isLength(params.get(i + 1)) + || params.get(i + 1).getPrimitiveType() == PropertyValue.CSS_PERCENTAGE)) { final PropertyValue val2 = params.get(i + 1); stopPoints.add(new StopValue(color, val2.getFloatValue(), val2.getPrimitiveType())); i++; diff --git a/openpdf-html/src/main/java/org/openpdf/css/style/derived/LengthValue.java b/openpdf-html/src/main/java/org/openpdf/css/style/derived/LengthValue.java index 8d490d15d..d1b65b774 100644 --- a/openpdf-html/src/main/java/org/openpdf/css/style/derived/LengthValue.java +++ b/openpdf-html/src/main/java/org/openpdf/css/style/derived/LengthValue.java @@ -90,8 +90,7 @@ public boolean hasAbsoluteUnit() { @Override public boolean isDependentOnFontSize() { - return _lengthPrimitiveType == CSSPrimitiveValue.CSS_EXS || - _lengthPrimitiveType == CSSPrimitiveValue.CSS_EMS; + return _lengthPrimitiveType == CSSPrimitiveValue.CSS_EXS || _lengthPrimitiveType == CSSPrimitiveValue.CSS_EMS; } public static float calcFloatProportionalValue(CalculatedStyle style, @@ -178,20 +177,20 @@ public static float calcFloatProportionalValue(CalculatedStyle style, default: // nothing to do, we only convert those listed above XRLog.cascade(Level.SEVERE, - "Asked to convert " + cssName + " from relative to absolute, " + - " don't recognize the datatype " + - "'" + ValueConstants.stringForSACPrimitiveType(primitiveType) + "' " + "Asked to convert " + cssName + " from relative to absolute, " + + " don't recognize the datatype " + + "'" + ValueConstants.stringForSACPrimitiveType(primitiveType) + "' " + primitiveType + "(" + stringValue + ")"); } if (XRLog.isLoggingEnabled()) { if (cssName == CSSName.FONT_SIZE) { - XRLog.cascade(Level.FINEST, cssName + ", relative= " + - relVal + " (" + stringValue + "), absolute= " + XRLog.cascade(Level.FINEST, cssName + ", relative= " + + relVal + " (" + stringValue + "), absolute= " + absVal); } else { - XRLog.cascade(Level.FINEST, cssName + ", relative= " + - relVal + " (" + stringValue + "), absolute= " + XRLog.cascade(Level.FINEST, cssName + ", relative= " + + relVal + " (" + stringValue + "), absolute= " + absVal + " using base=" + baseValue); } } diff --git a/openpdf-html/src/main/java/org/openpdf/layout/BlockBoxing.java b/openpdf-html/src/main/java/org/openpdf/layout/BlockBoxing.java index c3ec0c3cc..97c099d6f 100644 --- a/openpdf-html/src/main/java/org/openpdf/layout/BlockBoxing.java +++ b/openpdf-html/src/main/java/org/openpdf/layout/BlockBoxing.java @@ -327,8 +327,7 @@ private static void repositionBox(LayoutContext c, BlockBox child, int trimmedPa moved = true; } if (c.isPrint()) { - boolean pageClear = child.isNeedPageClear() || - child.getStyle().isForcePageBreakBefore(); + boolean pageClear = child.isNeedPageClear() || child.getStyle().isForcePageBreakBefore(); boolean needNewPageContext = child.checkPageContext(c); if (needNewPageContext && trimmedPageCount != NO_PAGE_TRIM) { @@ -373,9 +372,9 @@ private void markRun(int offset, BlockBox previous, BlockBox current) { IdentValue currentBefore = current.getStyle().getIdent(CSSName.PAGE_BREAK_BEFORE); - if ((previousAfter == IdentValue.AVOID && currentBefore == IdentValue.AUTO) || - (previousAfter == IdentValue.AUTO && currentBefore == IdentValue.AVOID) || - (previousAfter == IdentValue.AVOID && currentBefore == IdentValue.AVOID)) { + if ((previousAfter == IdentValue.AVOID && currentBefore == IdentValue.AUTO) + || (previousAfter == IdentValue.AUTO && currentBefore == IdentValue.AVOID) + || (previousAfter == IdentValue.AVOID && currentBefore == IdentValue.AVOID)) { if (! previousData.isInRun()) { previousData.setStartsRun(); } diff --git a/openpdf-html/src/main/java/org/openpdf/layout/BlockFormattingContext.java b/openpdf-html/src/main/java/org/openpdf/layout/BlockFormattingContext.java index 5c3b73431..e2769d3ab 100644 --- a/openpdf-html/src/main/java/org/openpdf/layout/BlockFormattingContext.java +++ b/openpdf-html/src/main/java/org/openpdf/layout/BlockFormattingContext.java @@ -68,8 +68,8 @@ public int getRightFloatDistance(CssContext cssCtx, LineBox line, int containing } public int getFloatDistance(CssContext cssCtx, LineBox line, int containingBlockWidth) { - return getLeftFloatDistance(cssCtx, line, containingBlockWidth) + - getRightFloatDistance(cssCtx, line, containingBlockWidth); + return getLeftFloatDistance(cssCtx, line, containingBlockWidth) + + getRightFloatDistance(cssCtx, line, containingBlockWidth); } public int getNextLineBoxDelta(CssContext cssCtx, LineBox line, int containingBlockWidth) { diff --git a/openpdf-html/src/main/java/org/openpdf/layout/BoxBuilder.java b/openpdf-html/src/main/java/org/openpdf/layout/BoxBuilder.java index 7f5884358..07f548c78 100644 --- a/openpdf-html/src/main/java/org/openpdf/layout/BoxBuilder.java +++ b/openpdf-html/src/main/java/org/openpdf/layout/BoxBuilder.java @@ -102,9 +102,8 @@ public static BlockBox createRootBox(LayoutContext c, Document document) { CalculatedStyle style = c.getSharedContext().getStyle(root); - BlockBox result = style.isTable() || style.isInlineTable() ? - new TableBox(root, style, false) : - new BlockBox(root, style, false); + BlockBox result = style.isTable() || style.isInlineTable() + ? new TableBox(root, style, false) : new BlockBox(root, style, false); c.resolveCounters(style); @@ -245,8 +244,7 @@ private static TableCellBox createMarginBox( return null; } - if (style.isIdent(CSSName.CONTENT, IdentValue.NONE) || - style.isIdent(CSSName.CONTENT, IdentValue.NORMAL)) { + if (style.isIdent(CSSName.CONTENT, IdentValue.NONE) || style.isIdent(CSSName.CONTENT, IdentValue.NORMAL)) { hasContent = false; } @@ -464,10 +462,10 @@ private static void resolveTableContent( private static boolean containsOrphanedTableContent(List children) { for (Styleable child : children) { IdentValue display = child.getStyle().getIdent(CSSName.DISPLAY); - if (display == IdentValue.TABLE_HEADER_GROUP || - display == IdentValue.TABLE_ROW_GROUP || - display == IdentValue.TABLE_FOOTER_GROUP || - display == IdentValue.TABLE_ROW) { + if (display == IdentValue.TABLE_HEADER_GROUP + || display == IdentValue.TABLE_ROW_GROUP + || display == IdentValue.TABLE_FOOTER_GROUP + || display == IdentValue.TABLE_ROW) { return true; } } @@ -630,25 +628,25 @@ private static IdentValue getPreviousTableNestingLevel(IdentValue display) { } private static boolean isProperTableNesting(IdentValue parent, IdentValue child) { - return (parent == IdentValue.TABLE && (child == IdentValue.TABLE_HEADER_GROUP || - child == IdentValue.TABLE_ROW_GROUP || - child == IdentValue.TABLE_FOOTER_GROUP || - child == IdentValue.TABLE_CAPTION)) - || ((parent == IdentValue.TABLE_HEADER_GROUP || - parent == IdentValue.TABLE_ROW_GROUP || - parent == IdentValue.TABLE_FOOTER_GROUP) && - child == IdentValue.TABLE_ROW) + return (parent == IdentValue.TABLE && (child == IdentValue.TABLE_HEADER_GROUP + || child == IdentValue.TABLE_ROW_GROUP + || child == IdentValue.TABLE_FOOTER_GROUP + || child == IdentValue.TABLE_CAPTION)) + || ((parent == IdentValue.TABLE_HEADER_GROUP + || parent == IdentValue.TABLE_ROW_GROUP + || parent == IdentValue.TABLE_FOOTER_GROUP) + && child == IdentValue.TABLE_ROW) || (parent == IdentValue.TABLE_ROW && child == IdentValue.TABLE_CELL) - || (parent == IdentValue.INLINE_TABLE && (child == IdentValue.TABLE_HEADER_GROUP || - child == IdentValue.TABLE_ROW_GROUP || - child == IdentValue.TABLE_FOOTER_GROUP)); + || (parent == IdentValue.INLINE_TABLE && (child == IdentValue.TABLE_HEADER_GROUP + || child == IdentValue.TABLE_ROW_GROUP + || child == IdentValue.TABLE_FOOTER_GROUP)); } private static boolean isNestingTableContent(IdentValue display) { - return display == IdentValue.TABLE || display == IdentValue.INLINE_TABLE || - display == IdentValue.TABLE_HEADER_GROUP || display == IdentValue.TABLE_ROW_GROUP || - display == IdentValue.TABLE_FOOTER_GROUP || display == IdentValue.TABLE_ROW; + return display == IdentValue.TABLE || display == IdentValue.INLINE_TABLE + || display == IdentValue.TABLE_HEADER_GROUP || display == IdentValue.TABLE_ROW_GROUP + || display == IdentValue.TABLE_FOOTER_GROUP || display == IdentValue.TABLE_ROW; } private static boolean isAttrFunction(FSFunction function) { @@ -964,9 +962,8 @@ private static List createGeneratedMarginBoxContent( private static BlockBox createBlockBox( Element source, CalculatedStyle style, ChildBoxInfo info, boolean generated, boolean anonymous) { if (style.isFloated() && !(style.isAbsolute() || style.isFixed())) { - BlockBox result = style.isTable() || style.isInlineTable() ? - new TableBox(source, style, anonymous) : - new BlockBox(source, style, anonymous); + BlockBox result = style.isTable() || style.isInlineTable() + ? new TableBox(source, style, anonymous) : new BlockBox(source, style, anonymous); result.setFloatedBoxData(new FloatedBoxData()); return result; } else if (style.isSpecifiedAsBlock()) { @@ -1026,8 +1023,8 @@ private static void addColumnOrColumnGroup( private static InlineBox createInlineBox( String text, Element parent, CalculatedStyle parentStyle, @Nullable Text node) { - InlineBox result = parentStyle.isInline() && !(parent.getParentNode() instanceof Document) ? - new InlineBox(text, node, null, null, parent, null, parentStyle) : + InlineBox result = parentStyle.isInline() && !(parent.getParentNode() instanceof Document) + ? new InlineBox(text, node, null, null, parent, null, parentStyle) : new InlineBox(text, node, null, null, null, null, parentStyle.createAnonymousStyle(INLINE)); result.applyTextTransform(); @@ -1063,8 +1060,8 @@ private static void createChildren( if (style.isIdent(CSSName.DISPLAY, IdentValue.TABLE_COLUMN) || style.isIdent(CSSName.DISPLAY, IdentValue.TABLE_COLUMN_GROUP)) { - if ((blockParent != null) && - (blockParent.getStyle().isTable() || blockParent.getStyle().isInlineTable())) { + if ((blockParent != null) + && (blockParent.getStyle().isTable() || blockParent.getStyle().isInlineTable())) { TableBox table = (TableBox) blockParent; addColumnOrColumnGroup(c, table, element, style); } @@ -1217,8 +1214,7 @@ private static void insertAnonymousBlocks(Box parent, List children, List savedParents = null; for (Styleable child : children) { - if (child.getStyle().isLaidOutInInlineContext() && - !(layoutRunningBlocks && child.getStyle().isRunning())) { + if (child.getStyle().isLaidOutInInlineContext() && !(layoutRunningBlocks && child.getStyle().isRunning())) { inline.add(child); if (child.getStyle().isInline()) { diff --git a/openpdf-html/src/main/java/org/openpdf/layout/BoxCollector.java b/openpdf-html/src/main/java/org/openpdf/layout/BoxCollector.java index 70e617692..2b14a8ba5 100644 --- a/openpdf-html/src/main/java/org/openpdf/layout/BoxCollector.java +++ b/openpdf-html/src/main/java/org/openpdf/layout/BoxCollector.java @@ -109,16 +109,16 @@ public void collect( } if (container instanceof LineBox) { - if (intersectsAggregateBounds(clip, container) || - (container.getPaintingInfo() == null && container.intersects(c, clip))) { + if (intersectsAggregateBounds(clip, container) + || (container.getPaintingInfo() == null && container.intersects(c, clip))) { inlineContent.add(container); ((LineBox) container).addAllChildren(inlineContent, layer); } } else { boolean intersectsAggregateBounds = intersectsAggregateBounds(clip, container); if (container.getLayer() == null || !(container instanceof BlockBox)) { - if (intersectsAggregateBounds || - (container.getPaintingInfo() == null && container.intersects(c, clip))) { + if (intersectsAggregateBounds + || (container.getPaintingInfo() == null && container.intersects(c, clip))) { blockContent.add(container); if (container.getStyle().isTable() && c instanceof RenderingContext) { // HACK assert container instanceof TableBox; diff --git a/openpdf-html/src/main/java/org/openpdf/layout/FloatManager.java b/openpdf-html/src/main/java/org/openpdf/layout/FloatManager.java index 5494e195c..8f0258e40 100644 --- a/openpdf-html/src/main/java/org/openpdf/layout/FloatManager.java +++ b/openpdf-html/src/main/java/org/openpdf/layout/FloatManager.java @@ -86,8 +86,7 @@ private void position(CssContext cssCtx, BlockFormattingContext bfc, alignToLastOpposingFloat(cssCtx, bfc, current, direction); alignToLastFloat(cssCtx, bfc, current, direction); - if (!fitsInContainingBlock(current) || - overlaps(cssCtx, bfc, current, getFloats(direction))) { + if (!fitsInContainingBlock(current) || overlaps(cssCtx, bfc, current, getFloats(direction))) { moveAllTheWayOver(current, direction); moveFloatBelow(cssCtx, bfc, current, getFloats(direction)); } @@ -187,8 +186,8 @@ private void moveAllTheWayOver(BlockBox current, Direction direction) { } private boolean fitsInContainingBlock(BlockBox current) { - return current.getX() >= 0 && - (current.getX() + current.getWidth()) <= current.getContainingBlock().getContentWidth(); + return current.getX() >= 0 + && (current.getX() + current.getWidth()) <= current.getContainingBlock().getContentWidth(); } private int findLowestY(CssContext cssCtx, List floats) { diff --git a/openpdf-html/src/main/java/org/openpdf/layout/InlineBoxing.java b/openpdf-html/src/main/java/org/openpdf/layout/InlineBoxing.java index 39a39411d..a5c52098a 100644 --- a/openpdf-html/src/main/java/org/openpdf/layout/InlineBoxing.java +++ b/openpdf-html/src/main/java/org/openpdf/layout/InlineBoxing.java @@ -159,8 +159,8 @@ public static void layoutContent(LayoutContext c, BlockBox box, int initialY, in c, maxAvailableWidth, Edge.RIGHT); } - String master = iB.isDynamicFunction() ? - iB.getContentFunction().getLayoutReplacementText() : iB.getText(); + String master = + iB.isDynamicFunction() ? iB.getContentFunction().getLayoutReplacementText() : iB.getText(); LineBreakContext lbContext = new LineBreakContext(master, iB.getTextNode()); int q = 0; @@ -219,8 +219,7 @@ public static void layoutContent(LayoutContext c, BlockBox box, int initialY, in } } - if (!lbContext.isUnbreakable() || - (lbContext.isUnbreakable() && !currentLine.isContainsContent())) { + if (!lbContext.isUnbreakable() || (lbContext.isUnbreakable() && !currentLine.isContainsContent())) { if (iB.isDynamicFunction()) { inlineText.setFunctionData(new FunctionData( iB.getContentFunction(), iB.getFunction())); @@ -289,8 +288,8 @@ public static void layoutContent(LayoutContext c, BlockBox box, int initialY, in currentIB.setEndsHere(true); if (currentIB.getStyle().requiresLayer()) { - if (!currentIB.isPending() && (currentIB.getElement() == null || - currentIB.getElement() != c.getLayer().getMaster().getElement())) { + if (!currentIB.isPending() && (currentIB.getElement() == null + || currentIB.getElement() != c.getLayer().getMaster().getElement())) { throw new RuntimeException("internal error"); } if (!currentIB.isPending()) { @@ -300,8 +299,8 @@ public static void layoutContent(LayoutContext c, BlockBox box, int initialY, in } } - currentIB = currentIB.getParent() instanceof LineBox ? - null : (InlineLayoutBox) currentIB.getParent(); + currentIB = + currentIB.getParent() instanceof LineBox ? null : (InlineLayoutBox) currentIB.getParent(); } } else { BlockBox child = (BlockBox) node; @@ -577,8 +576,7 @@ private static InlineBoxMeasurements calculateInlineMeasurements(LayoutContext c int halfLeading = Math.round((lineHeight - iB.getStyle().getFont(c).size) / 2); if (halfLeading > 0) { - halfLeading = Math.round((lineHeight - - (fm.getDescent() + fm.getAscent())) / 2); + halfLeading = Math.round((lineHeight - (fm.getDescent() + fm.getAscent())) / 2); } iB.setBaseline(Math.round(fm.getAscent())); @@ -598,9 +596,7 @@ private static InlineBoxMeasurements calculateInlineMeasurements(LayoutContext c iB.getY(), (int) (baseline + fm.getDescent()), inlineTop, Math.round(inlineTop + lineHeight), (int) Math.floor(iB.getY() - border.top() - padding.top()), - (int) Math.ceil(iB.getY() + - fm.getAscent() + fm.getDescent() + - border.bottom() + padding.bottom()) + (int) Math.ceil(iB.getY() + fm.getAscent() + fm.getDescent() + border.bottom() + padding.bottom()) ); } @@ -668,8 +664,8 @@ private static void alignInlineContent(LayoutContext c, Box box, CalculatedStyle style = box.getStyle(); if (style.isLength(CSSName.VERTICAL_ALIGN)) { - box.setY((int) (measurements.getBaseline() - ascent - - style.getFloatPropertyProportionalTo(CSSName.VERTICAL_ALIGN, style.getLineHeight(c), c))); + box.setY((int) (measurements.getBaseline() - ascent + - style.getFloatPropertyProportionalTo(CSSName.VERTICAL_ALIGN, style.getLineHeight(c), c))); } else { IdentValue vAlign = style.getIdent(CSSName.VERTICAL_ALIGN); @@ -697,11 +693,9 @@ private static InlineBoxMeasurements getInitialMeasurements( LayoutContext c, Box container, FSFontMetrics strutM) { float lineHeight = container.getStyle().getLineHeight(c); - int halfLeading = Math.round((lineHeight - - container.getStyle().getFont(c).size) / 2); + int halfLeading = Math.round((lineHeight - container.getStyle().getFont(c).size) / 2); if (halfLeading > 0) { - halfLeading = Math.round((lineHeight - - (strutM.getDescent() + strutM.getAscent())) / 2); + halfLeading = Math.round((lineHeight - (strutM.getDescent() + strutM.getAscent())) / 2); } int baseline = (int) (halfLeading + strutM.getAscent()); @@ -754,9 +748,8 @@ private static void saveLine(LineBox current, LayoutContext c, // XXX Revisit this. Do we need this when dealing with unbreakable // text? Is a line required to always have a minimum height? - if (current.getHeight() != 0 && - current.getHeight() < minHeight && - ! current.isContainsOnlyBlockLevelContent()) { + if (current.getHeight() != 0 && current.getHeight() < minHeight + && !current.isContainsOnlyBlockLevelContent()) { current.setHeight(minHeight); } @@ -790,8 +783,8 @@ private static void saveLine(LineBox current, LayoutContext c, } private static void alignLine(final LayoutContext c, final LineBox current, final int maxAvailableWidth) { - FloatDistances distances = (!current.isContainsDynamicFunction() && !current.getParent().getStyle().isTextJustify()) ? - new DynamicFloatDistances(c, current, maxAvailableWidth) : + FloatDistances distances = (!current.isContainsDynamicFunction() && !current.getParent().getStyle().isTextJustify()) + ? new DynamicFloatDistances(c, current, maxAvailableWidth) : new StaticFloatDistances(c, current, maxAvailableWidth); current.setFloatDistances(distances); current.align(false); @@ -875,8 +868,8 @@ private static int processOutOfFlowContent( private static boolean hasTrimmableLeadingSpace( LineBox line, CalculatedStyle style, LineBreakContext lbContext, boolean zeroWidthInlineBlock) { - if ((! line.isContainsContent() || zeroWidthInlineBlock) && - lbContext.getStartSubstring().startsWith(WhitespaceStripper.SPACE)) { + if ((! line.isContainsContent() || zeroWidthInlineBlock) + && lbContext.getStartSubstring().startsWith(WhitespaceStripper.SPACE)) { IdentValue whitespace = style.getWhitespace(); return whitespace == IdentValue.NORMAL || whitespace == IdentValue.NOWRAP diff --git a/openpdf-html/src/main/java/org/openpdf/layout/Layer.java b/openpdf-html/src/main/java/org/openpdf/layout/Layer.java index da645d36a..44286938f 100644 --- a/openpdf-html/src/main/java/org/openpdf/layout/Layer.java +++ b/openpdf-html/src/main/java/org/openpdf/layout/Layer.java @@ -584,8 +584,7 @@ public void positionChildren(LayoutContext c) { private void position(LayoutContext c) { if (getMaster().getStyle().isAbsolute() && ! c.isPrint()) { ((BlockBox) getMaster()).positionAbsolute(c, Position.BOTH); - } else if (getMaster().getStyle().isRelative() && - (isInline() || ((BlockBox) getMaster()).isInline())) { + } else if (getMaster().getStyle().isRelative() && (isInline() || ((BlockBox) getMaster()).isInline())) { getMaster().positionRelative(c); if (! isInline()) { getMaster().calcCanvasLocation(); @@ -691,8 +690,8 @@ private void layoutAbsoluteChildren(LayoutContext c) { for (Layer layer : children) { if (layer.isRequiresLayout()) { layoutAbsoluteChild(c, layer); - if (layer.getMaster().getStyle().isAvoidPageBreakInside() && - layer.getMaster().crossesPageBreak(c)) { + if (layer.getMaster().getStyle().isAvoidPageBreakInside() + && layer.getMaster().crossesPageBreak(c)) { layer.getMaster().reset(c); ((BlockBox) layer.getMaster()).setNeedPageClear(true); layoutAbsoluteChild(c, layer); @@ -754,8 +753,8 @@ public void addPage(CssContext c) { List pages = getPages(); int pagesCount = pages.size(); String pseudoPage = pseudoPage(pagesCount); - PageBox pageBox = pages.isEmpty() ? - createPageBox(c, pseudoPage, 0, pagesCount) : + PageBox pageBox = pages.isEmpty() + ? createPageBox(c, pseudoPage, 0, pagesCount) : createPageBox(c, pseudoPage, pages.get(pagesCount - 1).getBottom(), pagesCount); pages.add(pageBox); } diff --git a/openpdf-html/src/main/java/org/openpdf/layout/LayoutContext.java b/openpdf-html/src/main/java/org/openpdf/layout/LayoutContext.java index 204071a9c..883b43fec 100644 --- a/openpdf-html/src/main/java/org/openpdf/layout/LayoutContext.java +++ b/openpdf-html/src/main/java/org/openpdf/layout/LayoutContext.java @@ -144,8 +144,8 @@ public void reInit(boolean keepLayers) { } public LayoutState captureLayoutState() { - return isPrint() ? - new LayoutState(_firstLines, _firstLetters, _currentMarkerData, _blockFormattingContexts, getPageName(), getExtraSpaceBottom(), getExtraSpaceTop(), getNoPageBreak()) : + return isPrint() + ? new LayoutState(_firstLines, _firstLetters, _currentMarkerData, _blockFormattingContexts, getPageName(), getExtraSpaceBottom(), getExtraSpaceTop(), getNoPageBreak()) : new LayoutState(_firstLines, _firstLetters, _currentMarkerData, _blockFormattingContexts); } @@ -167,8 +167,8 @@ public void restoreLayoutState(LayoutState layoutState) { } public LayoutState copyStateForRelayout() { - return isPrint() ? - new LayoutState(_firstLines.copyOf(), _firstLetters.copyOf(), _currentMarkerData, emptyList(), getPageName(), 0, 0, 0) : + return isPrint() + ? new LayoutState(_firstLines.copyOf(), _firstLetters.copyOf(), _currentMarkerData, emptyList(), getPageName(), 0, 0, 0) : new LayoutState(_firstLines.copyOf(), _firstLetters.copyOf(), _currentMarkerData, emptyList()); } diff --git a/openpdf-html/src/main/java/org/openpdf/layout/LayoutUtil.java b/openpdf-html/src/main/java/org/openpdf/layout/LayoutUtil.java index 4a6164591..f1872fde7 100644 --- a/openpdf-html/src/main/java/org/openpdf/layout/LayoutUtil.java +++ b/openpdf-html/src/main/java/org/openpdf/layout/LayoutUtil.java @@ -84,9 +84,8 @@ public static FloatLayoutResult layoutFloated( c.getBlockFormattingContext().floatBox(c, block); boolean pending = false; - if (pendingFloats != null && - (!pendingFloats.isEmpty() || block.getWidth() > avail) && - currentLine.isContainsContent()) { + if (pendingFloats != null + && (!pendingFloats.isEmpty() || block.getWidth() > avail) && currentLine.isContainsContent()) { block.reset(c); pending = true; } else { diff --git a/openpdf-html/src/main/java/org/openpdf/layout/VerticalAlignContext.java b/openpdf-html/src/main/java/org/openpdf/layout/VerticalAlignContext.java index 8709f8b9d..02d3c951a 100644 --- a/openpdf-html/src/main/java/org/openpdf/layout/VerticalAlignContext.java +++ b/openpdf-html/src/main/java/org/openpdf/layout/VerticalAlignContext.java @@ -223,19 +223,16 @@ private void moveInlineContents(Box box, int ty) { private boolean canBeMoved(Box box) { IdentValue vAlign = box.getStyle().getIdent(CSSName.VERTICAL_ALIGN); - return box == _root || - ! (vAlign == IdentValue.TOP || vAlign == IdentValue.BOTTOM); + return box == _root || !(vAlign == IdentValue.TOP || vAlign == IdentValue.BOTTOM); } public void align() { IdentValue vAlign = _root.getStyle().getIdent(CSSName.VERTICAL_ALIGN); final int delta; if (vAlign == IdentValue.TOP) { - delta = _verticalAlignContext.getRoot().getInlineTop() - - _verticalAlignContext.getInlineTop(); + delta = _verticalAlignContext.getRoot().getInlineTop() - _verticalAlignContext.getInlineTop(); } else if (vAlign == IdentValue.BOTTOM) { - delta = _verticalAlignContext.getRoot().getInlineBottom() - - _verticalAlignContext.getInlineBottom(); + delta = _verticalAlignContext.getRoot().getInlineBottom() - _verticalAlignContext.getInlineBottom(); } else { throw new RuntimeException("internal error"); } diff --git a/openpdf-html/src/main/java/org/openpdf/layout/WhitespaceStripper.java b/openpdf-html/src/main/java/org/openpdf/layout/WhitespaceStripper.java index 0cd9bf73d..0983e70ac 100644 --- a/openpdf-html/src/main/java/org/openpdf/layout/WhitespaceStripper.java +++ b/openpdf-html/src/main/java/org/openpdf/layout/WhitespaceStripper.java @@ -113,8 +113,8 @@ private static boolean stripWhitespace(InlineBox iB, boolean collapseLeading) { text = collapseWhitespace(iB, whitespace, text, collapseLeading); - boolean collapseNext = (text.endsWith(SPACE) && - (whitespace == IdentValue.NORMAL || whitespace == IdentValue.NOWRAP || whitespace == IdentValue.PRE)); + boolean collapseNext = (text.endsWith(SPACE) + && (whitespace == IdentValue.NORMAL || whitespace == IdentValue.NOWRAP || whitespace == IdentValue.PRE)); iB.setText(text); if (text.trim().isEmpty()) { @@ -152,8 +152,7 @@ private static String collapseWhitespace(InlineBox iB, IdentValue whitespace, St if (whitespace == IdentValue.NORMAL || whitespace == IdentValue.NOWRAP) { // collapse first space against prev inline - if (text.startsWith(SPACE) && - collapseLeading) { + if (text.startsWith(SPACE) && collapseLeading) { text = text.substring(1); } } diff --git a/openpdf-html/src/main/java/org/openpdf/layout/breaker/Breaker.java b/openpdf-html/src/main/java/org/openpdf/layout/breaker/Breaker.java index d7f814c55..fb020547f 100644 --- a/openpdf-html/src/main/java/org/openpdf/layout/breaker/Breaker.java +++ b/openpdf-html/src/main/java/org/openpdf/layout/breaker/Breaker.java @@ -89,9 +89,7 @@ public static void breakText(LayoutContext c, } //check if we should break on the next newline - if (whitespace == IdentValue.PRE || - whitespace == IdentValue.PRE_WRAP || - whitespace == IdentValue.PRE_LINE) { + if (whitespace == IdentValue.PRE || whitespace == IdentValue.PRE_WRAP || whitespace == IdentValue.PRE_LINE) { int n = context.getStartSubstring().indexOf(WhitespaceStripper.EOL); if (n > -1) { context.setEnd(context.getStart() + n + 1); @@ -107,8 +105,7 @@ public static void breakText(LayoutContext c, } //check if we may wrap - if (whitespace == IdentValue.PRE || - (context.isNeedsNewLine() && context.getWidth() <= avail)) { + if (whitespace == IdentValue.PRE || (context.isNeedsNewLine() && context.getWidth() <= avail)) { return; } diff --git a/openpdf-html/src/main/java/org/openpdf/newtable/TableBox.java b/openpdf-html/src/main/java/org/openpdf/newtable/TableBox.java index 302de021a..eea067e81 100644 --- a/openpdf-html/src/main/java/org/openpdf/newtable/TableBox.java +++ b/openpdf-html/src/main/java/org/openpdf/newtable/TableBox.java @@ -280,14 +280,10 @@ private void layoutTable(LayoutContext c) { prevExtraTop = c.getExtraSpaceTop(); prevExtraBottom = c.getExtraSpaceBottom(); - c.setExtraSpaceTop(c.getExtraSpaceTop() + - (int) getPadding(c).top() + - (int) getBorder(c).top() + - getStyle().getBorderVSpacing(c)); - c.setExtraSpaceBottom(c.getExtraSpaceBottom() + - (int) getPadding(c).bottom() + - (int) getBorder(c).bottom() + - getStyle().getBorderVSpacing(c)); + c.setExtraSpaceTop(c.getExtraSpaceTop() + (int) getPadding(c).top() + + (int) getBorder(c).top() + getStyle().getBorderVSpacing(c)); + c.setExtraSpaceBottom(c.getExtraSpaceBottom() + (int) getPadding(c).bottom() + + (int) getBorder(c).bottom() + getStyle().getBorderVSpacing(c)); } super.layout(c); @@ -361,9 +357,7 @@ private int layoutRunningFooter(LayoutContext c) { section.initContainingLayer(c); section.layout(c); - c.setExtraSpaceBottom(c.getExtraSpaceBottom() + - section.getHeight() + - getStyle().getBorderVSpacing(c)); + c.setExtraSpaceBottom(c.getExtraSpaceBottom() + section.getHeight() + getStyle().getBorderVSpacing(c)); result = section.getHeight(); @@ -406,8 +400,8 @@ public void analyzePageBreaks(LayoutContext c, @Nullable ContentLimitContainer c b.analyzePageBreaks(c, _contentLimitContainer); } - if (container != null && _contentLimitContainer.isContainsMultiplePages() && - (getExtraSpaceTop() > 0 || getExtraSpaceBottom() > 0)) { + if (container != null && _contentLimitContainer.isContainsMultiplePages() + && (getExtraSpaceTop() > 0 || getExtraSpaceBottom() > 0)) { propagateExtraSpace(c, container, _contentLimitContainer, getExtraSpaceTop(), getExtraSpaceBottom()); } } @@ -440,8 +434,7 @@ private Rectangle getContentLimitedBorderEdge(RenderingContext c) { if (limit == null) { XRLog.layout(Level.WARNING, "No content limit found"); } else { - if (limit.getTop() == ContentLimit.UNDEFINED || - limit.getBottom() == ContentLimit.UNDEFINED) { + if (limit.getTop() == ContentLimit.UNDEFINED || limit.getBottom() == ContentLimit.UNDEFINED) { return result; } @@ -452,8 +445,7 @@ private Rectangle getContentLimitedBorderEdge(RenderingContext c) { if (c.getPageNo() == _contentLimitContainer.getInitialPageNo()) { top = result.y; } else { - top = limit.getTop() - (int) padding.top() - - (int) border.top() - getStyle().getBorderVSpacing(c); + top = limit.getTop() - (int) padding.top() - (int) border.top() - getStyle().getBorderVSpacing(c); if (getChildCount() > 0) { TableSectionBox section = (TableSectionBox) getChild(0); if (section.isHeader()) { @@ -466,8 +458,8 @@ private Rectangle getContentLimitedBorderEdge(RenderingContext c) { if (c.getPageNo() == _contentLimitContainer.getLastPageNo()) { bottom = result.y + result.height; } else { - bottom = limit.getBottom() + (int) padding.bottom() + - (int) border.bottom() + getStyle().getBorderVSpacing(c); + bottom = limit.getBottom() + (int) padding.bottom() + (int) border.bottom() + + getStyle().getBorderVSpacing(c); if (getChildCount() > 0) { TableSectionBox section = (TableSectionBox) getChild(getChildCount() - 1); if (section.isFooter()) { @@ -493,8 +485,7 @@ public void updateHeaderFooterPosition(RenderingContext c) { } private void updateHeaderPosition(RenderingContext c, ContentLimit limit) { - if (limit.getTop() != ContentLimit.UNDEFINED || - c.getPageNo() == _contentLimitContainer.getInitialPageNo()) { + if (limit.getTop() != ContentLimit.UNDEFINED || c.getPageNo() == _contentLimitContainer.getInitialPageNo()) { if (getChildCount() > 0) { TableSectionBox section = (TableSectionBox) getChild(0); if (section.isHeader()) { @@ -507,9 +498,7 @@ private void updateHeaderPosition(RenderingContext c, ContentLimit limit) { if (c.getPageNo() == _contentLimitContainer.getInitialPageNo()) { newAbsY = section.getOriginalAbsY(); } else { - newAbsY = limit.getTop() - - getStyle().getBorderVSpacing(c) - - section.getHeight(); + newAbsY = limit.getTop() - getStyle().getBorderVSpacing(c) - section.getHeight(); } int diff = newAbsY - section.getAbsY(); @@ -526,8 +515,7 @@ private void updateHeaderPosition(RenderingContext c, ContentLimit limit) { } private void updateFooterPosition(RenderingContext c, ContentLimit limit) { - if (limit.getBottom() != ContentLimit.UNDEFINED || - c.getPageNo() == _contentLimitContainer.getLastPageNo()) { + if (limit.getBottom() != ContentLimit.UNDEFINED || c.getPageNo() == _contentLimitContainer.getLastPageNo()) { if (getChildCount() > 0) { TableSectionBox section = (TableSectionBox) getChild(getChildCount() - 1); if (section.isFooter()) { @@ -588,8 +576,7 @@ private void calcPageClearance(LayoutContext c) { private void calcWidth() { if (getMinWidth() > getWidth()) { setContentWidth(getContentWidth() + getMinWidth() - getWidth()); - } else if (getStyle().isIdent(CSSName.WIDTH, IdentValue.AUTO) && - getMaxWidth() < getWidth()) { + } else if (getStyle().isIdent(CSSName.WIDTH, IdentValue.AUTO) && getMaxWidth() < getWidth()) { setContentWidth(getContentWidth() - (getWidth() - getMaxWidth())); } } diff --git a/openpdf-html/src/main/java/org/openpdf/newtable/TableCellBox.java b/openpdf-html/src/main/java/org/openpdf/newtable/TableCellBox.java index b843a031c..5695d49f9 100644 --- a/openpdf-html/src/main/java/org/openpdf/newtable/TableCellBox.java +++ b/openpdf-html/src/main/java/org/openpdf/newtable/TableCellBox.java @@ -95,8 +95,7 @@ public BlockBox copyOf() { public BorderPropertySet getBorder(CssContext cssCtx) { if (getTable().getStyle().isCollapseBorders()) { // Should always be non-null, but might not be if layout code crashed - return _collapsedLayoutBorder == null ? - BorderPropertySet.EMPTY_BORDER : _collapsedLayoutBorder; + return _collapsedLayoutBorder == null ? BorderPropertySet.EMPTY_BORDER : _collapsedLayoutBorder; } else { return super.getBorder(cssCtx); } @@ -233,8 +232,8 @@ public boolean isPageBreaksChange(LayoutContext c, int posDeltaY) { int bottomEdge = getAbsY() + getChildrenHeight(); - return page != null && (bottomEdge >= page.getBottom() - c.getExtraSpaceBottom() || - bottomEdge + posDeltaY >= page.getBottom() - c.getExtraSpaceBottom()); + return page != null && (bottomEdge >= page.getBottom() - c.getExtraSpaceBottom() + || bottomEdge + posDeltaY >= page.getBottom() - c.getExtraSpaceBottom()); } public IdentValue getVerticalAlign() { @@ -343,8 +342,7 @@ private Rectangle getContentLimitedBorderEdge(RenderingContext c) { if (limit == null) { return null; } else { - if (limit.getTop() == ContentLimit.UNDEFINED || - limit.getBottom() == ContentLimit.UNDEFINED) { + if (limit.getTop() == ContentLimit.UNDEFINED || limit.getBottom() == ContentLimit.UNDEFINED) { return result; } @@ -455,8 +453,8 @@ public static CollapsedBorderValue compareBorders( // The borders have equal width. Sort by border style. if (border1.style() != border2.style()) { - return BORDER_PRIORITIES[border1.style().FS_ID] > - BORDER_PRIORITIES[border2.style().FS_ID] ? border1 : border2; + return BORDER_PRIORITIES[border1.style().FS_ID] + > BORDER_PRIORITIES[border2.style().FS_ID] ? border1 : border2; } // The border have the same width and style. Rely on precedence (cell @@ -872,7 +870,6 @@ public boolean isNeedsClipOnPaint(RenderingContext c) { if (contentLimitContainer == null) { return false; } - return c.isPrint() && getTable().getStyle().isPaginateTable() && - contentLimitContainer.isContainsMultiplePages(); + return c.isPrint() && getTable().getStyle().isPaginateTable() && contentLimitContainer.isContainsMultiplePages(); } } diff --git a/openpdf-html/src/main/java/org/openpdf/pdf/HTMLOutline.java b/openpdf-html/src/main/java/org/openpdf/pdf/HTMLOutline.java index 1909a7be4..72b5053fe 100644 --- a/openpdf-html/src/main/java/org/openpdf/pdf/HTMLOutline.java +++ b/openpdf-html/src/main/java/org/openpdf/pdf/HTMLOutline.java @@ -197,9 +197,7 @@ private static String getBookmarkName(Element element) { private static String getOutlineLevel(Element element) { String bookmark = element.getAttribute("data-pdf-bookmark").trim(); - return bookmark.isEmpty() ? - getOutlineLevelFromTagName(element.getTagName()) : - bookmark; + return bookmark.isEmpty() ? getOutlineLevelFromTagName(element.getTagName()) : bookmark; } static String getOutlineLevelFromTagName(String tagName) { diff --git a/openpdf-html/src/main/java/org/openpdf/pdf/ITextOutputDevice.java b/openpdf-html/src/main/java/org/openpdf/pdf/ITextOutputDevice.java index f6237f441..a485f27b4 100644 --- a/openpdf-html/src/main/java/org/openpdf/pdf/ITextOutputDevice.java +++ b/openpdf-html/src/main/java/org/openpdf/pdf/ITextOutputDevice.java @@ -280,8 +280,8 @@ private void processLink(RenderingContext c, Box box) { PdfDestination dest = createDestination(c, target); if (dest != null) { - PdfAction action = handler.getAttributeValue(elem, "onclick").isEmpty() ? - gotoDestination(dest) : + PdfAction action = handler.getAttributeValue(elem, "onclick").isEmpty() + ? gotoDestination(dest) : PdfAction.javaScript(handler.getAttributeValue(elem, "onclick"), _writer); checkLinkArea(c, box).ifPresent(targetArea -> { diff --git a/openpdf-html/src/main/java/org/openpdf/pdf/ITextRenderer.java b/openpdf-html/src/main/java/org/openpdf/pdf/ITextRenderer.java index 4f13c0318..3d58db18b 100644 --- a/openpdf-html/src/main/java/org/openpdf/pdf/ITextRenderer.java +++ b/openpdf-html/src/main/java/org/openpdf/pdf/ITextRenderer.java @@ -572,9 +572,9 @@ private static Element getFirstChildElement(Element element) { } private String createXPacket(String metadata) { - return "\n" + - metadata + - "\n"; + return "\n" + + metadata + + "\n"; } public ITextOutputDevice getOutputDevice() { diff --git a/openpdf-html/src/main/java/org/openpdf/pdf/ITextTextRenderer.java b/openpdf-html/src/main/java/org/openpdf/pdf/ITextTextRenderer.java index b29df10f7..528969bab 100644 --- a/openpdf-html/src/main/java/org/openpdf/pdf/ITextTextRenderer.java +++ b/openpdf-html/src/main/java/org/openpdf/pdf/ITextTextRenderer.java @@ -53,9 +53,8 @@ public FSFontMetrics getFSFontMetrics(FontContext context, FSFont font, String s FontDescription description = ((ITextFSFont) font).getFontDescription(); BaseFont bf = description.getFont(); float size = font.getSize2D(); - float strikethroughThickness = description.getYStrikeoutSize() != 0 ? - description.getYStrikeoutSize() / 1000f * size : - size / 12.0f; + float strikethroughThickness = description.getYStrikeoutSize() != 0 + ? description.getYStrikeoutSize() / 1000f * size : size / 12.0f; return new ITextFSFontMetrics( bf.getFontDescriptor(BaseFont.BBOXURY, size), diff --git a/openpdf-html/src/main/java/org/openpdf/render/AbstractOutputDevice.java b/openpdf-html/src/main/java/org/openpdf/render/AbstractOutputDevice.java index 9ec812a14..16a6c453f 100644 --- a/openpdf-html/src/main/java/org/openpdf/render/AbstractOutputDevice.java +++ b/openpdf-html/src/main/java/org/openpdf/render/AbstractOutputDevice.java @@ -241,8 +241,8 @@ private void paintBackground0( backgroundImage = null; } - if ((backgroundColor == null || backgroundColor == FSRGBColor.TRANSPARENT) && - backgroundImage == null && backgroundLinearGradient == null) { + if ((backgroundColor == null || backgroundColor == FSRGBColor.TRANSPARENT) + && backgroundImage == null && backgroundLinearGradient == null) { return; } diff --git a/openpdf-html/src/main/java/org/openpdf/render/BlockBox.java b/openpdf-html/src/main/java/org/openpdf/render/BlockBox.java index d0397d113..3796deb92 100644 --- a/openpdf-html/src/main/java/org/openpdf/render/BlockBox.java +++ b/openpdf-html/src/main/java/org/openpdf/render/BlockBox.java @@ -499,8 +499,9 @@ public void positionAbsolute(CssContext cssCtx, Position direction) { if (!style.isIdent(CSSName.LEFT, IdentValue.AUTO)) { setX((int) style.getFloatPropertyProportionalWidth(CSSName.LEFT, getContainingBlock().getContentWidth(), cssCtx)); } else if (!style.isIdent(CSSName.RIGHT, IdentValue.AUTO)) { - setX(boundingBox.width - - (int) style.getFloatPropertyProportionalWidth(CSSName.RIGHT, getContainingBlock().getContentWidth(), cssCtx) - getWidth()); + setX(boundingBox.width + - (int) style.getFloatPropertyProportionalWidth(CSSName.RIGHT, + getContainingBlock().getContentWidth(), cssCtx) - getWidth()); } setX(getX() + boundingBox.x); } @@ -510,8 +511,8 @@ public void positionAbsolute(CssContext cssCtx, Position direction) { if (!style.isIdent(CSSName.TOP, IdentValue.AUTO)) { setY((int) style.getFloatPropertyProportionalHeight(CSSName.TOP, cbContentHeight, cssCtx)); } else if (!style.isIdent(CSSName.BOTTOM, IdentValue.AUTO)) { - setY(boundingBox.height - - (int) style.getFloatPropertyProportionalWidth(CSSName.BOTTOM, cbContentHeight, cssCtx) - getHeight()); + setY(boundingBox.height + - (int) style.getFloatPropertyProportionalWidth(CSSName.BOTTOM, cbContentHeight, cssCtx) - getHeight()); } // Can't do this before now because our containing block @@ -527,8 +528,8 @@ public void positionAbsolute(CssContext cssCtx, Position direction) { calcCanvasLocation(); - if ((direction == Position.VERTICALLY || direction == Position.BOTH) && - getStyle().isTopAuto() && getStyle().isBottomAuto()) { + if ((direction == Position.VERTICALLY || direction == Position.BOTH) + && getStyle().isTopAuto() && getStyle().isBottomAuto()) { alignToStaticEquivalent(); } @@ -536,8 +537,7 @@ public void positionAbsolute(CssContext cssCtx, Position direction) { } public void positionAbsoluteOnPage(LayoutContext c) { - if (c.isPrint() && - (getStyle().isForcePageBreakBefore() || isNeedPageClear())) { + if (c.isPrint() && (getStyle().isForcePageBreakBefore() || isNeedPageClear())) { forcePageBreakBefore(c, getStyle().getIdent(CSSName.PAGE_BREAK_BEFORE), false); calcCanvasLocation(); calcChildLocations(); @@ -582,8 +582,8 @@ public void reset(LayoutContext c) { } private int calcPinnedContentWidth(CssContext c) { - if (! getStyle().isIdent(CSSName.LEFT, IdentValue.AUTO) && - ! getStyle().isIdent(CSSName.RIGHT, IdentValue.AUTO)) { + if (!getStyle().isIdent(CSSName.LEFT, IdentValue.AUTO) + && !getStyle().isIdent(CSSName.RIGHT, IdentValue.AUTO)) { Rectangle paddingEdge = getContainingBlock().getPaddingEdge(0, 0, c); int left = (int) getStyle().getFloatPropertyProportionalTo( @@ -599,8 +599,8 @@ private int calcPinnedContentWidth(CssContext c) { } private int calcPinnedHeight(CssContext c) { - if (! getStyle().isIdent(CSSName.TOP, IdentValue.AUTO) && - ! getStyle().isIdent(CSSName.BOTTOM, IdentValue.AUTO)) { + if (!getStyle().isIdent(CSSName.TOP, IdentValue.AUTO) + && !getStyle().isIdent(CSSName.BOTTOM, IdentValue.AUTO)) { Rectangle paddingEdge = getContainingBlock().getPaddingEdge(0, 0, c); int top = (int) getStyle().getFloatPropertyProportionalTo( @@ -620,9 +620,7 @@ protected void resolveAutoMargins( LayoutContext c, int cssWidth, RectPropertySet padding, BorderPropertySet border) { int withoutMargins = - (int) border.left() + (int) padding.left() + - cssWidth + - (int) padding.right() + (int) border.right(); + (int) border.left() + (int) padding.left() + cssWidth + (int) padding.right() + (int) border.right(); if (withoutMargins < getContainingBlockWidth()) { int available = getContainingBlockWidth() - withoutMargins; @@ -683,10 +681,10 @@ protected void calcDimensions(LayoutContext c, int cssWidth) { RectPropertySet padding = getPadding(c); BorderPropertySet border = getBorder(c); - if (cssWidth != -1 && !isAnonymous() && - (getStyle().isIdent(CSSName.MARGIN_LEFT, IdentValue.AUTO) || - getStyle().isIdent(CSSName.MARGIN_RIGHT, IdentValue.AUTO)) && - getStyle().isNeedAutoMarginResolution()) { + if (cssWidth != -1 && !isAnonymous() + && (getStyle().isIdent(CSSName.MARGIN_LEFT, IdentValue.AUTO) + || getStyle().isIdent(CSSName.MARGIN_RIGHT, IdentValue.AUTO)) + && getStyle().isNeedAutoMarginResolution()) { resolveAutoMargins(c, cssWidth, padding, border); } @@ -744,8 +742,7 @@ protected void calcDimensions(LayoutContext c, int cssWidth) { setContentWidth(re.getIntrinsicWidth()); setHeight(re.getIntrinsicHeight()); setReplacedElement(re); - } else if (cssWidth == -1 && pinnedContentWidth == -1 && - style.isCanBeShrunkToFit()) { + } else if (cssWidth == -1 && pinnedContentWidth == -1 && style.isCanBeShrunkToFit()) { setNeedShrinkToFitCalculation(true); } @@ -768,8 +765,8 @@ private void calcClearance(LayoutContext c) { } private void calcExtraPageClearance(LayoutContext c) { - if (c.isPageBreaksAllowed() && - c.getExtraSpaceTop() > 0 && (getStyle().isSpecifiedAsBlock() || getStyle().isListItem())) { + if (c.isPageBreaksAllowed() && c.getExtraSpaceTop() > 0 && (getStyle().isSpecifiedAsBlock() + || getStyle().isListItem())) { PageBox first = c.getRootLayer().getFirstPage(c, this); if (first != null && first.getTop() + c.getExtraSpaceTop() > getAbsY()) { int diff = first.getTop() + c.getExtraSpaceTop() - getAbsY(); @@ -926,10 +923,10 @@ protected int getPageClearance() { protected void calcLayoutHeight( LayoutContext c, BorderPropertySet border, RectPropertySet margin, RectPropertySet padding) { - setHeight(getHeight() + ((int) margin.top() + (int) border.top() + (int) padding.top() + - (int) padding.bottom() + (int) border.bottom() + (int) margin.bottom())); - setChildrenHeight(getChildrenHeight() + ((int) margin.top() + (int) border.top() + (int) padding.top() + - (int) padding.bottom() + (int) border.bottom() + (int) margin.bottom())); + setHeight(getHeight() + ((int) margin.top() + (int) border.top() + (int) padding.top() + + (int) padding.bottom() + (int) border.bottom() + (int) margin.bottom())); + setChildrenHeight(getChildrenHeight() + ((int) margin.top() + (int) border.top() + (int) padding.top() + + (int) padding.bottom() + (int) border.bottom() + (int) margin.bottom())); } @@ -1049,8 +1046,7 @@ private void satisfyWidowsAndOrphans(LayoutContext c, int contentStart, boolean LineBox lastLineBox = (LineBox) getChild(cCount - 1); List pages = c.getRootLayer().getPages(); PageBox lastPage = pages.get(firstPage.getPageNo() + 1); - while (lastPage.getPageNo() != pages.size() - 1 && - lastPage.getBottom() < lastLineBox.getAbsY()) { + while (lastPage.getPageNo() != pages.size() - 1 && lastPage.getBottom() < lastLineBox.getAbsY()) { lastPage = pages.get(lastPage.getPageNo() + 1); } @@ -1126,15 +1122,14 @@ private void collapseMargins(LayoutContext c) { if (! isTopMarginCalculated() && ! isBottomMarginCalculated() && isVerticalMarginsAdjoin(c)) { MarginCollapseResult collapsedMargin = - _pendingCollapseCalculation != null ? - _pendingCollapseCalculation : new MarginCollapseResult(); + _pendingCollapseCalculation != null ? _pendingCollapseCalculation : new MarginCollapseResult(); collapseEmptySubtreeMargins(c, collapsedMargin); setCollapsedBottomMargin(c, margin, collapsedMargin); } else { - if (! isTopMarginCalculated()) { + if (!isTopMarginCalculated()) { MarginCollapseResult collapsedMargin = - _pendingCollapseCalculation != null ? - _pendingCollapseCalculation : new MarginCollapseResult(); + _pendingCollapseCalculation != null ? _pendingCollapseCalculation + : new MarginCollapseResult(); collapseTopMargin(c, true, collapsedMargin); if ((int) margin.top() != collapsedMargin.getMargin()) { @@ -1157,8 +1152,7 @@ private void setCollapsedBottomMargin(LayoutContext c, RectPropertySet margin, M if (! isInline()) { next = getNextCollapsableSibling(collapsedMargin); } - if (! (next == null || next instanceof AnonymousBlockBox) && - collapsedMargin.hasMargin()) { + if (! (next == null || next instanceof AnonymousBlockBox) && collapsedMargin.hasMargin()) { next._pendingCollapseCalculation = collapsedMargin; setMarginBottom(c, 0); } else if ((int) margin.bottom() != collapsedMargin.getMargin()) { @@ -1235,8 +1229,7 @@ private void collapseBottomMargin( setMarginBottom(c, 0); } - if (isMayCollapseMarginsWithChildren() && - ! getStyle().isTable() && isNoBottomPaddingOrBorder(c)) { + if (isMayCollapseMarginsWithChildren() && !getStyle().isTable() && isNoBottomPaddingOrBorder(c)) { ensureChildren(c); if (getChildrenContentType() == ContentType.BLOCK) { for (int i = getChildCount() - 1; i >= 0; i--) { @@ -1298,8 +1291,8 @@ private boolean isVerticalMarginsAdjoin(LayoutContext c) { RectPropertySet padding = getPadding(c); boolean bordersOrPadding = - (int) borderWidth.top() != 0 || (int) borderWidth.bottom() != 0 || - (int) padding.top() != 0 || (int) padding.bottom() != 0; + (int) borderWidth.top() != 0 || (int) borderWidth.bottom() != 0 + || (int) padding.top() != 0 || (int) padding.bottom() != 0; if (bordersOrPadding) { return false; @@ -1317,8 +1310,7 @@ private boolean isVerticalMarginsAdjoin(LayoutContext c) { } } - return style.asFloat(CSSName.MIN_HEIGHT) == 0 && - (isAutoHeight() || style.asFloat(CSSName.HEIGHT) == 0); + return style.asFloat(CSSName.MIN_HEIGHT) == 0 && (isAutoHeight() || style.asFloat(CSSName.HEIGHT) == 0); } public boolean isTopMarginCalculated() { @@ -1422,8 +1414,7 @@ private int getCSSMaxHeight(CssContext c) { // resolving percentage values. Does not represent the actual (resolved) height // of the containing block. private int getContainingBlockCSSHeight(CssContext c) { - if (! getContainingBlock().isStyled() || - getContainingBlock().getStyle().isAutoHeight()) { + if (! getContainingBlock().isStyled() || getContainingBlock().getStyle().isAutoHeight()) { return 0; } else { if (getContainingBlock().getStyle().hasAbsoluteUnit(CSSName.HEIGHT)) { @@ -1492,13 +1483,11 @@ private void recalculateMargin(LayoutContext c) { // percentage margins (as the containing block width // hasn't been calculated yet). Reset top and bottom margins // in this case. - if (! isTopMarginCalculated() && - styleMargin.top() != workingMargin.top()) { + if (! isTopMarginCalculated() && styleMargin.top() != workingMargin.top()) { setMarginTop(c, (int) styleMargin.top()); } - if (! isBottomMarginCalculated() && - styleMargin.bottom() != workingMargin.bottom()) { + if (! isBottomMarginCalculated() && styleMargin.bottom() != workingMargin.bottom()) { setMarginBottom(c, (int) styleMargin.bottom()); } } @@ -1528,9 +1517,8 @@ public void calcMinMaxWidth(LayoutContext c) { if (isReplaced() || (width != -1 && ! isFixedWidthAdvisoryOnly())) { _minWidth = _maxWidth = - (int) margin.left() + (int) border.left() + (int) padding.left() + - width + - (int) margin.right() + (int) border.right() + (int) padding.right(); + (int) margin.left() + (int) border.left() + (int) padding.left() + + width + (int) margin.right() + (int) border.right() + (int) padding.right(); } else { int cw = -1; if (width != -1) { @@ -1542,8 +1530,8 @@ public void calcMinMaxWidth(LayoutContext c) { } _minWidth = _maxWidth = - (int) margin.left() + (int) border.left() + (int) padding.left() + - (int) margin.right() + (int) border.right() + (int) padding.right(); + (int) margin.left() + (int) border.left() + (int) padding.left() + + (int) margin.right() + (int) border.right() + (int) padding.right(); int minimumMaxWidth = _maxWidth; if (width != -1) { @@ -1592,8 +1580,8 @@ private void calcMinMaxCSSMinMaxWidth( int cssMinWidth = getCSSMinWidth(c); if (cssMinWidth > 0) { cssMinWidth += - (int) margin.left() + (int) border.left() + (int) padding.left() + - (int) margin.right() + (int) border.right() + (int) padding.right(); + (int) margin.left() + (int) border.left() + (int) padding.left() + + (int) margin.right() + (int) border.right() + (int) padding.right(); if (_minWidth < cssMinWidth) { _minWidth = cssMinWidth; } @@ -1601,8 +1589,8 @@ private void calcMinMaxCSSMinMaxWidth( if (! getStyle().isMaxWidthNone()) { int cssMaxWidth = getCSSMaxWidth(c); cssMaxWidth += - (int) margin.left() + (int) border.left() + (int) padding.left() + - (int) margin.right() + (int) border.right() + (int) padding.right(); + (int) margin.left() + (int) border.left() + (int) padding.left() + + (int) margin.right() + (int) border.right() + (int) padding.right(); if (_maxWidth > cssMaxWidth) { _maxWidth = Math.max(cssMaxWidth, _minWidth); } @@ -1648,8 +1636,7 @@ private void calcMinMaxWidthInlineChildren(LayoutContext c) { continue; } - if (child.getStyle().isFloated() || child.getStyle().isInlineBlock() || - child.getStyle().isInlineTable()) { + if (child.getStyle().isFloated() || child.getStyle().isInlineBlock() || child.getStyle().isInlineTable()) { if (child.getStyle().isFloated() && child.getStyle().isCleared()) { if (trimmableIB != null) { lineWidth -= trimmableIB.getTrailingSpaceWidth(c); @@ -2105,8 +2092,7 @@ public boolean isContainsInlineContent(LayoutContext c) { public boolean checkPageContext(LayoutContext c) { if (! getStyle().isIdent(CSSName.PAGE, IdentValue.AUTO)) { String pageName = getStyle().getStringProperty(CSSName.PAGE); - if (!pageName.equals(c.getPageName()) && isInDocumentFlow() && - isContainsInlineContent(c)) { + if (!pageName.equals(c.getPageName()) && isInDocumentFlow() && isContainsInlineContent(c)) { c.setPendingPageName(pageName); return true; } @@ -2119,9 +2105,8 @@ public boolean checkPageContext(LayoutContext c) { } public boolean isNeedsClipOnPaint(RenderingContext c) { - return ! isReplaced() && - getStyle().isIdent(CSSName.OVERFLOW, IdentValue.HIDDEN) && - getStyle().isOverflowApplies(); + return !isReplaced() && getStyle().isIdent(CSSName.OVERFLOW, IdentValue.HIDDEN) + && getStyle().isOverflowApplies(); } diff --git a/openpdf-html/src/main/java/org/openpdf/render/Box.java b/openpdf-html/src/main/java/org/openpdf/render/Box.java index a6142dc18..ed5506495 100644 --- a/openpdf-html/src/main/java/org/openpdf/render/Box.java +++ b/openpdf-html/src/main/java/org/openpdf/render/Box.java @@ -446,8 +446,7 @@ public void paintBorder(RenderingContext c) { } private boolean isPaintsRootElementBackground() { - return (isRoot() && getStyle().isHasBackground()) || - (isBody() && ! getParent().getStyle().isHasBackground()); + return (isRoot() && getStyle().isHasBackground()) || (isBody() && ! getParent().getStyle().isHasBackground()); } public void paintBackground(RenderingContext c) { @@ -605,8 +604,8 @@ public int forcePageBreakBefore(LayoutContext c, IdentValue pageBreakValue, bool c.getRootLayer().addPage(c); } } - if ((page.isLeftPage() && pageBreakValue == IdentValue.LEFT) || - (page.isRightPage() && pageBreakValue == IdentValue.RIGHT)) { + if ((page.isLeftPage() && pageBreakValue == IdentValue.LEFT) + || (page.isRightPage() && pageBreakValue == IdentValue.RIGHT)) { pageBreakCount++; } @@ -647,13 +646,13 @@ public void forcePageBreakAfter(LayoutContext c, IdentValue pageBreakValue) { PageBox page = c.getRootLayer().getLastPage(c, this); if (page != null) { - if ((page.isLeftPage() && pageBreakValue == IdentValue.LEFT) || - (page.isRightPage() && pageBreakValue == IdentValue.RIGHT)) { + if ((page.isLeftPage() && pageBreakValue == IdentValue.LEFT) + || (page.isRightPage() && pageBreakValue == IdentValue.RIGHT)) { needSecondPageBreak = true; } - int delta = page.getBottom() + c.getExtraSpaceTop() - (getAbsY() + - getMarginBorderPadding(c, Edge.TOP) + getHeight()); + int delta = page.getBottom() + c.getExtraSpaceTop() - (getAbsY() + + getMarginBorderPadding(c, Edge.TOP) + getHeight()); if (page == c.getRootLayer().getLastPage()) { c.getRootLayer().addPage(c); diff --git a/openpdf-html/src/main/java/org/openpdf/render/InlineBox.java b/openpdf-html/src/main/java/org/openpdf/render/InlineBox.java index 550ddbcbd..fdb70a25b 100644 --- a/openpdf-html/src/main/java/org/openpdf/render/InlineBox.java +++ b/openpdf-html/src/main/java/org/openpdf/render/InlineBox.java @@ -378,8 +378,8 @@ private String getText(boolean trimLeadingSpace) { @CheckReturnValue private int getInlineMBP(LayoutContext c, int cbWidth) { - return getStyle().getMarginBorderPadding(c, cbWidth, Edge.LEFT) + - getStyle().getMarginBorderPadding(c, cbWidth, Edge.RIGHT); + return getStyle().getMarginBorderPadding(c, cbWidth, Edge.LEFT) + + getStyle().getMarginBorderPadding(c, cbWidth, Edge.RIGHT); } public void calcMinMaxWidth(LayoutContext c, int cbWidth, boolean trimLeadingSpace) { diff --git a/openpdf-html/src/main/java/org/openpdf/render/InlineLayoutBox.java b/openpdf-html/src/main/java/org/openpdf/render/InlineLayoutBox.java index 3bf63d9c6..06b7cb82b 100644 --- a/openpdf-html/src/main/java/org/openpdf/render/InlineLayoutBox.java +++ b/openpdf-html/src/main/java/org/openpdf/render/InlineLayoutBox.java @@ -102,8 +102,8 @@ public void calculateHeight(LayoutContext c) { FSFontMetrics metrics = getStyle().getFSFontMetrics(c); - setHeight((int) Math.ceil(border.top() + padding.top() + metrics.getAscent() + - metrics.getDescent() + padding.bottom() + border.bottom())); + setHeight((int) Math.ceil(border.top() + padding.top() + metrics.getAscent() + + metrics.getDescent() + padding.bottom() + border.bottom())); } public int getBaseline() { @@ -484,8 +484,7 @@ public List getElementWithContent() { ((InlineLayoutBox) elementBox).addToContentList(result); } - if (! (container instanceof AnonymousBlockBox) || - containsEnd(result)) { + if (! (container instanceof AnonymousBlockBox) || containsEnd(result)) { break; } diff --git a/openpdf-html/src/main/java/org/openpdf/render/LineBox.java b/openpdf-html/src/main/java/org/openpdf/render/LineBox.java index 3d17b4450..fd16a8d1a 100644 --- a/openpdf-html/src/main/java/org/openpdf/render/LineBox.java +++ b/openpdf-html/src/main/java/org/openpdf/render/LineBox.java @@ -201,8 +201,8 @@ public void align(boolean dynamic) { int leftFloatDistance = getFloatDistances().leftFloatDistance(); int rightFloatDistance = getFloatDistances().rightFloatDistance(); - int midpoint = leftFloatDistance + - (getParent().getContentWidth() - leftFloatDistance - rightFloatDistance) / 2; + int midpoint = leftFloatDistance + + (getParent().getContentWidth() - leftFloatDistance - rightFloatDistance) / 2; calcX = midpoint - (getContentWidth() + getContentStart()) / 2; } else if (align == IdentValue.RIGHT) { @@ -222,16 +222,16 @@ public void justify() { int leftFloatDistance = getFloatDistances().leftFloatDistance(); int rightFloatDistance = getFloatDistances().rightFloatDistance(); - int available = getParent().getContentWidth() - - leftFloatDistance - rightFloatDistance - getContentStart(); + int available = getParent().getContentWidth() + - leftFloatDistance - rightFloatDistance - getContentStart(); if (available > getContentWidth()) { int toAdd = available - getContentWidth(); CharCounts counts = countJustifiableChars(); - JustificationInfo info = !getParent().getStyle().isIdent(LETTER_SPACING, NORMAL) ? - new JustificationInfo(0.0f, (float) toAdd / counts.getSpaceCount()) : + JustificationInfo info = !getParent().getStyle().isIdent(LETTER_SPACING, NORMAL) + ? new JustificationInfo(0.0f, (float) toAdd / counts.getSpaceCount()) : justificationInfo(counts, toAdd); adjustChildren(info); @@ -241,12 +241,12 @@ public void justify() { } private static JustificationInfo justificationInfo(CharCounts counts, int toAdd) { - float nonSpaceAdjust = counts.getNonSpaceCount() > 1 ? - toAdd * JUSTIFY_NON_SPACE_SHARE / (counts.getNonSpaceCount() - 1) : + float nonSpaceAdjust = counts.getNonSpaceCount() > 1 + ? toAdd * JUSTIFY_NON_SPACE_SHARE / (counts.getNonSpaceCount() - 1) : 0.0f; - float spaceAdjust = counts.getSpaceCount() > 0 ? - toAdd * JUSTIFY_SPACE_SHARE / counts.getSpaceCount() : + float spaceAdjust = counts.getSpaceCount() > 0 + ? toAdd * JUSTIFY_SPACE_SHARE / counts.getSpaceCount() : 0.0f; return new JustificationInfo(nonSpaceAdjust, spaceAdjust); @@ -309,8 +309,8 @@ public void setContainsBlockLevelContent(boolean containsBlockLevelContent) { @Override public boolean intersects(CssContext cssCtx, Shape clip) { - return clip == null || (intersectsLine(cssCtx, clip) || - (isContainsBlockLevelContent() && intersectsInlineBlocks(cssCtx, clip))); + return clip == null || (intersectsLine(cssCtx, clip) + || (isContainsBlockLevelContent() && intersectsInlineBlocks(cssCtx, clip))); } private boolean intersectsLine(CssContext cssCtx, Shape clip) { @@ -322,8 +322,8 @@ private boolean intersectsLine(CssContext cssCtx, Shape clip) { public Rectangle getPaintingClipEdge(CssContext cssCtx) { Box parent = getParent(); if (parent.getStyle().isIdent( - CSSName.FS_TEXT_DECORATION_EXTENT, IdentValue.BLOCK) || - getJustificationInfo() != null) { + CSSName.FS_TEXT_DECORATION_EXTENT, IdentValue.BLOCK) + || getJustificationInfo() != null) { return new Rectangle( getAbsX(), getAbsY() + _paintingTop, parent.getAbsX() + parent.getTx() + parent.getContentWidth() - getAbsX(), diff --git a/openpdf-html/src/main/java/org/openpdf/render/ListItemPainter.java b/openpdf-html/src/main/java/org/openpdf/render/ListItemPainter.java index 1f5f68177..c082c3bd7 100644 --- a/openpdf-html/src/main/java/org/openpdf/render/ListItemPainter.java +++ b/openpdf-html/src/main/java/org/openpdf/render/ListItemPainter.java @@ -62,11 +62,8 @@ private static void drawImage(RenderingContext c, BlockBox box, MarkerData marke FSImage img = marker.getImage(); int x = getReferenceX(c, box); // FIXME: findbugs possible loss of precision, cf. int / (float)2 - x += -marker.getLayoutWidth() + - (marker.getLayoutWidth() / 2 - img.getWidth() / 2); - c.getOutputDevice().drawImage(img, - x, - getListItemCenterBaseline(c, box) - img.getHeight() / 2); + x += -marker.getLayoutWidth() + (marker.getLayoutWidth() / 2 - img.getWidth() / 2); + c.getOutputDevice().drawImage(img, x, getListItemCenterBaseline(c, box) - img.getHeight() / 2); } private static int getReferenceX(RenderingContext c, BlockBox box) { diff --git a/openpdf-html/src/main/java/org/openpdf/render/PageBox.java b/openpdf-html/src/main/java/org/openpdf/render/PageBox.java index 53cb226a8..c1eb44c5e 100644 --- a/openpdf-html/src/main/java/org/openpdf/render/PageBox.java +++ b/openpdf-html/src/main/java/org/openpdf/render/PageBox.java @@ -128,17 +128,17 @@ private PageDimensions getPageDimensions(CssContext cssCtx) { private PageDimensions resolvePageDimensions(CssContext cssCtx) { CalculatedStyle style = getStyle(); - int width = style.isLength(FS_PAGE_WIDTH) ? - style.getIntPropertyProportionalTo(FS_PAGE_WIDTH, 0, cssCtx) : + int width = style.isLength(FS_PAGE_WIDTH) + ? style.getIntPropertyProportionalTo(FS_PAGE_WIDTH, 0, cssCtx) : resolveAutoPageWidth(cssCtx); - int height = style.isLength(FS_PAGE_HEIGHT) ? - style.getIntPropertyProportionalTo(FS_PAGE_HEIGHT, 0, cssCtx) : + int height = style.isLength(FS_PAGE_HEIGHT) + ? style.getIntPropertyProportionalTo(FS_PAGE_HEIGHT, 0, cssCtx) : resolveAutoPageHeight(cssCtx); //noinspection SuspiciousNameCombination - return style.isIdent(FS_PAGE_ORIENTATION, LANDSCAPE) ? - new PageDimensions(height, width) : + return style.isIdent(FS_PAGE_ORIENTATION, LANDSCAPE) + ? new PageDimensions(height, width) : new PageDimensions(width, height); } diff --git a/openpdf-html/src/main/java/org/openpdf/render/RenderingContext.java b/openpdf-html/src/main/java/org/openpdf/render/RenderingContext.java index aa4dd7ad2..f95f6414b 100644 --- a/openpdf-html/src/main/java/org/openpdf/render/RenderingContext.java +++ b/openpdf-html/src/main/java/org/openpdf/render/RenderingContext.java @@ -138,8 +138,9 @@ public FSCanvas getCanvas() { } public Rectangle getFixedRectangle() { - Rectangle result = isPrint() ? - new Rectangle(0, -this.page.getTop(), this.page.getContentWidth(this), this.page.getContentHeight(this) - 1) : + Rectangle result = isPrint() + ? new Rectangle(0, -this.page.getTop(), this.page.getContentWidth(this), + this.page.getContentHeight(this) - 1) : sharedContext.getFixedRectangle(); result.translate(-1, -1); return result; diff --git a/openpdf-html/src/main/java/org/openpdf/resource/FSCatalog.java b/openpdf-html/src/main/java/org/openpdf/resource/FSCatalog.java index ed6f2210d..f1b7cc1b2 100644 --- a/openpdf-html/src/main/java/org/openpdf/resource/FSCatalog.java +++ b/openpdf-html/src/main/java/org/openpdf/resource/FSCatalog.java @@ -171,8 +171,8 @@ private Map getEntityMap() { */ @Override public void startElement(String namespaceURI, String localName, String qName, Attributes attributes) { - if (localName.equalsIgnoreCase("public") || - (localName.isEmpty() && qName.equalsIgnoreCase("public"))) { + if (localName.equalsIgnoreCase("public") + || (localName.isEmpty() && qName.equalsIgnoreCase("public"))) { entityMap.put(attributes.getValue("publicId"), attributes.getValue("uri")); } } @@ -186,17 +186,17 @@ private void setFeature(XMLReader xmlReader) { try { xmlReader.setFeature("http://xml.org/sax/features/validation", false); - XRLog.xmlEntities(Level.FINE, "SAX Parser feature: " + - "http://xml.org/sax/features/validation".substring("http://xml.org/sax/features/validation".lastIndexOf('/')) + - " set to " + - xmlReader.getFeature("http://xml.org/sax/features/validation")); + XRLog.xmlEntities(Level.FINE, "SAX Parser feature: " + + "http://xml.org/sax/features/validation".substring("http://xml.org/sax/features/validation".lastIndexOf('/')) + + " set to " + xmlReader.getFeature("http://xml.org/sax/features/validation")); } catch (SAXNotSupportedException ex) { XRLog.xmlEntities(Level.WARNING, "SAX feature not supported on this XMLReader: " + "http://xml.org/sax/features/validation"); } catch (SAXNotRecognizedException ex) { XRLog.xmlEntities(Level.WARNING, - "SAX feature not recognized on this XMLReader: " + - "http://xml.org/sax/features/validation" + ". Feature may be properly named, but not recognized by this parser."); + "SAX feature not recognized on this XMLReader: " + + "http://xml.org/sax/features/validation" + ". Feature may be properly named, but not " + + "recognized by this parser."); } } } diff --git a/openpdf-html/src/main/java/org/openpdf/resource/FSEntityResolver.java b/openpdf-html/src/main/java/org/openpdf/resource/FSEntityResolver.java index 5313a0225..5d44e7f38 100644 --- a/openpdf-html/src/main/java/org/openpdf/resource/FSEntityResolver.java +++ b/openpdf-html/src/main/java/org/openpdf/resource/FSEntityResolver.java @@ -103,12 +103,12 @@ public InputSource resolveEntity(String publicID, String systemID) { if (is == null) { XRLog.xmlEntities(Level.WARNING, - "Can't find a local reference for Entity for public ID: " + publicID + - " and expected to. The local URL should be: " + url + ". Not finding " + - "this probably means a CLASSPATH configuration problem; this resource " + - "should be included with the renderer and so not finding it means it is " + - "not on the CLASSPATH, and should be. Will let parser use the default in " + - "this case."); + "Can't find a local reference for Entity for public ID: " + publicID + + " and expected to. The local URL should be: " + url + ". Not finding " + + "this probably means a CLASSPATH configuration problem; this resource " + + "should be included with the renderer and so not finding it means it is " + + "not on the CLASSPATH, and should be. Will let parser use the default in " + + "this case."); } local = new InputSource(is); local.setSystemId(realUrl.toExternalForm()); @@ -141,8 +141,7 @@ private static InputSource newHTML5DoctypeSource() { URL dtd = FSEntityResolver.class .getResource("/resources/schema/html5/entities.dtd"); if (dtd == null) { - throw new IllegalStateException("Could not find " + - "/resources/schema/html5/entities.dtd on the classpath"); + throw new IllegalStateException("Could not find /resources/schema/html5/entities.dtd on the classpath"); } return new InputSource(dtd.toExternalForm()); } diff --git a/openpdf-html/src/main/java/org/openpdf/resource/ImageResource.java b/openpdf-html/src/main/java/org/openpdf/resource/ImageResource.java index 4afea04fc..fadd32c09 100644 --- a/openpdf-html/src/main/java/org/openpdf/resource/ImageResource.java +++ b/openpdf-html/src/main/java/org/openpdf/resource/ImageResource.java @@ -56,8 +56,6 @@ public String getImageUri() { } public boolean hasDimensions(final int width, final int height) { - return isLoaded() && - _img instanceof AWTFSImage image && - image.hasSize(width, height); + return isLoaded() && _img instanceof AWTFSImage image && image.hasSize(width, height); } } diff --git a/openpdf-html/src/main/java/org/openpdf/resource/XMLResource.java b/openpdf-html/src/main/java/org/openpdf/resource/XMLResource.java index a386c4dc5..23cc4db3f 100644 --- a/openpdf-html/src/main/java/org/openpdf/resource/XMLResource.java +++ b/openpdf-html/src/main/java/org/openpdf/resource/XMLResource.java @@ -136,8 +136,8 @@ public static XMLReader newXMLReader() { } catch (Exception ex) { XRLog.load(Level.WARNING, "Could not instantiate custom XMLReader class for XML parsing: " - + xmlReaderClass + ". Please check classpath. Use value 'default' in " + - "FS configuration if necessary. Will now try JDK default.", ex); + + xmlReaderClass + ". Please check classpath. Use value 'default' in " + + "FS configuration if necessary. Will now try JDK default.", ex); } } @@ -176,9 +176,9 @@ public static XMLReader newXMLReader() { } } if (xmlReader == null) { - throw new XRRuntimeException("Could not instantiate any SAX 2 parser, including JDK default. " + - "The name of the class to use should have been read from the org.xml.sax.driver System " + - "property, which is set to: "/*CHECK: is this meaningful? + System.getProperty("org.xml.sax.driver")*/); + throw new XRRuntimeException("Could not instantiate any SAX 2 parser, including JDK default. " + + "The name of the class to use should have been read from the org.xml.sax.driver System " + + "property, which is set to: "/*CHECK: is this meaningful? + System.getProperty("org.xml.sax.driver")*/); } XRLog.load("SAX XMLReader in use (parser): " + xmlReader.getClass().getName()); return xmlReader; @@ -235,8 +235,8 @@ private Document transform(Source source) { } catch (IllegalArgumentException e) { // These attributes are not supported on this platform (e.g., Android) // Log and continue - FEATURE_SECURE_PROCESSING is already enabled - XRLog.load(Level.FINE, "TransformerFactory does not support ACCESS_EXTERNAL_DTD/STYLESHEET attributes. " + - "This is expected on some platforms like Android. Continuing with FEATURE_SECURE_PROCESSING enabled."); + XRLog.load(Level.FINE, "TransformerFactory does not support ACCESS_EXTERNAL_DTD/STYLESHEET attributes. " + + "This is expected on some platforms like Android. Continuing with FEATURE_SECURE_PROCESSING enabled."); } Transformer transformer = factory.newTransformer(); @@ -311,8 +311,8 @@ private void setParserFeatures(XMLReader xmlReader) { xmlReader.setFeature("http://xml.org/sax/features/namespaces", true); } catch (SAXException s) { // nothing to do--some parsers will not allow setting features - XRLog.load(Level.WARNING, "Could not set validation/namespace features for XML parser," + - "exception thrown.", s); + XRLog.load(Level.WARNING, "Could not set validation/namespace features for XML parser," + + "exception thrown.", s); } if (Configuration.isFalse("xr.load.configure-features", false)) { XRLog.load(Level.FINE, "SAX Parser: by request, not changing any parser features."); @@ -346,15 +346,14 @@ private void setFeature(XMLReader xmlReader, String featureUri, boolean value) { try { xmlReader.setFeature(featureUri, value); - XRLog.load(Level.FINE, "SAX Parser feature: " + - featureUri.substring(featureUri.lastIndexOf('/')) + - " set to " + - xmlReader.getFeature(featureUri)); + XRLog.load(Level.FINE, "SAX Parser feature: " + + featureUri.substring(featureUri.lastIndexOf('/')) + + " set to " + xmlReader.getFeature(featureUri)); } catch (SAXNotSupportedException ex) { XRLog.load(Level.WARNING, "SAX feature not supported on this XMLReader: " + featureUri, ex); } catch (SAXNotRecognizedException ex) { - XRLog.load(Level.WARNING, "SAX feature not recognized on this XMLReader: " + featureUri + - ". Feature may be properly named, but not recognized by this parser.", ex); + XRLog.load(Level.WARNING, "SAX feature not recognized on this XMLReader: " + featureUri + + ". Feature may be properly named, but not recognized by this parser.", ex); } } diff --git a/openpdf-html/src/main/java/org/openpdf/simple/extend/XhtmlCssOnlyNamespaceHandler.java b/openpdf-html/src/main/java/org/openpdf/simple/extend/XhtmlCssOnlyNamespaceHandler.java index 999bf0c63..28ef2a911 100644 --- a/openpdf-html/src/main/java/org/openpdf/simple/extend/XhtmlCssOnlyNamespaceHandler.java +++ b/openpdf-html/src/main/java/org/openpdf/simple/extend/XhtmlCssOnlyNamespaceHandler.java @@ -339,8 +339,8 @@ public Optional getDefaultStylesheet() { private URL getDefaultStylesheetUrl() { String defaultStyleSheet = Configuration.valueFor("xr.css.user-agent-default-css") + "XhtmlNamespaceHandler.css"; return requireNonNull(getClass().getResource(defaultStyleSheet), () -> - "Can't load default CSS from " + defaultStyleSheet + "." + - "This file must be on your CLASSPATH. Please check before continuing."); + "Can't load default CSS from " + defaultStyleSheet + "." + + "This file must be on your CLASSPATH. Please check before continuing."); } private Map getMetaInfo(Document doc) { diff --git a/openpdf-html/src/main/java/org/openpdf/simple/extend/XhtmlNamespaceHandler.java b/openpdf-html/src/main/java/org/openpdf/simple/extend/XhtmlNamespaceHandler.java index f571c7309..c75a97067 100644 --- a/openpdf-html/src/main/java/org/openpdf/simple/extend/XhtmlNamespaceHandler.java +++ b/openpdf-html/src/main/java/org/openpdf/simple/extend/XhtmlNamespaceHandler.java @@ -235,9 +235,8 @@ Element ancestor(Node element, String tagName, int maxDepth) { return null; } - return parent.getNodeType() == ELEMENT_NODE && parent.getNodeName().equals(tagName) ? - (Element) parent : - ancestor(parent, tagName, maxDepth - 1); + return parent.getNodeType() == ELEMENT_NODE && parent.getNodeName().equals(tagName) + ? (Element) parent : ancestor(parent, tagName, maxDepth - 1); } } diff --git a/openpdf-html/src/main/java/org/openpdf/simple/extend/form/ButtonField.java b/openpdf-html/src/main/java/org/openpdf/simple/extend/form/ButtonField.java index 655e8bb3f..0da096f14 100644 --- a/openpdf-html/src/main/java/org/openpdf/simple/extend/form/ButtonField.java +++ b/openpdf-html/src/main/java/org/openpdf/simple/extend/form/ButtonField.java @@ -47,8 +47,8 @@ public JComponent create() { button.addActionListener(e -> JOptionPane.showMessageDialog( null, - " doesn't make much " + - "sense without