--- /home/fdroid/fdroiddata/tmp/com.example.muzei.muzeiapod_4.apk +++ /home/fdroid/fdroiddata/tmp/sigcp_com.example.muzei.muzeiapod_4.apk ├── /usr/lib/android-sdk/build-tools/debian/apksigner verify --verbose --print-certs {} │┄ error from `/usr/lib/android-sdk/build-tools/debian/apksigner verify --verbose --print-certs {}` (b): │┄ DOES NOT VERIFY │┄ ERROR: META-INF/fdroidserverid entry referenced by META-INF/MANIFEST.MF not found in the APK │┄ ERROR: META-INF/buildserverid entry referenced by META-INF/MANIFEST.MF not found in the APK │ @@ -1,18 +0,0 @@ │ -Verifies │ -Verified using v1 scheme (JAR signing): true │ -Verified using v2 scheme (APK Signature Scheme v2): false │ -Verified using v3 scheme (APK Signature Scheme v3): false │ -Verified using v4 scheme (APK Signature Scheme v4): false │ -Verified for SourceStamp: false │ -Number of signers: 1 │ -Signer #1 certificate DN: CN=FDroid, OU=FDroid, O=fdroid.org, L=ORG, ST=ORG, C=UK │ -Signer #1 certificate SHA-256 digest: 519d4697caef7416ca986df907b746c70b7e7784ef9afc448bbddb164dec1008 │ -Signer #1 certificate SHA-1 digest: c3a08986ca9ff7417379661c07994d5047c8c107 │ -Signer #1 certificate MD5 digest: 7acaba2faa39c88b4c233fcd3ff51974 │ -Signer #1 key algorithm: RSA │ -Signer #1 key size (bits): 2048 │ -Signer #1 public key SHA-256 digest: 476ed8dbcd11270c8cc7495dad4c817a7c87ce5c0443b2013dc94f407561f5ed │ -Signer #1 public key SHA-1 digest: b6f19d6826fe6d33675aae248d733170cfc6f0f2 │ -Signer #1 public key MD5 digest: 83d4ccfe9f8bf11942149e1ae6c9a068 │ -WARNING: META-INF/buildserverid not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/fdroidserverid not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. ├── zipinfo -v {} │┄ Differences in extra fields detected; using output from zipinfo -v │ @@ -1,355 +1,378 @@ │ There is no zipfile comment. │ │ End-of-central-directory record: │ ------------------------------- │ │ - Zip archive file size: 153663 (000000000002583Fh) │ - Actual end-cent-dir record offset: 153641 (0000000000025829h) │ - Expected end-cent-dir record offset: 153641 (0000000000025829h) │ + Zip archive file size: 177859 (000000000002B6C3h) │ + Actual end-cent-dir record offset: 177837 (000000000002B6ADh) │ + Expected end-cent-dir record offset: 177837 (000000000002B6ADh) │ (based on the length of the central directory and its expected offset) │ │ This zipfile constitutes the sole disk of a single-part archive; its │ - central directory contains 11 entries. │ - The central directory is 775 (0000000000000307h) bytes long, │ + central directory contains 12 entries. │ + The central directory is 851 (0000000000000353h) bytes long, │ and its (expected) offset in bytes from the beginning of the zipfile │ - is 152866 (0000000000025522h). │ + is 176986 (000000000002B35Ah). │ │ │ Central directory entry #1: │ --------------------------- │ │ - META-INF/MANIFEST.MF │ + AndroidManifest.xml │ │ offset of local header from start of archive: 0 │ (0000000000000000h) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ version of encoding software: 2.0 │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ minimum software version required to extract: 2.0 │ compression method: deflated │ compression sub-type (deflation): normal │ file security status: not encrypted │ extended local header: yes │ - file last modified on (DOS date/time): 2016 Oct 5 17:10:20 │ - 32-bit CRC value (hex): e487eb45 │ - compressed size: 417 bytes │ - uncompressed size: 697 bytes │ - length of filename: 20 characters │ - length of extra field: 0 bytes │ + file last modified on (DOS date/time): 2017 Oct 4 00:22:38 │ + 32-bit CRC value (hex): 66f9b147 │ + compressed size: 799 bytes │ + uncompressed size: 2204 bytes │ + length of filename: 19 characters │ + length of extra field: 4 bytes │ length of file comment: 0 characters │ disk number on which file begins: disk 1 │ apparent file type: binary │ non-MSDOS external file attributes: 000000 hex │ MS-DOS file attributes (00 hex): none │ │ + The central-directory extra field contains: │ + - A subfield with ID 0xcafe (unknown) and 0 data bytes. │ + │ There is no file comment. │ │ Central directory entry #2: │ --------------------------- │ │ There are an extra 16 bytes preceding this file. │ │ - META-INF/BD3ECC55.SF │ + resources.arsc │ │ - offset of local header from start of archive: 483 │ - (00000000000001E3h) bytes │ + offset of local header from start of archive: 868 │ + (0000000000000364h) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ - version of encoding software: 2.0 │ + version of encoding software: 1.0 │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ - minimum software version required to extract: 2.0 │ - compression method: deflated │ - compression sub-type (deflation): normal │ + minimum software version required to extract: 1.0 │ + compression method: none (stored) │ file security status: not encrypted │ - extended local header: yes │ - file last modified on (DOS date/time): 2016 Oct 5 17:10:20 │ - 32-bit CRC value (hex): 0bb21c99 │ - compressed size: 479 bytes │ - uncompressed size: 818 bytes │ - length of filename: 20 characters │ + extended local header: no │ + file last modified on (DOS date/time): 2017 Oct 4 00:22:32 │ + 32-bit CRC value (hex): 42f48ff9 │ + compressed size: 1300 bytes │ + uncompressed size: 1300 bytes │ + length of filename: 14 characters │ length of extra field: 0 bytes │ length of file comment: 0 characters │ disk number on which file begins: disk 1 │ apparent file type: binary │ non-MSDOS external file attributes: 000000 hex │ MS-DOS file attributes (00 hex): none │ │ There is no file comment. │ │ Central directory entry #3: │ --------------------------- │ │ - There are an extra 16 bytes preceding this file. │ - │ - META-INF/BD3ECC55.RSA │ + res/drawable-nodpi-v4/ic_source.png │ │ - offset of local header from start of archive: 1028 │ - (0000000000000404h) bytes │ + offset of local header from start of archive: 2212 │ + (00000000000008A4h) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ - version of encoding software: 2.0 │ + version of encoding software: 1.0 │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ - minimum software version required to extract: 2.0 │ - compression method: deflated │ - compression sub-type (deflation): normal │ + minimum software version required to extract: 1.0 │ + compression method: none (stored) │ file security status: not encrypted │ - extended local header: yes │ - file last modified on (DOS date/time): 2016 Oct 5 17:10:20 │ - 32-bit CRC value (hex): 9eda951b │ - compressed size: 1072 bytes │ - uncompressed size: 1326 bytes │ - length of filename: 21 characters │ + extended local header: no │ + file last modified on (DOS date/time): 2017 Oct 4 00:22:32 │ + 32-bit CRC value (hex): 0932bfd7 │ + compressed size: 17252 bytes │ + uncompressed size: 17252 bytes │ + length of filename: 35 characters │ length of extra field: 0 bytes │ length of file comment: 0 characters │ disk number on which file begins: disk 1 │ apparent file type: binary │ non-MSDOS external file attributes: 000000 hex │ MS-DOS file attributes (00 hex): none │ │ There is no file comment. │ │ Central directory entry #4: │ --------------------------- │ │ - There are an extra 16 bytes preceding this file. │ - │ - META-INF/buildserverid │ + classes.dex │ │ - offset of local header from start of archive: 2167 │ - (0000000000000877h) bytes │ + offset of local header from start of archive: 19529 │ + (0000000000004C49h) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ version of encoding software: 2.0 │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ minimum software version required to extract: 2.0 │ compression method: deflated │ compression sub-type (deflation): normal │ file security status: not encrypted │ extended local header: yes │ - file last modified on (DOS date/time): 2016 Oct 5 16:19:38 │ - 32-bit CRC value (hex): d68cb5fe │ - compressed size: 41 bytes │ - uncompressed size: 41 bytes │ - length of filename: 22 characters │ + file last modified on (DOS date/time): 2017 Oct 4 00:22:38 │ + 32-bit CRC value (hex): eae73f75 │ + compressed size: 124694 bytes │ + uncompressed size: 368956 bytes │ + length of filename: 11 characters │ length of extra field: 0 bytes │ length of file comment: 0 characters │ disk number on which file begins: disk 1 │ apparent file type: binary │ non-MSDOS external file attributes: 000000 hex │ MS-DOS file attributes (00 hex): none │ │ There is no file comment. │ │ Central directory entry #5: │ --------------------------- │ │ There are an extra 16 bytes preceding this file. │ │ - META-INF/fdroidserverid │ + META-INF/CHANGES │ │ - offset of local header from start of archive: 2276 │ - (00000000000008E4h) bytes │ + offset of local header from start of archive: 144280 │ + (0000000000023398h) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ version of encoding software: 2.0 │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ minimum software version required to extract: 2.0 │ compression method: deflated │ compression sub-type (deflation): normal │ file security status: not encrypted │ extended local header: yes │ - file last modified on (DOS date/time): 2016 Oct 5 16:19:40 │ - 32-bit CRC value (hex): 1eabaed2 │ - compressed size: 41 bytes │ - uncompressed size: 41 bytes │ - length of filename: 23 characters │ + file last modified on (DOS date/time): 2017 Oct 4 00:22:38 │ + 32-bit CRC value (hex): 4d26d58d │ + compressed size: 12984 bytes │ + uncompressed size: 41652 bytes │ + length of filename: 16 characters │ length of extra field: 0 bytes │ length of file comment: 0 characters │ disk number on which file begins: disk 1 │ apparent file type: binary │ non-MSDOS external file attributes: 000000 hex │ MS-DOS file attributes (00 hex): none │ │ There is no file comment. │ │ Central directory entry #6: │ --------------------------- │ │ There are an extra 16 bytes preceding this file. │ │ - AndroidManifest.xml │ + org/jsoup/nodes/entities-full.properties │ │ - offset of local header from start of archive: 2386 │ - (0000000000000952h) bytes │ + offset of local header from start of archive: 157326 │ + (000000000002668Eh) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ version of encoding software: 2.0 │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ minimum software version required to extract: 2.0 │ compression method: deflated │ compression sub-type (deflation): normal │ file security status: not encrypted │ extended local header: yes │ - file last modified on (DOS date/time): 2016 Oct 5 16:19:38 │ - 32-bit CRC value (hex): 66f9b147 │ - compressed size: 798 bytes │ - uncompressed size: 2204 bytes │ - length of filename: 19 characters │ - length of extra field: 4 bytes │ + file last modified on (DOS date/time): 2017 Oct 4 00:22:38 │ + 32-bit CRC value (hex): 5b832aa8 │ + compressed size: 15206 bytes │ + uncompressed size: 31800 bytes │ + length of filename: 40 characters │ + length of extra field: 0 bytes │ length of file comment: 0 characters │ disk number on which file begins: disk 1 │ apparent file type: binary │ non-MSDOS external file attributes: 000000 hex │ MS-DOS file attributes (00 hex): none │ │ - The central-directory extra field contains: │ - - A subfield with ID 0xcafe (unknown) and 0 data bytes. │ - │ There is no file comment. │ │ Central directory entry #7: │ --------------------------- │ │ There are an extra 16 bytes preceding this file. │ │ - resources.arsc │ + org/jsoup/nodes/entities-base.properties │ │ - offset of local header from start of archive: 3253 │ - (0000000000000CB5h) bytes │ + offset of local header from start of archive: 172618 │ + (000000000002A24Ah) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ - version of encoding software: 1.0 │ + version of encoding software: 2.0 │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ - minimum software version required to extract: 1.0 │ - compression method: none (stored) │ + minimum software version required to extract: 2.0 │ + compression method: deflated │ + compression sub-type (deflation): normal │ file security status: not encrypted │ - extended local header: no │ - file last modified on (DOS date/time): 2016 Oct 5 16:19:22 │ - 32-bit CRC value (hex): 42f48ff9 │ - compressed size: 1300 bytes │ - uncompressed size: 1300 bytes │ - length of filename: 14 characters │ + extended local header: yes │ + file last modified on (DOS date/time): 2017 Oct 4 00:22:38 │ + 32-bit CRC value (hex): 0a4a1b46 │ + compressed size: 709 bytes │ + uncompressed size: 1216 bytes │ + length of filename: 40 characters │ length of extra field: 0 bytes │ length of file comment: 0 characters │ disk number on which file begins: disk 1 │ apparent file type: binary │ non-MSDOS external file attributes: 000000 hex │ MS-DOS file attributes (00 hex): none │ │ There is no file comment. │ │ Central directory entry #8: │ --------------------------- │ │ - There are an extra 3 bytes preceding this file. │ + There are an extra 16 bytes preceding this file. │ │ - res/drawable-nodpi-v4/ic_source.png │ + META-INF/README.md │ │ - offset of local header from start of archive: 4600 │ - (00000000000011F8h) bytes │ + offset of local header from start of archive: 173413 │ + (000000000002A565h) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ - version of encoding software: 1.0 │ + version of encoding software: 2.0 │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ - minimum software version required to extract: 1.0 │ - compression method: none (stored) │ + minimum software version required to extract: 2.0 │ + compression method: deflated │ + compression sub-type (deflation): normal │ file security status: not encrypted │ - extended local header: no │ - file last modified on (DOS date/time): 2016 Oct 5 16:19:20 │ - 32-bit CRC value (hex): 0932bfd7 │ - compressed size: 17252 bytes │ - uncompressed size: 17252 bytes │ - length of filename: 35 characters │ + extended local header: yes │ + file last modified on (DOS date/time): 2017 Oct 4 00:22:38 │ + 32-bit CRC value (hex): a2ec4017 │ + compressed size: 1269 bytes │ + uncompressed size: 2533 bytes │ + length of filename: 18 characters │ length of extra field: 0 bytes │ length of file comment: 0 characters │ disk number on which file begins: disk 1 │ apparent file type: binary │ non-MSDOS external file attributes: 000000 hex │ MS-DOS file attributes (00 hex): none │ │ There is no file comment. │ │ Central directory entry #9: │ --------------------------- │ │ - There are an extra 3 bytes preceding this file. │ + There are an extra 16 bytes preceding this file. │ │ - classes.dex │ + org/jsoup/nodes/entities-xhtml.properties │ │ - offset of local header from start of archive: 21920 │ - (00000000000055A0h) bytes │ + offset of local header from start of archive: 174746 │ + (000000000002AA9Ah) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ version of encoding software: 2.0 │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ minimum software version required to extract: 2.0 │ compression method: deflated │ compression sub-type (deflation): normal │ file security status: not encrypted │ extended local header: yes │ - file last modified on (DOS date/time): 2016 Oct 5 16:19:38 │ - 32-bit CRC value (hex): f3b5cd53 │ - compressed size: 119600 bytes │ - uncompressed size: 354592 bytes │ - length of filename: 11 characters │ + file last modified on (DOS date/time): 2017 Oct 4 00:22:38 │ + 32-bit CRC value (hex): 84ef653b │ + compressed size: 34 bytes │ + uncompressed size: 34 bytes │ + length of filename: 41 characters │ length of extra field: 0 bytes │ length of file comment: 0 characters │ disk number on which file begins: disk 1 │ apparent file type: binary │ non-MSDOS external file attributes: 000000 hex │ MS-DOS file attributes (00 hex): none │ │ There is no file comment. │ │ Central directory entry #10: │ --------------------------- │ │ There are an extra 16 bytes preceding this file. │ │ - org/jsoup/nodes/entities-base.properties │ + META-INF/MANIFEST.MF │ │ - offset of local header from start of archive: 141577 │ - (0000000000022909h) bytes │ + offset of local header from start of archive: 174867 │ + (000000000002AB13h) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ version of encoding software: 2.0 │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ minimum software version required to extract: 2.0 │ compression method: deflated │ compression sub-type (deflation): normal │ file security status: not encrypted │ - extended local header: yes │ - file last modified on (DOS date/time): 2016 Oct 5 16:19:38 │ - 32-bit CRC value (hex): a436299f │ - compressed size: 552 bytes │ - uncompressed size: 1254 bytes │ - length of filename: 40 characters │ + extended local header: no │ + file last modified on (DOS date/time): 2017 Oct 4 00:22:38 │ + 32-bit CRC value (hex): e487eb45 │ + compressed size: 417 bytes │ + uncompressed size: 697 bytes │ + length of filename: 20 characters │ length of extra field: 0 bytes │ length of file comment: 0 characters │ disk number on which file begins: disk 1 │ apparent file type: binary │ non-MSDOS external file attributes: 000000 hex │ MS-DOS file attributes (00 hex): none │ │ There is no file comment. │ │ Central directory entry #11: │ --------------------------- │ │ - There are an extra 16 bytes preceding this file. │ + META-INF/BD3ECC55.SF │ │ - org/jsoup/nodes/entities-full.properties │ + offset of local header from start of archive: 175334 │ + (000000000002ACE6h) bytes │ + file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ + version of encoding software: 2.0 │ + minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ + minimum software version required to extract: 2.0 │ + compression method: deflated │ + compression sub-type (deflation): normal │ + file security status: not encrypted │ + extended local header: no │ + file last modified on (DOS date/time): 2017 Oct 4 00:22:38 │ + 32-bit CRC value (hex): 0bb21c99 │ + compressed size: 479 bytes │ + uncompressed size: 818 bytes │ + length of filename: 20 characters │ + length of extra field: 0 bytes │ + length of file comment: 0 characters │ + disk number on which file begins: disk 1 │ + apparent file type: binary │ + non-MSDOS external file attributes: 000000 hex │ + MS-DOS file attributes (00 hex): none │ + │ + There is no file comment. │ + │ +Central directory entry #12: │ +--------------------------- │ │ - offset of local header from start of archive: 142215 │ - (0000000000022B87h) bytes │ + META-INF/BD3ECC55.RSA │ + │ + offset of local header from start of archive: 175863 │ + (000000000002AEF7h) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ version of encoding software: 2.0 │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ minimum software version required to extract: 2.0 │ compression method: deflated │ compression sub-type (deflation): normal │ file security status: not encrypted │ - extended local header: yes │ - file last modified on (DOS date/time): 2016 Oct 5 16:19:38 │ - 32-bit CRC value (hex): 98e43a72 │ - compressed size: 10565 bytes │ - uncompressed size: 27501 bytes │ - length of filename: 40 characters │ + extended local header: no │ + file last modified on (DOS date/time): 2017 Oct 4 00:22:38 │ + 32-bit CRC value (hex): 9eda951b │ + compressed size: 1072 bytes │ + uncompressed size: 1326 bytes │ + length of filename: 21 characters │ length of extra field: 0 bytes │ length of file comment: 0 characters │ disk number on which file begins: disk 1 │ apparent file type: binary │ non-MSDOS external file attributes: 000000 hex │ MS-DOS file attributes (00 hex): none ├── filetype from file(1) │ @@ -1 +1 @@ │ -Zip archive data, at least v2.0 to extract │ +Java archive data (JAR) ├── APK metadata │ @@ -7,16 +7,17 @@ │ packageInfo: null │ sdkInfo: │ minSdkVersion: '17' │ targetSdkVersion: '19' │ sharedLibrary: false │ sparseResources: true │ unknownFiles: │ - org/jsoup/nodes/entities-base.properties: '8' │ org/jsoup/nodes/entities-full.properties: '8' │ + org/jsoup/nodes/entities-base.properties: '8' │ + org/jsoup/nodes/entities-xhtml.properties: '8' │ usesFramework: │ ids: │ - 1 │ tag: null │ version: 2.5.0-dirty │ versionInfo: │ versionCode: '4' ├── classes.dex │ ├── classes.jar │ │ ├── zipinfo {} │ │ │ @@ -1,8 +1,8 @@ │ │ │ -Zip file size: 437917 bytes, number of entries: 254 │ │ │ +Zip file size: 454355 bytes, number of entries: 260 │ │ │ ?rwxrwxr-x 2.0 unx 443 b- stor 80-Jan-01 00:00 com/example/muzei/muzeiapod/BuildConfig.class │ │ │ ?rwxrwxr-x 2.0 unx 149 b- stor 80-Jan-01 00:00 com/example/muzei/muzeiapod/R$attr.class │ │ │ ?rwxrwxr-x 2.0 unx 206 b- stor 80-Jan-01 00:00 com/example/muzei/muzeiapod/R$drawable.class │ │ │ ?rwxrwxr-x 2.0 unx 280 b- stor 80-Jan-01 00:00 com/example/muzei/muzeiapod/R$string.class │ │ │ ?rwxrwxr-x 2.0 unx 144 b- stor 80-Jan-01 00:00 com/example/muzei/muzeiapod/R.class │ │ │ ?rwxrwxr-x 2.0 unx 95 b- stor 80-Jan-01 00:00 com/google/android/apps/muzei/api/Artwork$1.class │ │ │ ?rwxrwxr-x 2.0 unx 1286 b- stor 80-Jan-01 00:00 com/google/android/apps/muzei/api/Artwork$Builder.class │ │ │ @@ -15,171 +15,175 @@ │ │ │ ?rwxrwxr-x 2.0 unx 256 b- stor 80-Jan-01 00:00 com/google/android/apps/muzei/api/RemoteMuzeiArtSource$RetryException.class │ │ │ ?rwxrwxr-x 2.0 unx 1336 b- stor 80-Jan-01 00:00 com/google/android/apps/muzei/api/UserCommand.class │ │ │ ?rwxrwxr-x 2.0 unx 1064 b- stor 80-Jan-01 00:00 com/google/android/apps/muzei/api/internal/ProtocolConstants.class │ │ │ ?rwxrwxr-x 2.0 unx 4324 b- stor 80-Jan-01 00:00 com/google/android/apps/muzei/api/internal/SourceState.class │ │ │ ?rwxrwxr-x 2.0 unx 730 b- stor 80-Jan-01 00:00 org/jsoup/Connection$Base.class │ │ │ ?rwxrwxr-x 2.0 unx 342 b- stor 80-Jan-01 00:00 org/jsoup/Connection$KeyVal.class │ │ │ ?rwxrwxr-x 2.0 unx 1229 b- stor 80-Jan-01 00:00 org/jsoup/Connection$Method.class │ │ │ -?rwxrwxr-x 2.0 unx 1493 b- stor 80-Jan-01 00:00 org/jsoup/Connection.class │ │ │ +?rwxrwxr-x 2.0 unx 1511 b- stor 80-Jan-01 00:00 org/jsoup/Connection.class │ │ │ ?rwxrwxr-x 2.0 unx 701 b- stor 80-Jan-01 00:00 org/jsoup/HttpStatusException.class │ │ │ -?rwxrwxr-x 2.0 unx 2605 b- stor 80-Jan-01 00:00 org/jsoup/Jsoup.class │ │ │ +?rwxrwxr-x 2.0 unx 2608 b- stor 80-Jan-01 00:00 org/jsoup/Jsoup.class │ │ │ ?rwxrwxr-x 2.0 unx 380 b- stor 80-Jan-01 00:00 org/jsoup/SerializationException.class │ │ │ ?rwxrwxr-x 2.0 unx 674 b- stor 80-Jan-01 00:00 org/jsoup/UnsupportedMimeTypeException.class │ │ │ ?rwxrwxr-x 2.0 unx 88 b- stor 80-Jan-01 00:00 org/jsoup/examples/HtmlToPlainText$1.class │ │ │ ?rwxrwxr-x 2.0 unx 1815 b- stor 80-Jan-01 00:00 org/jsoup/examples/HtmlToPlainText.class │ │ │ ?rwxrwxr-x 2.0 unx 2652 b- stor 80-Jan-01 00:00 org/jsoup/examples/ListLinks.class │ │ │ -?rwxrwxr-x 2.0 unx 6110 b- stor 80-Jan-01 00:00 org/jsoup/helper/DataUtil.class │ │ │ +?rwxrwxr-x 2.0 unx 970 b- stor 80-Jan-01 00:00 org/jsoup/helper/ChangeNotifyingArrayList.class │ │ │ +?rwxrwxr-x 2.0 unx 6305 b- stor 80-Jan-01 00:00 org/jsoup/helper/DataUtil.class │ │ │ ?rwxrwxr-x 2.0 unx 92 b- stor 80-Jan-01 00:00 org/jsoup/helper/DescendableLinkedList$1.class │ │ │ ?rwxrwxr-x 2.0 unx 860 b- stor 80-Jan-01 00:00 org/jsoup/helper/DescendableLinkedList$DescendingIterator.class │ │ │ ?rwxrwxr-x 2.0 unx 702 b- stor 80-Jan-01 00:00 org/jsoup/helper/DescendableLinkedList.class │ │ │ ?rwxrwxr-x 2.0 unx 85 b- stor 80-Jan-01 00:00 org/jsoup/helper/HttpConnection$1.class │ │ │ ?rwxrwxr-x 2.0 unx 287 b- stor 80-Jan-01 00:00 org/jsoup/helper/HttpConnection$Response$1.class │ │ │ ?rwxrwxr-x 2.0 unx 443 b- stor 80-Jan-01 00:00 org/jsoup/helper/HttpConnection$Response$2.class │ │ │ ?rwxrwxr-x 2.0 unx 3497 b- stor 80-Jan-01 00:00 org/jsoup/helper/StringUtil.class │ │ │ ?rwxrwxr-x 2.0 unx 1183 b- stor 80-Jan-01 00:00 org/jsoup/helper/Validate.class │ │ │ ?rwxrwxr-x 2.0 unx 2352 b- stor 80-Jan-01 00:00 org/jsoup/helper/W3CDom.class │ │ │ -?rwxrwxr-x 2.0 unx 4269 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Attribute.class │ │ │ +?rwxrwxr-x 2.0 unx 479 b- stor 80-Jan-01 00:00 org/jsoup/internal/Normalizer.class │ │ │ +?rwxrwxr-x 2.0 unx 4243 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Attribute.class │ │ │ ?rwxrwxr-x 2.0 unx 80 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Attributes$1.class │ │ │ ?rwxrwxr-x 2.0 unx 1580 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Attributes$Dataset$DatasetIterator.class │ │ │ ?rwxrwxr-x 2.0 unx 663 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Attributes$Dataset$EntrySet.class │ │ │ ?rwxrwxr-x 2.0 unx 1461 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Attributes$Dataset.class │ │ │ -?rwxrwxr-x 2.0 unx 4259 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Attributes.class │ │ │ +?rwxrwxr-x 2.0 unx 4791 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Attributes.class │ │ │ ?rwxrwxr-x 2.0 unx 808 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Document$OutputSettings$Syntax.class │ │ │ -?rwxrwxr-x 2.0 unx 2492 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Document$OutputSettings.class │ │ │ +?rwxrwxr-x 2.0 unx 2401 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Document$OutputSettings.class │ │ │ ?rwxrwxr-x 2.0 unx 827 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Document$QuirksMode.class │ │ │ ?rwxrwxr-x 2.0 unx 577 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Entities$1.class │ │ │ ?rwxrwxr-x 2.0 unx 1092 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Entities$CoreCharset.class │ │ │ -?rwxrwxr-x 2.0 unx 1089 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Entities$EscapeMode.class │ │ │ -?rwxrwxr-x 2.0 unx 5704 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Entities.class │ │ │ -?rwxrwxr-x 2.0 unx 8299 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Node.class │ │ │ +?rwxrwxr-x 2.0 unx 2259 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Entities$EscapeMode.class │ │ │ +?rwxrwxr-x 2.0 unx 6573 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Entities.class │ │ │ +?rwxrwxr-x 2.0 unx 8641 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Node.class │ │ │ ?rwxrwxr-x 2.0 unx 5389 b- stor 80-Jan-01 00:00 org/jsoup/parser/CharacterReader.class │ │ │ ?rwxrwxr-x 2.0 unx 908 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$24.class │ │ │ ?rwxrwxr-x 2.0 unx 3746 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$Constants.class │ │ │ ?rwxrwxr-x 2.0 unx 5168 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState.class │ │ │ ?rwxrwxr-x 2.0 unx 807 b- stor 80-Jan-01 00:00 org/jsoup/parser/ParseError.class │ │ │ ?rwxrwxr-x 2.0 unx 587 b- stor 80-Jan-01 00:00 org/jsoup/parser/ParseErrorList.class │ │ │ -?rwxrwxr-x 2.0 unx 3069 b- stor 80-Jan-01 00:00 org/jsoup/parser/Parser.class │ │ │ -?rwxrwxr-x 2.0 unx 6556 b- stor 80-Jan-01 00:00 org/jsoup/parser/Tag.class │ │ │ +?rwxrwxr-x 2.0 unx 1148 b- stor 80-Jan-01 00:00 org/jsoup/parser/ParseSettings.class │ │ │ +?rwxrwxr-x 2.0 unx 3642 b- stor 80-Jan-01 00:00 org/jsoup/parser/Parser.class │ │ │ +?rwxrwxr-x 2.0 unx 6702 b- stor 80-Jan-01 00:00 org/jsoup/parser/Tag.class │ │ │ ?rwxrwxr-x 2.0 unx 76 b- stor 80-Jan-01 00:00 org/jsoup/parser/Token$1.class │ │ │ ?rwxrwxr-x 2.0 unx 1024 b- stor 80-Jan-01 00:00 org/jsoup/parser/Token$TokenType.class │ │ │ ?rwxrwxr-x 2.0 unx 1779 b- stor 80-Jan-01 00:00 org/jsoup/parser/Token.class │ │ │ -?rwxrwxr-x 2.0 unx 4727 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokenQueue.class │ │ │ -?rwxrwxr-x 2.0 unx 7761 b- stor 80-Jan-01 00:00 org/jsoup/parser/Tokeniser.class │ │ │ -?rwxrwxr-x 2.0 unx 12800 b- defN 80-Jan-01 00:00 org/jsoup/parser/TokeniserState.class │ │ │ -?rwxrwxr-x 2.0 unx 2982 b- stor 80-Jan-01 00:00 org/jsoup/parser/TreeBuilder.class │ │ │ +?rwxrwxr-x 2.0 unx 4874 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokenQueue.class │ │ │ +?rwxrwxr-x 2.0 unx 7991 b- stor 80-Jan-01 00:00 org/jsoup/parser/Tokeniser.class │ │ │ +?rwxrwxr-x 2.0 unx 12768 b- defN 80-Jan-01 00:00 org/jsoup/parser/TokeniserState.class │ │ │ +?rwxrwxr-x 2.0 unx 2968 b- stor 80-Jan-01 00:00 org/jsoup/parser/TreeBuilder.class │ │ │ ?rwxrwxr-x 2.0 unx 901 b- stor 80-Jan-01 00:00 org/jsoup/parser/XmlTreeBuilder$1.class │ │ │ ?rwxrwxr-x 2.0 unx 78 b- stor 80-Jan-01 00:00 org/jsoup/safety/Cleaner$1.class │ │ │ ?rwxrwxr-x 2.0 unx 288 b- stor 80-Jan-01 00:00 org/jsoup/safety/Cleaner$ElementMeta.class │ │ │ -?rwxrwxr-x 2.0 unx 2695 b- stor 80-Jan-01 00:00 org/jsoup/safety/Cleaner.class │ │ │ +?rwxrwxr-x 2.0 unx 3345 b- stor 80-Jan-01 00:00 org/jsoup/safety/Cleaner.class │ │ │ ?rwxrwxr-x 2.0 unx 703 b- stor 80-Jan-01 00:00 org/jsoup/safety/Whitelist$TypedValue.class │ │ │ -?rwxrwxr-x 2.0 unx 8123 b- stor 80-Jan-01 00:00 org/jsoup/safety/Whitelist.class │ │ │ +?rwxrwxr-x 2.0 unx 8340 b- stor 80-Jan-01 00:00 org/jsoup/safety/Whitelist.class │ │ │ ?rwxrwxr-x 2.0 unx 607 b- stor 80-Jan-01 00:00 org/jsoup/select/Collector.class │ │ │ -?rwxrwxr-x 2.0 unx 5109 b- stor 80-Jan-01 00:00 org/jsoup/select/Elements.class │ │ │ +?rwxrwxr-x 2.0 unx 6180 b- stor 80-Jan-01 00:00 org/jsoup/select/Elements.class │ │ │ ?rwxrwxr-x 2.0 unx 215 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator.class │ │ │ ?rwxrwxr-x 2.0 unx 715 b- stor 80-Jan-01 00:00 org/jsoup/select/NodeTraversor.class │ │ │ ?rwxrwxr-x 2.0 unx 139 b- stor 80-Jan-01 00:00 org/jsoup/select/NodeVisitor.class │ │ │ -?rwxrwxr-x 2.0 unx 10755 b- defN 80-Jan-01 00:00 org/jsoup/select/QueryParser.class │ │ │ +?rwxrwxr-x 2.0 unx 11362 b- defN 80-Jan-01 00:00 org/jsoup/select/QueryParser.class │ │ │ ?rwxrwxr-x 2.0 unx 347 b- stor 80-Jan-01 00:00 org/jsoup/select/Selector$SelectorParseException.class │ │ │ ?rwxrwxr-x 2.0 unx 2213 b- stor 80-Jan-01 00:00 org/jsoup/select/Selector.class │ │ │ ?rwxrwxr-x 2.0 unx 3122 b- stor 80-Jan-01 00:00 com/google/android/apps/muzei/api/RemoteMuzeiArtSource.class │ │ │ ?rwxrwxr-x 2.0 unx 934 b- stor 80-Jan-01 00:00 org/jsoup/Connection$Request.class │ │ │ -?rwxrwxr-x 2.0 unx 319 b- stor 80-Jan-01 00:00 org/jsoup/Connection$Response.class │ │ │ +?rwxrwxr-x 2.0 unx 381 b- stor 80-Jan-01 00:00 org/jsoup/Connection$Response.class │ │ │ ?rwxrwxr-x 2.0 unx 2456 b- stor 80-Jan-01 00:00 org/jsoup/examples/HtmlToPlainText$FormattingVisitor.class │ │ │ -?rwxrwxr-x 2.0 unx 2999 b- stor 80-Jan-01 00:00 org/jsoup/helper/HttpConnection$Base.class │ │ │ +?rwxrwxr-x 2.0 unx 3683 b- stor 80-Jan-01 00:00 org/jsoup/helper/HttpConnection$Base.class │ │ │ ?rwxrwxr-x 2.0 unx 1765 b- stor 80-Jan-01 00:00 org/jsoup/helper/HttpConnection$KeyVal.class │ │ │ -?rwxrwxr-x 2.0 unx 7085 b- stor 80-Jan-01 00:00 org/jsoup/helper/HttpConnection.class │ │ │ -?rwxrwxr-x 2.0 unx 2856 b- stor 80-Jan-01 00:00 org/jsoup/helper/W3CDom$W3CBuilder.class │ │ │ +?rwxrwxr-x 2.0 unx 7703 b- stor 80-Jan-01 00:00 org/jsoup/helper/HttpConnection.class │ │ │ +?rwxrwxr-x 2.0 unx 3052 b- stor 80-Jan-01 00:00 org/jsoup/helper/W3CDom$W3CBuilder.class │ │ │ ?rwxrwxr-x 2.0 unx 285 b- stor 80-Jan-01 00:00 org/jsoup/nodes/BooleanAttribute.class │ │ │ ?rwxrwxr-x 2.0 unx 1065 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Comment.class │ │ │ ?rwxrwxr-x 2.0 unx 1206 b- stor 80-Jan-01 00:00 org/jsoup/nodes/DataNode.class │ │ │ -?rwxrwxr-x 2.0 unx 1629 b- stor 80-Jan-01 00:00 org/jsoup/nodes/DocumentType.class │ │ │ +?rwxrwxr-x 2.0 unx 1994 b- stor 80-Jan-01 00:00 org/jsoup/nodes/DocumentType.class │ │ │ ?rwxrwxr-x 2.0 unx 1164 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Element$1.class │ │ │ -?rwxrwxr-x 2.0 unx 15955 b- defN 80-Jan-01 00:00 org/jsoup/nodes/Element.class │ │ │ +?rwxrwxr-x 2.0 unx 17273 b- defN 80-Jan-01 00:00 org/jsoup/nodes/Element.class │ │ │ ?rwxrwxr-x 2.0 unx 487 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Node$1.class │ │ │ +?rwxrwxr-x 2.0 unx 371 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Node$NodeList.class │ │ │ ?rwxrwxr-x 2.0 unx 987 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Node$OuterHtmlVisitor.class │ │ │ ?rwxrwxr-x 2.0 unx 3690 b- stor 80-Jan-01 00:00 org/jsoup/nodes/TextNode.class │ │ │ ?rwxrwxr-x 2.0 unx 1244 b- stor 80-Jan-01 00:00 org/jsoup/nodes/XmlDeclaration.class │ │ │ -?rwxrwxr-x 2.0 unx 16614 b- defN 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilder.class │ │ │ +?rwxrwxr-x 2.0 unx 17092 b- defN 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilder.class │ │ │ ?rwxrwxr-x 2.0 unx 2423 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$10.class │ │ │ -?rwxrwxr-x 2.0 unx 2139 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$11.class │ │ │ -?rwxrwxr-x 2.0 unx 2314 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$12.class │ │ │ -?rwxrwxr-x 2.0 unx 2608 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$13.class │ │ │ -?rwxrwxr-x 2.0 unx 2415 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$14.class │ │ │ -?rwxrwxr-x 2.0 unx 2361 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$15.class │ │ │ -?rwxrwxr-x 2.0 unx 3077 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$16.class │ │ │ -?rwxrwxr-x 2.0 unx 1609 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$17.class │ │ │ -?rwxrwxr-x 2.0 unx 1556 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$18.class │ │ │ -?rwxrwxr-x 2.0 unx 2126 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$19.class │ │ │ -?rwxrwxr-x 2.0 unx 1703 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$1.class │ │ │ -?rwxrwxr-x 2.0 unx 1685 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$20.class │ │ │ -?rwxrwxr-x 2.0 unx 1271 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$21.class │ │ │ -?rwxrwxr-x 2.0 unx 1309 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$22.class │ │ │ +?rwxrwxr-x 2.0 unx 2145 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$11.class │ │ │ +?rwxrwxr-x 2.0 unx 2320 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$12.class │ │ │ +?rwxrwxr-x 2.0 unx 2614 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$13.class │ │ │ +?rwxrwxr-x 2.0 unx 2421 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$14.class │ │ │ +?rwxrwxr-x 2.0 unx 2367 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$15.class │ │ │ +?rwxrwxr-x 2.0 unx 3110 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$16.class │ │ │ +?rwxrwxr-x 2.0 unx 1615 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$17.class │ │ │ +?rwxrwxr-x 2.0 unx 1562 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$18.class │ │ │ +?rwxrwxr-x 2.0 unx 2132 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$19.class │ │ │ +?rwxrwxr-x 2.0 unx 1936 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$1.class │ │ │ +?rwxrwxr-x 2.0 unx 1691 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$20.class │ │ │ +?rwxrwxr-x 2.0 unx 1277 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$21.class │ │ │ +?rwxrwxr-x 2.0 unx 1315 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$22.class │ │ │ ?rwxrwxr-x 2.0 unx 371 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$23.class │ │ │ -?rwxrwxr-x 2.0 unx 1770 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$2.class │ │ │ -?rwxrwxr-x 2.0 unx 1836 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$3.class │ │ │ -?rwxrwxr-x 2.0 unx 3278 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$4.class │ │ │ -?rwxrwxr-x 2.0 unx 2131 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$5.class │ │ │ -?rwxrwxr-x 2.0 unx 2536 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$6.class │ │ │ -?rwxrwxr-x 2.0 unx 12978 b- defN 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$7.class │ │ │ +?rwxrwxr-x 2.0 unx 1776 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$2.class │ │ │ +?rwxrwxr-x 2.0 unx 1842 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$3.class │ │ │ +?rwxrwxr-x 2.0 unx 3284 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$4.class │ │ │ +?rwxrwxr-x 2.0 unx 2137 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$5.class │ │ │ +?rwxrwxr-x 2.0 unx 2542 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$6.class │ │ │ +?rwxrwxr-x 2.0 unx 13138 b- defN 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$7.class │ │ │ ?rwxrwxr-x 2.0 unx 961 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$8.class │ │ │ -?rwxrwxr-x 2.0 unx 3686 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$9.class │ │ │ +?rwxrwxr-x 2.0 unx 3692 b- stor 80-Jan-01 00:00 org/jsoup/parser/HtmlTreeBuilderState$9.class │ │ │ ?rwxrwxr-x 2.0 unx 631 b- stor 80-Jan-01 00:00 org/jsoup/parser/Token$Character.class │ │ │ ?rwxrwxr-x 2.0 unx 807 b- stor 80-Jan-01 00:00 org/jsoup/parser/Token$Comment.class │ │ │ -?rwxrwxr-x 2.0 unx 936 b- stor 80-Jan-01 00:00 org/jsoup/parser/Token$Doctype.class │ │ │ +?rwxrwxr-x 2.0 unx 1043 b- stor 80-Jan-01 00:00 org/jsoup/parser/Token$Doctype.class │ │ │ ?rwxrwxr-x 2.0 unx 362 b- stor 80-Jan-01 00:00 org/jsoup/parser/Token$EOF.class │ │ │ -?rwxrwxr-x 2.0 unx 2670 b- stor 80-Jan-01 00:00 org/jsoup/parser/Token$Tag.class │ │ │ -?rwxrwxr-x 2.0 unx 1130 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$10.class │ │ │ +?rwxrwxr-x 2.0 unx 2995 b- stor 80-Jan-01 00:00 org/jsoup/parser/Token$Tag.class │ │ │ +?rwxrwxr-x 2.0 unx 1080 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$10.class │ │ │ ?rwxrwxr-x 2.0 unx 1437 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$11.class │ │ │ -?rwxrwxr-x 2.0 unx 1162 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$12.class │ │ │ -?rwxrwxr-x 2.0 unx 1544 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$13.class │ │ │ +?rwxrwxr-x 2.0 unx 1100 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$12.class │ │ │ +?rwxrwxr-x 2.0 unx 1486 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$13.class │ │ │ ?rwxrwxr-x 2.0 unx 740 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$14.class │ │ │ ?rwxrwxr-x 2.0 unx 608 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$15.class │ │ │ ?rwxrwxr-x 2.0 unx 538 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$16.class │ │ │ ?rwxrwxr-x 2.0 unx 836 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$17.class │ │ │ ?rwxrwxr-x 2.0 unx 614 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$18.class │ │ │ ?rwxrwxr-x 2.0 unx 541 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$19.class │ │ │ ?rwxrwxr-x 2.0 unx 961 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$1.class │ │ │ ?rwxrwxr-x 2.0 unx 708 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$20.class │ │ │ ?rwxrwxr-x 2.0 unx 708 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$21.class │ │ │ ?rwxrwxr-x 2.0 unx 1042 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$22.class │ │ │ ?rwxrwxr-x 2.0 unx 912 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$23.class │ │ │ ?rwxrwxr-x 2.0 unx 914 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$24.class │ │ │ -?rwxrwxr-x 2.0 unx 1294 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$25.class │ │ │ -?rwxrwxr-x 2.0 unx 1181 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$26.class │ │ │ +?rwxrwxr-x 2.0 unx 1235 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$25.class │ │ │ +?rwxrwxr-x 2.0 unx 1122 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$26.class │ │ │ ?rwxrwxr-x 2.0 unx 548 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$27.class │ │ │ ?rwxrwxr-x 2.0 unx 624 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$28.class │ │ │ ?rwxrwxr-x 2.0 unx 1026 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$29.class │ │ │ ?rwxrwxr-x 2.0 unx 499 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$2.class │ │ │ ?rwxrwxr-x 2.0 unx 906 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$30.class │ │ │ ?rwxrwxr-x 2.0 unx 901 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$31.class │ │ │ ?rwxrwxr-x 2.0 unx 760 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$32.class │ │ │ ?rwxrwxr-x 2.0 unx 624 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$33.class │ │ │ ?rwxrwxr-x 2.0 unx 1118 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$34.class │ │ │ -?rwxrwxr-x 2.0 unx 1310 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$35.class │ │ │ +?rwxrwxr-x 2.0 unx 1233 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$35.class │ │ │ ?rwxrwxr-x 2.0 unx 1177 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$36.class │ │ │ ?rwxrwxr-x 2.0 unx 1199 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$37.class │ │ │ ?rwxrwxr-x 2.0 unx 1350 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$38.class │ │ │ ?rwxrwxr-x 2.0 unx 1350 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$39.class │ │ │ ?rwxrwxr-x 2.0 unx 1014 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$3.class │ │ │ ?rwxrwxr-x 2.0 unx 1445 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$40.class │ │ │ ?rwxrwxr-x 2.0 unx 882 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$41.class │ │ │ -?rwxrwxr-x 2.0 unx 883 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$42.class │ │ │ +?rwxrwxr-x 2.0 unx 909 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$42.class │ │ │ ?rwxrwxr-x 2.0 unx 935 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$43.class │ │ │ ?rwxrwxr-x 2.0 unx 915 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$44.class │ │ │ ?rwxrwxr-x 2.0 unx 1083 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$45.class │ │ │ ?rwxrwxr-x 2.0 unx 1083 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$46.class │ │ │ ?rwxrwxr-x 2.0 unx 1207 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$47.class │ │ │ ?rwxrwxr-x 2.0 unx 1062 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$48.class │ │ │ ?rwxrwxr-x 2.0 unx 1220 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$49.class │ │ │ ?rwxrwxr-x 2.0 unx 501 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$4.class │ │ │ ?rwxrwxr-x 2.0 unx 1190 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$50.class │ │ │ ?rwxrwxr-x 2.0 unx 979 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$51.class │ │ │ ?rwxrwxr-x 2.0 unx 1202 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$52.class │ │ │ -?rwxrwxr-x 2.0 unx 1361 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$53.class │ │ │ -?rwxrwxr-x 2.0 unx 1279 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$54.class │ │ │ +?rwxrwxr-x 2.0 unx 1307 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$53.class │ │ │ +?rwxrwxr-x 2.0 unx 1356 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$54.class │ │ │ ?rwxrwxr-x 2.0 unx 1161 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$55.class │ │ │ ?rwxrwxr-x 2.0 unx 1095 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$56.class │ │ │ ?rwxrwxr-x 2.0 unx 1121 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$57.class │ │ │ ?rwxrwxr-x 2.0 unx 1121 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$58.class │ │ │ ?rwxrwxr-x 2.0 unx 1159 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$59.class │ │ │ ?rwxrwxr-x 2.0 unx 583 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$5.class │ │ │ ?rwxrwxr-x 2.0 unx 1092 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$60.class │ │ │ @@ -190,67 +194,69 @@ │ │ │ ?rwxrwxr-x 2.0 unx 936 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$65.class │ │ │ ?rwxrwxr-x 2.0 unx 664 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$66.class │ │ │ ?rwxrwxr-x 2.0 unx 725 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$67.class │ │ │ ?rwxrwxr-x 2.0 unx 586 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$6.class │ │ │ ?rwxrwxr-x 2.0 unx 807 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$7.class │ │ │ ?rwxrwxr-x 2.0 unx 974 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$8.class │ │ │ ?rwxrwxr-x 2.0 unx 953 b- stor 80-Jan-01 00:00 org/jsoup/parser/TokeniserState$9.class │ │ │ -?rwxrwxr-x 2.0 unx 5422 b- stor 80-Jan-01 00:00 org/jsoup/parser/XmlTreeBuilder.class │ │ │ +?rwxrwxr-x 2.0 unx 6337 b- stor 80-Jan-01 00:00 org/jsoup/parser/XmlTreeBuilder.class │ │ │ ?rwxrwxr-x 2.0 unx 2043 b- stor 80-Jan-01 00:00 org/jsoup/safety/Cleaner$CleaningVisitor.class │ │ │ ?rwxrwxr-x 2.0 unx 310 b- stor 80-Jan-01 00:00 org/jsoup/safety/Whitelist$AttributeKey.class │ │ │ ?rwxrwxr-x 2.0 unx 314 b- stor 80-Jan-01 00:00 org/jsoup/safety/Whitelist$AttributeValue.class │ │ │ ?rwxrwxr-x 2.0 unx 302 b- stor 80-Jan-01 00:00 org/jsoup/safety/Whitelist$Protocol.class │ │ │ ?rwxrwxr-x 2.0 unx 300 b- stor 80-Jan-01 00:00 org/jsoup/safety/Whitelist$TagName.class │ │ │ ?rwxrwxr-x 2.0 unx 821 b- stor 80-Jan-01 00:00 org/jsoup/select/Collector$Accumulator.class │ │ │ ?rwxrwxr-x 2.0 unx 835 b- stor 80-Jan-01 00:00 org/jsoup/select/CombiningEvaluator.class │ │ │ ?rwxrwxr-x 2.0 unx 332 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$AllElements.class │ │ │ ?rwxrwxr-x 2.0 unx 630 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$Attribute.class │ │ │ -?rwxrwxr-x 2.0 unx 716 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$AttributeKeyPair.class │ │ │ -?rwxrwxr-x 2.0 unx 1055 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$AttributeStarting.class │ │ │ -?rwxrwxr-x 2.0 unx 1083 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$AttributeWithValueMatching.class │ │ │ +?rwxrwxr-x 2.0 unx 744 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$AttributeKeyPair.class │ │ │ +?rwxrwxr-x 2.0 unx 1217 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$AttributeStarting.class │ │ │ +?rwxrwxr-x 2.0 unx 1096 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$AttributeWithValueMatching.class │ │ │ ?rwxrwxr-x 2.0 unx 632 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$Class.class │ │ │ -?rwxrwxr-x 2.0 unx 720 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$ContainsOwnText.class │ │ │ -?rwxrwxr-x 2.0 unx 711 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$ContainsText.class │ │ │ +?rwxrwxr-x 2.0 unx 790 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$ContainsData.class │ │ │ +?rwxrwxr-x 2.0 unx 795 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$ContainsOwnText.class │ │ │ +?rwxrwxr-x 2.0 unx 786 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$ContainsText.class │ │ │ ?rwxrwxr-x 2.0 unx 1243 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$CssNthEvaluator.class │ │ │ ?rwxrwxr-x 2.0 unx 637 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$Id.class │ │ │ ?rwxrwxr-x 2.0 unx 208 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IndexEvaluator.class │ │ │ ?rwxrwxr-x 2.0 unx 775 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IsEmpty.class │ │ │ -?rwxrwxr-x 2.0 unx 609 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IsFirstChild.class │ │ │ -?rwxrwxr-x 2.0 unx 725 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IsLastChild.class │ │ │ +?rwxrwxr-x 2.0 unx 531 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IsFirstChild.class │ │ │ +?rwxrwxr-x 2.0 unx 647 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IsLastChild.class │ │ │ ?rwxrwxr-x 2.0 unx 615 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IsOnlyChild.class │ │ │ ?rwxrwxr-x 2.0 unx 902 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IsOnlyOfType.class │ │ │ ?rwxrwxr-x 2.0 unx 476 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IsRoot.class │ │ │ -?rwxrwxr-x 2.0 unx 791 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$Matches.class │ │ │ -?rwxrwxr-x 2.0 unx 800 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$MatchesOwn.class │ │ │ -?rwxrwxr-x 2.0 unx 642 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$Tag.class │ │ │ +?rwxrwxr-x 2.0 unx 792 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$Matches.class │ │ │ +?rwxrwxr-x 2.0 unx 801 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$MatchesOwn.class │ │ │ +?rwxrwxr-x 2.0 unx 652 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$Tag.class │ │ │ +?rwxrwxr-x 2.0 unx 652 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$TagEndsWith.class │ │ │ ?rwxrwxr-x 2.0 unx 277 b- stor 80-Jan-01 00:00 org/jsoup/select/StructuralEvaluator$Root.class │ │ │ ?rwxrwxr-x 2.0 unx 212 b- stor 80-Jan-01 00:00 org/jsoup/select/StructuralEvaluator.class │ │ │ ?rwxrwxr-x 2.0 unx 3395 b- stor 80-Jan-01 00:00 com/example/muzei/muzeiapod/ApodNasaArtSource.class │ │ │ -?rwxrwxr-x 2.0 unx 4668 b- stor 80-Jan-01 00:00 org/jsoup/helper/HttpConnection$Request.class │ │ │ -?rwxrwxr-x 2.0 unx 15076 b- defN 80-Jan-01 00:00 org/jsoup/helper/HttpConnection$Response.class │ │ │ -?rwxrwxr-x 2.0 unx 5719 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Document.class │ │ │ +?rwxrwxr-x 2.0 unx 4825 b- stor 80-Jan-01 00:00 org/jsoup/helper/HttpConnection$Request.class │ │ │ +?rwxrwxr-x 2.0 unx 15515 b- defN 80-Jan-01 00:00 org/jsoup/helper/HttpConnection$Response.class │ │ │ +?rwxrwxr-x 2.0 unx 5882 b- stor 80-Jan-01 00:00 org/jsoup/nodes/Document.class │ │ │ ?rwxrwxr-x 2.0 unx 2703 b- stor 80-Jan-01 00:00 org/jsoup/nodes/FormElement.class │ │ │ ?rwxrwxr-x 2.0 unx 511 b- stor 80-Jan-01 00:00 org/jsoup/parser/Token$EndTag.class │ │ │ -?rwxrwxr-x 2.0 unx 1078 b- stor 80-Jan-01 00:00 org/jsoup/parser/Token$StartTag.class │ │ │ +?rwxrwxr-x 2.0 unx 1212 b- stor 80-Jan-01 00:00 org/jsoup/parser/Token$StartTag.class │ │ │ ?rwxrwxr-x 2.0 unx 882 b- stor 80-Jan-01 00:00 org/jsoup/select/CombiningEvaluator$And.class │ │ │ -?rwxrwxr-x 2.0 unx 1089 b- stor 80-Jan-01 00:00 org/jsoup/select/CombiningEvaluator$Or.class │ │ │ +?rwxrwxr-x 2.0 unx 1247 b- stor 80-Jan-01 00:00 org/jsoup/select/CombiningEvaluator$Or.class │ │ │ ?rwxrwxr-x 2.0 unx 851 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$AttributeWithValue.class │ │ │ -?rwxrwxr-x 2.0 unx 889 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$AttributeWithValueContaining.class │ │ │ -?rwxrwxr-x 2.0 unx 855 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$AttributeWithValueEnding.class │ │ │ +?rwxrwxr-x 2.0 unx 922 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$AttributeWithValueContaining.class │ │ │ +?rwxrwxr-x 2.0 unx 888 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$AttributeWithValueEnding.class │ │ │ ?rwxrwxr-x 2.0 unx 798 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$AttributeWithValueNot.class │ │ │ -?rwxrwxr-x 2.0 unx 859 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$AttributeWithValueStarting.class │ │ │ -?rwxrwxr-x 2.0 unx 737 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IndexEquals.class │ │ │ -?rwxrwxr-x 2.0 unx 742 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IndexGreaterThan.class │ │ │ -?rwxrwxr-x 2.0 unx 739 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IndexLessThan.class │ │ │ -?rwxrwxr-x 2.0 unx 513 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IsNthChild.class │ │ │ -?rwxrwxr-x 2.0 unx 687 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IsNthLastChild.class │ │ │ -?rwxrwxr-x 2.0 unx 905 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IsNthLastOfType.class │ │ │ +?rwxrwxr-x 2.0 unx 892 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$AttributeWithValueStarting.class │ │ │ +?rwxrwxr-x 2.0 unx 680 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IndexEquals.class │ │ │ +?rwxrwxr-x 2.0 unx 685 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IndexGreaterThan.class │ │ │ +?rwxrwxr-x 2.0 unx 682 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IndexLessThan.class │ │ │ +?rwxrwxr-x 2.0 unx 442 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IsNthChild.class │ │ │ +?rwxrwxr-x 2.0 unx 616 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IsNthLastChild.class │ │ │ +?rwxrwxr-x 2.0 unx 834 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IsNthLastOfType.class │ │ │ ?rwxrwxr-x 2.0 unx 864 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IsNthOfType.class │ │ │ ?rwxrwxr-x 2.0 unx 952 b- stor 80-Jan-01 00:00 org/jsoup/select/StructuralEvaluator$Has.class │ │ │ ?rwxrwxr-x 2.0 unx 770 b- stor 80-Jan-01 00:00 org/jsoup/select/StructuralEvaluator$ImmediateParent.class │ │ │ ?rwxrwxr-x 2.0 unx 784 b- stor 80-Jan-01 00:00 org/jsoup/select/StructuralEvaluator$ImmediatePreviousSibling.class │ │ │ ?rwxrwxr-x 2.0 unx 654 b- stor 80-Jan-01 00:00 org/jsoup/select/StructuralEvaluator$Not.class │ │ │ ?rwxrwxr-x 2.0 unx 763 b- stor 80-Jan-01 00:00 org/jsoup/select/StructuralEvaluator$Parent.class │ │ │ ?rwxrwxr-x 2.0 unx 786 b- stor 80-Jan-01 00:00 org/jsoup/select/StructuralEvaluator$PreviousSibling.class │ │ │ ?rwxrwxr-x 2.0 unx 275 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IsFirstOfType.class │ │ │ ?rwxrwxr-x 2.0 unx 277 b- stor 80-Jan-01 00:00 org/jsoup/select/Evaluator$IsLastOfType.class │ │ │ -254 files, 453241 bytes uncompressed, 397445 bytes compressed: 12.3% │ │ │ +260 files, 470513 bytes uncompressed, 412943 bytes compressed: 12.2% │ │ ├── zipnote «TEMP»/diffoscope_4k9s3btd_tmp/tmp041qzqre_.zip │ │ │ @@ -78,14 +78,17 @@ │ │ │ │ │ │ Filename: org/jsoup/examples/HtmlToPlainText.class │ │ │ Comment: │ │ │ │ │ │ Filename: org/jsoup/examples/ListLinks.class │ │ │ Comment: │ │ │ │ │ │ +Filename: org/jsoup/helper/ChangeNotifyingArrayList.class │ │ │ +Comment: │ │ │ + │ │ │ Filename: org/jsoup/helper/DataUtil.class │ │ │ Comment: │ │ │ │ │ │ Filename: org/jsoup/helper/DescendableLinkedList$1.class │ │ │ Comment: │ │ │ │ │ │ Filename: org/jsoup/helper/DescendableLinkedList$DescendingIterator.class │ │ │ @@ -108,14 +111,17 @@ │ │ │ │ │ │ Filename: org/jsoup/helper/Validate.class │ │ │ Comment: │ │ │ │ │ │ Filename: org/jsoup/helper/W3CDom.class │ │ │ Comment: │ │ │ │ │ │ +Filename: org/jsoup/internal/Normalizer.class │ │ │ +Comment: │ │ │ + │ │ │ Filename: org/jsoup/nodes/Attribute.class │ │ │ Comment: │ │ │ │ │ │ Filename: org/jsoup/nodes/Attributes$1.class │ │ │ Comment: │ │ │ │ │ │ Filename: org/jsoup/nodes/Attributes$Dataset$DatasetIterator.class │ │ │ @@ -168,14 +174,17 @@ │ │ │ │ │ │ Filename: org/jsoup/parser/ParseError.class │ │ │ Comment: │ │ │ │ │ │ Filename: org/jsoup/parser/ParseErrorList.class │ │ │ Comment: │ │ │ │ │ │ +Filename: org/jsoup/parser/ParseSettings.class │ │ │ +Comment: │ │ │ + │ │ │ Filename: org/jsoup/parser/Parser.class │ │ │ Comment: │ │ │ │ │ │ Filename: org/jsoup/parser/Tag.class │ │ │ Comment: │ │ │ │ │ │ Filename: org/jsoup/parser/Token$1.class │ │ │ @@ -282,14 +291,17 @@ │ │ │ │ │ │ Filename: org/jsoup/nodes/Element.class │ │ │ Comment: │ │ │ │ │ │ Filename: org/jsoup/nodes/Node$1.class │ │ │ Comment: │ │ │ │ │ │ +Filename: org/jsoup/nodes/Node$NodeList.class │ │ │ +Comment: │ │ │ + │ │ │ Filename: org/jsoup/nodes/Node$OuterHtmlVisitor.class │ │ │ Comment: │ │ │ │ │ │ Filename: org/jsoup/nodes/TextNode.class │ │ │ Comment: │ │ │ │ │ │ Filename: org/jsoup/nodes/XmlDeclaration.class │ │ │ @@ -621,14 +633,17 @@ │ │ │ │ │ │ Filename: org/jsoup/select/Evaluator$AttributeWithValueMatching.class │ │ │ Comment: │ │ │ │ │ │ Filename: org/jsoup/select/Evaluator$Class.class │ │ │ Comment: │ │ │ │ │ │ +Filename: org/jsoup/select/Evaluator$ContainsData.class │ │ │ +Comment: │ │ │ + │ │ │ Filename: org/jsoup/select/Evaluator$ContainsOwnText.class │ │ │ Comment: │ │ │ │ │ │ Filename: org/jsoup/select/Evaluator$ContainsText.class │ │ │ Comment: │ │ │ │ │ │ Filename: org/jsoup/select/Evaluator$CssNthEvaluator.class │ │ │ @@ -663,14 +678,17 @@ │ │ │ │ │ │ Filename: org/jsoup/select/Evaluator$MatchesOwn.class │ │ │ Comment: │ │ │ │ │ │ Filename: org/jsoup/select/Evaluator$Tag.class │ │ │ Comment: │ │ │ │ │ │ +Filename: org/jsoup/select/Evaluator$TagEndsWith.class │ │ │ +Comment: │ │ │ + │ │ │ Filename: org/jsoup/select/StructuralEvaluator$Root.class │ │ │ Comment: │ │ │ │ │ │ Filename: org/jsoup/select/StructuralEvaluator.class │ │ │ Comment: │ │ │ │ │ │ Filename: com/example/muzei/muzeiapod/ApodNasaArtSource.class │ │ ├── org/jsoup/Connection.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -31,14 +31,16 @@ │ │ │ │ │ │ │ │ Connection followRedirects(final boolean p0); │ │ │ │ │ │ │ │ Document get(); │ │ │ │ │ │ │ │ Connection header(final String p0, final String p1); │ │ │ │ │ │ │ │ + Connection headers(final Map p0); │ │ │ │ + │ │ │ │ Connection ignoreContentType(final boolean p0); │ │ │ │ │ │ │ │ Connection ignoreHttpErrors(final boolean p0); │ │ │ │ │ │ │ │ Connection maxBodySize(final int p0); │ │ │ │ │ │ │ │ Connection method(final Connection$Method p0); │ │ ├── org/jsoup/Jsoup.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -32,15 +32,15 @@ │ │ │ │ } │ │ │ │ │ │ │ │ public static Connection connect(final String s) { │ │ │ │ return HttpConnection.connect(s); │ │ │ │ } │ │ │ │ │ │ │ │ public static boolean isValid(final String s, final Whitelist whitelist) { │ │ │ │ - return new Cleaner(whitelist).isValid(parseBodyFragment(s, "")); │ │ │ │ + return new Cleaner(whitelist).isValidBodyHtml(s); │ │ │ │ } │ │ │ │ │ │ │ │ public static Document parse(final File file, final String s) { │ │ │ │ return DataUtil.load(file, s, file.getAbsolutePath()); │ │ │ │ } │ │ │ │ │ │ │ │ public static Document parse(final File file, final String s, final String s2) { │ │ ├── org/jsoup/helper/DataUtil.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,45 +1,46 @@ │ │ │ │ │ │ │ │ package org.jsoup.helper; │ │ │ │ │ │ │ │ import java.nio.charset.IllegalCharsetNameException; │ │ │ │ import java.util.Locale; │ │ │ │ import java.io.ByteArrayOutputStream; │ │ │ │ -import org.jsoup.nodes.Element; │ │ │ │ +import java.util.Iterator; │ │ │ │ +import org.jsoup.select.Elements; │ │ │ │ import org.jsoup.nodes.XmlDeclaration; │ │ │ │ +import org.jsoup.nodes.Element; │ │ │ │ import java.nio.charset.Charset; │ │ │ │ import java.util.Random; │ │ │ │ import org.jsoup.parser.Parser; │ │ │ │ import org.jsoup.nodes.Document; │ │ │ │ import java.io.File; │ │ │ │ import java.util.regex.Matcher; │ │ │ │ import java.nio.ByteBuffer; │ │ │ │ import java.io.OutputStream; │ │ │ │ import java.io.InputStream; │ │ │ │ import java.util.regex.Pattern; │ │ │ │ │ │ │ │ public final class DataUtil │ │ │ │ { │ │ │ │ - private static final int UNICODE_BOM = 65279; │ │ │ │ static final int boundaryLength = 32; │ │ │ │ - private static final int bufferSize = 131072; │ │ │ │ + private static final int bufferSize = 60000; │ │ │ │ private static final Pattern charsetPattern; │ │ │ │ static final String defaultCharset = "UTF-8"; │ │ │ │ private static final char[] mimeBoundaryChars; │ │ │ │ │ │ │ │ static { │ │ │ │ charsetPattern = Pattern.compile("(?i)\\bcharset=\\s*(?:\"|')?([^\\s,;\"']*)"); │ │ │ │ mimeBoundaryChars = "-_1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray(); │ │ │ │ } │ │ │ │ │ │ │ │ private DataUtil() { │ │ │ │ } │ │ │ │ │ │ │ │ static void crossStreams(final InputStream inputStream, final OutputStream outputStream) { │ │ │ │ - final byte[] array = new byte[131072]; │ │ │ │ + final byte[] array = new byte[60000]; │ │ │ │ while (true) { │ │ │ │ final int read = inputStream.read(array); │ │ │ │ if (read == -1) { │ │ │ │ break; │ │ │ │ } │ │ │ │ outputStream.write(array, 0, read); │ │ │ │ } │ │ │ │ @@ -109,25 +110,28 @@ │ │ │ │ static Document parseByteData(final ByteBuffer bb, String charsetName, final String s, final Parser parser) { │ │ │ │ Document document = null; │ │ │ │ charsetName = detectCharsetFromBom(bb, charsetName); │ │ │ │ String s2; │ │ │ │ if (charsetName == null) { │ │ │ │ s2 = Charset.forName("UTF-8").decode(bb).toString(); │ │ │ │ document = parser.parseInput(s2, s); │ │ │ │ - final Element first = document.select("meta[http-equiv=content-type], meta[charset]").first(); │ │ │ │ + final Elements select = document.select("meta[http-equiv=content-type], meta[charset]"); │ │ │ │ String s3 = null; │ │ │ │ - if (first != null) { │ │ │ │ - if (first.hasAttr("http-equiv")) { │ │ │ │ - s3 = getCharsetFromContentType(first.attr("content")); │ │ │ │ + for (final Element element : select) { │ │ │ │ + if (element.hasAttr("http-equiv")) { │ │ │ │ + s3 = getCharsetFromContentType(element.attr("content")); │ │ │ │ } │ │ │ │ - if (s3 == null && first.hasAttr("charset")) { │ │ │ │ - s3 = first.attr("charset"); │ │ │ │ + if (s3 == null && element.hasAttr("charset")) { │ │ │ │ + s3 = element.attr("charset"); │ │ │ │ + } │ │ │ │ + if (s3 != null) { │ │ │ │ + break; │ │ │ │ } │ │ │ │ } │ │ │ │ - if (s3 == null && document.childNode(0) instanceof XmlDeclaration) { │ │ │ │ + if (s3 == null && document.childNodeSize() > 0 && document.childNode(0) instanceof XmlDeclaration) { │ │ │ │ final XmlDeclaration xmlDeclaration = (XmlDeclaration)document.childNode(0); │ │ │ │ if (xmlDeclaration.name().equals("xml")) { │ │ │ │ s3 = xmlDeclaration.attr("encoding"); │ │ │ │ } │ │ │ │ } │ │ │ │ final String validateCharset = validateCharset(s3); │ │ │ │ if (validateCharset != null && !validateCharset.equals("UTF-8")) { │ │ │ │ @@ -230,45 +234,52 @@ │ │ │ │ throw new IllegalStateException("An error occurred while decompiling this method."); │ │ │ │ } │ │ │ │ │ │ │ │ static ByteBuffer readToByteBuffer(final InputStream inputStream) { │ │ │ │ return readToByteBuffer(inputStream, 0); │ │ │ │ } │ │ │ │ │ │ │ │ - static ByteBuffer readToByteBuffer(final InputStream inputStream, final int n) { │ │ │ │ - final int size = 131072; │ │ │ │ + public static ByteBuffer readToByteBuffer(final InputStream inputStream, final int n) { │ │ │ │ final boolean b = true; │ │ │ │ + int size = 60000; │ │ │ │ Validate.isTrue(n >= 0 && b, "maxSize must be 0 (unlimited) or larger"); │ │ │ │ - int n2; │ │ │ │ + boolean b2; │ │ │ │ if (n > 0) { │ │ │ │ - n2 = (b ? 1 : 0); │ │ │ │ + b2 = b; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + b2 = false; │ │ │ │ + } │ │ │ │ + int n2; │ │ │ │ + if (b2 && n < size) { │ │ │ │ + n2 = n; │ │ │ │ } │ │ │ │ else { │ │ │ │ - n2 = 0; │ │ │ │ + n2 = size; │ │ │ │ + } │ │ │ │ + final byte[] b3 = new byte[n2]; │ │ │ │ + if (b2) { │ │ │ │ + size = n; │ │ │ │ } │ │ │ │ - final byte[] b2 = new byte[size]; │ │ │ │ final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(size); │ │ │ │ int len = n; │ │ │ │ - Block_4: { │ │ │ │ - while (true) { │ │ │ │ - final int read = inputStream.read(b2); │ │ │ │ - if (read == -1) { │ │ │ │ + while (!Thread.interrupted()) { │ │ │ │ + final int read = inputStream.read(b3); │ │ │ │ + if (read == -1) { │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + if (b2) { │ │ │ │ + if (read > len) { │ │ │ │ + byteArrayOutputStream.write(b3, 0, len); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (n2 != 0) { │ │ │ │ - if (read > len) { │ │ │ │ - break Block_4; │ │ │ │ - } │ │ │ │ - len -= read; │ │ │ │ - } │ │ │ │ - byteArrayOutputStream.write(b2, 0, read); │ │ │ │ + len -= read; │ │ │ │ } │ │ │ │ - return ByteBuffer.wrap(byteArrayOutputStream.toByteArray()); │ │ │ │ + byteArrayOutputStream.write(b3, 0, read); │ │ │ │ } │ │ │ │ - byteArrayOutputStream.write(b2, 0, len); │ │ │ │ return ByteBuffer.wrap(byteArrayOutputStream.toByteArray()); │ │ │ │ } │ │ │ │ │ │ │ │ private static String validateCharset(String s) { │ │ │ │ if (s == null || s.length() == 0) { │ │ │ │ s = null; │ │ │ │ } │ │ ├── org/jsoup/nodes/Attribute.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -14,17 +14,18 @@ │ │ │ │ private String value; │ │ │ │ │ │ │ │ static { │ │ │ │ booleanAttributes = new String[] { "allowfullscreen", "async", "autofocus", "checked", "compact", "declare", "default", "defer", "disabled", "formnovalidate", "hidden", "inert", "ismap", "itemscope", "multiple", "muted", "nohref", "noresize", "noshade", "novalidate", "nowrap", "open", "readonly", "required", "reversed", "seamless", "selected", "sortable", "truespeed", "typemustmatch" }; │ │ │ │ } │ │ │ │ │ │ │ │ public Attribute(final String s, final String value) { │ │ │ │ - Validate.notEmpty(s); │ │ │ │ + Validate.notNull((Object)s); │ │ │ │ Validate.notNull((Object)value); │ │ │ │ - this.key = s.trim().toLowerCase(); │ │ │ │ + this.key = s.trim(); │ │ │ │ + Validate.notEmpty(s); │ │ │ │ this.value = value; │ │ │ │ } │ │ │ │ │ │ │ │ public static Attribute createFromEncoded(final String s, final String s2) { │ │ │ │ return new Attribute(s, Entities.unescape(s2, true)); │ │ │ │ } │ │ │ │ │ │ │ │ @@ -127,15 +128,15 @@ │ │ │ │ │ │ │ │ protected boolean isDataAttribute() { │ │ │ │ return this.key.startsWith("data-") && this.key.length() > "data-".length(); │ │ │ │ } │ │ │ │ │ │ │ │ public void setKey(final String s) { │ │ │ │ Validate.notEmpty(s); │ │ │ │ - this.key = s.trim().toLowerCase(); │ │ │ │ + this.key = s.trim(); │ │ │ │ } │ │ │ │ │ │ │ │ public String setValue(final String value) { │ │ │ │ Validate.notNull((Object)value); │ │ │ │ final String value2 = this.value; │ │ │ │ this.value = value; │ │ │ │ return value2; │ │ ├── org/jsoup/nodes/Attributes.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -96,34 +96,72 @@ │ │ │ │ } │ │ │ │ b = false; │ │ │ │ } │ │ │ │ } │ │ │ │ return b; │ │ │ │ } │ │ │ │ │ │ │ │ - public String get(final String s) { │ │ │ │ - Validate.notEmpty(s); │ │ │ │ + public String get(final String key) { │ │ │ │ + Validate.notEmpty(key); │ │ │ │ String value; │ │ │ │ if (this.attributes == null) { │ │ │ │ value = ""; │ │ │ │ } │ │ │ │ else { │ │ │ │ - final Attribute attribute = (Attribute)this.attributes.get(s.toLowerCase()); │ │ │ │ + final Attribute attribute = (Attribute)this.attributes.get(key); │ │ │ │ if (attribute != null) { │ │ │ │ value = attribute.getValue(); │ │ │ │ } │ │ │ │ else { │ │ │ │ value = ""; │ │ │ │ } │ │ │ │ } │ │ │ │ return value; │ │ │ │ } │ │ │ │ │ │ │ │ - public boolean hasKey(final String s) { │ │ │ │ - return this.attributes != null && this.attributes.containsKey(s.toLowerCase()); │ │ │ │ + public String getIgnoreCase(final String s) { │ │ │ │ + Validate.notEmpty(s); │ │ │ │ + String s2; │ │ │ │ + if (this.attributes == null) { │ │ │ │ + s2 = ""; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + final Attribute attribute = (Attribute)this.attributes.get(s); │ │ │ │ + if (attribute != null) { │ │ │ │ + s2 = attribute.getValue(); │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + for (final String key : this.attributes.keySet()) { │ │ │ │ + if (key.equalsIgnoreCase(s)) { │ │ │ │ + s2 = ((Attribute)this.attributes.get(key)).getValue(); │ │ │ │ + return s2; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + s2 = ""; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + return s2; │ │ │ │ + } │ │ │ │ + │ │ │ │ + public boolean hasKey(final String key) { │ │ │ │ + return this.attributes != null && this.attributes.containsKey(key); │ │ │ │ + } │ │ │ │ + │ │ │ │ + public boolean hasKeyIgnoreCase(final String anotherString) { │ │ │ │ + boolean b = false; │ │ │ │ + if (this.attributes != null) { │ │ │ │ + final Iterator iterator = this.attributes.keySet().iterator(); │ │ │ │ + while (iterator.hasNext()) { │ │ │ │ + if (((String)iterator.next()).equalsIgnoreCase(anotherString)) { │ │ │ │ + b = true; │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + } │ │ │ │ + return b; │ │ │ │ } │ │ │ │ │ │ │ │ @Override │ │ │ │ public int hashCode() { │ │ │ │ int hashCode; │ │ │ │ if (this.attributes != null) { │ │ │ │ hashCode = this.attributes.hashCode(); │ │ │ │ @@ -153,15 +191,22 @@ │ │ │ │ appendable.append(" "); │ │ │ │ attribute.html(appendable, document$OutputSettings); │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ public Iterator iterator() { │ │ │ │ - return this.asList().iterator(); │ │ │ │ + Iterator iterator; │ │ │ │ + if (this.attributes == null || this.attributes.isEmpty()) { │ │ │ │ + iterator = Collections.emptyList().iterator(); │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + iterator = this.attributes.values().iterator(); │ │ │ │ + } │ │ │ │ + return iterator; │ │ │ │ } │ │ │ │ │ │ │ │ public void put(final String s, final String s2) { │ │ │ │ this.put(new Attribute(s, s2)); │ │ │ │ } │ │ │ │ │ │ │ │ public void put(final String s, final boolean b) { │ │ │ │ @@ -177,18 +222,30 @@ │ │ │ │ Validate.notNull((Object)value); │ │ │ │ if (this.attributes == null) { │ │ │ │ this.attributes = new LinkedHashMap(2); │ │ │ │ } │ │ │ │ this.attributes.put(value.getKey(), value); │ │ │ │ } │ │ │ │ │ │ │ │ - public void remove(final String s) { │ │ │ │ - Validate.notEmpty(s); │ │ │ │ + public void remove(final String key) { │ │ │ │ + Validate.notEmpty(key); │ │ │ │ + if (this.attributes != null) { │ │ │ │ + this.attributes.remove(key); │ │ │ │ + } │ │ │ │ + } │ │ │ │ + │ │ │ │ + public void removeIgnoreCase(final String anotherString) { │ │ │ │ + Validate.notEmpty(anotherString); │ │ │ │ if (this.attributes != null) { │ │ │ │ - this.attributes.remove(s.toLowerCase()); │ │ │ │ + final Iterator iterator = this.attributes.keySet().iterator(); │ │ │ │ + while (iterator.hasNext()) { │ │ │ │ + if (((String)iterator.next()).equalsIgnoreCase(anotherString)) { │ │ │ │ + iterator.remove(); │ │ │ │ + } │ │ │ │ + } │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ public int size() { │ │ │ │ int size; │ │ │ │ if (this.attributes == null) { │ │ │ │ size = 0; │ │ ├── org/jsoup/nodes/Document$OutputSettings.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -4,26 +4,24 @@ │ │ │ │ import org.jsoup.helper.Validate; │ │ │ │ import java.nio.charset.CharsetEncoder; │ │ │ │ import java.nio.charset.Charset; │ │ │ │ │ │ │ │ public class Document$OutputSettings implements Cloneable │ │ │ │ { │ │ │ │ private Charset charset; │ │ │ │ - private CharsetEncoder charsetEncoder; │ │ │ │ private Entities$EscapeMode escapeMode; │ │ │ │ private int indentAmount; │ │ │ │ private boolean outline; │ │ │ │ private boolean prettyPrint; │ │ │ │ private Document$OutputSettings$Syntax syntax; │ │ │ │ │ │ │ │ public Document$OutputSettings() { │ │ │ │ final boolean b = true; │ │ │ │ this.escapeMode = Entities$EscapeMode.base; │ │ │ │ this.charset = Charset.forName("UTF-8"); │ │ │ │ - this.charsetEncoder = this.charset.newEncoder(); │ │ │ │ this.prettyPrint = b; │ │ │ │ this.outline = false; │ │ │ │ this.indentAmount = (b ? 1 : 0); │ │ │ │ this.syntax = Document$OutputSettings$Syntax.html; │ │ │ │ } │ │ │ │ │ │ │ │ public Charset charset() { │ │ │ │ @@ -33,15 +31,14 @@ │ │ │ │ public Document$OutputSettings charset(final String charsetName) { │ │ │ │ this.charset(Charset.forName(charsetName)); │ │ │ │ return this; │ │ │ │ } │ │ │ │ │ │ │ │ public Document$OutputSettings charset(final Charset charset) { │ │ │ │ this.charset = charset; │ │ │ │ - this.charsetEncoder = charset.newEncoder(); │ │ │ │ return this; │ │ │ │ } │ │ │ │ │ │ │ │ public Document$OutputSettings clone() { │ │ │ │ try { │ │ │ │ final Object clone = super.clone(); │ │ │ │ try { │ │ │ │ @@ -54,15 +51,15 @@ │ │ │ │ throw new RuntimeException(cause); │ │ │ │ } │ │ │ │ } │ │ │ │ catch (CloneNotSupportedException ex) {} │ │ │ │ } │ │ │ │ │ │ │ │ CharsetEncoder encoder() { │ │ │ │ - return this.charsetEncoder; │ │ │ │ + return this.charset.newEncoder(); │ │ │ │ } │ │ │ │ │ │ │ │ public Document$OutputSettings escapeMode(final Entities$EscapeMode escapeMode) { │ │ │ │ this.escapeMode = escapeMode; │ │ │ │ return this; │ │ │ │ } │ │ ├── org/jsoup/nodes/Entities$CoreCharset.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -61,15 +61,15 @@ │ │ │ │ #53 = Utf8 clone │ │ │ │ #54 = Utf8 ()Ljava/lang/Object; │ │ │ │ #55 = NameAndType #53:#54 // clone:()Ljava/lang/Object; │ │ │ │ #56 = Methodref #52.#55 // "[Lorg/jsoup/nodes/Entities$CoreCharset;".clone:()Ljava/lang/Object; │ │ │ │ #57 = Utf8 Code │ │ │ │ #58 = Utf8 │ │ │ │ #59 = Utf8 ()V │ │ │ │ - #60 = Utf8 access$300 │ │ │ │ + #60 = Utf8 access$100 │ │ │ │ #61 = Utf8 values │ │ │ │ #62 = Utf8 ()[Lorg/jsoup/nodes/Entities$CoreCharset; │ │ │ │ { │ │ │ │ private static final org.jsoup.nodes.Entities$CoreCharset[] $VALUES; │ │ │ │ descriptor: [Lorg/jsoup/nodes/Entities$CoreCharset; │ │ │ │ flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC │ │ │ │ │ │ │ │ @@ -150,15 +150,15 @@ │ │ │ │ stack=300, locals=3, args_size=3 │ │ │ │ 0: aload_0 │ │ │ │ 1: aload_1 │ │ │ │ 2: iload_2 │ │ │ │ 3: invokespecial #29 // Method java/lang/Enum."":(Ljava/lang/String;I)V │ │ │ │ 6: return │ │ │ │ │ │ │ │ - static org.jsoup.nodes.Entities$CoreCharset access$300(java.lang.String); │ │ │ │ + static org.jsoup.nodes.Entities$CoreCharset access$100(java.lang.String); │ │ │ │ descriptor: (Ljava/lang/String;)Lorg/jsoup/nodes/Entities$CoreCharset; │ │ │ │ flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC │ │ │ │ Code: │ │ │ │ stack=300, locals=1, args_size=1 │ │ │ │ 0: aload_0 │ │ │ │ 1: invokestatic #33 // Method byName:(Ljava/lang/String;)Lorg/jsoup/nodes/Entities$CoreCharset; │ │ │ │ 4: areturn │ │ ├── org/jsoup/nodes/Entities$EscapeMode.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,30 +1,62 @@ │ │ │ │ │ │ │ │ package org.jsoup.nodes; │ │ │ │ │ │ │ │ -import java.util.Map; │ │ │ │ +import java.util.Arrays; │ │ │ │ │ │ │ │ public enum Entities$EscapeMode │ │ │ │ { │ │ │ │ - base("base", n2, Entities.access$100()), │ │ │ │ - extended("extended", n, Entities.access$200()), │ │ │ │ - xhtml("xhtml", 0, Entities.access$000()); │ │ │ │ + base("base", n2, "entities-base.properties", 106), │ │ │ │ + extended("extended", n, "entities-full.properties", 2125), │ │ │ │ + xhtml("xhtml", 0, "entities-xhtml.properties", 4); │ │ │ │ │ │ │ │ - private Map map; │ │ │ │ + private int[] codeKeys; │ │ │ │ + private int[] codeVals; │ │ │ │ + private String[] nameKeys; │ │ │ │ + private String[] nameVals; │ │ │ │ │ │ │ │ static { │ │ │ │ final int n = 2; │ │ │ │ final int n2 = 1; │ │ │ │ final Entities$EscapeMode[] $values = { Entities$EscapeMode.xhtml, null, null }; │ │ │ │ $values[n2] = Entities$EscapeMode.base; │ │ │ │ $values[n] = Entities$EscapeMode.extended; │ │ │ │ $VALUES = $values; │ │ │ │ } │ │ │ │ │ │ │ │ - private Entities$EscapeMode(final String name, final int ordinal, final Map map) { │ │ │ │ - this.map = map; │ │ │ │ + private Entities$EscapeMode(final String name, final int ordinal, final String s, final int n) { │ │ │ │ + Entities.access$000(this, s, n); │ │ │ │ } │ │ │ │ │ │ │ │ - public Map getMap() { │ │ │ │ - return this.map; │ │ │ │ + private int size() { │ │ │ │ + return this.nameKeys.length; │ │ │ │ + } │ │ │ │ + │ │ │ │ + int codepointForName(final String key) { │ │ │ │ + final int binarySearch = Arrays.binarySearch(this.nameKeys, key); │ │ │ │ + int n; │ │ │ │ + if (binarySearch >= 0) { │ │ │ │ + n = this.codeVals[binarySearch]; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + n = -1; │ │ │ │ + } │ │ │ │ + return n; │ │ │ │ + } │ │ │ │ + │ │ │ │ + String nameForCodepoint(final int key) { │ │ │ │ + final int binarySearch = Arrays.binarySearch(this.codeKeys, key); │ │ │ │ + String s; │ │ │ │ + if (binarySearch >= 0) { │ │ │ │ + if (binarySearch < this.nameVals.length - 1 && this.codeKeys[binarySearch + 1] == key) { │ │ │ │ + s = this.nameVals[binarySearch + 1]; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + s = this.nameVals[binarySearch]; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + s = ""; │ │ │ │ + } │ │ │ │ + return s; │ │ │ │ } │ │ │ │ } │ │ ├── org/jsoup/nodes/Entities.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,67 +1,53 @@ │ │ │ │ │ │ │ │ package org.jsoup.nodes; │ │ │ │ │ │ │ │ import org.jsoup.parser.Parser; │ │ │ │ -import java.util.Iterator; │ │ │ │ +import java.nio.CharBuffer; │ │ │ │ import java.io.InputStream; │ │ │ │ -import java.util.MissingResourceException; │ │ │ │ -import java.util.Properties; │ │ │ │ +import org.jsoup.parser.CharacterReader; │ │ │ │ +import org.jsoup.helper.DataUtil; │ │ │ │ +import java.nio.charset.Charset; │ │ │ │ import org.jsoup.helper.StringUtil; │ │ │ │ import java.io.IOException; │ │ │ │ import org.jsoup.SerializationException; │ │ │ │ import java.nio.charset.CharsetEncoder; │ │ │ │ import java.util.HashMap; │ │ │ │ -import java.util.Map; │ │ │ │ │ │ │ │ public class Entities │ │ │ │ { │ │ │ │ - private static final Map base; │ │ │ │ - private static final Map baseByVal; │ │ │ │ - private static final Map full; │ │ │ │ - private static final Map fullByVal; │ │ │ │ - private static final Object[][] xhtmlArray; │ │ │ │ - private static final Map xhtmlByVal; │ │ │ │ + private static final char[] codeDelims; │ │ │ │ + static final int codepointRadix = 36; │ │ │ │ + private static final int empty = 255; │ │ │ │ + private static final String emptyName = ""; │ │ │ │ + private static final HashMap multipoints; │ │ │ │ │ │ │ │ static { │ │ │ │ - final int n = 2; │ │ │ │ - final int n2 = 1; │ │ │ │ - final Object[][] xhtmlArray2 = new Object[4][]; │ │ │ │ - final Object[] array = new Object[n]; │ │ │ │ - array[0] = "quot"; │ │ │ │ - array[n2] = Integer.valueOf(34); │ │ │ │ - xhtmlArray2[0] = array; │ │ │ │ - final Object[] array2 = new Object[n]; │ │ │ │ - array2[0] = "amp"; │ │ │ │ - array2[n2] = Integer.valueOf(38); │ │ │ │ - xhtmlArray2[n2] = array2; │ │ │ │ - final Object[] array3 = new Object[n]; │ │ │ │ - array3[0] = "lt"; │ │ │ │ - array3[n2] = Integer.valueOf(60); │ │ │ │ - xhtmlArray2[n] = array3; │ │ │ │ - final Object[] array4 = new Object[n]; │ │ │ │ - array4[0] = "gt"; │ │ │ │ - array4[n2] = Integer.valueOf(62); │ │ │ │ - xhtmlArray2[3] = array4; │ │ │ │ - xhtmlArray = xhtmlArray2; │ │ │ │ - xhtmlByVal = new HashMap(); │ │ │ │ - base = loadEntities("entities-base.properties"); │ │ │ │ - baseByVal = toCharacterKey(Entities.base); │ │ │ │ - full = loadEntities("entities-full.properties"); │ │ │ │ - fullByVal = toCharacterKey(Entities.full); │ │ │ │ - final Object[][] xhtmlArray3 = Entities.xhtmlArray; │ │ │ │ - for (int length = xhtmlArray3.length, i = 0; i < length; ++i) { │ │ │ │ - final Object[] array5 = xhtmlArray3[i]; │ │ │ │ - Entities.xhtmlByVal.put(Character.valueOf((int)array5[n2]), array5[0]); │ │ │ │ - } │ │ │ │ + multipoints = new HashMap(); │ │ │ │ + final char[] array; │ │ │ │ + final char[] codeDelims2 = array = new char[2]; │ │ │ │ + array[0] = ','; │ │ │ │ + array[1] = ';'; │ │ │ │ + codeDelims = codeDelims2; │ │ │ │ } │ │ │ │ │ │ │ │ private Entities() { │ │ │ │ } │ │ │ │ │ │ │ │ + private static void appendEncoded(final Appendable appendable, final Entities$EscapeMode entities$EscapeMode, final int i) { │ │ │ │ + final char c = ';'; │ │ │ │ + final String nameForCodepoint = entities$EscapeMode.nameForCodepoint(i); │ │ │ │ + if (nameForCodepoint != "") { │ │ │ │ + appendable.append('&').append(nameForCodepoint).append(c); │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + appendable.append("&#x").append(Integer.toHexString(i)).append(c); │ │ │ │ + } │ │ │ │ + } │ │ │ │ + │ │ │ │ private static boolean canEncode(final Entities$CoreCharset entities$CoreCharset, final char c, final CharsetEncoder charsetEncoder) { │ │ │ │ boolean canEncode = true; │ │ │ │ switch (Entities$1.$SwitchMap$org$jsoup$nodes$Entities$CoreCharset[entities$CoreCharset.ordinal()]) { │ │ │ │ default: { │ │ │ │ canEncode = charsetEncoder.canEncode(c); │ │ │ │ return canEncode; │ │ │ │ } │ │ │ │ @@ -74,14 +60,34 @@ │ │ │ │ return canEncode; │ │ │ │ } │ │ │ │ return canEncode; │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ + public static int codepointsForName(final String key, final int[] array) { │ │ │ │ + int index = 1; │ │ │ │ + final String s = (String)Entities.multipoints.get(key); │ │ │ │ + if (s != null) { │ │ │ │ + array[0] = s.codePointAt(0); │ │ │ │ + array[index] = s.codePointAt(index); │ │ │ │ + index = 2; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + final int codepointForName = Entities$EscapeMode.extended.codepointForName(key); │ │ │ │ + if (codepointForName != -1) { │ │ │ │ + array[0] = codepointForName; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + index = 0; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + return index; │ │ │ │ + } │ │ │ │ + │ │ │ │ static String escape(final String s, final Document$OutputSettings document$OutputSettings) { │ │ │ │ final StringBuilder sb = new StringBuilder(s.length() * 2); │ │ │ │ final boolean b = false; │ │ │ │ final boolean b2 = false; │ │ │ │ try { │ │ │ │ escape(sb, s, document$OutputSettings, b, b2, false); │ │ │ │ return sb.toString(); │ │ │ │ @@ -92,51 +98,46 @@ │ │ │ │ } │ │ │ │ │ │ │ │ static void escape(final Appendable appendable, final String s, final Document$OutputSettings document$OutputSettings, final boolean b, final boolean b2, final boolean b3) { │ │ │ │ int n = 0; │ │ │ │ boolean b4 = false; │ │ │ │ final Entities$EscapeMode escapeMode = document$OutputSettings.escapeMode(); │ │ │ │ final CharsetEncoder encoder = document$OutputSettings.encoder(); │ │ │ │ - final Entities$CoreCharset access$300 = Entities$CoreCharset.access$300(encoder.charset().name()); │ │ │ │ - final Map map = escapeMode.getMap(); │ │ │ │ + final Entities$CoreCharset access$100 = Entities$CoreCharset.access$100(encoder.charset().name()); │ │ │ │ final int length = s.length(); │ │ │ │ int i = 0; │ │ │ │ - Label_0098_Outer: │ │ │ │ + Label_0091_Outer: │ │ │ │ while (i < length) { │ │ │ │ final int codePoint = s.codePointAt(i); │ │ │ │ while (true) { │ │ │ │ - Label_0140: { │ │ │ │ + Label_0133: { │ │ │ │ if (!b2) { │ │ │ │ - break Label_0140; │ │ │ │ + break Label_0133; │ │ │ │ } │ │ │ │ if (!StringUtil.isWhitespace(codePoint)) { │ │ │ │ n = 0; │ │ │ │ b4 = true; │ │ │ │ - break Label_0140; │ │ │ │ + break Label_0133; │ │ │ │ } │ │ │ │ if ((b3 || b4) && n == 0) { │ │ │ │ appendable.append(' '); │ │ │ │ n = 1; │ │ │ │ } │ │ │ │ i += Character.charCount(codePoint); │ │ │ │ - continue Label_0098_Outer; │ │ │ │ + continue Label_0091_Outer; │ │ │ │ } │ │ │ │ if (codePoint < 65536) { │ │ │ │ final char c = (char)codePoint; │ │ │ │ switch (c) { │ │ │ │ default: { │ │ │ │ - if (canEncode(access$300, c, encoder)) { │ │ │ │ + if (canEncode(access$100, c, encoder)) { │ │ │ │ appendable.append(c); │ │ │ │ continue; │ │ │ │ } │ │ │ │ - if (map.containsKey(Character.valueOf(c))) { │ │ │ │ - appendable.append('&').append(map.get(Character.valueOf(c))).append(';'); │ │ │ │ - continue; │ │ │ │ - } │ │ │ │ - appendable.append("&#x").append(Integer.toHexString(codePoint)).append(';'); │ │ │ │ + appendEncoded(appendable, escapeMode, codePoint); │ │ │ │ continue; │ │ │ │ } │ │ │ │ case 38: { │ │ │ │ appendable.append("&"); │ │ │ │ continue; │ │ │ │ } │ │ │ │ case 160: { │ │ │ │ @@ -175,68 +176,135 @@ │ │ │ │ } │ │ │ │ else { │ │ │ │ final String cs = new String(Character.toChars(codePoint)); │ │ │ │ if (encoder.canEncode(cs)) { │ │ │ │ appendable.append(cs); │ │ │ │ continue; │ │ │ │ } │ │ │ │ - appendable.append("&#x").append(Integer.toHexString(codePoint)).append(';'); │ │ │ │ + appendEncoded(appendable, escapeMode, codePoint); │ │ │ │ continue; │ │ │ │ } │ │ │ │ break; │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ + public static String getByName(final String key) { │ │ │ │ + final int count = 1; │ │ │ │ + String s = (String)Entities.multipoints.get(key); │ │ │ │ + if (s == null) { │ │ │ │ + final int codepointForName = Entities$EscapeMode.extended.codepointForName(key); │ │ │ │ + if (codepointForName != -1) { │ │ │ │ + s = new(java.lang.String.class); │ │ │ │ + final int[] codePoints = new int[count]; │ │ │ │ + codePoints[0] = codepointForName; │ │ │ │ + new String(codePoints, 0, count); │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + s = ""; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + return s; │ │ │ │ + } │ │ │ │ + │ │ │ │ public static Character getCharacterByName(final String s) { │ │ │ │ - return Character.valueOf(Entities.full.get((Object)s)); │ │ │ │ + return Character.valueOf((char)Entities$EscapeMode.extended.codepointForName(s)); │ │ │ │ } │ │ │ │ │ │ │ │ public static boolean isBaseNamedEntity(final String s) { │ │ │ │ - return Entities.base.containsKey(s); │ │ │ │ + return Entities$EscapeMode.base.codepointForName(s) != -1; │ │ │ │ } │ │ │ │ │ │ │ │ public static boolean isNamedEntity(final String s) { │ │ │ │ - return Entities.full.containsKey(s); │ │ │ │ + return Entities$EscapeMode.extended.codepointForName(s) != -1; │ │ │ │ } │ │ │ │ │ │ │ │ - private static Map loadEntities(final String s) { │ │ │ │ - final Properties properties = new Properties(); │ │ │ │ - final HashMap hashMap = new HashMap(); │ │ │ │ - final Class clazz = Entities.class; │ │ │ │ - try { │ │ │ │ - final InputStream resourceAsStream = clazz.getResourceAsStream(s); │ │ │ │ - properties.load(resourceAsStream); │ │ │ │ - resourceAsStream.close(); │ │ │ │ - for (final Map.Entry entry : properties.entrySet()) { │ │ │ │ - hashMap.put(entry.getKey(), Character.valueOf((char)Integer.parseInt(entry.getValue(), 16))); │ │ │ │ - } │ │ │ │ - } │ │ │ │ - catch (IOException ex) { │ │ │ │ - throw new MissingResourceException("Error loading entities resource: " + ex.getMessage(), "Entities", s); │ │ │ │ + private static void load(final Entities$EscapeMode entities$EscapeMode, final String str, final int n) { │ │ │ │ + Entities$EscapeMode.access$202(entities$EscapeMode, new String[n]); │ │ │ │ + Entities$EscapeMode.access$302(entities$EscapeMode, new int[n]); │ │ │ │ + Entities$EscapeMode.access$402(entities$EscapeMode, new int[n]); │ │ │ │ + Entities$EscapeMode.access$502(entities$EscapeMode, new String[n]); │ │ │ │ + final InputStream resourceAsStream = Entities.class.getResourceAsStream(str); │ │ │ │ + if (resourceAsStream == null) { │ │ │ │ + throw new IllegalStateException("Could not read resource " + str + ". Make sure you copy resources for " + Entities.class.getCanonicalName()); │ │ │ │ } │ │ │ │ - return hashMap; │ │ │ │ - } │ │ │ │ - │ │ │ │ - private static Map toCharacterKey(final Map map) { │ │ │ │ - final HashMap hashMap = new HashMap(); │ │ │ │ - for (final Map.Entry entry : map.entrySet()) { │ │ │ │ - final Character c = Character.valueOf(entry.getValue()); │ │ │ │ - final String anObject = (String)entry.getKey(); │ │ │ │ - if (hashMap.containsKey(c)) { │ │ │ │ - if (!anObject.toLowerCase().equals(anObject)) { │ │ │ │ - continue; │ │ │ │ + int n2 = 0; │ │ │ │ + final InputStream inputStream = resourceAsStream; │ │ │ │ + try { │ │ │ │ + final CharBuffer decode = Charset.forName("ascii").decode(DataUtil.readToByteBuffer(inputStream, 0)); │ │ │ │ + try { │ │ │ │ + final String string = decode.toString(); │ │ │ │ + try { │ │ │ │ + final CharacterReader characterReader = new CharacterReader(string); │ │ │ │ + Label_0165: │ │ │ │ + while (!characterReader.isEmpty()) { │ │ │ │ + final String consumeTo = characterReader.consumeTo('='); │ │ │ │ + try { │ │ │ │ + characterReader.advance(); │ │ │ │ + final int int1 = Integer.parseInt(characterReader.consumeToAny(Entities.codeDelims), 36); │ │ │ │ + try { │ │ │ │ + final char current = characterReader.current(); │ │ │ │ + try { │ │ │ │ + characterReader.advance(); │ │ │ │ + Label_0479: { │ │ │ │ + if (current != ',') { │ │ │ │ + break Label_0479; │ │ │ │ + } │ │ │ │ + int int2 = Integer.parseInt(characterReader.consumeTo(';'), 36); │ │ │ │ + try { │ │ │ │ + characterReader.advance(); │ │ │ │ + while (true) { │ │ │ │ + String s = characterReader.consumeTo('\n'); │ │ │ │ + try { │ │ │ │ + if (s.charAt(s.length() - 1) == '\r') { │ │ │ │ + s = s.substring(0, s.length() - 1); │ │ │ │ + } │ │ │ │ + final int int3 = Integer.parseInt(s, 36); │ │ │ │ + try { │ │ │ │ + characterReader.advance(); │ │ │ │ + Entities$EscapeMode.access$200(entities$EscapeMode)[n2] = consumeTo; │ │ │ │ + Entities$EscapeMode.access$300(entities$EscapeMode)[n2] = int1; │ │ │ │ + Entities$EscapeMode.access$400(entities$EscapeMode)[int3] = int1; │ │ │ │ + Entities$EscapeMode.access$500(entities$EscapeMode)[int3] = consumeTo; │ │ │ │ + Label_0470: { │ │ │ │ + if (int2 == -1) { │ │ │ │ + break Label_0470; │ │ │ │ + } │ │ │ │ + final HashMap multipoints = Entities.multipoints; │ │ │ │ + try { │ │ │ │ + multipoints.put(consumeTo, new String(new int[] { int1, int2 }, 0, 2)); │ │ │ │ + ++n2; │ │ │ │ + continue Label_0165; │ │ │ │ + int2 = -1; │ │ │ │ + } │ │ │ │ + catch (IOException ex) { │ │ │ │ + throw new IllegalStateException("Error reading resource " + str); │ │ │ │ + } │ │ │ │ + } │ │ │ │ + } │ │ │ │ + catch (IOException ex2) {} │ │ │ │ + } │ │ │ │ + catch (IOException ex3) {} │ │ │ │ + } │ │ │ │ + } │ │ │ │ + catch (IOException ex4) {} │ │ │ │ + } │ │ │ │ + } │ │ │ │ + catch (IOException ex5) {} │ │ │ │ + } │ │ │ │ + catch (IOException ex6) {} │ │ │ │ + } │ │ │ │ + catch (IOException ex7) {} │ │ │ │ + } │ │ │ │ } │ │ │ │ - hashMap.put(c, anObject); │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - hashMap.put(c, anObject); │ │ │ │ + catch (IOException ex8) {} │ │ │ │ } │ │ │ │ + catch (IOException ex9) {} │ │ │ │ } │ │ │ │ - return hashMap; │ │ │ │ + catch (IOException ex10) {} │ │ │ │ } │ │ │ │ │ │ │ │ static String unescape(final String s) { │ │ │ │ return unescape(s, false); │ │ │ │ } │ │ │ │ │ │ │ │ static String unescape(final String s, final boolean b) { │ │ ├── org/jsoup/nodes/Node.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -2,14 +2,15 @@ │ │ │ │ package org.jsoup.nodes; │ │ │ │ │ │ │ │ import org.jsoup.select.NodeVisitor; │ │ │ │ import org.jsoup.select.NodeTraversor; │ │ │ │ import java.util.LinkedList; │ │ │ │ import java.util.Iterator; │ │ │ │ import java.util.ArrayList; │ │ │ │ +import org.jsoup.internal.Normalizer; │ │ │ │ import org.jsoup.helper.StringUtil; │ │ │ │ import org.jsoup.select.Elements; │ │ │ │ import org.jsoup.parser.Parser; │ │ │ │ import org.jsoup.helper.Validate; │ │ │ │ import java.util.Collections; │ │ │ │ import java.util.List; │ │ │ │ │ │ │ │ @@ -114,23 +115,22 @@ │ │ │ │ Validate.notNull((Object)this.parentNode); │ │ │ │ this.parentNode.addChildren(this.siblingIndex + 1, node); │ │ │ │ return this; │ │ │ │ } │ │ │ │ │ │ │ │ public String attr(final String s) { │ │ │ │ Validate.notNull((Object)s); │ │ │ │ - String s2; │ │ │ │ - if (this.attributes.hasKey(s)) { │ │ │ │ - s2 = this.attributes.get(s); │ │ │ │ - } │ │ │ │ - else if (s.toLowerCase().startsWith("abs:")) { │ │ │ │ - s2 = this.absUrl(s.substring("abs:".length())); │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - s2 = ""; │ │ │ │ + String s2 = this.attributes.getIgnoreCase(s); │ │ │ │ + if (s2.length() <= 0) { │ │ │ │ + if (Normalizer.lowerCase(s).startsWith("abs:")) { │ │ │ │ + s2 = this.absUrl(s.substring("abs:".length())); │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + s2 = ""; │ │ │ │ + } │ │ │ │ } │ │ │ │ return s2; │ │ │ │ } │ │ │ │ │ │ │ │ public Node attr(final String s, final String s2) { │ │ │ │ this.attributes.put(s, s2); │ │ │ │ return this; │ │ │ │ @@ -177,14 +177,23 @@ │ │ │ │ final Iterator iterator = this.childNodes.iterator(); │ │ │ │ while (iterator.hasNext()) { │ │ │ │ list.add(((Node)iterator.next()).clone()); │ │ │ │ } │ │ │ │ return list; │ │ │ │ } │ │ │ │ │ │ │ │ + public Node clearAttributes() { │ │ │ │ + final Iterator iterator = this.attributes.iterator(); │ │ │ │ + while (iterator.hasNext()) { │ │ │ │ + iterator.next(); │ │ │ │ + iterator.remove(); │ │ │ │ + } │ │ │ │ + return this; │ │ │ │ + } │ │ │ │ + │ │ │ │ public Node clone() { │ │ │ │ final Node doClone = this.doClone(null); │ │ │ │ final LinkedList list = new LinkedList(); │ │ │ │ list.add(doClone); │ │ │ │ while (!list.isEmpty()) { │ │ │ │ final Node node = (Node)list.remove(); │ │ │ │ for (int i = 0; i < node.childNodes.size(); ++i) { │ │ │ │ @@ -197,39 +206,39 @@ │ │ │ │ } │ │ │ │ │ │ │ │ protected Node doClone(final Node parentNode) { │ │ │ │ Node node = null; │ │ │ │ Label_0049_Outer: │ │ │ │ while (true) { │ │ │ │ while (true) { │ │ │ │ - Label_0181: │ │ │ │ + Label_0182: │ │ │ │ while (true) { │ │ │ │ - Label_0173: { │ │ │ │ + Label_0174: { │ │ │ │ try { │ │ │ │ final Object clone = super.clone(); │ │ │ │ try { │ │ │ │ node = (Node)clone; │ │ │ │ node.parentNode = parentNode; │ │ │ │ if (parentNode != null) { │ │ │ │ - break Label_0173; │ │ │ │ + break Label_0174; │ │ │ │ } │ │ │ │ final int siblingIndex = 0; │ │ │ │ node.siblingIndex = siblingIndex; │ │ │ │ if (this.attributes != null) { │ │ │ │ final Attributes clone2 = this.attributes.clone(); │ │ │ │ node.attributes = clone2; │ │ │ │ node.baseUri = this.baseUri; │ │ │ │ - node.childNodes = new ArrayList(this.childNodes.size()); │ │ │ │ + node.childNodes = (List)new Node$NodeList(this, this.childNodes.size()); │ │ │ │ final Iterator iterator = (Iterator)this.childNodes.iterator(); │ │ │ │ while (iterator.hasNext()) { │ │ │ │ node.childNodes.add(iterator.next()); │ │ │ │ } │ │ │ │ break; │ │ │ │ } │ │ │ │ - break Label_0181; │ │ │ │ + break Label_0182; │ │ │ │ } │ │ │ │ catch (CloneNotSupportedException cause) { │ │ │ │ throw new RuntimeException(cause); │ │ │ │ } │ │ │ │ } │ │ │ │ catch (CloneNotSupportedException ex) {} │ │ │ │ } │ │ │ │ @@ -241,46 +250,47 @@ │ │ │ │ } │ │ │ │ } │ │ │ │ return node; │ │ │ │ } │ │ │ │ │ │ │ │ protected void ensureChildNodes() { │ │ │ │ if (this.childNodes == Node.EMPTY_NODES) { │ │ │ │ - this.childNodes = new ArrayList(4); │ │ │ │ + this.childNodes = (List)new Node$NodeList(this, 4); │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ @Override │ │ │ │ public boolean equals(final Object o) { │ │ │ │ return this == o; │ │ │ │ } │ │ │ │ │ │ │ │ Document$OutputSettings getOutputSettings() { │ │ │ │ + final Document ownerDocument = this.ownerDocument(); │ │ │ │ Document$OutputSettings document$OutputSettings; │ │ │ │ - if (this.ownerDocument() != null) { │ │ │ │ - document$OutputSettings = this.ownerDocument().outputSettings(); │ │ │ │ + if (ownerDocument != null) { │ │ │ │ + document$OutputSettings = ownerDocument.outputSettings(); │ │ │ │ } │ │ │ │ else { │ │ │ │ document$OutputSettings = new Document("").outputSettings(); │ │ │ │ } │ │ │ │ return document$OutputSettings; │ │ │ │ } │ │ │ │ │ │ │ │ public boolean hasAttr(final String s) { │ │ │ │ Validate.notNull((Object)s); │ │ │ │ if (!s.startsWith("abs:")) { │ │ │ │ - return this.attributes.hasKey(s); │ │ │ │ + return this.attributes.hasKeyIgnoreCase(s); │ │ │ │ } │ │ │ │ final String substring = s.substring("abs:".length()); │ │ │ │ - if (!this.attributes.hasKey(substring) || this.absUrl(substring).equals("")) { │ │ │ │ - return this.attributes.hasKey(s); │ │ │ │ + if (!this.attributes.hasKeyIgnoreCase(substring) || this.absUrl(substring).equals("")) { │ │ │ │ + return this.attributes.hasKeyIgnoreCase(s); │ │ │ │ } │ │ │ │ return true; │ │ │ │ - hasKey = this.attributes.hasKey(s); │ │ │ │ - return hasKey; │ │ │ │ + hasKeyIgnoreCase = this.attributes.hasKeyIgnoreCase(s); │ │ │ │ + return hasKeyIgnoreCase; │ │ │ │ } │ │ │ │ │ │ │ │ public boolean hasSameValue(final Object o) { │ │ │ │ return this == o || (o != null && this.getClass() == o.getClass() && this.outerHtml().equals(((Node)o).outerHtml())); │ │ │ │ } │ │ │ │ │ │ │ │ public Appendable html(final Appendable appendable) { │ │ │ │ @@ -302,14 +312,17 @@ │ │ │ │ } │ │ │ │ } │ │ │ │ return node; │ │ │ │ } │ │ │ │ │ │ │ │ public abstract String nodeName(); │ │ │ │ │ │ │ │ + void nodelistChanged() { │ │ │ │ + } │ │ │ │ + │ │ │ │ public String outerHtml() { │ │ │ │ final StringBuilder sb = new StringBuilder(128); │ │ │ │ this.outerHtml(sb); │ │ │ │ return sb.toString(); │ │ │ │ } │ │ │ │ │ │ │ │ protected void outerHtml(final Appendable appendable) { │ │ │ │ @@ -317,25 +330,23 @@ │ │ │ │ } │ │ │ │ │ │ │ │ abstract void outerHtmlHead(final Appendable p0, final int p1, final Document$OutputSettings p2); │ │ │ │ │ │ │ │ abstract void outerHtmlTail(final Appendable p0, final int p1, final Document$OutputSettings p2); │ │ │ │ │ │ │ │ public Document ownerDocument() { │ │ │ │ - Document ownerDocument; │ │ │ │ - if (this instanceof Document) { │ │ │ │ - ownerDocument = (Document)this; │ │ │ │ - } │ │ │ │ - else if (this.parentNode == null) { │ │ │ │ - ownerDocument = null; │ │ │ │ + final Node root = this.root(); │ │ │ │ + Document document; │ │ │ │ + if (root instanceof Document) { │ │ │ │ + document = (Document)root; │ │ │ │ } │ │ │ │ else { │ │ │ │ - ownerDocument = this.parentNode.ownerDocument(); │ │ │ │ + document = null; │ │ │ │ } │ │ │ │ - return ownerDocument; │ │ │ │ + return document; │ │ │ │ } │ │ │ │ │ │ │ │ public Node parent() { │ │ │ │ return this.parentNode; │ │ │ │ } │ │ │ │ │ │ │ │ public final Node parentNode() { │ │ │ │ @@ -353,15 +364,15 @@ │ │ │ │ public void remove() { │ │ │ │ Validate.notNull((Object)this.parentNode); │ │ │ │ this.parentNode.removeChild(this); │ │ │ │ } │ │ │ │ │ │ │ │ public Node removeAttr(final String s) { │ │ │ │ Validate.notNull((Object)s); │ │ │ │ - this.attributes.remove(s); │ │ │ │ + this.attributes.removeIgnoreCase(s); │ │ │ │ return this; │ │ │ │ } │ │ │ │ │ │ │ │ protected void removeChild(final Node node) { │ │ │ │ Validate.isTrue(node.parentNode == this); │ │ │ │ final int siblingIndex = node.siblingIndex; │ │ │ │ this.childNodes.remove(siblingIndex); │ │ │ │ @@ -391,20 +402,27 @@ │ │ │ │ │ │ │ │ public void replaceWith(final Node node) { │ │ │ │ Validate.notNull((Object)node); │ │ │ │ Validate.notNull((Object)this.parentNode); │ │ │ │ this.parentNode.replaceChild(this, node); │ │ │ │ } │ │ │ │ │ │ │ │ + public Node root() { │ │ │ │ + Node parentNode; │ │ │ │ + for (parentNode = this; parentNode.parentNode != null; parentNode = parentNode.parentNode) {} │ │ │ │ + return parentNode; │ │ │ │ + } │ │ │ │ + │ │ │ │ public void setBaseUri(final String s) { │ │ │ │ Validate.notNull((Object)s); │ │ │ │ this.traverse((NodeVisitor)new Node$1(this, s)); │ │ │ │ } │ │ │ │ │ │ │ │ protected void setParentNode(final Node parentNode) { │ │ │ │ + Validate.notNull((Object)parentNode); │ │ │ │ if (this.parentNode != null) { │ │ │ │ this.parentNode.removeChild(this); │ │ │ │ } │ │ │ │ this.parentNode = parentNode; │ │ │ │ } │ │ │ │ │ │ │ │ protected void setSiblingIndex(final int siblingIndex) { │ │ ├── org/jsoup/parser/CharacterReader.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,25 +1,25 @@ │ │ │ │ │ │ │ │ package org.jsoup.parser; │ │ │ │ │ │ │ │ import java.util.Locale; │ │ │ │ import java.util.Arrays; │ │ │ │ import org.jsoup.helper.Validate; │ │ │ │ │ │ │ │ -final class CharacterReader │ │ │ │ +public final class CharacterReader │ │ │ │ { │ │ │ │ static final char EOF = '\uffff'; │ │ │ │ private static final int maxCacheLen = 12; │ │ │ │ private final char[] input; │ │ │ │ private final int length; │ │ │ │ private int mark; │ │ │ │ private int pos; │ │ │ │ private final String[] stringCache; │ │ │ │ │ │ │ │ - CharacterReader(final String s) { │ │ │ │ + public CharacterReader(final String s) { │ │ │ │ this.pos = 0; │ │ │ │ this.mark = 0; │ │ │ │ this.stringCache = new String[512]; │ │ │ │ Validate.notNull((Object)s); │ │ │ │ this.input = s.toCharArray(); │ │ │ │ this.length = this.input.length; │ │ │ │ } │ │ │ │ @@ -52,15 +52,15 @@ │ │ │ │ s = new String(input, offset, count); │ │ │ │ stringCache[n5] = s; │ │ │ │ } │ │ │ │ } │ │ │ │ return s; │ │ │ │ } │ │ │ │ │ │ │ │ - void advance() { │ │ │ │ + public void advance() { │ │ │ │ ++this.pos; │ │ │ │ } │ │ │ │ │ │ │ │ char consume() { │ │ │ │ char c; │ │ │ │ if (this.pos >= this.length) { │ │ │ │ c = (char)(-1); │ │ │ │ @@ -169,15 +169,15 @@ │ │ │ │ } │ │ │ │ else { │ │ │ │ cacheString = ""; │ │ │ │ } │ │ │ │ return cacheString; │ │ │ │ } │ │ │ │ │ │ │ │ - String consumeTo(final char c) { │ │ │ │ + public String consumeTo(final char c) { │ │ │ │ final int nextIndex = this.nextIndexOf(c); │ │ │ │ String s; │ │ │ │ if (nextIndex != -1) { │ │ │ │ s = this.cacheString(this.pos, nextIndex); │ │ │ │ this.pos += nextIndex; │ │ │ │ } │ │ │ │ else { │ │ │ │ @@ -195,15 +195,15 @@ │ │ │ │ } │ │ │ │ else { │ │ │ │ s2 = this.consumeToEnd(); │ │ │ │ } │ │ │ │ return s2; │ │ │ │ } │ │ │ │ │ │ │ │ - String consumeToAny(final char... array) { │ │ │ │ + public String consumeToAny(final char... array) { │ │ │ │ final int pos = this.pos; │ │ │ │ final int length = this.length; │ │ │ │ final char[] input = this.input; │ │ │ │ Label_0071: │ │ │ │ while (this.pos < length) { │ │ │ │ for (int length2 = array.length, i = 0; i < length2; ++i) { │ │ │ │ if (input[this.pos] == array[i]) { │ │ │ │ @@ -248,26 +248,26 @@ │ │ │ │ boolean containsIgnoreCase(final String s) { │ │ │ │ final int n = -1; │ │ │ │ final String lowerCase = s.toLowerCase(Locale.ENGLISH); │ │ │ │ final String upperCase = s.toUpperCase(Locale.ENGLISH); │ │ │ │ return this.nextIndexOf(lowerCase) > n || this.nextIndexOf(upperCase) > n; │ │ │ │ } │ │ │ │ │ │ │ │ - char current() { │ │ │ │ + public char current() { │ │ │ │ char c; │ │ │ │ if (this.pos >= this.length) { │ │ │ │ c = (char)(-1); │ │ │ │ } │ │ │ │ else { │ │ │ │ c = this.input[this.pos]; │ │ │ │ } │ │ │ │ return c; │ │ │ │ } │ │ │ │ │ │ │ │ - boolean isEmpty() { │ │ │ │ + public boolean isEmpty() { │ │ │ │ return this.pos >= this.length; │ │ │ │ } │ │ │ │ │ │ │ │ void mark() { │ │ │ │ this.mark = this.pos; │ │ │ │ } │ │ │ │ │ │ │ │ @@ -392,15 +392,15 @@ │ │ │ │ return i - this.pos; │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ return -1; │ │ │ │ } │ │ │ │ │ │ │ │ - int pos() { │ │ │ │ + public int pos() { │ │ │ │ return this.pos; │ │ │ │ } │ │ │ │ │ │ │ │ boolean rangeEquals(final int n, int n2, final String s) { │ │ │ │ boolean b = false; │ │ │ │ if (n2 == s.length()) { │ │ │ │ final char[] input = this.input; │ │ ├── org/jsoup/parser/ParseErrorList.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,27 +1,27 @@ │ │ │ │ │ │ │ │ package org.jsoup.parser; │ │ │ │ │ │ │ │ import java.util.ArrayList; │ │ │ │ │ │ │ │ -class ParseErrorList extends ArrayList │ │ │ │ +public class ParseErrorList extends ArrayList │ │ │ │ { │ │ │ │ private static final int INITIAL_CAPACITY = 16; │ │ │ │ private final int maxSize; │ │ │ │ │ │ │ │ ParseErrorList(final int initialCapacity, final int maxSize) { │ │ │ │ super(initialCapacity); │ │ │ │ this.maxSize = maxSize; │ │ │ │ } │ │ │ │ │ │ │ │ - static ParseErrorList noTracking() { │ │ │ │ + public static ParseErrorList noTracking() { │ │ │ │ return new ParseErrorList(0, 0); │ │ │ │ } │ │ │ │ │ │ │ │ - static ParseErrorList tracking(final int n) { │ │ │ │ + public static ParseErrorList tracking(final int n) { │ │ │ │ return new ParseErrorList(16, n); │ │ │ │ } │ │ │ │ │ │ │ │ boolean canAddError() { │ │ │ │ return this.size() < this.maxSize; │ │ │ │ } │ │ ├── org/jsoup/parser/Parser.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -7,27 +7,30 @@ │ │ │ │ import org.jsoup.nodes.Document; │ │ │ │ │ │ │ │ public class Parser │ │ │ │ { │ │ │ │ private static final int DEFAULT_MAX_ERRORS; │ │ │ │ private ParseErrorList errors; │ │ │ │ private int maxErrors; │ │ │ │ + private ParseSettings settings; │ │ │ │ private TreeBuilder treeBuilder; │ │ │ │ │ │ │ │ public Parser(final TreeBuilder treeBuilder) { │ │ │ │ this.maxErrors = 0; │ │ │ │ this.treeBuilder = treeBuilder; │ │ │ │ + this.settings = treeBuilder.defaultSettings(); │ │ │ │ } │ │ │ │ │ │ │ │ public static Parser htmlParser() { │ │ │ │ return new Parser((TreeBuilder)new HtmlTreeBuilder()); │ │ │ │ } │ │ │ │ │ │ │ │ public static Document parse(final String s, final String s2) { │ │ │ │ - return ((TreeBuilder)new HtmlTreeBuilder()).parse(s, s2, ParseErrorList.noTracking()); │ │ │ │ + final HtmlTreeBuilder htmlTreeBuilder = new HtmlTreeBuilder(); │ │ │ │ + return ((TreeBuilder)htmlTreeBuilder).parse(s, s2, ParseErrorList.noTracking(), ((TreeBuilder)htmlTreeBuilder).defaultSettings()); │ │ │ │ } │ │ │ │ │ │ │ │ public static Document parseBodyFragment(final String s, final String s2) { │ │ │ │ final Document shell = Document.createShell(s2); │ │ │ │ final Element body = shell.body(); │ │ │ │ final List fragment = parseFragment(s, body, s2); │ │ │ │ final Node[] array = (Node[])fragment.toArray(new Node[fragment.size()]); │ │ │ │ @@ -41,19 +44,26 @@ │ │ │ │ } │ │ │ │ │ │ │ │ public static Document parseBodyFragmentRelaxed(final String s, final String s2) { │ │ │ │ return parse(s, s2); │ │ │ │ } │ │ │ │ │ │ │ │ public static List parseFragment(final String s, final Element element, final String s2) { │ │ │ │ - return new HtmlTreeBuilder().parseFragment(s, element, s2, ParseErrorList.noTracking()); │ │ │ │ + final HtmlTreeBuilder htmlTreeBuilder = new HtmlTreeBuilder(); │ │ │ │ + return htmlTreeBuilder.parseFragment(s, element, s2, ParseErrorList.noTracking(), htmlTreeBuilder.defaultSettings()); │ │ │ │ + } │ │ │ │ + │ │ │ │ + public static List parseFragment(final String s, final Element element, final String s2, final ParseErrorList list) { │ │ │ │ + final HtmlTreeBuilder htmlTreeBuilder = new HtmlTreeBuilder(); │ │ │ │ + return htmlTreeBuilder.parseFragment(s, element, s2, list, htmlTreeBuilder.defaultSettings()); │ │ │ │ } │ │ │ │ │ │ │ │ public static List parseXmlFragment(final String s, final String s2) { │ │ │ │ - return new XmlTreeBuilder().parseFragment(s, s2, ParseErrorList.noTracking()); │ │ │ │ + final XmlTreeBuilder xmlTreeBuilder = new XmlTreeBuilder(); │ │ │ │ + return xmlTreeBuilder.parseFragment(s, s2, ParseErrorList.noTracking(), xmlTreeBuilder.defaultSettings()); │ │ │ │ } │ │ │ │ │ │ │ │ public static String unescapeEntities(final String s, final boolean b) { │ │ │ │ return new Tokeniser(new CharacterReader(s), ParseErrorList.noTracking()).unescapeEntities(b); │ │ │ │ } │ │ │ │ │ │ │ │ public static Parser xmlParser() { │ │ │ │ @@ -77,20 +87,29 @@ │ │ │ │ if (this.isTrackErrors()) { │ │ │ │ errors = ParseErrorList.tracking(this.maxErrors); │ │ │ │ } │ │ │ │ else { │ │ │ │ errors = ParseErrorList.noTracking(); │ │ │ │ } │ │ │ │ this.errors = errors; │ │ │ │ - return this.treeBuilder.parse(s, s2, this.errors); │ │ │ │ + return this.treeBuilder.parse(s, s2, this.errors, this.settings); │ │ │ │ } │ │ │ │ │ │ │ │ public Parser setTrackErrors(final int maxErrors) { │ │ │ │ this.maxErrors = maxErrors; │ │ │ │ return this; │ │ │ │ } │ │ │ │ │ │ │ │ public Parser setTreeBuilder(final TreeBuilder treeBuilder) { │ │ │ │ this.treeBuilder = treeBuilder; │ │ │ │ return this; │ │ │ │ } │ │ │ │ + │ │ │ │ + public ParseSettings settings() { │ │ │ │ + return this.settings; │ │ │ │ + } │ │ │ │ + │ │ │ │ + public Parser settings(final ParseSettings settings) { │ │ │ │ + this.settings = settings; │ │ │ │ + return this; │ │ │ │ + } │ │ │ │ } │ │ ├── org/jsoup/parser/Tag.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -11,15 +11,14 @@ │ │ │ │ private static final String[] emptyTags; │ │ │ │ private static final String[] formListedTags; │ │ │ │ private static final String[] formSubmitTags; │ │ │ │ private static final String[] formatAsInlineTags; │ │ │ │ private static final String[] inlineTags; │ │ │ │ private static final String[] preserveWhitespaceTags; │ │ │ │ private static final Map tags; │ │ │ │ - private boolean canContainBlock; │ │ │ │ private boolean canContainInline; │ │ │ │ private boolean empty; │ │ │ │ private boolean formList; │ │ │ │ private boolean formSubmit; │ │ │ │ private boolean formatAsBlock; │ │ │ │ private boolean isBlock; │ │ │ │ private boolean preserveWhitespace; │ │ │ │ @@ -29,15 +28,15 @@ │ │ │ │ static { │ │ │ │ final int n = 4; │ │ │ │ final int n2 = 3; │ │ │ │ final int n3 = 2; │ │ │ │ final int n4 = 1; │ │ │ │ int i = 0; │ │ │ │ tags = new HashMap(); │ │ │ │ - final String[] blockTags2 = new String[64]; │ │ │ │ + final String[] blockTags2 = new String[63]; │ │ │ │ blockTags2[0] = "html"; │ │ │ │ blockTags2[n4] = "head"; │ │ │ │ blockTags2[n3] = "body"; │ │ │ │ blockTags2[n2] = "frameset"; │ │ │ │ blockTags2[n] = "script"; │ │ │ │ blockTags2[5] = "noscript"; │ │ │ │ blockTags2[6] = "style"; │ │ │ │ @@ -68,42 +67,41 @@ │ │ │ │ blockTags2[31] = "address"; │ │ │ │ blockTags2[32] = "figure"; │ │ │ │ blockTags2[33] = "figcaption"; │ │ │ │ blockTags2[34] = "form"; │ │ │ │ blockTags2[35] = "fieldset"; │ │ │ │ blockTags2[36] = "ins"; │ │ │ │ blockTags2[37] = "del"; │ │ │ │ - blockTags2[38] = "s"; │ │ │ │ - blockTags2[39] = "dl"; │ │ │ │ - blockTags2[40] = "dt"; │ │ │ │ - blockTags2[41] = "dd"; │ │ │ │ - blockTags2[42] = "li"; │ │ │ │ - blockTags2[43] = "table"; │ │ │ │ - blockTags2[44] = "caption"; │ │ │ │ - blockTags2[45] = "thead"; │ │ │ │ - blockTags2[46] = "tfoot"; │ │ │ │ - blockTags2[47] = "tbody"; │ │ │ │ - blockTags2[48] = "colgroup"; │ │ │ │ - blockTags2[49] = "col"; │ │ │ │ - blockTags2[50] = "tr"; │ │ │ │ - blockTags2[51] = "th"; │ │ │ │ - blockTags2[52] = "td"; │ │ │ │ - blockTags2[53] = "video"; │ │ │ │ - blockTags2[54] = "audio"; │ │ │ │ - blockTags2[55] = "canvas"; │ │ │ │ - blockTags2[56] = "details"; │ │ │ │ - blockTags2[57] = "menu"; │ │ │ │ - blockTags2[58] = "plaintext"; │ │ │ │ - blockTags2[59] = "template"; │ │ │ │ - blockTags2[60] = "article"; │ │ │ │ - blockTags2[61] = "main"; │ │ │ │ - blockTags2[62] = "svg"; │ │ │ │ - blockTags2[63] = "math"; │ │ │ │ + blockTags2[38] = "dl"; │ │ │ │ + blockTags2[39] = "dt"; │ │ │ │ + blockTags2[40] = "dd"; │ │ │ │ + blockTags2[41] = "li"; │ │ │ │ + blockTags2[42] = "table"; │ │ │ │ + blockTags2[43] = "caption"; │ │ │ │ + blockTags2[44] = "thead"; │ │ │ │ + blockTags2[45] = "tfoot"; │ │ │ │ + blockTags2[46] = "tbody"; │ │ │ │ + blockTags2[47] = "colgroup"; │ │ │ │ + blockTags2[48] = "col"; │ │ │ │ + blockTags2[49] = "tr"; │ │ │ │ + blockTags2[50] = "th"; │ │ │ │ + blockTags2[51] = "td"; │ │ │ │ + blockTags2[52] = "video"; │ │ │ │ + blockTags2[53] = "audio"; │ │ │ │ + blockTags2[54] = "canvas"; │ │ │ │ + blockTags2[55] = "details"; │ │ │ │ + blockTags2[56] = "menu"; │ │ │ │ + blockTags2[57] = "plaintext"; │ │ │ │ + blockTags2[58] = "template"; │ │ │ │ + blockTags2[59] = "article"; │ │ │ │ + blockTags2[60] = "main"; │ │ │ │ + blockTags2[61] = "svg"; │ │ │ │ + blockTags2[62] = "math"; │ │ │ │ blockTags = blockTags2; │ │ │ │ - final String[] inlineTags2 = new String[65]; │ │ │ │ + final String[] inlineTags2 = new String[66]; │ │ │ │ inlineTags2[0] = "object"; │ │ │ │ inlineTags2[n4] = "base"; │ │ │ │ inlineTags2[n3] = "font"; │ │ │ │ inlineTags2[n2] = "tt"; │ │ │ │ inlineTags2[n] = "i"; │ │ │ │ inlineTags2[5] = "b"; │ │ │ │ inlineTags2[6] = "u"; │ │ │ │ @@ -161,14 +159,15 @@ │ │ │ │ inlineTags2[58] = "bgsound"; │ │ │ │ inlineTags2[59] = "menuitem"; │ │ │ │ inlineTags2[60] = "param"; │ │ │ │ inlineTags2[61] = "source"; │ │ │ │ inlineTags2[62] = "track"; │ │ │ │ inlineTags2[63] = "data"; │ │ │ │ inlineTags2[64] = "bdi"; │ │ │ │ + inlineTags2[65] = "s"; │ │ │ │ inlineTags = inlineTags2; │ │ │ │ final String[] emptyTags2 = new String[21]; │ │ │ │ emptyTags2[0] = "meta"; │ │ │ │ emptyTags2[n4] = "link"; │ │ │ │ emptyTags2[n3] = "base"; │ │ │ │ emptyTags2[n2] = "frame"; │ │ │ │ emptyTags2[n] = "img"; │ │ │ │ @@ -237,23 +236,21 @@ │ │ │ │ for (int length = blockTags3.length, j = 0; j < length; ++j) { │ │ │ │ register(new Tag(blockTags3[j])); │ │ │ │ } │ │ │ │ final String[] inlineTags3 = Tag.inlineTags; │ │ │ │ for (int length2 = inlineTags3.length, k = 0; k < length2; ++k) { │ │ │ │ final Tag tag = new Tag(inlineTags3[k]); │ │ │ │ tag.isBlock = false; │ │ │ │ - tag.canContainBlock = false; │ │ │ │ tag.formatAsBlock = false; │ │ │ │ register(tag); │ │ │ │ } │ │ │ │ final String[] emptyTags3 = Tag.emptyTags; │ │ │ │ for (int length3 = emptyTags3.length, l = 0; l < length3; ++l) { │ │ │ │ final Tag tag2 = (Tag)Tag.tags.get(emptyTags3[l]); │ │ │ │ Validate.notNull((Object)tag2); │ │ │ │ - tag2.canContainBlock = false; │ │ │ │ tag2.canContainInline = false; │ │ │ │ tag2.empty = (n4 != 0); │ │ │ │ } │ │ │ │ final String[] formatAsInlineTags3 = Tag.formatAsInlineTags; │ │ │ │ for (int length4 = formatAsInlineTags3.length, n5 = 0; n5 < length4; ++n5) { │ │ │ │ final Tag tag3 = (Tag)Tag.tags.get(formatAsInlineTags3[n5]); │ │ │ │ Validate.notNull((Object)tag3); │ │ │ │ @@ -274,66 +271,68 @@ │ │ │ │ for (String[] formSubmitTags3 = Tag.formSubmitTags; i < formSubmitTags3.length; ++i) { │ │ │ │ final Tag tag6 = (Tag)Tag.tags.get(formSubmitTags3[i]); │ │ │ │ Validate.notNull((Object)tag6); │ │ │ │ tag6.formSubmit = (n4 != 0); │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ - private Tag(final String s) { │ │ │ │ - final boolean b = true; │ │ │ │ - this.isBlock = b; │ │ │ │ - this.formatAsBlock = b; │ │ │ │ - this.canContainBlock = b; │ │ │ │ - this.canContainInline = b; │ │ │ │ + private Tag(final String tagName) { │ │ │ │ + final boolean canContainInline = true; │ │ │ │ + this.isBlock = canContainInline; │ │ │ │ + this.formatAsBlock = canContainInline; │ │ │ │ + this.canContainInline = canContainInline; │ │ │ │ this.empty = false; │ │ │ │ this.selfClosing = false; │ │ │ │ this.preserveWhitespace = false; │ │ │ │ this.formList = false; │ │ │ │ this.formSubmit = false; │ │ │ │ - this.tagName = s.toLowerCase(); │ │ │ │ + this.tagName = tagName; │ │ │ │ } │ │ │ │ │ │ │ │ public static boolean isKnownTag(final String s) { │ │ │ │ return Tag.tags.containsKey(s); │ │ │ │ } │ │ │ │ │ │ │ │ private static void register(final Tag tag) { │ │ │ │ Tag.tags.put(tag.tagName, tag); │ │ │ │ } │ │ │ │ │ │ │ │ - public static Tag valueOf(String lowerCase) { │ │ │ │ - Validate.notNull((Object)lowerCase); │ │ │ │ - Tag tag = (Tag)Tag.tags.get(lowerCase); │ │ │ │ + public static Tag valueOf(final String s) { │ │ │ │ + return valueOf(s, ParseSettings.preserveCase); │ │ │ │ + } │ │ │ │ + │ │ │ │ + public static Tag valueOf(String normalizeTag, final ParseSettings parseSettings) { │ │ │ │ + Validate.notNull((Object)normalizeTag); │ │ │ │ + Tag tag = (Tag)Tag.tags.get(normalizeTag); │ │ │ │ if (tag == null) { │ │ │ │ - lowerCase = lowerCase.trim().toLowerCase(); │ │ │ │ - Validate.notEmpty(lowerCase); │ │ │ │ - tag = Tag.tags.get(lowerCase); │ │ │ │ + normalizeTag = parseSettings.normalizeTag(normalizeTag); │ │ │ │ + Validate.notEmpty(normalizeTag); │ │ │ │ + tag = Tag.tags.get(normalizeTag); │ │ │ │ if (tag == null) { │ │ │ │ - tag = new Tag(lowerCase); │ │ │ │ + tag = new Tag(normalizeTag); │ │ │ │ tag.isBlock = false; │ │ │ │ - tag.canContainBlock = true; │ │ │ │ } │ │ │ │ } │ │ │ │ return tag; │ │ │ │ } │ │ │ │ │ │ │ │ public boolean canContainBlock() { │ │ │ │ - return this.canContainBlock; │ │ │ │ + return this.isBlock; │ │ │ │ } │ │ │ │ │ │ │ │ @Override │ │ │ │ public boolean equals(final Object o) { │ │ │ │ boolean b = true; │ │ │ │ boolean b2 = false; │ │ │ │ if (this == o) { │ │ │ │ b2 = b; │ │ │ │ } │ │ │ │ else if (o instanceof Tag) { │ │ │ │ final Tag tag = (Tag)o; │ │ │ │ - if (this.tagName.equals(tag.tagName) && this.canContainBlock == tag.canContainBlock && this.canContainInline == tag.canContainInline && this.empty == tag.empty && this.formatAsBlock == tag.formatAsBlock && this.isBlock == tag.isBlock && this.preserveWhitespace == tag.preserveWhitespace && this.selfClosing == tag.selfClosing && this.formList == tag.formList) { │ │ │ │ + if (this.tagName.equals(tag.tagName) && this.canContainInline == tag.canContainInline && this.empty == tag.empty && this.formatAsBlock == tag.formatAsBlock && this.isBlock == tag.isBlock && this.preserveWhitespace == tag.preserveWhitespace && this.selfClosing == tag.selfClosing && this.formList == tag.formList) { │ │ │ │ if (this.formSubmit != tag.formSubmit) { │ │ │ │ b = false; │ │ │ │ } │ │ │ │ b2 = b; │ │ │ │ } │ │ │ │ } │ │ │ │ return b2; │ │ │ │ @@ -364,65 +363,57 @@ │ │ │ │ n5 = n; │ │ │ │ } │ │ │ │ else { │ │ │ │ n5 = 0; │ │ │ │ } │ │ │ │ final int n6 = (n4 + n5) * 31; │ │ │ │ int n7; │ │ │ │ - if (this.canContainBlock) { │ │ │ │ + if (this.canContainInline) { │ │ │ │ n7 = n; │ │ │ │ } │ │ │ │ else { │ │ │ │ n7 = 0; │ │ │ │ } │ │ │ │ final int n8 = (n6 + n7) * 31; │ │ │ │ int n9; │ │ │ │ - if (this.canContainInline) { │ │ │ │ + if (this.empty) { │ │ │ │ n9 = n; │ │ │ │ } │ │ │ │ else { │ │ │ │ n9 = 0; │ │ │ │ } │ │ │ │ final int n10 = (n8 + n9) * 31; │ │ │ │ int n11; │ │ │ │ - if (this.empty) { │ │ │ │ + if (this.selfClosing) { │ │ │ │ n11 = n; │ │ │ │ } │ │ │ │ else { │ │ │ │ n11 = 0; │ │ │ │ } │ │ │ │ final int n12 = (n10 + n11) * 31; │ │ │ │ int n13; │ │ │ │ - if (this.selfClosing) { │ │ │ │ + if (this.preserveWhitespace) { │ │ │ │ n13 = n; │ │ │ │ } │ │ │ │ else { │ │ │ │ n13 = 0; │ │ │ │ } │ │ │ │ final int n14 = (n12 + n13) * 31; │ │ │ │ int n15; │ │ │ │ - if (this.preserveWhitespace) { │ │ │ │ + if (this.formList) { │ │ │ │ n15 = n; │ │ │ │ } │ │ │ │ else { │ │ │ │ n15 = 0; │ │ │ │ } │ │ │ │ final int n16 = (n14 + n15) * 31; │ │ │ │ - int n17; │ │ │ │ - if (this.formList) { │ │ │ │ - n17 = n; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - n17 = 0; │ │ │ │ - } │ │ │ │ - final int n18 = (n16 + n17) * 31; │ │ │ │ if (!this.formSubmit) { │ │ │ │ n = 0; │ │ │ │ } │ │ │ │ - return n18 + n; │ │ │ │ + return n16 + n; │ │ │ │ } │ │ │ │ │ │ │ │ public boolean isBlock() { │ │ │ │ return this.isBlock; │ │ │ │ } │ │ │ │ │ │ │ │ public boolean isData() { │ │ ├── org/jsoup/parser/TokenQueue.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -57,21 +57,21 @@ │ │ │ │ │ │ │ │ public String chompBalanced(final char c, final char c2) { │ │ │ │ int pos = -1; │ │ │ │ int pos2 = -1; │ │ │ │ int n = 0; │ │ │ │ char charValue = '\0'; │ │ │ │ int n2 = 0; │ │ │ │ - Label_0142_Outer: │ │ │ │ + Label_0187_Outer: │ │ │ │ while (!this.isEmpty()) { │ │ │ │ final Character value = Character.valueOf(this.consume()); │ │ │ │ while (true) { │ │ │ │ - Label_0196: { │ │ │ │ + Label_0241: { │ │ │ │ if (charValue != '\0' && charValue == '\\') { │ │ │ │ - break Label_0196; │ │ │ │ + break Label_0241; │ │ │ │ } │ │ │ │ if ((value.equals(Character.valueOf('\'')) || value.equals(Character.valueOf('\"'))) && value != c) { │ │ │ │ if (n2 == 0) { │ │ │ │ n2 = 1; │ │ │ │ } │ │ │ │ else { │ │ │ │ n2 = 0; │ │ │ │ @@ -79,27 +79,27 @@ │ │ │ │ } │ │ │ │ if (n2 == 0) { │ │ │ │ if (value.equals(Character.valueOf(c))) { │ │ │ │ ++n; │ │ │ │ if (pos == -1) { │ │ │ │ pos = this.pos; │ │ │ │ } │ │ │ │ - break Label_0196; │ │ │ │ + break Label_0241; │ │ │ │ } │ │ │ │ else { │ │ │ │ if (value.equals(Character.valueOf(c2))) { │ │ │ │ --n; │ │ │ │ } │ │ │ │ - break Label_0196; │ │ │ │ + break Label_0241; │ │ │ │ } │ │ │ │ } │ │ │ │ if (n <= 0) { │ │ │ │ break; │ │ │ │ } │ │ │ │ - continue Label_0142_Outer; │ │ │ │ + continue Label_0187_Outer; │ │ │ │ } │ │ │ │ if (n > 0 && charValue != '\0') { │ │ │ │ pos2 = this.pos; │ │ │ │ } │ │ │ │ charValue = value; │ │ │ │ continue; │ │ │ │ } │ │ │ │ @@ -107,14 +107,17 @@ │ │ │ │ String substring; │ │ │ │ if (pos2 >= 0) { │ │ │ │ substring = this.queue.substring(pos, pos2); │ │ │ │ } │ │ │ │ else { │ │ │ │ substring = ""; │ │ │ │ } │ │ │ │ + if (n > 0) { │ │ │ │ + Validate.fail("Did not find balanced maker at " + substring); │ │ │ │ + } │ │ │ │ return substring; │ │ │ │ } │ │ │ │ │ │ │ │ public String chompTo(final String s) { │ │ │ │ final String consumeTo = this.consumeTo(s); │ │ │ │ this.matchChomp(s); │ │ │ │ return consumeTo; │ │ │ │ @@ -174,25 +177,15 @@ │ │ │ │ ++this.pos; │ │ │ │ } │ │ │ │ return this.queue.substring(pos, this.pos); │ │ │ │ } │ │ │ │ │ │ │ │ public String consumeElementSelector() { │ │ │ │ final int pos = this.pos; │ │ │ │ - while (!this.isEmpty()) { │ │ │ │ - if (!this.matchesWord()) { │ │ │ │ - final char[] array2; │ │ │ │ - final char[] array = array2 = new char[3]; │ │ │ │ - array2[0] = '|'; │ │ │ │ - array2[1] = '_'; │ │ │ │ - array2[2] = '-'; │ │ │ │ - if (!this.matchesAny(array)) { │ │ │ │ - break; │ │ │ │ - } │ │ │ │ - } │ │ │ │ + while (!this.isEmpty() && (this.matchesWord() || this.matchesAny("*|", "|", "_", "-"))) { │ │ │ │ ++this.pos; │ │ │ │ } │ │ │ │ return this.queue.substring(pos, this.pos); │ │ │ │ } │ │ │ │ │ │ │ │ public String consumeTagName() { │ │ │ │ final int pos = this.pos; │ │ ├── org/jsoup/parser/Tokeniser.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -6,26 +6,27 @@ │ │ │ │ import java.util.Arrays; │ │ │ │ │ │ │ │ final class Tokeniser │ │ │ │ { │ │ │ │ private static final char[] notCharRefCharsSorted; │ │ │ │ static final char replacementChar = '\ufffd'; │ │ │ │ Token$Character charPending; │ │ │ │ - private final char[] charRefHolder; │ │ │ │ private StringBuilder charsBuilder; │ │ │ │ private String charsString; │ │ │ │ + private final int[] codepointHolder; │ │ │ │ Token$Comment commentPending; │ │ │ │ StringBuilder dataBuffer; │ │ │ │ Token$Doctype doctypePending; │ │ │ │ private Token emitPending; │ │ │ │ Token$EndTag endPending; │ │ │ │ - private ParseErrorList errors; │ │ │ │ + private final ParseErrorList errors; │ │ │ │ private boolean isEmitPending; │ │ │ │ private String lastStartTag; │ │ │ │ - private CharacterReader reader; │ │ │ │ + private final int[] multipointHolder; │ │ │ │ + private final CharacterReader reader; │ │ │ │ private boolean selfClosingFlagAcknowledged; │ │ │ │ Token$StartTag startPending; │ │ │ │ private TokeniserState state; │ │ │ │ Token$Tag tagPending; │ │ │ │ │ │ │ │ static { │ │ │ │ final char[] array; │ │ │ │ @@ -50,15 +51,16 @@ │ │ │ │ this.dataBuffer = new StringBuilder(n); │ │ │ │ this.startPending = new Token$StartTag(); │ │ │ │ this.endPending = new Token$EndTag(); │ │ │ │ this.charPending = new Token$Character(); │ │ │ │ this.doctypePending = new Token$Doctype(); │ │ │ │ this.commentPending = new Token$Comment(); │ │ │ │ this.selfClosingFlagAcknowledged = (selfClosingFlagAcknowledged != 0); │ │ │ │ - this.charRefHolder = new char[selfClosingFlagAcknowledged]; │ │ │ │ + this.codepointHolder = new int[selfClosingFlagAcknowledged]; │ │ │ │ + this.multipointHolder = new int[2]; │ │ │ │ this.reader = reader; │ │ │ │ this.errors = errors; │ │ │ │ } │ │ │ │ │ │ │ │ private void characterReferenceError(final String s) { │ │ │ │ if (this.errors.canAddError()) { │ │ │ │ this.errors.add((Object)new ParseError(this.reader.pos(), "Invalid character reference: %s", new Object[] { s })); │ │ │ │ @@ -87,32 +89,31 @@ │ │ │ │ } │ │ │ │ else { │ │ │ │ lastStartTag = this.lastStartTag; │ │ │ │ } │ │ │ │ return lastStartTag; │ │ │ │ } │ │ │ │ │ │ │ │ - char[] consumeCharacterReference(final Character c, final boolean b) { │ │ │ │ - final int n = 1; │ │ │ │ - char[] array; │ │ │ │ + int[] consumeCharacterReference(final Character c, final boolean b) { │ │ │ │ + int[] array; │ │ │ │ if (this.reader.isEmpty()) { │ │ │ │ array = null; │ │ │ │ } │ │ │ │ else if (c != null && c == this.reader.current()) { │ │ │ │ array = null; │ │ │ │ } │ │ │ │ else if (this.reader.matchesAnySorted(Tokeniser.notCharRefCharsSorted)) { │ │ │ │ array = null; │ │ │ │ } │ │ │ │ else { │ │ │ │ - array = this.charRefHolder; │ │ │ │ + array = this.codepointHolder; │ │ │ │ this.reader.mark(); │ │ │ │ - Label_0396: { │ │ │ │ + Label_0347: { │ │ │ │ if (!this.reader.matchConsume("#")) { │ │ │ │ - break Label_0396; │ │ │ │ + break Label_0347; │ │ │ │ } │ │ │ │ final boolean matchConsumeIgnoreCase = this.reader.matchConsumeIgnoreCase("X"); │ │ │ │ String s; │ │ │ │ if (matchConsumeIgnoreCase) { │ │ │ │ s = this.reader.consumeHexSequence(); │ │ │ │ } │ │ │ │ else { │ │ │ │ @@ -124,107 +125,122 @@ │ │ │ │ array = null; │ │ │ │ return array; │ │ │ │ } │ │ │ │ if (!this.reader.matchConsume(";")) { │ │ │ │ this.characterReferenceError("missing semicolon"); │ │ │ │ } │ │ │ │ int intValue = -1; │ │ │ │ - Label_0354: { │ │ │ │ + Label_0326: { │ │ │ │ if (!matchConsumeIgnoreCase) { │ │ │ │ - break Label_0354; │ │ │ │ + break Label_0326; │ │ │ │ } │ │ │ │ int radix = 16; │ │ │ │ String s2; │ │ │ │ Integer value; │ │ │ │ + String consumeLetterThenDigitSequence; │ │ │ │ boolean matches; │ │ │ │ CharacterReader reader; │ │ │ │ char[] array3; │ │ │ │ char[] array2; │ │ │ │ - int n2; │ │ │ │ - String consumeLetterThenDigitSequence; │ │ │ │ - String format; │ │ │ │ - Object[] args; │ │ │ │ - Block_19_Outer:Label_0508_Outer:Block_23_Outer: │ │ │ │ + int codepointsForName; │ │ │ │ + boolean b2; │ │ │ │ + Label_0453_Outer:Block_23_Outer:Block_18_Outer:Block_20_Outer: │ │ │ │ while (true) { │ │ │ │ s2 = s; │ │ │ │ try { │ │ │ │ value = Integer.valueOf(s2, radix); │ │ │ │ try { │ │ │ │ intValue = value; │ │ │ │ if (intValue == -1 || (intValue >= 55296 && intValue <= 57343) || intValue > 1114111) { │ │ │ │ this.characterReferenceError("character outside of valid range"); │ │ │ │ array[0] = (char)(-3); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (intValue < 65536) { │ │ │ │ - array[0] = (char)intValue; │ │ │ │ - break; │ │ │ │ - } │ │ │ │ - array = Character.toChars(intValue); │ │ │ │ + array[0] = intValue; │ │ │ │ break; │ │ │ │ - // iftrue(Label_0508:, !matches) │ │ │ │ - // iftrue(Label_0616:, !b) │ │ │ │ - // iftrue(Label_0616:, !reader.matchesAny(array2)) │ │ │ │ - // iftrue(Label_0520:, n2 != 0) │ │ │ │ - // iftrue(Label_0514:, !Entities.isBaseNamedEntity(consumeLetterThenDigitSequence) && !Entities.isNamedEntity(consumeLetterThenDigitSequence) || !matches) │ │ │ │ - // iftrue(Label_0599:, this.reader.matchesLetter() || this.reader.matchesDigit()) │ │ │ │ + consumeLetterThenDigitSequence = this.reader.consumeLetterThenDigitSequence(); │ │ │ │ + matches = this.reader.matches(';'); │ │ │ │ + // iftrue(Label_0459:, !Entities.isBaseNamedEntity(consumeLetterThenDigitSequence) && !Entities.isNamedEntity(consumeLetterThenDigitSequence) || !matches) │ │ │ │ + // iftrue(Label_0559:, !reader.matchesAny(array2)) │ │ │ │ + // iftrue(Label_0453:, !matches) │ │ │ │ + // iftrue(Label_0638:, codepointsForName != 1) │ │ │ │ + // iftrue(Label_0544:, this.reader.matchesLetter() || this.reader.matchesDigit()) │ │ │ │ + // iftrue(Label_0589:, this.reader.matchConsume(";")) │ │ │ │ + // iftrue(Label_0465:, b2 != false) │ │ │ │ + // iftrue(Label_0559:, !b) │ │ │ │ while (true) { │ │ │ │ - Block_21: { │ │ │ │ - while (true) { │ │ │ │ - Label_0453: │ │ │ │ + while (true) { │ │ │ │ + Label_0402: { │ │ │ │ + break Label_0402; │ │ │ │ + Block_22_Outer: │ │ │ │ while (true) { │ │ │ │ - Block_20: { │ │ │ │ - Label_0650: { │ │ │ │ + while (true) { │ │ │ │ + Block_24_Outer: │ │ │ │ + while (true) { │ │ │ │ + array = null; │ │ │ │ + break; │ │ │ │ + Label_0544_Outer: │ │ │ │ while (true) { │ │ │ │ - this.reader.rewindToMark(); │ │ │ │ - break Block_20; │ │ │ │ - this.characterReferenceError("missing semicolon"); │ │ │ │ - break Label_0650; │ │ │ │ - array = null; │ │ │ │ + array[0] = this.multipointHolder[0]; │ │ │ │ break; │ │ │ │ - Label_0520: { │ │ │ │ - break Block_21; │ │ │ │ + Label_0657: { │ │ │ │ + Validate.fail("Unexpected characters returned for " + consumeLetterThenDigitSequence); │ │ │ │ } │ │ │ │ - reader = this.reader; │ │ │ │ - array2 = (array3 = new char[3]); │ │ │ │ - array3[0] = '='; │ │ │ │ - array3[1] = '-'; │ │ │ │ - array3[2] = '_'; │ │ │ │ - Label_0599: │ │ │ │ - this.reader.rewindToMark(); │ │ │ │ - array = null; │ │ │ │ + array = this.multipointHolder; │ │ │ │ break; │ │ │ │ - Label_0514: │ │ │ │ - n2 = 0; │ │ │ │ - continue Label_0508_Outer; │ │ │ │ + Label_0589: { │ │ │ │ + while (true) { │ │ │ │ + this.reader.rewindToMark(); │ │ │ │ + array = null; │ │ │ │ + break; │ │ │ │ + this.characterReferenceError("missing semicolon"); │ │ │ │ + break Label_0589; │ │ │ │ + reader = this.reader; │ │ │ │ + array2 = (array3 = new char[3]); │ │ │ │ + array3[0] = '='; │ │ │ │ + array3[1] = '-'; │ │ │ │ + array3[2] = '_'; │ │ │ │ + continue Block_23_Outer; │ │ │ │ + } │ │ │ │ + array = this.multipointHolder; │ │ │ │ + break; │ │ │ │ + this.reader.rewindToMark(); │ │ │ │ + break Label_0544_Outer; │ │ │ │ + } │ │ │ │ + codepointsForName = Entities.codepointsForName(consumeLetterThenDigitSequence, this.multipointHolder); │ │ │ │ + continue Label_0544_Outer; │ │ │ │ } │ │ │ │ - consumeLetterThenDigitSequence = this.reader.consumeLetterThenDigitSequence(); │ │ │ │ - matches = this.reader.matches(';'); │ │ │ │ - break Label_0453; │ │ │ │ + this.characterReferenceError(String.format("invalid named referenece '%s'", consumeLetterThenDigitSequence)); │ │ │ │ + continue Block_24_Outer; │ │ │ │ } │ │ │ │ - array[0] = Entities.getCharacterByName(consumeLetterThenDigitSequence); │ │ │ │ - break; │ │ │ │ + radix = 10; │ │ │ │ + continue Label_0453_Outer; │ │ │ │ + continue Block_18_Outer; │ │ │ │ + } │ │ │ │ + Label_0559: { │ │ │ │ + continue Block_22_Outer; │ │ │ │ } │ │ │ │ - format = "invalid named referenece '%s'"; │ │ │ │ - args = new Object[n]; │ │ │ │ - args[0] = consumeLetterThenDigitSequence; │ │ │ │ - this.characterReferenceError(String.format(format, args)); │ │ │ │ - continue Block_23_Outer; │ │ │ │ } │ │ │ │ - n2 = n; │ │ │ │ - continue; │ │ │ │ } │ │ │ │ - radix = 10; │ │ │ │ - continue Block_19_Outer; │ │ │ │ + b2 = true; │ │ │ │ + Label_0405: { │ │ │ │ + break Label_0405; │ │ │ │ + Label_0459: { │ │ │ │ + b2 = false; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + continue Block_20_Outer; │ │ │ │ + } │ │ │ │ + Label_0465: { │ │ │ │ + continue; │ │ │ │ } │ │ │ │ - continue; │ │ │ │ } │ │ │ │ - Label_0616:; │ │ │ │ + Label_0638:; │ │ │ │ } │ │ │ │ - // iftrue(Label_0650:, this.reader.matchConsume(";")) │ │ │ │ + // iftrue(Label_0657:, codepointsForName != 2) │ │ │ │ catch (NumberFormatException ex) {} │ │ │ │ } │ │ │ │ catch (NumberFormatException ex2) {} │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ @@ -290,14 +306,18 @@ │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ void emit(final char[] data) { │ │ │ │ this.emit(String.valueOf(data)); │ │ │ │ } │ │ │ │ │ │ │ │ + void emit(final int[] codePoints) { │ │ │ │ + this.emit(new String(codePoints, 0, codePoints.length)); │ │ │ │ + } │ │ │ │ + │ │ │ │ void emitCommentPending() { │ │ │ │ this.emit((Token)this.commentPending); │ │ │ │ } │ │ │ │ │ │ │ │ void emitDoctypePending() { │ │ │ │ this.emit((Token)this.doctypePending); │ │ │ │ } │ │ │ │ @@ -320,15 +340,15 @@ │ │ │ │ } │ │ │ │ │ │ │ │ TokeniserState getState() { │ │ │ │ return this.state; │ │ │ │ } │ │ │ │ │ │ │ │ boolean isAppropriateEndTagToken() { │ │ │ │ - return this.lastStartTag != null && this.tagPending.tagName.equals(this.lastStartTag); │ │ │ │ + return this.lastStartTag != null && this.tagPending.name().equalsIgnoreCase(this.lastStartTag); │ │ │ │ } │ │ │ │ │ │ │ │ Token read() { │ │ │ │ if (!this.selfClosingFlagAcknowledged) { │ │ │ │ this.error("Self closing flag not acknowledged"); │ │ │ │ this.selfClosingFlagAcknowledged = true; │ │ │ │ } │ │ │ │ @@ -360,19 +380,23 @@ │ │ │ │ String unescapeEntities(final boolean b) { │ │ │ │ final char c = '&'; │ │ │ │ final StringBuilder sb = new StringBuilder(); │ │ │ │ while (!this.reader.isEmpty()) { │ │ │ │ sb.append(this.reader.consumeTo(c)); │ │ │ │ if (this.reader.matches(c)) { │ │ │ │ this.reader.consume(); │ │ │ │ - final char[] consumeCharacterReference = this.consumeCharacterReference(null, b); │ │ │ │ + final int[] consumeCharacterReference = this.consumeCharacterReference(null, b); │ │ │ │ if (consumeCharacterReference == null || consumeCharacterReference.length == 0) { │ │ │ │ sb.append(c); │ │ │ │ } │ │ │ │ else { │ │ │ │ - sb.append(consumeCharacterReference); │ │ │ │ + sb.appendCodePoint(consumeCharacterReference[0]); │ │ │ │ + if (consumeCharacterReference.length != 2) { │ │ │ │ + continue; │ │ │ │ + } │ │ │ │ + sb.appendCodePoint(consumeCharacterReference[1]); │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ return sb.toString(); │ │ │ │ } │ │ │ │ } │ │ ├── org/jsoup/parser/TokeniserState.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -208,15 +208,15 @@ │ │ │ │ │ │ │ │ private TokeniserState(final String name, final int ordinal) { │ │ │ │ } │ │ │ │ │ │ │ │ private static void handleDataDoubleEscapeTag(final Tokeniser tokeniser, final CharacterReader characterReader, final TokeniserState tokeniserState, final TokeniserState tokeniserState2) { │ │ │ │ if (characterReader.matchesLetter()) { │ │ │ │ final String consumeLetterSequence = characterReader.consumeLetterSequence(); │ │ │ │ - tokeniser.dataBuffer.append(consumeLetterSequence.toLowerCase()); │ │ │ │ + tokeniser.dataBuffer.append(consumeLetterSequence); │ │ │ │ tokeniser.emit(consumeLetterSequence); │ │ │ │ } │ │ │ │ else { │ │ │ │ final char consume = characterReader.consume(); │ │ │ │ switch (consume) { │ │ │ │ default: { │ │ │ │ characterReader.unconsume(); │ │ │ │ @@ -242,15 +242,15 @@ │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ private static void handleDataEndTag(final Tokeniser tokeniser, final CharacterReader characterReader, final TokeniserState tokeniserState) { │ │ │ │ if (characterReader.matchesLetter()) { │ │ │ │ final String consumeLetterSequence = characterReader.consumeLetterSequence(); │ │ │ │ - tokeniser.tagPending.appendTagName(consumeLetterSequence.toLowerCase()); │ │ │ │ + tokeniser.tagPending.appendTagName(consumeLetterSequence); │ │ │ │ tokeniser.dataBuffer.append(consumeLetterSequence); │ │ │ │ } │ │ │ │ else { │ │ │ │ int n = 0; │ │ │ │ if (tokeniser.isAppropriateEndTagToken() && !characterReader.isEmpty()) { │ │ │ │ final char consume = characterReader.consume(); │ │ │ │ switch (consume) { │ │ │ │ @@ -285,15 +285,15 @@ │ │ │ │ tokeniser.emit(" 0, "No attributes supplied."); │ │ │ │ + Validate.isTrue(array.length > 0, "No attribute names supplied."); │ │ │ │ final Whitelist$TagName value = Whitelist$TagName.valueOf(s); │ │ │ │ if (!this.tagNames.contains(value)) { │ │ │ │ this.tagNames.add(value); │ │ │ │ } │ │ │ │ final HashSet set = new HashSet(); │ │ │ │ while (i < array.length) { │ │ │ │ final String s2 = array[i]; │ │ │ │ @@ -364,27 +365,38 @@ │ │ │ │ attributes.put(((Whitelist$AttributeKey)entry.getKey()).toString(), ((Whitelist$AttributeValue)entry.getValue()).toString()); │ │ │ │ } │ │ │ │ } │ │ │ │ return attributes; │ │ │ │ } │ │ │ │ │ │ │ │ protected boolean isSafeAttribute(final String s, final Element element, final Attribute attribute) { │ │ │ │ - boolean b = true; │ │ │ │ + boolean equals = true; │ │ │ │ final Whitelist$TagName value = Whitelist$TagName.valueOf(s); │ │ │ │ final Whitelist$AttributeKey value2 = Whitelist$AttributeKey.valueOf(attribute.getKey()); │ │ │ │ - if (this.attributes.containsKey(value) && ((Set)this.attributes.get(value)).contains(value2)) { │ │ │ │ + final Set set = (Set)this.attributes.get(value); │ │ │ │ + if (set != null && set.contains(value2)) { │ │ │ │ if (this.protocols.containsKey(value)) { │ │ │ │ final Map map = (Map)this.protocols.get(value); │ │ │ │ - b = ((!map.containsKey(value2) || this.testValidProtocol(element, attribute, map.get(value2))) && b); │ │ │ │ + equals = ((!map.containsKey(value2) || this.testValidProtocol(element, attribute, map.get(value2))) && equals); │ │ │ │ } │ │ │ │ } │ │ │ │ - else if (s.equals(":all") || !this.isSafeAttribute(":all", element, attribute)) { │ │ │ │ - b = false; │ │ │ │ + else { │ │ │ │ + if (this.enforcedAttributes.get(value) != null) { │ │ │ │ + final Attributes enforcedAttributes = this.getEnforcedAttributes(s); │ │ │ │ + final String key = attribute.getKey(); │ │ │ │ + if (enforcedAttributes.hasKeyIgnoreCase(key)) { │ │ │ │ + equals = enforcedAttributes.getIgnoreCase(key).equals(attribute.getValue()); │ │ │ │ + return equals; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + if (s.equals(":all") || !this.isSafeAttribute(":all", element, attribute)) { │ │ │ │ + equals = false; │ │ │ │ + } │ │ │ │ } │ │ │ │ - return b; │ │ │ │ + return equals; │ │ │ │ } │ │ │ │ │ │ │ │ protected boolean isSafeTag(final String s) { │ │ │ │ return this.tagNames.contains(Whitelist$TagName.valueOf(s)); │ │ │ │ } │ │ │ │ │ │ │ │ public Whitelist preserveRelativeLinks(final boolean preserveRelativeLinks) { │ │ │ │ @@ -392,15 +404,15 @@ │ │ │ │ return this; │ │ │ │ } │ │ │ │ │ │ │ │ public Whitelist removeAttributes(final String s, final String... array) { │ │ │ │ int i = 0; │ │ │ │ Validate.notEmpty(s); │ │ │ │ Validate.notNull((Object)array); │ │ │ │ - Validate.isTrue(array.length > 0, "No attributes supplied."); │ │ │ │ + Validate.isTrue(array.length > 0, "No attribute names supplied."); │ │ │ │ final Whitelist$TagName value = Whitelist$TagName.valueOf(s); │ │ │ │ final HashSet set = new HashSet(); │ │ │ │ while (i < array.length) { │ │ │ │ final String s2 = array[i]; │ │ │ │ Validate.notEmpty(s2); │ │ │ │ set.add(Whitelist$AttributeKey.valueOf(s2)); │ │ │ │ ++i; │ │ │ │ @@ -441,29 +453,27 @@ │ │ │ │ │ │ │ │ public Whitelist removeProtocols(final String s, final String s2, final String... array) { │ │ │ │ Validate.notEmpty(s); │ │ │ │ Validate.notEmpty(s2); │ │ │ │ Validate.notNull((Object)array); │ │ │ │ final Whitelist$TagName value = Whitelist$TagName.valueOf(s); │ │ │ │ final Whitelist$AttributeKey value2 = Whitelist$AttributeKey.valueOf(s2); │ │ │ │ - if (this.protocols.containsKey(value)) { │ │ │ │ - final Map map = (Map)this.protocols.get(value); │ │ │ │ - if (map.containsKey(value2)) { │ │ │ │ - final Set set = (Set)map.get(value2); │ │ │ │ - for (int length = array.length, i = 0; i < length; ++i) { │ │ │ │ - final String s3 = array[i]; │ │ │ │ - Validate.notEmpty(s3); │ │ │ │ - set.remove(Whitelist$Protocol.valueOf(s3)); │ │ │ │ - } │ │ │ │ - if (set.isEmpty()) { │ │ │ │ - map.remove(value2); │ │ │ │ - if (map.isEmpty()) { │ │ │ │ - this.protocols.remove(value); │ │ │ │ - } │ │ │ │ - } │ │ │ │ + Validate.isTrue(this.protocols.containsKey((Object)value), "Cannot remove a protocol that is not set."); │ │ │ │ + final Map map = (Map)this.protocols.get(value); │ │ │ │ + Validate.isTrue(map.containsKey((Object)value2), "Cannot remove a protocol that is not set."); │ │ │ │ + final Set set = (Set)map.get(value2); │ │ │ │ + for (int length = array.length, i = 0; i < length; ++i) { │ │ │ │ + final String s3 = array[i]; │ │ │ │ + Validate.notEmpty(s3); │ │ │ │ + set.remove(Whitelist$Protocol.valueOf(s3)); │ │ │ │ + } │ │ │ │ + if (set.isEmpty()) { │ │ │ │ + map.remove(value2); │ │ │ │ + if (map.isEmpty()) { │ │ │ │ + this.protocols.remove(value); │ │ │ │ } │ │ │ │ } │ │ │ │ return this; │ │ │ │ } │ │ │ │ │ │ │ │ public Whitelist removeTags(final String... array) { │ │ │ │ Validate.notNull((Object)array); │ │ ├── org/jsoup/select/Elements.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -29,14 +29,47 @@ │ │ │ │ super(c); │ │ │ │ } │ │ │ │ │ │ │ │ public Elements(final Element... a) { │ │ │ │ super(Arrays.asList(a)); │ │ │ │ } │ │ │ │ │ │ │ │ + private Elements siblings(final String s, final boolean b, final boolean b2) { │ │ │ │ + final Elements elements = new Elements(); │ │ │ │ + Evaluator parse; │ │ │ │ + if (s != null) { │ │ │ │ + parse = QueryParser.parse(s); │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + parse = null; │ │ │ │ + } │ │ │ │ + for (Element element : this) { │ │ │ │ + do { │ │ │ │ + Element element2; │ │ │ │ + if (b) { │ │ │ │ + element2 = element.nextElementSibling(); │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + element2 = element.previousElementSibling(); │ │ │ │ + } │ │ │ │ + if (element2 == null) { │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + if (parse == null) { │ │ │ │ + elements.add(element2); │ │ │ │ + } │ │ │ │ + else if (element2.is(parse)) { │ │ │ │ + elements.add(element2); │ │ │ │ + } │ │ │ │ + element = element2; │ │ │ │ + } while (b2); │ │ │ │ + } │ │ │ │ + return elements; │ │ │ │ + } │ │ │ │ + │ │ │ │ public Elements addClass(final String s) { │ │ │ │ final Iterator iterator = this.iterator(); │ │ │ │ while (iterator.hasNext()) { │ │ │ │ ((Element)iterator.next()).addClass(s); │ │ │ │ } │ │ │ │ return this; │ │ │ │ } │ │ │ │ @@ -88,14 +121,34 @@ │ │ │ │ final Iterator iterator = this.iterator(); │ │ │ │ while (iterator.hasNext()) { │ │ │ │ elements.add(((Element)iterator.next()).clone()); │ │ │ │ } │ │ │ │ return elements; │ │ │ │ } │ │ │ │ │ │ │ │ + public List eachAttr(final String s) { │ │ │ │ + final ArrayList list = new ArrayList(this.size()); │ │ │ │ + for (final Element element : this) { │ │ │ │ + if (element.hasAttr(s)) { │ │ │ │ + list.add(element.attr(s)); │ │ │ │ + } │ │ │ │ + } │ │ │ │ + return list; │ │ │ │ + } │ │ │ │ + │ │ │ │ + public List eachText() { │ │ │ │ + final ArrayList list = new ArrayList(this.size()); │ │ │ │ + for (final Element element : this) { │ │ │ │ + if (element.hasText()) { │ │ │ │ + list.add(element.text()); │ │ │ │ + } │ │ │ │ + } │ │ │ │ + return list; │ │ │ │ + } │ │ │ │ + │ │ │ │ public Elements empty() { │ │ │ │ final Iterator iterator = this.iterator(); │ │ │ │ while (iterator.hasNext()) { │ │ │ │ ((Element)iterator.next()).empty(); │ │ │ │ } │ │ │ │ return this; │ │ │ │ } │ │ │ │ @@ -178,28 +231,53 @@ │ │ │ │ while (iterator.hasNext()) { │ │ │ │ ((Element)iterator.next()).html(s); │ │ │ │ } │ │ │ │ return this; │ │ │ │ } │ │ │ │ │ │ │ │ public boolean is(final String s) { │ │ │ │ - return !this.select(s).isEmpty(); │ │ │ │ + final Evaluator parse = QueryParser.parse(s); │ │ │ │ + final Iterator iterator = (Iterator)this.iterator(); │ │ │ │ + while (iterator.hasNext()) { │ │ │ │ + if (((Element)iterator.next()).is(parse)) { │ │ │ │ + return true; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + return false; │ │ │ │ } │ │ │ │ │ │ │ │ public Element last() { │ │ │ │ Element element; │ │ │ │ if (this.isEmpty()) { │ │ │ │ element = null; │ │ │ │ } │ │ │ │ else { │ │ │ │ element = this.get(this.size() - 1); │ │ │ │ } │ │ │ │ return element; │ │ │ │ } │ │ │ │ │ │ │ │ + public Elements next() { │ │ │ │ + return this.siblings(null, true, false); │ │ │ │ + } │ │ │ │ + │ │ │ │ + public Elements next(final String s) { │ │ │ │ + return this.siblings(s, true, false); │ │ │ │ + } │ │ │ │ + │ │ │ │ + public Elements nextAll() { │ │ │ │ + final boolean b = true; │ │ │ │ + return this.siblings(null, b, b); │ │ │ │ + } │ │ │ │ + │ │ │ │ + public Elements nextAll(final String s) { │ │ │ │ + final boolean b = true; │ │ │ │ + return this.siblings(s, b, b); │ │ │ │ + } │ │ │ │ + │ │ │ │ public Elements not(final String s) { │ │ │ │ return Selector.filterOut((Collection)this, (Collection)Selector.select(s, (Iterable)this)); │ │ │ │ } │ │ │ │ │ │ │ │ public String outerHtml() { │ │ │ │ final StringBuilder sb = new StringBuilder(); │ │ │ │ for (final Element element : this) { │ │ │ │ @@ -224,14 +302,30 @@ │ │ │ │ final Iterator iterator = this.iterator(); │ │ │ │ while (iterator.hasNext()) { │ │ │ │ ((Element)iterator.next()).prepend(s); │ │ │ │ } │ │ │ │ return this; │ │ │ │ } │ │ │ │ │ │ │ │ + public Elements prev() { │ │ │ │ + return this.siblings(null, false, false); │ │ │ │ + } │ │ │ │ + │ │ │ │ + public Elements prev(final String s) { │ │ │ │ + return this.siblings(s, false, false); │ │ │ │ + } │ │ │ │ + │ │ │ │ + public Elements prevAll() { │ │ │ │ + return this.siblings(null, false, true); │ │ │ │ + } │ │ │ │ + │ │ │ │ + public Elements prevAll(final String s) { │ │ │ │ + return this.siblings(s, false, true); │ │ │ │ + } │ │ │ │ + │ │ │ │ public Elements remove() { │ │ │ │ final Iterator iterator = this.iterator(); │ │ │ │ while (iterator.hasNext()) { │ │ │ │ ((Element)iterator.next()).remove(); │ │ │ │ } │ │ │ │ return this; │ │ │ │ } │ │ ├── org/jsoup/select/QueryParser.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,20 +1,21 @@ │ │ │ │ │ │ │ │ package org.jsoup.select; │ │ │ │ │ │ │ │ import java.util.regex.Matcher; │ │ │ │ import org.jsoup.helper.StringUtil; │ │ │ │ import java.util.Collection; │ │ │ │ +import org.jsoup.internal.Normalizer; │ │ │ │ import org.jsoup.helper.Validate; │ │ │ │ import java.util.ArrayList; │ │ │ │ import org.jsoup.parser.TokenQueue; │ │ │ │ import java.util.List; │ │ │ │ import java.util.regex.Pattern; │ │ │ │ │ │ │ │ -class QueryParser │ │ │ │ +public class QueryParser │ │ │ │ { │ │ │ │ private static final String[] AttributeEvals; │ │ │ │ private static final Pattern NTH_AB; │ │ │ │ private static final Pattern NTH_B; │ │ │ │ private static final String[] combinators; │ │ │ │ private List evals; │ │ │ │ private String query; │ │ │ │ @@ -92,30 +93,35 @@ │ │ │ │ this.evals.add(new Evaluator$AttributeWithValueMatching(consumeToAny, Pattern.compile(tokenQueue.remainder()))); │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ private void byClass() { │ │ │ │ final String consumeCssIdentifier = this.tq.consumeCssIdentifier(); │ │ │ │ Validate.notEmpty(consumeCssIdentifier); │ │ │ │ - this.evals.add(new Evaluator$Class(consumeCssIdentifier.trim().toLowerCase())); │ │ │ │ + this.evals.add(new Evaluator$Class(consumeCssIdentifier.trim())); │ │ │ │ } │ │ │ │ │ │ │ │ private void byId() { │ │ │ │ final String consumeCssIdentifier = this.tq.consumeCssIdentifier(); │ │ │ │ Validate.notEmpty(consumeCssIdentifier); │ │ │ │ this.evals.add(new Evaluator$Id(consumeCssIdentifier)); │ │ │ │ } │ │ │ │ │ │ │ │ private void byTag() { │ │ │ │ String s = this.tq.consumeElementSelector(); │ │ │ │ Validate.notEmpty(s); │ │ │ │ - if (s.contains("|")) { │ │ │ │ - s = s.replace("|", ":"); │ │ │ │ + if (s.startsWith("*|")) { │ │ │ │ + this.evals.add(new CombiningEvaluator$Or(new Evaluator[] { (Evaluator)new Evaluator$Tag(Normalizer.normalize(s)), (Evaluator)new Evaluator$TagEndsWith(Normalizer.normalize(s.replace((CharSequence)"*|", (CharSequence)":"))) })); │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + if (s.contains("|")) { │ │ │ │ + s = s.replace("|", ":"); │ │ │ │ + } │ │ │ │ + this.evals.add(new Evaluator$Tag(s.trim())); │ │ │ │ } │ │ │ │ - this.evals.add(new Evaluator$Tag(s.trim().toLowerCase())); │ │ │ │ } │ │ │ │ │ │ │ │ private void combinator(final char c) { │ │ │ │ final char c2 = ','; │ │ │ │ final int n = 2; │ │ │ │ final int n2 = 1; │ │ │ │ this.tq.consumeWhitespace(); │ │ │ │ @@ -225,41 +231,48 @@ │ │ │ │ this.evals.add(new Evaluator$ContainsOwnText(unescape)); │ │ │ │ } │ │ │ │ else { │ │ │ │ this.evals.add(new Evaluator$ContainsText(unescape)); │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ + private void containsData() { │ │ │ │ + this.tq.consume(":containsData"); │ │ │ │ + final String unescape = TokenQueue.unescape(this.tq.chompBalanced('(', ')')); │ │ │ │ + Validate.notEmpty(unescape, ":containsData(text) query must not be empty"); │ │ │ │ + this.evals.add(new Evaluator$ContainsData(unescape)); │ │ │ │ + } │ │ │ │ + │ │ │ │ private void cssNthChild(final boolean b, final boolean b2) { │ │ │ │ final int n = 4; │ │ │ │ int n2 = 0; │ │ │ │ int int1 = 1; │ │ │ │ - final String lowerCase = this.tq.chompTo(")").trim().toLowerCase(); │ │ │ │ - final Matcher matcher = QueryParser.NTH_AB.matcher(lowerCase); │ │ │ │ - final Matcher matcher2 = QueryParser.NTH_B.matcher(lowerCase); │ │ │ │ - if ("odd".equals(lowerCase)) { │ │ │ │ + final String normalize = Normalizer.normalize(this.tq.chompTo(")")); │ │ │ │ + final Matcher matcher = QueryParser.NTH_AB.matcher(normalize); │ │ │ │ + final Matcher matcher2 = QueryParser.NTH_B.matcher(normalize); │ │ │ │ + if ("odd".equals(normalize)) { │ │ │ │ int1 = 2; │ │ │ │ n2 = 1; │ │ │ │ } │ │ │ │ - else if ("even".equals(lowerCase)) { │ │ │ │ + else if ("even".equals(normalize)) { │ │ │ │ int1 = 2; │ │ │ │ n2 = 0; │ │ │ │ } │ │ │ │ else if (matcher.matches()) { │ │ │ │ if (matcher.group(3) != null) { │ │ │ │ int1 = Integer.parseInt(matcher.group(int1).replaceFirst("^\\+", "")); │ │ │ │ } │ │ │ │ if (matcher.group(n) != null) { │ │ │ │ n2 = Integer.parseInt(matcher.group(n).replaceFirst("^\\+", "")); │ │ │ │ } │ │ │ │ } │ │ │ │ else { │ │ │ │ if (!matcher2.matches()) { │ │ │ │ final Object[] array = new Object[int1]; │ │ │ │ - array[0] = lowerCase; │ │ │ │ + array[0] = normalize; │ │ │ │ throw new Selector$SelectorParseException("Could not parse nth-index '%s': unexpected format", array); │ │ │ │ } │ │ │ │ int1 = 0; │ │ │ │ n2 = Integer.parseInt(matcher2.group().replaceFirst("^\\+", "")); │ │ │ │ } │ │ │ │ if (b2) { │ │ │ │ if (b) { │ │ │ │ @@ -281,15 +294,15 @@ │ │ │ │ final int n = 1; │ │ │ │ if (this.tq.matchChomp("#")) { │ │ │ │ this.byId(); │ │ │ │ } │ │ │ │ else if (this.tq.matchChomp(".")) { │ │ │ │ this.byClass(); │ │ │ │ } │ │ │ │ - else if (this.tq.matchesWord()) { │ │ │ │ + else if (this.tq.matchesWord() || this.tq.matches("*|")) { │ │ │ │ this.byTag(); │ │ │ │ } │ │ │ │ else if (this.tq.matches("[")) { │ │ │ │ this.byAttribute(); │ │ │ │ } │ │ │ │ else if (this.tq.matchChomp("*")) { │ │ │ │ this.allElements(); │ │ │ │ @@ -308,14 +321,17 @@ │ │ │ │ } │ │ │ │ else if (this.tq.matches(":contains(")) { │ │ │ │ this.contains(false); │ │ │ │ } │ │ │ │ else if (this.tq.matches(":containsOwn(")) { │ │ │ │ this.contains((boolean)(n != 0)); │ │ │ │ } │ │ │ │ + else if (this.tq.matches(":containsData(")) { │ │ │ │ + this.containsData(); │ │ │ │ + } │ │ │ │ else if (this.tq.matches(":matches(")) { │ │ │ │ this.matches(false); │ │ │ │ } │ │ │ │ else if (this.tq.matches(":matchesOwn(")) { │ │ │ │ this.matches((boolean)(n != 0)); │ │ │ │ } │ │ │ │ else if (this.tq.matches(":not(")) { │ │ │ │ @@ -407,15 +423,20 @@ │ │ │ │ this.tq.consume(":not"); │ │ │ │ final String chompBalanced = this.tq.chompBalanced('(', ')'); │ │ │ │ Validate.notEmpty(chompBalanced, ":not(selector) subselect must not be empty"); │ │ │ │ this.evals.add(new StructuralEvaluator$Not(parse(chompBalanced))); │ │ │ │ } │ │ │ │ │ │ │ │ public static Evaluator parse(final String s) { │ │ │ │ - return new QueryParser(s).parse(); │ │ │ │ + try { │ │ │ │ + return new QueryParser(s).parse(); │ │ │ │ + } │ │ │ │ + catch (IllegalArgumentException ex) { │ │ │ │ + throw new Selector$SelectorParseException(ex.getMessage(), new Object[0]); │ │ │ │ + } │ │ │ │ } │ │ │ │ │ │ │ │ Evaluator parse() { │ │ │ │ this.tq.consumeWhitespace(); │ │ │ │ if (this.tq.matchesAny(QueryParser.combinators)) { │ │ │ │ this.evals.add(new StructuralEvaluator$Root()); │ │ │ │ this.combinator(this.tq.consume()); │ │ ├── org/jsoup/Connection$Response.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -7,14 +7,16 @@ │ │ │ │ { │ │ │ │ String body(); │ │ │ │ │ │ │ │ byte[] bodyAsBytes(); │ │ │ │ │ │ │ │ String charset(); │ │ │ │ │ │ │ │ + Connection$Response charset(final String p0); │ │ │ │ + │ │ │ │ String contentType(); │ │ │ │ │ │ │ │ Document parse(); │ │ │ │ │ │ │ │ int statusCode(); │ │ │ │ │ │ │ │ String statusMessage(); │ │ ├── org/jsoup/helper/HttpConnection$Base.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,11 +1,13 @@ │ │ │ │ │ │ │ │ package org.jsoup.helper; │ │ │ │ │ │ │ │ import java.util.Iterator; │ │ │ │ +import org.jsoup.internal.Normalizer; │ │ │ │ +import java.io.UnsupportedEncodingException; │ │ │ │ import java.util.LinkedHashMap; │ │ │ │ import java.net.URL; │ │ │ │ import org.jsoup.Connection$Method; │ │ │ │ import java.util.Map; │ │ │ │ import org.jsoup.Connection$Base; │ │ │ │ │ │ │ │ abstract class HttpConnection$Base implements Connection$Base │ │ │ │ @@ -16,33 +18,104 @@ │ │ │ │ URL url; │ │ │ │ │ │ │ │ private HttpConnection$Base() { │ │ │ │ this.headers = new LinkedHashMap(); │ │ │ │ this.cookies = new LinkedHashMap(); │ │ │ │ } │ │ │ │ │ │ │ │ + private static String fixHeaderEncoding(String s) { │ │ │ │ + final String charsetName = "ISO-8859-1"; │ │ │ │ + final String s2 = s; │ │ │ │ + try { │ │ │ │ + final byte[] bytes = s2.getBytes(charsetName); │ │ │ │ + try { │ │ │ │ + if (looksLikeUtf8(bytes)) { │ │ │ │ + s = new String(bytes, "UTF-8"); │ │ │ │ + } │ │ │ │ + return s; │ │ │ │ + } │ │ │ │ + catch (UnsupportedEncodingException ex) { │ │ │ │ + return s; │ │ │ │ + } │ │ │ │ + return s; │ │ │ │ + } │ │ │ │ + catch (UnsupportedEncodingException ex2) {} │ │ │ │ + } │ │ │ │ + │ │ │ │ private String getHeaderCaseInsensitive(final String s) { │ │ │ │ Validate.notNull((Object)s, "Header name must not be null"); │ │ │ │ String s2 = (String)this.headers.get(s); │ │ │ │ if (s2 == null) { │ │ │ │ - s2 = this.headers.get(s.toLowerCase()); │ │ │ │ + s2 = this.headers.get(Normalizer.lowerCase(s)); │ │ │ │ } │ │ │ │ if (s2 == null) { │ │ │ │ final Map.Entry scanHeaders = this.scanHeaders(s); │ │ │ │ if (scanHeaders != null) { │ │ │ │ s2 = scanHeaders.getValue(); │ │ │ │ } │ │ │ │ } │ │ │ │ return s2; │ │ │ │ } │ │ │ │ │ │ │ │ + private static boolean looksLikeUtf8(final byte[] array) { │ │ │ │ + final int n = 1; │ │ │ │ + int n2 = 0; │ │ │ │ + int i = 0; │ │ │ │ + if (array.length >= 3 && (array[0] & 0xFF) == 0xEF) { │ │ │ │ + int n3; │ │ │ │ + if ((array[n] & 0xFF) == 0xBB) { │ │ │ │ + n3 = n; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + n3 = 0; │ │ │ │ + } │ │ │ │ + int n4; │ │ │ │ + if ((array[2] & 0xFF) == 0xBF) { │ │ │ │ + n4 = n; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + n4 = 0; │ │ │ │ + } │ │ │ │ + if ((n3 & n4) != 0x0) { │ │ │ │ + i = 3; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + while (i < array.length) { │ │ │ │ + final byte b = array[i]; │ │ │ │ + if ((b & 0x80) != 0x0) { │ │ │ │ + int n5; │ │ │ │ + if ((b & 0xE0) == 0xC0) { │ │ │ │ + n5 = i + 1; │ │ │ │ + } │ │ │ │ + else if ((b & 0xF0) == 0xE0) { │ │ │ │ + n5 = i + 2; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + if ((b & 0xF8) != 0xF0) { │ │ │ │ + return n2 != 0; │ │ │ │ + } │ │ │ │ + n5 = i + 3; │ │ │ │ + } │ │ │ │ + while (i < n5) { │ │ │ │ + ++i; │ │ │ │ + if ((array[i] & 0xC0) != 0x80) { │ │ │ │ + return n2 != 0; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + } │ │ │ │ + ++i; │ │ │ │ + } │ │ │ │ + n2 = n; │ │ │ │ + return n2 != 0; │ │ │ │ + } │ │ │ │ + │ │ │ │ private Map.Entry scanHeaders(final String s) { │ │ │ │ - final String lowerCase = s.toLowerCase(); │ │ │ │ + final String lowerCase = Normalizer.lowerCase(s); │ │ │ │ for (final Object o : this.headers.entrySet()) { │ │ │ │ - if (((String)((Map.Entry)o).getKey()).toLowerCase().equals(lowerCase)) { │ │ │ │ + if (Normalizer.lowerCase((String)((Map.Entry)o).getKey()).equals(lowerCase)) { │ │ │ │ return (Map.Entry)o; │ │ │ │ } │ │ │ │ } │ │ │ │ Object o = null; │ │ │ │ return (Map.Entry)o; │ │ │ │ } │ │ │ │ │ │ │ │ @@ -74,15 +147,19 @@ │ │ │ │ │ │ │ │ public boolean hasHeaderWithValue(final String s, final String anotherString) { │ │ │ │ return this.hasHeader(s) && this.header(s).equalsIgnoreCase(anotherString); │ │ │ │ } │ │ │ │ │ │ │ │ public String header(final String s) { │ │ │ │ Validate.notNull((Object)s, "Header name must not be null"); │ │ │ │ - return this.getHeaderCaseInsensitive(s); │ │ │ │ + String s2 = this.getHeaderCaseInsensitive(s); │ │ │ │ + if (s2 != null) { │ │ │ │ + s2 = fixHeaderEncoding(s2); │ │ │ │ + } │ │ │ │ + return s2; │ │ │ │ } │ │ │ │ │ │ │ │ public Connection$Base header(final String s, final String s2) { │ │ │ │ Validate.notEmpty(s, "Header name must not be empty"); │ │ │ │ Validate.notNull((Object)s2, "Header value must not be null"); │ │ │ │ this.removeHeader(s); │ │ │ │ this.headers.put(s, s2); │ │ ├── org/jsoup/helper/HttpConnection.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -7,26 +7,29 @@ │ │ │ │ import org.jsoup.Connection$Method; │ │ │ │ import org.jsoup.nodes.Document; │ │ │ │ import java.util.Collection; │ │ │ │ import java.io.InputStream; │ │ │ │ import java.util.Map; │ │ │ │ import java.util.Iterator; │ │ │ │ import org.jsoup.Connection$KeyVal; │ │ │ │ +import java.net.URI; │ │ │ │ import java.net.URL; │ │ │ │ import org.jsoup.Connection$Response; │ │ │ │ import org.jsoup.Connection$Request; │ │ │ │ import org.jsoup.Connection; │ │ │ │ │ │ │ │ public class HttpConnection implements Connection │ │ │ │ { │ │ │ │ public static final String CONTENT_ENCODING = "Content-Encoding"; │ │ │ │ private static final String CONTENT_TYPE = "Content-Type"; │ │ │ │ + public static final String DEFAULT_UA = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36"; │ │ │ │ private static final String FORM_URL_ENCODED = "application/x-www-form-urlencoded"; │ │ │ │ private static final int HTTP_TEMP_REDIR = 307; │ │ │ │ private static final String MULTIPART_FORM_DATA = "multipart/form-data"; │ │ │ │ + private static final String USER_AGENT = "User-Agent"; │ │ │ │ private Connection$Request req; │ │ │ │ private Connection$Response res; │ │ │ │ │ │ │ │ private HttpConnection() { │ │ │ │ this.req = (Connection$Request)new HttpConnection$Request((HttpConnection$1)null); │ │ │ │ this.res = (Connection$Response)new HttpConnection$Response(); │ │ │ │ } │ │ │ │ @@ -50,23 +53,39 @@ │ │ │ │ } │ │ │ │ else { │ │ │ │ replaceAll = s.replaceAll("\"", "%22"); │ │ │ │ } │ │ │ │ return replaceAll; │ │ │ │ } │ │ │ │ │ │ │ │ - private static String encodeUrl(final String s) { │ │ │ │ - String replaceAll; │ │ │ │ - if (s == null) { │ │ │ │ - replaceAll = null; │ │ │ │ + private static String encodeUrl(String externalForm) { │ │ │ │ + try { │ │ │ │ + final URL encodeUrl = encodeUrl(new URL(externalForm)); │ │ │ │ + try { │ │ │ │ + externalForm = encodeUrl.toExternalForm(); │ │ │ │ + return externalForm; │ │ │ │ + } │ │ │ │ + catch (Exception ex) {} │ │ │ │ } │ │ │ │ - else { │ │ │ │ - replaceAll = s.replaceAll(" ", "%20"); │ │ │ │ + catch (Exception ex2) {} │ │ │ │ + } │ │ │ │ + │ │ │ │ + private static URL encodeUrl(URL url) { │ │ │ │ + try { │ │ │ │ + try { │ │ │ │ + final URI uri = new URI(url.toExternalForm()); │ │ │ │ + try { │ │ │ │ + url = new URL(uri.toASCIIString()); │ │ │ │ + return url; │ │ │ │ + } │ │ │ │ + catch (Exception ex) {} │ │ │ │ + } │ │ │ │ + catch (Exception ex2) {} │ │ │ │ } │ │ │ │ - return replaceAll; │ │ │ │ + catch (Exception ex3) {} │ │ │ │ } │ │ │ │ │ │ │ │ private static boolean needsMultipart(final Connection$Request connection$Request) { │ │ │ │ boolean b = false; │ │ │ │ final Iterator iterator = (Iterator)connection$Request.data().iterator(); │ │ │ │ while (iterator.hasNext()) { │ │ │ │ if (((Connection$KeyVal)iterator.next()).hasInputStream()) { │ │ │ │ @@ -156,14 +175,22 @@ │ │ │ │ } │ │ │ │ │ │ │ │ public Connection header(final String s, final String s2) { │ │ │ │ this.req.header(s, s2); │ │ │ │ return (Connection)this; │ │ │ │ } │ │ │ │ │ │ │ │ + public Connection headers(final Map map) { │ │ │ │ + Validate.notNull((Object)map, "Header map must not be null"); │ │ │ │ + for (final Map.Entry entry : map.entrySet()) { │ │ │ │ + this.req.header((String)entry.getKey(), (String)entry.getValue()); │ │ │ │ + } │ │ │ │ + return (Connection)this; │ │ │ │ + } │ │ │ │ + │ │ │ │ public Connection ignoreContentType(final boolean b) { │ │ │ │ this.req.ignoreContentType(b); │ │ │ │ return (Connection)this; │ │ │ │ } │ │ │ │ │ │ │ │ public Connection ignoreHttpErrors(final boolean b) { │ │ │ │ this.req.ignoreHttpErrors(b); │ │ ├── org/jsoup/helper/W3CDom$W3CBuilder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -23,15 +23,18 @@ │ │ │ │ public W3CDom$W3CBuilder(final Document doc) { │ │ │ │ this.namespaces = new HashMap(); │ │ │ │ this.doc = doc; │ │ │ │ } │ │ │ │ │ │ │ │ private void copyAttributes(final Node node, final Element element) { │ │ │ │ for (final Attribute attribute : node.attributes()) { │ │ │ │ - element.setAttribute(attribute.getKey(), attribute.getValue()); │ │ │ │ + final String replaceAll = attribute.getKey().replaceAll("[^-a-zA-Z0-9_:.]", ""); │ │ │ │ + if (replaceAll.matches("[a-zA-Z_:]{1}[-a-zA-Z0-9_:.]*")) { │ │ │ │ + element.setAttribute(replaceAll, attribute.getValue()); │ │ │ │ + } │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ private String updateNamespaces(final org.jsoup.nodes.Element element) { │ │ │ │ for (final Attribute attribute : element.attributes()) { │ │ │ │ final String key = attribute.getKey(); │ │ │ │ String substring; │ │ ├── org/jsoup/nodes/DocumentType.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -3,23 +3,39 @@ │ │ │ │ │ │ │ │ import org.jsoup.helper.StringUtil; │ │ │ │ │ │ │ │ public class DocumentType extends Node │ │ │ │ { │ │ │ │ private static final String NAME = "name"; │ │ │ │ private static final String PUBLIC_ID = "publicId"; │ │ │ │ + public static final String PUBLIC_KEY = "PUBLIC"; │ │ │ │ + private static final String PUB_SYS_KEY = "pubSysKey"; │ │ │ │ private static final String SYSTEM_ID = "systemId"; │ │ │ │ + public static final String SYSTEM_KEY = "SYSTEM"; │ │ │ │ │ │ │ │ public DocumentType(final String s, final String s2, final String s3, final String s4) { │ │ │ │ super(s4); │ │ │ │ this.attr("name", s); │ │ │ │ this.attr("publicId", s2); │ │ │ │ + if (this.has("publicId")) { │ │ │ │ + this.attr("pubSysKey", "PUBLIC"); │ │ │ │ + } │ │ │ │ this.attr("systemId", s3); │ │ │ │ } │ │ │ │ │ │ │ │ + public DocumentType(final String s, final String s2, final String s3, final String s4, final String s5) { │ │ │ │ + super(s5); │ │ │ │ + this.attr("name", s); │ │ │ │ + if (s2 != null) { │ │ │ │ + this.attr("pubSysKey", s2); │ │ │ │ + } │ │ │ │ + this.attr("publicId", s3); │ │ │ │ + this.attr("systemId", s4); │ │ │ │ + } │ │ │ │ + │ │ │ │ private boolean has(final String s) { │ │ │ │ return !StringUtil.isBlank(this.attr(s)); │ │ │ │ } │ │ │ │ │ │ │ │ public String nodeName() { │ │ │ │ return "#doctype"; │ │ │ │ } │ │ │ │ @@ -31,16 +47,19 @@ │ │ │ │ } │ │ │ │ else { │ │ │ │ appendable.append("'); │ │ │ │ } │ │ ├── org/jsoup/nodes/Element.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,18 +1,21 @@ │ │ │ │ │ │ │ │ package org.jsoup.nodes; │ │ │ │ │ │ │ │ import org.jsoup.select.NodeVisitor; │ │ │ │ import org.jsoup.select.NodeTraversor; │ │ │ │ +import org.jsoup.parser.ParseSettings; │ │ │ │ import org.jsoup.select.Selector; │ │ │ │ +import org.jsoup.select.QueryParser; │ │ │ │ import org.jsoup.select.Evaluator$Matches; │ │ │ │ import org.jsoup.select.Evaluator$MatchesOwn; │ │ │ │ import org.jsoup.select.Evaluator$ContainsText; │ │ │ │ import org.jsoup.select.Evaluator$ContainsOwnText; │ │ │ │ import org.jsoup.select.Evaluator$Tag; │ │ │ │ +import org.jsoup.internal.Normalizer; │ │ │ │ import org.jsoup.select.Evaluator$IndexLessThan; │ │ │ │ import org.jsoup.select.Evaluator$IndexGreaterThan; │ │ │ │ import org.jsoup.select.Evaluator$IndexEquals; │ │ │ │ import org.jsoup.select.Evaluator$Class; │ │ │ │ import org.jsoup.select.Evaluator$AttributeWithValueStarting; │ │ │ │ import org.jsoup.select.Evaluator$AttributeWithValueNot; │ │ │ │ import org.jsoup.select.Evaluator$AttributeWithValueMatching; │ │ │ │ @@ -27,34 +30,40 @@ │ │ │ │ import org.jsoup.select.Collector; │ │ │ │ import org.jsoup.select.Evaluator$AllElements; │ │ │ │ import java.util.Map; │ │ │ │ import java.util.Collections; │ │ │ │ import java.util.Collection; │ │ │ │ import java.util.LinkedHashSet; │ │ │ │ import java.util.Arrays; │ │ │ │ -import java.util.ArrayList; │ │ │ │ import org.jsoup.parser.Parser; │ │ │ │ import java.util.Set; │ │ │ │ -import java.util.List; │ │ │ │ import java.util.Iterator; │ │ │ │ +import java.util.ArrayList; │ │ │ │ +import java.util.List; │ │ │ │ import org.jsoup.helper.StringUtil; │ │ │ │ import org.jsoup.select.Elements; │ │ │ │ import org.jsoup.helper.Validate; │ │ │ │ import org.jsoup.parser.Tag; │ │ │ │ +import java.lang.ref.WeakReference; │ │ │ │ import java.util.regex.Pattern; │ │ │ │ │ │ │ │ public class Element extends Node │ │ │ │ { │ │ │ │ private static final Pattern classSplit; │ │ │ │ + private WeakReference shadowChildrenRef; │ │ │ │ private Tag tag; │ │ │ │ │ │ │ │ static { │ │ │ │ classSplit = Pattern.compile("\\s+"); │ │ │ │ } │ │ │ │ │ │ │ │ + public Element(final String s) { │ │ │ │ + this(Tag.valueOf(s), "", new Attributes()); │ │ │ │ + } │ │ │ │ + │ │ │ │ public Element(final Tag tag, final String s) { │ │ │ │ this(tag, s, new Attributes()); │ │ │ │ } │ │ │ │ │ │ │ │ public Element(final Tag tag, final String s, final Attributes attributes) { │ │ │ │ super(s, attributes); │ │ │ │ Validate.notNull((Object)tag); │ │ │ │ @@ -81,30 +90,47 @@ │ │ │ │ │ │ │ │ private static void appendWhitespaceIfBr(final Element element, final StringBuilder sb) { │ │ │ │ if (element.tag.getName().equals("br") && !TextNode.lastCharIsWhitespace(sb)) { │ │ │ │ sb.append(" "); │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ + private List childElementsList() { │ │ │ │ + if (this.shadowChildrenRef != null) { │ │ │ │ + final List referent = (List)this.shadowChildrenRef.get(); │ │ │ │ + if (referent != null) { │ │ │ │ + return referent; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + final int size = this.childNodes.size(); │ │ │ │ + final List referent = new ArrayList(size); │ │ │ │ + for (int i = 0; i < size; ++i) { │ │ │ │ + final Node node = (Node)this.childNodes.get(i); │ │ │ │ + if (node instanceof Element) { │ │ │ │ + referent.add(node); │ │ │ │ + } │ │ │ │ + } │ │ │ │ + this.shadowChildrenRef = new WeakReference(referent); │ │ │ │ + return referent; │ │ │ │ + } │ │ │ │ + │ │ │ │ private void html(final StringBuilder sb) { │ │ │ │ final Iterator iterator = this.childNodes.iterator(); │ │ │ │ while (iterator.hasNext()) { │ │ │ │ ((Node)iterator.next()).outerHtml((Appendable)sb); │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ - private static Integer indexInList(final Element element, final List list) { │ │ │ │ - Validate.notNull((Object)element); │ │ │ │ - Validate.notNull((Object)list); │ │ │ │ + private static int indexInList(final Element element, final List list) { │ │ │ │ for (int i = 0; i < list.size(); ++i) { │ │ │ │ if (list.get(i) == element) { │ │ │ │ - return Integer.valueOf(i); │ │ │ │ + return i; │ │ │ │ } │ │ │ │ } │ │ │ │ - return null; │ │ │ │ + return 0; │ │ │ │ } │ │ │ │ │ │ │ │ private void ownText(final StringBuilder sb) { │ │ │ │ for (final Node node : this.childNodes) { │ │ │ │ if (node instanceof TextNode) { │ │ │ │ appendNormalisedText(sb, (TextNode)node); │ │ │ │ } │ │ │ │ @@ -187,25 +213,19 @@ │ │ │ │ } │ │ │ │ │ │ │ │ public Element before(final Node node) { │ │ │ │ return (Element)super.before(node); │ │ │ │ } │ │ │ │ │ │ │ │ public Element child(final int n) { │ │ │ │ - return (Element)this.children().get(n); │ │ │ │ + return this.childElementsList().get(n); │ │ │ │ } │ │ │ │ │ │ │ │ public Elements children() { │ │ │ │ - final ArrayList list = new ArrayList(this.childNodes.size()); │ │ │ │ - for (final Node node : this.childNodes) { │ │ │ │ - if (node instanceof Element) { │ │ │ │ - list.add((Element)node); │ │ │ │ - } │ │ │ │ - } │ │ │ │ - return new Elements((List)list); │ │ │ │ + return new Elements(this.childElementsList()); │ │ │ │ } │ │ │ │ │ │ │ │ public String className() { │ │ │ │ return this.attr("class").trim(); │ │ │ │ } │ │ │ │ │ │ │ │ public Set classNames() { │ │ │ │ @@ -239,29 +259,32 @@ │ │ │ │ if (this.parent() == null || this.parent() instanceof Document) { │ │ │ │ s = sb.toString(); │ │ │ │ } │ │ │ │ else { │ │ │ │ sb.insert(0, " > "); │ │ │ │ if (this.parent().select(sb.toString()).size() > n) { │ │ │ │ final Object[] args = new Object[n]; │ │ │ │ - args[0] = Integer.valueOf((int)this.elementSiblingIndex() + 1); │ │ │ │ + args[0] = Integer.valueOf(this.elementSiblingIndex() + 1); │ │ │ │ sb.append(String.format(":nth-child(%d)", args)); │ │ │ │ } │ │ │ │ s = this.parent().cssSelector() + sb.toString(); │ │ │ │ } │ │ │ │ } │ │ │ │ return s; │ │ │ │ } │ │ │ │ │ │ │ │ public String data() { │ │ │ │ final StringBuilder sb = new StringBuilder(); │ │ │ │ for (final Node node : this.childNodes) { │ │ │ │ if (node instanceof DataNode) { │ │ │ │ sb.append(((DataNode)node).getWholeData()); │ │ │ │ } │ │ │ │ + else if (node instanceof Comment) { │ │ │ │ + sb.append(((Comment)node).getData()); │ │ │ │ + } │ │ │ │ else { │ │ │ │ if (!(node instanceof Element)) { │ │ │ │ continue; │ │ │ │ } │ │ │ │ sb.append(((Element)node).data()); │ │ │ │ } │ │ │ │ } │ │ │ │ @@ -278,35 +301,35 @@ │ │ │ │ return Collections.unmodifiableList((List)list); │ │ │ │ } │ │ │ │ │ │ │ │ public Map dataset() { │ │ │ │ return this.attributes.dataset(); │ │ │ │ } │ │ │ │ │ │ │ │ - public Integer elementSiblingIndex() { │ │ │ │ - Integer n; │ │ │ │ + public int elementSiblingIndex() { │ │ │ │ + int indexInList; │ │ │ │ if (this.parent() == null) { │ │ │ │ - n = Integer.valueOf(0); │ │ │ │ + indexInList = 0; │ │ │ │ } │ │ │ │ else { │ │ │ │ - n = indexInList(this, (List)this.parent().children()); │ │ │ │ + indexInList = indexInList(this, this.parent().childElementsList()); │ │ │ │ } │ │ │ │ - return n; │ │ │ │ + return indexInList; │ │ │ │ } │ │ │ │ │ │ │ │ public Element empty() { │ │ │ │ this.childNodes.clear(); │ │ │ │ return this; │ │ │ │ } │ │ │ │ │ │ │ │ public Element firstElementSibling() { │ │ │ │ - final Elements children = this.parent().children(); │ │ │ │ + final List childElementsList = this.parent().childElementsList(); │ │ │ │ Element element; │ │ │ │ - if (((List)children).size() > 1) { │ │ │ │ - element = ((List)children).get(0); │ │ │ │ + if (childElementsList.size() > 1) { │ │ │ │ + element = childElementsList.get(0); │ │ │ │ } │ │ │ │ else { │ │ │ │ element = null; │ │ │ │ } │ │ │ │ return element; │ │ │ │ } │ │ │ │ │ │ │ │ @@ -323,24 +346,24 @@ │ │ │ │ } │ │ │ │ else { │ │ │ │ element = null; │ │ │ │ } │ │ │ │ return element; │ │ │ │ } │ │ │ │ │ │ │ │ - public Elements getElementsByAttribute(String lowerCase) { │ │ │ │ - Validate.notEmpty(lowerCase); │ │ │ │ - lowerCase = lowerCase.trim().toLowerCase(); │ │ │ │ - return Collector.collect((Evaluator)new Evaluator$Attribute(lowerCase), this); │ │ │ │ + public Elements getElementsByAttribute(String trim) { │ │ │ │ + Validate.notEmpty(trim); │ │ │ │ + trim = trim.trim(); │ │ │ │ + return Collector.collect((Evaluator)new Evaluator$Attribute(trim), this); │ │ │ │ } │ │ │ │ │ │ │ │ - public Elements getElementsByAttributeStarting(String lowerCase) { │ │ │ │ - Validate.notEmpty(lowerCase); │ │ │ │ - lowerCase = lowerCase.trim().toLowerCase(); │ │ │ │ - return Collector.collect((Evaluator)new Evaluator$AttributeStarting(lowerCase), this); │ │ │ │ + public Elements getElementsByAttributeStarting(String trim) { │ │ │ │ + Validate.notEmpty(trim); │ │ │ │ + trim = trim.trim(); │ │ │ │ + return Collector.collect((Evaluator)new Evaluator$AttributeStarting(trim), this); │ │ │ │ } │ │ │ │ │ │ │ │ public Elements getElementsByAttributeValue(final String s, final String s2) { │ │ │ │ return Collector.collect((Evaluator)new Evaluator$AttributeWithValue(s, s2), this); │ │ │ │ } │ │ │ │ │ │ │ │ public Elements getElementsByAttributeValueContaining(final String s, final String s2) { │ │ │ │ @@ -385,18 +408,18 @@ │ │ │ │ return Collector.collect((Evaluator)new Evaluator$IndexGreaterThan(n), this); │ │ │ │ } │ │ │ │ │ │ │ │ public Elements getElementsByIndexLessThan(final int n) { │ │ │ │ return Collector.collect((Evaluator)new Evaluator$IndexLessThan(n), this); │ │ │ │ } │ │ │ │ │ │ │ │ - public Elements getElementsByTag(String trim) { │ │ │ │ - Validate.notEmpty(trim); │ │ │ │ - trim = trim.toLowerCase().trim(); │ │ │ │ - return Collector.collect((Evaluator)new Evaluator$Tag(trim), this); │ │ │ │ + public Elements getElementsByTag(String normalize) { │ │ │ │ + Validate.notEmpty(normalize); │ │ │ │ + normalize = Normalizer.normalize(normalize); │ │ │ │ + return Collector.collect((Evaluator)new Evaluator$Tag(normalize), this); │ │ │ │ } │ │ │ │ │ │ │ │ public Elements getElementsContainingOwnText(final String s) { │ │ │ │ return Collector.collect((Evaluator)new Evaluator$ContainsOwnText(s), this); │ │ │ │ } │ │ │ │ │ │ │ │ public Elements getElementsContainingText(final String s) { │ │ │ │ @@ -426,26 +449,47 @@ │ │ │ │ } │ │ │ │ │ │ │ │ public Elements getElementsMatchingText(final Pattern pattern) { │ │ │ │ return Collector.collect((Evaluator)new Evaluator$Matches(pattern), this); │ │ │ │ } │ │ │ │ │ │ │ │ public boolean hasClass(final String s) { │ │ │ │ - boolean b = false; │ │ │ │ - final String value = this.attributes.get("class"); │ │ │ │ - if (value.equals("") && value.length() >= s.length()) { │ │ │ │ - final String[] split = Element.classSplit.split(value); │ │ │ │ - for (int length = split.length, i = 0; i < length; ++i) { │ │ │ │ - if (s.equalsIgnoreCase(split[i])) { │ │ │ │ - b = true; │ │ │ │ - break; │ │ │ │ + final boolean b = true; │ │ │ │ + boolean b2 = false; │ │ │ │ + final String ignoreCase = this.attributes.getIgnoreCase("class"); │ │ │ │ + final int length = ignoreCase.length(); │ │ │ │ + final int length2 = s.length(); │ │ │ │ + if (length != 0 && length >= length2) { │ │ │ │ + if (length == length2) { │ │ │ │ + b2 = s.equalsIgnoreCase(ignoreCase); │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + int n = 0; │ │ │ │ + int n2 = 0; │ │ │ │ + for (int i = 0; i < length; ++i) { │ │ │ │ + if (Character.isWhitespace(ignoreCase.charAt(i))) { │ │ │ │ + if (n != 0) { │ │ │ │ + if (i - n2 == length2 && ignoreCase.regionMatches(b, n2, s, 0, length2)) { │ │ │ │ + b2 = b; │ │ │ │ + return b2; │ │ │ │ + } │ │ │ │ + n = 0; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + else if (n == 0) { │ │ │ │ + n = 1; │ │ │ │ + n2 = i; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + if (n != 0 && length - n2 == length2) { │ │ │ │ + b2 = ignoreCase.regionMatches(b, n2, s, 0, length2); │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ - return b; │ │ │ │ + return b2; │ │ │ │ } │ │ │ │ │ │ │ │ public boolean hasText() { │ │ │ │ boolean b = true; │ │ │ │ for (final Node node : this.childNodes) { │ │ │ │ if (node instanceof TextNode) { │ │ │ │ if (((TextNode)node).isBlank()) { │ │ │ │ @@ -485,62 +529,86 @@ │ │ │ │ public Element html(final String s) { │ │ │ │ this.empty(); │ │ │ │ this.append(s); │ │ │ │ return this; │ │ │ │ } │ │ │ │ │ │ │ │ public String id() { │ │ │ │ - return this.attributes.get("id"); │ │ │ │ + return this.attributes.getIgnoreCase("id"); │ │ │ │ } │ │ │ │ │ │ │ │ public Element insertChildren(int n, final Collection c) { │ │ │ │ Validate.notNull((Object)c, "Children collection to be inserted must not be null."); │ │ │ │ final int childNodeSize = this.childNodeSize(); │ │ │ │ if (n < 0) { │ │ │ │ n += childNodeSize + 1; │ │ │ │ } │ │ │ │ Validate.isTrue(n >= 0 && n <= childNodeSize, "Insert position out of bounds."); │ │ │ │ final ArrayList list = new ArrayList(c); │ │ │ │ this.addChildren(n, (Node[])list.toArray(new Node[list.size()])); │ │ │ │ return this; │ │ │ │ } │ │ │ │ │ │ │ │ + public Element insertChildren(int n, final Node... array) { │ │ │ │ + Validate.notNull((Object)array, "Children collection to be inserted must not be null."); │ │ │ │ + final int childNodeSize = this.childNodeSize(); │ │ │ │ + if (n < 0) { │ │ │ │ + n += childNodeSize + 1; │ │ │ │ + } │ │ │ │ + Validate.isTrue(n >= 0 && n <= childNodeSize, "Insert position out of bounds."); │ │ │ │ + this.addChildren(n, array); │ │ │ │ + return this; │ │ │ │ + } │ │ │ │ + │ │ │ │ + public boolean is(final String s) { │ │ │ │ + return this.is(QueryParser.parse(s)); │ │ │ │ + } │ │ │ │ + │ │ │ │ + public boolean is(final Evaluator evaluator) { │ │ │ │ + return evaluator.matches((Element)this.root(), this); │ │ │ │ + } │ │ │ │ + │ │ │ │ public boolean isBlock() { │ │ │ │ return this.tag.isBlock(); │ │ │ │ } │ │ │ │ │ │ │ │ public Element lastElementSibling() { │ │ │ │ - final Elements children = this.parent().children(); │ │ │ │ + final List childElementsList = this.parent().childElementsList(); │ │ │ │ Element element; │ │ │ │ - if (((List)children).size() > 1) { │ │ │ │ - element = ((List)children).get(((List)children).size() - 1); │ │ │ │ + if (childElementsList.size() > 1) { │ │ │ │ + element = childElementsList.get(childElementsList.size() - 1); │ │ │ │ } │ │ │ │ else { │ │ │ │ element = null; │ │ │ │ } │ │ │ │ return element; │ │ │ │ } │ │ │ │ │ │ │ │ public Element nextElementSibling() { │ │ │ │ Element element = null; │ │ │ │ if (this.parentNode != null) { │ │ │ │ - final Elements children = this.parent().children(); │ │ │ │ - final Integer indexInList = indexInList(this, (List)children); │ │ │ │ - Validate.notNull((Object)indexInList); │ │ │ │ - if (((List)children).size() > indexInList + 1) { │ │ │ │ - element = ((List)children).get((int)indexInList + 1); │ │ │ │ + final List childElementsList = this.parent().childElementsList(); │ │ │ │ + final Integer value = Integer.valueOf(indexInList(this, childElementsList)); │ │ │ │ + Validate.notNull((Object)value); │ │ │ │ + if (childElementsList.size() > value + 1) { │ │ │ │ + element = childElementsList.get((int)value + 1); │ │ │ │ } │ │ │ │ } │ │ │ │ return element; │ │ │ │ } │ │ │ │ │ │ │ │ public String nodeName() { │ │ │ │ return this.tag.getName(); │ │ │ │ } │ │ │ │ │ │ │ │ + void nodelistChanged() { │ │ │ │ + super.nodelistChanged(); │ │ │ │ + this.shadowChildrenRef = null; │ │ │ │ + } │ │ │ │ + │ │ │ │ void outerHtmlHead(final Appendable appendable, final int n, final Document$OutputSettings document$OutputSettings) { │ │ │ │ if (document$OutputSettings.prettyPrint() && (this.tag.formatAsBlock() || (this.parent() != null && this.parent().tag().formatAsBlock()) || document$OutputSettings.outline())) { │ │ │ │ if (appendable instanceof StringBuilder) { │ │ │ │ if (((StringBuilder)appendable).length() > 0) { │ │ │ │ this.indent((Appendable)appendable, n, document$OutputSettings); │ │ │ │ } │ │ │ │ } │ │ │ │ @@ -613,19 +681,19 @@ │ │ │ │ this.prependChild((Node)new TextNode(s, this.baseUri())); │ │ │ │ return this; │ │ │ │ } │ │ │ │ │ │ │ │ public Element previousElementSibling() { │ │ │ │ Element element = null; │ │ │ │ if (this.parentNode != null) { │ │ │ │ - final Elements children = this.parent().children(); │ │ │ │ - final Integer indexInList = indexInList(this, (List)children); │ │ │ │ - Validate.notNull((Object)indexInList); │ │ │ │ - if (indexInList > 0) { │ │ │ │ - element = ((List)children).get((int)indexInList - 1); │ │ │ │ + final List childElementsList = this.parent().childElementsList(); │ │ │ │ + final Integer value = Integer.valueOf(indexInList(this, childElementsList)); │ │ │ │ + Validate.notNull((Object)value); │ │ │ │ + if (value > 0) { │ │ │ │ + element = childElementsList.get((int)value - 1); │ │ │ │ } │ │ │ │ } │ │ │ │ return element; │ │ │ │ } │ │ │ │ │ │ │ │ public Element removeClass(final String s) { │ │ │ │ Validate.notNull((Object)s); │ │ │ │ @@ -641,17 +709,17 @@ │ │ │ │ │ │ │ │ public Elements siblingElements() { │ │ │ │ Elements elements; │ │ │ │ if (this.parentNode == null) { │ │ │ │ elements = new Elements(0); │ │ │ │ } │ │ │ │ else { │ │ │ │ - final Elements children = this.parent().children(); │ │ │ │ - elements = new Elements(((List)children).size() - 1); │ │ │ │ - for (final Element element : children) { │ │ │ │ + final List childElementsList = this.parent().childElementsList(); │ │ │ │ + elements = new Elements(childElementsList.size() - 1); │ │ │ │ + for (final Element element : childElementsList) { │ │ │ │ if (element != this) { │ │ │ │ elements.add((Object)element); │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ return elements; │ │ │ │ } │ │ │ │ @@ -662,15 +730,15 @@ │ │ │ │ │ │ │ │ public String tagName() { │ │ │ │ return this.tag.getName(); │ │ │ │ } │ │ │ │ │ │ │ │ public Element tagName(final String s) { │ │ │ │ Validate.notEmpty(s, "Tag name must not be empty."); │ │ │ │ - this.tag = Tag.valueOf(s); │ │ │ │ + this.tag = Tag.valueOf(s, ParseSettings.preserveCase); │ │ │ │ return this; │ │ │ │ } │ │ │ │ │ │ │ │ public String text() { │ │ │ │ final StringBuilder sb = new StringBuilder(); │ │ │ │ new NodeTraversor((NodeVisitor)new Element$1(this, sb)).traverse((Node)this); │ │ │ │ return sb.toString().trim(); │ │ ├── org/jsoup/parser/HtmlTreeBuilder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -273,14 +273,18 @@ │ │ │ │ this.clearStackToContext("table"); │ │ │ │ } │ │ │ │ │ │ │ │ void clearStackToTableRowContext() { │ │ │ │ this.clearStackToContext("tr"); │ │ │ │ } │ │ │ │ │ │ │ │ + ParseSettings defaultSettings() { │ │ │ │ + return ParseSettings.htmlDefault; │ │ │ │ + } │ │ │ │ + │ │ │ │ void error(final HtmlTreeBuilderState htmlTreeBuilderState) { │ │ │ │ if (this.errors.canAddError()) { │ │ │ │ this.errors.add((Object)new ParseError(this.reader.pos(), "Unexpected token [%s] when in state [%s]", new Object[] { this.currentToken.tokenType(), htmlTreeBuilderState })); │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ void framesetOk(final boolean framesetOk) { │ │ │ │ @@ -396,15 +400,15 @@ │ │ │ │ final Element insertEmpty = this.insertEmpty(token$StartTag); │ │ │ │ this.stack.add(insertEmpty); │ │ │ │ this.tokeniser.transition(TokeniserState.Data); │ │ │ │ this.tokeniser.emit((Token)this.emptyEnd.reset().name(insertEmpty.tagName())); │ │ │ │ element = insertEmpty; │ │ │ │ } │ │ │ │ else { │ │ │ │ - final Element element2 = new Element(Tag.valueOf(token$StartTag.name()), this.baseUri, token$StartTag.attributes); │ │ │ │ + final Element element2 = new Element(Tag.valueOf(token$StartTag.name(), this.settings), this.baseUri, this.settings.normalizeAttributes(token$StartTag.attributes)); │ │ │ │ this.insert(element2); │ │ │ │ element = element2; │ │ │ │ } │ │ │ │ return element; │ │ │ │ } │ │ │ │ │ │ │ │ void insert(final Element e) { │ │ │ │ @@ -425,15 +429,15 @@ │ │ │ │ } │ │ │ │ │ │ │ │ void insert(final Token$Comment token$Comment) { │ │ │ │ this.insertNode((Node)new Comment(token$Comment.getData(), this.baseUri)); │ │ │ │ } │ │ │ │ │ │ │ │ Element insertEmpty(final Token$StartTag token$StartTag) { │ │ │ │ - final Tag value = Tag.valueOf(token$StartTag.name()); │ │ │ │ + final Tag value = Tag.valueOf(token$StartTag.name(), this.settings); │ │ │ │ final Element element = new Element(value, this.baseUri, token$StartTag.attributes); │ │ │ │ this.insertNode((Node)element); │ │ │ │ if (token$StartTag.isSelfClosing()) { │ │ │ │ if (value.isKnownTag()) { │ │ │ │ if (value.isSelfClosing()) { │ │ │ │ this.tokeniser.acknowledgeSelfClosingFlag(); │ │ │ │ } │ │ │ │ @@ -443,15 +447,15 @@ │ │ │ │ this.tokeniser.acknowledgeSelfClosingFlag(); │ │ │ │ } │ │ │ │ } │ │ │ │ return element; │ │ │ │ } │ │ │ │ │ │ │ │ FormElement insertForm(final Token$StartTag token$StartTag, final boolean b) { │ │ │ │ - final FormElement formElement = new FormElement(Tag.valueOf(token$StartTag.name()), this.baseUri, token$StartTag.attributes); │ │ │ │ + final FormElement formElement = new FormElement(Tag.valueOf(token$StartTag.name(), this.settings), this.baseUri, token$StartTag.attributes); │ │ │ │ this.setFormElement(formElement); │ │ │ │ this.insertNode((Node)formElement); │ │ │ │ if (b) { │ │ │ │ this.stack.add(formElement); │ │ │ │ } │ │ │ │ return formElement; │ │ │ │ } │ │ │ │ @@ -488,15 +492,15 @@ │ │ │ │ void insertOnStackAfter(final Element o, final Element element) { │ │ │ │ final int lastIndex = this.stack.lastIndexOf(o); │ │ │ │ Validate.isTrue(lastIndex != -1); │ │ │ │ this.stack.add(lastIndex + 1, element); │ │ │ │ } │ │ │ │ │ │ │ │ Element insertStartTag(final String s) { │ │ │ │ - final Element element = new Element(Tag.valueOf(s), this.baseUri); │ │ │ │ + final Element element = new Element(Tag.valueOf(s, this.settings), this.baseUri); │ │ │ │ this.insert(element); │ │ │ │ return element; │ │ │ │ } │ │ │ │ │ │ │ │ boolean isFosterInserts() { │ │ │ │ return this.fosterInserts; │ │ │ │ } │ │ │ │ @@ -547,25 +551,25 @@ │ │ │ │ return this.isElementInQueue(this.stack, element); │ │ │ │ } │ │ │ │ │ │ │ │ HtmlTreeBuilderState originalState() { │ │ │ │ return this.originalState; │ │ │ │ } │ │ │ │ │ │ │ │ - Document parse(final String s, final String s2, final ParseErrorList list) { │ │ │ │ + Document parse(final String s, final String s2, final ParseErrorList list, final ParseSettings parseSettings) { │ │ │ │ this.state = HtmlTreeBuilderState.Initial; │ │ │ │ this.baseUriSetFromDoc = false; │ │ │ │ - return super.parse(s, s2, list); │ │ │ │ + return super.parse(s, s2, list, parseSettings); │ │ │ │ } │ │ │ │ │ │ │ │ - List parseFragment(final String s, final Element contextElement, final String s2, final ParseErrorList list) { │ │ │ │ + List parseFragment(final String s, final Element contextElement, final String s2, final ParseErrorList list, final ParseSettings parseSettings) { │ │ │ │ final int n = 2; │ │ │ │ final int fragmentParsing = 1; │ │ │ │ this.state = HtmlTreeBuilderState.Initial; │ │ │ │ - this.initialiseParse(s, s2, list); │ │ │ │ + this.initialiseParse(s, s2, list, parseSettings); │ │ │ │ this.contextElement = contextElement; │ │ │ │ this.fragmentParsing = (fragmentParsing != 0); │ │ │ │ Element e = null; │ │ │ │ if (contextElement != null) { │ │ │ │ if (contextElement.ownerDocument() != null) { │ │ │ │ this.doc.quirksMode(contextElement.ownerDocument().quirksMode()); │ │ │ │ } │ │ │ │ @@ -595,15 +599,15 @@ │ │ │ │ else if (tagName.equals("plaintext")) { │ │ │ │ this.tokeniser.transition(TokeniserState.Data); │ │ │ │ } │ │ │ │ else { │ │ │ │ this.tokeniser.transition(TokeniserState.Data); │ │ │ │ } │ │ │ │ } │ │ │ │ - e = new Element(Tag.valueOf("html"), s2); │ │ │ │ + e = new Element(Tag.valueOf("html", parseSettings), s2); │ │ │ │ this.doc.appendChild((Node)e); │ │ │ │ this.stack.add(e); │ │ │ │ this.resetInsertionMode(); │ │ │ │ final Elements parents = contextElement.parents(); │ │ │ │ parents.add(0, (Object)contextElement); │ │ │ │ for (final Element element : parents) { │ │ │ │ if (element instanceof FormElement) { │ │ ├── org/jsoup/parser/HtmlTreeBuilderState$11.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -10,60 +10,60 @@ │ │ │ │ │ │ │ │ boolean process(final Token token, final HtmlTreeBuilder htmlTreeBuilder) { │ │ │ │ final int n = 4; │ │ │ │ final int n2 = 3; │ │ │ │ final int n3 = 2; │ │ │ │ final int n4 = 1; │ │ │ │ int n5 = 0; │ │ │ │ - if (token.isEndTag() && token.asEndTag().name().equals("caption")) { │ │ │ │ - if (htmlTreeBuilder.inTableScope(token.asEndTag().name())) { │ │ │ │ + if (token.isEndTag() && token.asEndTag().normalName().equals("caption")) { │ │ │ │ + if (htmlTreeBuilder.inTableScope(token.asEndTag().normalName())) { │ │ │ │ htmlTreeBuilder.generateImpliedEndTags(); │ │ │ │ if (!htmlTreeBuilder.currentElement().nodeName().equals("caption")) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ } │ │ │ │ htmlTreeBuilder.popStackToClose("caption"); │ │ │ │ htmlTreeBuilder.clearFormattingElementsToLastMarker(); │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$11.InTable); │ │ │ │ return n4 != 0; │ │ │ │ } │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ } │ │ │ │ else { │ │ │ │ Label_0308: { │ │ │ │ if (token.isStartTag()) { │ │ │ │ - final String name = token.asStartTag().name(); │ │ │ │ + final String normalName = token.asStartTag().normalName(); │ │ │ │ final String[] array = new String[9]; │ │ │ │ array[0] = "caption"; │ │ │ │ array[n4] = "col"; │ │ │ │ array[n3] = "colgroup"; │ │ │ │ array[n2] = "tbody"; │ │ │ │ array[n] = "td"; │ │ │ │ array[5] = "tfoot"; │ │ │ │ array[6] = "th"; │ │ │ │ array[7] = "thead"; │ │ │ │ array[8] = "tr"; │ │ │ │ - if (StringUtil.in(name, array)) { │ │ │ │ + if (StringUtil.in(normalName, array)) { │ │ │ │ break Label_0308; │ │ │ │ } │ │ │ │ } │ │ │ │ - if (!token.isEndTag() || !token.asEndTag().name().equals("table")) { │ │ │ │ + if (!token.isEndTag() || !token.asEndTag().normalName().equals("table")) { │ │ │ │ if (token.isEndTag()) { │ │ │ │ - final String name2 = token.asEndTag().name(); │ │ │ │ + final String normalName2 = token.asEndTag().normalName(); │ │ │ │ final String[] array2 = new String[10]; │ │ │ │ array2[0] = "body"; │ │ │ │ array2[n4] = "col"; │ │ │ │ array2[n3] = "colgroup"; │ │ │ │ array2[n2] = "html"; │ │ │ │ array2[n] = "tbody"; │ │ │ │ array2[5] = "td"; │ │ │ │ array2[6] = "tfoot"; │ │ │ │ array2[7] = "th"; │ │ │ │ array2[8] = "thead"; │ │ │ │ array2[9] = "tr"; │ │ │ │ - if (StringUtil.in(name2, array2)) { │ │ │ │ + if (StringUtil.in(normalName2, array2)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return n5 != 0; │ │ │ │ } │ │ │ │ } │ │ │ │ n5 = (htmlTreeBuilder.process(token, HtmlTreeBuilderState$11.InBody) ? 1 : 0); │ │ │ │ return n5 != 0; │ │ │ │ } │ │ ├── org/jsoup/parser/HtmlTreeBuilderState$12.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -27,28 +27,28 @@ │ │ │ │ } │ │ │ │ case 2: { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ break; │ │ │ │ } │ │ │ │ case 3: { │ │ │ │ final Token$StartTag startTag = token.asStartTag(); │ │ │ │ - final String name = startTag.name(); │ │ │ │ - if (name.equals("html")) { │ │ │ │ + final String normalName = startTag.normalName(); │ │ │ │ + if (normalName.equals("html")) { │ │ │ │ b = htmlTreeBuilder.process(token, HtmlTreeBuilderState$12.InBody); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (name.equals("col")) { │ │ │ │ + if (normalName.equals("col")) { │ │ │ │ htmlTreeBuilder.insertEmpty(startTag); │ │ │ │ break; │ │ │ │ } │ │ │ │ b = this.anythingElse(token, (TreeBuilder)htmlTreeBuilder); │ │ │ │ break; │ │ │ │ } │ │ │ │ case 4: { │ │ │ │ - if (!token.asEndTag().name().equals("colgroup")) { │ │ │ │ + if (!token.asEndTag().normalName().equals("colgroup")) { │ │ │ │ b = this.anythingElse(token, (TreeBuilder)htmlTreeBuilder); │ │ │ │ break; │ │ │ │ } │ │ │ │ if (htmlTreeBuilder.currentElement().nodeName().equals("html")) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ b = false; │ │ │ │ break; │ │ ├── org/jsoup/parser/HtmlTreeBuilderState$13.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -35,75 +35,75 @@ │ │ │ │ switch (HtmlTreeBuilderState$24.$SwitchMap$org$jsoup$parser$Token$TokenType[token.type.ordinal()]) { │ │ │ │ default: { │ │ │ │ n5 = (this.anythingElse(token, htmlTreeBuilder) ? 1 : 0); │ │ │ │ break; │ │ │ │ } │ │ │ │ case 3: { │ │ │ │ final Token$StartTag startTag = token.asStartTag(); │ │ │ │ - final String name = startTag.name(); │ │ │ │ - if (name.equals("tr")) { │ │ │ │ + final String normalName = startTag.normalName(); │ │ │ │ + if (normalName.equals("tr")) { │ │ │ │ htmlTreeBuilder.clearStackToTableBodyContext(); │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$13.InRow); │ │ │ │ return n4 != 0; │ │ │ │ } │ │ │ │ final String[] array = new String[n3]; │ │ │ │ array[0] = "th"; │ │ │ │ array[n4] = "td"; │ │ │ │ - if (StringUtil.in(name, array)) { │ │ │ │ + if (StringUtil.in(normalName, array)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ htmlTreeBuilder.processStartTag("tr"); │ │ │ │ n5 = (htmlTreeBuilder.process((Token)startTag) ? 1 : 0); │ │ │ │ break; │ │ │ │ } │ │ │ │ final String[] array2 = new String[6]; │ │ │ │ array2[0] = "caption"; │ │ │ │ array2[n4] = "col"; │ │ │ │ array2[n3] = "colgroup"; │ │ │ │ array2[n2] = "tbody"; │ │ │ │ array2[n] = "tfoot"; │ │ │ │ array2[5] = "thead"; │ │ │ │ - if (StringUtil.in(name, array2)) { │ │ │ │ + if (StringUtil.in(normalName, array2)) { │ │ │ │ n5 = (this.exitTableBody(token, htmlTreeBuilder) ? 1 : 0); │ │ │ │ break; │ │ │ │ } │ │ │ │ n5 = (this.anythingElse(token, htmlTreeBuilder) ? 1 : 0); │ │ │ │ break; │ │ │ │ } │ │ │ │ case 4: { │ │ │ │ - final String name2 = token.asEndTag().name(); │ │ │ │ + final String normalName2 = token.asEndTag().normalName(); │ │ │ │ final String[] array3 = new String[n2]; │ │ │ │ array3[0] = "tbody"; │ │ │ │ array3[n4] = "tfoot"; │ │ │ │ array3[n3] = "thead"; │ │ │ │ - if (StringUtil.in(name2, array3)) { │ │ │ │ - if (!htmlTreeBuilder.inTableScope(name2)) { │ │ │ │ + if (StringUtil.in(normalName2, array3)) { │ │ │ │ + if (!htmlTreeBuilder.inTableScope(normalName2)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ break; │ │ │ │ } │ │ │ │ htmlTreeBuilder.clearStackToTableBodyContext(); │ │ │ │ htmlTreeBuilder.pop(); │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$13.InTable); │ │ │ │ return n4 != 0; │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (name2.equals("table")) { │ │ │ │ + if (normalName2.equals("table")) { │ │ │ │ n5 = (this.exitTableBody(token, htmlTreeBuilder) ? 1 : 0); │ │ │ │ break; │ │ │ │ } │ │ │ │ final String[] array4 = new String[8]; │ │ │ │ array4[0] = "body"; │ │ │ │ array4[n4] = "caption"; │ │ │ │ array4[n3] = "col"; │ │ │ │ array4[n2] = "colgroup"; │ │ │ │ array4[n] = "html"; │ │ │ │ array4[5] = "td"; │ │ │ │ array4[6] = "th"; │ │ │ │ array4[7] = "tr"; │ │ │ │ - if (StringUtil.in(name2, array4)) { │ │ │ │ + if (StringUtil.in(normalName2, array4)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ break; │ │ │ │ } │ │ │ │ n5 = (this.anythingElse(token, htmlTreeBuilder) ? 1 : 0); │ │ │ │ break; │ │ │ │ } │ │ │ │ break; │ │ ├── org/jsoup/parser/HtmlTreeBuilderState$14.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -20,67 +20,67 @@ │ │ │ │ final int n = 4; │ │ │ │ final int n2 = 3; │ │ │ │ final int n3 = 2; │ │ │ │ final int n4 = 1; │ │ │ │ int n5 = 0; │ │ │ │ if (token.isStartTag()) { │ │ │ │ final Token$StartTag startTag = token.asStartTag(); │ │ │ │ - final String name = startTag.name(); │ │ │ │ + final String normalName = startTag.normalName(); │ │ │ │ final String[] array = new String[n3]; │ │ │ │ array[0] = "th"; │ │ │ │ array[n4] = "td"; │ │ │ │ - if (StringUtil.in(name, array)) { │ │ │ │ + if (StringUtil.in(normalName, array)) { │ │ │ │ htmlTreeBuilder.clearStackToTableRowContext(); │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$14.InCell); │ │ │ │ htmlTreeBuilder.insertMarkerToFormattingElements(); │ │ │ │ } │ │ │ │ else { │ │ │ │ final String[] array2 = new String[7]; │ │ │ │ array2[0] = "caption"; │ │ │ │ array2[n4] = "col"; │ │ │ │ array2[n3] = "colgroup"; │ │ │ │ array2[n2] = "tbody"; │ │ │ │ array2[n] = "tfoot"; │ │ │ │ array2[5] = "thead"; │ │ │ │ array2[6] = "tr"; │ │ │ │ - if (StringUtil.in(name, array2)) { │ │ │ │ + if (StringUtil.in(normalName, array2)) { │ │ │ │ n5 = (this.handleMissingTr(token, (TreeBuilder)htmlTreeBuilder) ? 1 : 0); │ │ │ │ return n5 != 0; │ │ │ │ } │ │ │ │ n5 = (this.anythingElse(token, htmlTreeBuilder) ? 1 : 0); │ │ │ │ return n5 != 0; │ │ │ │ } │ │ │ │ } │ │ │ │ else { │ │ │ │ if (!token.isEndTag()) { │ │ │ │ n5 = (this.anythingElse(token, htmlTreeBuilder) ? 1 : 0); │ │ │ │ return n5 != 0; │ │ │ │ } │ │ │ │ - final String name2 = token.asEndTag().name(); │ │ │ │ - if (name2.equals("tr")) { │ │ │ │ - if (!htmlTreeBuilder.inTableScope(name2)) { │ │ │ │ + final String normalName2 = token.asEndTag().normalName(); │ │ │ │ + if (normalName2.equals("tr")) { │ │ │ │ + if (!htmlTreeBuilder.inTableScope(normalName2)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return n5 != 0; │ │ │ │ } │ │ │ │ htmlTreeBuilder.clearStackToTableRowContext(); │ │ │ │ htmlTreeBuilder.pop(); │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$14.InTableBody); │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (name2.equals("table")) { │ │ │ │ + if (normalName2.equals("table")) { │ │ │ │ n5 = (this.handleMissingTr(token, (TreeBuilder)htmlTreeBuilder) ? 1 : 0); │ │ │ │ return n5 != 0; │ │ │ │ } │ │ │ │ final String[] array3 = new String[n2]; │ │ │ │ array3[0] = "tbody"; │ │ │ │ array3[n4] = "tfoot"; │ │ │ │ array3[n3] = "thead"; │ │ │ │ - if (StringUtil.in(name2, array3)) { │ │ │ │ - if (!htmlTreeBuilder.inTableScope(name2)) { │ │ │ │ + if (StringUtil.in(normalName2, array3)) { │ │ │ │ + if (!htmlTreeBuilder.inTableScope(normalName2)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return n5 != 0; │ │ │ │ } │ │ │ │ htmlTreeBuilder.processEndTag("tr"); │ │ │ │ n5 = (htmlTreeBuilder.process(token) ? 1 : 0); │ │ │ │ return n5 != 0; │ │ │ │ } │ │ │ │ @@ -89,15 +89,15 @@ │ │ │ │ array4[0] = "body"; │ │ │ │ array4[n4] = "caption"; │ │ │ │ array4[n3] = "col"; │ │ │ │ array4[n2] = "colgroup"; │ │ │ │ array4[n] = "html"; │ │ │ │ array4[5] = "td"; │ │ │ │ array4[6] = "th"; │ │ │ │ - if (StringUtil.in(name2, array4)) { │ │ │ │ + if (StringUtil.in(normalName2, array4)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return n5 != 0; │ │ │ │ } │ │ │ │ n5 = (this.anythingElse(token, htmlTreeBuilder) ? 1 : 0); │ │ │ │ return n5 != 0; │ │ │ │ } │ │ │ │ } │ │ ├── org/jsoup/parser/HtmlTreeBuilderState$15.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -24,53 +24,53 @@ │ │ │ │ boolean process(final Token token, final HtmlTreeBuilder htmlTreeBuilder) { │ │ │ │ final int n = 4; │ │ │ │ final int n2 = 3; │ │ │ │ final int n3 = 2; │ │ │ │ final int n4 = 1; │ │ │ │ int n5 = 0; │ │ │ │ if (token.isEndTag()) { │ │ │ │ - final String name = token.asEndTag().name(); │ │ │ │ + final String normalName = token.asEndTag().normalName(); │ │ │ │ final String[] array = new String[n3]; │ │ │ │ array[0] = "td"; │ │ │ │ array[n4] = "th"; │ │ │ │ - if (StringUtil.in(name, array)) { │ │ │ │ - if (!htmlTreeBuilder.inTableScope(name)) { │ │ │ │ + if (StringUtil.in(normalName, array)) { │ │ │ │ + if (!htmlTreeBuilder.inTableScope(normalName)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$15.InRow); │ │ │ │ } │ │ │ │ else { │ │ │ │ htmlTreeBuilder.generateImpliedEndTags(); │ │ │ │ - if (!htmlTreeBuilder.currentElement().nodeName().equals(name)) { │ │ │ │ + if (!htmlTreeBuilder.currentElement().nodeName().equals(normalName)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ } │ │ │ │ - htmlTreeBuilder.popStackToClose(name); │ │ │ │ + htmlTreeBuilder.popStackToClose(normalName); │ │ │ │ htmlTreeBuilder.clearFormattingElementsToLastMarker(); │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$15.InRow); │ │ │ │ n5 = n4; │ │ │ │ } │ │ │ │ } │ │ │ │ else { │ │ │ │ final String[] array2 = new String[5]; │ │ │ │ array2[0] = "body"; │ │ │ │ array2[n4] = "caption"; │ │ │ │ array2[n3] = "col"; │ │ │ │ array2[n2] = "colgroup"; │ │ │ │ array2[n] = "html"; │ │ │ │ - if (StringUtil.in(name, array2)) { │ │ │ │ + if (StringUtil.in(normalName, array2)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ } │ │ │ │ else { │ │ │ │ final String[] array3 = new String[5]; │ │ │ │ array3[0] = "table"; │ │ │ │ array3[n4] = "tbody"; │ │ │ │ array3[n3] = "tfoot"; │ │ │ │ array3[n2] = "thead"; │ │ │ │ array3[n] = "tr"; │ │ │ │ - if (StringUtil.in(name, array3)) { │ │ │ │ - if (!htmlTreeBuilder.inTableScope(name)) { │ │ │ │ + if (StringUtil.in(normalName, array3)) { │ │ │ │ + if (!htmlTreeBuilder.inTableScope(normalName)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ } │ │ │ │ else { │ │ │ │ this.closeCell(htmlTreeBuilder); │ │ │ │ n5 = (htmlTreeBuilder.process(token) ? 1 : 0); │ │ │ │ } │ │ │ │ } │ │ │ │ @@ -78,26 +78,26 @@ │ │ │ │ n5 = (this.anythingElse(token, htmlTreeBuilder) ? 1 : 0); │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ else { │ │ │ │ if (token.isStartTag()) { │ │ │ │ - final String name2 = token.asStartTag().name(); │ │ │ │ + final String normalName2 = token.asStartTag().normalName(); │ │ │ │ final String[] array4 = new String[9]; │ │ │ │ array4[0] = "caption"; │ │ │ │ array4[n4] = "col"; │ │ │ │ array4[n3] = "colgroup"; │ │ │ │ array4[n2] = "tbody"; │ │ │ │ array4[n] = "td"; │ │ │ │ array4[5] = "tfoot"; │ │ │ │ array4[6] = "th"; │ │ │ │ array4[7] = "thead"; │ │ │ │ array4[8] = "tr"; │ │ │ │ - if (StringUtil.in(name2, array4)) { │ │ │ │ + if (StringUtil.in(normalName2, array4)) { │ │ │ │ if (!htmlTreeBuilder.inTableScope("td") && !htmlTreeBuilder.inTableScope("th")) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return n5 != 0; │ │ │ │ } │ │ │ │ this.closeCell(htmlTreeBuilder); │ │ │ │ n5 = (htmlTreeBuilder.process(token) ? 1 : 0); │ │ │ │ return n5 != 0; │ │ ├── org/jsoup/parser/HtmlTreeBuilderState$16.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -36,92 +36,94 @@ │ │ │ │ } │ │ │ │ case 2: { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ break; │ │ │ │ } │ │ │ │ case 3: { │ │ │ │ final Token$StartTag startTag = token.asStartTag(); │ │ │ │ - final String name = startTag.name(); │ │ │ │ - if (name.equals("html")) { │ │ │ │ + final String normalName = startTag.normalName(); │ │ │ │ + if (normalName.equals("html")) { │ │ │ │ n2 = (htmlTreeBuilder.process((Token)startTag, HtmlTreeBuilderState$16.InBody) ? 1 : 0); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (name.equals("option")) { │ │ │ │ - htmlTreeBuilder.processEndTag("option"); │ │ │ │ + if (normalName.equals("option")) { │ │ │ │ + if (htmlTreeBuilder.currentElement().nodeName().equals("option")) { │ │ │ │ + htmlTreeBuilder.processEndTag("option"); │ │ │ │ + } │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ return n != 0; │ │ │ │ } │ │ │ │ - if (name.equals("optgroup")) { │ │ │ │ + if (normalName.equals("optgroup")) { │ │ │ │ if (htmlTreeBuilder.currentElement().nodeName().equals("option")) { │ │ │ │ htmlTreeBuilder.processEndTag("option"); │ │ │ │ } │ │ │ │ else if (htmlTreeBuilder.currentElement().nodeName().equals("optgroup")) { │ │ │ │ htmlTreeBuilder.processEndTag("optgroup"); │ │ │ │ } │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ return n != 0; │ │ │ │ } │ │ │ │ - if (name.equals("select")) { │ │ │ │ + if (normalName.equals("select")) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ n2 = (htmlTreeBuilder.processEndTag("select") ? 1 : 0); │ │ │ │ break; │ │ │ │ } │ │ │ │ final String[] array = { "input", null, null }; │ │ │ │ array[n] = "keygen"; │ │ │ │ array[2] = "textarea"; │ │ │ │ - if (StringUtil.in(name, array)) { │ │ │ │ + if (StringUtil.in(normalName, array)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ if (htmlTreeBuilder.inSelectScope("select")) { │ │ │ │ htmlTreeBuilder.processEndTag("select"); │ │ │ │ n2 = (htmlTreeBuilder.process((Token)startTag) ? 1 : 0); │ │ │ │ break; │ │ │ │ } │ │ │ │ break; │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (name.equals("script")) { │ │ │ │ + if (normalName.equals("script")) { │ │ │ │ n2 = (htmlTreeBuilder.process(token, HtmlTreeBuilderState$16.InHead) ? 1 : 0); │ │ │ │ break; │ │ │ │ } │ │ │ │ n2 = (this.anythingElse(token, htmlTreeBuilder) ? 1 : 0); │ │ │ │ break; │ │ │ │ } │ │ │ │ break; │ │ │ │ } │ │ │ │ case 4: { │ │ │ │ - final String name2 = token.asEndTag().name(); │ │ │ │ - if (name2.equals("optgroup")) { │ │ │ │ + final String normalName2 = token.asEndTag().normalName(); │ │ │ │ + if (normalName2.equals("optgroup")) { │ │ │ │ if (htmlTreeBuilder.currentElement().nodeName().equals("option") && htmlTreeBuilder.aboveOnStack(htmlTreeBuilder.currentElement()) != null && htmlTreeBuilder.aboveOnStack(htmlTreeBuilder.currentElement()).nodeName().equals("optgroup")) { │ │ │ │ htmlTreeBuilder.processEndTag("option"); │ │ │ │ } │ │ │ │ if (htmlTreeBuilder.currentElement().nodeName().equals("optgroup")) { │ │ │ │ htmlTreeBuilder.pop(); │ │ │ │ return n != 0; │ │ │ │ } │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return n != 0; │ │ │ │ } │ │ │ │ - else if (name2.equals("option")) { │ │ │ │ + else if (normalName2.equals("option")) { │ │ │ │ if (htmlTreeBuilder.currentElement().nodeName().equals("option")) { │ │ │ │ htmlTreeBuilder.pop(); │ │ │ │ return n != 0; │ │ │ │ } │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return n != 0; │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (!name2.equals("select")) { │ │ │ │ + if (!normalName2.equals("select")) { │ │ │ │ n2 = (this.anythingElse(token, htmlTreeBuilder) ? 1 : 0); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (!htmlTreeBuilder.inSelectScope(name2)) { │ │ │ │ + if (!htmlTreeBuilder.inSelectScope(normalName2)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ break; │ │ │ │ } │ │ │ │ - htmlTreeBuilder.popStackToClose(name2); │ │ │ │ + htmlTreeBuilder.popStackToClose(normalName2); │ │ │ │ htmlTreeBuilder.resetInsertionMode(); │ │ │ │ return n != 0; │ │ │ │ } │ │ │ │ break; │ │ │ │ } │ │ │ │ case 6: { │ │ │ │ if (!htmlTreeBuilder.currentElement().nodeName().equals("html")) { │ │ ├── org/jsoup/parser/HtmlTreeBuilderState$17.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -14,46 +14,46 @@ │ │ │ │ final int n3 = 2; │ │ │ │ final int n4 = 1; │ │ │ │ boolean b = false; │ │ │ │ Label_0153: { │ │ │ │ if (!token.isStartTag()) { │ │ │ │ break Label_0153; │ │ │ │ } │ │ │ │ - final String name = token.asStartTag().name(); │ │ │ │ + final String normalName = token.asStartTag().normalName(); │ │ │ │ final String[] array = new String[8]; │ │ │ │ array[0] = "caption"; │ │ │ │ array[n4] = "table"; │ │ │ │ array[n3] = "tbody"; │ │ │ │ array[n2] = "tfoot"; │ │ │ │ array[n] = "thead"; │ │ │ │ array[5] = "tr"; │ │ │ │ array[6] = "td"; │ │ │ │ array[7] = "th"; │ │ │ │ - if (!StringUtil.in(name, array)) { │ │ │ │ + if (!StringUtil.in(normalName, array)) { │ │ │ │ break Label_0153; │ │ │ │ } │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ htmlTreeBuilder.processEndTag("select"); │ │ │ │ b = htmlTreeBuilder.process(token); │ │ │ │ return b; │ │ │ │ } │ │ │ │ if (token.isEndTag()) { │ │ │ │ - final String name2 = token.asEndTag().name(); │ │ │ │ + final String normalName2 = token.asEndTag().normalName(); │ │ │ │ final String[] array2 = new String[8]; │ │ │ │ array2[0] = "caption"; │ │ │ │ array2[n4] = "table"; │ │ │ │ array2[n3] = "tbody"; │ │ │ │ array2[n2] = "tfoot"; │ │ │ │ array2[n] = "thead"; │ │ │ │ array2[5] = "tr"; │ │ │ │ array2[6] = "td"; │ │ │ │ array2[7] = "th"; │ │ │ │ - if (StringUtil.in(name2, array2)) { │ │ │ │ + if (StringUtil.in(normalName2, array2)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ - if (htmlTreeBuilder.inTableScope(token.asEndTag().name())) { │ │ │ │ + if (htmlTreeBuilder.inTableScope(token.asEndTag().normalName())) { │ │ │ │ htmlTreeBuilder.processEndTag("select"); │ │ │ │ b = htmlTreeBuilder.process(token); │ │ │ │ return b; │ │ │ │ } │ │ │ │ return b; │ │ │ │ } │ │ │ │ } │ │ ├── org/jsoup/parser/HtmlTreeBuilderState$18.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -16,19 +16,19 @@ │ │ │ │ htmlTreeBuilder.insert(token.asComment()); │ │ │ │ } │ │ │ │ else { │ │ │ │ if (token.isDoctype()) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return b; │ │ │ │ } │ │ │ │ - if (token.isStartTag() && token.asStartTag().name().equals("html")) { │ │ │ │ + if (token.isStartTag() && token.asStartTag().normalName().equals("html")) { │ │ │ │ b = htmlTreeBuilder.process(token, HtmlTreeBuilderState$18.InBody); │ │ │ │ return b; │ │ │ │ } │ │ │ │ - if (token.isEndTag() && token.asEndTag().name().equals("html")) { │ │ │ │ + if (token.isEndTag() && token.asEndTag().normalName().equals("html")) { │ │ │ │ if (htmlTreeBuilder.isFragmentParsing()) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return b; │ │ │ │ } │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$18.AfterAfterBody); │ │ │ │ } │ │ │ │ else if (!token.isEOF()) { │ │ ├── org/jsoup/parser/HtmlTreeBuilderState$19.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -18,35 +18,35 @@ │ │ │ │ else { │ │ │ │ if (token.isDoctype()) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return b2; │ │ │ │ } │ │ │ │ if (token.isStartTag()) { │ │ │ │ final Token$StartTag startTag = token.asStartTag(); │ │ │ │ - final String name = startTag.name(); │ │ │ │ - if (name.equals("html")) { │ │ │ │ + final String normalName = startTag.normalName(); │ │ │ │ + if (normalName.equals("html")) { │ │ │ │ b2 = htmlTreeBuilder.process((Token)startTag, HtmlTreeBuilderState$19.InBody); │ │ │ │ return b2; │ │ │ │ } │ │ │ │ - if (name.equals("frameset")) { │ │ │ │ + if (normalName.equals("frameset")) { │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ } │ │ │ │ - else if (name.equals("frame")) { │ │ │ │ + else if (normalName.equals("frame")) { │ │ │ │ htmlTreeBuilder.insertEmpty(startTag); │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (name.equals("noframes")) { │ │ │ │ + if (normalName.equals("noframes")) { │ │ │ │ b2 = htmlTreeBuilder.process((Token)startTag, HtmlTreeBuilderState$19.InHead); │ │ │ │ return b2; │ │ │ │ } │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return b2; │ │ │ │ } │ │ │ │ } │ │ │ │ - else if (token.isEndTag() && token.asEndTag().name().equals("frameset")) { │ │ │ │ + else if (token.isEndTag() && token.asEndTag().normalName().equals("frameset")) { │ │ │ │ if (htmlTreeBuilder.currentElement().nodeName().equals("html")) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return b2; │ │ │ │ } │ │ │ │ htmlTreeBuilder.pop(); │ │ │ │ if (!htmlTreeBuilder.isFragmentParsing() && !htmlTreeBuilder.currentElement().nodeName().equals("frameset")) { │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$19.AfterFrameset); │ │ ├── org/jsoup/parser/HtmlTreeBuilderState$1.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -7,28 +7,34 @@ │ │ │ │ │ │ │ │ enum HtmlTreeBuilderState$1 │ │ │ │ { │ │ │ │ HtmlTreeBuilderState$1(final String s, final int n) { │ │ │ │ } │ │ │ │ │ │ │ │ boolean process(final Token token, final HtmlTreeBuilder htmlTreeBuilder) { │ │ │ │ - boolean process = true; │ │ │ │ - if (!HtmlTreeBuilderState.access$100(token)) { │ │ │ │ + final boolean b = true; │ │ │ │ + boolean process; │ │ │ │ + if (HtmlTreeBuilderState.access$100(token)) { │ │ │ │ + process = b; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ if (token.isComment()) { │ │ │ │ htmlTreeBuilder.insert(token.asComment()); │ │ │ │ } │ │ │ │ - else if (token.isDoctype()) { │ │ │ │ + else { │ │ │ │ + if (!token.isDoctype()) { │ │ │ │ + htmlTreeBuilder.transition(HtmlTreeBuilderState$1.BeforeHtml); │ │ │ │ + process = htmlTreeBuilder.process(token); │ │ │ │ + return process; │ │ │ │ + } │ │ │ │ final Token$Doctype doctype = token.asDoctype(); │ │ │ │ - htmlTreeBuilder.getDocument().appendChild((Node)new DocumentType(doctype.getName(), doctype.getPublicIdentifier(), doctype.getSystemIdentifier(), htmlTreeBuilder.getBaseUri())); │ │ │ │ + htmlTreeBuilder.getDocument().appendChild((Node)new DocumentType(htmlTreeBuilder.settings.normalizeTag(doctype.getName()), doctype.getPubSysKey(), doctype.getPublicIdentifier(), doctype.getSystemIdentifier(), htmlTreeBuilder.getBaseUri())); │ │ │ │ if (doctype.isForceQuirks()) { │ │ │ │ htmlTreeBuilder.getDocument().quirksMode(Document$QuirksMode.quirks); │ │ │ │ } │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$1.BeforeHtml); │ │ │ │ } │ │ │ │ - else { │ │ │ │ - htmlTreeBuilder.transition(HtmlTreeBuilderState$1.BeforeHtml); │ │ │ │ - process = htmlTreeBuilder.process(token); │ │ │ │ - } │ │ │ │ + process = b; │ │ │ │ } │ │ │ │ return process; │ │ │ │ } │ │ │ │ } │ │ ├── org/jsoup/parser/HtmlTreeBuilderState$20.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -15,23 +15,23 @@ │ │ │ │ htmlTreeBuilder.insert(token.asComment()); │ │ │ │ } │ │ │ │ else { │ │ │ │ if (token.isDoctype()) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return b; │ │ │ │ } │ │ │ │ - if (token.isStartTag() && token.asStartTag().name().equals("html")) { │ │ │ │ + if (token.isStartTag() && token.asStartTag().normalName().equals("html")) { │ │ │ │ b = htmlTreeBuilder.process(token, HtmlTreeBuilderState$20.InBody); │ │ │ │ return b; │ │ │ │ } │ │ │ │ - if (token.isEndTag() && token.asEndTag().name().equals("html")) { │ │ │ │ + if (token.isEndTag() && token.asEndTag().normalName().equals("html")) { │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$20.AfterAfterFrameset); │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (token.isStartTag() && token.asStartTag().name().equals("noframes")) { │ │ │ │ + if (token.isStartTag() && token.asStartTag().normalName().equals("noframes")) { │ │ │ │ b = htmlTreeBuilder.process(token, HtmlTreeBuilderState$20.InHead); │ │ │ │ return b; │ │ │ │ } │ │ │ │ if (!token.isEOF()) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return b; │ │ │ │ } │ │ ├── org/jsoup/parser/HtmlTreeBuilderState$21.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -7,15 +7,15 @@ │ │ │ │ } │ │ │ │ │ │ │ │ boolean process(final Token token, final HtmlTreeBuilder htmlTreeBuilder) { │ │ │ │ if (token.isComment()) { │ │ │ │ htmlTreeBuilder.insert(token.asComment()); │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (token.isDoctype() || HtmlTreeBuilderState.access$100(token) || (token.isStartTag() && token.asStartTag().name().equals("html"))) { │ │ │ │ + if (token.isDoctype() || HtmlTreeBuilderState.access$100(token) || (token.isStartTag() && token.asStartTag().normalName().equals("html"))) { │ │ │ │ return htmlTreeBuilder.process(token, HtmlTreeBuilderState$21.InBody); │ │ │ │ } │ │ │ │ if (!token.isEOF()) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$21.InBody); │ │ │ │ return htmlTreeBuilder.process(token); │ │ │ │ } │ │ ├── org/jsoup/parser/HtmlTreeBuilderState$22.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -7,19 +7,19 @@ │ │ │ │ } │ │ │ │ │ │ │ │ boolean process(final Token token, final HtmlTreeBuilder htmlTreeBuilder) { │ │ │ │ if (token.isComment()) { │ │ │ │ htmlTreeBuilder.insert(token.asComment()); │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (token.isDoctype() || HtmlTreeBuilderState.access$100(token) || (token.isStartTag() && token.asStartTag().name().equals("html"))) { │ │ │ │ + if (token.isDoctype() || HtmlTreeBuilderState.access$100(token) || (token.isStartTag() && token.asStartTag().normalName().equals("html"))) { │ │ │ │ return htmlTreeBuilder.process(token, HtmlTreeBuilderState$22.InBody); │ │ │ │ } │ │ │ │ if (!token.isEOF()) { │ │ │ │ - if (token.isStartTag() && token.asStartTag().name().equals("noframes")) { │ │ │ │ + if (token.isStartTag() && token.asStartTag().normalName().equals("noframes")) { │ │ │ │ return htmlTreeBuilder.process(token, HtmlTreeBuilderState$22.InHead); │ │ │ │ } │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return false; │ │ │ │ } │ │ │ │ } │ │ │ │ return true; │ │ ├── org/jsoup/parser/HtmlTreeBuilderState$2.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -25,27 +25,27 @@ │ │ │ │ htmlTreeBuilder.insert(token.asComment()); │ │ │ │ } │ │ │ │ else { │ │ │ │ if (HtmlTreeBuilderState.access$100(token)) { │ │ │ │ n2 = n; │ │ │ │ return n2 != 0; │ │ │ │ } │ │ │ │ - if (token.isStartTag() && token.asStartTag().name().equals("html")) { │ │ │ │ + if (token.isStartTag() && token.asStartTag().normalName().equals("html")) { │ │ │ │ htmlTreeBuilder.insert(token.asStartTag()); │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$2.BeforeHead); │ │ │ │ } │ │ │ │ else { │ │ │ │ if (token.isEndTag()) { │ │ │ │ - final String name = token.asEndTag().name(); │ │ │ │ + final String normalName = token.asEndTag().normalName(); │ │ │ │ final String[] array = new String[4]; │ │ │ │ array[0] = "head"; │ │ │ │ array[n] = "body"; │ │ │ │ array[2] = "html"; │ │ │ │ array[3] = "br"; │ │ │ │ - if (StringUtil.in(name, array)) { │ │ │ │ + if (StringUtil.in(normalName, array)) { │ │ │ │ n2 = (this.anythingElse(token, htmlTreeBuilder) ? 1 : 0); │ │ │ │ return n2 != 0; │ │ │ │ } │ │ │ │ } │ │ │ │ if (token.isEndTag()) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return n2 != 0; │ │ ├── org/jsoup/parser/HtmlTreeBuilderState$3.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -14,30 +14,30 @@ │ │ │ │ if (token.isComment()) { │ │ │ │ htmlTreeBuilder.insert(token.asComment()); │ │ │ │ } │ │ │ │ else if (token.isDoctype()) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ n = 0; │ │ │ │ } │ │ │ │ - else if (token.isStartTag() && token.asStartTag().name().equals("html")) { │ │ │ │ + else if (token.isStartTag() && token.asStartTag().normalName().equals("html")) { │ │ │ │ n = (HtmlTreeBuilderState$3.InBody.process(token, htmlTreeBuilder) ? 1 : 0); │ │ │ │ } │ │ │ │ - else if (token.isStartTag() && token.asStartTag().name().equals("head")) { │ │ │ │ + else if (token.isStartTag() && token.asStartTag().normalName().equals("head")) { │ │ │ │ htmlTreeBuilder.setHeadElement(htmlTreeBuilder.insert(token.asStartTag())); │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$3.InHead); │ │ │ │ } │ │ │ │ else { │ │ │ │ if (token.isEndTag()) { │ │ │ │ - final String name = token.asEndTag().name(); │ │ │ │ + final String normalName = token.asEndTag().normalName(); │ │ │ │ final String[] array = new String[4]; │ │ │ │ array[0] = "head"; │ │ │ │ array[n] = "body"; │ │ │ │ array[2] = "html"; │ │ │ │ array[3] = "br"; │ │ │ │ - if (StringUtil.in(name, array)) { │ │ │ │ + if (StringUtil.in(normalName, array)) { │ │ │ │ htmlTreeBuilder.processStartTag("head"); │ │ │ │ n = (htmlTreeBuilder.process(token) ? 1 : 0); │ │ │ │ return n != 0; │ │ │ │ } │ │ │ │ } │ │ │ │ if (token.isEndTag()) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ ├── org/jsoup/parser/HtmlTreeBuilderState$4.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -34,83 +34,83 @@ │ │ │ │ case 2: { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ n3 = 0; │ │ │ │ break; │ │ │ │ } │ │ │ │ case 3: { │ │ │ │ final Token$StartTag startTag = token.asStartTag(); │ │ │ │ - final String name = startTag.name(); │ │ │ │ - if (name.equals("html")) { │ │ │ │ + final String normalName = startTag.normalName(); │ │ │ │ + if (normalName.equals("html")) { │ │ │ │ n3 = (HtmlTreeBuilderState$4.InBody.process(token, htmlTreeBuilder) ? 1 : 0); │ │ │ │ break; │ │ │ │ } │ │ │ │ final String[] array = new String[5]; │ │ │ │ array[0] = "base"; │ │ │ │ array[n3] = "basefont"; │ │ │ │ array[n2] = "bgsound"; │ │ │ │ array[n] = "command"; │ │ │ │ array[4] = "link"; │ │ │ │ - if (StringUtil.in(name, array)) { │ │ │ │ + if (StringUtil.in(normalName, array)) { │ │ │ │ final Element insertEmpty = htmlTreeBuilder.insertEmpty(startTag); │ │ │ │ - if (name.equals("base") && insertEmpty.hasAttr("href")) { │ │ │ │ + if (normalName.equals("base") && insertEmpty.hasAttr("href")) { │ │ │ │ htmlTreeBuilder.maybeSetBaseUri(insertEmpty); │ │ │ │ break; │ │ │ │ } │ │ │ │ break; │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (name.equals("meta")) { │ │ │ │ + if (normalName.equals("meta")) { │ │ │ │ htmlTreeBuilder.insertEmpty(startTag); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (name.equals("title")) { │ │ │ │ + if (normalName.equals("title")) { │ │ │ │ HtmlTreeBuilderState.access$200(startTag, htmlTreeBuilder); │ │ │ │ break; │ │ │ │ } │ │ │ │ final String[] array2 = new String[n2]; │ │ │ │ array2[0] = "noframes"; │ │ │ │ array2[n3] = "style"; │ │ │ │ - if (StringUtil.in(name, array2)) { │ │ │ │ + if (StringUtil.in(normalName, array2)) { │ │ │ │ HtmlTreeBuilderState.access$300(startTag, htmlTreeBuilder); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (name.equals("noscript")) { │ │ │ │ + if (normalName.equals("noscript")) { │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$4.InHeadNoscript); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (name.equals("script")) { │ │ │ │ + if (normalName.equals("script")) { │ │ │ │ htmlTreeBuilder.tokeniser.transition(TokeniserState.ScriptData); │ │ │ │ htmlTreeBuilder.markInsertionMode(); │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$4.Text); │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (name.equals("head")) { │ │ │ │ + if (normalName.equals("head")) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ n3 = 0; │ │ │ │ break; │ │ │ │ } │ │ │ │ n3 = (this.anythingElse(token, (TreeBuilder)htmlTreeBuilder) ? 1 : 0); │ │ │ │ break; │ │ │ │ } │ │ │ │ break; │ │ │ │ } │ │ │ │ case 4: { │ │ │ │ - final String name2 = token.asEndTag().name(); │ │ │ │ - if (name2.equals("head")) { │ │ │ │ + final String normalName2 = token.asEndTag().normalName(); │ │ │ │ + if (normalName2.equals("head")) { │ │ │ │ htmlTreeBuilder.pop(); │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$4.AfterHead); │ │ │ │ break; │ │ │ │ } │ │ │ │ final String[] array3 = new String[n]; │ │ │ │ array3[0] = "body"; │ │ │ │ array3[n3] = "html"; │ │ │ │ array3[n2] = "br"; │ │ │ │ - if (StringUtil.in(name2, array3)) { │ │ │ │ + if (StringUtil.in(normalName2, array3)) { │ │ │ │ n3 = (this.anythingElse(token, (TreeBuilder)htmlTreeBuilder) ? 1 : 0); │ │ │ │ break; │ │ │ │ } │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ n3 = 0; │ │ │ │ break; │ │ │ │ } │ │ ├── org/jsoup/parser/HtmlTreeBuilderState$5.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -18,44 +18,44 @@ │ │ │ │ final int n = 2; │ │ │ │ final int n2 = 1; │ │ │ │ int n3 = 0; │ │ │ │ if (token.isDoctype()) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (token.isStartTag() && token.asStartTag().name().equals("html")) { │ │ │ │ + if (token.isStartTag() && token.asStartTag().normalName().equals("html")) { │ │ │ │ n3 = (htmlTreeBuilder.process(token, HtmlTreeBuilderState$5.InBody) ? 1 : 0); │ │ │ │ return n3 != 0; │ │ │ │ } │ │ │ │ - if (!token.isEndTag() || !token.asEndTag().name().equals("noscript")) { │ │ │ │ + if (!token.isEndTag() || !token.asEndTag().normalName().equals("noscript")) { │ │ │ │ if (!HtmlTreeBuilderState.access$100(token) && !token.isComment()) { │ │ │ │ if (token.isStartTag()) { │ │ │ │ - final String name = token.asStartTag().name(); │ │ │ │ + final String normalName = token.asStartTag().normalName(); │ │ │ │ final String[] array = new String[6]; │ │ │ │ array[0] = "basefont"; │ │ │ │ array[n2] = "bgsound"; │ │ │ │ array[n] = "link"; │ │ │ │ array[3] = "meta"; │ │ │ │ array[4] = "noframes"; │ │ │ │ array[5] = "style"; │ │ │ │ - if (StringUtil.in(name, array)) { │ │ │ │ + if (StringUtil.in(normalName, array)) { │ │ │ │ return htmlTreeBuilder.process(token, HtmlTreeBuilderState$5.InHead); │ │ │ │ } │ │ │ │ } │ │ │ │ - if (token.isEndTag() && token.asEndTag().name().equals("br")) { │ │ │ │ + if (token.isEndTag() && token.asEndTag().normalName().equals("br")) { │ │ │ │ n3 = (this.anythingElse(token, htmlTreeBuilder) ? 1 : 0); │ │ │ │ return n3 != 0; │ │ │ │ } │ │ │ │ Label_0396: { │ │ │ │ if (token.isStartTag()) { │ │ │ │ - final String name2 = token.asStartTag().name(); │ │ │ │ + final String normalName2 = token.asStartTag().normalName(); │ │ │ │ final String[] array2 = new String[n]; │ │ │ │ array2[0] = "head"; │ │ │ │ array2[n2] = "noscript"; │ │ │ │ - if (StringUtil.in(name2, array2)) { │ │ │ │ + if (StringUtil.in(normalName2, array2)) { │ │ │ │ break Label_0396; │ │ │ │ } │ │ │ │ } │ │ │ │ if (!token.isEndTag()) { │ │ │ │ n3 = (this.anythingElse(token, htmlTreeBuilder) ? 1 : 0); │ │ │ │ return n3 != 0; │ │ │ │ } │ │ ├── org/jsoup/parser/HtmlTreeBuilderState$6.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -26,61 +26,61 @@ │ │ │ │ htmlTreeBuilder.insert(token.asComment()); │ │ │ │ } │ │ │ │ else if (token.isDoctype()) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ } │ │ │ │ else if (token.isStartTag()) { │ │ │ │ final Token$StartTag startTag = token.asStartTag(); │ │ │ │ - final String name = startTag.name(); │ │ │ │ - if (name.equals("html")) { │ │ │ │ + final String normalName = startTag.normalName(); │ │ │ │ + if (normalName.equals("html")) { │ │ │ │ process = (htmlTreeBuilder.process(token, HtmlTreeBuilderState$6.InBody) ? 1 : 0); │ │ │ │ return process != 0; │ │ │ │ } │ │ │ │ - if (name.equals("body")) { │ │ │ │ + if (normalName.equals("body")) { │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ htmlTreeBuilder.framesetOk(false); │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$6.InBody); │ │ │ │ } │ │ │ │ - else if (name.equals("frameset")) { │ │ │ │ + else if (normalName.equals("frameset")) { │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$6.InFrameset); │ │ │ │ } │ │ │ │ else { │ │ │ │ final String[] array = new String[9]; │ │ │ │ array[0] = "base"; │ │ │ │ array[n2] = "basefont"; │ │ │ │ array[n] = "bgsound"; │ │ │ │ array[3] = "link"; │ │ │ │ array[4] = "meta"; │ │ │ │ array[5] = "noframes"; │ │ │ │ array[6] = "script"; │ │ │ │ array[7] = "style"; │ │ │ │ array[8] = "title"; │ │ │ │ - if (StringUtil.in(name, array)) { │ │ │ │ + if (StringUtil.in(normalName, array)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ final Element headElement = htmlTreeBuilder.getHeadElement(); │ │ │ │ htmlTreeBuilder.push(headElement); │ │ │ │ htmlTreeBuilder.process(token, HtmlTreeBuilderState$6.InHead); │ │ │ │ htmlTreeBuilder.removeFromStack(headElement); │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (name.equals("head")) { │ │ │ │ + if (normalName.equals("head")) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return process != 0; │ │ │ │ } │ │ │ │ this.anythingElse(token, htmlTreeBuilder); │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ else if (token.isEndTag()) { │ │ │ │ - final String name2 = token.asEndTag().name(); │ │ │ │ + final String normalName2 = token.asEndTag().normalName(); │ │ │ │ final String[] array2 = new String[n]; │ │ │ │ array2[0] = "body"; │ │ │ │ array2[n2] = "html"; │ │ │ │ - if (!StringUtil.in(name2, array2)) { │ │ │ │ + if (!StringUtil.in(normalName2, array2)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return process != 0; │ │ │ │ } │ │ │ │ this.anythingElse(token, htmlTreeBuilder); │ │ │ │ } │ │ │ │ else { │ │ │ │ this.anythingElse(token, htmlTreeBuilder); │ │ ├── org/jsoup/parser/HtmlTreeBuilderState$7.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -61,48 +61,48 @@ │ │ │ │ } │ │ │ │ case 2: { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return false; │ │ │ │ } │ │ │ │ case 3: { │ │ │ │ final Token$StartTag startTag = token.asStartTag(); │ │ │ │ - final String name = startTag.name(); │ │ │ │ - if (name.equals("a")) { │ │ │ │ + final String normalName = startTag.normalName(); │ │ │ │ + if (normalName.equals("a")) { │ │ │ │ if (htmlTreeBuilder.getActiveFormattingElement("a") != null) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ htmlTreeBuilder.processEndTag("a"); │ │ │ │ final Element fromStack = htmlTreeBuilder.getFromStack("a"); │ │ │ │ if (fromStack != null) { │ │ │ │ htmlTreeBuilder.removeFromActiveFormattingElements(fromStack); │ │ │ │ htmlTreeBuilder.removeFromStack(fromStack); │ │ │ │ } │ │ │ │ } │ │ │ │ htmlTreeBuilder.reconstructFormattingElements(); │ │ │ │ htmlTreeBuilder.pushActiveFormattingElements(htmlTreeBuilder.insert(startTag)); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (StringUtil.inSorted(name, HtmlTreeBuilderState$Constants.access$500())) { │ │ │ │ + if (StringUtil.inSorted(normalName, HtmlTreeBuilderState$Constants.access$500())) { │ │ │ │ htmlTreeBuilder.reconstructFormattingElements(); │ │ │ │ htmlTreeBuilder.insertEmpty(startTag); │ │ │ │ htmlTreeBuilder.framesetOk(false); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (StringUtil.inSorted(name, HtmlTreeBuilderState$Constants.access$600())) { │ │ │ │ + if (StringUtil.inSorted(normalName, HtmlTreeBuilderState$Constants.access$600())) { │ │ │ │ if (htmlTreeBuilder.inButtonScope("p")) { │ │ │ │ htmlTreeBuilder.processEndTag("p"); │ │ │ │ } │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (name.equals("span")) { │ │ │ │ + if (normalName.equals("span")) { │ │ │ │ htmlTreeBuilder.reconstructFormattingElements(); │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (name.equals("li")) { │ │ │ │ + if (normalName.equals("li")) { │ │ │ │ htmlTreeBuilder.framesetOk(false); │ │ │ │ final ArrayList stack = htmlTreeBuilder.getStack(); │ │ │ │ for (int i = stack.size() - 1; i > 0; --i) { │ │ │ │ final Element element = (Element)stack.get(i); │ │ │ │ if (element.nodeName().equals("li")) { │ │ │ │ htmlTreeBuilder.processEndTag("li"); │ │ │ │ break; │ │ │ │ @@ -113,43 +113,43 @@ │ │ │ │ } │ │ │ │ if (htmlTreeBuilder.inButtonScope("p")) { │ │ │ │ htmlTreeBuilder.processEndTag("p"); │ │ │ │ } │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (name.equals("html")) { │ │ │ │ + if (normalName.equals("html")) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ final Element element2 = (Element)htmlTreeBuilder.getStack().get(0); │ │ │ │ for (final Attribute attribute : startTag.getAttributes()) { │ │ │ │ if (!element2.hasAttr(attribute.getKey())) { │ │ │ │ element2.attributes().put(attribute); │ │ │ │ } │ │ │ │ } │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (StringUtil.inSorted(name, HtmlTreeBuilderState$Constants.access$800())) { │ │ │ │ + if (StringUtil.inSorted(normalName, HtmlTreeBuilderState$Constants.access$800())) { │ │ │ │ return htmlTreeBuilder.process(token, HtmlTreeBuilderState$7.InHead); │ │ │ │ } │ │ │ │ - if (name.equals("body")) { │ │ │ │ + if (normalName.equals("body")) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ final ArrayList stack2 = htmlTreeBuilder.getStack(); │ │ │ │ if (stack2.size() == 1 || (stack2.size() > 2 && !((Element)stack2.get(1)).nodeName().equals("body"))) { │ │ │ │ return false; │ │ │ │ } │ │ │ │ htmlTreeBuilder.framesetOk(false); │ │ │ │ final Element element3 = (Element)stack2.get(1); │ │ │ │ for (final Attribute attribute2 : startTag.getAttributes()) { │ │ │ │ if (!element3.hasAttr(attribute2.getKey())) { │ │ │ │ element3.attributes().put(attribute2); │ │ │ │ } │ │ │ │ } │ │ │ │ break; │ │ │ │ } │ │ │ │ - else if (name.equals("frameset")) { │ │ │ │ + else if (normalName.equals("frameset")) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ final ArrayList stack3 = htmlTreeBuilder.getStack(); │ │ │ │ if (stack3.size() == 1 || (stack3.size() > 2 && !((Element)stack3.get(1)).nodeName().equals("body"))) { │ │ │ │ return false; │ │ │ │ } │ │ │ │ if (!htmlTreeBuilder.framesetOk()) { │ │ │ │ return false; │ │ │ │ @@ -162,46 +162,46 @@ │ │ │ │ stack3.remove(stack3.size() - 1); │ │ │ │ } │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$7.InFrameset); │ │ │ │ break; │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (StringUtil.inSorted(name, HtmlTreeBuilderState$Constants.access$900())) { │ │ │ │ + if (StringUtil.inSorted(normalName, HtmlTreeBuilderState$Constants.access$900())) { │ │ │ │ if (htmlTreeBuilder.inButtonScope("p")) { │ │ │ │ htmlTreeBuilder.processEndTag("p"); │ │ │ │ } │ │ │ │ if (StringUtil.inSorted(htmlTreeBuilder.currentElement().nodeName(), HtmlTreeBuilderState$Constants.access$900())) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ htmlTreeBuilder.pop(); │ │ │ │ } │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (StringUtil.inSorted(name, HtmlTreeBuilderState$Constants.access$1000())) { │ │ │ │ + if (StringUtil.inSorted(normalName, HtmlTreeBuilderState$Constants.access$1000())) { │ │ │ │ if (htmlTreeBuilder.inButtonScope("p")) { │ │ │ │ htmlTreeBuilder.processEndTag("p"); │ │ │ │ } │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ htmlTreeBuilder.framesetOk(false); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (name.equals("form")) { │ │ │ │ + if (normalName.equals("form")) { │ │ │ │ if (htmlTreeBuilder.getFormElement() != null) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return false; │ │ │ │ } │ │ │ │ if (htmlTreeBuilder.inButtonScope("p")) { │ │ │ │ htmlTreeBuilder.processEndTag("p"); │ │ │ │ } │ │ │ │ htmlTreeBuilder.insertForm(startTag, true); │ │ │ │ break; │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (StringUtil.inSorted(name, HtmlTreeBuilderState$Constants.access$1100())) { │ │ │ │ + if (StringUtil.inSorted(normalName, HtmlTreeBuilderState$Constants.access$1100())) { │ │ │ │ htmlTreeBuilder.framesetOk(false); │ │ │ │ final ArrayList stack4 = htmlTreeBuilder.getStack(); │ │ │ │ for (int j = stack4.size() - 1; j > 0; --j) { │ │ │ │ final Element element5 = (Element)stack4.get(j); │ │ │ │ if (StringUtil.inSorted(element5.nodeName(), HtmlTreeBuilderState$Constants.access$1100())) { │ │ │ │ htmlTreeBuilder.processEndTag(element5.nodeName()); │ │ │ │ break; │ │ │ │ @@ -212,95 +212,95 @@ │ │ │ │ } │ │ │ │ if (htmlTreeBuilder.inButtonScope("p")) { │ │ │ │ htmlTreeBuilder.processEndTag("p"); │ │ │ │ } │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (name.equals("plaintext")) { │ │ │ │ + if (normalName.equals("plaintext")) { │ │ │ │ if (htmlTreeBuilder.inButtonScope("p")) { │ │ │ │ htmlTreeBuilder.processEndTag("p"); │ │ │ │ } │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ htmlTreeBuilder.tokeniser.transition(TokeniserState.PLAINTEXT); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (name.equals("button")) { │ │ │ │ + if (normalName.equals("button")) { │ │ │ │ if (htmlTreeBuilder.inButtonScope("button")) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ htmlTreeBuilder.processEndTag("button"); │ │ │ │ htmlTreeBuilder.process((Token)startTag); │ │ │ │ break; │ │ │ │ } │ │ │ │ htmlTreeBuilder.reconstructFormattingElements(); │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ htmlTreeBuilder.framesetOk(false); │ │ │ │ break; │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (StringUtil.inSorted(name, HtmlTreeBuilderState$Constants.access$1200())) { │ │ │ │ + if (StringUtil.inSorted(normalName, HtmlTreeBuilderState$Constants.access$1200())) { │ │ │ │ htmlTreeBuilder.reconstructFormattingElements(); │ │ │ │ htmlTreeBuilder.pushActiveFormattingElements(htmlTreeBuilder.insert(startTag)); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (name.equals("nobr")) { │ │ │ │ + if (normalName.equals("nobr")) { │ │ │ │ htmlTreeBuilder.reconstructFormattingElements(); │ │ │ │ if (htmlTreeBuilder.inScope("nobr")) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ htmlTreeBuilder.processEndTag("nobr"); │ │ │ │ htmlTreeBuilder.reconstructFormattingElements(); │ │ │ │ } │ │ │ │ htmlTreeBuilder.pushActiveFormattingElements(htmlTreeBuilder.insert(startTag)); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (StringUtil.inSorted(name, HtmlTreeBuilderState$Constants.access$1300())) { │ │ │ │ + if (StringUtil.inSorted(normalName, HtmlTreeBuilderState$Constants.access$1300())) { │ │ │ │ htmlTreeBuilder.reconstructFormattingElements(); │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ htmlTreeBuilder.insertMarkerToFormattingElements(); │ │ │ │ htmlTreeBuilder.framesetOk(false); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (name.equals("table")) { │ │ │ │ + if (normalName.equals("table")) { │ │ │ │ if (htmlTreeBuilder.getDocument().quirksMode() != Document$QuirksMode.quirks && htmlTreeBuilder.inButtonScope("p")) { │ │ │ │ htmlTreeBuilder.processEndTag("p"); │ │ │ │ } │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ htmlTreeBuilder.framesetOk(false); │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$7.InTable); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (name.equals("input")) { │ │ │ │ + if (normalName.equals("input")) { │ │ │ │ htmlTreeBuilder.reconstructFormattingElements(); │ │ │ │ if (!htmlTreeBuilder.insertEmpty(startTag).attr("type").equalsIgnoreCase("hidden")) { │ │ │ │ htmlTreeBuilder.framesetOk(false); │ │ │ │ break; │ │ │ │ } │ │ │ │ break; │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (StringUtil.inSorted(name, HtmlTreeBuilderState$Constants.access$1400())) { │ │ │ │ + if (StringUtil.inSorted(normalName, HtmlTreeBuilderState$Constants.access$1400())) { │ │ │ │ htmlTreeBuilder.insertEmpty(startTag); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (name.equals("hr")) { │ │ │ │ + if (normalName.equals("hr")) { │ │ │ │ if (htmlTreeBuilder.inButtonScope("p")) { │ │ │ │ htmlTreeBuilder.processEndTag("p"); │ │ │ │ } │ │ │ │ htmlTreeBuilder.insertEmpty(startTag); │ │ │ │ htmlTreeBuilder.framesetOk(false); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (name.equals("image")) { │ │ │ │ + if (normalName.equals("image")) { │ │ │ │ if (htmlTreeBuilder.getFromStack("svg") == null) { │ │ │ │ return htmlTreeBuilder.process((Token)startTag.name("img")); │ │ │ │ } │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ break; │ │ │ │ } │ │ │ │ - else if (name.equals("isindex")) { │ │ │ │ + else if (normalName.equals("isindex")) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ if (htmlTreeBuilder.getFormElement() != null) { │ │ │ │ return false; │ │ │ │ } │ │ │ │ htmlTreeBuilder.tokeniser.acknowledgeSelfClosingFlag(); │ │ │ │ htmlTreeBuilder.processStartTag("form"); │ │ │ │ if (startTag.attributes.hasKey("action")) { │ │ │ │ @@ -326,87 +326,87 @@ │ │ │ │ htmlTreeBuilder.processStartTag("input", attributes); │ │ │ │ htmlTreeBuilder.processEndTag("label"); │ │ │ │ htmlTreeBuilder.processStartTag("hr"); │ │ │ │ htmlTreeBuilder.processEndTag("form"); │ │ │ │ break; │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (name.equals("textarea")) { │ │ │ │ + if (normalName.equals("textarea")) { │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ htmlTreeBuilder.tokeniser.transition(TokeniserState.Rcdata); │ │ │ │ htmlTreeBuilder.markInsertionMode(); │ │ │ │ htmlTreeBuilder.framesetOk(false); │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$7.Text); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (name.equals("xmp")) { │ │ │ │ + if (normalName.equals("xmp")) { │ │ │ │ if (htmlTreeBuilder.inButtonScope("p")) { │ │ │ │ htmlTreeBuilder.processEndTag("p"); │ │ │ │ } │ │ │ │ htmlTreeBuilder.reconstructFormattingElements(); │ │ │ │ htmlTreeBuilder.framesetOk(false); │ │ │ │ HtmlTreeBuilderState.access$300(startTag, htmlTreeBuilder); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (name.equals("iframe")) { │ │ │ │ + if (normalName.equals("iframe")) { │ │ │ │ htmlTreeBuilder.framesetOk(false); │ │ │ │ HtmlTreeBuilderState.access$300(startTag, htmlTreeBuilder); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (name.equals("noembed")) { │ │ │ │ + if (normalName.equals("noembed")) { │ │ │ │ HtmlTreeBuilderState.access$300(startTag, htmlTreeBuilder); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (name.equals("select")) { │ │ │ │ + if (normalName.equals("select")) { │ │ │ │ htmlTreeBuilder.reconstructFormattingElements(); │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ htmlTreeBuilder.framesetOk(false); │ │ │ │ final HtmlTreeBuilderState state = htmlTreeBuilder.state(); │ │ │ │ if (state.equals((Object)HtmlTreeBuilderState$7.InTable) || state.equals((Object)HtmlTreeBuilderState$7.InCaption) || state.equals((Object)HtmlTreeBuilderState$7.InTableBody) || state.equals((Object)HtmlTreeBuilderState$7.InRow) || state.equals((Object)HtmlTreeBuilderState$7.InCell)) { │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$7.InSelectInTable); │ │ │ │ break; │ │ │ │ } │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$7.InSelect); │ │ │ │ break; │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (StringUtil.inSorted(name, HtmlTreeBuilderState$Constants.access$1600())) { │ │ │ │ + if (StringUtil.inSorted(normalName, HtmlTreeBuilderState$Constants.access$1600())) { │ │ │ │ if (htmlTreeBuilder.currentElement().nodeName().equals("option")) { │ │ │ │ htmlTreeBuilder.processEndTag("option"); │ │ │ │ } │ │ │ │ htmlTreeBuilder.reconstructFormattingElements(); │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (StringUtil.inSorted(name, HtmlTreeBuilderState$Constants.access$1700())) { │ │ │ │ + if (StringUtil.inSorted(normalName, HtmlTreeBuilderState$Constants.access$1700())) { │ │ │ │ if (htmlTreeBuilder.inScope("ruby")) { │ │ │ │ htmlTreeBuilder.generateImpliedEndTags(); │ │ │ │ if (!htmlTreeBuilder.currentElement().nodeName().equals("ruby")) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ htmlTreeBuilder.popStackToBefore("ruby"); │ │ │ │ } │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ break; │ │ │ │ } │ │ │ │ break; │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (name.equals("math")) { │ │ │ │ + if (normalName.equals("math")) { │ │ │ │ htmlTreeBuilder.reconstructFormattingElements(); │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ htmlTreeBuilder.tokeniser.acknowledgeSelfClosingFlag(); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (name.equals("svg")) { │ │ │ │ + if (normalName.equals("svg")) { │ │ │ │ htmlTreeBuilder.reconstructFormattingElements(); │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ htmlTreeBuilder.tokeniser.acknowledgeSelfClosingFlag(); │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (StringUtil.inSorted(name, HtmlTreeBuilderState$Constants.access$1800())) { │ │ │ │ + if (StringUtil.inSorted(normalName, HtmlTreeBuilderState$Constants.access$1800())) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return false; │ │ │ │ } │ │ │ │ htmlTreeBuilder.reconstructFormattingElements(); │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ break; │ │ │ │ } │ │ │ │ @@ -416,18 +416,18 @@ │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ break; │ │ │ │ } │ │ │ │ case 4: { │ │ │ │ final Token$EndTag endTag = token.asEndTag(); │ │ │ │ - final String name2 = endTag.name(); │ │ │ │ - if (StringUtil.inSorted(name2, HtmlTreeBuilderState$Constants.access$1900())) { │ │ │ │ + final String normalName2 = endTag.normalName(); │ │ │ │ + if (StringUtil.inSorted(normalName2, HtmlTreeBuilderState$Constants.access$1900())) { │ │ │ │ for (int k = 0; k < 8; ++k) { │ │ │ │ - final Element activeFormattingElement = htmlTreeBuilder.getActiveFormattingElement(name2); │ │ │ │ + final Element activeFormattingElement = htmlTreeBuilder.getActiveFormattingElement(normalName2); │ │ │ │ if (activeFormattingElement == null) { │ │ │ │ return this.anyOtherEndTag(token, htmlTreeBuilder); │ │ │ │ } │ │ │ │ if (!htmlTreeBuilder.onStack(activeFormattingElement)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ htmlTreeBuilder.removeFromActiveFormattingElements(activeFormattingElement); │ │ │ │ return true; │ │ │ │ @@ -469,15 +469,15 @@ │ │ │ │ if (!htmlTreeBuilder.isInActiveFormattingElements((Element)aboveOnStack)) { │ │ │ │ htmlTreeBuilder.removeFromStack((Element)aboveOnStack); │ │ │ │ } │ │ │ │ else { │ │ │ │ if (aboveOnStack == activeFormattingElement) { │ │ │ │ break; │ │ │ │ } │ │ │ │ - final Element element8 = new Element(Tag.valueOf(((Element)aboveOnStack).nodeName()), htmlTreeBuilder.getBaseUri()); │ │ │ │ + final Element element8 = new Element(Tag.valueOf(((Element)aboveOnStack).nodeName(), ParseSettings.preserveCase), htmlTreeBuilder.getBaseUri()); │ │ │ │ htmlTreeBuilder.replaceActiveFormattingElement((Element)aboveOnStack, element8); │ │ │ │ htmlTreeBuilder.replaceOnStack((Element)aboveOnStack, element8); │ │ │ │ aboveOnStack = element8; │ │ │ │ if (o2 == o) {} │ │ │ │ if (((Element)o2).parent() != null) { │ │ │ │ ((Element)o2).remove(); │ │ │ │ } │ │ │ │ @@ -506,129 +506,129 @@ │ │ │ │ ((Element)o).appendChild((Node)element9); │ │ │ │ htmlTreeBuilder.removeFromActiveFormattingElements(activeFormattingElement); │ │ │ │ htmlTreeBuilder.removeFromStack(activeFormattingElement); │ │ │ │ htmlTreeBuilder.insertOnStackAfter((Element)o, element9); │ │ │ │ } │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (StringUtil.inSorted(name2, HtmlTreeBuilderState$Constants.access$2100())) { │ │ │ │ - if (!htmlTreeBuilder.inScope(name2)) { │ │ │ │ + if (StringUtil.inSorted(normalName2, HtmlTreeBuilderState$Constants.access$2100())) { │ │ │ │ + if (!htmlTreeBuilder.inScope(normalName2)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return false; │ │ │ │ } │ │ │ │ htmlTreeBuilder.generateImpliedEndTags(); │ │ │ │ - if (!htmlTreeBuilder.currentElement().nodeName().equals(name2)) { │ │ │ │ + if (!htmlTreeBuilder.currentElement().nodeName().equals(normalName2)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ } │ │ │ │ - htmlTreeBuilder.popStackToClose(name2); │ │ │ │ + htmlTreeBuilder.popStackToClose(normalName2); │ │ │ │ break; │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (name2.equals("span")) { │ │ │ │ + if (normalName2.equals("span")) { │ │ │ │ return this.anyOtherEndTag(token, htmlTreeBuilder); │ │ │ │ } │ │ │ │ - if (name2.equals("li")) { │ │ │ │ - if (!htmlTreeBuilder.inListItemScope(name2)) { │ │ │ │ + if (normalName2.equals("li")) { │ │ │ │ + if (!htmlTreeBuilder.inListItemScope(normalName2)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return false; │ │ │ │ } │ │ │ │ - htmlTreeBuilder.generateImpliedEndTags(name2); │ │ │ │ - if (!htmlTreeBuilder.currentElement().nodeName().equals(name2)) { │ │ │ │ + htmlTreeBuilder.generateImpliedEndTags(normalName2); │ │ │ │ + if (!htmlTreeBuilder.currentElement().nodeName().equals(normalName2)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ } │ │ │ │ - htmlTreeBuilder.popStackToClose(name2); │ │ │ │ + htmlTreeBuilder.popStackToClose(normalName2); │ │ │ │ break; │ │ │ │ } │ │ │ │ - else if (name2.equals("body")) { │ │ │ │ + else if (normalName2.equals("body")) { │ │ │ │ if (!htmlTreeBuilder.inScope("body")) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return false; │ │ │ │ } │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$7.AfterBody); │ │ │ │ break; │ │ │ │ } │ │ │ │ - else if (name2.equals("html")) { │ │ │ │ + else if (normalName2.equals("html")) { │ │ │ │ if (htmlTreeBuilder.processEndTag("body")) { │ │ │ │ return htmlTreeBuilder.process((Token)endTag); │ │ │ │ } │ │ │ │ break; │ │ │ │ } │ │ │ │ - else if (name2.equals("form")) { │ │ │ │ + else if (normalName2.equals("form")) { │ │ │ │ final FormElement formElement = htmlTreeBuilder.getFormElement(); │ │ │ │ htmlTreeBuilder.setFormElement((FormElement)null); │ │ │ │ - if (formElement == null || !htmlTreeBuilder.inScope(name2)) { │ │ │ │ + if (formElement == null || !htmlTreeBuilder.inScope(normalName2)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return false; │ │ │ │ } │ │ │ │ htmlTreeBuilder.generateImpliedEndTags(); │ │ │ │ - if (!htmlTreeBuilder.currentElement().nodeName().equals(name2)) { │ │ │ │ + if (!htmlTreeBuilder.currentElement().nodeName().equals(normalName2)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ } │ │ │ │ htmlTreeBuilder.removeFromStack((Element)formElement); │ │ │ │ break; │ │ │ │ } │ │ │ │ - else if (name2.equals("p")) { │ │ │ │ - if (!htmlTreeBuilder.inButtonScope(name2)) { │ │ │ │ + else if (normalName2.equals("p")) { │ │ │ │ + if (!htmlTreeBuilder.inButtonScope(normalName2)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ - htmlTreeBuilder.processStartTag(name2); │ │ │ │ + htmlTreeBuilder.processStartTag(normalName2); │ │ │ │ return htmlTreeBuilder.process((Token)endTag); │ │ │ │ } │ │ │ │ - htmlTreeBuilder.generateImpliedEndTags(name2); │ │ │ │ - if (!htmlTreeBuilder.currentElement().nodeName().equals(name2)) { │ │ │ │ + htmlTreeBuilder.generateImpliedEndTags(normalName2); │ │ │ │ + if (!htmlTreeBuilder.currentElement().nodeName().equals(normalName2)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ } │ │ │ │ - htmlTreeBuilder.popStackToClose(name2); │ │ │ │ + htmlTreeBuilder.popStackToClose(normalName2); │ │ │ │ break; │ │ │ │ } │ │ │ │ - else if (StringUtil.inSorted(name2, HtmlTreeBuilderState$Constants.access$1100())) { │ │ │ │ - if (!htmlTreeBuilder.inScope(name2)) { │ │ │ │ + else if (StringUtil.inSorted(normalName2, HtmlTreeBuilderState$Constants.access$1100())) { │ │ │ │ + if (!htmlTreeBuilder.inScope(normalName2)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return false; │ │ │ │ } │ │ │ │ - htmlTreeBuilder.generateImpliedEndTags(name2); │ │ │ │ - if (!htmlTreeBuilder.currentElement().nodeName().equals(name2)) { │ │ │ │ + htmlTreeBuilder.generateImpliedEndTags(normalName2); │ │ │ │ + if (!htmlTreeBuilder.currentElement().nodeName().equals(normalName2)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ } │ │ │ │ - htmlTreeBuilder.popStackToClose(name2); │ │ │ │ + htmlTreeBuilder.popStackToClose(normalName2); │ │ │ │ break; │ │ │ │ } │ │ │ │ - else if (StringUtil.inSorted(name2, HtmlTreeBuilderState$Constants.access$900())) { │ │ │ │ + else if (StringUtil.inSorted(normalName2, HtmlTreeBuilderState$Constants.access$900())) { │ │ │ │ if (!htmlTreeBuilder.inScope(HtmlTreeBuilderState$Constants.access$900())) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return false; │ │ │ │ } │ │ │ │ - htmlTreeBuilder.generateImpliedEndTags(name2); │ │ │ │ - if (!htmlTreeBuilder.currentElement().nodeName().equals(name2)) { │ │ │ │ + htmlTreeBuilder.generateImpliedEndTags(normalName2); │ │ │ │ + if (!htmlTreeBuilder.currentElement().nodeName().equals(normalName2)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ } │ │ │ │ htmlTreeBuilder.popStackToClose(HtmlTreeBuilderState$Constants.access$900()); │ │ │ │ break; │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (name2.equals("sarcasm")) { │ │ │ │ + if (normalName2.equals("sarcasm")) { │ │ │ │ return this.anyOtherEndTag(token, htmlTreeBuilder); │ │ │ │ } │ │ │ │ - if (StringUtil.inSorted(name2, HtmlTreeBuilderState$Constants.access$1300())) { │ │ │ │ + if (StringUtil.inSorted(normalName2, HtmlTreeBuilderState$Constants.access$1300())) { │ │ │ │ if (htmlTreeBuilder.inScope("name")) { │ │ │ │ break; │ │ │ │ } │ │ │ │ - if (!htmlTreeBuilder.inScope(name2)) { │ │ │ │ + if (!htmlTreeBuilder.inScope(normalName2)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ return false; │ │ │ │ } │ │ │ │ htmlTreeBuilder.generateImpliedEndTags(); │ │ │ │ - if (!htmlTreeBuilder.currentElement().nodeName().equals(name2)) { │ │ │ │ + if (!htmlTreeBuilder.currentElement().nodeName().equals(normalName2)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ } │ │ │ │ - htmlTreeBuilder.popStackToClose(name2); │ │ │ │ + htmlTreeBuilder.popStackToClose(normalName2); │ │ │ │ htmlTreeBuilder.clearFormattingElementsToLastMarker(); │ │ │ │ break; │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (name2.equals("br")) { │ │ │ │ + if (normalName2.equals("br")) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ htmlTreeBuilder.processStartTag("br"); │ │ │ │ return false; │ │ │ │ } │ │ │ │ return this.anyOtherEndTag(token, htmlTreeBuilder); │ │ │ │ } │ │ │ │ } │ │ ├── org/jsoup/parser/HtmlTreeBuilderState$9.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -45,71 +45,71 @@ │ │ │ │ } │ │ │ │ else if (token.isDoctype()) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ n3 = 0; │ │ │ │ } │ │ │ │ else if (token.isStartTag()) { │ │ │ │ final Token$StartTag startTag = token.asStartTag(); │ │ │ │ - final String name = startTag.name(); │ │ │ │ - if (name.equals("caption")) { │ │ │ │ + final String normalName = startTag.normalName(); │ │ │ │ + if (normalName.equals("caption")) { │ │ │ │ htmlTreeBuilder.clearStackToTableContext(); │ │ │ │ htmlTreeBuilder.insertMarkerToFormattingElements(); │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$9.InCaption); │ │ │ │ } │ │ │ │ - else if (name.equals("colgroup")) { │ │ │ │ + else if (normalName.equals("colgroup")) { │ │ │ │ htmlTreeBuilder.clearStackToTableContext(); │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$9.InColumnGroup); │ │ │ │ } │ │ │ │ - else if (name.equals("col")) { │ │ │ │ + else if (normalName.equals("col")) { │ │ │ │ htmlTreeBuilder.processStartTag("colgroup"); │ │ │ │ n3 = (htmlTreeBuilder.process(token) ? 1 : 0); │ │ │ │ } │ │ │ │ else { │ │ │ │ final String[] array = new String[n]; │ │ │ │ array[0] = "tbody"; │ │ │ │ array[n3] = "tfoot"; │ │ │ │ array[n2] = "thead"; │ │ │ │ - if (StringUtil.in(name, array)) { │ │ │ │ + if (StringUtil.in(normalName, array)) { │ │ │ │ htmlTreeBuilder.clearStackToTableContext(); │ │ │ │ htmlTreeBuilder.insert(startTag); │ │ │ │ htmlTreeBuilder.transition(HtmlTreeBuilderState$9.InTableBody); │ │ │ │ } │ │ │ │ else { │ │ │ │ final String[] array2 = new String[n]; │ │ │ │ array2[0] = "td"; │ │ │ │ array2[n3] = "th"; │ │ │ │ array2[n2] = "tr"; │ │ │ │ - if (StringUtil.in(name, array2)) { │ │ │ │ + if (StringUtil.in(normalName, array2)) { │ │ │ │ htmlTreeBuilder.processStartTag("tbody"); │ │ │ │ n3 = (htmlTreeBuilder.process(token) ? 1 : 0); │ │ │ │ } │ │ │ │ - else if (name.equals("table")) { │ │ │ │ + else if (normalName.equals("table")) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ if (htmlTreeBuilder.processEndTag("table")) { │ │ │ │ n3 = (htmlTreeBuilder.process(token) ? 1 : 0); │ │ │ │ } │ │ │ │ } │ │ │ │ else { │ │ │ │ final String[] array3 = new String[n2]; │ │ │ │ array3[0] = "style"; │ │ │ │ array3[n3] = "script"; │ │ │ │ - if (StringUtil.in(name, array3)) { │ │ │ │ + if (StringUtil.in(normalName, array3)) { │ │ │ │ n3 = (htmlTreeBuilder.process(token, HtmlTreeBuilderState$9.InHead) ? 1 : 0); │ │ │ │ } │ │ │ │ - else if (name.equals("input")) { │ │ │ │ + else if (normalName.equals("input")) { │ │ │ │ if (!startTag.attributes.get("type").equalsIgnoreCase("hidden")) { │ │ │ │ n3 = (this.anythingElse(token, htmlTreeBuilder) ? 1 : 0); │ │ │ │ } │ │ │ │ else { │ │ │ │ htmlTreeBuilder.insertEmpty(startTag); │ │ │ │ } │ │ │ │ } │ │ │ │ - else if (name.equals("form")) { │ │ │ │ + else if (normalName.equals("form")) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ if (htmlTreeBuilder.getFormElement() != null) { │ │ │ │ n3 = 0; │ │ │ │ } │ │ │ │ else { │ │ │ │ htmlTreeBuilder.insertForm(startTag, false); │ │ │ │ } │ │ │ │ @@ -118,17 +118,17 @@ │ │ │ │ n3 = (this.anythingElse(token, htmlTreeBuilder) ? 1 : 0); │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ else if (token.isEndTag()) { │ │ │ │ - final String name2 = token.asEndTag().name(); │ │ │ │ - if (name2.equals("table")) { │ │ │ │ - if (!htmlTreeBuilder.inTableScope(name2)) { │ │ │ │ + final String normalName2 = token.asEndTag().normalName(); │ │ │ │ + if (normalName2.equals("table")) { │ │ │ │ + if (!htmlTreeBuilder.inTableScope(normalName2)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ n3 = 0; │ │ │ │ } │ │ │ │ else { │ │ │ │ htmlTreeBuilder.popStackToClose("table"); │ │ │ │ htmlTreeBuilder.resetInsertionMode(); │ │ │ │ } │ │ │ │ @@ -142,15 +142,15 @@ │ │ │ │ array4[4] = "html"; │ │ │ │ array4[5] = "tbody"; │ │ │ │ array4[6] = "td"; │ │ │ │ array4[7] = "tfoot"; │ │ │ │ array4[8] = "th"; │ │ │ │ array4[9] = "thead"; │ │ │ │ array4[10] = "tr"; │ │ │ │ - if (StringUtil.in(name2, array4)) { │ │ │ │ + if (StringUtil.in(normalName2, array4)) { │ │ │ │ htmlTreeBuilder.error((HtmlTreeBuilderState)this); │ │ │ │ n3 = 0; │ │ │ │ } │ │ │ │ else { │ │ │ │ n3 = (this.anythingElse(token, htmlTreeBuilder) ? 1 : 0); │ │ │ │ } │ │ │ │ } │ │ ├── org/jsoup/parser/Token$Doctype.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,43 +1,50 @@ │ │ │ │ │ │ │ │ package org.jsoup.parser; │ │ │ │ │ │ │ │ final class Token$Doctype extends Token │ │ │ │ { │ │ │ │ boolean forceQuirks; │ │ │ │ final StringBuilder name; │ │ │ │ + String pubSysKey; │ │ │ │ final StringBuilder publicIdentifier; │ │ │ │ final StringBuilder systemIdentifier; │ │ │ │ │ │ │ │ Token$Doctype() { │ │ │ │ super((Token$1)null); │ │ │ │ this.name = new StringBuilder(); │ │ │ │ + this.pubSysKey = null; │ │ │ │ this.publicIdentifier = new StringBuilder(); │ │ │ │ this.systemIdentifier = new StringBuilder(); │ │ │ │ this.forceQuirks = false; │ │ │ │ this.type = Token$TokenType.Doctype; │ │ │ │ } │ │ │ │ │ │ │ │ String getName() { │ │ │ │ return this.name.toString(); │ │ │ │ } │ │ │ │ │ │ │ │ + String getPubSysKey() { │ │ │ │ + return this.pubSysKey; │ │ │ │ + } │ │ │ │ + │ │ │ │ String getPublicIdentifier() { │ │ │ │ return this.publicIdentifier.toString(); │ │ │ │ } │ │ │ │ │ │ │ │ public String getSystemIdentifier() { │ │ │ │ return this.systemIdentifier.toString(); │ │ │ │ } │ │ │ │ │ │ │ │ public boolean isForceQuirks() { │ │ │ │ return this.forceQuirks; │ │ │ │ } │ │ │ │ │ │ │ │ Token reset() { │ │ │ │ reset(this.name); │ │ │ │ + this.pubSysKey = null; │ │ │ │ reset(this.publicIdentifier); │ │ │ │ reset(this.systemIdentifier); │ │ │ │ this.forceQuirks = false; │ │ │ │ return this; │ │ │ │ } │ │ │ │ } │ │ ├── org/jsoup/parser/Token$Tag.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,20 +1,22 @@ │ │ │ │ │ │ │ │ package org.jsoup.parser; │ │ │ │ │ │ │ │ import org.jsoup.nodes.BooleanAttribute; │ │ │ │ import org.jsoup.nodes.Attribute; │ │ │ │ import org.jsoup.helper.Validate; │ │ │ │ +import org.jsoup.internal.Normalizer; │ │ │ │ import org.jsoup.nodes.Attributes; │ │ │ │ │ │ │ │ abstract class Token$Tag extends Token │ │ │ │ { │ │ │ │ Attributes attributes; │ │ │ │ private boolean hasEmptyAttributeValue; │ │ │ │ private boolean hasPendingAttributeValue; │ │ │ │ + protected String normalName; │ │ │ │ private String pendingAttributeName; │ │ │ │ private StringBuilder pendingAttributeValue; │ │ │ │ private String pendingAttributeValueS; │ │ │ │ boolean selfClosing; │ │ │ │ protected String tagName; │ │ │ │ │ │ │ │ Token$Tag() { │ │ │ │ @@ -60,23 +62,31 @@ │ │ │ │ } │ │ │ │ │ │ │ │ final void appendAttributeValue(final char[] str) { │ │ │ │ this.ensureAttributeValue(); │ │ │ │ this.pendingAttributeValue.append(str); │ │ │ │ } │ │ │ │ │ │ │ │ + final void appendAttributeValue(final int[] array) { │ │ │ │ + this.ensureAttributeValue(); │ │ │ │ + for (int length = array.length, i = 0; i < length; ++i) { │ │ │ │ + this.pendingAttributeValue.appendCodePoint(array[i]); │ │ │ │ + } │ │ │ │ + } │ │ │ │ + │ │ │ │ final void appendTagName(final char c) { │ │ │ │ this.appendTagName(String.valueOf(c)); │ │ │ │ } │ │ │ │ │ │ │ │ final void appendTagName(String concat) { │ │ │ │ if (this.tagName != null) { │ │ │ │ concat = this.tagName.concat(concat); │ │ │ │ } │ │ │ │ this.tagName = concat; │ │ │ │ + this.normalName = Normalizer.lowerCase(this.tagName); │ │ │ │ } │ │ │ │ │ │ │ │ final void finaliseTag() { │ │ │ │ if (this.pendingAttributeName != null) { │ │ │ │ this.newAttribute(); │ │ │ │ } │ │ │ │ } │ │ │ │ @@ -92,52 +102,61 @@ │ │ │ │ final String name() { │ │ │ │ Validate.isFalse(this.tagName == null || this.tagName.length() == 0); │ │ │ │ return this.tagName; │ │ │ │ } │ │ │ │ │ │ │ │ final Token$Tag name(final String tagName) { │ │ │ │ this.tagName = tagName; │ │ │ │ + this.normalName = Normalizer.lowerCase(tagName); │ │ │ │ return this; │ │ │ │ } │ │ │ │ │ │ │ │ final void newAttribute() { │ │ │ │ if (this.attributes == null) { │ │ │ │ this.attributes = new Attributes(); │ │ │ │ } │ │ │ │ if (this.pendingAttributeName != null) { │ │ │ │ - Object o; │ │ │ │ - if (this.hasPendingAttributeValue) { │ │ │ │ - o = new(org.jsoup.nodes.Attribute.class); │ │ │ │ - final String pendingAttributeName = this.pendingAttributeName; │ │ │ │ - String s; │ │ │ │ - if (this.pendingAttributeValue.length() > 0) { │ │ │ │ - s = this.pendingAttributeValue.toString(); │ │ │ │ + this.pendingAttributeName = this.pendingAttributeName.trim(); │ │ │ │ + if (this.pendingAttributeName.length() > 0) { │ │ │ │ + Object o; │ │ │ │ + if (this.hasPendingAttributeValue) { │ │ │ │ + o = new(org.jsoup.nodes.Attribute.class); │ │ │ │ + final String pendingAttributeName = this.pendingAttributeName; │ │ │ │ + String s; │ │ │ │ + if (this.pendingAttributeValue.length() > 0) { │ │ │ │ + s = this.pendingAttributeValue.toString(); │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + s = this.pendingAttributeValueS; │ │ │ │ + } │ │ │ │ + new Attribute(pendingAttributeName, s); │ │ │ │ + } │ │ │ │ + else if (this.hasEmptyAttributeValue) { │ │ │ │ + o = new Attribute(this.pendingAttributeName, ""); │ │ │ │ } │ │ │ │ else { │ │ │ │ - s = this.pendingAttributeValueS; │ │ │ │ + o = new BooleanAttribute(this.pendingAttributeName); │ │ │ │ } │ │ │ │ - new Attribute(pendingAttributeName, s); │ │ │ │ + this.attributes.put((Attribute)o); │ │ │ │ } │ │ │ │ - else if (this.hasEmptyAttributeValue) { │ │ │ │ - o = new Attribute(this.pendingAttributeName, ""); │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - o = new BooleanAttribute(this.pendingAttributeName); │ │ │ │ - } │ │ │ │ - this.attributes.put((Attribute)o); │ │ │ │ } │ │ │ │ this.pendingAttributeName = null; │ │ │ │ this.hasEmptyAttributeValue = false; │ │ │ │ this.hasPendingAttributeValue = false; │ │ │ │ reset(this.pendingAttributeValue); │ │ │ │ this.pendingAttributeValueS = null; │ │ │ │ } │ │ │ │ │ │ │ │ + final String normalName() { │ │ │ │ + return this.normalName; │ │ │ │ + } │ │ │ │ + │ │ │ │ Token$Tag reset() { │ │ │ │ this.tagName = null; │ │ │ │ + this.normalName = null; │ │ │ │ this.pendingAttributeName = null; │ │ │ │ reset(this.pendingAttributeValue); │ │ │ │ this.pendingAttributeValueS = null; │ │ │ │ this.hasEmptyAttributeValue = false; │ │ │ │ this.hasPendingAttributeValue = false; │ │ │ │ this.selfClosing = false; │ │ │ │ this.attributes = null; │ │ ├── org/jsoup/parser/TokeniserState$10.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -3,15 +3,15 @@ │ │ │ │ │ │ │ │ enum TokeniserState$10 │ │ │ │ { │ │ │ │ TokeniserState$10(final String s, final int n) { │ │ │ │ } │ │ │ │ │ │ │ │ void read(final Tokeniser tokeniser, final CharacterReader characterReader) { │ │ │ │ - tokeniser.tagPending.appendTagName(characterReader.consumeTagName().toLowerCase()); │ │ │ │ + tokeniser.tagPending.appendTagName(characterReader.consumeTagName()); │ │ │ │ switch (characterReader.consume()) { │ │ │ │ case '\t': │ │ │ │ case '\n': │ │ │ │ case '\f': │ │ │ │ case '\r': │ │ │ │ case ' ': { │ │ │ │ tokeniser.transition(TokeniserState$10.BeforeAttributeName); │ │ ├── org/jsoup/parser/TokeniserState$12.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -5,16 +5,16 @@ │ │ │ │ { │ │ │ │ TokeniserState$12(final String s, final int n) { │ │ │ │ } │ │ │ │ │ │ │ │ void read(final Tokeniser tokeniser, final CharacterReader characterReader) { │ │ │ │ if (characterReader.matchesLetter()) { │ │ │ │ tokeniser.createTagPending(false); │ │ │ │ - tokeniser.tagPending.appendTagName(Character.toLowerCase(characterReader.current())); │ │ │ │ - tokeniser.dataBuffer.append(Character.toLowerCase(characterReader.current())); │ │ │ │ + tokeniser.tagPending.appendTagName(characterReader.current()); │ │ │ │ + tokeniser.dataBuffer.append(characterReader.current()); │ │ │ │ tokeniser.advanceTransition(TokeniserState$12.RCDATAEndTagName); │ │ │ │ } │ │ │ │ else { │ │ │ │ tokeniser.emit("'), true); │ │ │ │ + final int[] consumeCharacterReference = tokeniser.consumeCharacterReference(Character.valueOf('>'), true); │ │ │ │ if (consumeCharacterReference != null) { │ │ │ │ tokeniser.tagPending.appendAttributeValue(consumeCharacterReference); │ │ │ │ break; │ │ │ │ } │ │ │ │ tokeniser.tagPending.appendAttributeValue('&'); │ │ │ │ break; │ │ │ │ } │ │ ├── org/jsoup/parser/TokeniserState$42.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -6,14 +6,15 @@ │ │ │ │ TokeniserState$42(final String s, final int n) { │ │ │ │ } │ │ │ │ │ │ │ │ void read(final Tokeniser tokeniser, final CharacterReader characterReader) { │ │ │ │ switch (characterReader.consume()) { │ │ │ │ default: { │ │ │ │ tokeniser.error((TokeniserState)this); │ │ │ │ + characterReader.unconsume(); │ │ │ │ tokeniser.transition(TokeniserState$42.BeforeAttributeName); │ │ │ │ break; │ │ │ │ } │ │ │ │ case '>': { │ │ │ │ tokeniser.tagPending.selfClosing = true; │ │ │ │ tokeniser.emitTagPending(); │ │ │ │ tokeniser.transition(TokeniserState$42.Data); │ │ ├── org/jsoup/parser/TokeniserState$53.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -4,15 +4,15 @@ │ │ │ │ enum TokeniserState$53 │ │ │ │ { │ │ │ │ TokeniserState$53(final String s, final int n) { │ │ │ │ } │ │ │ │ │ │ │ │ void read(final Tokeniser tokeniser, final CharacterReader characterReader) { │ │ │ │ if (characterReader.matchesLetter()) { │ │ │ │ - tokeniser.doctypePending.name.append(characterReader.consumeLetterSequence().toLowerCase()); │ │ │ │ + tokeniser.doctypePending.name.append(characterReader.consumeLetterSequence()); │ │ │ │ } │ │ │ │ else { │ │ │ │ final char consume = characterReader.consume(); │ │ │ │ switch (consume) { │ │ │ │ default: { │ │ │ │ tokeniser.doctypePending.name.append(consume); │ │ │ │ break; │ │ ├── org/jsoup/parser/TokeniserState$54.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -26,17 +26,19 @@ │ │ │ │ characterReader.advance(); │ │ │ │ } │ │ │ │ else if (characterReader.matches('>')) { │ │ │ │ tokeniser.emitDoctypePending(); │ │ │ │ tokeniser.advanceTransition(TokeniserState$54.Data); │ │ │ │ } │ │ │ │ else if (characterReader.matchConsumeIgnoreCase("PUBLIC")) { │ │ │ │ + tokeniser.doctypePending.pubSysKey = "PUBLIC"; │ │ │ │ tokeniser.transition(TokeniserState$54.AfterDoctypePublicKeyword); │ │ │ │ } │ │ │ │ else if (characterReader.matchConsumeIgnoreCase("SYSTEM")) { │ │ │ │ + tokeniser.doctypePending.pubSysKey = "SYSTEM"; │ │ │ │ tokeniser.transition(TokeniserState$54.AfterDoctypeSystemKeyword); │ │ │ │ } │ │ │ │ else { │ │ │ │ tokeniser.error((TokeniserState)this); │ │ │ │ tokeniser.doctypePending.forceQuirks = b; │ │ │ │ tokeniser.advanceTransition(TokeniserState$54.BogusDoctype); │ │ │ │ } │ │ ├── org/jsoup/parser/XmlTreeBuilder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,13 +1,14 @@ │ │ │ │ │ │ │ │ package org.jsoup.parser; │ │ │ │ │ │ │ │ import org.jsoup.nodes.Attributes; │ │ │ │ import org.jsoup.helper.Validate; │ │ │ │ import java.util.List; │ │ │ │ +import org.jsoup.nodes.Document; │ │ │ │ import org.jsoup.nodes.DocumentType; │ │ │ │ import org.jsoup.nodes.XmlDeclaration; │ │ │ │ import org.jsoup.Jsoup; │ │ │ │ import org.jsoup.nodes.Comment; │ │ │ │ import org.jsoup.nodes.TextNode; │ │ │ │ import org.jsoup.nodes.Document$OutputSettings$Syntax; │ │ │ │ import org.jsoup.nodes.Element; │ │ │ │ @@ -36,23 +37,27 @@ │ │ │ │ if (element3 == element) { │ │ │ │ break; │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ - protected void initialiseParse(final String s, final String s2, final ParseErrorList list) { │ │ │ │ - super.initialiseParse(s, s2, list); │ │ │ │ + ParseSettings defaultSettings() { │ │ │ │ + return ParseSettings.preserveCase; │ │ │ │ + } │ │ │ │ + │ │ │ │ + protected void initialiseParse(final String s, final String s2, final ParseErrorList list, final ParseSettings parseSettings) { │ │ │ │ + super.initialiseParse(s, s2, list, parseSettings); │ │ │ │ this.stack.add(this.doc); │ │ │ │ this.doc.outputSettings().syntax(Document$OutputSettings$Syntax.xml); │ │ │ │ } │ │ │ │ │ │ │ │ Element insert(final Token$StartTag token$StartTag) { │ │ │ │ - final Tag value = Tag.valueOf(token$StartTag.name()); │ │ │ │ - final Element e = new Element(value, this.baseUri, token$StartTag.attributes); │ │ │ │ + final Tag value = Tag.valueOf(token$StartTag.name(), this.settings); │ │ │ │ + final Element e = new Element(value, this.baseUri, this.settings.normalizeAttributes(token$StartTag.attributes)); │ │ │ │ this.insertNode((Node)e); │ │ │ │ if (token$StartTag.isSelfClosing()) { │ │ │ │ this.tokeniser.acknowledgeSelfClosingFlag(); │ │ │ │ if (!value.isKnownTag()) { │ │ │ │ value.setSelfClosing(); │ │ │ │ } │ │ │ │ } │ │ │ │ @@ -70,27 +75,31 @@ │ │ │ │ final int beginIndex = 1; │ │ │ │ Object o; │ │ │ │ final Comment comment = (Comment)(o = new Comment(token$Comment.getData(), this.baseUri)); │ │ │ │ if (token$Comment.bogus) { │ │ │ │ final String data = comment.getData(); │ │ │ │ if (data.length() > beginIndex && (data.startsWith("!") || data.startsWith("?"))) { │ │ │ │ final Element child = Jsoup.parse("<" + data.substring(beginIndex, data.length() - 1) + ">", this.baseUri, Parser.xmlParser()).child(0); │ │ │ │ - o = new XmlDeclaration(child.tagName(), comment.baseUri(), data.startsWith("!")); │ │ │ │ + o = new XmlDeclaration(this.settings.normalizeTag(child.tagName()), comment.baseUri(), data.startsWith("!")); │ │ │ │ ((Node)o).attributes().addAll(child.attributes()); │ │ │ │ } │ │ │ │ } │ │ │ │ this.insertNode((Node)o); │ │ │ │ } │ │ │ │ │ │ │ │ void insert(final Token$Doctype token$Doctype) { │ │ │ │ - this.insertNode((Node)new DocumentType(token$Doctype.getName(), token$Doctype.getPublicIdentifier(), token$Doctype.getSystemIdentifier(), this.baseUri)); │ │ │ │ + this.insertNode((Node)new DocumentType(this.settings.normalizeTag(token$Doctype.getName()), token$Doctype.getPubSysKey(), token$Doctype.getPublicIdentifier(), token$Doctype.getSystemIdentifier(), this.baseUri)); │ │ │ │ + } │ │ │ │ + │ │ │ │ + Document parse(final String s, final String s2) { │ │ │ │ + return this.parse(s, s2, ParseErrorList.noTracking(), ParseSettings.preserveCase); │ │ │ │ } │ │ │ │ │ │ │ │ - List parseFragment(final String s, final String s2, final ParseErrorList list) { │ │ │ │ - this.initialiseParse(s, s2, list); │ │ │ │ + List parseFragment(final String s, final String s2, final ParseErrorList list, final ParseSettings parseSettings) { │ │ │ │ + this.initialiseParse(s, s2, list, parseSettings); │ │ │ │ this.runParser(); │ │ │ │ return this.doc.childNodes(); │ │ │ │ } │ │ │ │ │ │ │ │ protected boolean process(final Token token) { │ │ │ │ switch (XmlTreeBuilder$1.$SwitchMap$org$jsoup$parser$Token$TokenType[token.type.ordinal()]) { │ │ │ │ default: { │ │ ├── org/jsoup/select/Evaluator$AttributeKeyPair.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,20 +1,21 @@ │ │ │ │ │ │ │ │ package org.jsoup.select; │ │ │ │ │ │ │ │ +import org.jsoup.internal.Normalizer; │ │ │ │ import org.jsoup.helper.Validate; │ │ │ │ │ │ │ │ public abstract class Evaluator$AttributeKeyPair extends Evaluator │ │ │ │ { │ │ │ │ String key; │ │ │ │ String value; │ │ │ │ │ │ │ │ public Evaluator$AttributeKeyPair(final String s, String substring) { │ │ │ │ Validate.notEmpty(s); │ │ │ │ Validate.notEmpty(substring); │ │ │ │ - this.key = s.trim().toLowerCase(); │ │ │ │ + this.key = Normalizer.normalize(s); │ │ │ │ if ((substring.startsWith("\"") && substring.endsWith("\"")) || (substring.startsWith("'") && substring.endsWith("'"))) { │ │ │ │ substring = substring.substring(1, substring.length() - 1); │ │ │ │ } │ │ │ │ - this.value = substring.trim().toLowerCase(); │ │ │ │ + this.value = Normalizer.normalize(substring); │ │ │ │ } │ │ │ │ } │ │ ├── org/jsoup/select/Evaluator$AttributeStarting.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,26 +1,29 @@ │ │ │ │ │ │ │ │ package org.jsoup.select; │ │ │ │ │ │ │ │ import java.util.Iterator; │ │ │ │ import org.jsoup.nodes.Attribute; │ │ │ │ import org.jsoup.nodes.Element; │ │ │ │ +import org.jsoup.internal.Normalizer; │ │ │ │ +import org.jsoup.helper.Validate; │ │ │ │ │ │ │ │ public final class Evaluator$AttributeStarting extends Evaluator │ │ │ │ { │ │ │ │ private String keyPrefix; │ │ │ │ │ │ │ │ - public Evaluator$AttributeStarting(final String keyPrefix) { │ │ │ │ - this.keyPrefix = keyPrefix; │ │ │ │ + public Evaluator$AttributeStarting(final String s) { │ │ │ │ + Validate.notEmpty(s); │ │ │ │ + this.keyPrefix = Normalizer.lowerCase(s); │ │ │ │ } │ │ │ │ │ │ │ │ public boolean matches(final Element element, final Element element2) { │ │ │ │ final Iterator iterator = element2.attributes().asList().iterator(); │ │ │ │ while (iterator.hasNext()) { │ │ │ │ - if (((Attribute)iterator.next()).getKey().startsWith(this.keyPrefix)) { │ │ │ │ + if (Normalizer.lowerCase(((Attribute)iterator.next()).getKey()).startsWith(this.keyPrefix)) { │ │ │ │ return true; │ │ │ │ } │ │ │ │ } │ │ │ │ return false; │ │ │ │ } │ │ │ │ │ │ │ │ public String toString() { │ │ ├── org/jsoup/select/Evaluator$AttributeWithValueMatching.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,20 +1,21 @@ │ │ │ │ │ │ │ │ package org.jsoup.select; │ │ │ │ │ │ │ │ import org.jsoup.nodes.Element; │ │ │ │ +import org.jsoup.internal.Normalizer; │ │ │ │ import java.util.regex.Pattern; │ │ │ │ │ │ │ │ public final class Evaluator$AttributeWithValueMatching extends Evaluator │ │ │ │ { │ │ │ │ String key; │ │ │ │ Pattern pattern; │ │ │ │ │ │ │ │ public Evaluator$AttributeWithValueMatching(final String s, final Pattern pattern) { │ │ │ │ - this.key = s.trim().toLowerCase(); │ │ │ │ + this.key = Normalizer.normalize(s); │ │ │ │ this.pattern = pattern; │ │ │ │ } │ │ │ │ │ │ │ │ public boolean matches(final Element element, final Element element2) { │ │ │ │ return element2.hasAttr(this.key) && this.pattern.matcher(element2.attr(this.key)).find(); │ │ │ │ } │ │ ├── org/jsoup/select/Evaluator$ContainsOwnText.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,21 +1,22 @@ │ │ │ │ │ │ │ │ package org.jsoup.select; │ │ │ │ │ │ │ │ import org.jsoup.nodes.Element; │ │ │ │ +import org.jsoup.internal.Normalizer; │ │ │ │ │ │ │ │ public final class Evaluator$ContainsOwnText extends Evaluator │ │ │ │ { │ │ │ │ private String searchText; │ │ │ │ │ │ │ │ public Evaluator$ContainsOwnText(final String s) { │ │ │ │ - this.searchText = s.toLowerCase(); │ │ │ │ + this.searchText = Normalizer.lowerCase(s); │ │ │ │ } │ │ │ │ │ │ │ │ public boolean matches(final Element element, final Element element2) { │ │ │ │ - return element2.ownText().toLowerCase().contains(this.searchText); │ │ │ │ + return Normalizer.lowerCase(element2.ownText()).contains(this.searchText); │ │ │ │ } │ │ │ │ │ │ │ │ public String toString() { │ │ │ │ - return String.format(":containsOwn(%s", this.searchText); │ │ │ │ + return String.format(":containsOwn(%s)", this.searchText); │ │ │ │ } │ │ │ │ } │ │ ├── org/jsoup/select/Evaluator$ContainsText.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,21 +1,22 @@ │ │ │ │ │ │ │ │ package org.jsoup.select; │ │ │ │ │ │ │ │ import org.jsoup.nodes.Element; │ │ │ │ +import org.jsoup.internal.Normalizer; │ │ │ │ │ │ │ │ public final class Evaluator$ContainsText extends Evaluator │ │ │ │ { │ │ │ │ private String searchText; │ │ │ │ │ │ │ │ public Evaluator$ContainsText(final String s) { │ │ │ │ - this.searchText = s.toLowerCase(); │ │ │ │ + this.searchText = Normalizer.lowerCase(s); │ │ │ │ } │ │ │ │ │ │ │ │ public boolean matches(final Element element, final Element element2) { │ │ │ │ - return element2.text().toLowerCase().contains(this.searchText); │ │ │ │ + return Normalizer.lowerCase(element2.text()).contains(this.searchText); │ │ │ │ } │ │ │ │ │ │ │ │ public String toString() { │ │ │ │ - return String.format(":contains(%s", this.searchText); │ │ │ │ + return String.format(":contains(%s)", this.searchText); │ │ │ │ } │ │ │ │ } │ │ ├── org/jsoup/select/Evaluator$IsFirstChild.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -19,75 +19,64 @@ │ │ │ │ #11 = Utf8 parent │ │ │ │ #12 = Utf8 ()Lorg/jsoup/nodes/Element; │ │ │ │ #13 = NameAndType #11:#12 // parent:()Lorg/jsoup/nodes/Element; │ │ │ │ #14 = Methodref #10.#13 // org/jsoup/nodes/Element.parent:()Lorg/jsoup/nodes/Element; │ │ │ │ #15 = Utf8 org/jsoup/nodes/Document │ │ │ │ #16 = Class #15 // org/jsoup/nodes/Document │ │ │ │ #17 = Utf8 elementSiblingIndex │ │ │ │ - #18 = Utf8 ()Ljava/lang/Integer; │ │ │ │ - #19 = NameAndType #17:#18 // elementSiblingIndex:()Ljava/lang/Integer; │ │ │ │ - #20 = Methodref #10.#19 // org/jsoup/nodes/Element.elementSiblingIndex:()Ljava/lang/Integer; │ │ │ │ - #21 = Utf8 java/lang/Integer │ │ │ │ - #22 = Class #21 // java/lang/Integer │ │ │ │ - #23 = Utf8 intValue │ │ │ │ - #24 = Utf8 ()I │ │ │ │ - #25 = NameAndType #23:#24 // intValue:()I │ │ │ │ - #26 = Methodref #22.#25 // java/lang/Integer.intValue:()I │ │ │ │ - #27 = Float 1.4E-45f │ │ │ │ - #28 = Utf8 :first-child │ │ │ │ - #29 = String #28 // :first-child │ │ │ │ - #30 = Utf8 Code │ │ │ │ - #31 = Utf8 matches │ │ │ │ - #32 = Utf8 (Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)Z │ │ │ │ - #33 = Utf8 toString │ │ │ │ - #34 = Utf8 ()Ljava/lang/String; │ │ │ │ + #18 = Utf8 ()I │ │ │ │ + #19 = NameAndType #17:#18 // elementSiblingIndex:()I │ │ │ │ + #20 = Methodref #10.#19 // org/jsoup/nodes/Element.elementSiblingIndex:()I │ │ │ │ + #21 = Float 1.4E-45f │ │ │ │ + #22 = Utf8 :first-child │ │ │ │ + #23 = String #22 // :first-child │ │ │ │ + #24 = Utf8 Code │ │ │ │ + #25 = Utf8 matches │ │ │ │ + #26 = Utf8 (Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)Z │ │ │ │ + #27 = Utf8 toString │ │ │ │ + #28 = Utf8 ()Ljava/lang/String; │ │ │ │ { │ │ │ │ public org.jsoup.select.Evaluator$IsFirstChild(); │ │ │ │ descriptor: ()V │ │ │ │ flags: (0x0001) ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=1, args_size=1 │ │ │ │ 0: aload_0 │ │ │ │ 1: invokespecial #8 // Method org/jsoup/select/Evaluator."":()V │ │ │ │ 4: return │ │ │ │ │ │ │ │ public boolean matches(org.jsoup.nodes.Element, org.jsoup.nodes.Element); │ │ │ │ descriptor: (Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)Z │ │ │ │ flags: (0x0001) ACC_PUBLIC │ │ │ │ Code: │ │ │ │ - stack=300, locals=6, args_size=3 │ │ │ │ + stack=300, locals=5, args_size=3 │ │ │ │ 0: aload_2 │ │ │ │ 1: invokevirtual #14 // Method org/jsoup/nodes/Element.parent:()Lorg/jsoup/nodes/Element; │ │ │ │ 4: astore_3 │ │ │ │ 5: aload_3 │ │ │ │ - 6: ifnull 44 │ │ │ │ + 6: ifnull 37 │ │ │ │ 9: aload_3 │ │ │ │ 10: instanceof #16 // class org/jsoup/nodes/Document │ │ │ │ 13: istore 4 │ │ │ │ 15: iload 4 │ │ │ │ - 17: ifne 44 │ │ │ │ + 17: ifne 37 │ │ │ │ 20: aload_2 │ │ │ │ - 21: invokevirtual #20 // Method org/jsoup/nodes/Element.elementSiblingIndex:()Ljava/lang/Integer; │ │ │ │ - 24: astore 5 │ │ │ │ - 26: aload 5 │ │ │ │ - 28: invokevirtual #26 // Method java/lang/Integer.intValue:()I │ │ │ │ - 31: istore 4 │ │ │ │ - 33: iload 4 │ │ │ │ - 35: ifne 44 │ │ │ │ - 38: iconst_1 │ │ │ │ - 39: istore 4 │ │ │ │ - 41: iload 4 │ │ │ │ - 43: ireturn │ │ │ │ - 44: iconst_0 │ │ │ │ - 45: istore 4 │ │ │ │ - 47: aconst_null │ │ │ │ - 48: astore 5 │ │ │ │ - 50: goto 41 │ │ │ │ + 21: invokevirtual #20 // Method org/jsoup/nodes/Element.elementSiblingIndex:()I │ │ │ │ + 24: istore 4 │ │ │ │ + 26: iload 4 │ │ │ │ + 28: ifne 37 │ │ │ │ + 31: iconst_1 │ │ │ │ + 32: istore 4 │ │ │ │ + 34: iload 4 │ │ │ │ + 36: ireturn │ │ │ │ + 37: iconst_0 │ │ │ │ + 38: istore 4 │ │ │ │ + 40: goto 34 │ │ │ │ │ │ │ │ public java.lang.String toString(); │ │ │ │ descriptor: ()Ljava/lang/String; │ │ │ │ flags: (0x0001) ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=1, args_size=1 │ │ │ │ - 0: ldc #29 // String :first-child │ │ │ │ + 0: ldc #23 // String :first-child │ │ │ │ 2: areturn │ │ │ │ } │ │ ├── org/jsoup/select/Evaluator$IsLastChild.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -19,93 +19,82 @@ │ │ │ │ #11 = Utf8 parent │ │ │ │ #12 = Utf8 ()Lorg/jsoup/nodes/Element; │ │ │ │ #13 = NameAndType #11:#12 // parent:()Lorg/jsoup/nodes/Element; │ │ │ │ #14 = Methodref #10.#13 // org/jsoup/nodes/Element.parent:()Lorg/jsoup/nodes/Element; │ │ │ │ #15 = Utf8 org/jsoup/nodes/Document │ │ │ │ #16 = Class #15 // org/jsoup/nodes/Document │ │ │ │ #17 = Utf8 elementSiblingIndex │ │ │ │ - #18 = Utf8 ()Ljava/lang/Integer; │ │ │ │ - #19 = NameAndType #17:#18 // elementSiblingIndex:()Ljava/lang/Integer; │ │ │ │ - #20 = Methodref #10.#19 // org/jsoup/nodes/Element.elementSiblingIndex:()Ljava/lang/Integer; │ │ │ │ - #21 = Utf8 java/lang/Integer │ │ │ │ - #22 = Class #21 // java/lang/Integer │ │ │ │ - #23 = Utf8 intValue │ │ │ │ - #24 = Utf8 ()I │ │ │ │ - #25 = NameAndType #23:#24 // intValue:()I │ │ │ │ - #26 = Methodref #22.#25 // java/lang/Integer.intValue:()I │ │ │ │ - #27 = Utf8 children │ │ │ │ - #28 = Utf8 ()Lorg/jsoup/select/Elements; │ │ │ │ - #29 = NameAndType #27:#28 // children:()Lorg/jsoup/select/Elements; │ │ │ │ - #30 = Methodref #10.#29 // org/jsoup/nodes/Element.children:()Lorg/jsoup/select/Elements; │ │ │ │ - #31 = Utf8 org/jsoup/select/Elements │ │ │ │ - #32 = Class #31 // org/jsoup/select/Elements │ │ │ │ - #33 = Utf8 size │ │ │ │ - #34 = NameAndType #33:#24 // size:()I │ │ │ │ - #35 = Methodref #32.#34 // org/jsoup/select/Elements.size:()I │ │ │ │ - #36 = Float 1.4E-45f │ │ │ │ - #37 = Utf8 :last-child │ │ │ │ - #38 = String #37 // :last-child │ │ │ │ - #39 = Utf8 Code │ │ │ │ - #40 = Utf8 matches │ │ │ │ - #41 = Utf8 (Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)Z │ │ │ │ - #42 = Utf8 toString │ │ │ │ - #43 = Utf8 ()Ljava/lang/String; │ │ │ │ + #18 = Utf8 ()I │ │ │ │ + #19 = NameAndType #17:#18 // elementSiblingIndex:()I │ │ │ │ + #20 = Methodref #10.#19 // org/jsoup/nodes/Element.elementSiblingIndex:()I │ │ │ │ + #21 = Utf8 children │ │ │ │ + #22 = Utf8 ()Lorg/jsoup/select/Elements; │ │ │ │ + #23 = NameAndType #21:#22 // children:()Lorg/jsoup/select/Elements; │ │ │ │ + #24 = Methodref #10.#23 // org/jsoup/nodes/Element.children:()Lorg/jsoup/select/Elements; │ │ │ │ + #25 = Utf8 org/jsoup/select/Elements │ │ │ │ + #26 = Class #25 // org/jsoup/select/Elements │ │ │ │ + #27 = Utf8 size │ │ │ │ + #28 = NameAndType #27:#18 // size:()I │ │ │ │ + #29 = Methodref #26.#28 // org/jsoup/select/Elements.size:()I │ │ │ │ + #30 = Float 1.4E-45f │ │ │ │ + #31 = Utf8 :last-child │ │ │ │ + #32 = String #31 // :last-child │ │ │ │ + #33 = Utf8 Code │ │ │ │ + #34 = Utf8 matches │ │ │ │ + #35 = Utf8 (Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)Z │ │ │ │ + #36 = Utf8 toString │ │ │ │ + #37 = Utf8 ()Ljava/lang/String; │ │ │ │ { │ │ │ │ public org.jsoup.select.Evaluator$IsLastChild(); │ │ │ │ descriptor: ()V │ │ │ │ flags: (0x0001) ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=1, args_size=1 │ │ │ │ 0: aload_0 │ │ │ │ 1: invokespecial #8 // Method org/jsoup/select/Evaluator."":()V │ │ │ │ 4: return │ │ │ │ │ │ │ │ public boolean matches(org.jsoup.nodes.Element, org.jsoup.nodes.Element); │ │ │ │ descriptor: (Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)Z │ │ │ │ flags: (0x0001) ACC_PUBLIC │ │ │ │ Code: │ │ │ │ - stack=300, locals=8, args_size=3 │ │ │ │ + stack=300, locals=7, args_size=3 │ │ │ │ 0: aload_2 │ │ │ │ 1: invokevirtual #14 // Method org/jsoup/nodes/Element.parent:()Lorg/jsoup/nodes/Element; │ │ │ │ 4: astore_3 │ │ │ │ 5: aload_3 │ │ │ │ - 6: ifnull 61 │ │ │ │ + 6: ifnull 54 │ │ │ │ 9: aload_3 │ │ │ │ 10: instanceof #16 // class org/jsoup/nodes/Document │ │ │ │ 13: istore 4 │ │ │ │ 15: iload 4 │ │ │ │ - 17: ifne 61 │ │ │ │ + 17: ifne 54 │ │ │ │ 20: aload_2 │ │ │ │ - 21: invokevirtual #20 // Method org/jsoup/nodes/Element.elementSiblingIndex:()Ljava/lang/Integer; │ │ │ │ - 24: astore 5 │ │ │ │ - 26: aload 5 │ │ │ │ - 28: invokevirtual #26 // Method java/lang/Integer.intValue:()I │ │ │ │ - 31: istore 4 │ │ │ │ - 33: aload_3 │ │ │ │ - 34: invokevirtual #30 // Method org/jsoup/nodes/Element.children:()Lorg/jsoup/select/Elements; │ │ │ │ - 37: astore 6 │ │ │ │ - 39: aload 6 │ │ │ │ - 41: invokevirtual #35 // Method org/jsoup/select/Elements.size:()I │ │ │ │ - 44: iconst_m1 │ │ │ │ - 45: iadd │ │ │ │ - 46: istore 7 │ │ │ │ - 48: iload 4 │ │ │ │ - 50: iload 7 │ │ │ │ - 52: if_icmpne 61 │ │ │ │ - 55: iconst_1 │ │ │ │ - 56: istore 4 │ │ │ │ - 58: iload 4 │ │ │ │ - 60: ireturn │ │ │ │ - 61: iconst_0 │ │ │ │ - 62: istore 4 │ │ │ │ - 64: aconst_null │ │ │ │ - 65: astore 5 │ │ │ │ - 67: goto 58 │ │ │ │ + 21: invokevirtual #20 // Method org/jsoup/nodes/Element.elementSiblingIndex:()I │ │ │ │ + 24: istore 4 │ │ │ │ + 26: aload_3 │ │ │ │ + 27: invokevirtual #24 // Method org/jsoup/nodes/Element.children:()Lorg/jsoup/select/Elements; │ │ │ │ + 30: astore 5 │ │ │ │ + 32: aload 5 │ │ │ │ + 34: invokevirtual #29 // Method org/jsoup/select/Elements.size:()I │ │ │ │ + 37: iconst_m1 │ │ │ │ + 38: iadd │ │ │ │ + 39: istore 6 │ │ │ │ + 41: iload 4 │ │ │ │ + 43: iload 6 │ │ │ │ + 45: if_icmpne 54 │ │ │ │ + 48: iconst_1 │ │ │ │ + 49: istore 4 │ │ │ │ + 51: iload 4 │ │ │ │ + 53: ireturn │ │ │ │ + 54: iconst_0 │ │ │ │ + 55: istore 4 │ │ │ │ + 57: goto 51 │ │ │ │ │ │ │ │ public java.lang.String toString(); │ │ │ │ descriptor: ()Ljava/lang/String; │ │ │ │ flags: (0x0001) ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=1, args_size=1 │ │ │ │ - 0: ldc #38 // String :last-child │ │ │ │ + 0: ldc #32 // String :last-child │ │ │ │ 2: areturn │ │ │ │ } │ │ ├── org/jsoup/select/Evaluator$Matches.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -13,10 +13,10 @@ │ │ │ │ } │ │ │ │ │ │ │ │ public boolean matches(final Element element, final Element element2) { │ │ │ │ return this.pattern.matcher(element2.text()).find(); │ │ │ │ } │ │ │ │ │ │ │ │ public String toString() { │ │ │ │ - return String.format(":matches(%s", this.pattern); │ │ │ │ + return String.format(":matches(%s)", this.pattern); │ │ │ │ } │ │ │ │ } │ │ ├── org/jsoup/select/Evaluator$MatchesOwn.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -13,10 +13,10 @@ │ │ │ │ } │ │ │ │ │ │ │ │ public boolean matches(final Element element, final Element element2) { │ │ │ │ return this.pattern.matcher(element2.ownText()).find(); │ │ │ │ } │ │ │ │ │ │ │ │ public String toString() { │ │ │ │ - return String.format(":matchesOwn(%s", this.pattern); │ │ │ │ + return String.format(":matchesOwn(%s)", this.pattern); │ │ │ │ } │ │ │ │ } │ │ ├── org/jsoup/select/Evaluator$Tag.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -8,14 +8,14 @@ │ │ │ │ private String tagName; │ │ │ │ │ │ │ │ public Evaluator$Tag(final String tagName) { │ │ │ │ this.tagName = tagName; │ │ │ │ } │ │ │ │ │ │ │ │ public boolean matches(final Element element, final Element element2) { │ │ │ │ - return element2.tagName().equals(this.tagName); │ │ │ │ + return element2.tagName().equalsIgnoreCase(this.tagName); │ │ │ │ } │ │ │ │ │ │ │ │ public String toString() { │ │ │ │ return String.format("%s", this.tagName); │ │ │ │ } │ │ │ │ } │ │ ├── org/jsoup/helper/HttpConnection$Request.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -35,20 +35,21 @@ │ │ │ │ super((HttpConnection$1)null); │ │ │ │ this.body = null; │ │ │ │ this.ignoreHttpErrors = false; │ │ │ │ this.ignoreContentType = false; │ │ │ │ this.parserDefined = false; │ │ │ │ this.validateTSLCertificates = b; │ │ │ │ this.postDataCharset = "UTF-8"; │ │ │ │ - this.timeoutMilliseconds = 3000; │ │ │ │ + this.timeoutMilliseconds = 30000; │ │ │ │ this.maxBodySizeBytes = 1048576; │ │ │ │ this.followRedirects = b; │ │ │ │ this.data = new ArrayList(); │ │ │ │ this.method = Connection$Method.GET; │ │ │ │ this.headers.put("Accept-Encoding", "gzip"); │ │ │ │ + this.headers.put("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36"); │ │ │ │ this.parser = Parser.htmlParser(); │ │ │ │ } │ │ │ │ │ │ │ │ public Collection data() { │ │ │ │ return this.data; │ │ │ │ } │ │ ├── org/jsoup/helper/HttpConnection$Response.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -141,17 +141,17 @@ │ │ │ │ Validate.notNull((Object)connection$Request, "Request must not be null"); │ │ │ │ final String protocol = connection$Request.url().getProtocol(); │ │ │ │ if (!protocol.equals("http") && !protocol.equals("https")) { │ │ │ │ throw new MalformedURLException("Only http & https protocols supported"); │ │ │ │ } │ │ │ │ final boolean hasBody = connection$Request.method().hasBody(); │ │ │ │ while (true) { │ │ │ │ - Label_0555: { │ │ │ │ + Label_0583: { │ │ │ │ if (connection$Request.requestBody() == null) { │ │ │ │ - break Label_0555; │ │ │ │ + break Label_0583; │ │ │ │ } │ │ │ │ final boolean b = true; │ │ │ │ if (!hasBody) { │ │ │ │ Validate.isFalse(b, "Cannot set a request body for HTTP method " + connection$Request.method()); │ │ │ │ } │ │ │ │ String setOutputContentType = null; │ │ │ │ if (connection$Request.data().size() > 0 && (!hasBody || b)) { │ │ │ │ @@ -159,46 +159,48 @@ │ │ │ │ } │ │ │ │ else if (hasBody) { │ │ │ │ setOutputContentType = setOutputContentType(connection$Request); │ │ │ │ } │ │ │ │ final HttpURLConnection connection = createConnection(connection$Request); │ │ │ │ int responseCode = 0; │ │ │ │ HttpConnection$Response execute = null; │ │ │ │ - Label_0593: { │ │ │ │ - Label_0575: { │ │ │ │ + Label_0621: { │ │ │ │ + Label_0603: { │ │ │ │ try { │ │ │ │ connection.connect(); │ │ │ │ if (connection.getDoOutput()) { │ │ │ │ writePost(connection$Request, connection.getOutputStream(), setOutputContentType); │ │ │ │ } │ │ │ │ responseCode = connection.getResponseCode(); │ │ │ │ execute = new HttpConnection$Response(httpConnection$Response); │ │ │ │ execute.setupFromConnection(connection, (Connection$Response)httpConnection$Response); │ │ │ │ execute.req = connection$Request; │ │ │ │ if (execute.hasHeader("Location") && connection$Request.followRedirects()) { │ │ │ │ if (responseCode != 307) { │ │ │ │ connection$Request.method(Connection$Method.GET); │ │ │ │ connection$Request.data().clear(); │ │ │ │ + connection$Request.requestBody((String)null); │ │ │ │ + connection$Request.removeHeader("Content-Type"); │ │ │ │ } │ │ │ │ String s = execute.header("Location"); │ │ │ │ if (s != null && s.startsWith("http:/") && s.charAt(6) != '/') { │ │ │ │ s = s.substring(6); │ │ │ │ } │ │ │ │ - connection$Request.url(StringUtil.resolve(connection$Request.url(), HttpConnection.access$200(s))); │ │ │ │ + connection$Request.url(HttpConnection.access$200(StringUtil.resolve(connection$Request.url(), s))); │ │ │ │ for (final Map.Entry entry : execute.cookies.entrySet()) { │ │ │ │ connection$Request.cookie((String)entry.getKey(), (String)entry.getValue()); │ │ │ │ } │ │ │ │ - break Label_0575; │ │ │ │ + break Label_0603; │ │ │ │ } │ │ │ │ - break Label_0593; │ │ │ │ + break Label_0621; │ │ │ │ } │ │ │ │ finally { │ │ │ │ connection.disconnect(); │ │ │ │ } │ │ │ │ - break Label_0555; │ │ │ │ + break Label_0583; │ │ │ │ } │ │ │ │ execute = execute(connection$Request, execute); │ │ │ │ connection.disconnect(); │ │ │ │ return execute; │ │ │ │ } │ │ │ │ if ((responseCode < 200 || responseCode >= 400) && !connection$Request.ignoreHttpErrors()) { │ │ │ │ throw new HttpStatusException("HTTP error fetching URL", responseCode, connection$Request.url().toString()); │ │ │ │ @@ -208,17 +210,17 @@ │ │ │ │ throw new UnsupportedMimeTypeException("Unhandled content type. Must be text/*, application/xml, or application/xhtml+xml", contentType, connection$Request.url().toString()); │ │ │ │ } │ │ │ │ if (contentType != null && HttpConnection$Response.xmlContentTypeRxp.matcher(contentType).matches() && connection$Request instanceof HttpConnection$Request && !HttpConnection$Request.access$300((HttpConnection$Request)connection$Request)) { │ │ │ │ ((Connection$Request)connection$Request).parser(Parser.xmlParser()); │ │ │ │ } │ │ │ │ execute.charset = DataUtil.getCharsetFromContentType(execute.contentType); │ │ │ │ while (true) { │ │ │ │ - Label_1060: { │ │ │ │ + Label_1094: { │ │ │ │ if (connection.getContentLength() == 0 || ((Connection$Request)connection$Request).method() == Connection$Method.HEAD) { │ │ │ │ - break Label_1060; │ │ │ │ + break Label_1094; │ │ │ │ } │ │ │ │ InputStream in = null; │ │ │ │ try { │ │ │ │ if (connection.getErrorStream() != null) { │ │ │ │ in = connection.getErrorStream(); │ │ │ │ } │ │ │ │ else { │ │ │ │ @@ -322,20 +324,22 @@ │ │ │ │ } │ │ │ │ connection$Request.url(new URL(sb.toString())); │ │ │ │ connection$Request.data().clear(); │ │ │ │ } │ │ │ │ │ │ │ │ private static String setOutputContentType(final Connection$Request connection$Request) { │ │ │ │ String mimeBoundary = null; │ │ │ │ - if (HttpConnection.access$400(connection$Request)) { │ │ │ │ - mimeBoundary = DataUtil.mimeBoundary(); │ │ │ │ - connection$Request.header("Content-Type", "multipart/form-data; boundary=" + mimeBoundary); │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - connection$Request.header("Content-Type", "application/x-www-form-urlencoded; charset=" + connection$Request.postDataCharset()); │ │ │ │ + if (!connection$Request.hasHeader("Content-Type")) { │ │ │ │ + if (HttpConnection.access$400(connection$Request)) { │ │ │ │ + mimeBoundary = DataUtil.mimeBoundary(); │ │ │ │ + connection$Request.header("Content-Type", "multipart/form-data; boundary=" + mimeBoundary); │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + connection$Request.header("Content-Type", "application/x-www-form-urlencoded; charset=" + connection$Request.postDataCharset()); │ │ │ │ + } │ │ │ │ } │ │ │ │ return mimeBoundary; │ │ │ │ } │ │ │ │ │ │ │ │ private void setupFromConnection(final HttpURLConnection httpURLConnection, final Connection$Response connection$Response) { │ │ │ │ this.method = Connection$Method.valueOf(httpURLConnection.getRequestMethod()); │ │ │ │ this.url = httpURLConnection.getURL(); │ │ │ │ @@ -419,14 +423,19 @@ │ │ │ │ return this.byteData.array(); │ │ │ │ } │ │ │ │ │ │ │ │ public String charset() { │ │ │ │ return this.charset; │ │ │ │ } │ │ │ │ │ │ │ │ + public HttpConnection$Response charset(final String charset) { │ │ │ │ + this.charset = charset; │ │ │ │ + return this; │ │ │ │ + } │ │ │ │ + │ │ │ │ public String contentType() { │ │ │ │ return this.contentType; │ │ │ │ } │ │ │ │ │ │ │ │ public Document parse() { │ │ │ │ Validate.isTrue(this.executed, "Request must be executed (with .execute(), .get(), or .post() before parsing response"); │ │ │ │ final Document byteData = DataUtil.parseByteData(this.byteData, this.charset, this.url.toExternalForm(), this.req.parser()); │ │ ├── org/jsoup/nodes/Document.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -4,24 +4,25 @@ │ │ │ │ import org.jsoup.helper.StringUtil; │ │ │ │ import java.nio.charset.Charset; │ │ │ │ import org.jsoup.select.Elements; │ │ │ │ import java.util.ArrayList; │ │ │ │ import java.util.Iterator; │ │ │ │ import org.jsoup.helper.Validate; │ │ │ │ import org.jsoup.parser.Tag; │ │ │ │ +import org.jsoup.parser.ParseSettings; │ │ │ │ │ │ │ │ public class Document extends Element │ │ │ │ { │ │ │ │ private String location; │ │ │ │ private Document$OutputSettings outputSettings; │ │ │ │ private Document$QuirksMode quirksMode; │ │ │ │ private boolean updateMetaCharset; │ │ │ │ │ │ │ │ public Document(final String location) { │ │ │ │ - super(Tag.valueOf("#root"), location); │ │ │ │ + super(Tag.valueOf("#root", ParseSettings.htmlDefault), location); │ │ │ │ this.outputSettings = new Document$OutputSettings(); │ │ │ │ this.quirksMode = Document$QuirksMode.noQuirks; │ │ │ │ this.updateMetaCharset = false; │ │ │ │ this.location = location; │ │ │ │ } │ │ │ │ │ │ │ │ public static Document createShell(final String s) { │ │ │ │ @@ -154,15 +155,15 @@ │ │ │ │ public Document clone() { │ │ │ │ final Document document = (Document)super.clone(); │ │ │ │ document.outputSettings = this.outputSettings.clone(); │ │ │ │ return document; │ │ │ │ } │ │ │ │ │ │ │ │ public Element createElement(final String s) { │ │ │ │ - return new Element(Tag.valueOf(s), this.baseUri()); │ │ │ │ + return new Element(Tag.valueOf(s, ParseSettings.preserveCase), this.baseUri()); │ │ │ │ } │ │ │ │ │ │ │ │ public Element head() { │ │ │ │ return this.findFirstElementByTagName("head", (Node)this); │ │ │ │ } │ │ │ │ │ │ │ │ public String location() { │ │ ├── org/jsoup/parser/Token$StartTag.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,22 +1,24 @@ │ │ │ │ │ │ │ │ package org.jsoup.parser; │ │ │ │ │ │ │ │ +import org.jsoup.internal.Normalizer; │ │ │ │ import org.jsoup.nodes.Attributes; │ │ │ │ │ │ │ │ final class Token$StartTag extends Token$Tag │ │ │ │ { │ │ │ │ Token$StartTag() { │ │ │ │ this.attributes = new Attributes(); │ │ │ │ this.type = Token$TokenType.StartTag; │ │ │ │ } │ │ │ │ │ │ │ │ Token$StartTag nameAttr(final String tagName, final Attributes attributes) { │ │ │ │ this.tagName = tagName; │ │ │ │ this.attributes = attributes; │ │ │ │ + this.normalName = Normalizer.lowerCase(this.tagName); │ │ │ │ return this; │ │ │ │ } │ │ │ │ │ │ │ │ Token$Tag reset() { │ │ │ │ super.reset(); │ │ │ │ this.attributes = new Attributes(); │ │ │ │ return this; │ │ ├── org/jsoup/select/CombiningEvaluator$Or.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,11 +1,12 @@ │ │ │ │ │ │ │ │ package org.jsoup.select; │ │ │ │ │ │ │ │ import org.jsoup.nodes.Element; │ │ │ │ +import java.util.Arrays; │ │ │ │ import java.util.Collection; │ │ │ │ │ │ │ │ final class CombiningEvaluator$Or extends CombiningEvaluator │ │ │ │ { │ │ │ │ CombiningEvaluator$Or() { │ │ │ │ } │ │ │ │ │ │ │ │ @@ -15,14 +16,18 @@ │ │ │ │ } │ │ │ │ else { │ │ │ │ this.evaluators.addAll(c); │ │ │ │ } │ │ │ │ this.updateNumEvaluators(); │ │ │ │ } │ │ │ │ │ │ │ │ + CombiningEvaluator$Or(final Evaluator... a) { │ │ │ │ + this(Arrays.asList(a)); │ │ │ │ + } │ │ │ │ + │ │ │ │ public void add(final Evaluator e) { │ │ │ │ this.evaluators.add(e); │ │ │ │ this.updateNumEvaluators(); │ │ │ │ } │ │ │ │ │ │ │ │ public boolean matches(final Element element, final Element element2) { │ │ │ │ for (int i = 0; i < this.num; ++i) { │ │ ├── org/jsoup/select/Evaluator$AttributeWithValueContaining.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,19 +1,20 @@ │ │ │ │ │ │ │ │ package org.jsoup.select; │ │ │ │ │ │ │ │ +import org.jsoup.internal.Normalizer; │ │ │ │ import org.jsoup.nodes.Element; │ │ │ │ │ │ │ │ public final class Evaluator$AttributeWithValueContaining extends Evaluator$AttributeKeyPair │ │ │ │ { │ │ │ │ public Evaluator$AttributeWithValueContaining(final String s, final String s2) { │ │ │ │ super(s, s2); │ │ │ │ } │ │ │ │ │ │ │ │ public boolean matches(final Element element, final Element element2) { │ │ │ │ - return element2.hasAttr(this.key) && element2.attr(this.key).toLowerCase().contains(this.value); │ │ │ │ + return element2.hasAttr(this.key) && Normalizer.lowerCase(element2.attr(this.key)).contains(this.value); │ │ │ │ } │ │ │ │ │ │ │ │ public String toString() { │ │ │ │ return String.format("[%s*=%s]", this.key, this.value); │ │ │ │ } │ │ │ │ } │ │ ├── org/jsoup/select/Evaluator$AttributeWithValueEnding.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,19 +1,20 @@ │ │ │ │ │ │ │ │ package org.jsoup.select; │ │ │ │ │ │ │ │ +import org.jsoup.internal.Normalizer; │ │ │ │ import org.jsoup.nodes.Element; │ │ │ │ │ │ │ │ public final class Evaluator$AttributeWithValueEnding extends Evaluator$AttributeKeyPair │ │ │ │ { │ │ │ │ public Evaluator$AttributeWithValueEnding(final String s, final String s2) { │ │ │ │ super(s, s2); │ │ │ │ } │ │ │ │ │ │ │ │ public boolean matches(final Element element, final Element element2) { │ │ │ │ - return element2.hasAttr(this.key) && element2.attr(this.key).toLowerCase().endsWith(this.value); │ │ │ │ + return element2.hasAttr(this.key) && Normalizer.lowerCase(element2.attr(this.key)).endsWith(this.value); │ │ │ │ } │ │ │ │ │ │ │ │ public String toString() { │ │ │ │ return String.format("[%s$=%s]", this.key, this.value); │ │ │ │ } │ │ │ │ } │ │ ├── org/jsoup/select/Evaluator$AttributeWithValueStarting.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,19 +1,20 @@ │ │ │ │ │ │ │ │ package org.jsoup.select; │ │ │ │ │ │ │ │ +import org.jsoup.internal.Normalizer; │ │ │ │ import org.jsoup.nodes.Element; │ │ │ │ │ │ │ │ public final class Evaluator$AttributeWithValueStarting extends Evaluator$AttributeKeyPair │ │ │ │ { │ │ │ │ public Evaluator$AttributeWithValueStarting(final String s, final String s2) { │ │ │ │ super(s, s2); │ │ │ │ } │ │ │ │ │ │ │ │ public boolean matches(final Element element, final Element element2) { │ │ │ │ - return element2.hasAttr(this.key) && element2.attr(this.key).toLowerCase().startsWith(this.value); │ │ │ │ + return element2.hasAttr(this.key) && Normalizer.lowerCase(element2.attr(this.key)).startsWith(this.value); │ │ │ │ } │ │ │ │ │ │ │ │ public String toString() { │ │ │ │ return String.format("[%s^=%s]", this.key, this.value); │ │ │ │ } │ │ │ │ } │ │ ├── org/jsoup/select/Evaluator$IndexEquals.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -13,47 +13,43 @@ │ │ │ │ #5 = Utf8 │ │ │ │ #6 = Utf8 (I)V │ │ │ │ #7 = NameAndType #5:#6 // "":(I)V │ │ │ │ #8 = Methodref #4.#7 // org/jsoup/select/Evaluator$IndexEvaluator."":(I)V │ │ │ │ #9 = Utf8 org/jsoup/nodes/Element │ │ │ │ #10 = Class #9 // org/jsoup/nodes/Element │ │ │ │ #11 = Utf8 elementSiblingIndex │ │ │ │ - #12 = Utf8 ()Ljava/lang/Integer; │ │ │ │ - #13 = NameAndType #11:#12 // elementSiblingIndex:()Ljava/lang/Integer; │ │ │ │ - #14 = Methodref #10.#13 // org/jsoup/nodes/Element.elementSiblingIndex:()Ljava/lang/Integer; │ │ │ │ - #15 = Utf8 java/lang/Integer │ │ │ │ - #16 = Class #15 // java/lang/Integer │ │ │ │ - #17 = Utf8 intValue │ │ │ │ - #18 = Utf8 ()I │ │ │ │ - #19 = NameAndType #17:#18 // intValue:()I │ │ │ │ - #20 = Methodref #16.#19 // java/lang/Integer.intValue:()I │ │ │ │ - #21 = Utf8 index │ │ │ │ - #22 = Utf8 I │ │ │ │ - #23 = NameAndType #21:#22 // index:I │ │ │ │ - #24 = Fieldref #2.#23 // org/jsoup/select/Evaluator$IndexEquals.index:I │ │ │ │ - #25 = Float 1.4E-45f │ │ │ │ - #26 = Utf8 :eq(%d) │ │ │ │ - #27 = String #26 // :eq(%d) │ │ │ │ - #28 = Utf8 java/lang/Object │ │ │ │ - #29 = Class #28 // java/lang/Object │ │ │ │ - #30 = Utf8 valueOf │ │ │ │ - #31 = Utf8 (I)Ljava/lang/Integer; │ │ │ │ - #32 = NameAndType #30:#31 // valueOf:(I)Ljava/lang/Integer; │ │ │ │ - #33 = Methodref #16.#32 // java/lang/Integer.valueOf:(I)Ljava/lang/Integer; │ │ │ │ - #34 = Utf8 java/lang/String │ │ │ │ - #35 = Class #34 // java/lang/String │ │ │ │ - #36 = Utf8 format │ │ │ │ - #37 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ - #38 = NameAndType #36:#37 // format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ - #39 = Methodref #35.#38 // java/lang/String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ - #40 = Utf8 Code │ │ │ │ - #41 = Utf8 matches │ │ │ │ - #42 = Utf8 (Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)Z │ │ │ │ - #43 = Utf8 toString │ │ │ │ - #44 = Utf8 ()Ljava/lang/String; │ │ │ │ + #12 = Utf8 ()I │ │ │ │ + #13 = NameAndType #11:#12 // elementSiblingIndex:()I │ │ │ │ + #14 = Methodref #10.#13 // org/jsoup/nodes/Element.elementSiblingIndex:()I │ │ │ │ + #15 = Utf8 index │ │ │ │ + #16 = Utf8 I │ │ │ │ + #17 = NameAndType #15:#16 // index:I │ │ │ │ + #18 = Fieldref #2.#17 // org/jsoup/select/Evaluator$IndexEquals.index:I │ │ │ │ + #19 = Float 1.4E-45f │ │ │ │ + #20 = Utf8 :eq(%d) │ │ │ │ + #21 = String #20 // :eq(%d) │ │ │ │ + #22 = Utf8 java/lang/Object │ │ │ │ + #23 = Class #22 // java/lang/Object │ │ │ │ + #24 = Utf8 java/lang/Integer │ │ │ │ + #25 = Class #24 // java/lang/Integer │ │ │ │ + #26 = Utf8 valueOf │ │ │ │ + #27 = Utf8 (I)Ljava/lang/Integer; │ │ │ │ + #28 = NameAndType #26:#27 // valueOf:(I)Ljava/lang/Integer; │ │ │ │ + #29 = Methodref #25.#28 // java/lang/Integer.valueOf:(I)Ljava/lang/Integer; │ │ │ │ + #30 = Utf8 java/lang/String │ │ │ │ + #31 = Class #30 // java/lang/String │ │ │ │ + #32 = Utf8 format │ │ │ │ + #33 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ + #34 = NameAndType #32:#33 // format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ + #35 = Methodref #31.#34 // java/lang/String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ + #36 = Utf8 Code │ │ │ │ + #37 = Utf8 matches │ │ │ │ + #38 = Utf8 (Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)Z │ │ │ │ + #39 = Utf8 toString │ │ │ │ + #40 = Utf8 ()Ljava/lang/String; │ │ │ │ { │ │ │ │ public org.jsoup.select.Evaluator$IndexEquals(int); │ │ │ │ descriptor: (I)V │ │ │ │ flags: (0x0001) ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=2, args_size=2 │ │ │ │ 0: aload_0 │ │ │ │ @@ -61,51 +57,46 @@ │ │ │ │ 2: invokespecial #8 // Method org/jsoup/select/Evaluator$IndexEvaluator."":(I)V │ │ │ │ 5: return │ │ │ │ │ │ │ │ public boolean matches(org.jsoup.nodes.Element, org.jsoup.nodes.Element); │ │ │ │ descriptor: (Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)Z │ │ │ │ flags: (0x0001) ACC_PUBLIC │ │ │ │ Code: │ │ │ │ - stack=300, locals=6, args_size=3 │ │ │ │ + stack=300, locals=5, args_size=3 │ │ │ │ 0: aload_2 │ │ │ │ - 1: invokevirtual #14 // Method org/jsoup/nodes/Element.elementSiblingIndex:()Ljava/lang/Integer; │ │ │ │ - 4: astore_3 │ │ │ │ - 5: aload_3 │ │ │ │ - 6: invokevirtual #20 // Method java/lang/Integer.intValue:()I │ │ │ │ + 1: invokevirtual #14 // Method org/jsoup/nodes/Element.elementSiblingIndex:()I │ │ │ │ + 4: istore_3 │ │ │ │ + 5: aload_0 │ │ │ │ + 6: getfield #18 // Field index:I │ │ │ │ 9: istore 4 │ │ │ │ - 11: aload_0 │ │ │ │ - 12: getfield #24 // Field index:I │ │ │ │ - 15: istore 5 │ │ │ │ - 17: iload 4 │ │ │ │ - 19: iload 5 │ │ │ │ - 21: if_icmpne 30 │ │ │ │ - 24: iconst_1 │ │ │ │ - 25: istore 4 │ │ │ │ - 27: iload 4 │ │ │ │ - 29: ireturn │ │ │ │ - 30: iconst_0 │ │ │ │ - 31: istore 4 │ │ │ │ - 33: aconst_null │ │ │ │ - 34: astore_3 │ │ │ │ - 35: goto 27 │ │ │ │ + 11: iload_3 │ │ │ │ + 12: iload 4 │ │ │ │ + 14: if_icmpne 21 │ │ │ │ + 17: iconst_1 │ │ │ │ + 18: istore_3 │ │ │ │ + 19: iload_3 │ │ │ │ + 20: ireturn │ │ │ │ + 21: iconst_0 │ │ │ │ + 22: istore_3 │ │ │ │ + 23: goto 19 │ │ │ │ │ │ │ │ public java.lang.String toString(); │ │ │ │ descriptor: ()Ljava/lang/String; │ │ │ │ flags: (0x0001) ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=3, args_size=1 │ │ │ │ 0: iconst_1 │ │ │ │ - 1: anewarray #29 // class java/lang/Object │ │ │ │ + 1: anewarray #23 // class java/lang/Object │ │ │ │ 4: astore_1 │ │ │ │ 5: aload_0 │ │ │ │ - 6: getfield #24 // Field index:I │ │ │ │ - 9: invokestatic #33 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer; │ │ │ │ + 6: getfield #18 // Field index:I │ │ │ │ + 9: invokestatic #29 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer; │ │ │ │ 12: astore_2 │ │ │ │ 13: aload_1 │ │ │ │ 14: iconst_0 │ │ │ │ 15: aload_2 │ │ │ │ 16: aastore │ │ │ │ - 17: ldc #27 // String :eq(%d) │ │ │ │ + 17: ldc #21 // String :eq(%d) │ │ │ │ 19: aload_1 │ │ │ │ - 20: invokestatic #39 // Method java/lang/String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ + 20: invokestatic #35 // Method java/lang/String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ 23: areturn │ │ │ │ } │ │ ├── org/jsoup/select/Evaluator$IndexGreaterThan.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -13,47 +13,43 @@ │ │ │ │ #5 = Utf8 │ │ │ │ #6 = Utf8 (I)V │ │ │ │ #7 = NameAndType #5:#6 // "":(I)V │ │ │ │ #8 = Methodref #4.#7 // org/jsoup/select/Evaluator$IndexEvaluator."":(I)V │ │ │ │ #9 = Utf8 org/jsoup/nodes/Element │ │ │ │ #10 = Class #9 // org/jsoup/nodes/Element │ │ │ │ #11 = Utf8 elementSiblingIndex │ │ │ │ - #12 = Utf8 ()Ljava/lang/Integer; │ │ │ │ - #13 = NameAndType #11:#12 // elementSiblingIndex:()Ljava/lang/Integer; │ │ │ │ - #14 = Methodref #10.#13 // org/jsoup/nodes/Element.elementSiblingIndex:()Ljava/lang/Integer; │ │ │ │ - #15 = Utf8 java/lang/Integer │ │ │ │ - #16 = Class #15 // java/lang/Integer │ │ │ │ - #17 = Utf8 intValue │ │ │ │ - #18 = Utf8 ()I │ │ │ │ - #19 = NameAndType #17:#18 // intValue:()I │ │ │ │ - #20 = Methodref #16.#19 // java/lang/Integer.intValue:()I │ │ │ │ - #21 = Utf8 index │ │ │ │ - #22 = Utf8 I │ │ │ │ - #23 = NameAndType #21:#22 // index:I │ │ │ │ - #24 = Fieldref #2.#23 // org/jsoup/select/Evaluator$IndexGreaterThan.index:I │ │ │ │ - #25 = Float 1.4E-45f │ │ │ │ - #26 = Utf8 :gt(%d) │ │ │ │ - #27 = String #26 // :gt(%d) │ │ │ │ - #28 = Utf8 java/lang/Object │ │ │ │ - #29 = Class #28 // java/lang/Object │ │ │ │ - #30 = Utf8 valueOf │ │ │ │ - #31 = Utf8 (I)Ljava/lang/Integer; │ │ │ │ - #32 = NameAndType #30:#31 // valueOf:(I)Ljava/lang/Integer; │ │ │ │ - #33 = Methodref #16.#32 // java/lang/Integer.valueOf:(I)Ljava/lang/Integer; │ │ │ │ - #34 = Utf8 java/lang/String │ │ │ │ - #35 = Class #34 // java/lang/String │ │ │ │ - #36 = Utf8 format │ │ │ │ - #37 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ - #38 = NameAndType #36:#37 // format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ - #39 = Methodref #35.#38 // java/lang/String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ - #40 = Utf8 Code │ │ │ │ - #41 = Utf8 matches │ │ │ │ - #42 = Utf8 (Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)Z │ │ │ │ - #43 = Utf8 toString │ │ │ │ - #44 = Utf8 ()Ljava/lang/String; │ │ │ │ + #12 = Utf8 ()I │ │ │ │ + #13 = NameAndType #11:#12 // elementSiblingIndex:()I │ │ │ │ + #14 = Methodref #10.#13 // org/jsoup/nodes/Element.elementSiblingIndex:()I │ │ │ │ + #15 = Utf8 index │ │ │ │ + #16 = Utf8 I │ │ │ │ + #17 = NameAndType #15:#16 // index:I │ │ │ │ + #18 = Fieldref #2.#17 // org/jsoup/select/Evaluator$IndexGreaterThan.index:I │ │ │ │ + #19 = Float 1.4E-45f │ │ │ │ + #20 = Utf8 :gt(%d) │ │ │ │ + #21 = String #20 // :gt(%d) │ │ │ │ + #22 = Utf8 java/lang/Object │ │ │ │ + #23 = Class #22 // java/lang/Object │ │ │ │ + #24 = Utf8 java/lang/Integer │ │ │ │ + #25 = Class #24 // java/lang/Integer │ │ │ │ + #26 = Utf8 valueOf │ │ │ │ + #27 = Utf8 (I)Ljava/lang/Integer; │ │ │ │ + #28 = NameAndType #26:#27 // valueOf:(I)Ljava/lang/Integer; │ │ │ │ + #29 = Methodref #25.#28 // java/lang/Integer.valueOf:(I)Ljava/lang/Integer; │ │ │ │ + #30 = Utf8 java/lang/String │ │ │ │ + #31 = Class #30 // java/lang/String │ │ │ │ + #32 = Utf8 format │ │ │ │ + #33 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ + #34 = NameAndType #32:#33 // format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ + #35 = Methodref #31.#34 // java/lang/String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ + #36 = Utf8 Code │ │ │ │ + #37 = Utf8 matches │ │ │ │ + #38 = Utf8 (Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)Z │ │ │ │ + #39 = Utf8 toString │ │ │ │ + #40 = Utf8 ()Ljava/lang/String; │ │ │ │ { │ │ │ │ public org.jsoup.select.Evaluator$IndexGreaterThan(int); │ │ │ │ descriptor: (I)V │ │ │ │ flags: (0x0001) ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=2, args_size=2 │ │ │ │ 0: aload_0 │ │ │ │ @@ -61,51 +57,46 @@ │ │ │ │ 2: invokespecial #8 // Method org/jsoup/select/Evaluator$IndexEvaluator."":(I)V │ │ │ │ 5: return │ │ │ │ │ │ │ │ public boolean matches(org.jsoup.nodes.Element, org.jsoup.nodes.Element); │ │ │ │ descriptor: (Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)Z │ │ │ │ flags: (0x0001) ACC_PUBLIC │ │ │ │ Code: │ │ │ │ - stack=300, locals=6, args_size=3 │ │ │ │ + stack=300, locals=5, args_size=3 │ │ │ │ 0: aload_2 │ │ │ │ - 1: invokevirtual #14 // Method org/jsoup/nodes/Element.elementSiblingIndex:()Ljava/lang/Integer; │ │ │ │ - 4: astore_3 │ │ │ │ - 5: aload_3 │ │ │ │ - 6: invokevirtual #20 // Method java/lang/Integer.intValue:()I │ │ │ │ + 1: invokevirtual #14 // Method org/jsoup/nodes/Element.elementSiblingIndex:()I │ │ │ │ + 4: istore_3 │ │ │ │ + 5: aload_0 │ │ │ │ + 6: getfield #18 // Field index:I │ │ │ │ 9: istore 4 │ │ │ │ - 11: aload_0 │ │ │ │ - 12: getfield #24 // Field index:I │ │ │ │ - 15: istore 5 │ │ │ │ - 17: iload 4 │ │ │ │ - 19: iload 5 │ │ │ │ - 21: if_icmple 30 │ │ │ │ - 24: iconst_1 │ │ │ │ - 25: istore 4 │ │ │ │ - 27: iload 4 │ │ │ │ - 29: ireturn │ │ │ │ - 30: iconst_0 │ │ │ │ - 31: istore 4 │ │ │ │ - 33: aconst_null │ │ │ │ - 34: astore_3 │ │ │ │ - 35: goto 27 │ │ │ │ + 11: iload_3 │ │ │ │ + 12: iload 4 │ │ │ │ + 14: if_icmple 21 │ │ │ │ + 17: iconst_1 │ │ │ │ + 18: istore_3 │ │ │ │ + 19: iload_3 │ │ │ │ + 20: ireturn │ │ │ │ + 21: iconst_0 │ │ │ │ + 22: istore_3 │ │ │ │ + 23: goto 19 │ │ │ │ │ │ │ │ public java.lang.String toString(); │ │ │ │ descriptor: ()Ljava/lang/String; │ │ │ │ flags: (0x0001) ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=3, args_size=1 │ │ │ │ 0: iconst_1 │ │ │ │ - 1: anewarray #29 // class java/lang/Object │ │ │ │ + 1: anewarray #23 // class java/lang/Object │ │ │ │ 4: astore_1 │ │ │ │ 5: aload_0 │ │ │ │ - 6: getfield #24 // Field index:I │ │ │ │ - 9: invokestatic #33 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer; │ │ │ │ + 6: getfield #18 // Field index:I │ │ │ │ + 9: invokestatic #29 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer; │ │ │ │ 12: astore_2 │ │ │ │ 13: aload_1 │ │ │ │ 14: iconst_0 │ │ │ │ 15: aload_2 │ │ │ │ 16: aastore │ │ │ │ - 17: ldc #27 // String :gt(%d) │ │ │ │ + 17: ldc #21 // String :gt(%d) │ │ │ │ 19: aload_1 │ │ │ │ - 20: invokestatic #39 // Method java/lang/String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ + 20: invokestatic #35 // Method java/lang/String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ 23: areturn │ │ │ │ } │ │ ├── org/jsoup/select/Evaluator$IndexLessThan.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -13,47 +13,43 @@ │ │ │ │ #5 = Utf8 │ │ │ │ #6 = Utf8 (I)V │ │ │ │ #7 = NameAndType #5:#6 // "":(I)V │ │ │ │ #8 = Methodref #4.#7 // org/jsoup/select/Evaluator$IndexEvaluator."":(I)V │ │ │ │ #9 = Utf8 org/jsoup/nodes/Element │ │ │ │ #10 = Class #9 // org/jsoup/nodes/Element │ │ │ │ #11 = Utf8 elementSiblingIndex │ │ │ │ - #12 = Utf8 ()Ljava/lang/Integer; │ │ │ │ - #13 = NameAndType #11:#12 // elementSiblingIndex:()Ljava/lang/Integer; │ │ │ │ - #14 = Methodref #10.#13 // org/jsoup/nodes/Element.elementSiblingIndex:()Ljava/lang/Integer; │ │ │ │ - #15 = Utf8 java/lang/Integer │ │ │ │ - #16 = Class #15 // java/lang/Integer │ │ │ │ - #17 = Utf8 intValue │ │ │ │ - #18 = Utf8 ()I │ │ │ │ - #19 = NameAndType #17:#18 // intValue:()I │ │ │ │ - #20 = Methodref #16.#19 // java/lang/Integer.intValue:()I │ │ │ │ - #21 = Utf8 index │ │ │ │ - #22 = Utf8 I │ │ │ │ - #23 = NameAndType #21:#22 // index:I │ │ │ │ - #24 = Fieldref #2.#23 // org/jsoup/select/Evaluator$IndexLessThan.index:I │ │ │ │ - #25 = Float 1.4E-45f │ │ │ │ - #26 = Utf8 :lt(%d) │ │ │ │ - #27 = String #26 // :lt(%d) │ │ │ │ - #28 = Utf8 java/lang/Object │ │ │ │ - #29 = Class #28 // java/lang/Object │ │ │ │ - #30 = Utf8 valueOf │ │ │ │ - #31 = Utf8 (I)Ljava/lang/Integer; │ │ │ │ - #32 = NameAndType #30:#31 // valueOf:(I)Ljava/lang/Integer; │ │ │ │ - #33 = Methodref #16.#32 // java/lang/Integer.valueOf:(I)Ljava/lang/Integer; │ │ │ │ - #34 = Utf8 java/lang/String │ │ │ │ - #35 = Class #34 // java/lang/String │ │ │ │ - #36 = Utf8 format │ │ │ │ - #37 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ - #38 = NameAndType #36:#37 // format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ - #39 = Methodref #35.#38 // java/lang/String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ - #40 = Utf8 Code │ │ │ │ - #41 = Utf8 matches │ │ │ │ - #42 = Utf8 (Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)Z │ │ │ │ - #43 = Utf8 toString │ │ │ │ - #44 = Utf8 ()Ljava/lang/String; │ │ │ │ + #12 = Utf8 ()I │ │ │ │ + #13 = NameAndType #11:#12 // elementSiblingIndex:()I │ │ │ │ + #14 = Methodref #10.#13 // org/jsoup/nodes/Element.elementSiblingIndex:()I │ │ │ │ + #15 = Utf8 index │ │ │ │ + #16 = Utf8 I │ │ │ │ + #17 = NameAndType #15:#16 // index:I │ │ │ │ + #18 = Fieldref #2.#17 // org/jsoup/select/Evaluator$IndexLessThan.index:I │ │ │ │ + #19 = Float 1.4E-45f │ │ │ │ + #20 = Utf8 :lt(%d) │ │ │ │ + #21 = String #20 // :lt(%d) │ │ │ │ + #22 = Utf8 java/lang/Object │ │ │ │ + #23 = Class #22 // java/lang/Object │ │ │ │ + #24 = Utf8 java/lang/Integer │ │ │ │ + #25 = Class #24 // java/lang/Integer │ │ │ │ + #26 = Utf8 valueOf │ │ │ │ + #27 = Utf8 (I)Ljava/lang/Integer; │ │ │ │ + #28 = NameAndType #26:#27 // valueOf:(I)Ljava/lang/Integer; │ │ │ │ + #29 = Methodref #25.#28 // java/lang/Integer.valueOf:(I)Ljava/lang/Integer; │ │ │ │ + #30 = Utf8 java/lang/String │ │ │ │ + #31 = Class #30 // java/lang/String │ │ │ │ + #32 = Utf8 format │ │ │ │ + #33 = Utf8 (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ + #34 = NameAndType #32:#33 // format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ + #35 = Methodref #31.#34 // java/lang/String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ + #36 = Utf8 Code │ │ │ │ + #37 = Utf8 matches │ │ │ │ + #38 = Utf8 (Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)Z │ │ │ │ + #39 = Utf8 toString │ │ │ │ + #40 = Utf8 ()Ljava/lang/String; │ │ │ │ { │ │ │ │ public org.jsoup.select.Evaluator$IndexLessThan(int); │ │ │ │ descriptor: (I)V │ │ │ │ flags: (0x0001) ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=2, args_size=2 │ │ │ │ 0: aload_0 │ │ │ │ @@ -61,51 +57,46 @@ │ │ │ │ 2: invokespecial #8 // Method org/jsoup/select/Evaluator$IndexEvaluator."":(I)V │ │ │ │ 5: return │ │ │ │ │ │ │ │ public boolean matches(org.jsoup.nodes.Element, org.jsoup.nodes.Element); │ │ │ │ descriptor: (Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)Z │ │ │ │ flags: (0x0001) ACC_PUBLIC │ │ │ │ Code: │ │ │ │ - stack=300, locals=6, args_size=3 │ │ │ │ + stack=300, locals=5, args_size=3 │ │ │ │ 0: aload_2 │ │ │ │ - 1: invokevirtual #14 // Method org/jsoup/nodes/Element.elementSiblingIndex:()Ljava/lang/Integer; │ │ │ │ - 4: astore_3 │ │ │ │ - 5: aload_3 │ │ │ │ - 6: invokevirtual #20 // Method java/lang/Integer.intValue:()I │ │ │ │ + 1: invokevirtual #14 // Method org/jsoup/nodes/Element.elementSiblingIndex:()I │ │ │ │ + 4: istore_3 │ │ │ │ + 5: aload_0 │ │ │ │ + 6: getfield #18 // Field index:I │ │ │ │ 9: istore 4 │ │ │ │ - 11: aload_0 │ │ │ │ - 12: getfield #24 // Field index:I │ │ │ │ - 15: istore 5 │ │ │ │ - 17: iload 4 │ │ │ │ - 19: iload 5 │ │ │ │ - 21: if_icmpge 30 │ │ │ │ - 24: iconst_1 │ │ │ │ - 25: istore 4 │ │ │ │ - 27: iload 4 │ │ │ │ - 29: ireturn │ │ │ │ - 30: iconst_0 │ │ │ │ - 31: istore 4 │ │ │ │ - 33: aconst_null │ │ │ │ - 34: astore_3 │ │ │ │ - 35: goto 27 │ │ │ │ + 11: iload_3 │ │ │ │ + 12: iload 4 │ │ │ │ + 14: if_icmpge 21 │ │ │ │ + 17: iconst_1 │ │ │ │ + 18: istore_3 │ │ │ │ + 19: iload_3 │ │ │ │ + 20: ireturn │ │ │ │ + 21: iconst_0 │ │ │ │ + 22: istore_3 │ │ │ │ + 23: goto 19 │ │ │ │ │ │ │ │ public java.lang.String toString(); │ │ │ │ descriptor: ()Ljava/lang/String; │ │ │ │ flags: (0x0001) ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=3, args_size=1 │ │ │ │ 0: iconst_1 │ │ │ │ - 1: anewarray #29 // class java/lang/Object │ │ │ │ + 1: anewarray #23 // class java/lang/Object │ │ │ │ 4: astore_1 │ │ │ │ 5: aload_0 │ │ │ │ - 6: getfield #24 // Field index:I │ │ │ │ - 9: invokestatic #33 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer; │ │ │ │ + 6: getfield #18 // Field index:I │ │ │ │ + 9: invokestatic #29 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer; │ │ │ │ 12: astore_2 │ │ │ │ 13: aload_1 │ │ │ │ 14: iconst_0 │ │ │ │ 15: aload_2 │ │ │ │ 16: aastore │ │ │ │ - 17: ldc #27 // String :lt(%d) │ │ │ │ + 17: ldc #21 // String :lt(%d) │ │ │ │ 19: aload_1 │ │ │ │ - 20: invokestatic #39 // Method java/lang/String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ + 20: invokestatic #35 // Method java/lang/String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ │ │ 23: areturn │ │ │ │ } │ │ ├── org/jsoup/select/Evaluator$IsNthChild.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -13,30 +13,24 @@ │ │ │ │ #5 = Utf8 │ │ │ │ #6 = Utf8 (II)V │ │ │ │ #7 = NameAndType #5:#6 // "":(II)V │ │ │ │ #8 = Methodref #4.#7 // org/jsoup/select/Evaluator$CssNthEvaluator."":(II)V │ │ │ │ #9 = Utf8 org/jsoup/nodes/Element │ │ │ │ #10 = Class #9 // org/jsoup/nodes/Element │ │ │ │ #11 = Utf8 elementSiblingIndex │ │ │ │ - #12 = Utf8 ()Ljava/lang/Integer; │ │ │ │ - #13 = NameAndType #11:#12 // elementSiblingIndex:()Ljava/lang/Integer; │ │ │ │ - #14 = Methodref #10.#13 // org/jsoup/nodes/Element.elementSiblingIndex:()Ljava/lang/Integer; │ │ │ │ - #15 = Utf8 java/lang/Integer │ │ │ │ - #16 = Class #15 // java/lang/Integer │ │ │ │ - #17 = Utf8 intValue │ │ │ │ - #18 = Utf8 ()I │ │ │ │ - #19 = NameAndType #17:#18 // intValue:()I │ │ │ │ - #20 = Methodref #16.#19 // java/lang/Integer.intValue:()I │ │ │ │ - #21 = Utf8 nth-child │ │ │ │ - #22 = String #21 // nth-child │ │ │ │ - #23 = Utf8 Code │ │ │ │ - #24 = Utf8 calculatePosition │ │ │ │ - #25 = Utf8 (Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)I │ │ │ │ - #26 = Utf8 getPseudoClass │ │ │ │ - #27 = Utf8 ()Ljava/lang/String; │ │ │ │ + #12 = Utf8 ()I │ │ │ │ + #13 = NameAndType #11:#12 // elementSiblingIndex:()I │ │ │ │ + #14 = Methodref #10.#13 // org/jsoup/nodes/Element.elementSiblingIndex:()I │ │ │ │ + #15 = Utf8 nth-child │ │ │ │ + #16 = String #15 // nth-child │ │ │ │ + #17 = Utf8 Code │ │ │ │ + #18 = Utf8 calculatePosition │ │ │ │ + #19 = Utf8 (Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)I │ │ │ │ + #20 = Utf8 getPseudoClass │ │ │ │ + #21 = Utf8 ()Ljava/lang/String; │ │ │ │ { │ │ │ │ public org.jsoup.select.Evaluator$IsNthChild(int, int); │ │ │ │ descriptor: (II)V │ │ │ │ flags: (0x0001) ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=3, args_size=3 │ │ │ │ 0: aload_0 │ │ │ │ @@ -47,21 +41,20 @@ │ │ │ │ │ │ │ │ protected int calculatePosition(org.jsoup.nodes.Element, org.jsoup.nodes.Element); │ │ │ │ descriptor: (Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)I │ │ │ │ flags: (0x0004) ACC_PROTECTED │ │ │ │ Code: │ │ │ │ stack=300, locals=3, args_size=3 │ │ │ │ 0: aload_2 │ │ │ │ - 1: invokevirtual #14 // Method org/jsoup/nodes/Element.elementSiblingIndex:()Ljava/lang/Integer; │ │ │ │ - 4: invokevirtual #20 // Method java/lang/Integer.intValue:()I │ │ │ │ - 7: iconst_1 │ │ │ │ - 8: iadd │ │ │ │ - 9: ireturn │ │ │ │ + 1: invokevirtual #14 // Method org/jsoup/nodes/Element.elementSiblingIndex:()I │ │ │ │ + 4: iconst_1 │ │ │ │ + 5: iadd │ │ │ │ + 6: ireturn │ │ │ │ │ │ │ │ protected java.lang.String getPseudoClass(); │ │ │ │ descriptor: ()Ljava/lang/String; │ │ │ │ flags: (0x0004) ACC_PROTECTED │ │ │ │ Code: │ │ │ │ stack=300, locals=1, args_size=1 │ │ │ │ - 0: ldc #22 // String nth-child │ │ │ │ + 0: ldc #16 // String nth-child │ │ │ │ 2: areturn │ │ │ │ } │ │ ├── org/jsoup/select/Evaluator$IsNthLastChild.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -27,29 +27,23 @@ │ │ │ │ #19 = Utf8 org/jsoup/select/Elements │ │ │ │ #20 = Class #19 // org/jsoup/select/Elements │ │ │ │ #21 = Utf8 size │ │ │ │ #22 = Utf8 ()I │ │ │ │ #23 = NameAndType #21:#22 // size:()I │ │ │ │ #24 = Methodref #20.#23 // org/jsoup/select/Elements.size:()I │ │ │ │ #25 = Utf8 elementSiblingIndex │ │ │ │ - #26 = Utf8 ()Ljava/lang/Integer; │ │ │ │ - #27 = NameAndType #25:#26 // elementSiblingIndex:()Ljava/lang/Integer; │ │ │ │ - #28 = Methodref #10.#27 // org/jsoup/nodes/Element.elementSiblingIndex:()Ljava/lang/Integer; │ │ │ │ - #29 = Utf8 java/lang/Integer │ │ │ │ - #30 = Class #29 // java/lang/Integer │ │ │ │ - #31 = Utf8 intValue │ │ │ │ - #32 = NameAndType #31:#22 // intValue:()I │ │ │ │ - #33 = Methodref #30.#32 // java/lang/Integer.intValue:()I │ │ │ │ - #34 = Utf8 nth-last-child │ │ │ │ - #35 = String #34 // nth-last-child │ │ │ │ - #36 = Utf8 Code │ │ │ │ - #37 = Utf8 calculatePosition │ │ │ │ - #38 = Utf8 (Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)I │ │ │ │ - #39 = Utf8 getPseudoClass │ │ │ │ - #40 = Utf8 ()Ljava/lang/String; │ │ │ │ + #26 = NameAndType #25:#22 // elementSiblingIndex:()I │ │ │ │ + #27 = Methodref #10.#26 // org/jsoup/nodes/Element.elementSiblingIndex:()I │ │ │ │ + #28 = Utf8 nth-last-child │ │ │ │ + #29 = String #28 // nth-last-child │ │ │ │ + #30 = Utf8 Code │ │ │ │ + #31 = Utf8 calculatePosition │ │ │ │ + #32 = Utf8 (Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)I │ │ │ │ + #33 = Utf8 getPseudoClass │ │ │ │ + #34 = Utf8 ()Ljava/lang/String; │ │ │ │ { │ │ │ │ public org.jsoup.select.Evaluator$IsNthLastChild(int, int); │ │ │ │ descriptor: (II)V │ │ │ │ flags: (0x0001) ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=3, args_size=3 │ │ │ │ 0: aload_0 │ │ │ │ @@ -65,23 +59,22 @@ │ │ │ │ stack=300, locals=5, args_size=3 │ │ │ │ 0: aload_2 │ │ │ │ 1: invokevirtual #14 // Method org/jsoup/nodes/Element.parent:()Lorg/jsoup/nodes/Element; │ │ │ │ 4: invokevirtual #18 // Method org/jsoup/nodes/Element.children:()Lorg/jsoup/select/Elements; │ │ │ │ 7: invokevirtual #24 // Method org/jsoup/select/Elements.size:()I │ │ │ │ 10: istore_3 │ │ │ │ 11: aload_2 │ │ │ │ - 12: invokevirtual #28 // Method org/jsoup/nodes/Element.elementSiblingIndex:()Ljava/lang/Integer; │ │ │ │ - 15: invokevirtual #33 // Method java/lang/Integer.intValue:()I │ │ │ │ - 18: istore 4 │ │ │ │ - 20: iload_3 │ │ │ │ - 21: iload 4 │ │ │ │ - 23: isub │ │ │ │ - 24: ireturn │ │ │ │ + 12: invokevirtual #27 // Method org/jsoup/nodes/Element.elementSiblingIndex:()I │ │ │ │ + 15: istore 4 │ │ │ │ + 17: iload_3 │ │ │ │ + 18: iload 4 │ │ │ │ + 20: isub │ │ │ │ + 21: ireturn │ │ │ │ │ │ │ │ protected java.lang.String getPseudoClass(); │ │ │ │ descriptor: ()Ljava/lang/String; │ │ │ │ flags: (0x0004) ACC_PROTECTED │ │ │ │ Code: │ │ │ │ stack=300, locals=1, args_size=1 │ │ │ │ - 0: ldc #35 // String nth-last-child │ │ │ │ + 0: ldc #29 // String nth-last-child │ │ │ │ 2: areturn │ │ │ │ } │ │ ├── org/jsoup/select/Evaluator$IsNthLastOfType.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -8,15 +8,15 @@ │ │ │ │ public Evaluator$IsNthLastOfType(final int n, final int n2) { │ │ │ │ super(n, n2); │ │ │ │ } │ │ │ │ │ │ │ │ protected int calculatePosition(final Element element, final Element element2) { │ │ │ │ int n = 0; │ │ │ │ final Elements children = element2.parent().children(); │ │ │ │ - for (int i = (int)element2.elementSiblingIndex(); i < children.size(); ++i) { │ │ │ │ + for (int i = element2.elementSiblingIndex(); i < children.size(); ++i) { │ │ │ │ if (((Element)children.get(i)).tag().equals((Object)element2.tag())) { │ │ │ │ ++n; │ │ │ │ } │ │ │ │ } │ │ │ │ return n; │ │ │ │ } ├── smali/org/jsoup/Jsoup.smali │ @@ -55,36 +55,36 @@ │ .locals 4 │ .param p0, "bodyHtml" # Ljava/lang/String; │ .param p1, "baseUri" # Ljava/lang/String; │ .param p2, "whitelist" # Lorg/jsoup/safety/Whitelist; │ .param p3, "outputSettings" # Lorg/jsoup/nodes/Document$OutputSettings; │ │ .prologue │ - .line 231 │ + .line 233 │ invoke-static {p0, p1}, Lorg/jsoup/Jsoup;->parseBodyFragment(Ljava/lang/String;Ljava/lang/String;)Lorg/jsoup/nodes/Document; │ │ move-result-object v2 │ │ - .line 232 │ + .line 234 │ .local v2, "dirty":Lorg/jsoup/nodes/Document; │ new-instance v1, Lorg/jsoup/safety/Cleaner; │ │ invoke-direct {v1, p2}, Lorg/jsoup/safety/Cleaner;->(Lorg/jsoup/safety/Whitelist;)V │ │ - .line 233 │ + .line 235 │ .local v1, "cleaner":Lorg/jsoup/safety/Cleaner; │ invoke-virtual {v1, v2}, Lorg/jsoup/safety/Cleaner;->clean(Lorg/jsoup/nodes/Document;)Lorg/jsoup/nodes/Document; │ │ move-result-object v0 │ │ - .line 234 │ + .line 236 │ .local v0, "clean":Lorg/jsoup/nodes/Document; │ invoke-virtual {v0, p3}, Lorg/jsoup/nodes/Document;->outputSettings(Lorg/jsoup/nodes/Document$OutputSettings;)Lorg/jsoup/nodes/Document; │ │ - .line 235 │ + .line 237 │ invoke-virtual {v0}, Lorg/jsoup/nodes/Document;->body()Lorg/jsoup/nodes/Element; │ │ move-result-object v3 │ │ invoke-virtual {v3}, Lorg/jsoup/nodes/Element;->html()Ljava/lang/String; │ │ move-result-object v3 │ @@ -118,39 +118,29 @@ │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public static isValid(Ljava/lang/String;Lorg/jsoup/safety/Whitelist;)Z │ - .locals 3 │ + .locals 1 │ .param p0, "bodyHtml" # Ljava/lang/String; │ .param p1, "whitelist" # Lorg/jsoup/safety/Whitelist; │ │ .prologue │ - .line 247 │ - const-string v2, "" │ - │ - invoke-static {p0, v2}, Lorg/jsoup/Jsoup;->parseBodyFragment(Ljava/lang/String;Ljava/lang/String;)Lorg/jsoup/nodes/Document; │ - │ - move-result-object v1 │ - │ - .line 248 │ - .local v1, "dirty":Lorg/jsoup/nodes/Document; │ + .line 250 │ new-instance v0, Lorg/jsoup/safety/Cleaner; │ │ invoke-direct {v0, p1}, Lorg/jsoup/safety/Cleaner;->(Lorg/jsoup/safety/Whitelist;)V │ │ - .line 249 │ - .local v0, "cleaner":Lorg/jsoup/safety/Cleaner; │ - invoke-virtual {v0, v1}, Lorg/jsoup/safety/Cleaner;->isValid(Lorg/jsoup/nodes/Document;)Z │ + invoke-virtual {v0, p0}, Lorg/jsoup/safety/Cleaner;->isValidBodyHtml(Ljava/lang/String;)Z │ │ - move-result v2 │ + move-result v0 │ │ - return v2 │ + return v0 │ .end method │ │ .method public static parse(Ljava/io/File;Ljava/lang/String;)Lorg/jsoup/nodes/Document; │ .locals 1 │ .param p0, "in" # Ljava/io/File; │ .param p1, "charsetName" # Ljava/lang/String; │ .annotation system Ldalvik/annotation/Throws; ├── smali/org/jsoup/Connection$Response.smali │ @@ -33,14 +33,17 @@ │ │ .method public abstract bodyAsBytes()[B │ .end method │ │ .method public abstract charset()Ljava/lang/String; │ .end method │ │ +.method public abstract charset(Ljava/lang/String;)Lorg/jsoup/Connection$Response; │ +.end method │ + │ .method public abstract contentType()Ljava/lang/String; │ .end method │ │ .method public abstract parse()Lorg/jsoup/nodes/Document; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; ├── smali/org/jsoup/Connection.smali │ @@ -90,14 +90,28 @@ │ } │ .end annotation │ .end method │ │ .method public abstract header(Ljava/lang/String;Ljava/lang/String;)Lorg/jsoup/Connection; │ .end method │ │ +.method public abstract headers(Ljava/util/Map;)Lorg/jsoup/Connection; │ + .annotation system Ldalvik/annotation/Signature; │ + value = { │ + "(", │ + "Ljava/util/Map", │ + "<", │ + "Ljava/lang/String;", │ + "Ljava/lang/String;", │ + ">;)", │ + "Lorg/jsoup/Connection;" │ + } │ + .end annotation │ +.end method │ + │ .method public abstract ignoreContentType(Z)Lorg/jsoup/Connection; │ .end method │ │ .method public abstract ignoreHttpErrors(Z)Lorg/jsoup/Connection; │ .end method │ │ .method public abstract maxBodySize(I)Lorg/jsoup/Connection; ├── smali/org/jsoup/examples/HtmlToPlainText.smali │ @@ -21,15 +21,14 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 30 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 70 │ return-void │ .end method │ │ .method public static varargs main([Ljava/lang/String;)V │ .locals 12 │ .param p0, "args" # [Ljava/lang/String; │ .annotation system Ldalvik/annotation/Throws; ├── smali/org/jsoup/parser/TokeniserState$49.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1019 │ + .line 1022 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,126 +31,126 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 1021 │ + .line 1024 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 1022 │ + .line 1025 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 1046 │ + .line 1049 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1047 │ + .line 1050 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->commentPending:Lorg/jsoup/parser/Token$Comment; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Comment;->data:Ljava/lang/StringBuilder; │ │ const-string v2, "--" │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 1048 │ + .line 1051 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$49;->Comment:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1050 │ + .line 1053 │ :goto_0 │ return-void │ │ - .line 1024 │ + .line 1027 │ :sswitch_0 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitCommentPending()V │ │ - .line 1025 │ + .line 1028 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$49;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1028 │ + .line 1031 │ :sswitch_1 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1029 │ + .line 1032 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->commentPending:Lorg/jsoup/parser/Token$Comment; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Comment;->data:Ljava/lang/StringBuilder; │ │ const-string v2, "--" │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ const v2, 0xfffd │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 1030 │ + .line 1033 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$49;->Comment:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1033 │ + .line 1036 │ :sswitch_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1034 │ + .line 1037 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$49;->CommentEndBang:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1037 │ + .line 1040 │ :sswitch_3 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1038 │ + .line 1041 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->commentPending:Lorg/jsoup/parser/Token$Comment; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Comment;->data:Ljava/lang/StringBuilder; │ │ const/16 v2, 0x2d │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ goto :goto_0 │ │ - .line 1041 │ + .line 1044 │ :sswitch_4 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1042 │ + .line 1045 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitCommentPending()V │ │ - .line 1043 │ + .line 1046 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$49;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1022 │ + .line 1025 │ nop │ │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_1 │ 0x21 -> :sswitch_2 │ 0x2d -> :sswitch_3 ├── smali/org/jsoup/parser/TokeniserState$52.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1107 │ + .line 1110 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,109 +31,109 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 1109 │ + .line 1112 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->matchesLetter()Z │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ - .line 1110 │ + .line 1113 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->createDoctypePending()V │ │ - .line 1111 │ + .line 1114 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$52;->DoctypeName:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1140 │ + .line 1143 │ :goto_0 │ :sswitch_0 │ return-void │ │ - .line 1114 │ + .line 1117 │ :cond_0 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 1115 │ + .line 1118 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 1136 │ + .line 1139 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->createDoctypePending()V │ │ - .line 1137 │ + .line 1140 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Doctype;->name:Ljava/lang/StringBuilder; │ │ invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 1138 │ + .line 1141 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$52;->DoctypeName:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1123 │ + .line 1126 │ :sswitch_1 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1124 │ + .line 1127 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->createDoctypePending()V │ │ - .line 1125 │ + .line 1128 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Doctype;->name:Ljava/lang/StringBuilder; │ │ const v2, 0xfffd │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 1126 │ + .line 1129 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$52;->DoctypeName:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1129 │ + .line 1132 │ :sswitch_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1130 │ + .line 1133 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->createDoctypePending()V │ │ - .line 1131 │ + .line 1134 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ const/4 v2, 0x1 │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1132 │ + .line 1135 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1133 │ + .line 1136 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$52;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1115 │ + .line 1118 │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_1 │ 0x9 -> :sswitch_0 │ 0xa -> :sswitch_0 │ 0xc -> :sswitch_0 │ 0xd -> :sswitch_0 ├── smali/org/jsoup/parser/HtmlTreeBuilderState$23.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1443 │ + .line 1446 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->(Ljava/lang/String;ILorg/jsoup/parser/HtmlTreeBuilderState$1;)V │ │ return-void │ .end method │ │ @@ -31,12 +31,12 @@ │ # virtual methods │ .method process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ .locals 1 │ .param p1, "t" # Lorg/jsoup/parser/Token; │ .param p2, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ - .line 1445 │ + .line 1448 │ const/4 v0, 0x1 │ │ return v0 │ .end method ├── smali/org/jsoup/parser/TokeniserState$46.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 946 │ + .line 949 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,96 +31,96 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 948 │ + .line 951 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 949 │ + .line 952 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 969 │ + .line 972 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->commentPending:Lorg/jsoup/parser/Token$Comment; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Comment;->data:Ljava/lang/StringBuilder; │ │ invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 970 │ + .line 973 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$46;->Comment:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 972 │ + .line 975 │ :goto_0 │ return-void │ │ - .line 951 │ + .line 954 │ :sswitch_0 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$46;->CommentStartDash:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 954 │ + .line 957 │ :sswitch_1 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 955 │ + .line 958 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->commentPending:Lorg/jsoup/parser/Token$Comment; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Comment;->data:Ljava/lang/StringBuilder; │ │ const v2, 0xfffd │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 956 │ + .line 959 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$46;->Comment:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 959 │ + .line 962 │ :sswitch_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 960 │ + .line 963 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitCommentPending()V │ │ - .line 961 │ + .line 964 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$46;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 964 │ + .line 967 │ :sswitch_3 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 965 │ + .line 968 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitCommentPending()V │ │ - .line 966 │ + .line 969 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$46;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 949 │ + .line 952 │ nop │ │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_1 │ 0x2d -> :sswitch_0 │ 0x3e -> :sswitch_2 ├── smali/org/jsoup/parser/TokeniserState$54.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1177 │ + .line 1180 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -33,131 +33,145 @@ │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ const/4 v1, 0x1 │ │ - .line 1179 │ + .line 1182 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->isEmpty()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 1180 │ + .line 1183 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1181 │ + .line 1184 │ iget-object v0, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v1, v0, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1182 │ + .line 1185 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1183 │ + .line 1186 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$54;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1201 │ + .line 1206 │ :goto_0 │ return-void │ │ - .line 1186 │ + .line 1189 │ :cond_0 │ const/4 v0, 0x5 │ │ new-array v0, v0, [C │ │ fill-array-data v0, :array_0 │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/CharacterReader;->matchesAny([C)Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ - .line 1187 │ + .line 1190 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->advance()V │ │ goto :goto_0 │ │ - .line 1188 │ + .line 1191 │ :cond_1 │ const/16 v0, 0x3e │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/CharacterReader;->matches(C)Z │ │ move-result v0 │ │ if-eqz v0, :cond_2 │ │ - .line 1189 │ + .line 1192 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1190 │ + .line 1193 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$54;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1191 │ + .line 1194 │ :cond_2 │ const-string v0, "PUBLIC" │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/CharacterReader;->matchConsumeIgnoreCase(Ljava/lang/String;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_3 │ │ - .line 1192 │ + .line 1195 │ + iget-object v0, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ + │ + const-string v1, "PUBLIC" │ + │ + iput-object v1, v0, Lorg/jsoup/parser/Token$Doctype;->pubSysKey:Ljava/lang/String; │ + │ + .line 1196 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$54;->AfterDoctypePublicKeyword:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1193 │ + .line 1197 │ :cond_3 │ const-string v0, "SYSTEM" │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/CharacterReader;->matchConsumeIgnoreCase(Ljava/lang/String;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_4 │ │ - .line 1194 │ + .line 1198 │ + iget-object v0, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ + │ + const-string v1, "SYSTEM" │ + │ + iput-object v1, v0, Lorg/jsoup/parser/Token$Doctype;->pubSysKey:Ljava/lang/String; │ + │ + .line 1199 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$54;->AfterDoctypeSystemKeyword:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1196 │ + .line 1201 │ :cond_4 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1197 │ + .line 1202 │ iget-object v0, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v1, v0, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1198 │ + .line 1203 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$54;->BogusDoctype:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1186 │ + .line 1189 │ nop │ │ :array_0 │ .array-data 2 │ 0x9s │ 0xas │ 0xds ├── smali/org/jsoup/parser/HtmlTreeBuilderState$9.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 801 │ + .line 803 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->(Ljava/lang/String;ILorg/jsoup/parser/HtmlTreeBuilderState$1;)V │ │ return-void │ .end method │ │ @@ -35,18 +35,18 @@ │ .param p2, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ const/4 v6, 0x1 │ │ const/4 v5, 0x0 │ │ - .line 889 │ + .line 891 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 891 │ + .line 893 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v1 │ │ invoke-virtual {v1}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v1 │ @@ -83,33 +83,33 @@ │ │ invoke-static {v1, v2}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ - .line 892 │ + .line 894 │ invoke-virtual {p2, v6}, Lorg/jsoup/parser/HtmlTreeBuilder;->setFosterInserts(Z)V │ │ - .line 893 │ + .line 895 │ sget-object v1, Lorg/jsoup/parser/HtmlTreeBuilderState$9;->InBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, p1, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ move-result v0 │ │ - .line 894 │ + .line 896 │ .local v0, "processed":Z │ invoke-virtual {p2, v5}, Lorg/jsoup/parser/HtmlTreeBuilder;->setFosterInserts(Z)V │ │ - .line 898 │ + .line 900 │ :goto_0 │ return v0 │ │ - .line 896 │ + .line 898 │ .end local v0 # "processed":Z │ :cond_0 │ sget-object v1, Lorg/jsoup/parser/HtmlTreeBuilderState$9;->InBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, p1, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ move-result v0 │ @@ -128,166 +128,166 @@ │ │ const/4 v8, 0x2 │ │ const/4 v4, 0x1 │ │ const/4 v5, 0x0 │ │ - .line 803 │ + .line 805 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isCharacter()Z │ │ move-result v6 │ │ if-eqz v6, :cond_1 │ │ - .line 804 │ + .line 806 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->newPendingTableCharacters()V │ │ - .line 805 │ + .line 807 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->markInsertionMode()V │ │ - .line 806 │ + .line 808 │ sget-object v4, Lorg/jsoup/parser/HtmlTreeBuilderState$9;->InTableText:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 807 │ + .line 809 │ invoke-virtual {p2, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v4 │ │ - .line 885 │ + .line 887 │ :cond_0 │ :goto_0 │ return v4 │ │ - .line 808 │ + .line 810 │ :cond_1 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isComment()Z │ │ move-result v6 │ │ if-eqz v6, :cond_2 │ │ - .line 809 │ + .line 811 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asComment()Lorg/jsoup/parser/Token$Comment; │ │ move-result-object v5 │ │ invoke-virtual {p2, v5}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Comment;)V │ │ goto :goto_0 │ │ - .line 811 │ + .line 813 │ :cond_2 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isDoctype()Z │ │ move-result v6 │ │ if-eqz v6, :cond_3 │ │ - .line 812 │ + .line 814 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ move v4, v5 │ │ - .line 813 │ + .line 815 │ goto :goto_0 │ │ - .line 814 │ + .line 816 │ :cond_3 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isStartTag()Z │ │ move-result v6 │ │ if-eqz v6, :cond_f │ │ - .line 815 │ + .line 817 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v3 │ │ - .line 816 │ + .line 818 │ .local v3, "startTag":Lorg/jsoup/parser/Token$StartTag; │ - invoke-virtual {v3}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ + invoke-virtual {v3}, Lorg/jsoup/parser/Token$StartTag;->normalName()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 817 │ + .line 819 │ .local v1, "name":Ljava/lang/String; │ const-string v6, "caption" │ │ invoke-virtual {v1, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_4 │ │ - .line 818 │ + .line 820 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->clearStackToTableContext()V │ │ - .line 819 │ + .line 821 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertMarkerToFormattingElements()V │ │ - .line 820 │ + .line 822 │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ - .line 821 │ + .line 823 │ sget-object v5, Lorg/jsoup/parser/HtmlTreeBuilderState$9;->InCaption:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v5}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_0 │ │ - .line 822 │ + .line 824 │ :cond_4 │ const-string v6, "colgroup" │ │ invoke-virtual {v1, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_5 │ │ - .line 823 │ + .line 825 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->clearStackToTableContext()V │ │ - .line 824 │ + .line 826 │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ - .line 825 │ + .line 827 │ sget-object v5, Lorg/jsoup/parser/HtmlTreeBuilderState$9;->InColumnGroup:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v5}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_0 │ │ - .line 826 │ + .line 828 │ :cond_5 │ const-string v6, "col" │ │ invoke-virtual {v1, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_6 │ │ - .line 827 │ + .line 829 │ const-string v4, "colgroup" │ │ invoke-virtual {p2, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->processStartTag(Ljava/lang/String;)Z │ │ - .line 828 │ + .line 830 │ invoke-virtual {p2, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v4 │ │ goto :goto_0 │ │ - .line 829 │ + .line 831 │ :cond_6 │ new-array v6, v9, [Ljava/lang/String; │ │ const-string v7, "tbody" │ │ aput-object v7, v6, v5 │ │ @@ -301,28 +301,28 @@ │ │ invoke-static {v1, v6}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_7 │ │ - .line 830 │ + .line 832 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->clearStackToTableContext()V │ │ - .line 831 │ + .line 833 │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ - .line 832 │ + .line 834 │ sget-object v5, Lorg/jsoup/parser/HtmlTreeBuilderState$9;->InTableBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v5}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_0 │ │ - .line 833 │ + .line 835 │ :cond_7 │ new-array v6, v9, [Ljava/lang/String; │ │ const-string v7, "td" │ │ aput-object v7, v6, v5 │ │ @@ -336,58 +336,58 @@ │ │ invoke-static {v1, v6}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_8 │ │ - .line 834 │ + .line 836 │ const-string v4, "tbody" │ │ invoke-virtual {p2, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->processStartTag(Ljava/lang/String;)Z │ │ - .line 835 │ + .line 837 │ invoke-virtual {p2, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v4 │ │ goto/16 :goto_0 │ │ - .line 836 │ + .line 838 │ :cond_8 │ const-string v6, "table" │ │ invoke-virtual {v1, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_9 │ │ - .line 837 │ + .line 839 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 838 │ + .line 840 │ const-string v5, "table" │ │ invoke-virtual {p2, v5}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ move-result v2 │ │ - .line 839 │ + .line 841 │ .local v2, "processed":Z │ if-eqz v2, :cond_0 │ │ - .line 840 │ + .line 842 │ invoke-virtual {p2, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v4 │ │ goto/16 :goto_0 │ │ - .line 841 │ + .line 843 │ .end local v2 # "processed":Z │ :cond_9 │ new-array v6, v8, [Ljava/lang/String; │ │ const-string v7, "style" │ │ aput-object v7, v6, v5 │ @@ -398,34 +398,34 @@ │ │ invoke-static {v1, v6}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_a │ │ - .line 842 │ + .line 844 │ sget-object v4, Lorg/jsoup/parser/HtmlTreeBuilderState$9;->InHead:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, p1, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ move-result v4 │ │ goto/16 :goto_0 │ │ - .line 843 │ + .line 845 │ :cond_a │ const-string v6, "input" │ │ invoke-virtual {v1, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_c │ │ - .line 844 │ + .line 846 │ iget-object v5, v3, Lorg/jsoup/parser/Token$StartTag;->attributes:Lorg/jsoup/nodes/Attributes; │ │ const-string v6, "type" │ │ invoke-virtual {v5, v6}, Lorg/jsoup/nodes/Attributes;->get(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v5 │ @@ -434,124 +434,124 @@ │ │ invoke-virtual {v5, v6}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z │ │ move-result v5 │ │ if-nez v5, :cond_b │ │ - .line 845 │ + .line 847 │ invoke-virtual {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$9;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v4 │ │ goto/16 :goto_0 │ │ - .line 847 │ + .line 849 │ :cond_b │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertEmpty(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ goto/16 :goto_0 │ │ - .line 849 │ + .line 851 │ :cond_c │ const-string v6, "form" │ │ invoke-virtual {v1, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_e │ │ - .line 850 │ + .line 852 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 851 │ + .line 853 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getFormElement()Lorg/jsoup/nodes/FormElement; │ │ move-result-object v6 │ │ if-eqz v6, :cond_d │ │ move v4, v5 │ │ - .line 852 │ + .line 854 │ goto/16 :goto_0 │ │ - .line 854 │ + .line 856 │ :cond_d │ invoke-virtual {p2, v3, v5}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertForm(Lorg/jsoup/parser/Token$StartTag;Z)Lorg/jsoup/nodes/FormElement; │ │ goto/16 :goto_0 │ │ - .line 857 │ + .line 859 │ :cond_e │ invoke-virtual {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$9;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v4 │ │ goto/16 :goto_0 │ │ - .line 860 │ + .line 862 │ .end local v1 # "name":Ljava/lang/String; │ .end local v3 # "startTag":Lorg/jsoup/parser/Token$StartTag; │ :cond_f │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEndTag()Z │ │ move-result v6 │ │ if-eqz v6, :cond_13 │ │ - .line 861 │ + .line 863 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asEndTag()Lorg/jsoup/parser/Token$EndTag; │ │ move-result-object v0 │ │ - .line 862 │ + .line 864 │ .local v0, "endTag":Lorg/jsoup/parser/Token$EndTag; │ - invoke-virtual {v0}, Lorg/jsoup/parser/Token$EndTag;->name()Ljava/lang/String; │ + invoke-virtual {v0}, Lorg/jsoup/parser/Token$EndTag;->normalName()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 864 │ + .line 866 │ .restart local v1 # "name":Ljava/lang/String; │ const-string v6, "table" │ │ invoke-virtual {v1, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_11 │ │ - .line 865 │ + .line 867 │ invoke-virtual {p2, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inTableScope(Ljava/lang/String;)Z │ │ move-result v6 │ │ if-nez v6, :cond_10 │ │ - .line 866 │ + .line 868 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ move v4, v5 │ │ - .line 867 │ + .line 869 │ goto/16 :goto_0 │ │ - .line 869 │ + .line 871 │ :cond_10 │ const-string v5, "table" │ │ invoke-virtual {p2, v5}, Lorg/jsoup/parser/HtmlTreeBuilder;->popStackToClose(Ljava/lang/String;)V │ │ - .line 871 │ + .line 873 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->resetInsertionMode()V │ │ goto/16 :goto_0 │ │ - .line 872 │ + .line 874 │ :cond_11 │ const/16 v6, 0xb │ │ new-array v6, v6, [Ljava/lang/String; │ │ const-string v7, "body" │ │ @@ -613,41 +613,41 @@ │ │ invoke-static {v1, v6}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_12 │ │ - .line 874 │ + .line 876 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ move v4, v5 │ │ - .line 875 │ + .line 877 │ goto/16 :goto_0 │ │ - .line 877 │ + .line 879 │ :cond_12 │ invoke-virtual {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$9;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v4 │ │ goto/16 :goto_0 │ │ - .line 880 │ + .line 882 │ .end local v0 # "endTag":Lorg/jsoup/parser/Token$EndTag; │ .end local v1 # "name":Ljava/lang/String; │ :cond_13 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEOF()Z │ │ move-result v5 │ │ if-eqz v5, :cond_14 │ │ - .line 881 │ + .line 883 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v5 │ │ invoke-virtual {v5}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v5 │ @@ -656,20 +656,20 @@ │ │ invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_0 │ │ - .line 882 │ + .line 884 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_0 │ │ - .line 885 │ + .line 887 │ :cond_14 │ invoke-virtual {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$9;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v4 │ │ goto/16 :goto_0 │ .end method ├── smali/org/jsoup/parser/CharacterReader.smali │ @@ -1,8 +1,8 @@ │ -.class final Lorg/jsoup/parser/CharacterReader; │ +.class public final Lorg/jsoup/parser/CharacterReader; │ .super Ljava/lang/Object; │ .source "CharacterReader.java" │ │ │ # static fields │ .field static final EOF:C = '\uffff' │ │ @@ -18,15 +18,15 @@ │ │ .field private pos:I │ │ .field private final stringCache:[Ljava/lang/String; │ │ │ # direct methods │ -.method constructor (Ljava/lang/String;)V │ +.method public constructor (Ljava/lang/String;)V │ .locals 1 │ .param p1, "input" # Ljava/lang/String; │ │ .prologue │ const/4 v0, 0x0 │ │ .line 21 │ @@ -68,169 +68,169 @@ │ │ .method private cacheString(II)Ljava/lang/String; │ .locals 10 │ .param p1, "start" # I │ .param p2, "count" # I │ │ .prologue │ - .line 348 │ + .line 373 │ iget-object v7, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ │ - .line 349 │ + .line 374 │ .local v7, "val":[C │ iget-object v0, p0, Lorg/jsoup/parser/CharacterReader;->stringCache:[Ljava/lang/String; │ │ - .line 352 │ + .line 377 │ .local v0, "cache":[Ljava/lang/String; │ const/16 v8, 0xc │ │ if-le p2, v8, :cond_1 │ │ - .line 353 │ + .line 378 │ new-instance v1, Ljava/lang/String; │ │ invoke-direct {v1, v7, p1, p2}, Ljava/lang/String;->([CII)V │ │ - .line 377 │ + .line 402 │ :cond_0 │ :goto_0 │ return-object v1 │ │ - .line 356 │ + .line 381 │ :cond_1 │ const/4 v2, 0x0 │ │ - .line 357 │ + .line 382 │ .local v2, "hash":I │ move v5, p1 │ │ - .line 358 │ + .line 383 │ .local v5, "offset":I │ const/4 v3, 0x0 │ │ .local v3, "i":I │ move v6, v5 │ │ .end local v5 # "offset":I │ .local v6, "offset":I │ :goto_1 │ if-ge v3, p2, :cond_2 │ │ - .line 359 │ + .line 384 │ mul-int/lit8 v8, v2, 0x1f │ │ add-int/lit8 v5, v6, 0x1 │ │ .end local v6 # "offset":I │ .restart local v5 # "offset":I │ aget-char v9, v7, v6 │ │ add-int v2, v8, v9 │ │ - .line 358 │ + .line 383 │ add-int/lit8 v3, v3, 0x1 │ │ move v6, v5 │ │ .end local v5 # "offset":I │ .restart local v6 # "offset":I │ goto :goto_1 │ │ - .line 363 │ + .line 388 │ :cond_2 │ array-length v8, v0 │ │ add-int/lit8 v8, v8, -0x1 │ │ and-int v4, v2, v8 │ │ - .line 364 │ + .line 389 │ .local v4, "index":I │ aget-object v1, v0, v4 │ │ - .line 366 │ + .line 391 │ .local v1, "cached":Ljava/lang/String; │ if-nez v1, :cond_3 │ │ - .line 367 │ + .line 392 │ new-instance v1, Ljava/lang/String; │ │ .end local v1 # "cached":Ljava/lang/String; │ invoke-direct {v1, v7, p1, p2}, Ljava/lang/String;->([CII)V │ │ - .line 368 │ + .line 393 │ .restart local v1 # "cached":Ljava/lang/String; │ aput-object v1, v0, v4 │ │ goto :goto_0 │ │ - .line 370 │ + .line 395 │ :cond_3 │ invoke-virtual {p0, p1, p2, v1}, Lorg/jsoup/parser/CharacterReader;->rangeEquals(IILjava/lang/String;)Z │ │ move-result v8 │ │ if-nez v8, :cond_0 │ │ - .line 373 │ + .line 398 │ new-instance v1, Ljava/lang/String; │ │ .end local v1 # "cached":Ljava/lang/String; │ invoke-direct {v1, v7, p1, p2}, Ljava/lang/String;->([CII)V │ │ - .line 374 │ + .line 399 │ .restart local v1 # "cached":Ljava/lang/String; │ aput-object v1, v0, v4 │ │ goto :goto_0 │ .end method │ │ │ # virtual methods │ -.method advance()V │ +.method public advance()V │ .locals 1 │ │ .prologue │ - .line 50 │ + .line 65 │ iget v0, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ add-int/lit8 v0, v0, 0x1 │ │ iput v0, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ - .line 51 │ + .line 66 │ return-void │ .end method │ │ .method consume()C │ .locals 3 │ │ .prologue │ - .line 40 │ + .line 52 │ iget v1, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->length:I │ │ if-lt v1, v2, :cond_0 │ │ const v0, 0xffff │ │ - .line 41 │ + .line 53 │ .local v0, "val":C │ :goto_0 │ iget v1, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ add-int/lit8 v1, v1, 0x1 │ │ iput v1, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ - .line 42 │ + .line 54 │ return v0 │ │ - .line 40 │ + .line 52 │ .end local v0 # "val":C │ :cond_0 │ iget-object v1, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ aget-char v0, v1, v2 │ @@ -238,15 +238,15 @@ │ goto :goto_0 │ .end method │ │ .method consumeAsString()Ljava/lang/String; │ .locals 4 │ │ .prologue │ - .line 62 │ + .line 77 │ new-instance v0, Ljava/lang/String; │ │ iget-object v1, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ add-int/lit8 v3, v2, 0x1 │ @@ -260,50 +260,50 @@ │ return-object v0 │ .end method │ │ .method consumeData()Ljava/lang/String; │ .locals 5 │ │ .prologue │ - .line 157 │ + .line 182 │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ - .line 158 │ + .line 183 │ .local v2, "start":I │ iget v1, p0, Lorg/jsoup/parser/CharacterReader;->length:I │ │ - .line 159 │ + .line 184 │ .local v1, "remaining":I │ iget-object v3, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ │ - .line 161 │ + .line 186 │ .local v3, "val":[C │ :goto_0 │ iget v4, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ if-ge v4, v1, :cond_0 │ │ - .line 162 │ + .line 187 │ iget v4, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ aget-char v0, v3, v4 │ │ - .line 163 │ + .line 188 │ .local v0, "c":C │ const/16 v4, 0x26 │ │ if-eq v0, v4, :cond_0 │ │ const/16 v4, 0x3c │ │ if-eq v0, v4, :cond_0 │ │ if-nez v0, :cond_1 │ │ - .line 168 │ + .line 193 │ .end local v0 # "c":C │ :cond_0 │ iget v4, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ if-le v4, v2, :cond_2 │ │ iget v4, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ @@ -313,76 +313,76 @@ │ invoke-direct {p0, v2, v4}, Lorg/jsoup/parser/CharacterReader;->cacheString(II)Ljava/lang/String; │ │ move-result-object v4 │ │ :goto_1 │ return-object v4 │ │ - .line 165 │ + .line 190 │ .restart local v0 # "c":C │ :cond_1 │ iget v4, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ add-int/lit8 v4, v4, 0x1 │ │ iput v4, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ goto :goto_0 │ │ - .line 168 │ + .line 193 │ .end local v0 # "c":C │ :cond_2 │ const-string v4, "" │ │ goto :goto_1 │ .end method │ │ .method consumeDigitSequence()Ljava/lang/String; │ .locals 4 │ │ .prologue │ - .line 239 │ + .line 264 │ iget v1, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ - .line 240 │ + .line 265 │ .local v1, "start":I │ :goto_0 │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ iget v3, p0, Lorg/jsoup/parser/CharacterReader;->length:I │ │ if-ge v2, v3, :cond_0 │ │ - .line 241 │ + .line 266 │ iget-object v2, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ │ iget v3, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ aget-char v0, v2, v3 │ │ - .line 242 │ + .line 267 │ .local v0, "c":C │ const/16 v2, 0x30 │ │ if-lt v0, v2, :cond_0 │ │ const/16 v2, 0x39 │ │ if-gt v0, v2, :cond_0 │ │ - .line 243 │ + .line 268 │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ add-int/lit8 v2, v2, 0x1 │ │ iput v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ goto :goto_0 │ │ - .line 247 │ + .line 272 │ .end local v0 # "c":C │ :cond_0 │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ sub-int/2addr v2, v1 │ │ invoke-direct {p0, v1, v2}, Lorg/jsoup/parser/CharacterReader;->cacheString(II)Ljava/lang/String; │ @@ -392,34 +392,34 @@ │ return-object v2 │ .end method │ │ .method consumeHexSequence()Ljava/lang/String; │ .locals 4 │ │ .prologue │ - .line 227 │ + .line 252 │ iget v1, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ - .line 228 │ + .line 253 │ .local v1, "start":I │ :goto_0 │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ iget v3, p0, Lorg/jsoup/parser/CharacterReader;->length:I │ │ if-ge v2, v3, :cond_3 │ │ - .line 229 │ + .line 254 │ iget-object v2, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ │ iget v3, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ aget-char v0, v2, v3 │ │ - .line 230 │ + .line 255 │ .local v0, "c":C │ const/16 v2, 0x30 │ │ if-lt v0, v2, :cond_0 │ │ const/16 v2, 0x39 │ │ @@ -439,25 +439,25 @@ │ │ if-lt v0, v2, :cond_3 │ │ const/16 v2, 0x66 │ │ if-gt v0, v2, :cond_3 │ │ - .line 231 │ + .line 256 │ :cond_2 │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ add-int/lit8 v2, v2, 0x1 │ │ iput v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ goto :goto_0 │ │ - .line 235 │ + .line 260 │ .end local v0 # "c":C │ :cond_3 │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ sub-int/2addr v2, v1 │ │ invoke-direct {p0, v1, v2}, Lorg/jsoup/parser/CharacterReader;->cacheString(II)Ljava/lang/String; │ @@ -467,34 +467,34 @@ │ return-object v2 │ .end method │ │ .method consumeLetterSequence()Ljava/lang/String; │ .locals 4 │ │ .prologue │ - .line 194 │ + .line 219 │ iget v1, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ - .line 195 │ + .line 220 │ .local v1, "start":I │ :goto_0 │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ iget v3, p0, Lorg/jsoup/parser/CharacterReader;->length:I │ │ if-ge v2, v3, :cond_3 │ │ - .line 196 │ + .line 221 │ iget-object v2, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ │ iget v3, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ aget-char v0, v2, v3 │ │ - .line 197 │ + .line 222 │ .local v0, "c":C │ const/16 v2, 0x41 │ │ if-lt v0, v2, :cond_0 │ │ const/16 v2, 0x5a │ │ @@ -512,25 +512,25 @@ │ :cond_1 │ invoke-static {v0}, Ljava/lang/Character;->isLetter(C)Z │ │ move-result v2 │ │ if-eqz v2, :cond_3 │ │ - .line 198 │ + .line 223 │ :cond_2 │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ add-int/lit8 v2, v2, 0x1 │ │ iput v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ goto :goto_0 │ │ - .line 203 │ + .line 228 │ .end local v0 # "c":C │ :cond_3 │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ sub-int/2addr v2, v1 │ │ invoke-direct {p0, v1, v2}, Lorg/jsoup/parser/CharacterReader;->cacheString(II)Ljava/lang/String; │ @@ -540,34 +540,34 @@ │ return-object v2 │ .end method │ │ .method consumeLetterThenDigitSequence()Ljava/lang/String; │ .locals 4 │ │ .prologue │ - .line 207 │ + .line 232 │ iget v1, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ - .line 208 │ + .line 233 │ .local v1, "start":I │ :goto_0 │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ iget v3, p0, Lorg/jsoup/parser/CharacterReader;->length:I │ │ if-ge v2, v3, :cond_3 │ │ - .line 209 │ + .line 234 │ iget-object v2, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ │ iget v3, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ aget-char v0, v2, v3 │ │ - .line 210 │ + .line 235 │ .local v0, "c":C │ const/16 v2, 0x41 │ │ if-lt v0, v2, :cond_0 │ │ const/16 v2, 0x5a │ │ @@ -585,61 +585,61 @@ │ :cond_1 │ invoke-static {v0}, Ljava/lang/Character;->isLetter(C)Z │ │ move-result v2 │ │ if-eqz v2, :cond_3 │ │ - .line 211 │ + .line 236 │ :cond_2 │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ add-int/lit8 v2, v2, 0x1 │ │ iput v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ goto :goto_0 │ │ - .line 215 │ + .line 240 │ .end local v0 # "c":C │ :cond_3 │ :goto_1 │ invoke-virtual {p0}, Lorg/jsoup/parser/CharacterReader;->isEmpty()Z │ │ move-result v2 │ │ if-nez v2, :cond_4 │ │ - .line 216 │ + .line 241 │ iget-object v2, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ │ iget v3, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ aget-char v0, v2, v3 │ │ - .line 217 │ + .line 242 │ .restart local v0 # "c":C │ const/16 v2, 0x30 │ │ if-lt v0, v2, :cond_4 │ │ const/16 v2, 0x39 │ │ if-gt v0, v2, :cond_4 │ │ - .line 218 │ + .line 243 │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ add-int/lit8 v2, v2, 0x1 │ │ iput v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ goto :goto_1 │ │ - .line 223 │ + .line 248 │ .end local v0 # "c":C │ :cond_4 │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ sub-int/2addr v2, v1 │ │ invoke-direct {p0, v1, v2}, Lorg/jsoup/parser/CharacterReader;->cacheString(II)Ljava/lang/String; │ @@ -649,38 +649,38 @@ │ return-object v2 │ .end method │ │ .method consumeTagName()Ljava/lang/String; │ .locals 5 │ │ .prologue │ - .line 173 │ + .line 198 │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ - .line 174 │ + .line 199 │ .local v2, "start":I │ iget v1, p0, Lorg/jsoup/parser/CharacterReader;->length:I │ │ - .line 175 │ + .line 200 │ .local v1, "remaining":I │ iget-object v3, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ │ - .line 177 │ + .line 202 │ .local v3, "val":[C │ :goto_0 │ iget v4, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ if-ge v4, v1, :cond_0 │ │ - .line 178 │ + .line 203 │ iget v4, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ aget-char v0, v3, v4 │ │ - .line 179 │ + .line 204 │ .local v0, "c":C │ const/16 v4, 0x9 │ │ if-eq v0, v4, :cond_0 │ │ const/16 v4, 0xa │ │ @@ -704,15 +704,15 @@ │ │ const/16 v4, 0x3e │ │ if-eq v0, v4, :cond_0 │ │ if-nez v0, :cond_1 │ │ - .line 184 │ + .line 209 │ .end local v0 # "c":C │ :cond_0 │ iget v4, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ if-le v4, v2, :cond_2 │ │ iget v4, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ @@ -722,65 +722,65 @@ │ invoke-direct {p0, v2, v4}, Lorg/jsoup/parser/CharacterReader;->cacheString(II)Ljava/lang/String; │ │ move-result-object v4 │ │ :goto_1 │ return-object v4 │ │ - .line 181 │ + .line 206 │ .restart local v0 # "c":C │ :cond_1 │ iget v4, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ add-int/lit8 v4, v4, 0x1 │ │ iput v4, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ goto :goto_0 │ │ - .line 184 │ + .line 209 │ .end local v0 # "c":C │ :cond_2 │ const-string v4, "" │ │ goto :goto_1 │ .end method │ │ -.method consumeTo(C)Ljava/lang/String; │ +.method public consumeTo(C)Ljava/lang/String; │ .locals 3 │ .param p1, "c" # C │ │ .prologue │ - .line 104 │ + .line 124 │ invoke-virtual {p0, p1}, Lorg/jsoup/parser/CharacterReader;->nextIndexOf(C)I │ │ move-result v1 │ │ - .line 105 │ + .line 125 │ .local v1, "offset":I │ const/4 v2, -0x1 │ │ if-eq v1, v2, :cond_0 │ │ - .line 106 │ + .line 126 │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ invoke-direct {p0, v2, v1}, Lorg/jsoup/parser/CharacterReader;->cacheString(II)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 107 │ + .line 127 │ .local v0, "consumed":Ljava/lang/String; │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ add-int/2addr v2, v1 │ │ iput v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ - .line 110 │ + .line 130 │ .end local v0 # "consumed":Ljava/lang/String; │ :goto_0 │ return-object v0 │ │ :cond_0 │ invoke-virtual {p0}, Lorg/jsoup/parser/CharacterReader;->consumeToEnd()Ljava/lang/String; │ │ @@ -790,95 +790,95 @@ │ .end method │ │ .method consumeTo(Ljava/lang/String;)Ljava/lang/String; │ .locals 3 │ .param p1, "seq" # Ljava/lang/String; │ │ .prologue │ - .line 115 │ + .line 135 │ invoke-virtual {p0, p1}, Lorg/jsoup/parser/CharacterReader;->nextIndexOf(Ljava/lang/CharSequence;)I │ │ move-result v1 │ │ - .line 116 │ + .line 136 │ .local v1, "offset":I │ const/4 v2, -0x1 │ │ if-eq v1, v2, :cond_0 │ │ - .line 117 │ + .line 137 │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ invoke-direct {p0, v2, v1}, Lorg/jsoup/parser/CharacterReader;->cacheString(II)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 118 │ + .line 138 │ .local v0, "consumed":Ljava/lang/String; │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ add-int/2addr v2, v1 │ │ iput v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ - .line 121 │ + .line 141 │ .end local v0 # "consumed":Ljava/lang/String; │ :goto_0 │ return-object v0 │ │ :cond_0 │ invoke-virtual {p0}, Lorg/jsoup/parser/CharacterReader;->consumeToEnd()Ljava/lang/String; │ │ move-result-object v0 │ │ goto :goto_0 │ .end method │ │ -.method varargs consumeToAny([C)Ljava/lang/String; │ +.method public varargs consumeToAny([C)Ljava/lang/String; │ .locals 7 │ .param p1, "chars" # [C │ │ .prologue │ - .line 126 │ + .line 151 │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ - .line 127 │ + .line 152 │ .local v2, "start":I │ iget v1, p0, Lorg/jsoup/parser/CharacterReader;->length:I │ │ - .line 128 │ + .line 153 │ .local v1, "remaining":I │ iget-object v3, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ │ - .line 130 │ + .line 155 │ .local v3, "val":[C │ :goto_0 │ iget v4, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ if-ge v4, v1, :cond_0 │ │ - .line 131 │ + .line 156 │ array-length v5, p1 │ │ const/4 v4, 0x0 │ │ :goto_1 │ if-ge v4, v5, :cond_2 │ │ aget-char v0, p1, v4 │ │ - .line 132 │ + .line 157 │ .local v0, "c":C │ iget v6, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ aget-char v6, v3, v6 │ │ if-ne v6, v0, :cond_1 │ │ - .line 138 │ + .line 163 │ .end local v0 # "c":C │ :cond_0 │ iget v4, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ if-le v4, v2, :cond_3 │ │ iget v4, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ @@ -888,74 +888,74 @@ │ invoke-direct {p0, v2, v4}, Lorg/jsoup/parser/CharacterReader;->cacheString(II)Ljava/lang/String; │ │ move-result-object v4 │ │ :goto_2 │ return-object v4 │ │ - .line 131 │ + .line 156 │ .restart local v0 # "c":C │ :cond_1 │ add-int/lit8 v4, v4, 0x1 │ │ goto :goto_1 │ │ - .line 135 │ + .line 160 │ .end local v0 # "c":C │ :cond_2 │ iget v4, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ add-int/lit8 v4, v4, 0x1 │ │ iput v4, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ goto :goto_0 │ │ - .line 138 │ + .line 163 │ :cond_3 │ const-string v4, "" │ │ goto :goto_2 │ .end method │ │ .method varargs consumeToAnySorted([C)Ljava/lang/String; │ .locals 4 │ .param p1, "chars" # [C │ │ .prologue │ - .line 142 │ + .line 167 │ iget v1, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ - .line 143 │ + .line 168 │ .local v1, "start":I │ iget v0, p0, Lorg/jsoup/parser/CharacterReader;->length:I │ │ - .line 144 │ + .line 169 │ .local v0, "remaining":I │ iget-object v2, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ │ - .line 146 │ + .line 171 │ .local v2, "val":[C │ :goto_0 │ iget v3, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ if-ge v3, v0, :cond_0 │ │ - .line 147 │ + .line 172 │ iget v3, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ aget-char v3, v2, v3 │ │ invoke-static {p1, v3}, Ljava/util/Arrays;->binarySearch([CC)I │ │ move-result v3 │ │ if-ltz v3, :cond_1 │ │ - .line 152 │ + .line 177 │ :cond_0 │ iget v3, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ if-le v3, v1, :cond_2 │ │ iget v3, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ @@ -964,81 +964,81 @@ │ invoke-direct {p0, v1, v3}, Lorg/jsoup/parser/CharacterReader;->cacheString(II)Ljava/lang/String; │ │ move-result-object v3 │ │ :goto_1 │ return-object v3 │ │ - .line 149 │ + .line 174 │ :cond_1 │ iget v3, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ add-int/lit8 v3, v3, 0x1 │ │ iput v3, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ goto :goto_0 │ │ - .line 152 │ + .line 177 │ :cond_2 │ const-string v3, "" │ │ goto :goto_1 │ .end method │ │ .method consumeToEnd()Ljava/lang/String; │ .locals 4 │ │ .prologue │ - .line 188 │ + .line 213 │ iget v1, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->length:I │ │ iget v3, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ sub-int/2addr v2, v3 │ │ invoke-direct {p0, v1, v2}, Lorg/jsoup/parser/CharacterReader;->cacheString(II)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 189 │ + .line 214 │ .local v0, "data":Ljava/lang/String; │ iget v1, p0, Lorg/jsoup/parser/CharacterReader;->length:I │ │ iput v1, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ - .line 190 │ + .line 215 │ return-object v0 │ .end method │ │ .method containsIgnoreCase(Ljava/lang/String;)Z │ .locals 4 │ .param p1, "seq" # Ljava/lang/String; │ │ .prologue │ const/4 v3, -0x1 │ │ - .line 330 │ + .line 355 │ sget-object v2, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ │ invoke-virtual {p1, v2}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 331 │ + .line 356 │ .local v1, "loScan":Ljava/lang/String; │ sget-object v2, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ │ invoke-virtual {p1, v2}, Ljava/lang/String;->toUpperCase(Ljava/util/Locale;)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 332 │ + .line 357 │ .local v0, "hiScan":Ljava/lang/String; │ invoke-virtual {p0, v1}, Lorg/jsoup/parser/CharacterReader;->nextIndexOf(Ljava/lang/CharSequence;)I │ │ move-result v2 │ │ if-gt v2, v3, :cond_0 │ │ @@ -1056,19 +1056,19 @@ │ │ :cond_1 │ const/4 v2, 0x0 │ │ goto :goto_0 │ .end method │ │ -.method current()C │ +.method public current()C │ .locals 2 │ │ .prologue │ - .line 36 │ + .line 48 │ iget v0, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ iget v1, p0, Lorg/jsoup/parser/CharacterReader;->length:I │ │ if-lt v0, v1, :cond_0 │ │ const v0, 0xffff │ @@ -1082,19 +1082,19 @@ │ iget v1, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ aget-char v0, v0, v1 │ │ goto :goto_0 │ .end method │ │ -.method isEmpty()Z │ +.method public isEmpty()Z │ .locals 2 │ │ .prologue │ - .line 32 │ + .line 40 │ iget v0, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ iget v1, p0, Lorg/jsoup/parser/CharacterReader;->length:I │ │ if-lt v0, v1, :cond_0 │ │ const/4 v0, 0x1 │ @@ -1108,101 +1108,101 @@ │ goto :goto_0 │ .end method │ │ .method mark()V │ .locals 1 │ │ .prologue │ - .line 54 │ + .line 69 │ iget v0, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ iput v0, p0, Lorg/jsoup/parser/CharacterReader;->mark:I │ │ - .line 55 │ + .line 70 │ return-void │ .end method │ │ .method matchConsume(Ljava/lang/String;)Z │ .locals 2 │ .param p1, "seq" # Ljava/lang/String; │ │ .prologue │ - .line 311 │ + .line 336 │ invoke-virtual {p0, p1}, Lorg/jsoup/parser/CharacterReader;->matches(Ljava/lang/String;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 312 │ + .line 337 │ iget v0, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ invoke-virtual {p1}, Ljava/lang/String;->length()I │ │ move-result v1 │ │ add-int/2addr v0, v1 │ │ iput v0, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ - .line 313 │ + .line 338 │ const/4 v0, 0x1 │ │ - .line 315 │ + .line 340 │ :goto_0 │ return v0 │ │ :cond_0 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method matchConsumeIgnoreCase(Ljava/lang/String;)Z │ .locals 2 │ .param p1, "seq" # Ljava/lang/String; │ │ .prologue │ - .line 320 │ + .line 345 │ invoke-virtual {p0, p1}, Lorg/jsoup/parser/CharacterReader;->matchesIgnoreCase(Ljava/lang/String;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 321 │ + .line 346 │ iget v0, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ invoke-virtual {p1}, Ljava/lang/String;->length()I │ │ move-result v1 │ │ add-int/2addr v0, v1 │ │ iput v0, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ - .line 322 │ + .line 347 │ const/4 v0, 0x1 │ │ - .line 324 │ + .line 349 │ :goto_0 │ return v0 │ │ :cond_0 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method matches(C)Z │ .locals 2 │ .param p1, "c" # C │ │ .prologue │ - .line 251 │ + .line 276 │ invoke-virtual {p0}, Lorg/jsoup/parser/CharacterReader;->isEmpty()Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ iget-object v0, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ @@ -1227,129 +1227,129 @@ │ .method matches(Ljava/lang/String;)Z │ .locals 6 │ .param p1, "seq" # Ljava/lang/String; │ │ .prologue │ const/4 v2, 0x0 │ │ - .line 256 │ + .line 281 │ invoke-virtual {p1}, Ljava/lang/String;->length()I │ │ move-result v1 │ │ - .line 257 │ + .line 282 │ .local v1, "scanLength":I │ iget v3, p0, Lorg/jsoup/parser/CharacterReader;->length:I │ │ iget v4, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ sub-int/2addr v3, v4 │ │ if-le v1, v3, :cond_1 │ │ - .line 263 │ + .line 288 │ :cond_0 │ :goto_0 │ return v2 │ │ - .line 260 │ + .line 285 │ :cond_1 │ const/4 v0, 0x0 │ │ .local v0, "offset":I │ :goto_1 │ if-ge v0, v1, :cond_2 │ │ - .line 261 │ + .line 286 │ invoke-virtual {p1, v0}, Ljava/lang/String;->charAt(I)C │ │ move-result v3 │ │ iget-object v4, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ │ iget v5, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ add-int/2addr v5, v0 │ │ aget-char v4, v4, v5 │ │ if-ne v3, v4, :cond_0 │ │ - .line 260 │ + .line 285 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_1 │ │ - .line 263 │ + .line 288 │ :cond_2 │ const/4 v2, 0x1 │ │ goto :goto_0 │ .end method │ │ .method varargs matchesAny([C)Z │ .locals 5 │ .param p1, "seq" # [C │ │ .prologue │ const/4 v2, 0x0 │ │ - .line 281 │ + .line 306 │ invoke-virtual {p0}, Lorg/jsoup/parser/CharacterReader;->isEmpty()Z │ │ move-result v3 │ │ if-eqz v3, :cond_1 │ │ - .line 289 │ + .line 314 │ :cond_0 │ :goto_0 │ return v2 │ │ - .line 284 │ + .line 309 │ :cond_1 │ iget-object v3, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ │ iget v4, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ aget-char v0, v3, v4 │ │ - .line 285 │ + .line 310 │ .local v0, "c":C │ array-length v4, p1 │ │ move v3, v2 │ │ :goto_1 │ if-ge v3, v4, :cond_0 │ │ aget-char v1, p1, v3 │ │ - .line 286 │ + .line 311 │ .local v1, "seek":C │ if-ne v1, v0, :cond_2 │ │ - .line 287 │ + .line 312 │ const/4 v2, 0x1 │ │ goto :goto_0 │ │ - .line 285 │ + .line 310 │ :cond_2 │ add-int/lit8 v3, v3, 0x1 │ │ goto :goto_1 │ .end method │ │ .method matchesAnySorted([C)Z │ .locals 2 │ .param p1, "seq" # [C │ │ .prologue │ - .line 293 │ + .line 318 │ invoke-virtual {p0}, Lorg/jsoup/parser/CharacterReader;->isEmpty()Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ iget-object v0, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ @@ -1377,35 +1377,35 @@ │ │ .method matchesDigit()Z │ .locals 4 │ │ .prologue │ const/4 v1, 0x0 │ │ - .line 304 │ + .line 329 │ invoke-virtual {p0}, Lorg/jsoup/parser/CharacterReader;->isEmpty()Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - .line 307 │ + .line 332 │ :cond_0 │ :goto_0 │ return v1 │ │ - .line 306 │ + .line 331 │ :cond_1 │ iget-object v2, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ │ iget v3, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ aget-char v0, v2, v3 │ │ - .line 307 │ + .line 332 │ .local v0, "c":C │ const/16 v2, 0x30 │ │ if-lt v0, v2, :cond_0 │ │ const/16 v2, 0x39 │ │ @@ -1419,110 +1419,110 @@ │ .method matchesIgnoreCase(Ljava/lang/String;)Z │ .locals 7 │ .param p1, "seq" # Ljava/lang/String; │ │ .prologue │ const/4 v4, 0x0 │ │ - .line 267 │ + .line 292 │ invoke-virtual {p1}, Ljava/lang/String;->length()I │ │ move-result v1 │ │ - .line 268 │ + .line 293 │ .local v1, "scanLength":I │ iget v5, p0, Lorg/jsoup/parser/CharacterReader;->length:I │ │ iget v6, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ sub-int/2addr v5, v6 │ │ if-le v1, v5, :cond_1 │ │ - .line 277 │ + .line 302 │ :cond_0 │ :goto_0 │ return v4 │ │ - .line 271 │ + .line 296 │ :cond_1 │ const/4 v0, 0x0 │ │ .local v0, "offset":I │ :goto_1 │ if-ge v0, v1, :cond_2 │ │ - .line 272 │ + .line 297 │ invoke-virtual {p1, v0}, Ljava/lang/String;->charAt(I)C │ │ move-result v5 │ │ invoke-static {v5}, Ljava/lang/Character;->toUpperCase(C)C │ │ move-result v2 │ │ - .line 273 │ + .line 298 │ .local v2, "upScan":C │ iget-object v5, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ │ iget v6, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ add-int/2addr v6, v0 │ │ aget-char v5, v5, v6 │ │ invoke-static {v5}, Ljava/lang/Character;->toUpperCase(C)C │ │ move-result v3 │ │ - .line 274 │ + .line 299 │ .local v3, "upTarget":C │ if-ne v2, v3, :cond_0 │ │ - .line 271 │ + .line 296 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_1 │ │ - .line 277 │ + .line 302 │ .end local v2 # "upScan":C │ .end local v3 # "upTarget":C │ :cond_2 │ const/4 v4, 0x1 │ │ goto :goto_0 │ .end method │ │ .method matchesLetter()Z │ .locals 4 │ │ .prologue │ const/4 v1, 0x0 │ │ - .line 297 │ + .line 322 │ invoke-virtual {p0}, Lorg/jsoup/parser/CharacterReader;->isEmpty()Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - .line 300 │ + .line 325 │ :cond_0 │ :goto_0 │ return v1 │ │ - .line 299 │ + .line 324 │ :cond_1 │ iget-object v2, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ │ iget v3, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ aget-char v0, v2, v3 │ │ - .line 300 │ + .line 325 │ .local v0, "c":C │ const/16 v2, 0x41 │ │ if-lt v0, v2, :cond_2 │ │ const/16 v2, 0x5a │ │ @@ -1551,120 +1551,120 @@ │ .end method │ │ .method nextIndexOf(C)I │ .locals 2 │ .param p1, "c" # C │ │ .prologue │ - .line 72 │ + .line 87 │ iget v0, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ .local v0, "i":I │ :goto_0 │ iget v1, p0, Lorg/jsoup/parser/CharacterReader;->length:I │ │ if-ge v0, v1, :cond_1 │ │ - .line 73 │ + .line 88 │ iget-object v1, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ │ aget-char v1, v1, v0 │ │ if-ne p1, v1, :cond_0 │ │ - .line 74 │ + .line 89 │ iget v1, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ sub-int v1, v0, v1 │ │ - .line 76 │ + .line 91 │ :goto_1 │ return v1 │ │ - .line 72 │ + .line 87 │ :cond_0 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_0 │ │ - .line 76 │ + .line 91 │ :cond_1 │ const/4 v1, -0x1 │ │ goto :goto_1 │ .end method │ │ .method nextIndexOf(Ljava/lang/CharSequence;)I │ .locals 7 │ .param p1, "seq" # Ljava/lang/CharSequence; │ │ .prologue │ - .line 87 │ + .line 102 │ const/4 v5, 0x0 │ │ invoke-interface {p1, v5}, Ljava/lang/CharSequence;->charAt(I)C │ │ move-result v4 │ │ - .line 88 │ + .line 103 │ .local v4, "startChar":C │ iget v3, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ .local v3, "offset":I │ :goto_0 │ iget v5, p0, Lorg/jsoup/parser/CharacterReader;->length:I │ │ if-ge v3, v5, :cond_4 │ │ - .line 90 │ + .line 105 │ iget-object v5, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ │ aget-char v5, v5, v3 │ │ if-eq v4, v5, :cond_1 │ │ - .line 91 │ + .line 106 │ :cond_0 │ add-int/lit8 v3, v3, 0x1 │ │ iget v5, p0, Lorg/jsoup/parser/CharacterReader;->length:I │ │ if-ge v3, v5, :cond_1 │ │ iget-object v5, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ │ aget-char v5, v5, v3 │ │ if-ne v4, v5, :cond_0 │ │ - .line 92 │ + .line 107 │ :cond_1 │ add-int/lit8 v0, v3, 0x1 │ │ - .line 93 │ + .line 108 │ .local v0, "i":I │ invoke-interface {p1}, Ljava/lang/CharSequence;->length()I │ │ move-result v5 │ │ add-int/2addr v5, v0 │ │ add-int/lit8 v2, v5, -0x1 │ │ - .line 94 │ + .line 109 │ .local v2, "last":I │ iget v5, p0, Lorg/jsoup/parser/CharacterReader;->length:I │ │ if-ge v3, v5, :cond_3 │ │ iget v5, p0, Lorg/jsoup/parser/CharacterReader;->length:I │ │ if-gt v2, v5, :cond_3 │ │ - .line 95 │ + .line 110 │ const/4 v1, 0x1 │ │ .local v1, "j":I │ :goto_1 │ if-ge v0, v2, :cond_2 │ │ invoke-interface {p1, v1}, Ljava/lang/CharSequence;->charAt(I)C │ @@ -1679,106 +1679,106 @@ │ │ add-int/lit8 v0, v0, 0x1 │ │ add-int/lit8 v1, v1, 0x1 │ │ goto :goto_1 │ │ - .line 96 │ + .line 111 │ :cond_2 │ if-ne v0, v2, :cond_3 │ │ - .line 97 │ + .line 112 │ iget v5, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ sub-int v5, v3, v5 │ │ - .line 100 │ + .line 115 │ .end local v0 # "i":I │ .end local v1 # "j":I │ .end local v2 # "last":I │ :goto_2 │ return v5 │ │ - .line 88 │ + .line 103 │ .restart local v0 # "i":I │ .restart local v2 # "last":I │ :cond_3 │ add-int/lit8 v3, v3, 0x1 │ │ goto :goto_0 │ │ - .line 100 │ + .line 115 │ .end local v0 # "i":I │ .end local v2 # "last":I │ :cond_4 │ const/4 v5, -0x1 │ │ goto :goto_2 │ .end method │ │ -.method pos()I │ +.method public pos()I │ .locals 1 │ │ .prologue │ - .line 28 │ + .line 32 │ iget v0, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ return v0 │ .end method │ │ .method rangeEquals(IILjava/lang/String;)Z │ .locals 9 │ .param p1, "start" # I │ .param p2, "count" # I │ .param p3, "cached" # Ljava/lang/String; │ │ .prologue │ const/4 v6, 0x0 │ │ - .line 384 │ + .line 409 │ invoke-virtual {p3}, Ljava/lang/String;->length()I │ │ move-result v7 │ │ if-ne p2, v7, :cond_0 │ │ - .line 385 │ + .line 410 │ iget-object v5, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ │ - .line 386 │ + .line 411 │ .local v5, "one":[C │ move v1, p1 │ │ - .line 387 │ + .line 412 │ .local v1, "i":I │ const/4 v3, 0x0 │ │ .local v3, "j":I │ move v4, v3 │ │ .end local v3 # "j":I │ .local v4, "j":I │ move v2, v1 │ │ .end local v1 # "i":I │ .local v2, "i":I │ move v0, p2 │ │ - .line 388 │ + .line 413 │ .end local p2 # "count":I │ .local v0, "count":I │ :goto_0 │ add-int/lit8 p2, v0, -0x1 │ │ .end local v0 # "count":I │ .restart local p2 # "count":I │ if-eqz v0, :cond_1 │ │ - .line 389 │ + .line 414 │ add-int/lit8 v1, v2, 0x1 │ │ .end local v2 # "i":I │ .restart local v1 # "i":I │ aget-char v7, v5, v2 │ │ add-int/lit8 v3, v4, 0x1 │ @@ -1787,23 +1787,23 @@ │ .restart local v3 # "j":I │ invoke-virtual {p3, v4}, Ljava/lang/String;->charAt(I)C │ │ move-result v8 │ │ if-eq v7, v8, :cond_2 │ │ - .line 394 │ + .line 419 │ .end local v1 # "i":I │ .end local v3 # "j":I │ .end local v5 # "one":[C │ :cond_0 │ :goto_1 │ return v6 │ │ - .line 392 │ + .line 417 │ .restart local v2 # "i":I │ .restart local v4 # "j":I │ .restart local v5 # "one":[C │ :cond_1 │ const/4 v6, 0x1 │ │ goto :goto_1 │ @@ -1828,28 +1828,28 @@ │ goto :goto_0 │ .end method │ │ .method rewindToMark()V │ .locals 1 │ │ .prologue │ - .line 58 │ + .line 73 │ iget v0, p0, Lorg/jsoup/parser/CharacterReader;->mark:I │ │ iput v0, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ - .line 59 │ + .line 74 │ return-void │ .end method │ │ .method public toString()Ljava/lang/String; │ .locals 5 │ │ .prologue │ - .line 337 │ + .line 362 │ new-instance v0, Ljava/lang/String; │ │ iget-object v1, p0, Lorg/jsoup/parser/CharacterReader;->input:[C │ │ iget v2, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ iget v3, p0, Lorg/jsoup/parser/CharacterReader;->length:I │ @@ -1863,17 +1863,17 @@ │ return-object v0 │ .end method │ │ .method unconsume()V │ .locals 1 │ │ .prologue │ - .line 46 │ + .line 58 │ iget v0, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ add-int/lit8 v0, v0, -0x1 │ │ iput v0, p0, Lorg/jsoup/parser/CharacterReader;->pos:I │ │ - .line 47 │ + .line 59 │ return-void │ .end method ├── smali/org/jsoup/parser/TokeniserState$63.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1488 │ + .line 1493 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -33,96 +33,96 @@ │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ const/4 v2, 0x1 │ │ - .line 1490 │ + .line 1495 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 1491 │ + .line 1496 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 1512 │ + .line 1517 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Doctype;->systemIdentifier:Ljava/lang/StringBuilder; │ │ invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 1514 │ + .line 1519 │ :goto_0 │ return-void │ │ - .line 1493 │ + .line 1498 │ :sswitch_0 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$63;->AfterDoctypeSystemIdentifier:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1496 │ + .line 1501 │ :sswitch_1 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1497 │ + .line 1502 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Doctype;->systemIdentifier:Ljava/lang/StringBuilder; │ │ const v2, 0xfffd │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ goto :goto_0 │ │ - .line 1500 │ + .line 1505 │ :sswitch_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1501 │ + .line 1506 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1502 │ + .line 1507 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1503 │ + .line 1508 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$63;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1506 │ + .line 1511 │ :sswitch_3 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1507 │ + .line 1512 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1508 │ + .line 1513 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1509 │ + .line 1514 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$63;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1491 │ + .line 1496 │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_1 │ 0x22 -> :sswitch_0 │ 0x3e -> :sswitch_2 │ 0xffff -> :sswitch_3 │ .end sparse-switch ├── smali/org/jsoup/parser/TokeniserState$2.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 33 │ + .line 35 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,15 +31,15 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 1 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 36 │ + .line 38 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$2;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-static {p1, v0}, Lorg/jsoup/parser/TokeniserState;->access$100(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 37 │ + .line 39 │ return-void │ .end method ├── smali/org/jsoup/parser/TokeniserState$47.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 974 │ + .line 977 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,24 +31,24 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 976 │ + .line 979 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->current()C │ │ move-result v0 │ │ - .line 977 │ + .line 980 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 992 │ + .line 995 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->commentPending:Lorg/jsoup/parser/Token$Comment; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Comment;->data:Ljava/lang/StringBuilder; │ │ const/4 v2, 0x2 │ │ new-array v2, v2, [C │ @@ -57,66 +57,66 @@ │ │ invoke-virtual {p2, v2}, Lorg/jsoup/parser/CharacterReader;->consumeToAny([C)Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - .line 994 │ + .line 997 │ :goto_0 │ return-void │ │ - .line 979 │ + .line 982 │ :sswitch_0 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$47;->CommentEndDash:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 982 │ + .line 985 │ :sswitch_1 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 983 │ + .line 986 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->advance()V │ │ - .line 984 │ + .line 987 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->commentPending:Lorg/jsoup/parser/Token$Comment; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Comment;->data:Ljava/lang/StringBuilder; │ │ const v2, 0xfffd │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ goto :goto_0 │ │ - .line 987 │ + .line 990 │ :sswitch_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 988 │ + .line 991 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitCommentPending()V │ │ - .line 989 │ + .line 992 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$47;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 977 │ + .line 980 │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_1 │ 0x2d -> :sswitch_0 │ 0xffff -> :sswitch_2 │ .end sparse-switch │ │ - .line 992 │ + .line 995 │ :array_0 │ .array-data 2 │ 0x2ds │ 0x0s │ .end array-data │ .end method ├── smali/org/jsoup/parser/TokeniserState$21.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 311 │ + .line 313 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -33,34 +33,34 @@ │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ const/16 v1, 0x2d │ │ - .line 313 │ + .line 315 │ invoke-virtual {p2, v1}, Lorg/jsoup/parser/CharacterReader;->matches(C)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 314 │ + .line 316 │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ - .line 315 │ + .line 317 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$21;->ScriptDataEscapedDashDash:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 319 │ + .line 321 │ :goto_0 │ return-void │ │ - .line 317 │ + .line 319 │ :cond_0 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$21;->ScriptData:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ .end method ├── smali/org/jsoup/parser/TokeniserState$36.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 632 │ + .line 634 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,119 +31,119 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 634 │ + .line 636 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 635 │ + .line 637 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 671 │ + .line 673 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ invoke-virtual {v1}, Lorg/jsoup/parser/Token$Tag;->newAttribute()V │ │ - .line 672 │ + .line 674 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->unconsume()V │ │ - .line 673 │ + .line 675 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$36;->AttributeName:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 675 │ + .line 677 │ :goto_0 │ :sswitch_0 │ return-void │ │ - .line 644 │ + .line 646 │ :sswitch_1 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$36;->SelfClosingStartTag:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 647 │ + .line 649 │ :sswitch_2 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$36;->BeforeAttributeValue:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 650 │ + .line 652 │ :sswitch_3 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitTagPending()V │ │ - .line 651 │ + .line 653 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$36;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 654 │ + .line 656 │ :sswitch_4 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 655 │ + .line 657 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ const v2, 0xfffd │ │ invoke-virtual {v1, v2}, Lorg/jsoup/parser/Token$Tag;->appendAttributeName(C)V │ │ - .line 656 │ + .line 658 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$36;->AttributeName:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 659 │ + .line 661 │ :sswitch_5 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 660 │ + .line 662 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$36;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 665 │ + .line 667 │ :sswitch_6 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 666 │ + .line 668 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ invoke-virtual {v1}, Lorg/jsoup/parser/Token$Tag;->newAttribute()V │ │ - .line 667 │ + .line 669 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ invoke-virtual {v1, v0}, Lorg/jsoup/parser/Token$Tag;->appendAttributeName(C)V │ │ - .line 668 │ + .line 670 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$36;->AttributeName:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 635 │ + .line 637 │ nop │ │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_4 │ 0x9 -> :sswitch_0 │ 0xa -> :sswitch_0 ├── smali/org/jsoup/parser/TokeniserState$7.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 79 │ + .line 81 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,61 +31,61 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 81 │ + .line 83 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->current()C │ │ move-result v1 │ │ sparse-switch v1, :sswitch_data_0 │ │ - .line 91 │ + .line 93 │ const/4 v1, 0x0 │ │ invoke-virtual {p2, v1}, Lorg/jsoup/parser/CharacterReader;->consumeTo(C)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 92 │ + .line 94 │ .local v0, "data":Ljava/lang/String; │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(Ljava/lang/String;)V │ │ - .line 95 │ + .line 97 │ .end local v0 # "data":Ljava/lang/String; │ :goto_0 │ return-void │ │ - .line 83 │ + .line 85 │ :sswitch_0 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 84 │ + .line 86 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->advance()V │ │ - .line 85 │ + .line 87 │ const v1, 0xfffd │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ goto :goto_0 │ │ - .line 88 │ + .line 90 │ :sswitch_1 │ new-instance v1, Lorg/jsoup/parser/Token$EOF; │ │ invoke-direct {v1}, Lorg/jsoup/parser/Token$EOF;->()V │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->emit(Lorg/jsoup/parser/Token;)V │ │ goto :goto_0 │ │ - .line 81 │ + .line 83 │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_0 │ 0xffff -> :sswitch_1 │ .end sparse-switch │ .end method ├── smali/org/jsoup/parser/Parser.smali │ @@ -8,177 +8,190 @@ │ │ │ # instance fields │ .field private errors:Lorg/jsoup/parser/ParseErrorList; │ │ .field private maxErrors:I │ │ +.field private settings:Lorg/jsoup/parser/ParseSettings; │ + │ .field private treeBuilder:Lorg/jsoup/parser/TreeBuilder; │ │ │ # direct methods │ .method public constructor (Lorg/jsoup/parser/TreeBuilder;)V │ .locals 1 │ .param p1, "treeBuilder" # Lorg/jsoup/parser/TreeBuilder; │ │ .prologue │ - .line 24 │ + .line 25 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ .line 17 │ const/4 v0, 0x0 │ │ iput v0, p0, Lorg/jsoup/parser/Parser;->maxErrors:I │ │ - .line 25 │ + .line 26 │ iput-object p1, p0, Lorg/jsoup/parser/Parser;->treeBuilder:Lorg/jsoup/parser/TreeBuilder; │ │ - .line 26 │ + .line 27 │ + invoke-virtual {p1}, Lorg/jsoup/parser/TreeBuilder;->defaultSettings()Lorg/jsoup/parser/ParseSettings; │ + │ + move-result-object v0 │ + │ + iput-object v0, p0, Lorg/jsoup/parser/Parser;->settings:Lorg/jsoup/parser/ParseSettings; │ + │ + .line 28 │ return-void │ .end method │ │ .method public static htmlParser()Lorg/jsoup/parser/Parser; │ .locals 2 │ │ .prologue │ - .line 171 │ + .line 198 │ new-instance v0, Lorg/jsoup/parser/Parser; │ │ new-instance v1, Lorg/jsoup/parser/HtmlTreeBuilder; │ │ invoke-direct {v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->()V │ │ invoke-direct {v0, v1}, Lorg/jsoup/parser/Parser;->(Lorg/jsoup/parser/TreeBuilder;)V │ │ return-object v0 │ .end method │ │ .method public static parse(Ljava/lang/String;Ljava/lang/String;)Lorg/jsoup/nodes/Document; │ - .locals 2 │ + .locals 3 │ .param p0, "html" # Ljava/lang/String; │ .param p1, "baseUri" # Ljava/lang/String; │ │ .prologue │ - .line 88 │ + .line 99 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilder; │ │ invoke-direct {v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->()V │ │ - .line 89 │ + .line 100 │ .local v0, "treeBuilder":Lorg/jsoup/parser/TreeBuilder; │ invoke-static {}, Lorg/jsoup/parser/ParseErrorList;->noTracking()Lorg/jsoup/parser/ParseErrorList; │ │ move-result-object v1 │ │ - invoke-virtual {v0, p0, p1, v1}, Lorg/jsoup/parser/TreeBuilder;->parse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;)Lorg/jsoup/nodes/Document; │ + invoke-virtual {v0}, Lorg/jsoup/parser/TreeBuilder;->defaultSettings()Lorg/jsoup/parser/ParseSettings; │ + │ + move-result-object v2 │ + │ + invoke-virtual {v0, p0, p1, v1, v2}, Lorg/jsoup/parser/TreeBuilder;->parse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;Lorg/jsoup/parser/ParseSettings;)Lorg/jsoup/nodes/Document; │ │ move-result-object v1 │ │ return-object v1 │ .end method │ │ .method public static parseBodyFragment(Ljava/lang/String;Ljava/lang/String;)Lorg/jsoup/nodes/Document; │ .locals 8 │ .param p0, "bodyHtml" # Ljava/lang/String; │ .param p1, "baseUri" # Ljava/lang/String; │ │ .prologue │ - .line 128 │ + .line 155 │ invoke-static {p1}, Lorg/jsoup/nodes/Document;->createShell(Ljava/lang/String;)Lorg/jsoup/nodes/Document; │ │ move-result-object v1 │ │ - .line 129 │ + .line 156 │ .local v1, "doc":Lorg/jsoup/nodes/Document; │ invoke-virtual {v1}, Lorg/jsoup/nodes/Document;->body()Lorg/jsoup/nodes/Element; │ │ move-result-object v0 │ │ - .line 130 │ + .line 157 │ .local v0, "body":Lorg/jsoup/nodes/Element; │ invoke-static {p0, v0, p1}, Lorg/jsoup/parser/Parser;->parseFragment(Ljava/lang/String;Lorg/jsoup/nodes/Element;Ljava/lang/String;)Ljava/util/List; │ │ move-result-object v4 │ │ - .line 131 │ + .line 158 │ .local v4, "nodeList":Ljava/util/List;, "Ljava/util/List;" │ invoke-interface {v4}, Ljava/util/List;->size()I │ │ move-result v6 │ │ new-array v6, v6, [Lorg/jsoup/nodes/Node; │ │ invoke-interface {v4, v6}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; │ │ move-result-object v5 │ │ check-cast v5, [Lorg/jsoup/nodes/Node; │ │ - .line 132 │ + .line 159 │ .local v5, "nodes":[Lorg/jsoup/nodes/Node; │ array-length v6, v5 │ │ add-int/lit8 v2, v6, -0x1 │ │ .local v2, "i":I │ :goto_0 │ if-lez v2, :cond_0 │ │ - .line 133 │ + .line 160 │ aget-object v6, v5, v2 │ │ invoke-virtual {v6}, Lorg/jsoup/nodes/Node;->remove()V │ │ - .line 132 │ + .line 159 │ add-int/lit8 v2, v2, -0x1 │ │ goto :goto_0 │ │ - .line 135 │ + .line 162 │ :cond_0 │ array-length v7, v5 │ │ const/4 v6, 0x0 │ │ :goto_1 │ if-ge v6, v7, :cond_1 │ │ aget-object v3, v5, v6 │ │ - .line 136 │ + .line 163 │ .local v3, "node":Lorg/jsoup/nodes/Node; │ invoke-virtual {v0, v3}, Lorg/jsoup/nodes/Element;->appendChild(Lorg/jsoup/nodes/Node;)Lorg/jsoup/nodes/Element; │ │ - .line 135 │ + .line 162 │ add-int/lit8 v6, v6, 0x1 │ │ goto :goto_1 │ │ - .line 138 │ + .line 165 │ .end local v3 # "node":Lorg/jsoup/nodes/Node; │ :cond_1 │ return-object v1 │ .end method │ │ .method public static parseBodyFragmentRelaxed(Ljava/lang/String;Ljava/lang/String;)Lorg/jsoup/nodes/Document; │ .locals 1 │ .param p0, "bodyHtml" # Ljava/lang/String; │ .param p1, "baseUri" # Ljava/lang/String; │ │ .prologue │ - .line 160 │ + .line 187 │ invoke-static {p0, p1}, Lorg/jsoup/parser/Parser;->parse(Ljava/lang/String;Ljava/lang/String;)Lorg/jsoup/nodes/Document; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public static parseFragment(Ljava/lang/String;Lorg/jsoup/nodes/Element;Ljava/lang/String;)Ljava/util/List; │ - .locals 2 │ + .locals 6 │ .param p0, "fragmentHtml" # Ljava/lang/String; │ .param p1, "context" # Lorg/jsoup/nodes/Element; │ .param p2, "baseUri" # Ljava/lang/String; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Ljava/lang/String;", │ @@ -189,34 +202,92 @@ │ "<", │ "Lorg/jsoup/nodes/Node;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 103 │ + .line 114 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilder; │ │ invoke-direct {v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->()V │ │ - .line 104 │ + .line 115 │ .local v0, "treeBuilder":Lorg/jsoup/parser/HtmlTreeBuilder; │ invoke-static {}, Lorg/jsoup/parser/ParseErrorList;->noTracking()Lorg/jsoup/parser/ParseErrorList; │ │ + move-result-object v4 │ + │ + invoke-virtual {v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->defaultSettings()Lorg/jsoup/parser/ParseSettings; │ + │ + move-result-object v5 │ + │ + move-object v1, p0 │ + │ + move-object v2, p1 │ + │ + move-object v3, p2 │ + │ + invoke-virtual/range {v0 .. v5}, Lorg/jsoup/parser/HtmlTreeBuilder;->parseFragment(Ljava/lang/String;Lorg/jsoup/nodes/Element;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;Lorg/jsoup/parser/ParseSettings;)Ljava/util/List; │ + │ move-result-object v1 │ │ - invoke-virtual {v0, p0, p1, p2, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->parseFragment(Ljava/lang/String;Lorg/jsoup/nodes/Element;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;)Ljava/util/List; │ + return-object v1 │ +.end method │ + │ +.method public static parseFragment(Ljava/lang/String;Lorg/jsoup/nodes/Element;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;)Ljava/util/List; │ + .locals 6 │ + .param p0, "fragmentHtml" # Ljava/lang/String; │ + .param p1, "context" # Lorg/jsoup/nodes/Element; │ + .param p2, "baseUri" # Ljava/lang/String; │ + .param p3, "errorList" # Lorg/jsoup/parser/ParseErrorList; │ + .annotation system Ldalvik/annotation/Signature; │ + value = { │ + "(", │ + "Ljava/lang/String;", │ + "Lorg/jsoup/nodes/Element;", │ + "Ljava/lang/String;", │ + "Lorg/jsoup/parser/ParseErrorList;", │ + ")", │ + "Ljava/util/List", │ + "<", │ + "Lorg/jsoup/nodes/Node;", │ + ">;" │ + } │ + .end annotation │ + │ + .prologue │ + .line 130 │ + new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilder; │ + │ + invoke-direct {v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->()V │ + │ + .line 131 │ + .local v0, "treeBuilder":Lorg/jsoup/parser/HtmlTreeBuilder; │ + invoke-virtual {v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->defaultSettings()Lorg/jsoup/parser/ParseSettings; │ + │ + move-result-object v5 │ + │ + move-object v1, p0 │ + │ + move-object v2, p1 │ + │ + move-object v3, p2 │ + │ + move-object v4, p3 │ + │ + invoke-virtual/range {v0 .. v5}, Lorg/jsoup/parser/HtmlTreeBuilder;->parseFragment(Ljava/lang/String;Lorg/jsoup/nodes/Element;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;Lorg/jsoup/parser/ParseSettings;)Ljava/util/List; │ │ move-result-object v1 │ │ return-object v1 │ .end method │ │ .method public static parseXmlFragment(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List; │ - .locals 2 │ + .locals 3 │ .param p0, "fragmentXml" # Ljava/lang/String; │ .param p1, "baseUri" # Ljava/lang/String; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Ljava/lang/String;", │ "Ljava/lang/String;", │ @@ -225,65 +296,69 @@ │ "<", │ "Lorg/jsoup/nodes/Node;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 115 │ + .line 142 │ new-instance v0, Lorg/jsoup/parser/XmlTreeBuilder; │ │ invoke-direct {v0}, Lorg/jsoup/parser/XmlTreeBuilder;->()V │ │ - .line 116 │ + .line 143 │ .local v0, "treeBuilder":Lorg/jsoup/parser/XmlTreeBuilder; │ invoke-static {}, Lorg/jsoup/parser/ParseErrorList;->noTracking()Lorg/jsoup/parser/ParseErrorList; │ │ move-result-object v1 │ │ - invoke-virtual {v0, p0, p1, v1}, Lorg/jsoup/parser/XmlTreeBuilder;->parseFragment(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;)Ljava/util/List; │ + invoke-virtual {v0}, Lorg/jsoup/parser/XmlTreeBuilder;->defaultSettings()Lorg/jsoup/parser/ParseSettings; │ + │ + move-result-object v2 │ + │ + invoke-virtual {v0, p0, p1, v1, v2}, Lorg/jsoup/parser/XmlTreeBuilder;->parseFragment(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;Lorg/jsoup/parser/ParseSettings;)Ljava/util/List; │ │ move-result-object v1 │ │ return-object v1 │ .end method │ │ .method public static unescapeEntities(Ljava/lang/String;Z)Ljava/lang/String; │ .locals 3 │ .param p0, "string" # Ljava/lang/String; │ .param p1, "inAttribute" # Z │ │ .prologue │ - .line 148 │ + .line 175 │ new-instance v0, Lorg/jsoup/parser/Tokeniser; │ │ new-instance v1, Lorg/jsoup/parser/CharacterReader; │ │ invoke-direct {v1, p0}, Lorg/jsoup/parser/CharacterReader;->(Ljava/lang/String;)V │ │ invoke-static {}, Lorg/jsoup/parser/ParseErrorList;->noTracking()Lorg/jsoup/parser/ParseErrorList; │ │ move-result-object v2 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/Tokeniser;->(Lorg/jsoup/parser/CharacterReader;Lorg/jsoup/parser/ParseErrorList;)V │ │ - .line 149 │ + .line 176 │ .local v0, "tokeniser":Lorg/jsoup/parser/Tokeniser; │ invoke-virtual {v0, p1}, Lorg/jsoup/parser/Tokeniser;->unescapeEntities(Z)Ljava/lang/String; │ │ move-result-object v1 │ │ return-object v1 │ .end method │ │ .method public static xmlParser()Lorg/jsoup/parser/Parser; │ .locals 2 │ │ .prologue │ - .line 180 │ + .line 207 │ new-instance v0, Lorg/jsoup/parser/Parser; │ │ new-instance v1, Lorg/jsoup/parser/XmlTreeBuilder; │ │ invoke-direct {v1}, Lorg/jsoup/parser/XmlTreeBuilder;->()V │ │ invoke-direct {v0, v1}, Lorg/jsoup/parser/Parser;->(Lorg/jsoup/parser/TreeBuilder;)V │ @@ -302,35 +377,35 @@ │ "<", │ "Lorg/jsoup/parser/ParseError;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 75 │ + .line 77 │ iget-object v0, p0, Lorg/jsoup/parser/Parser;->errors:Lorg/jsoup/parser/ParseErrorList; │ │ return-object v0 │ .end method │ │ .method public getTreeBuilder()Lorg/jsoup/parser/TreeBuilder; │ .locals 1 │ │ .prologue │ - .line 39 │ + .line 41 │ iget-object v0, p0, Lorg/jsoup/parser/Parser;->treeBuilder:Lorg/jsoup/parser/TreeBuilder; │ │ return-object v0 │ .end method │ │ .method public isTrackErrors()Z │ .locals 1 │ │ .prologue │ - .line 57 │ + .line 59 │ iget v0, p0, Lorg/jsoup/parser/Parser;->maxErrors:I │ │ if-lez v0, :cond_0 │ │ const/4 v0, 0x1 │ │ :goto_0 │ @@ -339,20 +414,20 @@ │ :cond_0 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public parseInput(Ljava/lang/String;Ljava/lang/String;)Lorg/jsoup/nodes/Document; │ - .locals 2 │ + .locals 3 │ .param p1, "html" # Ljava/lang/String; │ .param p2, "baseUri" # Ljava/lang/String; │ │ .prologue │ - .line 29 │ + .line 31 │ invoke-virtual {p0}, Lorg/jsoup/parser/Parser;->isTrackErrors()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ iget v0, p0, Lorg/jsoup/parser/Parser;->maxErrors:I │ @@ -360,50 +435,74 @@ │ invoke-static {v0}, Lorg/jsoup/parser/ParseErrorList;->tracking(I)Lorg/jsoup/parser/ParseErrorList; │ │ move-result-object v0 │ │ :goto_0 │ iput-object v0, p0, Lorg/jsoup/parser/Parser;->errors:Lorg/jsoup/parser/ParseErrorList; │ │ - .line 30 │ + .line 32 │ iget-object v0, p0, Lorg/jsoup/parser/Parser;->treeBuilder:Lorg/jsoup/parser/TreeBuilder; │ │ iget-object v1, p0, Lorg/jsoup/parser/Parser;->errors:Lorg/jsoup/parser/ParseErrorList; │ │ - invoke-virtual {v0, p1, p2, v1}, Lorg/jsoup/parser/TreeBuilder;->parse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;)Lorg/jsoup/nodes/Document; │ + iget-object v2, p0, Lorg/jsoup/parser/Parser;->settings:Lorg/jsoup/parser/ParseSettings; │ + │ + invoke-virtual {v0, p1, p2, v1, v2}, Lorg/jsoup/parser/TreeBuilder;->parse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;Lorg/jsoup/parser/ParseSettings;)Lorg/jsoup/nodes/Document; │ │ move-result-object v0 │ │ return-object v0 │ │ - .line 29 │ + .line 31 │ :cond_0 │ invoke-static {}, Lorg/jsoup/parser/ParseErrorList;->noTracking()Lorg/jsoup/parser/ParseErrorList; │ │ move-result-object v0 │ │ goto :goto_0 │ .end method │ │ .method public setTrackErrors(I)Lorg/jsoup/parser/Parser; │ .locals 0 │ .param p1, "maxErrors" # I │ │ .prologue │ - .line 66 │ + .line 68 │ iput p1, p0, Lorg/jsoup/parser/Parser;->maxErrors:I │ │ - .line 67 │ + .line 69 │ return-object p0 │ .end method │ │ .method public setTreeBuilder(Lorg/jsoup/parser/TreeBuilder;)Lorg/jsoup/parser/Parser; │ .locals 0 │ .param p1, "treeBuilder" # Lorg/jsoup/parser/TreeBuilder; │ │ .prologue │ - .line 48 │ + .line 50 │ iput-object p1, p0, Lorg/jsoup/parser/Parser;->treeBuilder:Lorg/jsoup/parser/TreeBuilder; │ │ - .line 49 │ + .line 51 │ + return-object p0 │ +.end method │ + │ +.method public settings()Lorg/jsoup/parser/ParseSettings; │ + .locals 1 │ + │ + .prologue │ + .line 86 │ + iget-object v0, p0, Lorg/jsoup/parser/Parser;->settings:Lorg/jsoup/parser/ParseSettings; │ + │ + return-object v0 │ +.end method │ + │ +.method public settings(Lorg/jsoup/parser/ParseSettings;)Lorg/jsoup/parser/Parser; │ + .locals 0 │ + .param p1, "settings" # Lorg/jsoup/parser/ParseSettings; │ + │ + .prologue │ + .line 81 │ + iput-object p1, p0, Lorg/jsoup/parser/Parser;->settings:Lorg/jsoup/parser/ParseSettings; │ + │ + .line 82 │ return-object p0 │ .end method ├── smali/org/jsoup/parser/TokeniserState$45.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 918 │ + .line 921 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,96 +31,96 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 920 │ + .line 923 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 921 │ + .line 924 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 941 │ + .line 944 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->commentPending:Lorg/jsoup/parser/Token$Comment; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Comment;->data:Ljava/lang/StringBuilder; │ │ invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 942 │ + .line 945 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$45;->Comment:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 944 │ + .line 947 │ :goto_0 │ return-void │ │ - .line 923 │ + .line 926 │ :sswitch_0 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$45;->CommentStartDash:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 926 │ + .line 929 │ :sswitch_1 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 927 │ + .line 930 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->commentPending:Lorg/jsoup/parser/Token$Comment; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Comment;->data:Ljava/lang/StringBuilder; │ │ const v2, 0xfffd │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 928 │ + .line 931 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$45;->Comment:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 931 │ + .line 934 │ :sswitch_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 932 │ + .line 935 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitCommentPending()V │ │ - .line 933 │ + .line 936 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$45;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 936 │ + .line 939 │ :sswitch_3 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 937 │ + .line 940 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitCommentPending()V │ │ - .line 938 │ + .line 941 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$45;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 921 │ + .line 924 │ nop │ │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_1 │ 0x2d -> :sswitch_0 │ 0x3e -> :sswitch_2 ├── smali/org/jsoup/parser/HtmlTreeBuilderState$20.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1386 │ + .line 1389 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->(Ljava/lang/String;ILorg/jsoup/parser/HtmlTreeBuilderState$1;)V │ │ return-void │ .end method │ │ @@ -33,169 +33,169 @@ │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Token; │ .param p2, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ const/4 v0, 0x0 │ │ - .line 1388 │ + .line 1391 │ invoke-static {p1}, Lorg/jsoup/parser/HtmlTreeBuilderState;->access$100(Lorg/jsoup/parser/Token;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_1 │ │ - .line 1389 │ + .line 1392 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asCharacter()Lorg/jsoup/parser/Token$Character; │ │ move-result-object v0 │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Character;)V │ │ - .line 1407 │ + .line 1410 │ :cond_0 │ :goto_0 │ const/4 v0, 0x1 │ │ :goto_1 │ return v0 │ │ - .line 1390 │ + .line 1393 │ :cond_1 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isComment()Z │ │ move-result v1 │ │ if-eqz v1, :cond_2 │ │ - .line 1391 │ + .line 1394 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asComment()Lorg/jsoup/parser/Token$Comment; │ │ move-result-object v0 │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Comment;)V │ │ goto :goto_0 │ │ - .line 1392 │ + .line 1395 │ :cond_2 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isDoctype()Z │ │ move-result v1 │ │ if-eqz v1, :cond_3 │ │ - .line 1393 │ + .line 1396 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_1 │ │ - .line 1395 │ + .line 1398 │ :cond_3 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isStartTag()Z │ │ move-result v1 │ │ if-eqz v1, :cond_4 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v1 │ │ - invoke-virtual {v1}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ + invoke-virtual {v1}, Lorg/jsoup/parser/Token$StartTag;->normalName()Ljava/lang/String; │ │ move-result-object v1 │ │ const-string v2, "html" │ │ invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_4 │ │ - .line 1396 │ + .line 1399 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$20;->InBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, p1, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ move-result v0 │ │ goto :goto_1 │ │ - .line 1397 │ + .line 1400 │ :cond_4 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEndTag()Z │ │ move-result v1 │ │ if-eqz v1, :cond_5 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asEndTag()Lorg/jsoup/parser/Token$EndTag; │ │ move-result-object v1 │ │ - invoke-virtual {v1}, Lorg/jsoup/parser/Token$EndTag;->name()Ljava/lang/String; │ + invoke-virtual {v1}, Lorg/jsoup/parser/Token$EndTag;->normalName()Ljava/lang/String; │ │ move-result-object v1 │ │ const-string v2, "html" │ │ invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_5 │ │ - .line 1398 │ + .line 1401 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$20;->AfterAfterFrameset:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_0 │ │ - .line 1399 │ + .line 1402 │ :cond_5 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isStartTag()Z │ │ move-result v1 │ │ if-eqz v1, :cond_6 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v1 │ │ - invoke-virtual {v1}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ + invoke-virtual {v1}, Lorg/jsoup/parser/Token$StartTag;->normalName()Ljava/lang/String; │ │ move-result-object v1 │ │ const-string v2, "noframes" │ │ invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_6 │ │ - .line 1400 │ + .line 1403 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$20;->InHead:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, p1, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ move-result v0 │ │ goto :goto_1 │ │ - .line 1401 │ + .line 1404 │ :cond_6 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEOF()Z │ │ move-result v1 │ │ if-nez v1, :cond_0 │ │ - .line 1404 │ + .line 1407 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_1 │ .end method ├── smali/org/jsoup/parser/TokeniserState$50.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1052 │ + .line 1055 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,114 +31,114 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 1054 │ + .line 1057 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 1055 │ + .line 1058 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 1075 │ + .line 1078 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->commentPending:Lorg/jsoup/parser/Token$Comment; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Comment;->data:Ljava/lang/StringBuilder; │ │ const-string v2, "--!" │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 1076 │ + .line 1079 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$50;->Comment:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1078 │ + .line 1081 │ :goto_0 │ return-void │ │ - .line 1057 │ + .line 1060 │ :sswitch_0 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->commentPending:Lorg/jsoup/parser/Token$Comment; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Comment;->data:Ljava/lang/StringBuilder; │ │ const-string v2, "--!" │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - .line 1058 │ + .line 1061 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$50;->CommentEndDash:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1061 │ + .line 1064 │ :sswitch_1 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitCommentPending()V │ │ - .line 1062 │ + .line 1065 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$50;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1065 │ + .line 1068 │ :sswitch_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1066 │ + .line 1069 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->commentPending:Lorg/jsoup/parser/Token$Comment; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Comment;->data:Ljava/lang/StringBuilder; │ │ const-string v2, "--!" │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ const v2, 0xfffd │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 1067 │ + .line 1070 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$50;->Comment:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1070 │ + .line 1073 │ :sswitch_3 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1071 │ + .line 1074 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitCommentPending()V │ │ - .line 1072 │ + .line 1075 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$50;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1055 │ + .line 1058 │ nop │ │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_2 │ 0x2d -> :sswitch_0 │ 0x3e -> :sswitch_1 ├── smali/org/jsoup/parser/TokeniserState$15.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 263 │ + .line 265 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,17 +31,17 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 265 │ + .line 267 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$15;->RawtextEndTagName:Lorg/jsoup/parser/TokeniserState; │ │ sget-object v1, Lorg/jsoup/parser/TokeniserState$15;->Rawtext:Lorg/jsoup/parser/TokeniserState; │ │ invoke-static {p1, p2, v0, v1}, Lorg/jsoup/parser/TokeniserState;->access$400(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;Lorg/jsoup/parser/TokeniserState;Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 266 │ + .line 268 │ return-void │ .end method ├── smali/org/jsoup/parser/Token$EndTag.smali │ @@ -15,33 +15,33 @@ │ │ │ # direct methods │ .method constructor ()V │ .locals 1 │ │ .prologue │ - .line 223 │ + .line 251 │ invoke-direct {p0}, Lorg/jsoup/parser/Token$Tag;->()V │ │ - .line 224 │ + .line 252 │ sget-object v0, Lorg/jsoup/parser/Token$TokenType;->EndTag:Lorg/jsoup/parser/Token$TokenType; │ │ iput-object v0, p0, Lorg/jsoup/parser/Token$EndTag;->type:Lorg/jsoup/parser/Token$TokenType; │ │ - .line 225 │ + .line 253 │ return-void │ .end method │ │ │ # virtual methods │ .method public toString()Ljava/lang/String; │ .locals 2 │ │ .prologue │ - .line 229 │ + .line 257 │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ const-string v1, "append(Ljava/lang/String;)Ljava/lang/StringBuilder; ├── smali/org/jsoup/parser/TokeniserState$25.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 407 │ + .line 409 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,38 +31,34 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 409 │ + .line 411 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->matchesLetter()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 410 │ + .line 412 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->createTempBuffer()V │ │ - .line 411 │ + .line 413 │ iget-object v0, p1, Lorg/jsoup/parser/Tokeniser;->dataBuffer:Ljava/lang/StringBuilder; │ │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->current()C │ │ move-result v1 │ │ - invoke-static {v1}, Ljava/lang/Character;->toLowerCase(C)C │ - │ - move-result v1 │ - │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 412 │ + .line 414 │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ const-string v1, "<" │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ @@ -79,49 +75,49 @@ │ │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(Ljava/lang/String;)V │ │ - .line 413 │ + .line 415 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$25;->ScriptDataDoubleEscapeStart:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 421 │ + .line 423 │ :goto_0 │ return-void │ │ - .line 414 │ + .line 416 │ :cond_0 │ const/16 v0, 0x2f │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/CharacterReader;->matches(C)Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ - .line 415 │ + .line 417 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->createTempBuffer()V │ │ - .line 416 │ + .line 418 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$25;->ScriptDataEscapedEndTagOpen:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 418 │ + .line 420 │ :cond_1 │ const/16 v0, 0x3c │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ - .line 419 │ + .line 421 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$25;->ScriptDataEscaped:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ .end method ├── smali/org/jsoup/parser/HtmlTreeBuilder.smali │ @@ -754,15 +754,15 @@ │ │ .line 43 │ iput-boolean v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->fosterInserts:Z │ │ .line 44 │ iput-boolean v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->fragmentParsing:Z │ │ - .line 431 │ + .line 435 │ new-array v0, v1, [Ljava/lang/String; │ │ const/4 v1, 0x0 │ │ aput-object v1, v0, v2 │ │ iput-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->specificScopeTarget:[Ljava/lang/String; │ @@ -772,37 +772,37 @@ │ .end method │ │ .method private varargs clearStackToContext([Ljava/lang/String;)V │ .locals 4 │ .param p1, "nodeNames" # [Ljava/lang/String; │ │ .prologue │ - .line 345 │ + .line 349 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v2}, Ljava/util/ArrayList;->size()I │ │ move-result v2 │ │ add-int/lit8 v1, v2, -0x1 │ │ .local v1, "pos":I │ :goto_0 │ if-ltz v1, :cond_0 │ │ - .line 346 │ + .line 350 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/jsoup/nodes/Element; │ │ - .line 347 │ + .line 351 │ .local v0, "next":Lorg/jsoup/nodes/Element; │ invoke-virtual {v0}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-static {v2, p1}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ @@ -818,47 +818,47 @@ │ │ invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - .line 352 │ + .line 356 │ .end local v0 # "next":Lorg/jsoup/nodes/Element; │ :cond_0 │ return-void │ │ - .line 350 │ + .line 354 │ .restart local v0 # "next":Lorg/jsoup/nodes/Element; │ :cond_1 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v2, v1}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object; │ │ - .line 345 │ + .line 349 │ add-int/lit8 v1, v1, -0x1 │ │ goto :goto_0 │ .end method │ │ .method private inSpecificScope(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Z │ .locals 2 │ .param p1, "targetName" # Ljava/lang/String; │ .param p2, "baseTypes" # [Ljava/lang/String; │ .param p3, "extraTypes" # [Ljava/lang/String; │ │ .prologue │ - .line 434 │ + .line 438 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->specificScopeTarget:[Ljava/lang/String; │ │ const/4 v1, 0x0 │ │ aput-object p1, v0, v1 │ │ - .line 435 │ + .line 439 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->specificScopeTarget:[Ljava/lang/String; │ │ invoke-direct {p0, v0, p2, p3}, Lorg/jsoup/parser/HtmlTreeBuilder;->inSpecificScope([Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v0 │ │ return v0 │ @@ -869,86 +869,86 @@ │ .param p1, "targetNames" # [Ljava/lang/String; │ .param p2, "baseTypes" # [Ljava/lang/String; │ .param p3, "extraTypes" # [Ljava/lang/String; │ │ .prologue │ const/4 v3, 0x0 │ │ - .line 439 │ + .line 443 │ iget-object v4, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v4}, Ljava/util/ArrayList;->size()I │ │ move-result v4 │ │ add-int/lit8 v2, v4, -0x1 │ │ .local v2, "pos":I │ :goto_0 │ if-ltz v2, :cond_3 │ │ - .line 440 │ + .line 444 │ iget-object v4, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v4, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/jsoup/nodes/Element; │ │ - .line 441 │ + .line 445 │ .local v0, "el":Lorg/jsoup/nodes/Element; │ invoke-virtual {v0}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 442 │ + .line 446 │ .local v1, "elName":Ljava/lang/String; │ invoke-static {v1, p1}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_1 │ │ - .line 443 │ + .line 447 │ const/4 v3, 0x1 │ │ - .line 450 │ + .line 454 │ .end local v0 # "el":Lorg/jsoup/nodes/Element; │ .end local v1 # "elName":Ljava/lang/String; │ :cond_0 │ :goto_1 │ return v3 │ │ - .line 444 │ + .line 448 │ .restart local v0 # "el":Lorg/jsoup/nodes/Element; │ .restart local v1 # "elName":Ljava/lang/String; │ :cond_1 │ invoke-static {v1, p2}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v4 │ │ if-nez v4, :cond_0 │ │ - .line 446 │ + .line 450 │ if-eqz p3, :cond_2 │ │ invoke-static {v1, p3}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v4 │ │ if-nez v4, :cond_0 │ │ - .line 439 │ + .line 443 │ :cond_2 │ add-int/lit8 v2, v2, -0x1 │ │ goto :goto_0 │ │ - .line 449 │ + .line 453 │ .end local v0 # "el":Lorg/jsoup/nodes/Element; │ .end local v1 # "elName":Ljava/lang/String; │ :cond_3 │ const-string v4, "Should not be reachable" │ │ invoke-static {v4}, Lorg/jsoup/helper/Validate;->fail(Ljava/lang/String;)V │ │ @@ -956,29 +956,29 @@ │ .end method │ │ .method private insertNode(Lorg/jsoup/nodes/Node;)V │ .locals 1 │ .param p1, "node" # Lorg/jsoup/nodes/Node; │ │ .prologue │ - .line 241 │ + .line 245 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v0}, Ljava/util/ArrayList;->size()I │ │ move-result v0 │ │ if-nez v0, :cond_1 │ │ - .line 242 │ + .line 246 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->doc:Lorg/jsoup/nodes/Document; │ │ invoke-virtual {v0, p1}, Lorg/jsoup/nodes/Document;->appendChild(Lorg/jsoup/nodes/Node;)Lorg/jsoup/nodes/Element; │ │ - .line 249 │ + .line 253 │ :goto_0 │ instance-of v0, p1, Lorg/jsoup/nodes/Element; │ │ if-eqz v0, :cond_0 │ │ move-object v0, p1 │ │ @@ -990,46 +990,46 @@ │ │ invoke-virtual {v0}, Lorg/jsoup/parser/Tag;->isFormListed()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 250 │ + .line 254 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formElement:Lorg/jsoup/nodes/FormElement; │ │ if-eqz v0, :cond_0 │ │ - .line 251 │ + .line 255 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formElement:Lorg/jsoup/nodes/FormElement; │ │ check-cast p1, Lorg/jsoup/nodes/Element; │ │ .end local p1 # "node":Lorg/jsoup/nodes/Node; │ invoke-virtual {v0, p1}, Lorg/jsoup/nodes/FormElement;->addElement(Lorg/jsoup/nodes/Element;)Lorg/jsoup/nodes/FormElement; │ │ - .line 253 │ + .line 257 │ :cond_0 │ return-void │ │ - .line 243 │ + .line 247 │ .restart local p1 # "node":Lorg/jsoup/nodes/Node; │ :cond_1 │ invoke-virtual {p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->isFosterInserts()Z │ │ move-result v0 │ │ if-eqz v0, :cond_2 │ │ - .line 244 │ + .line 248 │ invoke-virtual {p0, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertInFosterParent(Lorg/jsoup/nodes/Node;)V │ │ goto :goto_0 │ │ - .line 246 │ + .line 250 │ :cond_2 │ invoke-virtual {p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v0 │ │ invoke-virtual {v0, p1}, Lorg/jsoup/nodes/Element;->appendChild(Lorg/jsoup/nodes/Node;)Lorg/jsoup/nodes/Element; │ │ @@ -1048,82 +1048,82 @@ │ ">;", │ "Lorg/jsoup/nodes/Element;", │ ")Z" │ } │ .end annotation │ │ .prologue │ - .line 273 │ + .line 277 │ .local p1, "queue":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ invoke-virtual {p1}, Ljava/util/ArrayList;->size()I │ │ move-result v2 │ │ add-int/lit8 v1, v2, -0x1 │ │ .local v1, "pos":I │ :goto_0 │ if-ltz v1, :cond_1 │ │ - .line 274 │ + .line 278 │ invoke-virtual {p1, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/jsoup/nodes/Element; │ │ - .line 275 │ + .line 279 │ .local v0, "next":Lorg/jsoup/nodes/Element; │ if-ne v0, p2, :cond_0 │ │ - .line 276 │ + .line 280 │ const/4 v2, 0x1 │ │ - .line 279 │ + .line 283 │ .end local v0 # "next":Lorg/jsoup/nodes/Element; │ :goto_1 │ return v2 │ │ - .line 273 │ + .line 277 │ .restart local v0 # "next":Lorg/jsoup/nodes/Element; │ :cond_0 │ add-int/lit8 v1, v1, -0x1 │ │ goto :goto_0 │ │ - .line 279 │ + .line 283 │ .end local v0 # "next":Lorg/jsoup/nodes/Element; │ :cond_1 │ const/4 v2, 0x0 │ │ goto :goto_1 │ .end method │ │ .method private isSameFormattingElement(Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)Z │ .locals 2 │ .param p1, "a" # Lorg/jsoup/nodes/Element; │ .param p2, "b" # Lorg/jsoup/nodes/Element; │ │ .prologue │ - .line 587 │ + .line 591 │ invoke-virtual {p1}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v0 │ │ invoke-virtual {p2}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 589 │ + .line 593 │ invoke-virtual {p1}, Lorg/jsoup/nodes/Element;->attributes()Lorg/jsoup/nodes/Attributes; │ │ move-result-object v0 │ │ invoke-virtual {p2}, Lorg/jsoup/nodes/Element;->attributes()Lorg/jsoup/nodes/Attributes; │ │ move-result-object v1 │ @@ -1159,52 +1159,52 @@ │ "Lorg/jsoup/nodes/Element;", │ "Lorg/jsoup/nodes/Element;", │ ")V" │ } │ .end annotation │ │ .prologue │ - .line 376 │ + .line 380 │ .local p1, "queue":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ invoke-virtual {p1, p2}, Ljava/util/ArrayList;->lastIndexOf(Ljava/lang/Object;)I │ │ move-result v0 │ │ - .line 377 │ + .line 381 │ .local v0, "i":I │ const/4 v1, -0x1 │ │ if-eq v0, v1, :cond_0 │ │ const/4 v1, 0x1 │ │ :goto_0 │ invoke-static {v1}, Lorg/jsoup/helper/Validate;->isTrue(Z)V │ │ - .line 378 │ + .line 382 │ invoke-virtual {p1, v0, p3}, Ljava/util/ArrayList;->set(ILjava/lang/Object;)Ljava/lang/Object; │ │ - .line 379 │ + .line 383 │ return-void │ │ - .line 377 │ + .line 381 │ :cond_0 │ const/4 v1, 0x0 │ │ goto :goto_0 │ .end method │ │ │ # virtual methods │ .method aboveOnStack(Lorg/jsoup/nodes/Element;)Lorg/jsoup/nodes/Element; │ .locals 4 │ .param p1, "el" # Lorg/jsoup/nodes/Element; │ │ .prologue │ - .line 355 │ + .line 359 │ sget-boolean v2, Lorg/jsoup/parser/HtmlTreeBuilder;->$assertionsDisabled:Z │ │ if-nez v2, :cond_0 │ │ invoke-virtual {p0, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->onStack(Lorg/jsoup/nodes/Element;)Z │ │ move-result v2 │ @@ -1213,106 +1213,106 @@ │ │ new-instance v2, Ljava/lang/AssertionError; │ │ invoke-direct {v2}, Ljava/lang/AssertionError;->()V │ │ throw v2 │ │ - .line 356 │ + .line 360 │ :cond_0 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v2}, Ljava/util/ArrayList;->size()I │ │ move-result v2 │ │ add-int/lit8 v1, v2, -0x1 │ │ .local v1, "pos":I │ :goto_0 │ if-ltz v1, :cond_2 │ │ - .line 357 │ + .line 361 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/jsoup/nodes/Element; │ │ - .line 358 │ + .line 362 │ .local v0, "next":Lorg/jsoup/nodes/Element; │ if-ne v0, p1, :cond_1 │ │ - .line 359 │ + .line 363 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ add-int/lit8 v3, v1, -0x1 │ │ invoke-virtual {v2, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Lorg/jsoup/nodes/Element; │ │ - .line 362 │ + .line 366 │ .end local v0 # "next":Lorg/jsoup/nodes/Element; │ :goto_1 │ return-object v2 │ │ - .line 356 │ + .line 360 │ .restart local v0 # "next":Lorg/jsoup/nodes/Element; │ :cond_1 │ add-int/lit8 v1, v1, -0x1 │ │ goto :goto_0 │ │ - .line 362 │ + .line 366 │ .end local v0 # "next":Lorg/jsoup/nodes/Element; │ :cond_2 │ const/4 v2, 0x0 │ │ goto :goto_1 │ .end method │ │ .method clearFormattingElementsToLastMarker()V │ .locals 2 │ │ .prologue │ - .line 632 │ + .line 636 │ :cond_0 │ iget-object v1, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formattingElements:Ljava/util/ArrayList; │ │ invoke-virtual {v1}, Ljava/util/ArrayList;->isEmpty()Z │ │ move-result v1 │ │ if-nez v1, :cond_1 │ │ - .line 633 │ + .line 637 │ invoke-virtual {p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->removeLastFormattingElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v0 │ │ - .line 634 │ + .line 638 │ .local v0, "el":Lorg/jsoup/nodes/Element; │ if-nez v0, :cond_0 │ │ - .line 637 │ + .line 641 │ .end local v0 # "el":Lorg/jsoup/nodes/Element; │ :cond_1 │ return-void │ .end method │ │ .method clearStackToTableBodyContext()V │ .locals 3 │ │ .prologue │ - .line 337 │ + .line 341 │ const/4 v0, 0x3 │ │ new-array v0, v0, [Ljava/lang/String; │ │ const/4 v1, 0x0 │ │ const-string v2, "tbody" │ @@ -1329,75 +1329,85 @@ │ │ const-string v2, "thead" │ │ aput-object v2, v0, v1 │ │ invoke-direct {p0, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->clearStackToContext([Ljava/lang/String;)V │ │ - .line 338 │ + .line 342 │ return-void │ .end method │ │ .method clearStackToTableContext()V │ .locals 3 │ │ .prologue │ - .line 333 │ + .line 337 │ const/4 v0, 0x1 │ │ new-array v0, v0, [Ljava/lang/String; │ │ const/4 v1, 0x0 │ │ const-string v2, "table" │ │ aput-object v2, v0, v1 │ │ invoke-direct {p0, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->clearStackToContext([Ljava/lang/String;)V │ │ - .line 334 │ + .line 338 │ return-void │ .end method │ │ .method clearStackToTableRowContext()V │ .locals 3 │ │ .prologue │ - .line 341 │ + .line 345 │ const/4 v0, 0x1 │ │ new-array v0, v0, [Ljava/lang/String; │ │ const/4 v1, 0x0 │ │ const-string v2, "tr" │ │ aput-object v2, v0, v1 │ │ invoke-direct {p0, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->clearStackToContext([Ljava/lang/String;)V │ │ - .line 342 │ + .line 346 │ return-void │ .end method │ │ +.method defaultSettings()Lorg/jsoup/parser/ParseSettings; │ + .locals 1 │ + │ + .prologue │ + .line 49 │ + sget-object v0, Lorg/jsoup/parser/ParseSettings;->htmlDefault:Lorg/jsoup/parser/ParseSettings; │ + │ + return-object v0 │ +.end method │ + │ .method error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ .locals 7 │ .param p1, "state" # Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ .prologue │ - .line 166 │ + .line 170 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->errors:Lorg/jsoup/parser/ParseErrorList; │ │ invoke-virtual {v0}, Lorg/jsoup/parser/ParseErrorList;->canAddError()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 167 │ + .line 171 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->errors:Lorg/jsoup/parser/ParseErrorList; │ │ new-instance v1, Lorg/jsoup/parser/ParseError; │ │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->reader:Lorg/jsoup/parser/CharacterReader; │ │ invoke-virtual {v2}, Lorg/jsoup/parser/CharacterReader;->pos()I │ @@ -1424,60 +1434,60 @@ │ │ aput-object p1, v4, v5 │ │ invoke-direct {v1, v2, v3, v4}, Lorg/jsoup/parser/ParseError;->(ILjava/lang/String;[Ljava/lang/Object;)V │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/ParseErrorList;->add(Ljava/lang/Object;)Z │ │ - .line 168 │ + .line 172 │ :cond_0 │ return-void │ .end method │ │ .method framesetOk(Z)V │ .locals 0 │ .param p1, "framesetOk" # Z │ │ .prologue │ - .line 134 │ + .line 138 │ iput-boolean p1, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->framesetOk:Z │ │ - .line 135 │ + .line 139 │ return-void │ .end method │ │ .method framesetOk()Z │ .locals 1 │ │ .prologue │ - .line 138 │ + .line 142 │ iget-boolean v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->framesetOk:Z │ │ return v0 │ .end method │ │ .method generateImpliedEndTags()V │ .locals 1 │ │ .prologue │ - .line 544 │ + .line 548 │ const/4 v0, 0x0 │ │ invoke-virtual {p0, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->generateImpliedEndTags(Ljava/lang/String;)V │ │ - .line 545 │ + .line 549 │ return-void │ .end method │ │ .method generateImpliedEndTags(Ljava/lang/String;)V │ .locals 2 │ .param p1, "excludeTag" # Ljava/lang/String; │ │ .prologue │ - .line 538 │ + .line 542 │ :goto_0 │ if-eqz p1, :cond_0 │ │ invoke-virtual {p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v0 │ │ @@ -1487,15 +1497,15 @@ │ │ invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ - .line 539 │ + .line 543 │ invoke-virtual {p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v0 │ │ invoke-virtual {v0}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v0 │ @@ -1504,176 +1514,176 @@ │ │ invoke-static {v0, v1}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 540 │ + .line 544 │ invoke-virtual {p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->pop()Lorg/jsoup/nodes/Element; │ │ goto :goto_0 │ │ - .line 541 │ + .line 545 │ :cond_0 │ return-void │ .end method │ │ .method getActiveFormattingElement(Ljava/lang/String;)Lorg/jsoup/nodes/Element; │ .locals 3 │ .param p1, "nodeName" # Ljava/lang/String; │ │ .prologue │ - .line 654 │ + .line 658 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formattingElements:Ljava/util/ArrayList; │ │ invoke-virtual {v2}, Ljava/util/ArrayList;->size()I │ │ move-result v2 │ │ add-int/lit8 v1, v2, -0x1 │ │ .local v1, "pos":I │ :goto_0 │ if-ltz v1, :cond_0 │ │ - .line 655 │ + .line 659 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formattingElements:Ljava/util/ArrayList; │ │ invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/jsoup/nodes/Element; │ │ - .line 656 │ + .line 660 │ .local v0, "next":Lorg/jsoup/nodes/Element; │ if-nez v0, :cond_2 │ │ - .line 661 │ + .line 665 │ .end local v0 # "next":Lorg/jsoup/nodes/Element; │ :cond_0 │ const/4 v0, 0x0 │ │ :cond_1 │ return-object v0 │ │ - .line 658 │ + .line 662 │ .restart local v0 # "next":Lorg/jsoup/nodes/Element; │ :cond_2 │ invoke-virtual {v0}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v2, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v2 │ │ if-nez v2, :cond_1 │ │ - .line 654 │ + .line 658 │ add-int/lit8 v1, v1, -0x1 │ │ goto :goto_0 │ .end method │ │ .method getBaseUri()Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 146 │ + .line 150 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->baseUri:Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method getDocument()Lorg/jsoup/nodes/Document; │ .locals 1 │ │ .prologue │ - .line 142 │ + .line 146 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->doc:Lorg/jsoup/nodes/Document; │ │ return-object v0 │ .end method │ │ .method getFormElement()Lorg/jsoup/nodes/FormElement; │ .locals 1 │ │ .prologue │ - .line 509 │ + .line 513 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formElement:Lorg/jsoup/nodes/FormElement; │ │ return-object v0 │ .end method │ │ .method getFromStack(Ljava/lang/String;)Lorg/jsoup/nodes/Element; │ .locals 3 │ .param p1, "elName" # Ljava/lang/String; │ │ .prologue │ - .line 283 │ + .line 287 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v2}, Ljava/util/ArrayList;->size()I │ │ move-result v2 │ │ add-int/lit8 v1, v2, -0x1 │ │ .local v1, "pos":I │ :goto_0 │ if-ltz v1, :cond_1 │ │ - .line 284 │ + .line 288 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/jsoup/nodes/Element; │ │ - .line 285 │ + .line 289 │ .local v0, "next":Lorg/jsoup/nodes/Element; │ invoke-virtual {v0}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v2, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ - .line 289 │ + .line 293 │ .end local v0 # "next":Lorg/jsoup/nodes/Element; │ :goto_1 │ return-object v0 │ │ - .line 283 │ + .line 287 │ .restart local v0 # "next":Lorg/jsoup/nodes/Element; │ :cond_0 │ add-int/lit8 v1, v1, -0x1 │ │ goto :goto_0 │ │ - .line 289 │ + .line 293 │ .end local v0 # "next":Lorg/jsoup/nodes/Element; │ :cond_1 │ const/4 v0, 0x0 │ │ goto :goto_1 │ .end method │ │ .method getHeadElement()Lorg/jsoup/nodes/Element; │ .locals 1 │ │ .prologue │ - .line 497 │ + .line 501 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->headElement:Lorg/jsoup/nodes/Element; │ │ return-object v0 │ .end method │ │ .method getPendingTableCharacters()Ljava/util/List; │ .locals 1 │ @@ -1684,15 +1694,15 @@ │ "<", │ "Ljava/lang/String;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 521 │ + .line 525 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->pendingTableCharacters:Ljava/util/List; │ │ return-object v0 │ .end method │ │ .method getStack()Ljava/util/ArrayList; │ .locals 1 │ @@ -1703,56 +1713,56 @@ │ "<", │ "Lorg/jsoup/nodes/Element;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 265 │ + .line 269 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ return-object v0 │ .end method │ │ .method inButtonScope(Ljava/lang/String;)Z │ .locals 1 │ .param p1, "targetName" # Ljava/lang/String; │ │ .prologue │ - .line 472 │ + .line 476 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilder;->TagSearchButton:[Ljava/lang/String; │ │ invoke-virtual {p0, p1, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->inScope(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v0 │ │ return v0 │ .end method │ │ .method inListItemScope(Ljava/lang/String;)Z │ .locals 1 │ .param p1, "targetName" # Ljava/lang/String; │ │ .prologue │ - .line 468 │ + .line 472 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilder;->TagSearchList:[Ljava/lang/String; │ │ invoke-virtual {p0, p1, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->inScope(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v0 │ │ return v0 │ .end method │ │ .method inScope(Ljava/lang/String;)Z │ .locals 1 │ .param p1, "targetName" # Ljava/lang/String; │ │ .prologue │ - .line 458 │ + .line 462 │ const/4 v0, 0x0 │ │ invoke-virtual {p0, p1, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->inScope(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v0 │ │ return v0 │ @@ -1760,30 +1770,30 @@ │ │ .method inScope(Ljava/lang/String;[Ljava/lang/String;)Z │ .locals 1 │ .param p1, "targetName" # Ljava/lang/String; │ .param p2, "extras" # [Ljava/lang/String; │ │ .prologue │ - .line 462 │ + .line 466 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilder;->TagsSearchInScope:[Ljava/lang/String; │ │ invoke-direct {p0, p1, v0, p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->inSpecificScope(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v0 │ │ return v0 │ .end method │ │ .method inScope([Ljava/lang/String;)Z │ .locals 2 │ .param p1, "targetNames" # [Ljava/lang/String; │ │ .prologue │ - .line 454 │ + .line 458 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilder;->TagsSearchInScope:[Ljava/lang/String; │ │ const/4 v1, 0x0 │ │ invoke-direct {p0, p1, v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inSpecificScope([Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v0 │ @@ -1794,78 +1804,78 @@ │ .method inSelectScope(Ljava/lang/String;)Z │ .locals 5 │ .param p1, "targetName" # Ljava/lang/String; │ │ .prologue │ const/4 v3, 0x0 │ │ - .line 480 │ + .line 484 │ iget-object v4, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v4}, Ljava/util/ArrayList;->size()I │ │ move-result v4 │ │ add-int/lit8 v2, v4, -0x1 │ │ .local v2, "pos":I │ :goto_0 │ if-ltz v2, :cond_2 │ │ - .line 481 │ + .line 485 │ iget-object v4, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v4, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/jsoup/nodes/Element; │ │ - .line 482 │ + .line 486 │ .local v0, "el":Lorg/jsoup/nodes/Element; │ invoke-virtual {v0}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 483 │ + .line 487 │ .local v1, "elName":Ljava/lang/String; │ invoke-virtual {v1, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_1 │ │ - .line 484 │ + .line 488 │ const/4 v3, 0x1 │ │ - .line 489 │ + .line 493 │ .end local v0 # "el":Lorg/jsoup/nodes/Element; │ .end local v1 # "elName":Ljava/lang/String; │ :cond_0 │ :goto_1 │ return v3 │ │ - .line 485 │ + .line 489 │ .restart local v0 # "el":Lorg/jsoup/nodes/Element; │ .restart local v1 # "elName":Ljava/lang/String; │ :cond_1 │ sget-object v4, Lorg/jsoup/parser/HtmlTreeBuilder;->TagSearchSelectScope:[Ljava/lang/String; │ │ invoke-static {v1, v4}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_0 │ │ - .line 480 │ + .line 484 │ add-int/lit8 v2, v2, -0x1 │ │ goto :goto_0 │ │ - .line 488 │ + .line 492 │ .end local v0 # "el":Lorg/jsoup/nodes/Element; │ .end local v1 # "elName":Ljava/lang/String; │ :cond_2 │ const-string v4, "Should not be reachable" │ │ invoke-static {v4}, Lorg/jsoup/helper/Validate;->fail(Ljava/lang/String;)V │ │ @@ -1873,57 +1883,57 @@ │ .end method │ │ .method inTableScope(Ljava/lang/String;)Z │ .locals 2 │ .param p1, "targetName" # Ljava/lang/String; │ │ .prologue │ - .line 476 │ + .line 480 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilder;->TagSearchTableScope:[Ljava/lang/String; │ │ const/4 v1, 0x0 │ │ invoke-direct {p0, p1, v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inSpecificScope(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v0 │ │ return v0 │ .end method │ │ .method insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ - .locals 5 │ + .locals 6 │ .param p1, "startTag" # Lorg/jsoup/parser/Token$StartTag; │ │ .prologue │ - .line 173 │ + .line 177 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token$StartTag;->isSelfClosing()Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ - .line 174 │ + .line 178 │ invoke-virtual {p0, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertEmpty(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ move-result-object v0 │ │ - .line 175 │ + .line 179 │ .local v0, "el":Lorg/jsoup/nodes/Element; │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v2, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ - .line 176 │ + .line 180 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->tokeniser:Lorg/jsoup/parser/Tokeniser; │ │ sget-object v3, Lorg/jsoup/parser/TokeniserState;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {v2, v3}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 177 │ + .line 181 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->tokeniser:Lorg/jsoup/parser/Tokeniser; │ │ iget-object v3, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->emptyEnd:Lorg/jsoup/parser/Token$EndTag; │ │ invoke-virtual {v3}, Lorg/jsoup/parser/Token$EndTag;->reset()Lorg/jsoup/parser/Token$Tag; │ │ move-result-object v3 │ @@ -1936,82 +1946,90 @@ │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Lorg/jsoup/parser/Tokeniser;->emit(Lorg/jsoup/parser/Token;)V │ │ move-object v1, v0 │ │ - .line 183 │ + .line 187 │ .end local v0 # "el":Lorg/jsoup/nodes/Element; │ .local v1, "el":Ljava/lang/Object; │ :goto_0 │ return-object v1 │ │ - .line 181 │ + .line 185 │ .end local v1 # "el":Ljava/lang/Object; │ :cond_0 │ new-instance v0, Lorg/jsoup/nodes/Element; │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ │ move-result-object v2 │ │ - invoke-static {v2}, Lorg/jsoup/parser/Tag;->valueOf(Ljava/lang/String;)Lorg/jsoup/parser/Tag; │ + iget-object v3, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->settings:Lorg/jsoup/parser/ParseSettings; │ + │ + invoke-static {v2, v3}, Lorg/jsoup/parser/Tag;->valueOf(Ljava/lang/String;Lorg/jsoup/parser/ParseSettings;)Lorg/jsoup/parser/Tag; │ │ move-result-object v2 │ │ iget-object v3, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->baseUri:Ljava/lang/String; │ │ - iget-object v4, p1, Lorg/jsoup/parser/Token$StartTag;->attributes:Lorg/jsoup/nodes/Attributes; │ + iget-object v4, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->settings:Lorg/jsoup/parser/ParseSettings; │ + │ + iget-object v5, p1, Lorg/jsoup/parser/Token$StartTag;->attributes:Lorg/jsoup/nodes/Attributes; │ + │ + invoke-virtual {v4, v5}, Lorg/jsoup/parser/ParseSettings;->normalizeAttributes(Lorg/jsoup/nodes/Attributes;)Lorg/jsoup/nodes/Attributes; │ + │ + move-result-object v4 │ │ invoke-direct {v0, v2, v3, v4}, Lorg/jsoup/nodes/Element;->(Lorg/jsoup/parser/Tag;Ljava/lang/String;Lorg/jsoup/nodes/Attributes;)V │ │ - .line 182 │ + .line 186 │ .restart local v0 # "el":Lorg/jsoup/nodes/Element; │ invoke-virtual {p0, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/nodes/Element;)V │ │ move-object v1, v0 │ │ - .line 183 │ + .line 187 │ .restart local v1 # "el":Ljava/lang/Object; │ goto :goto_0 │ .end method │ │ .method insert(Lorg/jsoup/nodes/Element;)V │ .locals 1 │ .param p1, "el" # Lorg/jsoup/nodes/Element; │ │ .prologue │ - .line 193 │ + .line 197 │ invoke-direct {p0, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertNode(Lorg/jsoup/nodes/Node;)V │ │ - .line 194 │ + .line 198 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v0, p1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ - .line 195 │ + .line 199 │ return-void │ .end method │ │ .method insert(Lorg/jsoup/parser/Token$Character;)V │ .locals 4 │ .param p1, "characterToken" # Lorg/jsoup/parser/Token$Character; │ │ .prologue │ - .line 231 │ + .line 235 │ invoke-virtual {p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v2 │ │ invoke-virtual {v2}, Lorg/jsoup/nodes/Element;->tagName()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 232 │ + .line 236 │ .local v1, "tagName":Ljava/lang/String; │ const-string v2, "script" │ │ invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v2 │ │ @@ -2021,39 +2039,39 @@ │ │ invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - .line 233 │ + .line 237 │ :cond_0 │ new-instance v0, Lorg/jsoup/nodes/DataNode; │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token$Character;->getData()Ljava/lang/String; │ │ move-result-object v2 │ │ iget-object v3, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->baseUri:Ljava/lang/String; │ │ invoke-direct {v0, v2, v3}, Lorg/jsoup/nodes/DataNode;->(Ljava/lang/String;Ljava/lang/String;)V │ │ - .line 236 │ + .line 240 │ .local v0, "node":Lorg/jsoup/nodes/Node; │ :goto_0 │ invoke-virtual {p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v2 │ │ invoke-virtual {v2, v0}, Lorg/jsoup/nodes/Element;->appendChild(Lorg/jsoup/nodes/Node;)Lorg/jsoup/nodes/Element; │ │ - .line 237 │ + .line 241 │ return-void │ │ - .line 235 │ + .line 239 │ .end local v0 # "node":Lorg/jsoup/nodes/Node; │ :cond_1 │ new-instance v0, Lorg/jsoup/nodes/TextNode; │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token$Character;->getData()Ljava/lang/String; │ │ move-result-object v2 │ @@ -2067,209 +2085,213 @@ │ .end method │ │ .method insert(Lorg/jsoup/parser/Token$Comment;)V │ .locals 3 │ .param p1, "commentToken" # Lorg/jsoup/parser/Token$Comment; │ │ .prologue │ - .line 224 │ + .line 228 │ new-instance v0, Lorg/jsoup/nodes/Comment; │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token$Comment;->getData()Ljava/lang/String; │ │ move-result-object v1 │ │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->baseUri:Ljava/lang/String; │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/nodes/Comment;->(Ljava/lang/String;Ljava/lang/String;)V │ │ - .line 225 │ + .line 229 │ .local v0, "comment":Lorg/jsoup/nodes/Comment; │ invoke-direct {p0, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertNode(Lorg/jsoup/nodes/Node;)V │ │ - .line 226 │ + .line 230 │ return-void │ .end method │ │ .method insertEmpty(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ .locals 4 │ .param p1, "startTag" # Lorg/jsoup/parser/Token$StartTag; │ │ .prologue │ - .line 198 │ + .line 202 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ │ move-result-object v2 │ │ - invoke-static {v2}, Lorg/jsoup/parser/Tag;->valueOf(Ljava/lang/String;)Lorg/jsoup/parser/Tag; │ + iget-object v3, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->settings:Lorg/jsoup/parser/ParseSettings; │ + │ + invoke-static {v2, v3}, Lorg/jsoup/parser/Tag;->valueOf(Ljava/lang/String;Lorg/jsoup/parser/ParseSettings;)Lorg/jsoup/parser/Tag; │ │ move-result-object v1 │ │ - .line 199 │ + .line 203 │ .local v1, "tag":Lorg/jsoup/parser/Tag; │ new-instance v0, Lorg/jsoup/nodes/Element; │ │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->baseUri:Ljava/lang/String; │ │ iget-object v3, p1, Lorg/jsoup/parser/Token$StartTag;->attributes:Lorg/jsoup/nodes/Attributes; │ │ invoke-direct {v0, v1, v2, v3}, Lorg/jsoup/nodes/Element;->(Lorg/jsoup/parser/Tag;Ljava/lang/String;Lorg/jsoup/nodes/Attributes;)V │ │ - .line 200 │ + .line 204 │ .local v0, "el":Lorg/jsoup/nodes/Element; │ invoke-direct {p0, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertNode(Lorg/jsoup/nodes/Node;)V │ │ - .line 201 │ + .line 205 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token$StartTag;->isSelfClosing()Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ - .line 202 │ + .line 206 │ invoke-virtual {v1}, Lorg/jsoup/parser/Tag;->isKnownTag()Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - .line 203 │ + .line 207 │ invoke-virtual {v1}, Lorg/jsoup/parser/Tag;->isSelfClosing()Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->tokeniser:Lorg/jsoup/parser/Tokeniser; │ │ invoke-virtual {v2}, Lorg/jsoup/parser/Tokeniser;->acknowledgeSelfClosingFlag()V │ │ - .line 210 │ + .line 214 │ :cond_0 │ :goto_0 │ return-object v0 │ │ - .line 206 │ + .line 210 │ :cond_1 │ invoke-virtual {v1}, Lorg/jsoup/parser/Tag;->setSelfClosing()Lorg/jsoup/parser/Tag; │ │ - .line 207 │ + .line 211 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->tokeniser:Lorg/jsoup/parser/Tokeniser; │ │ invoke-virtual {v2}, Lorg/jsoup/parser/Tokeniser;->acknowledgeSelfClosingFlag()V │ │ goto :goto_0 │ .end method │ │ .method insertForm(Lorg/jsoup/parser/Token$StartTag;Z)Lorg/jsoup/nodes/FormElement; │ .locals 4 │ .param p1, "startTag" # Lorg/jsoup/parser/Token$StartTag; │ .param p2, "onStack" # Z │ │ .prologue │ - .line 214 │ + .line 218 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ │ move-result-object v2 │ │ - invoke-static {v2}, Lorg/jsoup/parser/Tag;->valueOf(Ljava/lang/String;)Lorg/jsoup/parser/Tag; │ + iget-object v3, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->settings:Lorg/jsoup/parser/ParseSettings; │ + │ + invoke-static {v2, v3}, Lorg/jsoup/parser/Tag;->valueOf(Ljava/lang/String;Lorg/jsoup/parser/ParseSettings;)Lorg/jsoup/parser/Tag; │ │ move-result-object v1 │ │ - .line 215 │ + .line 219 │ .local v1, "tag":Lorg/jsoup/parser/Tag; │ new-instance v0, Lorg/jsoup/nodes/FormElement; │ │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->baseUri:Ljava/lang/String; │ │ iget-object v3, p1, Lorg/jsoup/parser/Token$StartTag;->attributes:Lorg/jsoup/nodes/Attributes; │ │ invoke-direct {v0, v1, v2, v3}, Lorg/jsoup/nodes/FormElement;->(Lorg/jsoup/parser/Tag;Ljava/lang/String;Lorg/jsoup/nodes/Attributes;)V │ │ - .line 216 │ + .line 220 │ .local v0, "el":Lorg/jsoup/nodes/FormElement; │ invoke-virtual {p0, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->setFormElement(Lorg/jsoup/nodes/FormElement;)V │ │ - .line 217 │ + .line 221 │ invoke-direct {p0, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertNode(Lorg/jsoup/nodes/Node;)V │ │ - .line 218 │ + .line 222 │ if-eqz p2, :cond_0 │ │ - .line 219 │ + .line 223 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v2, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ - .line 220 │ + .line 224 │ :cond_0 │ return-object v0 │ .end method │ │ .method insertInFosterParent(Lorg/jsoup/nodes/Node;)V │ .locals 5 │ .param p1, "in" # Lorg/jsoup/nodes/Node; │ │ .prologue │ - .line 674 │ + .line 678 │ const-string v3, "table" │ │ invoke-virtual {p0, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->getFromStack(Ljava/lang/String;)Lorg/jsoup/nodes/Element; │ │ move-result-object v2 │ │ - .line 675 │ + .line 679 │ .local v2, "lastTable":Lorg/jsoup/nodes/Element; │ const/4 v1, 0x0 │ │ - .line 676 │ + .line 680 │ .local v1, "isLastTableParent":Z │ if-eqz v2, :cond_1 │ │ - .line 677 │ + .line 681 │ invoke-virtual {v2}, Lorg/jsoup/nodes/Element;->parent()Lorg/jsoup/nodes/Element; │ │ move-result-object v3 │ │ if-eqz v3, :cond_0 │ │ - .line 678 │ + .line 682 │ invoke-virtual {v2}, Lorg/jsoup/nodes/Element;->parent()Lorg/jsoup/nodes/Element; │ │ move-result-object v0 │ │ - .line 679 │ + .line 683 │ .local v0, "fosterParent":Lorg/jsoup/nodes/Element; │ const/4 v1, 0x1 │ │ - .line 686 │ + .line 690 │ :goto_0 │ if-eqz v1, :cond_2 │ │ - .line 687 │ + .line 691 │ invoke-static {v2}, Lorg/jsoup/helper/Validate;->notNull(Ljava/lang/Object;)V │ │ - .line 688 │ + .line 692 │ invoke-virtual {v2, p1}, Lorg/jsoup/nodes/Element;->before(Lorg/jsoup/nodes/Node;)Lorg/jsoup/nodes/Element; │ │ - .line 692 │ + .line 696 │ :goto_1 │ return-void │ │ - .line 681 │ + .line 685 │ .end local v0 # "fosterParent":Lorg/jsoup/nodes/Element; │ :cond_0 │ invoke-virtual {p0, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->aboveOnStack(Lorg/jsoup/nodes/Element;)Lorg/jsoup/nodes/Element; │ │ move-result-object v0 │ │ .restart local v0 # "fosterParent":Lorg/jsoup/nodes/Element; │ goto :goto_0 │ │ - .line 683 │ + .line 687 │ .end local v0 # "fosterParent":Lorg/jsoup/nodes/Element; │ :cond_1 │ iget-object v3, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ const/4 v4, 0x0 │ │ invoke-virtual {v3, v4}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ @@ -2277,162 +2299,164 @@ │ move-result-object v0 │ │ check-cast v0, Lorg/jsoup/nodes/Element; │ │ .restart local v0 # "fosterParent":Lorg/jsoup/nodes/Element; │ goto :goto_0 │ │ - .line 691 │ + .line 695 │ :cond_2 │ invoke-virtual {v0, p1}, Lorg/jsoup/nodes/Element;->appendChild(Lorg/jsoup/nodes/Node;)Lorg/jsoup/nodes/Element; │ │ goto :goto_1 │ .end method │ │ .method insertMarkerToFormattingElements()V │ .locals 2 │ │ .prologue │ - .line 669 │ + .line 673 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formattingElements:Ljava/util/ArrayList; │ │ const/4 v1, 0x0 │ │ invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ - .line 670 │ + .line 674 │ return-void │ .end method │ │ .method insertOnStackAfter(Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)V │ .locals 3 │ .param p1, "after" # Lorg/jsoup/nodes/Element; │ .param p2, "in" # Lorg/jsoup/nodes/Element; │ │ .prologue │ - .line 366 │ + .line 370 │ iget-object v1, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v1, p1}, Ljava/util/ArrayList;->lastIndexOf(Ljava/lang/Object;)I │ │ move-result v0 │ │ - .line 367 │ + .line 371 │ .local v0, "i":I │ const/4 v1, -0x1 │ │ if-eq v0, v1, :cond_0 │ │ const/4 v1, 0x1 │ │ :goto_0 │ invoke-static {v1}, Lorg/jsoup/helper/Validate;->isTrue(Z)V │ │ - .line 368 │ + .line 372 │ iget-object v1, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ add-int/lit8 v2, v0, 0x1 │ │ invoke-virtual {v1, v2, p2}, Ljava/util/ArrayList;->add(ILjava/lang/Object;)V │ │ - .line 369 │ + .line 373 │ return-void │ │ - .line 367 │ + .line 371 │ :cond_0 │ const/4 v1, 0x0 │ │ goto :goto_0 │ .end method │ │ .method insertStartTag(Ljava/lang/String;)Lorg/jsoup/nodes/Element; │ .locals 3 │ .param p1, "startTagName" # Ljava/lang/String; │ │ .prologue │ - .line 187 │ + .line 191 │ new-instance v0, Lorg/jsoup/nodes/Element; │ │ - invoke-static {p1}, Lorg/jsoup/parser/Tag;->valueOf(Ljava/lang/String;)Lorg/jsoup/parser/Tag; │ + iget-object v1, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->settings:Lorg/jsoup/parser/ParseSettings; │ + │ + invoke-static {p1, v1}, Lorg/jsoup/parser/Tag;->valueOf(Ljava/lang/String;Lorg/jsoup/parser/ParseSettings;)Lorg/jsoup/parser/Tag; │ │ move-result-object v1 │ │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->baseUri:Ljava/lang/String; │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/nodes/Element;->(Lorg/jsoup/parser/Tag;Ljava/lang/String;)V │ │ - .line 188 │ + .line 192 │ .local v0, "el":Lorg/jsoup/nodes/Element; │ invoke-virtual {p0, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/nodes/Element;)V │ │ - .line 189 │ + .line 193 │ return-object v0 │ .end method │ │ .method isFosterInserts()Z │ .locals 1 │ │ .prologue │ - .line 501 │ + .line 505 │ iget-boolean v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->fosterInserts:Z │ │ return v0 │ .end method │ │ .method isFragmentParsing()Z │ .locals 1 │ │ .prologue │ - .line 162 │ + .line 166 │ iget-boolean v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->fragmentParsing:Z │ │ return v0 │ .end method │ │ .method isInActiveFormattingElements(Lorg/jsoup/nodes/Element;)Z │ .locals 1 │ .param p1, "el" # Lorg/jsoup/nodes/Element; │ │ .prologue │ - .line 650 │ + .line 654 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formattingElements:Ljava/util/ArrayList; │ │ invoke-direct {p0, v0, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->isElementInQueue(Ljava/util/ArrayList;Lorg/jsoup/nodes/Element;)Z │ │ move-result v0 │ │ return v0 │ .end method │ │ .method isSpecial(Lorg/jsoup/nodes/Element;)Z │ .locals 2 │ .param p1, "el" # Lorg/jsoup/nodes/Element; │ │ .prologue │ - .line 550 │ + .line 554 │ invoke-virtual {p1}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 551 │ + .line 555 │ .local v0, "name":Ljava/lang/String; │ sget-object v1, Lorg/jsoup/parser/HtmlTreeBuilder;->TagSearchSpecial:[Ljava/lang/String; │ │ invoke-static {v0, v1}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v1 │ │ return v1 │ .end method │ │ .method lastFormattingElement()Lorg/jsoup/nodes/Element; │ .locals 2 │ │ .prologue │ - .line 555 │ + .line 559 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formattingElements:Ljava/util/ArrayList; │ │ invoke-virtual {v0}, Ljava/util/ArrayList;->size()I │ │ move-result v0 │ │ if-lez v0, :cond_0 │ @@ -2462,148 +2486,151 @@ │ goto :goto_0 │ .end method │ │ .method markInsertionMode()V │ .locals 1 │ │ .prologue │ - .line 126 │ + .line 130 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->state:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ iput-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->originalState:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 127 │ + .line 131 │ return-void │ .end method │ │ .method maybeSetBaseUri(Lorg/jsoup/nodes/Element;)V │ .locals 2 │ .param p1, "base" # Lorg/jsoup/nodes/Element; │ │ .prologue │ - .line 150 │ + .line 154 │ iget-boolean v1, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->baseUriSetFromDoc:Z │ │ if-eqz v1, :cond_1 │ │ - .line 159 │ + .line 163 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 153 │ + .line 157 │ :cond_1 │ const-string v1, "href" │ │ invoke-virtual {p1, v1}, Lorg/jsoup/nodes/Element;->absUrl(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 154 │ + .line 158 │ .local v0, "href":Ljava/lang/String; │ invoke-virtual {v0}, Ljava/lang/String;->length()I │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ - .line 155 │ + .line 159 │ iput-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->baseUri:Ljava/lang/String; │ │ - .line 156 │ + .line 160 │ const/4 v1, 0x1 │ │ iput-boolean v1, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->baseUriSetFromDoc:Z │ │ - .line 157 │ + .line 161 │ iget-object v1, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->doc:Lorg/jsoup/nodes/Document; │ │ invoke-virtual {v1, v0}, Lorg/jsoup/nodes/Document;->setBaseUri(Ljava/lang/String;)V │ │ goto :goto_0 │ .end method │ │ .method newPendingTableCharacters()V │ .locals 1 │ │ .prologue │ - .line 517 │ + .line 521 │ new-instance v0, Ljava/util/ArrayList; │ │ invoke-direct {v0}, Ljava/util/ArrayList;->()V │ │ iput-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->pendingTableCharacters:Ljava/util/List; │ │ - .line 518 │ + .line 522 │ return-void │ .end method │ │ .method onStack(Lorg/jsoup/nodes/Element;)Z │ .locals 1 │ .param p1, "el" # Lorg/jsoup/nodes/Element; │ │ .prologue │ - .line 269 │ + .line 273 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-direct {p0, v0, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->isElementInQueue(Ljava/util/ArrayList;Lorg/jsoup/nodes/Element;)Z │ │ move-result v0 │ │ return v0 │ .end method │ │ .method originalState()Lorg/jsoup/parser/HtmlTreeBuilderState; │ .locals 1 │ │ .prologue │ - .line 130 │ + .line 134 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->originalState:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ return-object v0 │ .end method │ │ -.method parse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;)Lorg/jsoup/nodes/Document; │ +.method parse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;Lorg/jsoup/parser/ParseSettings;)Lorg/jsoup/nodes/Document; │ .locals 1 │ .param p1, "input" # Ljava/lang/String; │ .param p2, "baseUri" # Ljava/lang/String; │ .param p3, "errors" # Lorg/jsoup/parser/ParseErrorList; │ + .param p4, "settings" # Lorg/jsoup/parser/ParseSettings; │ │ .prologue │ - .line 50 │ + .line 54 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->Initial:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ iput-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->state:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 51 │ + .line 55 │ const/4 v0, 0x0 │ │ iput-boolean v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->baseUriSetFromDoc:Z │ │ - .line 52 │ - invoke-super {p0, p1, p2, p3}, Lorg/jsoup/parser/TreeBuilder;->parse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;)Lorg/jsoup/nodes/Document; │ + .line 56 │ + invoke-super {p0, p1, p2, p3, p4}, Lorg/jsoup/parser/TreeBuilder;->parse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;Lorg/jsoup/parser/ParseSettings;)Lorg/jsoup/nodes/Document; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ -.method parseFragment(Ljava/lang/String;Lorg/jsoup/nodes/Element;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;)Ljava/util/List; │ +.method parseFragment(Ljava/lang/String;Lorg/jsoup/nodes/Element;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;Lorg/jsoup/parser/ParseSettings;)Ljava/util/List; │ .locals 9 │ .param p1, "inputFragment" # Ljava/lang/String; │ .param p2, "context" # Lorg/jsoup/nodes/Element; │ .param p3, "baseUri" # Ljava/lang/String; │ .param p4, "errors" # Lorg/jsoup/parser/ParseErrorList; │ + .param p5, "settings" # Lorg/jsoup/parser/ParseSettings; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Ljava/lang/String;", │ "Lorg/jsoup/nodes/Element;", │ "Ljava/lang/String;", │ "Lorg/jsoup/parser/ParseErrorList;", │ + "Lorg/jsoup/parser/ParseSettings;", │ ")", │ "Ljava/util/List", │ "<", │ "Lorg/jsoup/nodes/Node;", │ ">;" │ } │ .end annotation │ @@ -2611,62 +2638,62 @@ │ .prologue │ const/4 v8, 0x2 │ │ const/4 v6, 0x1 │ │ const/4 v7, 0x0 │ │ - .line 57 │ + .line 61 │ sget-object v4, Lorg/jsoup/parser/HtmlTreeBuilderState;->Initial:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ iput-object v4, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->state:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 58 │ - invoke-virtual {p0, p1, p3, p4}, Lorg/jsoup/parser/HtmlTreeBuilder;->initialiseParse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;)V │ + .line 62 │ + invoke-virtual {p0, p1, p3, p4, p5}, Lorg/jsoup/parser/HtmlTreeBuilder;->initialiseParse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;Lorg/jsoup/parser/ParseSettings;)V │ │ - .line 59 │ + .line 63 │ iput-object p2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->contextElement:Lorg/jsoup/nodes/Element; │ │ - .line 60 │ + .line 64 │ iput-boolean v6, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->fragmentParsing:Z │ │ - .line 61 │ + .line 65 │ const/4 v3, 0x0 │ │ - .line 63 │ + .line 67 │ .local v3, "root":Lorg/jsoup/nodes/Element; │ if-eqz p2, :cond_2 │ │ - .line 64 │ + .line 68 │ invoke-virtual {p2}, Lorg/jsoup/nodes/Element;->ownerDocument()Lorg/jsoup/nodes/Document; │ │ move-result-object v4 │ │ if-eqz v4, :cond_0 │ │ - .line 65 │ + .line 69 │ iget-object v4, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->doc:Lorg/jsoup/nodes/Document; │ │ invoke-virtual {p2}, Lorg/jsoup/nodes/Element;->ownerDocument()Lorg/jsoup/nodes/Document; │ │ move-result-object v5 │ │ invoke-virtual {v5}, Lorg/jsoup/nodes/Document;->quirksMode()Lorg/jsoup/nodes/Document$QuirksMode; │ │ move-result-object v5 │ │ invoke-virtual {v4, v5}, Lorg/jsoup/nodes/Document;->quirksMode(Lorg/jsoup/nodes/Document$QuirksMode;)Lorg/jsoup/nodes/Document; │ │ - .line 68 │ + .line 72 │ :cond_0 │ invoke-virtual {p2}, Lorg/jsoup/nodes/Element;->tagName()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 69 │ + .line 73 │ .local v1, "contextTag":Ljava/lang/String; │ new-array v4, v8, [Ljava/lang/String; │ │ const-string v5, "title" │ │ aput-object v5, v4, v7 │ │ @@ -2676,58 +2703,58 @@ │ │ invoke-static {v1, v4}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_3 │ │ - .line 70 │ + .line 74 │ iget-object v4, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->tokeniser:Lorg/jsoup/parser/Tokeniser; │ │ sget-object v5, Lorg/jsoup/parser/TokeniserState;->Rcdata:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {v4, v5}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 82 │ + .line 86 │ :goto_0 │ new-instance v3, Lorg/jsoup/nodes/Element; │ │ .end local v3 # "root":Lorg/jsoup/nodes/Element; │ const-string v4, "html" │ │ - invoke-static {v4}, Lorg/jsoup/parser/Tag;->valueOf(Ljava/lang/String;)Lorg/jsoup/parser/Tag; │ + invoke-static {v4, p5}, Lorg/jsoup/parser/Tag;->valueOf(Ljava/lang/String;Lorg/jsoup/parser/ParseSettings;)Lorg/jsoup/parser/Tag; │ │ move-result-object v4 │ │ invoke-direct {v3, v4, p3}, Lorg/jsoup/nodes/Element;->(Lorg/jsoup/parser/Tag;Ljava/lang/String;)V │ │ - .line 83 │ + .line 87 │ .restart local v3 # "root":Lorg/jsoup/nodes/Element; │ iget-object v4, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->doc:Lorg/jsoup/nodes/Document; │ │ invoke-virtual {v4, v3}, Lorg/jsoup/nodes/Document;->appendChild(Lorg/jsoup/nodes/Node;)Lorg/jsoup/nodes/Element; │ │ - .line 84 │ + .line 88 │ iget-object v4, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v4, v3}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ - .line 85 │ + .line 89 │ invoke-virtual {p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->resetInsertionMode()V │ │ - .line 89 │ + .line 93 │ invoke-virtual {p2}, Lorg/jsoup/nodes/Element;->parents()Lorg/jsoup/select/Elements; │ │ move-result-object v0 │ │ - .line 90 │ + .line 94 │ .local v0, "contextChain":Lorg/jsoup/select/Elements; │ invoke-virtual {v0, v7, p2}, Lorg/jsoup/select/Elements;->add(ILjava/lang/Object;)V │ │ - .line 91 │ + .line 95 │ invoke-virtual {v0}, Lorg/jsoup/select/Elements;->iterator()Ljava/util/Iterator; │ │ move-result-object v4 │ │ :cond_1 │ invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z │ │ @@ -2737,47 +2764,47 @@ │ │ invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Lorg/jsoup/nodes/Element; │ │ - .line 92 │ + .line 96 │ .local v2, "parent":Lorg/jsoup/nodes/Element; │ instance-of v5, v2, Lorg/jsoup/nodes/FormElement; │ │ if-eqz v5, :cond_1 │ │ - .line 93 │ + .line 97 │ check-cast v2, Lorg/jsoup/nodes/FormElement; │ │ .end local v2 # "parent":Lorg/jsoup/nodes/Element; │ iput-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formElement:Lorg/jsoup/nodes/FormElement; │ │ - .line 99 │ + .line 103 │ .end local v0 # "contextChain":Lorg/jsoup/select/Elements; │ .end local v1 # "contextTag":Ljava/lang/String; │ :cond_2 │ invoke-virtual {p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->runParser()V │ │ - .line 100 │ + .line 104 │ if-eqz p2, :cond_8 │ │ if-eqz v3, :cond_8 │ │ - .line 101 │ + .line 105 │ invoke-virtual {v3}, Lorg/jsoup/nodes/Element;->childNodes()Ljava/util/List; │ │ move-result-object v4 │ │ - .line 103 │ + .line 107 │ :goto_1 │ return-object v4 │ │ - .line 71 │ + .line 75 │ .restart local v1 # "contextTag":Ljava/lang/String; │ :cond_3 │ const/4 v4, 0x5 │ │ new-array v4, v4, [Ljava/lang/String; │ │ const-string v5, "iframe" │ @@ -2806,91 +2833,91 @@ │ │ invoke-static {v1, v4}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_4 │ │ - .line 72 │ + .line 76 │ iget-object v4, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->tokeniser:Lorg/jsoup/parser/Tokeniser; │ │ sget-object v5, Lorg/jsoup/parser/TokeniserState;->Rawtext:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {v4, v5}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 73 │ + .line 77 │ :cond_4 │ const-string v4, "script" │ │ invoke-virtual {v1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_5 │ │ - .line 74 │ + .line 78 │ iget-object v4, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->tokeniser:Lorg/jsoup/parser/Tokeniser; │ │ sget-object v5, Lorg/jsoup/parser/TokeniserState;->ScriptData:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {v4, v5}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 75 │ + .line 79 │ :cond_5 │ const-string v4, "noscript" │ │ invoke-virtual {v1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_6 │ │ - .line 76 │ + .line 80 │ iget-object v4, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->tokeniser:Lorg/jsoup/parser/Tokeniser; │ │ sget-object v5, Lorg/jsoup/parser/TokeniserState;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {v4, v5}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto/16 :goto_0 │ │ - .line 77 │ + .line 81 │ :cond_6 │ const-string v4, "plaintext" │ │ invoke-virtual {v1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_7 │ │ - .line 78 │ + .line 82 │ iget-object v4, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->tokeniser:Lorg/jsoup/parser/Tokeniser; │ │ sget-object v5, Lorg/jsoup/parser/TokeniserState;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {v4, v5}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto/16 :goto_0 │ │ - .line 80 │ + .line 84 │ :cond_7 │ iget-object v4, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->tokeniser:Lorg/jsoup/parser/Tokeniser; │ │ sget-object v5, Lorg/jsoup/parser/TokeniserState;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {v4, v5}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto/16 :goto_0 │ │ - .line 103 │ + .line 107 │ .end local v1 # "contextTag":Ljava/lang/String; │ :cond_8 │ iget-object v4, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->doc:Lorg/jsoup/nodes/Document; │ │ invoke-virtual {v4}, Lorg/jsoup/nodes/Document;->childNodes()Ljava/util/List; │ │ move-result-object v4 │ @@ -2898,22 +2925,22 @@ │ goto :goto_1 │ .end method │ │ .method pop()Lorg/jsoup/nodes/Element; │ .locals 3 │ │ .prologue │ - .line 256 │ + .line 260 │ iget-object v1, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v1}, Ljava/util/ArrayList;->size()I │ │ move-result v0 │ │ - .line 257 │ + .line 261 │ .local v0, "size":I │ iget-object v1, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ add-int/lit8 v2, v0, -0x1 │ │ invoke-virtual {v1, v2}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object; │ │ @@ -2925,189 +2952,189 @@ │ .end method │ │ .method popStackToBefore(Ljava/lang/String;)V │ .locals 3 │ .param p1, "elName" # Ljava/lang/String; │ │ .prologue │ - .line 322 │ + .line 326 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v2}, Ljava/util/ArrayList;->size()I │ │ move-result v2 │ │ add-int/lit8 v1, v2, -0x1 │ │ .local v1, "pos":I │ :goto_0 │ if-ltz v1, :cond_0 │ │ - .line 323 │ + .line 327 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/jsoup/nodes/Element; │ │ - .line 324 │ + .line 328 │ .local v0, "next":Lorg/jsoup/nodes/Element; │ invoke-virtual {v0}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v2, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - .line 330 │ + .line 334 │ .end local v0 # "next":Lorg/jsoup/nodes/Element; │ :cond_0 │ return-void │ │ - .line 327 │ + .line 331 │ .restart local v0 # "next":Lorg/jsoup/nodes/Element; │ :cond_1 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v2, v1}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object; │ │ - .line 322 │ + .line 326 │ add-int/lit8 v1, v1, -0x1 │ │ goto :goto_0 │ .end method │ │ .method popStackToClose(Ljava/lang/String;)V │ .locals 3 │ .param p1, "elName" # Ljava/lang/String; │ │ .prologue │ - .line 304 │ + .line 308 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v2}, Ljava/util/ArrayList;->size()I │ │ move-result v2 │ │ add-int/lit8 v1, v2, -0x1 │ │ .local v1, "pos":I │ :goto_0 │ if-ltz v1, :cond_0 │ │ - .line 305 │ + .line 309 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/jsoup/nodes/Element; │ │ - .line 306 │ + .line 310 │ .local v0, "next":Lorg/jsoup/nodes/Element; │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v2, v1}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object; │ │ - .line 307 │ + .line 311 │ invoke-virtual {v0}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v2, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - .line 310 │ + .line 314 │ .end local v0 # "next":Lorg/jsoup/nodes/Element; │ :cond_0 │ return-void │ │ - .line 304 │ + .line 308 │ .restart local v0 # "next":Lorg/jsoup/nodes/Element; │ :cond_1 │ add-int/lit8 v1, v1, -0x1 │ │ goto :goto_0 │ .end method │ │ .method varargs popStackToClose([Ljava/lang/String;)V │ .locals 3 │ .param p1, "elNames" # [Ljava/lang/String; │ │ .prologue │ - .line 313 │ + .line 317 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v2}, Ljava/util/ArrayList;->size()I │ │ move-result v2 │ │ add-int/lit8 v1, v2, -0x1 │ │ .local v1, "pos":I │ :goto_0 │ if-ltz v1, :cond_0 │ │ - .line 314 │ + .line 318 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/jsoup/nodes/Element; │ │ - .line 315 │ + .line 319 │ .local v0, "next":Lorg/jsoup/nodes/Element; │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v2, v1}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object; │ │ - .line 316 │ + .line 320 │ invoke-virtual {v0}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-static {v2, p1}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - .line 319 │ + .line 323 │ .end local v0 # "next":Lorg/jsoup/nodes/Element; │ :cond_0 │ return-void │ │ - .line 313 │ + .line 317 │ .restart local v0 # "next":Lorg/jsoup/nodes/Element; │ :cond_1 │ add-int/lit8 v1, v1, -0x1 │ │ goto :goto_0 │ .end method │ │ .method protected process(Lorg/jsoup/parser/Token;)Z │ .locals 1 │ .param p1, "token" # Lorg/jsoup/parser/Token; │ │ .prologue │ - .line 108 │ + .line 112 │ iput-object p1, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->currentToken:Lorg/jsoup/parser/Token; │ │ - .line 109 │ + .line 113 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->state:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {v0, p1, p0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v0 │ │ return v0 │ @@ -3115,18 +3142,18 @@ │ │ .method process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ .locals 1 │ .param p1, "token" # Lorg/jsoup/parser/Token; │ .param p2, "state" # Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ .prologue │ - .line 113 │ + .line 117 │ iput-object p1, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->currentToken:Lorg/jsoup/parser/Token; │ │ - .line 114 │ + .line 118 │ invoke-virtual {p2, p1, p0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v0 │ │ return v0 │ .end method │ │ @@ -3143,226 +3170,226 @@ │ .end method │ │ .method push(Lorg/jsoup/nodes/Element;)V │ .locals 1 │ .param p1, "element" # Lorg/jsoup/nodes/Element; │ │ .prologue │ - .line 261 │ + .line 265 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v0, p1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ - .line 262 │ + .line 266 │ return-void │ .end method │ │ .method pushActiveFormattingElements(Lorg/jsoup/nodes/Element;)V │ .locals 4 │ .param p1, "in" # Lorg/jsoup/nodes/Element; │ │ .prologue │ - .line 568 │ + .line 572 │ const/4 v1, 0x0 │ │ - .line 569 │ + .line 573 │ .local v1, "numSeen":I │ iget-object v3, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formattingElements:Ljava/util/ArrayList; │ │ invoke-virtual {v3}, Ljava/util/ArrayList;->size()I │ │ move-result v3 │ │ add-int/lit8 v2, v3, -0x1 │ │ .local v2, "pos":I │ :goto_0 │ if-ltz v2, :cond_0 │ │ - .line 570 │ + .line 574 │ iget-object v3, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formattingElements:Ljava/util/ArrayList; │ │ invoke-virtual {v3, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/jsoup/nodes/Element; │ │ - .line 571 │ + .line 575 │ .local v0, "el":Lorg/jsoup/nodes/Element; │ if-nez v0, :cond_1 │ │ - .line 582 │ + .line 586 │ .end local v0 # "el":Lorg/jsoup/nodes/Element; │ :cond_0 │ :goto_1 │ iget-object v3, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formattingElements:Ljava/util/ArrayList; │ │ invoke-virtual {v3, p1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ - .line 583 │ + .line 587 │ return-void │ │ - .line 574 │ + .line 578 │ .restart local v0 # "el":Lorg/jsoup/nodes/Element; │ :cond_1 │ invoke-direct {p0, p1, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->isSameFormattingElement(Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)Z │ │ move-result v3 │ │ if-eqz v3, :cond_2 │ │ - .line 575 │ + .line 579 │ add-int/lit8 v1, v1, 0x1 │ │ - .line 577 │ + .line 581 │ :cond_2 │ const/4 v3, 0x3 │ │ if-ne v1, v3, :cond_3 │ │ - .line 578 │ + .line 582 │ iget-object v3, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formattingElements:Ljava/util/ArrayList; │ │ invoke-virtual {v3, v2}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object; │ │ goto :goto_1 │ │ - .line 569 │ + .line 573 │ :cond_3 │ add-int/lit8 v2, v2, -0x1 │ │ goto :goto_0 │ .end method │ │ .method reconstructFormattingElements()V │ .locals 8 │ │ .prologue │ - .line 594 │ + .line 598 │ invoke-virtual {p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->lastFormattingElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v1 │ │ - .line 595 │ + .line 599 │ .local v1, "last":Lorg/jsoup/nodes/Element; │ if-eqz v1, :cond_0 │ │ invoke-virtual {p0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->onStack(Lorg/jsoup/nodes/Element;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_1 │ │ - .line 629 │ + .line 633 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 598 │ + .line 602 │ :cond_1 │ move-object v0, v1 │ │ - .line 599 │ + .line 603 │ .local v0, "entry":Lorg/jsoup/nodes/Element; │ iget-object v6, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formattingElements:Ljava/util/ArrayList; │ │ invoke-virtual {v6}, Ljava/util/ArrayList;->size()I │ │ move-result v4 │ │ - .line 600 │ + .line 604 │ .local v4, "size":I │ add-int/lit8 v3, v4, -0x1 │ │ - .line 601 │ + .line 605 │ .local v3, "pos":I │ const/4 v5, 0x0 │ │ - .line 603 │ + .line 607 │ .local v5, "skip":Z │ :cond_2 │ if-nez v3, :cond_5 │ │ - .line 604 │ + .line 608 │ const/4 v5, 0x1 │ │ - .line 612 │ + .line 616 │ :cond_3 │ :goto_1 │ if-nez v5, :cond_4 │ │ - .line 613 │ + .line 617 │ iget-object v6, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formattingElements:Ljava/util/ArrayList; │ │ add-int/lit8 v3, v3, 0x1 │ │ invoke-virtual {v6, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ .end local v0 # "entry":Lorg/jsoup/nodes/Element; │ check-cast v0, Lorg/jsoup/nodes/Element; │ │ - .line 614 │ + .line 618 │ .restart local v0 # "entry":Lorg/jsoup/nodes/Element; │ :cond_4 │ invoke-static {v0}, Lorg/jsoup/helper/Validate;->notNull(Ljava/lang/Object;)V │ │ - .line 617 │ + .line 621 │ const/4 v5, 0x0 │ │ - .line 618 │ + .line 622 │ invoke-virtual {v0}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v6 │ │ invoke-virtual {p0, v6}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertStartTag(Ljava/lang/String;)Lorg/jsoup/nodes/Element; │ │ move-result-object v2 │ │ - .line 620 │ + .line 624 │ .local v2, "newEl":Lorg/jsoup/nodes/Element; │ invoke-virtual {v2}, Lorg/jsoup/nodes/Element;->attributes()Lorg/jsoup/nodes/Attributes; │ │ move-result-object v6 │ │ invoke-virtual {v0}, Lorg/jsoup/nodes/Element;->attributes()Lorg/jsoup/nodes/Attributes; │ │ move-result-object v7 │ │ invoke-virtual {v6, v7}, Lorg/jsoup/nodes/Attributes;->addAll(Lorg/jsoup/nodes/Attributes;)V │ │ - .line 623 │ + .line 627 │ iget-object v6, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formattingElements:Ljava/util/ArrayList; │ │ invoke-virtual {v6, v3, v2}, Ljava/util/ArrayList;->set(ILjava/lang/Object;)Ljava/lang/Object; │ │ - .line 626 │ + .line 630 │ add-int/lit8 v6, v4, -0x1 │ │ if-ne v3, v6, :cond_3 │ │ goto :goto_0 │ │ - .line 607 │ + .line 611 │ .end local v2 # "newEl":Lorg/jsoup/nodes/Element; │ :cond_5 │ iget-object v6, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formattingElements:Ljava/util/ArrayList; │ │ add-int/lit8 v3, v3, -0x1 │ │ invoke-virtual {v6, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ .end local v0 # "entry":Lorg/jsoup/nodes/Element; │ check-cast v0, Lorg/jsoup/nodes/Element; │ │ - .line 608 │ + .line 612 │ .restart local v0 # "entry":Lorg/jsoup/nodes/Element; │ if-eqz v0, :cond_3 │ │ invoke-virtual {p0, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->onStack(Lorg/jsoup/nodes/Element;)Z │ │ move-result v6 │ │ @@ -3372,144 +3399,144 @@ │ .end method │ │ .method removeFromActiveFormattingElements(Lorg/jsoup/nodes/Element;)V │ .locals 3 │ .param p1, "el" # Lorg/jsoup/nodes/Element; │ │ .prologue │ - .line 640 │ + .line 644 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formattingElements:Ljava/util/ArrayList; │ │ invoke-virtual {v2}, Ljava/util/ArrayList;->size()I │ │ move-result v2 │ │ add-int/lit8 v1, v2, -0x1 │ │ .local v1, "pos":I │ :goto_0 │ if-ltz v1, :cond_0 │ │ - .line 641 │ + .line 645 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formattingElements:Ljava/util/ArrayList; │ │ invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/jsoup/nodes/Element; │ │ - .line 642 │ + .line 646 │ .local v0, "next":Lorg/jsoup/nodes/Element; │ if-ne v0, p1, :cond_1 │ │ - .line 643 │ + .line 647 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formattingElements:Ljava/util/ArrayList; │ │ invoke-virtual {v2, v1}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object; │ │ - .line 647 │ + .line 651 │ .end local v0 # "next":Lorg/jsoup/nodes/Element; │ :cond_0 │ return-void │ │ - .line 640 │ + .line 644 │ .restart local v0 # "next":Lorg/jsoup/nodes/Element; │ :cond_1 │ add-int/lit8 v1, v1, -0x1 │ │ goto :goto_0 │ .end method │ │ .method removeFromStack(Lorg/jsoup/nodes/Element;)Z │ .locals 3 │ .param p1, "el" # Lorg/jsoup/nodes/Element; │ │ .prologue │ - .line 293 │ + .line 297 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v2}, Ljava/util/ArrayList;->size()I │ │ move-result v2 │ │ add-int/lit8 v1, v2, -0x1 │ │ .local v1, "pos":I │ :goto_0 │ if-ltz v1, :cond_1 │ │ - .line 294 │ + .line 298 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/jsoup/nodes/Element; │ │ - .line 295 │ + .line 299 │ .local v0, "next":Lorg/jsoup/nodes/Element; │ if-ne v0, p1, :cond_0 │ │ - .line 296 │ + .line 300 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v2, v1}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object; │ │ - .line 297 │ + .line 301 │ const/4 v2, 0x1 │ │ - .line 300 │ + .line 304 │ .end local v0 # "next":Lorg/jsoup/nodes/Element; │ :goto_1 │ return v2 │ │ - .line 293 │ + .line 297 │ .restart local v0 # "next":Lorg/jsoup/nodes/Element; │ :cond_0 │ add-int/lit8 v1, v1, -0x1 │ │ goto :goto_0 │ │ - .line 300 │ + .line 304 │ .end local v0 # "next":Lorg/jsoup/nodes/Element; │ :cond_1 │ const/4 v2, 0x0 │ │ goto :goto_1 │ .end method │ │ .method removeLastFormattingElement()Lorg/jsoup/nodes/Element; │ .locals 3 │ │ .prologue │ - .line 559 │ + .line 563 │ iget-object v1, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formattingElements:Ljava/util/ArrayList; │ │ invoke-virtual {v1}, Ljava/util/ArrayList;->size()I │ │ move-result v0 │ │ - .line 560 │ + .line 564 │ .local v0, "size":I │ if-lez v0, :cond_0 │ │ - .line 561 │ + .line 565 │ iget-object v1, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formattingElements:Ljava/util/ArrayList; │ │ add-int/lit8 v2, v0, -0x1 │ │ invoke-virtual {v1, v2}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Lorg/jsoup/nodes/Element; │ │ - .line 563 │ + .line 567 │ :goto_0 │ return-object v1 │ │ :cond_0 │ const/4 v1, 0x0 │ │ goto :goto_0 │ @@ -3517,107 +3544,107 @@ │ │ .method replaceActiveFormattingElement(Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)V │ .locals 1 │ .param p1, "out" # Lorg/jsoup/nodes/Element; │ .param p2, "in" # Lorg/jsoup/nodes/Element; │ │ .prologue │ - .line 665 │ + .line 669 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formattingElements:Ljava/util/ArrayList; │ │ invoke-direct {p0, v0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->replaceInQueue(Ljava/util/ArrayList;Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)V │ │ - .line 666 │ + .line 670 │ return-void │ .end method │ │ .method replaceOnStack(Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)V │ .locals 1 │ .param p1, "out" # Lorg/jsoup/nodes/Element; │ .param p2, "in" # Lorg/jsoup/nodes/Element; │ │ .prologue │ - .line 372 │ + .line 376 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-direct {p0, v0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->replaceInQueue(Ljava/util/ArrayList;Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)V │ │ - .line 373 │ + .line 377 │ return-void │ .end method │ │ .method resetInsertionMode()V │ .locals 5 │ │ .prologue │ - .line 382 │ + .line 386 │ const/4 v0, 0x0 │ │ - .line 383 │ + .line 387 │ .local v0, "last":Z │ iget-object v4, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v4}, Ljava/util/ArrayList;->size()I │ │ move-result v4 │ │ add-int/lit8 v3, v4, -0x1 │ │ .local v3, "pos":I │ :goto_0 │ if-ltz v3, :cond_1 │ │ - .line 384 │ + .line 388 │ iget-object v4, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v4, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Lorg/jsoup/nodes/Element; │ │ - .line 385 │ + .line 389 │ .local v2, "node":Lorg/jsoup/nodes/Element; │ if-nez v3, :cond_0 │ │ - .line 386 │ + .line 390 │ const/4 v0, 0x1 │ │ - .line 387 │ + .line 391 │ iget-object v2, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->contextElement:Lorg/jsoup/nodes/Element; │ │ - .line 389 │ + .line 393 │ :cond_0 │ invoke-virtual {v2}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 390 │ + .line 394 │ .local v1, "name":Ljava/lang/String; │ const-string v4, "select" │ │ invoke-virtual {v4, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_2 │ │ - .line 391 │ + .line 395 │ sget-object v4, Lorg/jsoup/parser/HtmlTreeBuilderState;->InSelect:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p0, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 428 │ + .line 432 │ .end local v1 # "name":Ljava/lang/String; │ .end local v2 # "node":Lorg/jsoup/nodes/Element; │ :cond_1 │ :goto_1 │ return-void │ │ - .line 393 │ + .line 397 │ .restart local v1 # "name":Ljava/lang/String; │ .restart local v2 # "node":Lorg/jsoup/nodes/Element; │ :cond_2 │ const-string v4, "td" │ │ invoke-virtual {v4, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ @@ -3631,40 +3658,40 @@ │ │ move-result v4 │ │ if-eqz v4, :cond_4 │ │ if-nez v0, :cond_4 │ │ - .line 394 │ + .line 398 │ :cond_3 │ sget-object v4, Lorg/jsoup/parser/HtmlTreeBuilderState;->InCell:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p0, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_1 │ │ - .line 396 │ + .line 400 │ :cond_4 │ const-string v4, "tr" │ │ invoke-virtual {v4, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_5 │ │ - .line 397 │ + .line 401 │ sget-object v4, Lorg/jsoup/parser/HtmlTreeBuilderState;->InRow:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p0, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_1 │ │ - .line 399 │ + .line 403 │ :cond_5 │ const-string v4, "tbody" │ │ invoke-virtual {v4, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ @@ -3682,192 +3709,192 @@ │ │ invoke-virtual {v4, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_7 │ │ - .line 400 │ + .line 404 │ :cond_6 │ sget-object v4, Lorg/jsoup/parser/HtmlTreeBuilderState;->InTableBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p0, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_1 │ │ - .line 402 │ + .line 406 │ :cond_7 │ const-string v4, "caption" │ │ invoke-virtual {v4, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_8 │ │ - .line 403 │ + .line 407 │ sget-object v4, Lorg/jsoup/parser/HtmlTreeBuilderState;->InCaption:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p0, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_1 │ │ - .line 405 │ + .line 409 │ :cond_8 │ const-string v4, "colgroup" │ │ invoke-virtual {v4, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_9 │ │ - .line 406 │ + .line 410 │ sget-object v4, Lorg/jsoup/parser/HtmlTreeBuilderState;->InColumnGroup:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p0, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_1 │ │ - .line 408 │ + .line 412 │ :cond_9 │ const-string v4, "table" │ │ invoke-virtual {v4, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_a │ │ - .line 409 │ + .line 413 │ sget-object v4, Lorg/jsoup/parser/HtmlTreeBuilderState;->InTable:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p0, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_1 │ │ - .line 411 │ + .line 415 │ :cond_a │ const-string v4, "head" │ │ invoke-virtual {v4, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_b │ │ - .line 412 │ + .line 416 │ sget-object v4, Lorg/jsoup/parser/HtmlTreeBuilderState;->InBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p0, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_1 │ │ - .line 414 │ + .line 418 │ :cond_b │ const-string v4, "body" │ │ invoke-virtual {v4, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_c │ │ - .line 415 │ + .line 419 │ sget-object v4, Lorg/jsoup/parser/HtmlTreeBuilderState;->InBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p0, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_1 │ │ - .line 417 │ + .line 421 │ :cond_c │ const-string v4, "frameset" │ │ invoke-virtual {v4, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_d │ │ - .line 418 │ + .line 422 │ sget-object v4, Lorg/jsoup/parser/HtmlTreeBuilderState;->InFrameset:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p0, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_1 │ │ - .line 420 │ + .line 424 │ :cond_d │ const-string v4, "html" │ │ invoke-virtual {v4, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_e │ │ - .line 421 │ + .line 425 │ sget-object v4, Lorg/jsoup/parser/HtmlTreeBuilderState;->BeforeHead:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p0, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_1 │ │ - .line 423 │ + .line 427 │ :cond_e │ if-eqz v0, :cond_f │ │ - .line 424 │ + .line 428 │ sget-object v4, Lorg/jsoup/parser/HtmlTreeBuilderState;->InBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p0, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_1 │ │ - .line 383 │ + .line 387 │ :cond_f │ add-int/lit8 v3, v3, -0x1 │ │ goto/16 :goto_0 │ .end method │ │ .method setFormElement(Lorg/jsoup/nodes/FormElement;)V │ .locals 0 │ .param p1, "formElement" # Lorg/jsoup/nodes/FormElement; │ │ .prologue │ - .line 513 │ + .line 517 │ iput-object p1, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->formElement:Lorg/jsoup/nodes/FormElement; │ │ - .line 514 │ + .line 518 │ return-void │ .end method │ │ .method setFosterInserts(Z)V │ .locals 0 │ .param p1, "fosterInserts" # Z │ │ .prologue │ - .line 505 │ + .line 509 │ iput-boolean p1, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->fosterInserts:Z │ │ - .line 506 │ + .line 510 │ return-void │ .end method │ │ .method setHeadElement(Lorg/jsoup/nodes/Element;)V │ .locals 0 │ .param p1, "headElement" # Lorg/jsoup/nodes/Element; │ │ .prologue │ - .line 493 │ + .line 497 │ iput-object p1, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->headElement:Lorg/jsoup/nodes/Element; │ │ - .line 494 │ + .line 498 │ return-void │ .end method │ │ .method setPendingTableCharacters(Ljava/util/List;)V │ .locals 0 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ @@ -3876,37 +3903,37 @@ │ "<", │ "Ljava/lang/String;", │ ">;)V" │ } │ .end annotation │ │ .prologue │ - .line 525 │ + .line 529 │ .local p1, "pendingTableCharacters":Ljava/util/List;, "Ljava/util/List;" │ iput-object p1, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->pendingTableCharacters:Ljava/util/List; │ │ - .line 526 │ + .line 530 │ return-void │ .end method │ │ .method state()Lorg/jsoup/parser/HtmlTreeBuilderState; │ .locals 1 │ │ .prologue │ - .line 122 │ + .line 126 │ iget-object v0, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->state:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ return-object v0 │ .end method │ │ .method public toString()Ljava/lang/String; │ .locals 2 │ │ .prologue │ - .line 696 │ + .line 700 │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ const-string v1, "TreeBuilder{currentToken=" │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ @@ -3933,15 +3960,15 @@ │ │ const-string v1, ", currentElement=" │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ │ - .line 699 │ + .line 703 │ invoke-virtual {p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ @@ -3960,13 +3987,13 @@ │ .end method │ │ .method transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ .locals 0 │ .param p1, "state" # Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ .prologue │ - .line 118 │ + .line 122 │ iput-object p1, p0, Lorg/jsoup/parser/HtmlTreeBuilder;->state:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 119 │ + .line 123 │ return-void │ .end method ├── smali/org/jsoup/parser/TokeniserState$22.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 321 │ + .line 323 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,103 +31,103 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 323 │ + .line 325 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->isEmpty()Z │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ - .line 324 │ + .line 326 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 325 │ + .line 327 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$22;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 346 │ + .line 348 │ :goto_0 │ return-void │ │ - .line 329 │ + .line 331 │ :cond_0 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->current()C │ │ move-result v1 │ │ sparse-switch v1, :sswitch_data_0 │ │ - .line 343 │ + .line 345 │ const/4 v1, 0x3 │ │ new-array v1, v1, [C │ │ fill-array-data v1, :array_0 │ │ invoke-virtual {p2, v1}, Lorg/jsoup/parser/CharacterReader;->consumeToAny([C)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 344 │ + .line 346 │ .local v0, "data":Ljava/lang/String; │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(Ljava/lang/String;)V │ │ goto :goto_0 │ │ - .line 331 │ + .line 333 │ .end local v0 # "data":Ljava/lang/String; │ :sswitch_0 │ const/16 v1, 0x2d │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ - .line 332 │ + .line 334 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$22;->ScriptDataEscapedDash:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 335 │ + .line 337 │ :sswitch_1 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$22;->ScriptDataEscapedLessthanSign:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 338 │ + .line 340 │ :sswitch_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 339 │ + .line 341 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->advance()V │ │ - .line 340 │ + .line 342 │ const v1, 0xfffd │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ goto :goto_0 │ │ - .line 329 │ + .line 331 │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_2 │ 0x2d -> :sswitch_0 │ 0x3c -> :sswitch_1 │ .end sparse-switch │ │ - .line 343 │ + .line 345 │ :array_0 │ .array-data 2 │ 0x2ds │ 0x3cs │ 0x0s │ .end array-data │ .end method ├── smali/org/jsoup/parser/TokeniserState$17.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 273 │ + .line 275 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,63 +31,63 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 1 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 275 │ + .line 277 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ sparse-switch v0, :sswitch_data_0 │ │ - .line 285 │ + .line 287 │ const-string v0, "<" │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(Ljava/lang/String;)V │ │ - .line 286 │ + .line 288 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->unconsume()V │ │ - .line 287 │ + .line 289 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$17;->ScriptData:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 289 │ + .line 291 │ :goto_0 │ return-void │ │ - .line 277 │ + .line 279 │ :sswitch_0 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->createTempBuffer()V │ │ - .line 278 │ + .line 280 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$17;->ScriptDataEndTagOpen:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 281 │ + .line 283 │ :sswitch_1 │ const-string v0, "emit(Ljava/lang/String;)V │ │ - .line 282 │ + .line 284 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$17;->ScriptDataEscapeStart:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 275 │ + .line 277 │ nop │ │ :sswitch_data_0 │ .sparse-switch │ 0x21 -> :sswitch_1 │ 0x2f -> :sswitch_0 │ .end sparse-switch ├── smali/org/jsoup/parser/TokeniserState$37.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 677 │ + .line 679 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,126 +31,126 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 679 │ + .line 681 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 680 │ + .line 682 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 721 │ + .line 723 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->unconsume()V │ │ - .line 722 │ + .line 724 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$37;->AttributeValue_unquoted:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 724 │ + .line 726 │ :goto_0 │ :sswitch_0 │ return-void │ │ - .line 689 │ + .line 691 │ :sswitch_1 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$37;->AttributeValue_doubleQuoted:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 692 │ + .line 694 │ :sswitch_2 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->unconsume()V │ │ - .line 693 │ + .line 695 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$37;->AttributeValue_unquoted:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 696 │ + .line 698 │ :sswitch_3 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$37;->AttributeValue_singleQuoted:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 699 │ + .line 701 │ :sswitch_4 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 700 │ + .line 702 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ const v2, 0xfffd │ │ invoke-virtual {v1, v2}, Lorg/jsoup/parser/Token$Tag;->appendAttributeValue(C)V │ │ - .line 701 │ + .line 703 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$37;->AttributeValue_unquoted:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 704 │ + .line 706 │ :sswitch_5 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 705 │ + .line 707 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitTagPending()V │ │ - .line 706 │ + .line 708 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$37;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 709 │ + .line 711 │ :sswitch_6 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 710 │ + .line 712 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitTagPending()V │ │ - .line 711 │ + .line 713 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$37;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 716 │ + .line 718 │ :sswitch_7 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 717 │ + .line 719 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ invoke-virtual {v1, v0}, Lorg/jsoup/parser/Token$Tag;->appendAttributeValue(C)V │ │ - .line 718 │ + .line 720 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$37;->AttributeValue_unquoted:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 680 │ + .line 682 │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_4 │ 0x9 -> :sswitch_0 │ 0xa -> :sswitch_0 │ 0xc -> :sswitch_0 │ 0xd -> :sswitch_0 ├── smali/org/jsoup/parser/HtmlTreeBuilderState$Constants.smali │ @@ -61,15 +61,15 @@ │ │ const/4 v5, 0x2 │ │ const/4 v4, 0x1 │ │ const/4 v3, 0x0 │ │ - .line 1489 │ + .line 1492 │ const/16 v0, 0xa │ │ new-array v0, v0, [Ljava/lang/String; │ │ const-string v1, "base" │ │ aput-object v1, v0, v3 │ @@ -118,15 +118,15 @@ │ │ const-string v2, "title" │ │ aput-object v2, v0, v1 │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyStartToHead:[Ljava/lang/String; │ │ - .line 1490 │ + .line 1493 │ const/16 v0, 0x16 │ │ new-array v0, v0, [Ljava/lang/String; │ │ const-string v1, "address" │ │ aput-object v1, v0, v3 │ @@ -247,15 +247,15 @@ │ │ const-string v2, "ul" │ │ aput-object v2, v0, v1 │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyStartPClosers:[Ljava/lang/String; │ │ - .line 1493 │ + .line 1496 │ const/4 v0, 0x6 │ │ new-array v0, v0, [Ljava/lang/String; │ │ const-string v1, "h1" │ │ aput-object v1, v0, v3 │ @@ -280,28 +280,28 @@ │ │ const-string v2, "h6" │ │ aput-object v2, v0, v1 │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->Headings:[Ljava/lang/String; │ │ - .line 1494 │ + .line 1497 │ new-array v0, v5, [Ljava/lang/String; │ │ const-string v1, "pre" │ │ aput-object v1, v0, v3 │ │ const-string v1, "listing" │ │ aput-object v1, v0, v4 │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyStartPreListing:[Ljava/lang/String; │ │ - .line 1495 │ + .line 1498 │ new-array v0, v6, [Ljava/lang/String; │ │ const-string v1, "address" │ │ aput-object v1, v0, v3 │ │ const-string v1, "div" │ @@ -310,28 +310,28 @@ │ │ const-string v1, "p" │ │ aput-object v1, v0, v5 │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyStartLiBreakers:[Ljava/lang/String; │ │ - .line 1496 │ + .line 1499 │ new-array v0, v5, [Ljava/lang/String; │ │ const-string v1, "dd" │ │ aput-object v1, v0, v3 │ │ const-string v1, "dt" │ │ aput-object v1, v0, v4 │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->DdDt:[Ljava/lang/String; │ │ - .line 1497 │ + .line 1500 │ const/16 v0, 0xc │ │ new-array v0, v0, [Ljava/lang/String; │ │ const-string v1, "b" │ │ aput-object v1, v0, v3 │ @@ -392,15 +392,15 @@ │ │ const-string v2, "u" │ │ aput-object v2, v0, v1 │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->Formatters:[Ljava/lang/String; │ │ - .line 1498 │ + .line 1501 │ new-array v0, v6, [Ljava/lang/String; │ │ const-string v1, "applet" │ │ aput-object v1, v0, v3 │ │ const-string v1, "marquee" │ @@ -409,15 +409,15 @@ │ │ const-string v1, "object" │ │ aput-object v1, v0, v5 │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyStartApplets:[Ljava/lang/String; │ │ - .line 1499 │ + .line 1502 │ const/4 v0, 0x6 │ │ new-array v0, v0, [Ljava/lang/String; │ │ const-string v1, "area" │ │ aput-object v1, v0, v3 │ @@ -442,15 +442,15 @@ │ │ const-string v2, "wbr" │ │ aput-object v2, v0, v1 │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyStartEmptyFormatters:[Ljava/lang/String; │ │ - .line 1500 │ + .line 1503 │ new-array v0, v6, [Ljava/lang/String; │ │ const-string v1, "param" │ │ aput-object v1, v0, v3 │ │ const-string v1, "source" │ @@ -459,15 +459,15 @@ │ │ const-string v1, "track" │ │ aput-object v1, v0, v5 │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyStartMedia:[Ljava/lang/String; │ │ - .line 1501 │ + .line 1504 │ new-array v0, v6, [Ljava/lang/String; │ │ const-string v1, "name" │ │ aput-object v1, v0, v3 │ │ const-string v1, "action" │ @@ -476,41 +476,41 @@ │ │ const-string v1, "prompt" │ │ aput-object v1, v0, v5 │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyStartInputAttribs:[Ljava/lang/String; │ │ - .line 1502 │ + .line 1505 │ new-array v0, v5, [Ljava/lang/String; │ │ const-string v1, "optgroup" │ │ aput-object v1, v0, v3 │ │ const-string v1, "option" │ │ aput-object v1, v0, v4 │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyStartOptions:[Ljava/lang/String; │ │ - .line 1503 │ + .line 1506 │ new-array v0, v5, [Ljava/lang/String; │ │ const-string v1, "rp" │ │ aput-object v1, v0, v3 │ │ const-string v1, "rt" │ │ aput-object v1, v0, v4 │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyStartRuby:[Ljava/lang/String; │ │ - .line 1504 │ + .line 1507 │ const/16 v0, 0xb │ │ new-array v0, v0, [Ljava/lang/String; │ │ const-string v1, "caption" │ │ aput-object v1, v0, v3 │ @@ -565,15 +565,15 @@ │ │ const-string v2, "tr" │ │ aput-object v2, v0, v1 │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyStartDrop:[Ljava/lang/String; │ │ - .line 1505 │ + .line 1508 │ const/16 v0, 0x18 │ │ new-array v0, v0, [Ljava/lang/String; │ │ const-string v1, "address" │ │ aput-object v1, v0, v3 │ @@ -706,15 +706,15 @@ │ │ const-string v2, "ul" │ │ aput-object v2, v0, v1 │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyEndClosers:[Ljava/lang/String; │ │ - .line 1508 │ + .line 1511 │ const/16 v0, 0xe │ │ new-array v0, v0, [Ljava/lang/String; │ │ const-string v1, "a" │ │ aput-object v1, v0, v3 │ @@ -787,15 +787,15 @@ │ │ const-string v2, "u" │ │ aput-object v2, v0, v1 │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyEndAdoptionFormatters:[Ljava/lang/String; │ │ - .line 1509 │ + .line 1512 │ const/4 v0, 0x5 │ │ new-array v0, v0, [Ljava/lang/String; │ │ const-string v1, "table" │ │ aput-object v1, v0, v3 │ @@ -821,182 +821,182 @@ │ return-void │ .end method │ │ .method private constructor ()V │ .locals 0 │ │ .prologue │ - .line 1488 │ + .line 1491 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ .method static synthetic access$1000()[Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 1488 │ + .line 1491 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyStartPreListing:[Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method static synthetic access$1100()[Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 1488 │ + .line 1491 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->DdDt:[Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method static synthetic access$1200()[Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 1488 │ + .line 1491 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->Formatters:[Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method static synthetic access$1300()[Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 1488 │ + .line 1491 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyStartApplets:[Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method static synthetic access$1400()[Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 1488 │ + .line 1491 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyStartMedia:[Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method static synthetic access$1500()[Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 1488 │ + .line 1491 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyStartInputAttribs:[Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method static synthetic access$1600()[Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 1488 │ + .line 1491 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyStartOptions:[Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method static synthetic access$1700()[Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 1488 │ + .line 1491 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyStartRuby:[Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method static synthetic access$1800()[Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 1488 │ + .line 1491 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyStartDrop:[Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method static synthetic access$1900()[Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 1488 │ + .line 1491 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyEndAdoptionFormatters:[Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method static synthetic access$2000()[Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 1488 │ + .line 1491 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyEndTableFosters:[Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method static synthetic access$2100()[Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 1488 │ + .line 1491 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyEndClosers:[Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method static synthetic access$500()[Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 1488 │ + .line 1491 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyStartEmptyFormatters:[Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method static synthetic access$600()[Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 1488 │ + .line 1491 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyStartPClosers:[Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method static synthetic access$700()[Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 1488 │ + .line 1491 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyStartLiBreakers:[Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method static synthetic access$800()[Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 1488 │ + .line 1491 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->InBodyStartToHead:[Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method static synthetic access$900()[Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 1488 │ + .line 1491 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->Headings:[Ljava/lang/String; │ │ return-object v0 │ .end method ├── smali/org/jsoup/parser/TokeniserState$62.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1451 │ + .line 1456 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -33,96 +33,96 @@ │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ const/4 v2, 0x1 │ │ - .line 1453 │ + .line 1458 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 1454 │ + .line 1459 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 1482 │ + .line 1487 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1483 │ + .line 1488 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1484 │ + .line 1489 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$62;->BogusDoctype:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1486 │ + .line 1491 │ :goto_0 │ :sswitch_0 │ return-void │ │ - .line 1463 │ + .line 1468 │ :sswitch_1 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$62;->DoctypeSystemIdentifier_doubleQuoted:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1467 │ + .line 1472 │ :sswitch_2 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$62;->DoctypeSystemIdentifier_singleQuoted:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1470 │ + .line 1475 │ :sswitch_3 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1471 │ + .line 1476 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1472 │ + .line 1477 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1473 │ + .line 1478 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$62;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1476 │ + .line 1481 │ :sswitch_4 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1477 │ + .line 1482 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1478 │ + .line 1483 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1479 │ + .line 1484 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$62;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1454 │ + .line 1459 │ nop │ │ :sswitch_data_0 │ .sparse-switch │ 0x9 -> :sswitch_0 │ 0xa -> :sswitch_0 │ 0xc -> :sswitch_0 ├── smali/org/jsoup/parser/Token.smali │ @@ -23,116 +23,116 @@ │ │ │ # direct methods │ .method private constructor ()V │ .locals 0 │ │ .prologue │ - .line 14 │ + .line 16 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 15 │ + .line 17 │ return-void │ .end method │ │ .method synthetic constructor (Lorg/jsoup/parser/Token$1;)V │ .locals 0 │ .param p1, "x0" # Lorg/jsoup/parser/Token$1; │ │ .prologue │ - .line 11 │ + .line 13 │ invoke-direct {p0}, Lorg/jsoup/parser/Token;->()V │ │ return-void │ .end method │ │ .method static reset(Ljava/lang/StringBuilder;)V │ .locals 2 │ .param p0, "sb" # Ljava/lang/StringBuilder; │ │ .prologue │ - .line 28 │ + .line 30 │ if-eqz p0, :cond_0 │ │ - .line 29 │ + .line 31 │ const/4 v0, 0x0 │ │ invoke-virtual {p0}, Ljava/lang/StringBuilder;->length()I │ │ move-result v1 │ │ invoke-virtual {p0, v0, v1}, Ljava/lang/StringBuilder;->delete(II)Ljava/lang/StringBuilder; │ │ - .line 31 │ + .line 33 │ :cond_0 │ return-void │ .end method │ │ │ # virtual methods │ .method final asCharacter()Lorg/jsoup/parser/Token$Character; │ .locals 0 │ │ .prologue │ - .line 335 │ + .line 363 │ check-cast p0, Lorg/jsoup/parser/Token$Character; │ │ .end local p0 # "this":Lorg/jsoup/parser/Token; │ return-object p0 │ .end method │ │ .method final asComment()Lorg/jsoup/parser/Token$Comment; │ .locals 0 │ │ .prologue │ - .line 327 │ + .line 355 │ check-cast p0, Lorg/jsoup/parser/Token$Comment; │ │ .end local p0 # "this":Lorg/jsoup/parser/Token; │ return-object p0 │ .end method │ │ .method final asDoctype()Lorg/jsoup/parser/Token$Doctype; │ .locals 0 │ │ .prologue │ - .line 303 │ + .line 331 │ check-cast p0, Lorg/jsoup/parser/Token$Doctype; │ │ .end local p0 # "this":Lorg/jsoup/parser/Token; │ return-object p0 │ .end method │ │ .method final asEndTag()Lorg/jsoup/parser/Token$EndTag; │ .locals 0 │ │ .prologue │ - .line 319 │ + .line 347 │ check-cast p0, Lorg/jsoup/parser/Token$EndTag; │ │ .end local p0 # "this":Lorg/jsoup/parser/Token; │ return-object p0 │ .end method │ │ .method final asStartTag()Lorg/jsoup/parser/Token$StartTag; │ .locals 0 │ │ .prologue │ - .line 311 │ + .line 339 │ check-cast p0, Lorg/jsoup/parser/Token$StartTag; │ │ .end local p0 # "this":Lorg/jsoup/parser/Token; │ return-object p0 │ .end method │ │ .method final isCharacter()Z │ .locals 2 │ │ .prologue │ - .line 331 │ + .line 359 │ iget-object v0, p0, Lorg/jsoup/parser/Token;->type:Lorg/jsoup/parser/Token$TokenType; │ │ sget-object v1, Lorg/jsoup/parser/Token$TokenType;->Character:Lorg/jsoup/parser/Token$TokenType; │ │ if-ne v0, v1, :cond_0 │ │ const/4 v0, 0x1 │ @@ -146,15 +146,15 @@ │ goto :goto_0 │ .end method │ │ .method final isComment()Z │ .locals 2 │ │ .prologue │ - .line 323 │ + .line 351 │ iget-object v0, p0, Lorg/jsoup/parser/Token;->type:Lorg/jsoup/parser/Token$TokenType; │ │ sget-object v1, Lorg/jsoup/parser/Token$TokenType;->Comment:Lorg/jsoup/parser/Token$TokenType; │ │ if-ne v0, v1, :cond_0 │ │ const/4 v0, 0x1 │ @@ -168,15 +168,15 @@ │ goto :goto_0 │ .end method │ │ .method final isDoctype()Z │ .locals 2 │ │ .prologue │ - .line 299 │ + .line 327 │ iget-object v0, p0, Lorg/jsoup/parser/Token;->type:Lorg/jsoup/parser/Token$TokenType; │ │ sget-object v1, Lorg/jsoup/parser/Token$TokenType;->Doctype:Lorg/jsoup/parser/Token$TokenType; │ │ if-ne v0, v1, :cond_0 │ │ const/4 v0, 0x1 │ @@ -190,15 +190,15 @@ │ goto :goto_0 │ .end method │ │ .method final isEOF()Z │ .locals 2 │ │ .prologue │ - .line 339 │ + .line 367 │ iget-object v0, p0, Lorg/jsoup/parser/Token;->type:Lorg/jsoup/parser/Token$TokenType; │ │ sget-object v1, Lorg/jsoup/parser/Token$TokenType;->EOF:Lorg/jsoup/parser/Token$TokenType; │ │ if-ne v0, v1, :cond_0 │ │ const/4 v0, 0x1 │ @@ -212,15 +212,15 @@ │ goto :goto_0 │ .end method │ │ .method final isEndTag()Z │ .locals 2 │ │ .prologue │ - .line 315 │ + .line 343 │ iget-object v0, p0, Lorg/jsoup/parser/Token;->type:Lorg/jsoup/parser/Token$TokenType; │ │ sget-object v1, Lorg/jsoup/parser/Token$TokenType;->EndTag:Lorg/jsoup/parser/Token$TokenType; │ │ if-ne v0, v1, :cond_0 │ │ const/4 v0, 0x1 │ @@ -234,15 +234,15 @@ │ goto :goto_0 │ .end method │ │ .method final isStartTag()Z │ .locals 2 │ │ .prologue │ - .line 307 │ + .line 335 │ iget-object v0, p0, Lorg/jsoup/parser/Token;->type:Lorg/jsoup/parser/Token$TokenType; │ │ sget-object v1, Lorg/jsoup/parser/Token$TokenType;->StartTag:Lorg/jsoup/parser/Token$TokenType; │ │ if-ne v0, v1, :cond_0 │ │ const/4 v0, 0x1 │ @@ -259,15 +259,15 @@ │ .method abstract reset()Lorg/jsoup/parser/Token; │ .end method │ │ .method tokenType()Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 18 │ + .line 20 │ invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v0 │ │ invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String; │ │ move-result-object v0 ├── smali/org/jsoup/parser/TokeniserState$9.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 123 │ + .line 125 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,82 +31,82 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 1 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 125 │ + .line 127 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->isEmpty()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 126 │ + .line 128 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 127 │ + .line 129 │ const-string v0, "emit(Ljava/lang/String;)V │ │ - .line 128 │ + .line 130 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$9;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 139 │ + .line 141 │ :goto_0 │ return-void │ │ - .line 129 │ + .line 131 │ :cond_0 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->matchesLetter()Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ - .line 130 │ + .line 132 │ const/4 v0, 0x0 │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->createTagPending(Z)Lorg/jsoup/parser/Token$Tag; │ │ - .line 131 │ + .line 133 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$9;->TagName:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 132 │ + .line 134 │ :cond_1 │ const/16 v0, 0x3e │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/CharacterReader;->matches(C)Z │ │ move-result v0 │ │ if-eqz v0, :cond_2 │ │ - .line 133 │ + .line 135 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 134 │ + .line 136 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$9;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 136 │ + .line 138 │ :cond_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 137 │ + .line 139 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$9;->BogusComment:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ .end method ├── smali/org/jsoup/parser/TokeniserState$10.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 141 │ + .line 143 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,91 +31,87 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 146 │ + .line 148 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consumeTagName()Ljava/lang/String; │ │ - move-result-object v1 │ - │ - invoke-virtual {v1}, Ljava/lang/String;->toLowerCase()Ljava/lang/String; │ - │ move-result-object v0 │ │ - .line 147 │ + .line 149 │ .local v0, "tagName":Ljava/lang/String; │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ invoke-virtual {v1, v0}, Lorg/jsoup/parser/Token$Tag;->appendTagName(Ljava/lang/String;)V │ │ - .line 149 │ + .line 151 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v1 │ │ sparse-switch v1, :sswitch_data_0 │ │ - .line 172 │ + .line 174 │ :goto_0 │ return-void │ │ - .line 155 │ + .line 157 │ :sswitch_0 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$10;->BeforeAttributeName:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 158 │ + .line 160 │ :sswitch_1 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$10;->SelfClosingStartTag:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 161 │ + .line 163 │ :sswitch_2 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitTagPending()V │ │ - .line 162 │ + .line 164 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$10;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 165 │ + .line 167 │ :sswitch_3 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ invoke-static {}, Lorg/jsoup/parser/TokeniserState;->access$300()Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Lorg/jsoup/parser/Token$Tag;->appendTagName(Ljava/lang/String;)V │ │ goto :goto_0 │ │ - .line 168 │ + .line 170 │ :sswitch_4 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 169 │ + .line 171 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$10;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 149 │ + .line 151 │ nop │ │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_3 │ 0x9 -> :sswitch_0 │ 0xa -> :sswitch_0 ├── smali/org/jsoup/parser/HtmlTreeBuilderState$16.smali │ @@ -15,32 +15,32 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1206 │ + .line 1208 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->(Ljava/lang/String;ILorg/jsoup/parser/HtmlTreeBuilderState$1;)V │ │ return-void │ .end method │ │ .method private anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ .locals 1 │ .param p1, "t" # Lorg/jsoup/parser/Token; │ .param p2, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ - .line 1290 │ + .line 1293 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 1291 │ + .line 1294 │ const/4 v0, 0x0 │ │ return v0 │ .end method │ │ │ # virtual methods │ @@ -50,44 +50,44 @@ │ .param p2, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ const/4 v5, 0x1 │ │ const/4 v4, 0x0 │ │ - .line 1208 │ + .line 1210 │ sget-object v6, Lorg/jsoup/parser/HtmlTreeBuilderState$24;->$SwitchMap$org$jsoup$parser$Token$TokenType:[I │ │ iget-object v7, p1, Lorg/jsoup/parser/Token;->type:Lorg/jsoup/parser/Token$TokenType; │ │ invoke-virtual {v7}, Lorg/jsoup/parser/Token$TokenType;->ordinal()I │ │ move-result v7 │ │ aget v6, v6, v7 │ │ packed-switch v6, :pswitch_data_0 │ │ - .line 1284 │ + .line 1287 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$16;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v4 │ │ - .line 1286 │ + .line 1289 │ :cond_0 │ :goto_0 │ return v4 │ │ - .line 1210 │ + .line 1212 │ :pswitch_0 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asCharacter()Lorg/jsoup/parser/Token$Character; │ │ move-result-object v0 │ │ - .line 1211 │ + .line 1213 │ .local v0, "c":Lorg/jsoup/parser/Token$Character; │ invoke-virtual {v0}, Lorg/jsoup/parser/Token$Character;->getData()Ljava/lang/String; │ │ move-result-object v6 │ │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState;->access$400()Ljava/lang/String; │ │ @@ -95,186 +95,204 @@ │ │ invoke-virtual {v6, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_1 │ │ - .line 1212 │ + .line 1214 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_0 │ │ - .line 1215 │ + .line 1217 │ :cond_1 │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Character;)V │ │ .end local v0 # "c":Lorg/jsoup/parser/Token$Character; │ :cond_2 │ :goto_1 │ move v4, v5 │ │ - .line 1286 │ + .line 1289 │ goto :goto_0 │ │ - .line 1219 │ + .line 1221 │ :pswitch_1 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asComment()Lorg/jsoup/parser/Token$Comment; │ │ move-result-object v4 │ │ invoke-virtual {p2, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Comment;)V │ │ goto :goto_1 │ │ - .line 1222 │ + .line 1224 │ :pswitch_2 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_0 │ │ - .line 1225 │ + .line 1227 │ :pswitch_3 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v3 │ │ - .line 1226 │ + .line 1228 │ .local v3, "start":Lorg/jsoup/parser/Token$StartTag; │ - invoke-virtual {v3}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ + invoke-virtual {v3}, Lorg/jsoup/parser/Token$StartTag;->normalName()Ljava/lang/String; │ │ move-result-object v2 │ │ - .line 1227 │ + .line 1229 │ .local v2, "name":Ljava/lang/String; │ const-string v6, "html" │ │ invoke-virtual {v2, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_3 │ │ - .line 1228 │ + .line 1230 │ sget-object v4, Lorg/jsoup/parser/HtmlTreeBuilderState$16;->InBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v3, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ move-result v4 │ │ goto :goto_0 │ │ - .line 1229 │ + .line 1231 │ :cond_3 │ const-string v6, "option" │ │ invoke-virtual {v2, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v6 │ │ - if-eqz v6, :cond_4 │ + if-eqz v6, :cond_5 │ │ - .line 1230 │ + .line 1232 │ + invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ + │ + move-result-object v4 │ + │ + invoke-virtual {v4}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ + │ + move-result-object v4 │ + │ + const-string v6, "option" │ + │ + invoke-virtual {v4, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + │ + move-result v4 │ + │ + if-eqz v4, :cond_4 │ + │ + .line 1233 │ const-string v4, "option" │ │ invoke-virtual {p2, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 1231 │ + .line 1234 │ + :cond_4 │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ goto :goto_1 │ │ - .line 1232 │ - :cond_4 │ + .line 1235 │ + :cond_5 │ const-string v6, "optgroup" │ │ invoke-virtual {v2, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v6 │ │ - if-eqz v6, :cond_7 │ + if-eqz v6, :cond_8 │ │ - .line 1233 │ + .line 1236 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v4 │ │ invoke-virtual {v4}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v4 │ │ const-string v6, "option" │ │ invoke-virtual {v4, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ - if-eqz v4, :cond_6 │ + if-eqz v4, :cond_7 │ │ - .line 1234 │ + .line 1237 │ const-string v4, "option" │ │ invoke-virtual {p2, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 1237 │ - :cond_5 │ + .line 1240 │ + :cond_6 │ :goto_2 │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ goto :goto_1 │ │ - .line 1235 │ - :cond_6 │ + .line 1238 │ + :cond_7 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v4 │ │ invoke-virtual {v4}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v4 │ │ const-string v6, "optgroup" │ │ invoke-virtual {v4, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ - if-eqz v4, :cond_5 │ + if-eqz v4, :cond_6 │ │ - .line 1236 │ + .line 1239 │ const-string v4, "optgroup" │ │ invoke-virtual {p2, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ goto :goto_2 │ │ - .line 1238 │ - :cond_7 │ + .line 1241 │ + :cond_8 │ const-string v6, "select" │ │ invoke-virtual {v2, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v6 │ │ - if-eqz v6, :cond_8 │ + if-eqz v6, :cond_9 │ │ - .line 1239 │ + .line 1242 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 1240 │ + .line 1243 │ const-string v4, "select" │ │ invoke-virtual {p2, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ move-result v4 │ │ goto/16 :goto_0 │ │ - .line 1241 │ - :cond_8 │ + .line 1244 │ + :cond_9 │ const/4 v6, 0x3 │ │ new-array v6, v6, [Ljava/lang/String; │ │ const-string v7, "input" │ │ aput-object v7, v6, v4 │ @@ -289,117 +307,117 @@ │ │ aput-object v7, v6, v5 │ │ invoke-static {v2, v6}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v5 │ │ - if-eqz v5, :cond_9 │ + if-eqz v5, :cond_a │ │ - .line 1242 │ + .line 1245 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 1243 │ + .line 1246 │ const-string v5, "select" │ │ invoke-virtual {p2, v5}, Lorg/jsoup/parser/HtmlTreeBuilder;->inSelectScope(Ljava/lang/String;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_0 │ │ - .line 1245 │ + .line 1248 │ const-string v4, "select" │ │ invoke-virtual {p2, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 1246 │ + .line 1249 │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v4 │ │ goto/16 :goto_0 │ │ - .line 1247 │ - :cond_9 │ + .line 1250 │ + :cond_a │ const-string v4, "script" │ │ invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ - if-eqz v4, :cond_a │ + if-eqz v4, :cond_b │ │ - .line 1248 │ + .line 1251 │ sget-object v4, Lorg/jsoup/parser/HtmlTreeBuilderState$16;->InHead:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, p1, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ move-result v4 │ │ goto/16 :goto_0 │ │ - .line 1250 │ - :cond_a │ + .line 1253 │ + :cond_b │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$16;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v4 │ │ goto/16 :goto_0 │ │ - .line 1254 │ + .line 1257 │ .end local v2 # "name":Ljava/lang/String; │ .end local v3 # "start":Lorg/jsoup/parser/Token$StartTag; │ :pswitch_4 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asEndTag()Lorg/jsoup/parser/Token$EndTag; │ │ move-result-object v1 │ │ - .line 1255 │ + .line 1258 │ .local v1, "end":Lorg/jsoup/parser/Token$EndTag; │ - invoke-virtual {v1}, Lorg/jsoup/parser/Token$EndTag;->name()Ljava/lang/String; │ + invoke-virtual {v1}, Lorg/jsoup/parser/Token$EndTag;->normalName()Ljava/lang/String; │ │ move-result-object v2 │ │ - .line 1256 │ + .line 1259 │ .restart local v2 # "name":Ljava/lang/String; │ const-string v6, "optgroup" │ │ invoke-virtual {v2, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v6 │ │ - if-eqz v6, :cond_d │ + if-eqz v6, :cond_e │ │ - .line 1257 │ + .line 1260 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v4 │ │ invoke-virtual {v4}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v4 │ │ const-string v6, "option" │ │ invoke-virtual {v4, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ - if-eqz v4, :cond_b │ + if-eqz v4, :cond_c │ │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v4 │ │ invoke-virtual {p2, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->aboveOnStack(Lorg/jsoup/nodes/Element;)Lorg/jsoup/nodes/Element; │ │ move-result-object v4 │ │ - if-eqz v4, :cond_b │ + if-eqz v4, :cond_c │ │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v4 │ │ invoke-virtual {p2, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->aboveOnStack(Lorg/jsoup/nodes/Element;)Lorg/jsoup/nodes/Element; │ │ @@ -411,128 +429,128 @@ │ │ const-string v6, "optgroup" │ │ invoke-virtual {v4, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ - if-eqz v4, :cond_b │ + if-eqz v4, :cond_c │ │ - .line 1258 │ + .line 1261 │ const-string v4, "option" │ │ invoke-virtual {p2, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 1259 │ - :cond_b │ + .line 1262 │ + :cond_c │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v4 │ │ invoke-virtual {v4}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v4 │ │ const-string v6, "optgroup" │ │ invoke-virtual {v4, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ - if-eqz v4, :cond_c │ + if-eqz v4, :cond_d │ │ - .line 1260 │ + .line 1263 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->pop()Lorg/jsoup/nodes/Element; │ │ goto/16 :goto_1 │ │ - .line 1262 │ - :cond_c │ + .line 1265 │ + :cond_d │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_1 │ │ - .line 1263 │ - :cond_d │ + .line 1266 │ + :cond_e │ const-string v6, "option" │ │ invoke-virtual {v2, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v6 │ │ - if-eqz v6, :cond_f │ + if-eqz v6, :cond_10 │ │ - .line 1264 │ + .line 1267 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v4 │ │ invoke-virtual {v4}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v4 │ │ const-string v6, "option" │ │ invoke-virtual {v4, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ - if-eqz v4, :cond_e │ + if-eqz v4, :cond_f │ │ - .line 1265 │ + .line 1268 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->pop()Lorg/jsoup/nodes/Element; │ │ goto/16 :goto_1 │ │ - .line 1267 │ - :cond_e │ + .line 1270 │ + :cond_f │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_1 │ │ - .line 1268 │ - :cond_f │ + .line 1271 │ + :cond_10 │ const-string v6, "select" │ │ invoke-virtual {v2, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v6 │ │ - if-eqz v6, :cond_11 │ + if-eqz v6, :cond_12 │ │ - .line 1269 │ + .line 1272 │ invoke-virtual {p2, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->inSelectScope(Ljava/lang/String;)Z │ │ move-result v6 │ │ - if-nez v6, :cond_10 │ + if-nez v6, :cond_11 │ │ - .line 1270 │ + .line 1273 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_0 │ │ - .line 1273 │ - :cond_10 │ + .line 1276 │ + :cond_11 │ invoke-virtual {p2, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->popStackToClose(Ljava/lang/String;)V │ │ - .line 1274 │ + .line 1277 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->resetInsertionMode()V │ │ goto/16 :goto_1 │ │ - .line 1277 │ - :cond_11 │ + .line 1280 │ + :cond_12 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$16;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v4 │ │ goto/16 :goto_0 │ │ - .line 1280 │ + .line 1283 │ .end local v1 # "end":Lorg/jsoup/parser/Token$EndTag; │ .end local v2 # "name":Ljava/lang/String; │ :pswitch_5 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v4 │ │ @@ -544,20 +562,20 @@ │ │ invoke-virtual {v4, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-nez v4, :cond_2 │ │ - .line 1281 │ + .line 1284 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_1 │ │ - .line 1208 │ + .line 1210 │ :pswitch_data_0 │ .packed-switch 0x1 │ :pswitch_1 │ :pswitch_2 │ :pswitch_3 │ :pswitch_4 │ :pswitch_0 ├── smali/org/jsoup/parser/HtmlTreeBuilderState$12.smali │ @@ -15,45 +15,45 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 973 │ + .line 975 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->(Ljava/lang/String;ILorg/jsoup/parser/HtmlTreeBuilderState$1;)V │ │ return-void │ .end method │ │ .method private anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/TreeBuilder;)Z │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Token; │ .param p2, "tb" # Lorg/jsoup/parser/TreeBuilder; │ │ .prologue │ - .line 1022 │ + .line 1024 │ const-string v1, "colgroup" │ │ invoke-virtual {p2, v1}, Lorg/jsoup/parser/TreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ move-result v0 │ │ - .line 1023 │ + .line 1025 │ .local v0, "processed":Z │ if-eqz v0, :cond_0 │ │ - .line 1024 │ + .line 1026 │ invoke-virtual {p2, p1}, Lorg/jsoup/parser/TreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v1 │ │ - .line 1025 │ + .line 1027 │ :goto_0 │ return v1 │ │ :cond_0 │ const/4 v1, 0x1 │ │ goto :goto_0 │ @@ -65,150 +65,150 @@ │ .locals 6 │ .param p1, "t" # Lorg/jsoup/parser/Token; │ .param p2, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ const/4 v3, 0x1 │ │ - .line 975 │ + .line 977 │ invoke-static {p1}, Lorg/jsoup/parser/HtmlTreeBuilderState;->access$100(Lorg/jsoup/parser/Token;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_1 │ │ - .line 976 │ + .line 978 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asCharacter()Lorg/jsoup/parser/Token$Character; │ │ move-result-object v4 │ │ invoke-virtual {p2, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Character;)V │ │ - .line 1018 │ + .line 1020 │ :cond_0 │ :goto_0 │ return v3 │ │ - .line 979 │ + .line 981 │ :cond_1 │ sget-object v4, Lorg/jsoup/parser/HtmlTreeBuilderState$24;->$SwitchMap$org$jsoup$parser$Token$TokenType:[I │ │ iget-object v5, p1, Lorg/jsoup/parser/Token;->type:Lorg/jsoup/parser/Token$TokenType; │ │ invoke-virtual {v5}, Lorg/jsoup/parser/Token$TokenType;->ordinal()I │ │ move-result v5 │ │ aget v4, v4, v5 │ │ packed-switch v4, :pswitch_data_0 │ │ - .line 1016 │ + .line 1018 │ :pswitch_0 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$12;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/TreeBuilder;)Z │ │ move-result v3 │ │ goto :goto_0 │ │ - .line 981 │ + .line 983 │ :pswitch_1 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asComment()Lorg/jsoup/parser/Token$Comment; │ │ move-result-object v4 │ │ invoke-virtual {p2, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Comment;)V │ │ goto :goto_0 │ │ - .line 984 │ + .line 986 │ :pswitch_2 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_0 │ │ - .line 987 │ + .line 989 │ :pswitch_3 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v2 │ │ - .line 988 │ + .line 990 │ .local v2, "startTag":Lorg/jsoup/parser/Token$StartTag; │ - invoke-virtual {v2}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ + invoke-virtual {v2}, Lorg/jsoup/parser/Token$StartTag;->normalName()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 989 │ + .line 991 │ .local v1, "name":Ljava/lang/String; │ const-string v4, "html" │ │ invoke-virtual {v1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_2 │ │ - .line 990 │ + .line 992 │ sget-object v3, Lorg/jsoup/parser/HtmlTreeBuilderState$12;->InBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, p1, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ move-result v3 │ │ goto :goto_0 │ │ - .line 991 │ + .line 993 │ :cond_2 │ const-string v4, "col" │ │ invoke-virtual {v1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_3 │ │ - .line 992 │ + .line 994 │ invoke-virtual {p2, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertEmpty(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ goto :goto_0 │ │ - .line 994 │ + .line 996 │ :cond_3 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$12;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/TreeBuilder;)Z │ │ move-result v3 │ │ goto :goto_0 │ │ - .line 997 │ + .line 999 │ .end local v1 # "name":Ljava/lang/String; │ .end local v2 # "startTag":Lorg/jsoup/parser/Token$StartTag; │ :pswitch_4 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asEndTag()Lorg/jsoup/parser/Token$EndTag; │ │ move-result-object v0 │ │ - .line 998 │ + .line 1000 │ .local v0, "endTag":Lorg/jsoup/parser/Token$EndTag; │ - invoke-virtual {v0}, Lorg/jsoup/parser/Token$EndTag;->name()Ljava/lang/String; │ + invoke-virtual {v0}, Lorg/jsoup/parser/Token$EndTag;->normalName()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 999 │ + .line 1001 │ .restart local v1 # "name":Ljava/lang/String; │ const-string v4, "colgroup" │ │ invoke-virtual {v1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_5 │ │ - .line 1000 │ + .line 1002 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v4 │ │ invoke-virtual {v4}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v4 │ @@ -217,42 +217,42 @@ │ │ invoke-virtual {v4, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_4 │ │ - .line 1001 │ + .line 1003 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 1002 │ + .line 1004 │ const/4 v3, 0x0 │ │ goto :goto_0 │ │ - .line 1004 │ + .line 1006 │ :cond_4 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->pop()Lorg/jsoup/nodes/Element; │ │ - .line 1005 │ + .line 1007 │ sget-object v4, Lorg/jsoup/parser/HtmlTreeBuilderState$12;->InTable:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_0 │ │ - .line 1008 │ + .line 1010 │ :cond_5 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$12;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/TreeBuilder;)Z │ │ move-result v3 │ │ goto :goto_0 │ │ - .line 1011 │ + .line 1013 │ .end local v0 # "endTag":Lorg/jsoup/parser/Token$EndTag; │ .end local v1 # "name":Ljava/lang/String; │ :pswitch_5 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v4 │ │ @@ -264,22 +264,22 @@ │ │ invoke-virtual {v4, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-nez v4, :cond_0 │ │ - .line 1014 │ + .line 1016 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$12;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/TreeBuilder;)Z │ │ move-result v3 │ │ goto/16 :goto_0 │ │ - .line 979 │ + .line 981 │ :pswitch_data_0 │ .packed-switch 0x1 │ :pswitch_1 │ :pswitch_2 │ :pswitch_3 │ :pswitch_4 │ :pswitch_0 ├── smali/org/jsoup/parser/HtmlTreeBuilderState$6.smali │ @@ -15,39 +15,39 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 193 │ + .line 194 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->(Ljava/lang/String;ILorg/jsoup/parser/HtmlTreeBuilderState$1;)V │ │ return-void │ .end method │ │ .method private anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ .locals 1 │ .param p1, "t" # Lorg/jsoup/parser/Token; │ .param p2, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ - .line 239 │ + .line 240 │ const-string v0, "body" │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->processStartTag(Ljava/lang/String;)Z │ │ - .line 240 │ + .line 241 │ const/4 v0, 0x1 │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->framesetOk(Z)V │ │ - .line 241 │ + .line 242 │ invoke-virtual {p2, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v0 │ │ return v0 │ .end method │ │ @@ -61,147 +61,147 @@ │ .prologue │ const/4 v7, 0x2 │ │ const/4 v4, 0x1 │ │ const/4 v3, 0x0 │ │ - .line 195 │ + .line 196 │ invoke-static {p1}, Lorg/jsoup/parser/HtmlTreeBuilderState;->access$100(Lorg/jsoup/parser/Token;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_0 │ │ - .line 196 │ + .line 197 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asCharacter()Lorg/jsoup/parser/Token$Character; │ │ move-result-object v3 │ │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Character;)V │ │ :goto_0 │ move v3, v4 │ │ - .line 235 │ + .line 236 │ :goto_1 │ return v3 │ │ - .line 197 │ + .line 198 │ :cond_0 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isComment()Z │ │ move-result v5 │ │ if-eqz v5, :cond_1 │ │ - .line 198 │ + .line 199 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asComment()Lorg/jsoup/parser/Token$Comment; │ │ move-result-object v3 │ │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Comment;)V │ │ goto :goto_0 │ │ - .line 199 │ + .line 200 │ :cond_1 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isDoctype()Z │ │ move-result v5 │ │ if-eqz v5, :cond_2 │ │ - .line 200 │ + .line 201 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_0 │ │ - .line 201 │ + .line 202 │ :cond_2 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isStartTag()Z │ │ move-result v5 │ │ if-eqz v5, :cond_8 │ │ - .line 202 │ + .line 203 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v2 │ │ - .line 203 │ + .line 204 │ .local v2, "startTag":Lorg/jsoup/parser/Token$StartTag; │ - invoke-virtual {v2}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ + invoke-virtual {v2}, Lorg/jsoup/parser/Token$StartTag;->normalName()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 204 │ + .line 205 │ .local v1, "name":Ljava/lang/String; │ const-string v5, "html" │ │ invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_3 │ │ - .line 205 │ + .line 206 │ sget-object v3, Lorg/jsoup/parser/HtmlTreeBuilderState$6;->InBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, p1, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ move-result v3 │ │ goto :goto_1 │ │ - .line 206 │ + .line 207 │ :cond_3 │ const-string v5, "body" │ │ invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_4 │ │ - .line 207 │ + .line 208 │ invoke-virtual {p2, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ - .line 208 │ + .line 209 │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->framesetOk(Z)V │ │ - .line 209 │ + .line 210 │ sget-object v3, Lorg/jsoup/parser/HtmlTreeBuilderState$6;->InBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_0 │ │ - .line 210 │ + .line 211 │ :cond_4 │ const-string v5, "frameset" │ │ invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_5 │ │ - .line 211 │ + .line 212 │ invoke-virtual {p2, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ - .line 212 │ + .line 213 │ sget-object v3, Lorg/jsoup/parser/HtmlTreeBuilderState$6;->InFrameset:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_0 │ │ - .line 213 │ + .line 214 │ :cond_5 │ const/16 v5, 0x9 │ │ new-array v5, v5, [Ljava/lang/String; │ │ const-string v6, "base" │ │ @@ -253,74 +253,74 @@ │ │ invoke-static {v1, v5}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_6 │ │ - .line 214 │ + .line 215 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 215 │ + .line 216 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getHeadElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v0 │ │ - .line 216 │ + .line 217 │ .local v0, "head":Lorg/jsoup/nodes/Element; │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->push(Lorg/jsoup/nodes/Element;)V │ │ - .line 217 │ + .line 218 │ sget-object v3, Lorg/jsoup/parser/HtmlTreeBuilderState$6;->InHead:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, p1, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ - .line 218 │ + .line 219 │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->removeFromStack(Lorg/jsoup/nodes/Element;)Z │ │ goto/16 :goto_0 │ │ - .line 219 │ + .line 220 │ .end local v0 # "head":Lorg/jsoup/nodes/Element; │ :cond_6 │ const-string v5, "head" │ │ invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_7 │ │ - .line 220 │ + .line 221 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_1 │ │ - .line 223 │ + .line 224 │ :cond_7 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$6;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ goto/16 :goto_0 │ │ - .line 225 │ + .line 226 │ .end local v1 # "name":Ljava/lang/String; │ .end local v2 # "startTag":Lorg/jsoup/parser/Token$StartTag; │ :cond_8 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEndTag()Z │ │ move-result v5 │ │ if-eqz v5, :cond_a │ │ - .line 226 │ + .line 227 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asEndTag()Lorg/jsoup/parser/Token$EndTag; │ │ move-result-object v5 │ │ - invoke-virtual {v5}, Lorg/jsoup/parser/Token$EndTag;->name()Ljava/lang/String; │ + invoke-virtual {v5}, Lorg/jsoup/parser/Token$EndTag;->normalName()Ljava/lang/String; │ │ move-result-object v5 │ │ new-array v6, v7, [Ljava/lang/String; │ │ const-string v7, "body" │ │ @@ -332,24 +332,24 @@ │ │ invoke-static {v5, v6}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_9 │ │ - .line 227 │ + .line 228 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$6;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ goto/16 :goto_0 │ │ - .line 229 │ + .line 230 │ :cond_9 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_1 │ │ - .line 233 │ + .line 234 │ :cond_a │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$6;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ goto/16 :goto_0 │ .end method ├── smali/org/jsoup/parser/XmlTreeBuilder.smali │ @@ -7,296 +7,314 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 16 │ invoke-direct {p0}, Lorg/jsoup/parser/TreeBuilder;->()V │ │ - .line 46 │ return-void │ .end method │ │ .method private insertNode(Lorg/jsoup/nodes/Node;)V │ .locals 1 │ .param p1, "node" # Lorg/jsoup/nodes/Node; │ │ .prologue │ - .line 52 │ + .line 60 │ invoke-virtual {p0}, Lorg/jsoup/parser/XmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v0 │ │ invoke-virtual {v0, p1}, Lorg/jsoup/nodes/Element;->appendChild(Lorg/jsoup/nodes/Node;)Lorg/jsoup/nodes/Element; │ │ - .line 53 │ + .line 61 │ return-void │ .end method │ │ .method private popStackToClose(Lorg/jsoup/parser/Token$EndTag;)V │ .locals 5 │ .param p1, "endTag" # Lorg/jsoup/parser/Token$EndTag; │ │ .prologue │ - .line 103 │ + .line 111 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token$EndTag;->name()Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 104 │ + .line 112 │ .local v0, "elName":Ljava/lang/String; │ const/4 v1, 0x0 │ │ - .line 106 │ + .line 114 │ .local v1, "firstFound":Lorg/jsoup/nodes/Element; │ iget-object v4, p0, Lorg/jsoup/parser/XmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v4}, Ljava/util/ArrayList;->size()I │ │ move-result v4 │ │ add-int/lit8 v3, v4, -0x1 │ │ .local v3, "pos":I │ :goto_0 │ if-ltz v3, :cond_0 │ │ - .line 107 │ + .line 115 │ iget-object v4, p0, Lorg/jsoup/parser/XmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v4, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Lorg/jsoup/nodes/Element; │ │ - .line 108 │ + .line 116 │ .local v2, "next":Lorg/jsoup/nodes/Element; │ invoke-virtual {v2}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-virtual {v4, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_2 │ │ - .line 109 │ + .line 117 │ move-object v1, v2 │ │ - .line 113 │ + .line 121 │ .end local v2 # "next":Lorg/jsoup/nodes/Element; │ :cond_0 │ if-nez v1, :cond_3 │ │ - .line 122 │ + .line 130 │ :cond_1 │ return-void │ │ - .line 106 │ + .line 114 │ .restart local v2 # "next":Lorg/jsoup/nodes/Element; │ :cond_2 │ add-int/lit8 v3, v3, -0x1 │ │ goto :goto_0 │ │ - .line 116 │ + .line 124 │ .end local v2 # "next":Lorg/jsoup/nodes/Element; │ :cond_3 │ iget-object v4, p0, Lorg/jsoup/parser/XmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v4}, Ljava/util/ArrayList;->size()I │ │ move-result v4 │ │ add-int/lit8 v3, v4, -0x1 │ │ :goto_1 │ if-ltz v3, :cond_1 │ │ - .line 117 │ + .line 125 │ iget-object v4, p0, Lorg/jsoup/parser/XmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v4, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Lorg/jsoup/nodes/Element; │ │ - .line 118 │ + .line 126 │ .restart local v2 # "next":Lorg/jsoup/nodes/Element; │ iget-object v4, p0, Lorg/jsoup/parser/XmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v4, v3}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object; │ │ - .line 119 │ + .line 127 │ if-eq v2, v1, :cond_1 │ │ - .line 116 │ + .line 124 │ add-int/lit8 v3, v3, -0x1 │ │ goto :goto_1 │ .end method │ │ │ # virtual methods │ -.method protected initialiseParse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;)V │ +.method defaultSettings()Lorg/jsoup/parser/ParseSettings; │ + .locals 1 │ + │ + .prologue │ + .line 18 │ + sget-object v0, Lorg/jsoup/parser/ParseSettings;->preserveCase:Lorg/jsoup/parser/ParseSettings; │ + │ + return-object v0 │ +.end method │ + │ +.method protected initialiseParse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;Lorg/jsoup/parser/ParseSettings;)V │ .locals 2 │ .param p1, "input" # Ljava/lang/String; │ .param p2, "baseUri" # Ljava/lang/String; │ .param p3, "errors" # Lorg/jsoup/parser/ParseErrorList; │ + .param p4, "settings" # Lorg/jsoup/parser/ParseSettings; │ │ .prologue │ - .line 19 │ - invoke-super {p0, p1, p2, p3}, Lorg/jsoup/parser/TreeBuilder;->initialiseParse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;)V │ + .line 27 │ + invoke-super {p0, p1, p2, p3, p4}, Lorg/jsoup/parser/TreeBuilder;->initialiseParse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;Lorg/jsoup/parser/ParseSettings;)V │ │ - .line 20 │ + .line 28 │ iget-object v0, p0, Lorg/jsoup/parser/XmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ iget-object v1, p0, Lorg/jsoup/parser/XmlTreeBuilder;->doc:Lorg/jsoup/nodes/Document; │ │ invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ - .line 21 │ + .line 29 │ iget-object v0, p0, Lorg/jsoup/parser/XmlTreeBuilder;->doc:Lorg/jsoup/nodes/Document; │ │ invoke-virtual {v0}, Lorg/jsoup/nodes/Document;->outputSettings()Lorg/jsoup/nodes/Document$OutputSettings; │ │ move-result-object v0 │ │ sget-object v1, Lorg/jsoup/nodes/Document$OutputSettings$Syntax;->xml:Lorg/jsoup/nodes/Document$OutputSettings$Syntax; │ │ invoke-virtual {v0, v1}, Lorg/jsoup/nodes/Document$OutputSettings;->syntax(Lorg/jsoup/nodes/Document$OutputSettings$Syntax;)Lorg/jsoup/nodes/Document$OutputSettings; │ │ - .line 22 │ + .line 30 │ return-void │ .end method │ │ .method insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ - .locals 4 │ + .locals 5 │ .param p1, "startTag" # Lorg/jsoup/parser/Token$StartTag; │ │ .prologue │ - .line 56 │ + .line 64 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ │ move-result-object v2 │ │ - invoke-static {v2}, Lorg/jsoup/parser/Tag;->valueOf(Ljava/lang/String;)Lorg/jsoup/parser/Tag; │ + iget-object v3, p0, Lorg/jsoup/parser/XmlTreeBuilder;->settings:Lorg/jsoup/parser/ParseSettings; │ + │ + invoke-static {v2, v3}, Lorg/jsoup/parser/Tag;->valueOf(Ljava/lang/String;Lorg/jsoup/parser/ParseSettings;)Lorg/jsoup/parser/Tag; │ │ move-result-object v1 │ │ - .line 58 │ + .line 66 │ .local v1, "tag":Lorg/jsoup/parser/Tag; │ new-instance v0, Lorg/jsoup/nodes/Element; │ │ iget-object v2, p0, Lorg/jsoup/parser/XmlTreeBuilder;->baseUri:Ljava/lang/String; │ │ - iget-object v3, p1, Lorg/jsoup/parser/Token$StartTag;->attributes:Lorg/jsoup/nodes/Attributes; │ + iget-object v3, p0, Lorg/jsoup/parser/XmlTreeBuilder;->settings:Lorg/jsoup/parser/ParseSettings; │ + │ + iget-object v4, p1, Lorg/jsoup/parser/Token$StartTag;->attributes:Lorg/jsoup/nodes/Attributes; │ + │ + invoke-virtual {v3, v4}, Lorg/jsoup/parser/ParseSettings;->normalizeAttributes(Lorg/jsoup/nodes/Attributes;)Lorg/jsoup/nodes/Attributes; │ + │ + move-result-object v3 │ │ invoke-direct {v0, v1, v2, v3}, Lorg/jsoup/nodes/Element;->(Lorg/jsoup/parser/Tag;Ljava/lang/String;Lorg/jsoup/nodes/Attributes;)V │ │ - .line 59 │ + .line 67 │ .local v0, "el":Lorg/jsoup/nodes/Element; │ invoke-direct {p0, v0}, Lorg/jsoup/parser/XmlTreeBuilder;->insertNode(Lorg/jsoup/nodes/Node;)V │ │ - .line 60 │ + .line 68 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token$StartTag;->isSelfClosing()Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - .line 61 │ + .line 69 │ iget-object v2, p0, Lorg/jsoup/parser/XmlTreeBuilder;->tokeniser:Lorg/jsoup/parser/Tokeniser; │ │ invoke-virtual {v2}, Lorg/jsoup/parser/Tokeniser;->acknowledgeSelfClosingFlag()V │ │ - .line 62 │ + .line 70 │ invoke-virtual {v1}, Lorg/jsoup/parser/Tag;->isKnownTag()Z │ │ move-result v2 │ │ if-nez v2, :cond_0 │ │ - .line 63 │ + .line 71 │ invoke-virtual {v1}, Lorg/jsoup/parser/Tag;->setSelfClosing()Lorg/jsoup/parser/Tag; │ │ - .line 67 │ + .line 75 │ :cond_0 │ :goto_0 │ return-object v0 │ │ - .line 65 │ + .line 73 │ :cond_1 │ iget-object v2, p0, Lorg/jsoup/parser/XmlTreeBuilder;->stack:Ljava/util/ArrayList; │ │ invoke-virtual {v2, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ goto :goto_0 │ .end method │ │ .method insert(Lorg/jsoup/parser/Token$Character;)V │ .locals 3 │ .param p1, "characterToken" # Lorg/jsoup/parser/Token$Character; │ │ .prologue │ - .line 87 │ + .line 95 │ new-instance v0, Lorg/jsoup/nodes/TextNode; │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token$Character;->getData()Ljava/lang/String; │ │ move-result-object v1 │ │ iget-object v2, p0, Lorg/jsoup/parser/XmlTreeBuilder;->baseUri:Ljava/lang/String; │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/nodes/TextNode;->(Ljava/lang/String;Ljava/lang/String;)V │ │ - .line 88 │ + .line 96 │ .local v0, "node":Lorg/jsoup/nodes/Node; │ invoke-direct {p0, v0}, Lorg/jsoup/parser/XmlTreeBuilder;->insertNode(Lorg/jsoup/nodes/Node;)V │ │ - .line 89 │ + .line 97 │ return-void │ .end method │ │ .method insert(Lorg/jsoup/parser/Token$Comment;)V │ .locals 8 │ .param p1, "commentToken" # Lorg/jsoup/parser/Token$Comment; │ │ .prologue │ const/4 v7, 0x1 │ │ - .line 71 │ + .line 79 │ new-instance v0, Lorg/jsoup/nodes/Comment; │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token$Comment;->getData()Ljava/lang/String; │ │ move-result-object v5 │ │ iget-object v6, p0, Lorg/jsoup/parser/XmlTreeBuilder;->baseUri:Ljava/lang/String; │ │ invoke-direct {v0, v5, v6}, Lorg/jsoup/nodes/Comment;->(Ljava/lang/String;Ljava/lang/String;)V │ │ - .line 72 │ + .line 80 │ .local v0, "comment":Lorg/jsoup/nodes/Comment; │ move-object v4, v0 │ │ - .line 73 │ + .line 81 │ .local v4, "insert":Lorg/jsoup/nodes/Node; │ iget-boolean v5, p1, Lorg/jsoup/parser/Token$Comment;->bogus:Z │ │ if-eqz v5, :cond_1 │ │ - .line 75 │ + .line 83 │ invoke-virtual {v0}, Lorg/jsoup/nodes/Comment;->getData()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 76 │ + .line 84 │ .local v1, "data":Ljava/lang/String; │ invoke-virtual {v1}, Ljava/lang/String;->length()I │ │ move-result v5 │ │ if-le v5, v7, :cond_1 │ │ @@ -312,15 +330,15 @@ │ │ invoke-virtual {v1, v5}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_1 │ │ - .line 77 │ + .line 85 │ :cond_0 │ new-instance v5, Ljava/lang/StringBuilder; │ │ invoke-direct {v5}, Ljava/lang/StringBuilder;->()V │ │ const-string v6, "<" │ │ @@ -358,153 +376,191 @@ │ │ move-result-object v7 │ │ invoke-static {v5, v6, v7}, Lorg/jsoup/Jsoup;->parse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/Parser;)Lorg/jsoup/nodes/Document; │ │ move-result-object v2 │ │ - .line 78 │ + .line 86 │ .local v2, "doc":Lorg/jsoup/nodes/Document; │ const/4 v5, 0x0 │ │ invoke-virtual {v2, v5}, Lorg/jsoup/nodes/Document;->child(I)Lorg/jsoup/nodes/Element; │ │ move-result-object v3 │ │ - .line 79 │ + .line 87 │ .local v3, "el":Lorg/jsoup/nodes/Element; │ new-instance v4, Lorg/jsoup/nodes/XmlDeclaration; │ │ .end local v4 # "insert":Lorg/jsoup/nodes/Node; │ + iget-object v5, p0, Lorg/jsoup/parser/XmlTreeBuilder;->settings:Lorg/jsoup/parser/ParseSettings; │ + │ invoke-virtual {v3}, Lorg/jsoup/nodes/Element;->tagName()Ljava/lang/String; │ │ + move-result-object v6 │ + │ + invoke-virtual {v5, v6}, Lorg/jsoup/parser/ParseSettings;->normalizeTag(Ljava/lang/String;)Ljava/lang/String; │ + │ move-result-object v5 │ │ invoke-virtual {v0}, Lorg/jsoup/nodes/Comment;->baseUri()Ljava/lang/String; │ │ move-result-object v6 │ │ const-string v7, "!" │ │ invoke-virtual {v1, v7}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z │ │ move-result v7 │ │ invoke-direct {v4, v5, v6, v7}, Lorg/jsoup/nodes/XmlDeclaration;->(Ljava/lang/String;Ljava/lang/String;Z)V │ │ - .line 80 │ + .line 88 │ .restart local v4 # "insert":Lorg/jsoup/nodes/Node; │ invoke-virtual {v4}, Lorg/jsoup/nodes/Node;->attributes()Lorg/jsoup/nodes/Attributes; │ │ move-result-object v5 │ │ invoke-virtual {v3}, Lorg/jsoup/nodes/Element;->attributes()Lorg/jsoup/nodes/Attributes; │ │ move-result-object v6 │ │ invoke-virtual {v5, v6}, Lorg/jsoup/nodes/Attributes;->addAll(Lorg/jsoup/nodes/Attributes;)V │ │ - .line 83 │ + .line 91 │ .end local v1 # "data":Ljava/lang/String; │ .end local v2 # "doc":Lorg/jsoup/nodes/Document; │ .end local v3 # "el":Lorg/jsoup/nodes/Element; │ :cond_1 │ invoke-direct {p0, v4}, Lorg/jsoup/parser/XmlTreeBuilder;->insertNode(Lorg/jsoup/nodes/Node;)V │ │ - .line 84 │ + .line 92 │ return-void │ .end method │ │ .method insert(Lorg/jsoup/parser/Token$Doctype;)V │ - .locals 5 │ + .locals 6 │ .param p1, "d" # Lorg/jsoup/parser/Token$Doctype; │ │ .prologue │ - .line 92 │ + .line 100 │ new-instance v0, Lorg/jsoup/nodes/DocumentType; │ │ + iget-object v1, p0, Lorg/jsoup/parser/XmlTreeBuilder;->settings:Lorg/jsoup/parser/ParseSettings; │ + │ invoke-virtual {p1}, Lorg/jsoup/parser/Token$Doctype;->getName()Ljava/lang/String; │ │ + move-result-object v2 │ + │ + invoke-virtual {v1, v2}, Lorg/jsoup/parser/ParseSettings;->normalizeTag(Ljava/lang/String;)Ljava/lang/String; │ + │ move-result-object v1 │ │ - invoke-virtual {p1}, Lorg/jsoup/parser/Token$Doctype;->getPublicIdentifier()Ljava/lang/String; │ + invoke-virtual {p1}, Lorg/jsoup/parser/Token$Doctype;->getPubSysKey()Ljava/lang/String; │ │ move-result-object v2 │ │ - invoke-virtual {p1}, Lorg/jsoup/parser/Token$Doctype;->getSystemIdentifier()Ljava/lang/String; │ + invoke-virtual {p1}, Lorg/jsoup/parser/Token$Doctype;->getPublicIdentifier()Ljava/lang/String; │ │ move-result-object v3 │ │ - iget-object v4, p0, Lorg/jsoup/parser/XmlTreeBuilder;->baseUri:Ljava/lang/String; │ + invoke-virtual {p1}, Lorg/jsoup/parser/Token$Doctype;->getSystemIdentifier()Ljava/lang/String; │ + │ + move-result-object v4 │ + │ + iget-object v5, p0, Lorg/jsoup/parser/XmlTreeBuilder;->baseUri:Ljava/lang/String; │ │ - invoke-direct {v0, v1, v2, v3, v4}, Lorg/jsoup/nodes/DocumentType;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ + invoke-direct/range {v0 .. v5}, Lorg/jsoup/nodes/DocumentType;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ - .line 93 │ + .line 101 │ .local v0, "doctypeNode":Lorg/jsoup/nodes/DocumentType; │ invoke-direct {p0, v0}, Lorg/jsoup/parser/XmlTreeBuilder;->insertNode(Lorg/jsoup/nodes/Node;)V │ │ - .line 94 │ + .line 102 │ return-void │ .end method │ │ -.method parseFragment(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;)Ljava/util/List; │ +.method parse(Ljava/lang/String;Ljava/lang/String;)Lorg/jsoup/nodes/Document; │ + .locals 2 │ + .param p1, "input" # Ljava/lang/String; │ + .param p2, "baseUri" # Ljava/lang/String; │ + │ + .prologue │ + .line 22 │ + invoke-static {}, Lorg/jsoup/parser/ParseErrorList;->noTracking()Lorg/jsoup/parser/ParseErrorList; │ + │ + move-result-object v0 │ + │ + sget-object v1, Lorg/jsoup/parser/ParseSettings;->preserveCase:Lorg/jsoup/parser/ParseSettings; │ + │ + invoke-virtual {p0, p1, p2, v0, v1}, Lorg/jsoup/parser/XmlTreeBuilder;->parse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;Lorg/jsoup/parser/ParseSettings;)Lorg/jsoup/nodes/Document; │ + │ + move-result-object v0 │ + │ + return-object v0 │ +.end method │ + │ +.method parseFragment(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;Lorg/jsoup/parser/ParseSettings;)Ljava/util/List; │ .locals 1 │ .param p1, "inputFragment" # Ljava/lang/String; │ .param p2, "baseUri" # Ljava/lang/String; │ .param p3, "errors" # Lorg/jsoup/parser/ParseErrorList; │ + .param p4, "settings" # Lorg/jsoup/parser/ParseSettings; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Ljava/lang/String;", │ "Ljava/lang/String;", │ "Lorg/jsoup/parser/ParseErrorList;", │ + "Lorg/jsoup/parser/ParseSettings;", │ ")", │ "Ljava/util/List", │ "<", │ "Lorg/jsoup/nodes/Node;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 125 │ - invoke-virtual {p0, p1, p2, p3}, Lorg/jsoup/parser/XmlTreeBuilder;->initialiseParse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;)V │ + .line 133 │ + invoke-virtual {p0, p1, p2, p3, p4}, Lorg/jsoup/parser/XmlTreeBuilder;->initialiseParse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;Lorg/jsoup/parser/ParseSettings;)V │ │ - .line 126 │ + .line 134 │ invoke-virtual {p0}, Lorg/jsoup/parser/XmlTreeBuilder;->runParser()V │ │ - .line 127 │ + .line 135 │ iget-object v0, p0, Lorg/jsoup/parser/XmlTreeBuilder;->doc:Lorg/jsoup/nodes/Document; │ │ invoke-virtual {v0}, Lorg/jsoup/nodes/Document;->childNodes()Ljava/util/List; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method protected process(Lorg/jsoup/parser/Token;)Z │ .locals 2 │ .param p1, "token" # Lorg/jsoup/parser/Token; │ │ .prologue │ - .line 27 │ + .line 35 │ sget-object v0, Lorg/jsoup/parser/XmlTreeBuilder$1;->$SwitchMap$org$jsoup$parser$Token$TokenType:[I │ │ iget-object v1, p1, Lorg/jsoup/parser/Token;->type:Lorg/jsoup/parser/Token$TokenType; │ │ invoke-virtual {v1}, Lorg/jsoup/parser/Token$TokenType;->ordinal()I │ │ move-result v1 │ │ aget v0, v0, v1 │ │ packed-switch v0, :pswitch_data_0 │ │ - .line 46 │ + .line 54 │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ const-string v1, "Unexpected token type: " │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ @@ -519,72 +575,72 @@ │ │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ invoke-static {v0}, Lorg/jsoup/helper/Validate;->fail(Ljava/lang/String;)V │ │ - .line 48 │ + .line 56 │ :goto_0 │ :pswitch_0 │ const/4 v0, 0x1 │ │ return v0 │ │ - .line 29 │ + .line 37 │ :pswitch_1 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v0 │ │ invoke-virtual {p0, v0}, Lorg/jsoup/parser/XmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ goto :goto_0 │ │ - .line 32 │ + .line 40 │ :pswitch_2 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asEndTag()Lorg/jsoup/parser/Token$EndTag; │ │ move-result-object v0 │ │ invoke-direct {p0, v0}, Lorg/jsoup/parser/XmlTreeBuilder;->popStackToClose(Lorg/jsoup/parser/Token$EndTag;)V │ │ goto :goto_0 │ │ - .line 35 │ + .line 43 │ :pswitch_3 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asComment()Lorg/jsoup/parser/Token$Comment; │ │ move-result-object v0 │ │ invoke-virtual {p0, v0}, Lorg/jsoup/parser/XmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Comment;)V │ │ goto :goto_0 │ │ - .line 38 │ + .line 46 │ :pswitch_4 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asCharacter()Lorg/jsoup/parser/Token$Character; │ │ move-result-object v0 │ │ invoke-virtual {p0, v0}, Lorg/jsoup/parser/XmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Character;)V │ │ goto :goto_0 │ │ - .line 41 │ + .line 49 │ :pswitch_5 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asDoctype()Lorg/jsoup/parser/Token$Doctype; │ │ move-result-object v0 │ │ invoke-virtual {p0, v0}, Lorg/jsoup/parser/XmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Doctype;)V │ │ goto :goto_0 │ │ - .line 27 │ + .line 35 │ nop │ │ :pswitch_data_0 │ .packed-switch 0x1 │ :pswitch_1 │ :pswitch_2 │ :pswitch_3 ├── smali/org/jsoup/parser/TokeniserState$43.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 887 │ + .line 890 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,43 +31,43 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 891 │ + .line 894 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->unconsume()V │ │ - .line 892 │ + .line 895 │ new-instance v0, Lorg/jsoup/parser/Token$Comment; │ │ invoke-direct {v0}, Lorg/jsoup/parser/Token$Comment;->()V │ │ - .line 893 │ + .line 896 │ .local v0, "comment":Lorg/jsoup/parser/Token$Comment; │ const/4 v1, 0x1 │ │ iput-boolean v1, v0, Lorg/jsoup/parser/Token$Comment;->bogus:Z │ │ - .line 894 │ + .line 897 │ iget-object v1, v0, Lorg/jsoup/parser/Token$Comment;->data:Ljava/lang/StringBuilder; │ │ const/16 v2, 0x3e │ │ invoke-virtual {p2, v2}, Lorg/jsoup/parser/CharacterReader;->consumeTo(C)Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - .line 896 │ + .line 899 │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(Lorg/jsoup/parser/Token;)V │ │ - .line 897 │ + .line 900 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$43;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 898 │ + .line 901 │ return-void │ .end method ├── smali/org/jsoup/parser/TokeniserState$8.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 97 │ + .line 99 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,83 +31,83 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 1 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 100 │ + .line 102 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->current()C │ │ move-result v0 │ │ sparse-switch v0, :sswitch_data_0 │ │ - .line 111 │ + .line 113 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->matchesLetter()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 112 │ + .line 114 │ const/4 v0, 0x1 │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->createTagPending(Z)Lorg/jsoup/parser/Token$Tag; │ │ - .line 113 │ + .line 115 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$8;->TagName:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 121 │ + .line 123 │ :goto_0 │ return-void │ │ - .line 102 │ + .line 104 │ :sswitch_0 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$8;->MarkupDeclarationOpen:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 105 │ + .line 107 │ :sswitch_1 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$8;->EndTagOpen:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 108 │ + .line 110 │ :sswitch_2 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$8;->BogusComment:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 115 │ + .line 117 │ :cond_0 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 116 │ + .line 118 │ const/16 v0, 0x3c │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ - .line 117 │ + .line 119 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$8;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 100 │ + .line 102 │ nop │ │ :sswitch_data_0 │ .sparse-switch │ 0x21 -> :sswitch_0 │ 0x2f -> :sswitch_1 │ 0x3f -> :sswitch_2 ├── smali/org/jsoup/parser/TokeniserState$26.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 423 │ + .line 425 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,63 +31,59 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 425 │ + .line 427 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->matchesLetter()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 426 │ + .line 428 │ const/4 v0, 0x0 │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->createTagPending(Z)Lorg/jsoup/parser/Token$Tag; │ │ - .line 427 │ + .line 429 │ iget-object v0, p1, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->current()C │ │ move-result v1 │ │ - invoke-static {v1}, Ljava/lang/Character;->toLowerCase(C)C │ - │ - move-result v1 │ - │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/Token$Tag;->appendTagName(C)V │ │ - .line 428 │ + .line 430 │ iget-object v0, p1, Lorg/jsoup/parser/Tokeniser;->dataBuffer:Ljava/lang/StringBuilder; │ │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->current()C │ │ move-result v1 │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 429 │ + .line 431 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$26;->ScriptDataEscapedEndTagName:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 434 │ + .line 436 │ :goto_0 │ return-void │ │ - .line 431 │ + .line 433 │ :cond_0 │ const-string v0, "emit(Ljava/lang/String;)V │ │ - .line 432 │ + .line 434 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$26;->ScriptDataEscaped:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ .end method ├── smali/org/jsoup/parser/TokeniserState$53.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1142 │ + .line 1145 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,118 +31,114 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 4 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 1144 │ + .line 1147 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->matchesLetter()Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ - .line 1145 │ + .line 1148 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consumeLetterSequence()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 1146 │ + .line 1149 │ .local v1, "name":Ljava/lang/String; │ iget-object v2, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iget-object v2, v2, Lorg/jsoup/parser/Token$Doctype;->name:Ljava/lang/StringBuilder; │ │ - invoke-virtual {v1}, Ljava/lang/String;->toLowerCase()Ljava/lang/String; │ - │ - move-result-object v3 │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - .line 1175 │ + .line 1178 │ .end local v1 # "name":Ljava/lang/String; │ :goto_0 │ return-void │ │ - .line 1149 │ + .line 1152 │ :cond_0 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 1150 │ + .line 1153 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 1173 │ + .line 1176 │ iget-object v2, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iget-object v2, v2, Lorg/jsoup/parser/Token$Doctype;->name:Ljava/lang/StringBuilder; │ │ invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ goto :goto_0 │ │ - .line 1152 │ + .line 1155 │ :sswitch_0 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1153 │ + .line 1156 │ sget-object v2, Lorg/jsoup/parser/TokeniserState$53;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v2}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1160 │ + .line 1163 │ :sswitch_1 │ sget-object v2, Lorg/jsoup/parser/TokeniserState$53;->AfterDoctypeName:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v2}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1163 │ + .line 1166 │ :sswitch_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1164 │ + .line 1167 │ iget-object v2, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iget-object v2, v2, Lorg/jsoup/parser/Token$Doctype;->name:Ljava/lang/StringBuilder; │ │ const v3, 0xfffd │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ goto :goto_0 │ │ - .line 1167 │ + .line 1170 │ :sswitch_3 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1168 │ + .line 1171 │ iget-object v2, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ const/4 v3, 0x1 │ │ iput-boolean v3, v2, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1169 │ + .line 1172 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1170 │ + .line 1173 │ sget-object v2, Lorg/jsoup/parser/TokeniserState$53;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v2}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1150 │ + .line 1153 │ nop │ │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_2 │ 0x9 -> :sswitch_1 │ 0xa -> :sswitch_1 ├── smali/org/jsoup/parser/Token$TokenType.smali │ @@ -50,71 +50,71 @@ │ │ const/4 v5, 0x2 │ │ const/4 v4, 0x1 │ │ const/4 v3, 0x0 │ │ - .line 343 │ + .line 371 │ new-instance v0, Lorg/jsoup/parser/Token$TokenType; │ │ const-string v1, "Doctype" │ │ invoke-direct {v0, v1, v3}, Lorg/jsoup/parser/Token$TokenType;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/Token$TokenType;->Doctype:Lorg/jsoup/parser/Token$TokenType; │ │ - .line 344 │ + .line 372 │ new-instance v0, Lorg/jsoup/parser/Token$TokenType; │ │ const-string v1, "StartTag" │ │ invoke-direct {v0, v1, v4}, Lorg/jsoup/parser/Token$TokenType;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/Token$TokenType;->StartTag:Lorg/jsoup/parser/Token$TokenType; │ │ - .line 345 │ + .line 373 │ new-instance v0, Lorg/jsoup/parser/Token$TokenType; │ │ const-string v1, "EndTag" │ │ invoke-direct {v0, v1, v5}, Lorg/jsoup/parser/Token$TokenType;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/Token$TokenType;->EndTag:Lorg/jsoup/parser/Token$TokenType; │ │ - .line 346 │ + .line 374 │ new-instance v0, Lorg/jsoup/parser/Token$TokenType; │ │ const-string v1, "Comment" │ │ invoke-direct {v0, v1, v6}, Lorg/jsoup/parser/Token$TokenType;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/Token$TokenType;->Comment:Lorg/jsoup/parser/Token$TokenType; │ │ - .line 347 │ + .line 375 │ new-instance v0, Lorg/jsoup/parser/Token$TokenType; │ │ const-string v1, "Character" │ │ invoke-direct {v0, v1, v7}, Lorg/jsoup/parser/Token$TokenType;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/Token$TokenType;->Character:Lorg/jsoup/parser/Token$TokenType; │ │ - .line 348 │ + .line 376 │ new-instance v0, Lorg/jsoup/parser/Token$TokenType; │ │ const-string v1, "EOF" │ │ const/4 v2, 0x5 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/Token$TokenType;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/Token$TokenType;->EOF:Lorg/jsoup/parser/Token$TokenType; │ │ - .line 342 │ + .line 370 │ const/4 v0, 0x6 │ │ new-array v0, v0, [Lorg/jsoup/parser/Token$TokenType; │ │ sget-object v1, Lorg/jsoup/parser/Token$TokenType;->Doctype:Lorg/jsoup/parser/Token$TokenType; │ │ aput-object v1, v0, v3 │ @@ -151,26 +151,26 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()V" │ } │ .end annotation │ │ .prologue │ - .line 342 │ + .line 370 │ invoke-direct {p0, p1, p2}, Ljava/lang/Enum;->(Ljava/lang/String;I)V │ │ return-void │ .end method │ │ .method public static valueOf(Ljava/lang/String;)Lorg/jsoup/parser/Token$TokenType; │ .locals 1 │ .param p0, "name" # Ljava/lang/String; │ │ .prologue │ - .line 342 │ + .line 370 │ const-class v0, Lorg/jsoup/parser/Token$TokenType; │ │ invoke-static {v0, p0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum; │ │ move-result-object v0 │ │ check-cast v0, Lorg/jsoup/parser/Token$TokenType; │ @@ -178,15 +178,15 @@ │ return-object v0 │ .end method │ │ .method public static values()[Lorg/jsoup/parser/Token$TokenType; │ .locals 1 │ │ .prologue │ - .line 342 │ + .line 370 │ sget-object v0, Lorg/jsoup/parser/Token$TokenType;->$VALUES:[Lorg/jsoup/parser/Token$TokenType; │ │ invoke-virtual {v0}, [Lorg/jsoup/parser/Token$TokenType;->clone()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, [Lorg/jsoup/parser/Token$TokenType; ├── smali/org/jsoup/parser/HtmlTreeBuilderState$4.smali │ @@ -15,34 +15,34 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 92 │ + .line 93 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->(Ljava/lang/String;ILorg/jsoup/parser/HtmlTreeBuilderState$1;)V │ │ return-void │ .end method │ │ .method private anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/TreeBuilder;)Z │ .locals 1 │ .param p1, "t" # Lorg/jsoup/parser/Token; │ .param p2, "tb" # Lorg/jsoup/parser/TreeBuilder; │ │ .prologue │ - .line 160 │ + .line 161 │ const-string v0, "head" │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/TreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 161 │ + .line 162 │ invoke-virtual {p2, p1}, Lorg/jsoup/parser/TreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v0 │ │ return v0 │ .end method │ │ @@ -58,105 +58,105 @@ │ │ const/4 v9, 0x2 │ │ const/4 v4, 0x1 │ │ const/4 v5, 0x0 │ │ - .line 94 │ + .line 95 │ invoke-static {p1}, Lorg/jsoup/parser/HtmlTreeBuilderState;->access$100(Lorg/jsoup/parser/Token;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_1 │ │ - .line 95 │ + .line 96 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asCharacter()Lorg/jsoup/parser/Token$Character; │ │ move-result-object v5 │ │ invoke-virtual {p2, v5}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Character;)V │ │ - .line 156 │ + .line 157 │ :cond_0 │ :goto_0 │ return v4 │ │ - .line 98 │ + .line 99 │ :cond_1 │ sget-object v6, Lorg/jsoup/parser/HtmlTreeBuilderState$24;->$SwitchMap$org$jsoup$parser$Token$TokenType:[I │ │ iget-object v7, p1, Lorg/jsoup/parser/Token;->type:Lorg/jsoup/parser/Token$TokenType; │ │ invoke-virtual {v7}, Lorg/jsoup/parser/Token$TokenType;->ordinal()I │ │ move-result v7 │ │ aget v6, v6, v7 │ │ packed-switch v6, :pswitch_data_0 │ │ - .line 154 │ + .line 155 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$4;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/TreeBuilder;)Z │ │ move-result v4 │ │ goto :goto_0 │ │ - .line 100 │ + .line 101 │ :pswitch_0 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asComment()Lorg/jsoup/parser/Token$Comment; │ │ move-result-object v5 │ │ invoke-virtual {p2, v5}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Comment;)V │ │ goto :goto_0 │ │ - .line 103 │ + .line 104 │ :pswitch_1 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ move v4, v5 │ │ - .line 104 │ + .line 105 │ goto :goto_0 │ │ - .line 106 │ + .line 107 │ :pswitch_2 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v3 │ │ - .line 107 │ + .line 108 │ .local v3, "start":Lorg/jsoup/parser/Token$StartTag; │ - invoke-virtual {v3}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ + invoke-virtual {v3}, Lorg/jsoup/parser/Token$StartTag;->normalName()Ljava/lang/String; │ │ move-result-object v2 │ │ - .line 108 │ + .line 109 │ .local v2, "name":Ljava/lang/String; │ const-string v6, "html" │ │ invoke-virtual {v2, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_2 │ │ - .line 109 │ + .line 110 │ sget-object v4, Lorg/jsoup/parser/HtmlTreeBuilderState$4;->InBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {v4, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v4 │ │ goto :goto_0 │ │ - .line 110 │ + .line 111 │ :cond_2 │ const/4 v6, 0x5 │ │ new-array v6, v6, [Ljava/lang/String; │ │ const-string v7, "base" │ │ @@ -182,20 +182,20 @@ │ │ invoke-static {v2, v6}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_3 │ │ - .line 111 │ + .line 112 │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertEmpty(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ move-result-object v0 │ │ - .line 113 │ + .line 114 │ .local v0, "el":Lorg/jsoup/nodes/Element; │ const-string v5, "base" │ │ invoke-virtual {v2, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v5 │ │ @@ -205,51 +205,51 @@ │ │ invoke-virtual {v0, v5}, Lorg/jsoup/nodes/Element;->hasAttr(Ljava/lang/String;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_0 │ │ - .line 114 │ + .line 115 │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->maybeSetBaseUri(Lorg/jsoup/nodes/Element;)V │ │ goto :goto_0 │ │ - .line 115 │ + .line 116 │ .end local v0 # "el":Lorg/jsoup/nodes/Element; │ :cond_3 │ const-string v6, "meta" │ │ invoke-virtual {v2, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_4 │ │ - .line 116 │ + .line 117 │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertEmpty(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ goto :goto_0 │ │ - .line 118 │ + .line 119 │ :cond_4 │ const-string v6, "title" │ │ invoke-virtual {v2, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_5 │ │ - .line 119 │ + .line 120 │ invoke-static {v3, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState;->access$200(Lorg/jsoup/parser/Token$StartTag;Lorg/jsoup/parser/HtmlTreeBuilder;)V │ │ goto/16 :goto_0 │ │ - .line 120 │ + .line 121 │ :cond_5 │ new-array v6, v9, [Ljava/lang/String; │ │ const-string v7, "noframes" │ │ aput-object v7, v6, v5 │ │ @@ -259,130 +259,130 @@ │ │ invoke-static {v2, v6}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_6 │ │ - .line 121 │ + .line 122 │ invoke-static {v3, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState;->access$300(Lorg/jsoup/parser/Token$StartTag;Lorg/jsoup/parser/HtmlTreeBuilder;)V │ │ goto/16 :goto_0 │ │ - .line 122 │ + .line 123 │ :cond_6 │ const-string v6, "noscript" │ │ invoke-virtual {v2, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_7 │ │ - .line 124 │ + .line 125 │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ - .line 125 │ + .line 126 │ sget-object v5, Lorg/jsoup/parser/HtmlTreeBuilderState$4;->InHeadNoscript:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v5}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_0 │ │ - .line 126 │ + .line 127 │ :cond_7 │ const-string v6, "script" │ │ invoke-virtual {v2, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_8 │ │ - .line 129 │ + .line 130 │ iget-object v5, p2, Lorg/jsoup/parser/HtmlTreeBuilder;->tokeniser:Lorg/jsoup/parser/Tokeniser; │ │ sget-object v6, Lorg/jsoup/parser/TokeniserState;->ScriptData:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {v5, v6}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 130 │ + .line 131 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->markInsertionMode()V │ │ - .line 131 │ + .line 132 │ sget-object v5, Lorg/jsoup/parser/HtmlTreeBuilderState$4;->Text:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v5}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 132 │ + .line 133 │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ goto/16 :goto_0 │ │ - .line 133 │ + .line 134 │ :cond_8 │ const-string v4, "head" │ │ invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_9 │ │ - .line 134 │ + .line 135 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ move v4, v5 │ │ - .line 135 │ + .line 136 │ goto/16 :goto_0 │ │ - .line 137 │ + .line 138 │ :cond_9 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$4;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/TreeBuilder;)Z │ │ move-result v4 │ │ goto/16 :goto_0 │ │ - .line 141 │ + .line 142 │ .end local v2 # "name":Ljava/lang/String; │ .end local v3 # "start":Lorg/jsoup/parser/Token$StartTag; │ :pswitch_3 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asEndTag()Lorg/jsoup/parser/Token$EndTag; │ │ move-result-object v1 │ │ - .line 142 │ + .line 143 │ .local v1, "end":Lorg/jsoup/parser/Token$EndTag; │ - invoke-virtual {v1}, Lorg/jsoup/parser/Token$EndTag;->name()Ljava/lang/String; │ + invoke-virtual {v1}, Lorg/jsoup/parser/Token$EndTag;->normalName()Ljava/lang/String; │ │ move-result-object v2 │ │ - .line 143 │ + .line 144 │ .restart local v2 # "name":Ljava/lang/String; │ const-string v6, "head" │ │ invoke-virtual {v2, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_a │ │ - .line 144 │ + .line 145 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->pop()Lorg/jsoup/nodes/Element; │ │ - .line 145 │ + .line 146 │ sget-object v5, Lorg/jsoup/parser/HtmlTreeBuilderState$4;->AfterHead:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v5}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_0 │ │ - .line 146 │ + .line 147 │ :cond_a │ new-array v6, v8, [Ljava/lang/String; │ │ const-string v7, "body" │ │ aput-object v7, v6, v5 │ │ @@ -396,31 +396,31 @@ │ │ invoke-static {v2, v6}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_b │ │ - .line 147 │ + .line 148 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$4;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/TreeBuilder;)Z │ │ move-result v4 │ │ goto/16 :goto_0 │ │ - .line 149 │ + .line 150 │ :cond_b │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ move v4, v5 │ │ - .line 150 │ + .line 151 │ goto/16 :goto_0 │ │ - .line 98 │ + .line 99 │ :pswitch_data_0 │ .packed-switch 0x1 │ :pswitch_0 │ :pswitch_1 │ :pswitch_2 │ :pswitch_3 │ .end packed-switch ├── smali/org/jsoup/parser/HtmlTreeBuilderState$3.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 64 │ + .line 65 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->(Ljava/lang/String;ILorg/jsoup/parser/HtmlTreeBuilderState$1;)V │ │ return-void │ .end method │ │ @@ -35,149 +35,149 @@ │ .param p2, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ const/4 v1, 0x1 │ │ const/4 v2, 0x0 │ │ - .line 66 │ + .line 67 │ invoke-static {p1}, Lorg/jsoup/parser/HtmlTreeBuilderState;->access$100(Lorg/jsoup/parser/Token;)Z │ │ move-result v3 │ │ if-eqz v3, :cond_0 │ │ - .line 89 │ + .line 90 │ :goto_0 │ return v1 │ │ - .line 68 │ + .line 69 │ :cond_0 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isComment()Z │ │ move-result v3 │ │ if-eqz v3, :cond_1 │ │ - .line 69 │ + .line 70 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asComment()Lorg/jsoup/parser/Token$Comment; │ │ move-result-object v2 │ │ invoke-virtual {p2, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Comment;)V │ │ goto :goto_0 │ │ - .line 70 │ + .line 71 │ :cond_1 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isDoctype()Z │ │ move-result v3 │ │ if-eqz v3, :cond_2 │ │ - .line 71 │ + .line 72 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ move v1, v2 │ │ - .line 72 │ + .line 73 │ goto :goto_0 │ │ - .line 73 │ + .line 74 │ :cond_2 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isStartTag()Z │ │ move-result v3 │ │ if-eqz v3, :cond_3 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v3 │ │ - invoke-virtual {v3}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ + invoke-virtual {v3}, Lorg/jsoup/parser/Token$StartTag;->normalName()Ljava/lang/String; │ │ move-result-object v3 │ │ const-string v4, "html" │ │ invoke-virtual {v3, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v3 │ │ if-eqz v3, :cond_3 │ │ - .line 74 │ + .line 75 │ sget-object v1, Lorg/jsoup/parser/HtmlTreeBuilderState$3;->InBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {v1, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v1 │ │ goto :goto_0 │ │ - .line 75 │ + .line 76 │ :cond_3 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isStartTag()Z │ │ move-result v3 │ │ if-eqz v3, :cond_4 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v3 │ │ - invoke-virtual {v3}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ + invoke-virtual {v3}, Lorg/jsoup/parser/Token$StartTag;->normalName()Ljava/lang/String; │ │ move-result-object v3 │ │ const-string v4, "head" │ │ invoke-virtual {v3, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v3 │ │ if-eqz v3, :cond_4 │ │ - .line 76 │ + .line 77 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v2 │ │ invoke-virtual {p2, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ move-result-object v0 │ │ - .line 77 │ + .line 78 │ .local v0, "head":Lorg/jsoup/nodes/Element; │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->setHeadElement(Lorg/jsoup/nodes/Element;)V │ │ - .line 78 │ + .line 79 │ sget-object v2, Lorg/jsoup/parser/HtmlTreeBuilderState$3;->InHead:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_0 │ │ - .line 79 │ + .line 80 │ .end local v0 # "head":Lorg/jsoup/nodes/Element; │ :cond_4 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEndTag()Z │ │ move-result v3 │ │ if-eqz v3, :cond_5 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asEndTag()Lorg/jsoup/parser/Token$EndTag; │ │ move-result-object v3 │ │ - invoke-virtual {v3}, Lorg/jsoup/parser/Token$EndTag;->name()Ljava/lang/String; │ + invoke-virtual {v3}, Lorg/jsoup/parser/Token$EndTag;->normalName()Ljava/lang/String; │ │ move-result-object v3 │ │ const/4 v4, 0x4 │ │ new-array v4, v4, [Ljava/lang/String; │ │ @@ -203,48 +203,48 @@ │ │ invoke-static {v3, v4}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_5 │ │ - .line 80 │ + .line 81 │ const-string v1, "head" │ │ invoke-virtual {p2, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processStartTag(Ljava/lang/String;)Z │ │ - .line 81 │ + .line 82 │ invoke-virtual {p2, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v1 │ │ goto/16 :goto_0 │ │ - .line 82 │ + .line 83 │ :cond_5 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEndTag()Z │ │ move-result v1 │ │ if-eqz v1, :cond_6 │ │ - .line 83 │ + .line 84 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ move v1, v2 │ │ - .line 84 │ + .line 85 │ goto/16 :goto_0 │ │ - .line 86 │ + .line 87 │ :cond_6 │ const-string v1, "head" │ │ invoke-virtual {p2, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processStartTag(Ljava/lang/String;)Z │ │ - .line 87 │ + .line 88 │ invoke-virtual {p2, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v1 │ │ goto/16 :goto_0 │ .end method ├── smali/org/jsoup/parser/TokeniserState$23.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 348 │ + .line 350 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,89 +31,89 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 350 │ + .line 352 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->isEmpty()Z │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ - .line 351 │ + .line 353 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 352 │ + .line 354 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$23;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 374 │ + .line 376 │ :goto_0 │ return-void │ │ - .line 356 │ + .line 358 │ :cond_0 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 357 │ + .line 359 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 371 │ + .line 373 │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ - .line 372 │ + .line 374 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$23;->ScriptDataEscaped:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 359 │ + .line 361 │ :sswitch_0 │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ - .line 360 │ + .line 362 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$23;->ScriptDataEscapedDashDash:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 363 │ + .line 365 │ :sswitch_1 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$23;->ScriptDataEscapedLessthanSign:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 366 │ + .line 368 │ :sswitch_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 367 │ + .line 369 │ const v1, 0xfffd │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ - .line 368 │ + .line 370 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$23;->ScriptDataEscaped:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 357 │ + .line 359 │ nop │ │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_2 │ 0x2d -> :sswitch_0 │ 0x3c -> :sswitch_1 ├── smali/org/jsoup/parser/HtmlTreeBuilderState$1.smali │ @@ -26,124 +26,141 @@ │ │ return-void │ .end method │ │ │ # virtual methods │ .method process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ - .locals 7 │ + .locals 8 │ .param p1, "t" # Lorg/jsoup/parser/Token; │ .param p2, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ - const/4 v2, 0x1 │ + const/4 v7, 0x1 │ │ .line 14 │ invoke-static {p1}, Lorg/jsoup/parser/HtmlTreeBuilderState;->access$100(Lorg/jsoup/parser/Token;)Z │ │ - move-result v3 │ + move-result v1 │ │ - if-eqz v3, :cond_0 │ + if-eqz v1, :cond_0 │ │ - .line 32 │ + move v1, v7 │ + │ + .line 33 │ :goto_0 │ - return v2 │ + return v1 │ │ .line 16 │ :cond_0 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isComment()Z │ │ - move-result v3 │ + move-result v1 │ │ - if-eqz v3, :cond_1 │ + if-eqz v1, :cond_1 │ │ .line 17 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asComment()Lorg/jsoup/parser/Token$Comment; │ │ - move-result-object v3 │ + move-result-object v1 │ │ - invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Comment;)V │ + invoke-virtual {p2, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Comment;)V │ │ + :goto_1 │ + move v1, v7 │ + │ + .line 33 │ goto :goto_0 │ │ .line 18 │ :cond_1 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isDoctype()Z │ │ - move-result v3 │ + move-result v1 │ │ - if-eqz v3, :cond_3 │ + if-eqz v1, :cond_3 │ │ .line 21 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asDoctype()Lorg/jsoup/parser/Token$Doctype; │ │ - move-result-object v0 │ + move-result-object v6 │ │ .line 22 │ - .local v0, "d":Lorg/jsoup/parser/Token$Doctype; │ - new-instance v1, Lorg/jsoup/nodes/DocumentType; │ + .local v6, "d":Lorg/jsoup/parser/Token$Doctype; │ + new-instance v0, Lorg/jsoup/nodes/DocumentType; │ │ - invoke-virtual {v0}, Lorg/jsoup/parser/Token$Doctype;->getName()Ljava/lang/String; │ + iget-object v1, p2, Lorg/jsoup/parser/HtmlTreeBuilder;->settings:Lorg/jsoup/parser/ParseSettings; │ │ - move-result-object v3 │ + .line 23 │ + invoke-virtual {v6}, Lorg/jsoup/parser/Token$Doctype;->getName()Ljava/lang/String; │ │ - invoke-virtual {v0}, Lorg/jsoup/parser/Token$Doctype;->getPublicIdentifier()Ljava/lang/String; │ + move-result-object v2 │ │ - move-result-object v4 │ + invoke-virtual {v1, v2}, Lorg/jsoup/parser/ParseSettings;->normalizeTag(Ljava/lang/String;)Ljava/lang/String; │ │ - invoke-virtual {v0}, Lorg/jsoup/parser/Token$Doctype;->getSystemIdentifier()Ljava/lang/String; │ + move-result-object v1 │ │ - move-result-object v5 │ + invoke-virtual {v6}, Lorg/jsoup/parser/Token$Doctype;->getPubSysKey()Ljava/lang/String; │ │ - invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getBaseUri()Ljava/lang/String; │ + move-result-object v2 │ │ - move-result-object v6 │ + invoke-virtual {v6}, Lorg/jsoup/parser/Token$Doctype;->getPublicIdentifier()Ljava/lang/String; │ │ - invoke-direct {v1, v3, v4, v5, v6}, Lorg/jsoup/nodes/DocumentType;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ + move-result-object v3 │ │ - .line 23 │ - .local v1, "doctype":Lorg/jsoup/nodes/DocumentType; │ - invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getDocument()Lorg/jsoup/nodes/Document; │ + invoke-virtual {v6}, Lorg/jsoup/parser/Token$Doctype;->getSystemIdentifier()Ljava/lang/String; │ │ - move-result-object v3 │ + move-result-object v4 │ │ - invoke-virtual {v3, v1}, Lorg/jsoup/nodes/Document;->appendChild(Lorg/jsoup/nodes/Node;)Lorg/jsoup/nodes/Element; │ + invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getBaseUri()Ljava/lang/String; │ + │ + move-result-object v5 │ + │ + invoke-direct/range {v0 .. v5}, Lorg/jsoup/nodes/DocumentType;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ .line 24 │ - invoke-virtual {v0}, Lorg/jsoup/parser/Token$Doctype;->isForceQuirks()Z │ + .local v0, "doctype":Lorg/jsoup/nodes/DocumentType; │ + invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getDocument()Lorg/jsoup/nodes/Document; │ │ - move-result v3 │ + move-result-object v1 │ │ - if-eqz v3, :cond_2 │ + invoke-virtual {v1, v0}, Lorg/jsoup/nodes/Document;->appendChild(Lorg/jsoup/nodes/Node;)Lorg/jsoup/nodes/Element; │ │ .line 25 │ + invoke-virtual {v6}, Lorg/jsoup/parser/Token$Doctype;->isForceQuirks()Z │ + │ + move-result v1 │ + │ + if-eqz v1, :cond_2 │ + │ + .line 26 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getDocument()Lorg/jsoup/nodes/Document; │ │ - move-result-object v3 │ + move-result-object v1 │ │ - sget-object v4, Lorg/jsoup/nodes/Document$QuirksMode;->quirks:Lorg/jsoup/nodes/Document$QuirksMode; │ + sget-object v2, Lorg/jsoup/nodes/Document$QuirksMode;->quirks:Lorg/jsoup/nodes/Document$QuirksMode; │ │ - invoke-virtual {v3, v4}, Lorg/jsoup/nodes/Document;->quirksMode(Lorg/jsoup/nodes/Document$QuirksMode;)Lorg/jsoup/nodes/Document; │ + invoke-virtual {v1, v2}, Lorg/jsoup/nodes/Document;->quirksMode(Lorg/jsoup/nodes/Document$QuirksMode;)Lorg/jsoup/nodes/Document; │ │ - .line 26 │ + .line 27 │ :cond_2 │ - sget-object v3, Lorg/jsoup/parser/HtmlTreeBuilderState$1;->BeforeHtml:Lorg/jsoup/parser/HtmlTreeBuilderState; │ + sget-object v1, Lorg/jsoup/parser/HtmlTreeBuilderState$1;->BeforeHtml:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ + invoke-virtual {p2, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - goto :goto_0 │ + goto :goto_1 │ │ - .line 29 │ - .end local v0 # "d":Lorg/jsoup/parser/Token$Doctype; │ - .end local v1 # "doctype":Lorg/jsoup/nodes/DocumentType; │ + .line 30 │ + .end local v0 # "doctype":Lorg/jsoup/nodes/DocumentType; │ + .end local v6 # "d":Lorg/jsoup/parser/Token$Doctype; │ :cond_3 │ - sget-object v2, Lorg/jsoup/parser/HtmlTreeBuilderState$1;->BeforeHtml:Lorg/jsoup/parser/HtmlTreeBuilderState; │ + sget-object v1, Lorg/jsoup/parser/HtmlTreeBuilderState$1;->BeforeHtml:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - invoke-virtual {p2, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ + invoke-virtual {p2, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 30 │ + .line 31 │ invoke-virtual {p2, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ - move-result v2 │ + move-result v1 │ │ goto :goto_0 │ .end method ├── smali/org/jsoup/parser/TokeniserState$18.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 291 │ + .line 293 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,17 +31,17 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 293 │ + .line 295 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$18;->ScriptDataEndTagName:Lorg/jsoup/parser/TokeniserState; │ │ sget-object v1, Lorg/jsoup/parser/TokeniserState$18;->ScriptData:Lorg/jsoup/parser/TokeniserState; │ │ invoke-static {p1, p2, v0, v1}, Lorg/jsoup/parser/TokeniserState;->access$400(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;Lorg/jsoup/parser/TokeniserState;Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 294 │ + .line 296 │ return-void │ .end method ├── smali/org/jsoup/parser/TokeniserState$30.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 473 │ + .line 475 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,85 +31,85 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 475 │ + .line 477 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 476 │ + .line 478 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 495 │ + .line 497 │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ - .line 496 │ + .line 498 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$30;->ScriptDataDoubleEscaped:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 498 │ + .line 500 │ :goto_0 │ return-void │ │ - .line 478 │ + .line 480 │ :sswitch_0 │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ - .line 479 │ + .line 481 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$30;->ScriptDataDoubleEscapedDashDash:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 482 │ + .line 484 │ :sswitch_1 │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ - .line 483 │ + .line 485 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$30;->ScriptDataDoubleEscapedLessthanSign:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 486 │ + .line 488 │ :sswitch_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 487 │ + .line 489 │ const v1, 0xfffd │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ - .line 488 │ + .line 490 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$30;->ScriptDataDoubleEscaped:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 491 │ + .line 493 │ :sswitch_3 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 492 │ + .line 494 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$30;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 476 │ + .line 478 │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_2 │ 0x2d -> :sswitch_0 │ 0x3c -> :sswitch_1 │ 0xffff -> :sswitch_3 │ .end sparse-switch ├── smali/org/jsoup/parser/TokeniserState$60.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1374 │ + .line 1379 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -33,94 +33,94 @@ │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ const/4 v2, 0x1 │ │ - .line 1376 │ + .line 1381 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 1377 │ + .line 1382 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 1405 │ + .line 1410 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1406 │ + .line 1411 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1407 │ + .line 1412 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$60;->BogusDoctype:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1409 │ + .line 1414 │ :goto_0 │ :sswitch_0 │ return-void │ │ - .line 1385 │ + .line 1390 │ :sswitch_1 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1386 │ + .line 1391 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$60;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1389 │ + .line 1394 │ :sswitch_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1391 │ + .line 1396 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$60;->DoctypeSystemIdentifier_doubleQuoted:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1394 │ + .line 1399 │ :sswitch_3 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1396 │ + .line 1401 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$60;->DoctypeSystemIdentifier_singleQuoted:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1399 │ + .line 1404 │ :sswitch_4 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1400 │ + .line 1405 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1401 │ + .line 1406 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1402 │ + .line 1407 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$60;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1377 │ + .line 1382 │ :sswitch_data_0 │ .sparse-switch │ 0x9 -> :sswitch_0 │ 0xa -> :sswitch_0 │ 0xc -> :sswitch_0 │ 0xd -> :sswitch_0 │ 0x20 -> :sswitch_0 ├── smali/org/jsoup/parser/TokeniserState$42.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 868 │ + .line 870 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,66 +31,67 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 870 │ + .line 872 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 871 │ + .line 873 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 882 │ + .line 884 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 883 │ + .line 885 │ + invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->unconsume()V │ + │ + .line 886 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$42;->BeforeAttributeName:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 885 │ + .line 888 │ :goto_0 │ return-void │ │ - .line 873 │ + .line 875 │ :sswitch_0 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ const/4 v2, 0x1 │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Tag;->selfClosing:Z │ │ - .line 874 │ + .line 876 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitTagPending()V │ │ - .line 875 │ + .line 877 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$42;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 878 │ + .line 880 │ :sswitch_1 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 879 │ + .line 881 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$42;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 871 │ - nop │ - │ + .line 873 │ :sswitch_data_0 │ .sparse-switch │ 0x3e -> :sswitch_0 │ 0xffff -> :sswitch_1 │ .end sparse-switch │ .end method ├── smali/org/jsoup/parser/TokeniserState$33.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 541 │ + .line 543 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,17 +31,17 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 543 │ + .line 545 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$33;->ScriptDataEscaped:Lorg/jsoup/parser/TokeniserState; │ │ sget-object v1, Lorg/jsoup/parser/TokeniserState$33;->ScriptDataDoubleEscaped:Lorg/jsoup/parser/TokeniserState; │ │ invoke-static {p1, p2, v0, v1}, Lorg/jsoup/parser/TokeniserState;->access$600(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;Lorg/jsoup/parser/TokeniserState;Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 544 │ + .line 546 │ return-void │ .end method ├── smali/org/jsoup/parser/TokenQueue.smali │ @@ -58,67 +58,67 @@ │ .method public static unescape(Ljava/lang/String;)Ljava/lang/String; │ .locals 7 │ .param p0, "in" # Ljava/lang/String; │ │ .prologue │ const/16 v6, 0x5c │ │ - .line 297 │ + .line 301 │ new-instance v2, Ljava/lang/StringBuilder; │ │ invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ │ - .line 298 │ + .line 302 │ .local v2, "out":Ljava/lang/StringBuilder; │ const/4 v1, 0x0 │ │ - .line 299 │ + .line 303 │ .local v1, "last":C │ invoke-virtual {p0}, Ljava/lang/String;->toCharArray()[C │ │ move-result-object v4 │ │ array-length v5, v4 │ │ const/4 v3, 0x0 │ │ :goto_0 │ if-ge v3, v5, :cond_2 │ │ aget-char v0, v4, v3 │ │ - .line 300 │ + .line 304 │ .local v0, "c":C │ if-ne v0, v6, :cond_1 │ │ - .line 301 │ + .line 305 │ if-eqz v1, :cond_0 │ │ if-ne v1, v6, :cond_0 │ │ - .line 302 │ + .line 306 │ invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 306 │ + .line 310 │ :cond_0 │ :goto_1 │ move v1, v0 │ │ - .line 299 │ + .line 303 │ add-int/lit8 v3, v3, 0x1 │ │ goto :goto_0 │ │ - .line 305 │ + .line 309 │ :cond_1 │ invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ goto :goto_1 │ │ - .line 308 │ + .line 312 │ .end local v0 # "c":C │ :cond_2 │ invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v3 │ │ return-object v3 │ @@ -202,24 +202,24 @@ │ │ .line 148 │ :cond_0 │ return-void │ .end method │ │ .method public chompBalanced(CC)Ljava/lang/String; │ - .locals 7 │ + .locals 9 │ .param p1, "open" # C │ .param p2, "close" # C │ │ .prologue │ .line 261 │ - const/4 v5, -0x1 │ + const/4 v6, -0x1 │ │ .line 262 │ - .local v5, "start":I │ + .local v6, "start":I │ const/4 v2, -0x1 │ │ .line 263 │ .local v2, "end":I │ const/4 v1, 0x0 │ │ .line 264 │ @@ -231,166 +231,194 @@ │ const/4 v3, 0x0 │ │ .line 268 │ .local v3, "inQuote":Z │ :cond_0 │ invoke-virtual {p0}, Lorg/jsoup/parser/TokenQueue;->isEmpty()Z │ │ - move-result v6 │ + move-result v7 │ │ - if-eqz v6, :cond_1 │ + if-eqz v7, :cond_2 │ │ .line 288 │ :goto_0 │ - if-ltz v2, :cond_a │ + if-ltz v2, :cond_b │ │ - iget-object v6, p0, Lorg/jsoup/parser/TokenQueue;->queue:Ljava/lang/String; │ + iget-object v7, p0, Lorg/jsoup/parser/TokenQueue;->queue:Ljava/lang/String; │ │ - invoke-virtual {v6, v5, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String; │ + invoke-virtual {v7, v6, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v5 │ │ + .line 289 │ + .local v5, "out":Ljava/lang/String; │ :goto_1 │ - return-object v6 │ + if-lez v1, :cond_1 │ │ - .line 269 │ + .line 290 │ + new-instance v7, Ljava/lang/StringBuilder; │ + │ + invoke-direct {v7}, Ljava/lang/StringBuilder;->()V │ + │ + const-string v8, "Did not find balanced maker at " │ + │ + invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v7 │ + │ + invoke-virtual {v7, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v7 │ + │ + invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + │ + move-result-object v7 │ + │ + invoke-static {v7}, Lorg/jsoup/helper/Validate;->fail(Ljava/lang/String;)V │ + │ + .line 292 │ :cond_1 │ + return-object v5 │ + │ + .line 269 │ + .end local v5 # "out":Ljava/lang/String; │ + :cond_2 │ invoke-virtual {p0}, Lorg/jsoup/parser/TokenQueue;->consume()C │ │ - move-result v6 │ + move-result v7 │ │ - invoke-static {v6}, Ljava/lang/Character;->valueOf(C)Ljava/lang/Character; │ + invoke-static {v7}, Ljava/lang/Character;->valueOf(C)Ljava/lang/Character; │ │ move-result-object v0 │ │ .line 270 │ .local v0, "c":Ljava/lang/Character; │ - if-eqz v4, :cond_2 │ + if-eqz v4, :cond_3 │ │ - const/16 v6, 0x5c │ + const/16 v7, 0x5c │ │ - if-eq v4, v6, :cond_7 │ + if-eq v4, v7, :cond_8 │ │ .line 271 │ - :cond_2 │ - const/16 v6, 0x27 │ + :cond_3 │ + const/16 v7, 0x27 │ │ - invoke-static {v6}, Ljava/lang/Character;->valueOf(C)Ljava/lang/Character; │ + invoke-static {v7}, Ljava/lang/Character;->valueOf(C)Ljava/lang/Character; │ │ - move-result-object v6 │ + move-result-object v7 │ │ - invoke-virtual {v0, v6}, Ljava/lang/Character;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v0, v7}, Ljava/lang/Character;->equals(Ljava/lang/Object;)Z │ │ - move-result v6 │ + move-result v7 │ │ - if-nez v6, :cond_3 │ + if-nez v7, :cond_4 │ │ - const/16 v6, 0x22 │ + const/16 v7, 0x22 │ │ - invoke-static {v6}, Ljava/lang/Character;->valueOf(C)Ljava/lang/Character; │ + invoke-static {v7}, Ljava/lang/Character;->valueOf(C)Ljava/lang/Character; │ │ - move-result-object v6 │ + move-result-object v7 │ │ - invoke-virtual {v0, v6}, Ljava/lang/Character;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v0, v7}, Ljava/lang/Character;->equals(Ljava/lang/Object;)Z │ │ - move-result v6 │ + move-result v7 │ │ - if-eqz v6, :cond_4 │ + if-eqz v7, :cond_5 │ │ - :cond_3 │ + :cond_4 │ invoke-virtual {v0}, Ljava/lang/Character;->charValue()C │ │ - move-result v6 │ + move-result v7 │ │ - if-eq v6, p1, :cond_4 │ + if-eq v7, p1, :cond_5 │ │ .line 272 │ - if-nez v3, :cond_5 │ + if-nez v3, :cond_6 │ │ const/4 v3, 0x1 │ │ .line 273 │ - :cond_4 │ + :cond_5 │ :goto_2 │ - if-eqz v3, :cond_6 │ + if-eqz v3, :cond_7 │ │ .line 287 │ :goto_3 │ if-gtz v1, :cond_0 │ │ goto :goto_0 │ │ .line 272 │ - :cond_5 │ + :cond_6 │ const/4 v3, 0x0 │ │ goto :goto_2 │ │ .line 275 │ - :cond_6 │ + :cond_7 │ invoke-static {p1}, Ljava/lang/Character;->valueOf(C)Ljava/lang/Character; │ │ - move-result-object v6 │ + move-result-object v7 │ │ - invoke-virtual {v0, v6}, Ljava/lang/Character;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v0, v7}, Ljava/lang/Character;->equals(Ljava/lang/Object;)Z │ │ - move-result v6 │ + move-result v7 │ │ - if-eqz v6, :cond_9 │ + if-eqz v7, :cond_a │ │ .line 276 │ add-int/lit8 v1, v1, 0x1 │ │ .line 277 │ - const/4 v6, -0x1 │ + const/4 v7, -0x1 │ │ - if-ne v5, v6, :cond_7 │ + if-ne v6, v7, :cond_8 │ │ .line 278 │ - iget v5, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ + iget v6, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ .line 284 │ - :cond_7 │ + :cond_8 │ :goto_4 │ - if-lez v1, :cond_8 │ + if-lez v1, :cond_9 │ │ - if-eqz v4, :cond_8 │ + if-eqz v4, :cond_9 │ │ .line 285 │ iget v2, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ .line 286 │ - :cond_8 │ + :cond_9 │ invoke-virtual {v0}, Ljava/lang/Character;->charValue()C │ │ move-result v4 │ │ goto :goto_3 │ │ .line 280 │ - :cond_9 │ + :cond_a │ invoke-static {p2}, Ljava/lang/Character;->valueOf(C)Ljava/lang/Character; │ │ - move-result-object v6 │ + move-result-object v7 │ │ - invoke-virtual {v0, v6}, Ljava/lang/Character;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v0, v7}, Ljava/lang/Character;->equals(Ljava/lang/Object;)Z │ │ - move-result v6 │ + move-result v7 │ │ - if-eqz v6, :cond_7 │ + if-eqz v7, :cond_8 │ │ .line 281 │ add-int/lit8 v1, v1, -0x1 │ │ goto :goto_4 │ │ .line 288 │ .end local v0 # "c":Ljava/lang/Character; │ - :cond_a │ - const-string v6, "" │ + :cond_b │ + const-string v5, "" │ │ goto :goto_1 │ .end method │ │ .method public chompTo(Ljava/lang/String;)Ljava/lang/String; │ .locals 1 │ .param p1, "seq" # Ljava/lang/String; │ @@ -503,18 +531,18 @@ │ return-void │ .end method │ │ .method public consumeAttributeKey()Ljava/lang/String; │ .locals 3 │ │ .prologue │ - .line 379 │ + .line 383 │ iget v0, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ - .line 380 │ + .line 384 │ .local v0, "start":I │ :goto_0 │ invoke-virtual {p0}, Lorg/jsoup/parser/TokenQueue;->isEmpty()Z │ │ move-result v1 │ │ if-nez v1, :cond_1 │ @@ -533,53 +561,53 @@ │ │ invoke-virtual {p0, v1}, Lorg/jsoup/parser/TokenQueue;->matchesAny([C)Z │ │ move-result v1 │ │ if-eqz v1, :cond_1 │ │ - .line 381 │ + .line 385 │ :cond_0 │ iget v1, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ add-int/lit8 v1, v1, 0x1 │ │ iput v1, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ goto :goto_0 │ │ - .line 383 │ + .line 387 │ :cond_1 │ iget-object v1, p0, Lorg/jsoup/parser/TokenQueue;->queue:Ljava/lang/String; │ │ iget v2, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ invoke-virtual {v1, v0, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String; │ │ move-result-object v1 │ │ return-object v1 │ │ - .line 380 │ + .line 384 │ :array_0 │ .array-data 2 │ 0x2ds │ 0x5fs │ 0x3as │ .end array-data │ .end method │ │ .method public consumeCssIdentifier()Ljava/lang/String; │ .locals 3 │ │ .prologue │ - .line 367 │ + .line 371 │ iget v0, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ - .line 368 │ + .line 372 │ .local v0, "start":I │ :goto_0 │ invoke-virtual {p0}, Lorg/jsoup/parser/TokenQueue;->isEmpty()Z │ │ move-result v1 │ │ if-nez v1, :cond_1 │ @@ -598,117 +626,131 @@ │ │ invoke-virtual {p0, v1}, Lorg/jsoup/parser/TokenQueue;->matchesAny([C)Z │ │ move-result v1 │ │ if-eqz v1, :cond_1 │ │ - .line 369 │ + .line 373 │ :cond_0 │ iget v1, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ add-int/lit8 v1, v1, 0x1 │ │ iput v1, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ goto :goto_0 │ │ - .line 371 │ + .line 375 │ :cond_1 │ iget-object v1, p0, Lorg/jsoup/parser/TokenQueue;->queue:Ljava/lang/String; │ │ iget v2, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ invoke-virtual {v1, v0, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String; │ │ move-result-object v1 │ │ return-object v1 │ │ - .line 368 │ + .line 372 │ :array_0 │ .array-data 2 │ 0x2ds │ 0x5fs │ .end array-data │ .end method │ │ .method public consumeElementSelector()Ljava/lang/String; │ - .locals 3 │ + .locals 4 │ │ .prologue │ - .line 354 │ + .line 358 │ iget v0, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ - .line 355 │ + .line 359 │ .local v0, "start":I │ :goto_0 │ invoke-virtual {p0}, Lorg/jsoup/parser/TokenQueue;->isEmpty()Z │ │ move-result v1 │ │ if-nez v1, :cond_1 │ │ invoke-virtual {p0}, Lorg/jsoup/parser/TokenQueue;->matchesWord()Z │ │ move-result v1 │ │ if-nez v1, :cond_0 │ │ - const/4 v1, 0x3 │ + const/4 v1, 0x4 │ │ - new-array v1, v1, [C │ + new-array v1, v1, [Ljava/lang/String; │ │ - fill-array-data v1, :array_0 │ + const/4 v2, 0x0 │ │ - invoke-virtual {p0, v1}, Lorg/jsoup/parser/TokenQueue;->matchesAny([C)Z │ + const-string v3, "*|" │ + │ + aput-object v3, v1, v2 │ + │ + const/4 v2, 0x1 │ + │ + const-string v3, "|" │ + │ + aput-object v3, v1, v2 │ + │ + const/4 v2, 0x2 │ + │ + const-string v3, "_" │ + │ + aput-object v3, v1, v2 │ + │ + const/4 v2, 0x3 │ + │ + const-string v3, "-" │ + │ + aput-object v3, v1, v2 │ + │ + invoke-virtual {p0, v1}, Lorg/jsoup/parser/TokenQueue;->matchesAny([Ljava/lang/String;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_1 │ │ - .line 356 │ + .line 360 │ :cond_0 │ iget v1, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ add-int/lit8 v1, v1, 0x1 │ │ iput v1, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ goto :goto_0 │ │ - .line 358 │ + .line 362 │ :cond_1 │ iget-object v1, p0, Lorg/jsoup/parser/TokenQueue;->queue:Ljava/lang/String; │ │ iget v2, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ invoke-virtual {v1, v0, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String; │ │ move-result-object v1 │ │ return-object v1 │ - │ - .line 355 │ - :array_0 │ - .array-data 2 │ - 0x7cs │ - 0x5fs │ - 0x2ds │ - .end array-data │ .end method │ │ .method public consumeTagName()Ljava/lang/String; │ .locals 3 │ │ .prologue │ - .line 341 │ + .line 345 │ iget v0, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ - .line 342 │ + .line 346 │ .local v0, "start":I │ :goto_0 │ invoke-virtual {p0}, Lorg/jsoup/parser/TokenQueue;->isEmpty()Z │ │ move-result v1 │ │ if-nez v1, :cond_1 │ @@ -727,37 +769,37 @@ │ │ invoke-virtual {p0, v1}, Lorg/jsoup/parser/TokenQueue;->matchesAny([C)Z │ │ move-result v1 │ │ if-eqz v1, :cond_1 │ │ - .line 343 │ + .line 347 │ :cond_0 │ iget v1, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ add-int/lit8 v1, v1, 0x1 │ │ iput v1, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ goto :goto_0 │ │ - .line 345 │ + .line 349 │ :cond_1 │ iget-object v1, p0, Lorg/jsoup/parser/TokenQueue;->queue:Ljava/lang/String; │ │ iget v2, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ invoke-virtual {v1, v0, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String; │ │ move-result-object v1 │ │ return-object v1 │ │ - .line 342 │ + .line 346 │ :array_0 │ .array-data 2 │ 0x3as │ 0x5fs │ 0x2ds │ .end array-data │ .end method │ @@ -988,69 +1030,69 @@ │ goto :goto_0 │ .end method │ │ .method public consumeWhitespace()Z │ .locals 2 │ │ .prologue │ - .line 316 │ + .line 320 │ const/4 v0, 0x0 │ │ - .line 317 │ + .line 321 │ .local v0, "seen":Z │ :goto_0 │ invoke-virtual {p0}, Lorg/jsoup/parser/TokenQueue;->matchesWhitespace()Z │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ - .line 318 │ + .line 322 │ iget v1, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ add-int/lit8 v1, v1, 0x1 │ │ iput v1, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ - .line 319 │ + .line 323 │ const/4 v0, 0x1 │ │ goto :goto_0 │ │ - .line 321 │ + .line 325 │ :cond_0 │ return v0 │ .end method │ │ .method public consumeWord()Ljava/lang/String; │ .locals 3 │ │ .prologue │ - .line 329 │ + .line 333 │ iget v0, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ - .line 330 │ + .line 334 │ .local v0, "start":I │ :goto_0 │ invoke-virtual {p0}, Lorg/jsoup/parser/TokenQueue;->matchesWord()Z │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ - .line 331 │ + .line 335 │ iget v1, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ add-int/lit8 v1, v1, 0x1 │ │ iput v1, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ goto :goto_0 │ │ - .line 332 │ + .line 336 │ :cond_0 │ iget-object v1, p0, Lorg/jsoup/parser/TokenQueue;->queue:Ljava/lang/String; │ │ iget v2, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ invoke-virtual {v1, v0, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String; │ │ @@ -1408,48 +1450,48 @@ │ goto :goto_0 │ .end method │ │ .method public remainder()Ljava/lang/String; │ .locals 4 │ │ .prologue │ - .line 391 │ + .line 395 │ iget-object v1, p0, Lorg/jsoup/parser/TokenQueue;->queue:Ljava/lang/String; │ │ iget v2, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ iget-object v3, p0, Lorg/jsoup/parser/TokenQueue;->queue:Ljava/lang/String; │ │ invoke-virtual {v3}, Ljava/lang/String;->length()I │ │ move-result v3 │ │ invoke-virtual {v1, v2, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 392 │ + .line 396 │ .local v0, "remainder":Ljava/lang/String; │ iget-object v1, p0, Lorg/jsoup/parser/TokenQueue;->queue:Ljava/lang/String; │ │ invoke-virtual {v1}, Ljava/lang/String;->length()I │ │ move-result v1 │ │ iput v1, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ - .line 393 │ + .line 397 │ return-object v0 │ .end method │ │ .method public toString()Ljava/lang/String; │ .locals 2 │ │ .prologue │ - .line 398 │ + .line 402 │ iget-object v0, p0, Lorg/jsoup/parser/TokenQueue;->queue:Ljava/lang/String; │ │ iget v1, p0, Lorg/jsoup/parser/TokenQueue;->pos:I │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String; │ │ move-result-object v0 ├── smali/org/jsoup/parser/TokeniserState$32.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 530 │ + .line 532 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -33,37 +33,37 @@ │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ const/16 v1, 0x2f │ │ - .line 532 │ + .line 534 │ invoke-virtual {p2, v1}, Lorg/jsoup/parser/CharacterReader;->matches(C)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 533 │ + .line 535 │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ - .line 534 │ + .line 536 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->createTempBuffer()V │ │ - .line 535 │ + .line 537 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$32;->ScriptDataDoubleEscapeEnd:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 539 │ + .line 541 │ :goto_0 │ return-void │ │ - .line 537 │ + .line 539 │ :cond_0 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$32;->ScriptDataDoubleEscaped:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ .end method ├── smali/org/jsoup/parser/HtmlTreeBuilderState$22.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1426 │ + .line 1429 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->(Ljava/lang/String;ILorg/jsoup/parser/HtmlTreeBuilderState$1;)V │ │ return-void │ .end method │ │ @@ -31,36 +31,36 @@ │ # virtual methods │ .method process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Token; │ .param p2, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ - .line 1428 │ + .line 1431 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isComment()Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ - .line 1429 │ + .line 1432 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asComment()Lorg/jsoup/parser/Token$Comment; │ │ move-result-object v0 │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Comment;)V │ │ - .line 1440 │ + .line 1443 │ :cond_0 │ const/4 v0, 0x1 │ │ :goto_0 │ return v0 │ │ - .line 1430 │ + .line 1433 │ :cond_1 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isDoctype()Z │ │ move-result v0 │ │ if-nez v0, :cond_2 │ │ @@ -76,78 +76,78 @@ │ │ if-eqz v0, :cond_3 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v0 │ │ - invoke-virtual {v0}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ + invoke-virtual {v0}, Lorg/jsoup/parser/Token$StartTag;->normalName()Ljava/lang/String; │ │ move-result-object v0 │ │ const-string v1, "html" │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_3 │ │ - .line 1431 │ + .line 1434 │ :cond_2 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$22;->InBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, p1, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ move-result v0 │ │ goto :goto_0 │ │ - .line 1432 │ + .line 1435 │ :cond_3 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEOF()Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ - .line 1434 │ + .line 1437 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isStartTag()Z │ │ move-result v0 │ │ if-eqz v0, :cond_4 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v0 │ │ - invoke-virtual {v0}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ + invoke-virtual {v0}, Lorg/jsoup/parser/Token$StartTag;->normalName()Ljava/lang/String; │ │ move-result-object v0 │ │ const-string v1, "noframes" │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_4 │ │ - .line 1435 │ + .line 1438 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$22;->InHead:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, p1, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ move-result v0 │ │ goto :goto_0 │ │ - .line 1437 │ + .line 1440 │ :cond_4 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 1438 │ + .line 1441 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method ├── smali/org/jsoup/parser/HtmlTreeBuilderState$8.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 782 │ + .line 784 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->(Ljava/lang/String;ILorg/jsoup/parser/HtmlTreeBuilderState$1;)V │ │ return-void │ .end method │ │ @@ -31,76 +31,76 @@ │ # virtual methods │ .method process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ .locals 1 │ .param p1, "t" # Lorg/jsoup/parser/Token; │ .param p2, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ - .line 785 │ + .line 787 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isCharacter()Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ - .line 786 │ + .line 788 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asCharacter()Lorg/jsoup/parser/Token$Character; │ │ move-result-object v0 │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Character;)V │ │ - .line 798 │ + .line 800 │ :cond_0 │ :goto_0 │ const/4 v0, 0x1 │ │ :goto_1 │ return v0 │ │ - .line 787 │ + .line 789 │ :cond_1 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEOF()Z │ │ move-result v0 │ │ if-eqz v0, :cond_2 │ │ - .line 788 │ + .line 790 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 790 │ + .line 792 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->pop()Lorg/jsoup/nodes/Element; │ │ - .line 791 │ + .line 793 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->originalState()Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ move-result-object v0 │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 792 │ + .line 794 │ invoke-virtual {p2, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v0 │ │ goto :goto_1 │ │ - .line 793 │ + .line 795 │ :cond_2 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEndTag()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 795 │ + .line 797 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->pop()Lorg/jsoup/nodes/Element; │ │ - .line 796 │ + .line 798 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->originalState()Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ move-result-object v0 │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_0 ├── smali/org/jsoup/parser/TokeniserState$64.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1516 │ + .line 1521 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -33,96 +33,96 @@ │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ const/4 v2, 0x1 │ │ - .line 1518 │ + .line 1523 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 1519 │ + .line 1524 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 1540 │ + .line 1545 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Doctype;->systemIdentifier:Ljava/lang/StringBuilder; │ │ invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 1542 │ + .line 1547 │ :goto_0 │ return-void │ │ - .line 1521 │ + .line 1526 │ :sswitch_0 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$64;->AfterDoctypeSystemIdentifier:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1524 │ + .line 1529 │ :sswitch_1 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1525 │ + .line 1530 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Doctype;->systemIdentifier:Ljava/lang/StringBuilder; │ │ const v2, 0xfffd │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ goto :goto_0 │ │ - .line 1528 │ + .line 1533 │ :sswitch_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1529 │ + .line 1534 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1530 │ + .line 1535 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1531 │ + .line 1536 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$64;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1534 │ + .line 1539 │ :sswitch_3 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1535 │ + .line 1540 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1536 │ + .line 1541 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1537 │ + .line 1542 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$64;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1519 │ + .line 1524 │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_1 │ 0x27 -> :sswitch_0 │ 0x3e -> :sswitch_2 │ 0xffff -> :sswitch_3 │ .end sparse-switch ├── smali/org/jsoup/parser/TokeniserState$5.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 69 │ + .line 71 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,15 +31,15 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 1 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 71 │ + .line 73 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$5;->RawtextLessthanSign:Lorg/jsoup/parser/TokeniserState; │ │ invoke-static {p1, p2, p0, v0}, Lorg/jsoup/parser/TokeniserState;->access$200(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;Lorg/jsoup/parser/TokeniserState;Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 72 │ + .line 74 │ return-void │ .end method ├── smali/org/jsoup/parser/HtmlTreeBuilderState$21.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1410 │ + .line 1413 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->(Ljava/lang/String;ILorg/jsoup/parser/HtmlTreeBuilderState$1;)V │ │ return-void │ .end method │ │ @@ -31,36 +31,36 @@ │ # virtual methods │ .method process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Token; │ .param p2, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ - .line 1412 │ + .line 1415 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isComment()Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ - .line 1413 │ + .line 1416 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asComment()Lorg/jsoup/parser/Token$Comment; │ │ move-result-object v0 │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Comment;)V │ │ - .line 1423 │ + .line 1426 │ :cond_0 │ const/4 v0, 0x1 │ │ :goto_0 │ return v0 │ │ - .line 1414 │ + .line 1417 │ :cond_1 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isDoctype()Z │ │ move-result v0 │ │ if-nez v0, :cond_2 │ │ @@ -76,52 +76,52 @@ │ │ if-eqz v0, :cond_3 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v0 │ │ - invoke-virtual {v0}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ + invoke-virtual {v0}, Lorg/jsoup/parser/Token$StartTag;->normalName()Ljava/lang/String; │ │ move-result-object v0 │ │ const-string v1, "html" │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_3 │ │ - .line 1415 │ + .line 1418 │ :cond_2 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$21;->InBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, p1, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ move-result v0 │ │ goto :goto_0 │ │ - .line 1416 │ + .line 1419 │ :cond_3 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEOF()Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ - .line 1419 │ + .line 1422 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 1420 │ + .line 1423 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$21;->InBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 1421 │ + .line 1424 │ invoke-virtual {p2, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v0 │ │ goto :goto_0 │ .end method ├── smali/org/jsoup/parser/XmlTreeBuilder$1.smali │ @@ -19,15 +19,15 @@ │ │ │ # direct methods │ .method static constructor ()V │ .locals 3 │ │ .prologue │ - .line 27 │ + .line 35 │ invoke-static {}, Lorg/jsoup/parser/Token$TokenType;->values()[Lorg/jsoup/parser/Token$TokenType; │ │ move-result-object v0 │ │ array-length v0, v0 │ │ new-array v0, v0, [I ├── smali/org/jsoup/parser/TokeniserState$56.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1243 │ + .line 1248 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -33,96 +33,96 @@ │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ const/4 v2, 0x1 │ │ - .line 1245 │ + .line 1250 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 1246 │ + .line 1251 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 1274 │ + .line 1279 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1275 │ + .line 1280 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1276 │ + .line 1281 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$56;->BogusDoctype:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1278 │ + .line 1283 │ :goto_0 │ :sswitch_0 │ return-void │ │ - .line 1255 │ + .line 1260 │ :sswitch_1 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$56;->DoctypePublicIdentifier_doubleQuoted:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1259 │ + .line 1264 │ :sswitch_2 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$56;->DoctypePublicIdentifier_singleQuoted:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1262 │ + .line 1267 │ :sswitch_3 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1263 │ + .line 1268 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1264 │ + .line 1269 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1265 │ + .line 1270 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$56;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1268 │ + .line 1273 │ :sswitch_4 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1269 │ + .line 1274 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1270 │ + .line 1275 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1271 │ + .line 1276 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$56;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1246 │ + .line 1251 │ nop │ │ :sswitch_data_0 │ .sparse-switch │ 0x9 -> :sswitch_0 │ 0xa -> :sswitch_0 │ 0xc -> :sswitch_0 ├── smali/org/jsoup/parser/HtmlTreeBuilderState$5.smali │ @@ -15,47 +15,47 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 164 │ + .line 165 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->(Ljava/lang/String;ILorg/jsoup/parser/HtmlTreeBuilderState$1;)V │ │ return-void │ .end method │ │ .method private anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Token; │ .param p2, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ - .line 188 │ + .line 189 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 189 │ + .line 190 │ new-instance v0, Lorg/jsoup/parser/Token$Character; │ │ invoke-direct {v0}, Lorg/jsoup/parser/Token$Character;->()V │ │ invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/Token$Character;->data(Ljava/lang/String;)Lorg/jsoup/parser/Token$Character; │ │ move-result-object v0 │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Character;)V │ │ - .line 190 │ + .line 191 │ const/4 v0, 0x1 │ │ return v0 │ .end method │ │ │ # virtual methods │ @@ -67,99 +67,99 @@ │ .prologue │ const/4 v6, 0x2 │ │ const/4 v1, 0x1 │ │ const/4 v0, 0x0 │ │ - .line 166 │ + .line 167 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isDoctype()Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ - .line 167 │ + .line 168 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ :goto_0 │ move v0, v1 │ │ - .line 184 │ + .line 185 │ :goto_1 │ return v0 │ │ - .line 168 │ + .line 169 │ :cond_0 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isStartTag()Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v2 │ │ - invoke-virtual {v2}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ + invoke-virtual {v2}, Lorg/jsoup/parser/Token$StartTag;->normalName()Ljava/lang/String; │ │ move-result-object v2 │ │ const-string v3, "html" │ │ invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - .line 169 │ + .line 170 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$5;->InBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, p1, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ move-result v0 │ │ goto :goto_1 │ │ - .line 170 │ + .line 171 │ :cond_1 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEndTag()Z │ │ move-result v2 │ │ if-eqz v2, :cond_2 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asEndTag()Lorg/jsoup/parser/Token$EndTag; │ │ move-result-object v2 │ │ - invoke-virtual {v2}, Lorg/jsoup/parser/Token$EndTag;->name()Ljava/lang/String; │ + invoke-virtual {v2}, Lorg/jsoup/parser/Token$EndTag;->normalName()Ljava/lang/String; │ │ move-result-object v2 │ │ const-string v3, "noscript" │ │ invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_2 │ │ - .line 171 │ + .line 172 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->pop()Lorg/jsoup/nodes/Element; │ │ - .line 172 │ + .line 173 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$5;->InHead:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_0 │ │ - .line 173 │ + .line 174 │ :cond_2 │ invoke-static {p1}, Lorg/jsoup/parser/HtmlTreeBuilderState;->access$100(Lorg/jsoup/parser/Token;)Z │ │ move-result v2 │ │ if-nez v2, :cond_3 │ │ @@ -175,15 +175,15 @@ │ │ if-eqz v2, :cond_4 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v2 │ │ - invoke-virtual {v2}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ + invoke-virtual {v2}, Lorg/jsoup/parser/Token$StartTag;->normalName()Ljava/lang/String; │ │ move-result-object v2 │ │ const/4 v3, 0x6 │ │ new-array v3, v3, [Ljava/lang/String; │ │ @@ -219,68 +219,68 @@ │ │ invoke-static {v2, v3}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_4 │ │ - .line 175 │ + .line 176 │ :cond_3 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$5;->InHead:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, p1, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ move-result v0 │ │ goto/16 :goto_1 │ │ - .line 176 │ + .line 177 │ :cond_4 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEndTag()Z │ │ move-result v2 │ │ if-eqz v2, :cond_5 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asEndTag()Lorg/jsoup/parser/Token$EndTag; │ │ move-result-object v2 │ │ - invoke-virtual {v2}, Lorg/jsoup/parser/Token$EndTag;->name()Ljava/lang/String; │ + invoke-virtual {v2}, Lorg/jsoup/parser/Token$EndTag;->normalName()Ljava/lang/String; │ │ move-result-object v2 │ │ const-string v3, "br" │ │ invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_5 │ │ - .line 177 │ + .line 178 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$5;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v0 │ │ goto/16 :goto_1 │ │ - .line 178 │ + .line 179 │ :cond_5 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isStartTag()Z │ │ move-result v2 │ │ if-eqz v2, :cond_6 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v2 │ │ - invoke-virtual {v2}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ + invoke-virtual {v2}, Lorg/jsoup/parser/Token$StartTag;->normalName()Ljava/lang/String; │ │ move-result-object v2 │ │ new-array v3, v6, [Ljava/lang/String; │ │ const-string v4, "head" │ │ @@ -299,21 +299,21 @@ │ :cond_6 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEndTag()Z │ │ move-result v1 │ │ if-eqz v1, :cond_8 │ │ - .line 179 │ + .line 180 │ :cond_7 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_1 │ │ - .line 182 │ + .line 183 │ :cond_8 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$5;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v0 │ │ goto/16 :goto_1 │ .end method ├── smali/org/jsoup/parser/TokeniserState$40.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 790 │ + .line 792 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,141 +31,141 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 5 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 792 │ + .line 794 │ invoke-static {}, Lorg/jsoup/parser/TokeniserState;->access$1000()[C │ │ move-result-object v3 │ │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/CharacterReader;->consumeToAnySorted([C)Ljava/lang/String; │ │ move-result-object v2 │ │ - .line 793 │ + .line 795 │ .local v2, "value":Ljava/lang/String; │ invoke-virtual {v2}, Ljava/lang/String;->length()I │ │ move-result v3 │ │ if-lez v3, :cond_0 │ │ - .line 794 │ + .line 796 │ iget-object v3, p1, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ invoke-virtual {v3, v2}, Lorg/jsoup/parser/Token$Tag;->appendAttributeValue(Ljava/lang/String;)V │ │ - .line 796 │ + .line 798 │ :cond_0 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 797 │ + .line 799 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 835 │ + .line 837 │ :goto_0 │ return-void │ │ - .line 803 │ + .line 805 │ :sswitch_0 │ sget-object v3, Lorg/jsoup/parser/TokeniserState$40;->BeforeAttributeName:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v3}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 806 │ + .line 808 │ :sswitch_1 │ const/16 v3, 0x3e │ │ invoke-static {v3}, Ljava/lang/Character;->valueOf(C)Ljava/lang/Character; │ │ move-result-object v3 │ │ const/4 v4, 0x1 │ │ - invoke-virtual {p1, v3, v4}, Lorg/jsoup/parser/Tokeniser;->consumeCharacterReference(Ljava/lang/Character;Z)[C │ + invoke-virtual {p1, v3, v4}, Lorg/jsoup/parser/Tokeniser;->consumeCharacterReference(Ljava/lang/Character;Z)[I │ │ move-result-object v1 │ │ - .line 807 │ - .local v1, "ref":[C │ + .line 809 │ + .local v1, "ref":[I │ if-eqz v1, :cond_1 │ │ - .line 808 │ + .line 810 │ iget-object v3, p1, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ - invoke-virtual {v3, v1}, Lorg/jsoup/parser/Token$Tag;->appendAttributeValue([C)V │ + invoke-virtual {v3, v1}, Lorg/jsoup/parser/Token$Tag;->appendAttributeValue([I)V │ │ goto :goto_0 │ │ - .line 810 │ + .line 812 │ :cond_1 │ iget-object v3, p1, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ const/16 v4, 0x26 │ │ invoke-virtual {v3, v4}, Lorg/jsoup/parser/Token$Tag;->appendAttributeValue(C)V │ │ goto :goto_0 │ │ - .line 813 │ - .end local v1 # "ref":[C │ + .line 815 │ + .end local v1 # "ref":[I │ :sswitch_2 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitTagPending()V │ │ - .line 814 │ + .line 816 │ sget-object v3, Lorg/jsoup/parser/TokeniserState$40;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v3}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 817 │ + .line 819 │ :sswitch_3 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 818 │ + .line 820 │ iget-object v3, p1, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ const v4, 0xfffd │ │ invoke-virtual {v3, v4}, Lorg/jsoup/parser/Token$Tag;->appendAttributeValue(C)V │ │ goto :goto_0 │ │ - .line 821 │ + .line 823 │ :sswitch_4 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 822 │ + .line 824 │ sget-object v3, Lorg/jsoup/parser/TokeniserState$40;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v3}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 829 │ + .line 831 │ :sswitch_5 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 830 │ + .line 832 │ iget-object v3, p1, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ invoke-virtual {v3, v0}, Lorg/jsoup/parser/Token$Tag;->appendAttributeValue(C)V │ │ goto :goto_0 │ │ - .line 797 │ + .line 799 │ nop │ │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_3 │ 0x9 -> :sswitch_0 │ 0xa -> :sswitch_0 ├── smali/org/jsoup/parser/HtmlTreeBuilderState$14.smali │ @@ -15,29 +15,29 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1088 │ + .line 1090 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->(Ljava/lang/String;ILorg/jsoup/parser/HtmlTreeBuilderState$1;)V │ │ return-void │ .end method │ │ .method private anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ .locals 1 │ .param p1, "t" # Lorg/jsoup/parser/Token; │ .param p2, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ - .line 1138 │ + .line 1140 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$14;->InTable:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, p1, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ move-result v0 │ │ return v0 │ @@ -45,31 +45,31 @@ │ │ .method private handleMissingTr(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/TreeBuilder;)Z │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Token; │ .param p2, "tb" # Lorg/jsoup/parser/TreeBuilder; │ │ .prologue │ - .line 1142 │ + .line 1144 │ const-string v1, "tr" │ │ invoke-virtual {p2, v1}, Lorg/jsoup/parser/TreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ move-result v0 │ │ - .line 1143 │ + .line 1145 │ .local v0, "processed":Z │ if-eqz v0, :cond_0 │ │ - .line 1144 │ + .line 1146 │ invoke-virtual {p2, p1}, Lorg/jsoup/parser/TreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v1 │ │ - .line 1146 │ + .line 1148 │ :goto_0 │ return v1 │ │ :cond_0 │ const/4 v1, 0x0 │ │ goto :goto_0 │ @@ -89,33 +89,33 @@ │ │ const/4 v7, 0x2 │ │ const/4 v4, 0x1 │ │ const/4 v3, 0x0 │ │ - .line 1090 │ + .line 1092 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isStartTag()Z │ │ move-result v5 │ │ if-eqz v5, :cond_2 │ │ - .line 1091 │ + .line 1093 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v2 │ │ - .line 1092 │ + .line 1094 │ .local v2, "startTag":Lorg/jsoup/parser/Token$StartTag; │ - invoke-virtual {v2}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ + invoke-virtual {v2}, Lorg/jsoup/parser/Token$StartTag;->normalName()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 1094 │ + .line 1096 │ .local v1, "name":Ljava/lang/String; │ new-array v5, v7, [Ljava/lang/String; │ │ const-string v6, "th" │ │ aput-object v6, v5, v3 │ │ @@ -125,38 +125,38 @@ │ │ invoke-static {v1, v5}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_0 │ │ - .line 1095 │ + .line 1097 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->clearStackToTableRowContext()V │ │ - .line 1096 │ + .line 1098 │ invoke-virtual {p2, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ - .line 1097 │ + .line 1099 │ sget-object v3, Lorg/jsoup/parser/HtmlTreeBuilderState$14;->InCell:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 1098 │ + .line 1100 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertMarkerToFormattingElements()V │ │ .end local v2 # "startTag":Lorg/jsoup/parser/Token$StartTag; │ :goto_0 │ move v3, v4 │ │ - .line 1134 │ + .line 1136 │ .end local v1 # "name":Ljava/lang/String; │ :goto_1 │ return v3 │ │ - .line 1099 │ + .line 1101 │ .restart local v1 # "name":Ljava/lang/String; │ .restart local v2 # "startTag":Lorg/jsoup/parser/Token$StartTag; │ :cond_0 │ const/4 v5, 0x7 │ │ new-array v5, v5, [Ljava/lang/String; │ │ @@ -194,104 +194,104 @@ │ │ invoke-static {v1, v5}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v3 │ │ if-eqz v3, :cond_1 │ │ - .line 1100 │ + .line 1102 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$14;->handleMissingTr(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/TreeBuilder;)Z │ │ move-result v3 │ │ goto :goto_1 │ │ - .line 1102 │ + .line 1104 │ :cond_1 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$14;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v3 │ │ goto :goto_1 │ │ - .line 1104 │ + .line 1106 │ .end local v1 # "name":Ljava/lang/String; │ .end local v2 # "startTag":Lorg/jsoup/parser/Token$StartTag; │ :cond_2 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEndTag()Z │ │ move-result v5 │ │ if-eqz v5, :cond_9 │ │ - .line 1105 │ + .line 1107 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asEndTag()Lorg/jsoup/parser/Token$EndTag; │ │ move-result-object v0 │ │ - .line 1106 │ + .line 1108 │ .local v0, "endTag":Lorg/jsoup/parser/Token$EndTag; │ - invoke-virtual {v0}, Lorg/jsoup/parser/Token$EndTag;->name()Ljava/lang/String; │ + invoke-virtual {v0}, Lorg/jsoup/parser/Token$EndTag;->normalName()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 1108 │ + .line 1110 │ .restart local v1 # "name":Ljava/lang/String; │ const-string v5, "tr" │ │ invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_4 │ │ - .line 1109 │ + .line 1111 │ invoke-virtual {p2, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inTableScope(Ljava/lang/String;)Z │ │ move-result v5 │ │ if-nez v5, :cond_3 │ │ - .line 1110 │ + .line 1112 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_1 │ │ - .line 1113 │ + .line 1115 │ :cond_3 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->clearStackToTableRowContext()V │ │ - .line 1114 │ + .line 1116 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->pop()Lorg/jsoup/nodes/Element; │ │ - .line 1115 │ + .line 1117 │ sget-object v3, Lorg/jsoup/parser/HtmlTreeBuilderState$14;->InTableBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_0 │ │ - .line 1116 │ + .line 1118 │ :cond_4 │ const-string v5, "table" │ │ invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_5 │ │ - .line 1117 │ + .line 1119 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$14;->handleMissingTr(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/TreeBuilder;)Z │ │ move-result v3 │ │ goto :goto_1 │ │ - .line 1118 │ + .line 1120 │ :cond_5 │ new-array v5, v8, [Ljava/lang/String; │ │ const-string v6, "tbody" │ │ aput-object v6, v5, v3 │ │ @@ -305,40 +305,40 @@ │ │ invoke-static {v1, v5}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_7 │ │ - .line 1119 │ + .line 1121 │ invoke-virtual {p2, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inTableScope(Ljava/lang/String;)Z │ │ move-result v4 │ │ if-nez v4, :cond_6 │ │ - .line 1120 │ + .line 1122 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_1 │ │ - .line 1123 │ + .line 1125 │ :cond_6 │ const-string v3, "tr" │ │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 1124 │ + .line 1126 │ invoke-virtual {p2, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v3 │ │ goto/16 :goto_1 │ │ - .line 1125 │ + .line 1127 │ :cond_7 │ const/4 v5, 0x7 │ │ new-array v5, v5, [Ljava/lang/String; │ │ const-string v6, "body" │ │ @@ -374,28 +374,28 @@ │ │ invoke-static {v1, v5}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_8 │ │ - .line 1126 │ + .line 1128 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_1 │ │ - .line 1129 │ + .line 1131 │ :cond_8 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$14;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v3 │ │ goto/16 :goto_1 │ │ - .line 1132 │ + .line 1134 │ .end local v0 # "endTag":Lorg/jsoup/parser/Token$EndTag; │ .end local v1 # "name":Ljava/lang/String; │ :cond_9 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$14;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v3 ├── smali/org/jsoup/parser/TokeniserState$12.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 193 │ + .line 195 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,67 +31,59 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 195 │ + .line 197 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->matchesLetter()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 196 │ + .line 198 │ const/4 v0, 0x0 │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->createTagPending(Z)Lorg/jsoup/parser/Token$Tag; │ │ - .line 197 │ + .line 199 │ iget-object v0, p1, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->current()C │ │ move-result v1 │ │ - invoke-static {v1}, Ljava/lang/Character;->toLowerCase(C)C │ - │ - move-result v1 │ - │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/Token$Tag;->appendTagName(C)V │ │ - .line 198 │ + .line 200 │ iget-object v0, p1, Lorg/jsoup/parser/Tokeniser;->dataBuffer:Ljava/lang/StringBuilder; │ │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->current()C │ │ move-result v1 │ │ - invoke-static {v1}, Ljava/lang/Character;->toLowerCase(C)C │ - │ - move-result v1 │ - │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 199 │ + .line 201 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$12;->RCDATAEndTagName:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 204 │ + .line 206 │ :goto_0 │ return-void │ │ - .line 201 │ + .line 203 │ :cond_0 │ const-string v0, "emit(Ljava/lang/String;)V │ │ - .line 202 │ + .line 204 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$12;->Rcdata:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ .end method ├── smali/org/jsoup/parser/HtmlTreeBuilderState$10.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 901 │ + .line 903 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->(Ljava/lang/String;ILorg/jsoup/parser/HtmlTreeBuilderState$1;)V │ │ return-void │ .end method │ │ @@ -35,39 +35,39 @@ │ .param p2, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ const/4 v3, 0x1 │ │ const/4 v2, 0x0 │ │ - .line 903 │ + .line 905 │ sget-object v4, Lorg/jsoup/parser/HtmlTreeBuilderState$24;->$SwitchMap$org$jsoup$parser$Token$TokenType:[I │ │ iget-object v5, p1, Lorg/jsoup/parser/Token;->type:Lorg/jsoup/parser/Token$TokenType; │ │ invoke-virtual {v5}, Lorg/jsoup/parser/Token$TokenType;->ordinal()I │ │ move-result v5 │ │ aget v4, v4, v5 │ │ packed-switch v4, :pswitch_data_0 │ │ - .line 915 │ + .line 917 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getPendingTableCharacters()Ljava/util/List; │ │ move-result-object v4 │ │ invoke-interface {v4}, Ljava/util/List;->size()I │ │ move-result v4 │ │ if-lez v4, :cond_4 │ │ - .line 916 │ + .line 918 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getPendingTableCharacters()Ljava/util/List; │ │ move-result-object v4 │ │ invoke-interface {v4}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ move-result-object v4 │ @@ -81,26 +81,26 @@ │ │ invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Ljava/lang/String; │ │ - .line 917 │ + .line 919 │ .local v1, "character":Ljava/lang/String; │ invoke-static {v1}, Lorg/jsoup/parser/HtmlTreeBuilderState;->access$2200(Ljava/lang/String;)Z │ │ move-result v5 │ │ if-nez v5, :cond_2 │ │ - .line 919 │ + .line 921 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 920 │ + .line 922 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v5 │ │ invoke-virtual {v5}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v5 │ @@ -137,43 +137,43 @@ │ │ invoke-static {v5, v6}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_1 │ │ - .line 921 │ + .line 923 │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->setFosterInserts(Z)V │ │ - .line 922 │ + .line 924 │ new-instance v5, Lorg/jsoup/parser/Token$Character; │ │ invoke-direct {v5}, Lorg/jsoup/parser/Token$Character;->()V │ │ invoke-virtual {v5, v1}, Lorg/jsoup/parser/Token$Character;->data(Ljava/lang/String;)Lorg/jsoup/parser/Token$Character; │ │ move-result-object v5 │ │ sget-object v6, Lorg/jsoup/parser/HtmlTreeBuilderState$10;->InBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v5, v6}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ - .line 923 │ + .line 925 │ invoke-virtual {p2, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->setFosterInserts(Z)V │ │ goto :goto_0 │ │ - .line 905 │ + .line 907 │ .end local v1 # "character":Ljava/lang/String; │ :pswitch_0 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asCharacter()Lorg/jsoup/parser/Token$Character; │ │ move-result-object v0 │ │ - .line 906 │ + .line 908 │ .local v0, "c":Lorg/jsoup/parser/Token$Character; │ invoke-virtual {v0}, Lorg/jsoup/parser/Token$Character;->getData()Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState;->access$400()Ljava/lang/String; │ │ @@ -181,41 +181,41 @@ │ │ invoke-virtual {v4, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_0 │ │ - .line 907 │ + .line 909 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 935 │ + .line 937 │ .end local v0 # "c":Lorg/jsoup/parser/Token$Character; │ :goto_1 │ return v2 │ │ - .line 910 │ + .line 912 │ .restart local v0 # "c":Lorg/jsoup/parser/Token$Character; │ :cond_0 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getPendingTableCharacters()Ljava/util/List; │ │ move-result-object v2 │ │ invoke-virtual {v0}, Lorg/jsoup/parser/Token$Character;->getData()Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-interface {v2, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ move v2, v3 │ │ - .line 935 │ + .line 937 │ goto :goto_1 │ │ - .line 925 │ + .line 927 │ .end local v0 # "c":Lorg/jsoup/parser/Token$Character; │ .restart local v1 # "character":Ljava/lang/String; │ :cond_1 │ new-instance v5, Lorg/jsoup/parser/Token$Character; │ │ invoke-direct {v5}, Lorg/jsoup/parser/Token$Character;->()V │ │ @@ -225,49 +225,49 @@ │ │ sget-object v6, Lorg/jsoup/parser/HtmlTreeBuilderState$10;->InBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v5, v6}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ goto/16 :goto_0 │ │ - .line 928 │ + .line 930 │ :cond_2 │ new-instance v5, Lorg/jsoup/parser/Token$Character; │ │ invoke-direct {v5}, Lorg/jsoup/parser/Token$Character;->()V │ │ invoke-virtual {v5, v1}, Lorg/jsoup/parser/Token$Character;->data(Ljava/lang/String;)Lorg/jsoup/parser/Token$Character; │ │ move-result-object v5 │ │ invoke-virtual {p2, v5}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Character;)V │ │ goto/16 :goto_0 │ │ - .line 930 │ + .line 932 │ .end local v1 # "character":Ljava/lang/String; │ :cond_3 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->newPendingTableCharacters()V │ │ - .line 932 │ + .line 934 │ :cond_4 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->originalState()Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ move-result-object v2 │ │ invoke-virtual {p2, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 933 │ + .line 935 │ invoke-virtual {p2, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v2 │ │ goto :goto_1 │ │ - .line 903 │ + .line 905 │ nop │ │ :pswitch_data_0 │ .packed-switch 0x5 │ :pswitch_0 │ .end packed-switch │ .end method ├── smali/org/jsoup/parser/Token$Doctype.smali │ @@ -15,138 +15,158 @@ │ │ │ # instance fields │ .field forceQuirks:Z │ │ .field final name:Ljava/lang/StringBuilder; │ │ +.field pubSysKey:Ljava/lang/String; │ + │ .field final publicIdentifier:Ljava/lang/StringBuilder; │ │ .field final systemIdentifier:Ljava/lang/StringBuilder; │ │ │ # direct methods │ .method constructor ()V │ - .locals 1 │ + .locals 2 │ │ .prologue │ - .line 39 │ - const/4 v0, 0x0 │ + const/4 v1, 0x0 │ │ - invoke-direct {p0, v0}, Lorg/jsoup/parser/Token;->(Lorg/jsoup/parser/Token$1;)V │ + .line 42 │ + invoke-direct {p0, v1}, Lorg/jsoup/parser/Token;->(Lorg/jsoup/parser/Token$1;)V │ │ - .line 34 │ + .line 36 │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ iput-object v0, p0, Lorg/jsoup/parser/Token$Doctype;->name:Ljava/lang/StringBuilder; │ │ - .line 35 │ + .line 37 │ + iput-object v1, p0, Lorg/jsoup/parser/Token$Doctype;->pubSysKey:Ljava/lang/String; │ + │ + .line 38 │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ iput-object v0, p0, Lorg/jsoup/parser/Token$Doctype;->publicIdentifier:Ljava/lang/StringBuilder; │ │ - .line 36 │ + .line 39 │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ iput-object v0, p0, Lorg/jsoup/parser/Token$Doctype;->systemIdentifier:Ljava/lang/StringBuilder; │ │ - .line 37 │ + .line 40 │ const/4 v0, 0x0 │ │ iput-boolean v0, p0, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 40 │ + .line 43 │ sget-object v0, Lorg/jsoup/parser/Token$TokenType;->Doctype:Lorg/jsoup/parser/Token$TokenType; │ │ iput-object v0, p0, Lorg/jsoup/parser/Token$Doctype;->type:Lorg/jsoup/parser/Token$TokenType; │ │ - .line 41 │ + .line 44 │ return-void │ .end method │ │ │ # virtual methods │ .method getName()Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 53 │ + .line 57 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Doctype;->name:Ljava/lang/StringBuilder; │ │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ +.method getPubSysKey()Ljava/lang/String; │ + .locals 1 │ + │ + .prologue │ + .line 61 │ + iget-object v0, p0, Lorg/jsoup/parser/Token$Doctype;->pubSysKey:Ljava/lang/String; │ + │ + return-object v0 │ +.end method │ + │ .method getPublicIdentifier()Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 57 │ + .line 65 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Doctype;->publicIdentifier:Ljava/lang/StringBuilder; │ │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public getSystemIdentifier()Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 61 │ + .line 69 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Doctype;->systemIdentifier:Ljava/lang/StringBuilder; │ │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public isForceQuirks()Z │ .locals 1 │ │ .prologue │ - .line 65 │ + .line 73 │ iget-boolean v0, p0, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ return v0 │ .end method │ │ .method reset()Lorg/jsoup/parser/Token; │ .locals 1 │ │ .prologue │ - .line 45 │ + .line 48 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Doctype;->name:Ljava/lang/StringBuilder; │ │ invoke-static {v0}, Lorg/jsoup/parser/Token$Doctype;->reset(Ljava/lang/StringBuilder;)V │ │ - .line 46 │ + .line 49 │ + const/4 v0, 0x0 │ + │ + iput-object v0, p0, Lorg/jsoup/parser/Token$Doctype;->pubSysKey:Ljava/lang/String; │ + │ + .line 50 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Doctype;->publicIdentifier:Ljava/lang/StringBuilder; │ │ invoke-static {v0}, Lorg/jsoup/parser/Token$Doctype;->reset(Ljava/lang/StringBuilder;)V │ │ - .line 47 │ + .line 51 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Doctype;->systemIdentifier:Ljava/lang/StringBuilder; │ │ invoke-static {v0}, Lorg/jsoup/parser/Token$Doctype;->reset(Ljava/lang/StringBuilder;)V │ │ - .line 48 │ + .line 52 │ const/4 v0, 0x0 │ │ iput-boolean v0, p0, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 49 │ + .line 53 │ return-object p0 │ .end method ├── smali/org/jsoup/parser/TokeniserState$31.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 500 │ + .line 502 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,91 +31,91 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 502 │ + .line 504 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 503 │ + .line 505 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 525 │ + .line 527 │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ - .line 526 │ + .line 528 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$31;->ScriptDataDoubleEscaped:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 528 │ + .line 530 │ :goto_0 │ return-void │ │ - .line 505 │ + .line 507 │ :sswitch_0 │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ goto :goto_0 │ │ - .line 508 │ + .line 510 │ :sswitch_1 │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ - .line 509 │ + .line 511 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$31;->ScriptDataDoubleEscapedLessthanSign:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 512 │ + .line 514 │ :sswitch_2 │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ - .line 513 │ + .line 515 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$31;->ScriptData:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 516 │ + .line 518 │ :sswitch_3 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 517 │ + .line 519 │ const v1, 0xfffd │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ - .line 518 │ + .line 520 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$31;->ScriptDataDoubleEscaped:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 521 │ + .line 523 │ :sswitch_4 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 522 │ + .line 524 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$31;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 503 │ + .line 505 │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_3 │ 0x2d -> :sswitch_0 │ 0x3c -> :sswitch_1 │ 0x3e -> :sswitch_2 │ 0xffff -> :sswitch_4 ├── smali/org/jsoup/parser/TokeniserState$11.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 174 │ + .line 176 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,36 +31,36 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 177 │ + .line 179 │ const/16 v0, 0x2f │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/CharacterReader;->matches(C)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 178 │ + .line 180 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->createTempBuffer()V │ │ - .line 179 │ + .line 181 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$11;->RCDATAEndTagOpen:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 191 │ + .line 193 │ :goto_0 │ return-void │ │ - .line 180 │ + .line 182 │ :cond_0 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->matchesLetter()Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ @@ -94,15 +94,15 @@ │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/CharacterReader;->containsIgnoreCase(Ljava/lang/String;)Z │ │ move-result v0 │ │ if-nez v0, :cond_1 │ │ - .line 183 │ + .line 185 │ const/4 v0, 0x0 │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->createTagPending(Z)Lorg/jsoup/parser/Token$Tag; │ │ move-result-object v0 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->appropriateEndTagName()Ljava/lang/String; │ @@ -111,33 +111,33 @@ │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/Token$Tag;->name(Ljava/lang/String;)Lorg/jsoup/parser/Token$Tag; │ │ move-result-object v0 │ │ iput-object v0, p1, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ - .line 184 │ + .line 186 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitTagPending()V │ │ - .line 185 │ + .line 187 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->unconsume()V │ │ - .line 186 │ + .line 188 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$11;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 188 │ + .line 190 │ :cond_1 │ const-string v0, "<" │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(Ljava/lang/String;)V │ │ - .line 189 │ + .line 191 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$11;->Rcdata:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ .end method ├── smali/org/jsoup/parser/HtmlTreeBuilderState$19.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1340 │ + .line 1343 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->(Ljava/lang/String;ILorg/jsoup/parser/HtmlTreeBuilderState$1;)V │ │ return-void │ .end method │ │ @@ -35,186 +35,186 @@ │ .param p2, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ const/4 v3, 0x1 │ │ const/4 v2, 0x0 │ │ - .line 1342 │ + .line 1345 │ invoke-static {p1}, Lorg/jsoup/parser/HtmlTreeBuilderState;->access$100(Lorg/jsoup/parser/Token;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_1 │ │ - .line 1343 │ + .line 1346 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asCharacter()Lorg/jsoup/parser/Token$Character; │ │ move-result-object v2 │ │ invoke-virtual {p2, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Character;)V │ │ :cond_0 │ :goto_0 │ move v2, v3 │ │ - .line 1383 │ + .line 1386 │ :goto_1 │ return v2 │ │ - .line 1344 │ + .line 1347 │ :cond_1 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isComment()Z │ │ move-result v4 │ │ if-eqz v4, :cond_2 │ │ - .line 1345 │ + .line 1348 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asComment()Lorg/jsoup/parser/Token$Comment; │ │ move-result-object v2 │ │ invoke-virtual {p2, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Comment;)V │ │ goto :goto_0 │ │ - .line 1346 │ + .line 1349 │ :cond_2 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isDoctype()Z │ │ move-result v4 │ │ if-eqz v4, :cond_3 │ │ - .line 1347 │ + .line 1350 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_1 │ │ - .line 1349 │ + .line 1352 │ :cond_3 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isStartTag()Z │ │ move-result v4 │ │ if-eqz v4, :cond_8 │ │ - .line 1350 │ + .line 1353 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v1 │ │ - .line 1351 │ + .line 1354 │ .local v1, "start":Lorg/jsoup/parser/Token$StartTag; │ - invoke-virtual {v1}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ + invoke-virtual {v1}, Lorg/jsoup/parser/Token$StartTag;->normalName()Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 1352 │ + .line 1355 │ .local v0, "name":Ljava/lang/String; │ const-string v4, "html" │ │ invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_4 │ │ - .line 1353 │ + .line 1356 │ sget-object v2, Lorg/jsoup/parser/HtmlTreeBuilderState$19;->InBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ move-result v2 │ │ goto :goto_1 │ │ - .line 1354 │ + .line 1357 │ :cond_4 │ const-string v4, "frameset" │ │ invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_5 │ │ - .line 1355 │ + .line 1358 │ invoke-virtual {p2, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ goto :goto_0 │ │ - .line 1356 │ + .line 1359 │ :cond_5 │ const-string v4, "frame" │ │ invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_6 │ │ - .line 1357 │ + .line 1360 │ invoke-virtual {p2, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertEmpty(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ goto :goto_0 │ │ - .line 1358 │ + .line 1361 │ :cond_6 │ const-string v3, "noframes" │ │ invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v3 │ │ if-eqz v3, :cond_7 │ │ - .line 1359 │ + .line 1362 │ sget-object v2, Lorg/jsoup/parser/HtmlTreeBuilderState$19;->InHead:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ move-result v2 │ │ goto :goto_1 │ │ - .line 1361 │ + .line 1364 │ :cond_7 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_1 │ │ - .line 1364 │ + .line 1367 │ .end local v0 # "name":Ljava/lang/String; │ .end local v1 # "start":Lorg/jsoup/parser/Token$StartTag; │ :cond_8 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEndTag()Z │ │ move-result v4 │ │ if-eqz v4, :cond_a │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asEndTag()Lorg/jsoup/parser/Token$EndTag; │ │ move-result-object v4 │ │ - invoke-virtual {v4}, Lorg/jsoup/parser/Token$EndTag;->name()Ljava/lang/String; │ + invoke-virtual {v4}, Lorg/jsoup/parser/Token$EndTag;->normalName()Ljava/lang/String; │ │ move-result-object v4 │ │ const-string v5, "frameset" │ │ invoke-virtual {v4, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_a │ │ - .line 1365 │ + .line 1368 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v4 │ │ invoke-virtual {v4}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v4 │ @@ -223,24 +223,24 @@ │ │ invoke-virtual {v4, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_9 │ │ - .line 1366 │ + .line 1369 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_1 │ │ - .line 1369 │ + .line 1372 │ :cond_9 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->pop()Lorg/jsoup/nodes/Element; │ │ - .line 1370 │ + .line 1373 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->isFragmentParsing()Z │ │ move-result v2 │ │ if-nez v2, :cond_0 │ │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ @@ -255,30 +255,30 @@ │ │ invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v2 │ │ if-nez v2, :cond_0 │ │ - .line 1371 │ + .line 1374 │ sget-object v2, Lorg/jsoup/parser/HtmlTreeBuilderState$19;->AfterFrameset:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_0 │ │ - .line 1374 │ + .line 1377 │ :cond_a │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEOF()Z │ │ move-result v4 │ │ if-eqz v4, :cond_b │ │ - .line 1375 │ + .line 1378 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v2 │ │ invoke-virtual {v2}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v2 │ @@ -287,21 +287,21 @@ │ │ invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v2 │ │ if-nez v2, :cond_0 │ │ - .line 1376 │ + .line 1379 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ move v2, v3 │ │ - .line 1377 │ + .line 1380 │ goto/16 :goto_1 │ │ - .line 1380 │ + .line 1383 │ :cond_b │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_1 │ .end method ├── smali/org/jsoup/parser/TokeniserState$48.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 996 │ + .line 999 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -33,90 +33,90 @@ │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ const/16 v2, 0x2d │ │ - .line 998 │ + .line 1001 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 999 │ + .line 1002 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 1014 │ + .line 1017 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->commentPending:Lorg/jsoup/parser/Token$Comment; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Comment;->data:Ljava/lang/StringBuilder; │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 1015 │ + .line 1018 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$48;->Comment:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1017 │ + .line 1020 │ :goto_0 │ return-void │ │ - .line 1001 │ + .line 1004 │ :sswitch_0 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$48;->CommentEnd:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1004 │ + .line 1007 │ :sswitch_1 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1005 │ + .line 1008 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->commentPending:Lorg/jsoup/parser/Token$Comment; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Comment;->data:Ljava/lang/StringBuilder; │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ const v2, 0xfffd │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 1006 │ + .line 1009 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$48;->Comment:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1009 │ + .line 1012 │ :sswitch_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1010 │ + .line 1013 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitCommentPending()V │ │ - .line 1011 │ + .line 1014 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$48;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 999 │ + .line 1002 │ nop │ │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_1 │ 0x2d -> :sswitch_0 │ 0xffff -> :sswitch_2 ├── smali/org/jsoup/parser/HtmlTreeBuilderState$7.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 244 │ + .line 245 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->(Ljava/lang/String;ILorg/jsoup/parser/HtmlTreeBuilderState$1;)V │ │ return-void │ .end method │ │ @@ -31,124 +31,124 @@ │ # virtual methods │ .method anyOtherEndTag(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ .locals 5 │ .param p1, "t" # Lorg/jsoup/parser/Token; │ .param p2, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ - .line 762 │ + .line 764 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asEndTag()Lorg/jsoup/parser/Token$EndTag; │ │ move-result-object v4 │ │ invoke-virtual {v4}, Lorg/jsoup/parser/Token$EndTag;->name()Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 763 │ + .line 765 │ .local v0, "name":Ljava/lang/String; │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getStack()Ljava/util/ArrayList; │ │ move-result-object v3 │ │ - .line 764 │ + .line 766 │ .local v3, "stack":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ invoke-virtual {v3}, Ljava/util/ArrayList;->size()I │ │ move-result v4 │ │ add-int/lit8 v2, v4, -0x1 │ │ .local v2, "pos":I │ :goto_0 │ if-ltz v2, :cond_1 │ │ - .line 765 │ + .line 767 │ invoke-virtual {v3, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Lorg/jsoup/nodes/Element; │ │ - .line 766 │ + .line 768 │ .local v1, "node":Lorg/jsoup/nodes/Element; │ invoke-virtual {v1}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-virtual {v4, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_2 │ │ - .line 767 │ + .line 769 │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->generateImpliedEndTags(Ljava/lang/String;)V │ │ - .line 768 │ + .line 770 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v4 │ │ invoke-virtual {v4}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-nez v4, :cond_0 │ │ - .line 769 │ + .line 771 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 770 │ + .line 772 │ :cond_0 │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->popStackToClose(Ljava/lang/String;)V │ │ - .line 779 │ + .line 781 │ .end local v1 # "node":Lorg/jsoup/nodes/Element; │ :cond_1 │ const/4 v4, 0x1 │ │ :goto_1 │ return v4 │ │ - .line 773 │ + .line 775 │ .restart local v1 # "node":Lorg/jsoup/nodes/Element; │ :cond_2 │ invoke-virtual {p2, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->isSpecial(Lorg/jsoup/nodes/Element;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_3 │ │ - .line 774 │ + .line 776 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 775 │ + .line 777 │ const/4 v4, 0x0 │ │ goto :goto_1 │ │ - .line 764 │ + .line 766 │ :cond_3 │ add-int/lit8 v2, v2, -0x1 │ │ goto :goto_0 │ .end method │ │ .method process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ .locals 39 │ .param p1, "t" # Lorg/jsoup/parser/Token; │ .param p2, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ - .line 246 │ + .line 247 │ sget-object v36, Lorg/jsoup/parser/HtmlTreeBuilderState$24;->$SwitchMap$org$jsoup$parser$Token$TokenType:[I │ │ move-object/from16 v0, p1 │ │ iget-object v0, v0, Lorg/jsoup/parser/Token;->type:Lorg/jsoup/parser/Token$TokenType; │ │ move-object/from16 v37, v0 │ @@ -157,29 +157,29 @@ │ │ move-result v37 │ │ aget v36, v36, v37 │ │ packed-switch v36, :pswitch_data_0 │ │ - .line 758 │ + .line 760 │ :cond_0 │ :goto_0 │ const/16 v36, 0x1 │ │ :goto_1 │ return v36 │ │ - .line 248 │ + .line 249 │ :pswitch_0 │ invoke-virtual/range {p1 .. p1}, Lorg/jsoup/parser/Token;->asCharacter()Lorg/jsoup/parser/Token$Character; │ │ move-result-object v8 │ │ - .line 249 │ + .line 250 │ .local v8, "c":Lorg/jsoup/parser/Token$Character; │ invoke-virtual {v8}, Lorg/jsoup/parser/Token$Character;->getData()Ljava/lang/String; │ │ move-result-object v36 │ │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState;->access$400()Ljava/lang/String; │ │ @@ -187,205 +187,205 @@ │ │ invoke-virtual/range {v36 .. v37}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_1 │ │ - .line 251 │ + .line 252 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 252 │ + .line 253 │ const/16 v36, 0x0 │ │ goto :goto_1 │ │ - .line 253 │ + .line 254 │ :cond_1 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->framesetOk()Z │ │ move-result v36 │ │ if-eqz v36, :cond_2 │ │ invoke-static {v8}, Lorg/jsoup/parser/HtmlTreeBuilderState;->access$100(Lorg/jsoup/parser/Token;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_2 │ │ - .line 254 │ + .line 255 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->reconstructFormattingElements()V │ │ - .line 255 │ + .line 256 │ move-object/from16 v0, p2 │ │ invoke-virtual {v0, v8}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Character;)V │ │ goto :goto_0 │ │ - .line 257 │ + .line 258 │ :cond_2 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->reconstructFormattingElements()V │ │ - .line 258 │ + .line 259 │ move-object/from16 v0, p2 │ │ invoke-virtual {v0, v8}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Character;)V │ │ - .line 259 │ + .line 260 │ const/16 v36, 0x0 │ │ move-object/from16 v0, p2 │ │ move/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->framesetOk(Z)V │ │ goto :goto_0 │ │ - .line 264 │ + .line 265 │ .end local v8 # "c":Lorg/jsoup/parser/Token$Character; │ :pswitch_1 │ invoke-virtual/range {p1 .. p1}, Lorg/jsoup/parser/Token;->asComment()Lorg/jsoup/parser/Token$Comment; │ │ move-result-object v36 │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Comment;)V │ │ goto :goto_0 │ │ - .line 268 │ + .line 269 │ :pswitch_2 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 269 │ + .line 270 │ const/16 v36, 0x0 │ │ goto :goto_1 │ │ - .line 272 │ + .line 273 │ :pswitch_3 │ invoke-virtual/range {p1 .. p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v34 │ │ - .line 273 │ + .line 274 │ .local v34, "startTag":Lorg/jsoup/parser/Token$StartTag; │ - invoke-virtual/range {v34 .. v34}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ + invoke-virtual/range {v34 .. v34}, Lorg/jsoup/parser/Token$StartTag;->normalName()Ljava/lang/String; │ │ move-result-object v23 │ │ - .line 274 │ + .line 275 │ .local v23, "name":Ljava/lang/String; │ const-string v36, "a" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_4 │ │ - .line 275 │ + .line 276 │ const-string v36, "a" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->getActiveFormattingElement(Ljava/lang/String;)Lorg/jsoup/nodes/Element; │ │ move-result-object v36 │ │ if-eqz v36, :cond_3 │ │ - .line 276 │ + .line 277 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 277 │ + .line 278 │ const-string v36, "a" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 280 │ + .line 281 │ const-string v36, "a" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->getFromStack(Ljava/lang/String;)Lorg/jsoup/nodes/Element; │ │ move-result-object v27 │ │ - .line 281 │ + .line 282 │ .local v27, "remainingA":Lorg/jsoup/nodes/Element; │ if-eqz v27, :cond_3 │ │ - .line 282 │ + .line 283 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v27 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->removeFromActiveFormattingElements(Lorg/jsoup/nodes/Element;)V │ │ - .line 283 │ + .line 284 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v27 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->removeFromStack(Lorg/jsoup/nodes/Element;)Z │ │ - .line 286 │ + .line 287 │ .end local v27 # "remainingA":Lorg/jsoup/nodes/Element; │ :cond_3 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->reconstructFormattingElements()V │ │ - .line 287 │ + .line 288 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ move-result-object v3 │ │ - .line 288 │ + .line 289 │ .local v3, "a":Lorg/jsoup/nodes/Element; │ move-object/from16 v0, p2 │ │ invoke-virtual {v0, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->pushActiveFormattingElements(Lorg/jsoup/nodes/Element;)V │ │ goto/16 :goto_0 │ │ - .line 289 │ + .line 290 │ .end local v3 # "a":Lorg/jsoup/nodes/Element; │ :cond_4 │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->access$500()[Ljava/lang/String; │ │ move-result-object v36 │ │ move-object/from16 v0, v23 │ @@ -394,36 +394,36 @@ │ │ invoke-static {v0, v1}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_5 │ │ - .line 290 │ + .line 291 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->reconstructFormattingElements()V │ │ - .line 291 │ + .line 292 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertEmpty(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ - .line 292 │ + .line 293 │ const/16 v36, 0x0 │ │ move-object/from16 v0, p2 │ │ move/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->framesetOk(Z)V │ │ goto/16 :goto_0 │ │ - .line 293 │ + .line 294 │ :cond_5 │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->access$600()[Ljava/lang/String; │ │ move-result-object v36 │ │ move-object/from16 v0, v23 │ │ @@ -431,181 +431,181 @@ │ │ invoke-static {v0, v1}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_7 │ │ - .line 294 │ + .line 295 │ const-string v36, "p" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inButtonScope(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_6 │ │ - .line 295 │ + .line 296 │ const-string v36, "p" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 297 │ + .line 298 │ :cond_6 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ goto/16 :goto_0 │ │ - .line 298 │ + .line 299 │ :cond_7 │ const-string v36, "span" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_8 │ │ - .line 300 │ + .line 301 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->reconstructFormattingElements()V │ │ - .line 301 │ + .line 302 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ goto/16 :goto_0 │ │ - .line 302 │ + .line 303 │ :cond_8 │ const-string v36, "li" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_d │ │ - .line 303 │ + .line 304 │ const/16 v36, 0x0 │ │ move-object/from16 v0, p2 │ │ move/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->framesetOk(Z)V │ │ - .line 304 │ + .line 305 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getStack()Ljava/util/ArrayList; │ │ move-result-object v32 │ │ - .line 305 │ + .line 306 │ .local v32, "stack":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ invoke-virtual/range {v32 .. v32}, Ljava/util/ArrayList;->size()I │ │ move-result v36 │ │ add-int/lit8 v19, v36, -0x1 │ │ .local v19, "i":I │ :goto_2 │ if-lez v19, :cond_9 │ │ - .line 306 │ + .line 307 │ move-object/from16 v0, v32 │ │ move/from16 v1, v19 │ │ invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v13 │ │ check-cast v13, Lorg/jsoup/nodes/Element; │ │ - .line 307 │ + .line 308 │ .local v13, "el":Lorg/jsoup/nodes/Element; │ invoke-virtual {v13}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v36 │ │ const-string v37, "li" │ │ invoke-virtual/range {v36 .. v37}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_b │ │ - .line 308 │ + .line 309 │ const-string v36, "li" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 314 │ + .line 315 │ .end local v13 # "el":Lorg/jsoup/nodes/Element; │ :cond_9 │ const-string v36, "p" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inButtonScope(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_a │ │ - .line 315 │ + .line 316 │ const-string v36, "p" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 317 │ + .line 318 │ :cond_a │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ goto/16 :goto_0 │ │ - .line 311 │ + .line 312 │ .restart local v13 # "el":Lorg/jsoup/nodes/Element; │ :cond_b │ move-object/from16 v0, p2 │ │ invoke-virtual {v0, v13}, Lorg/jsoup/parser/HtmlTreeBuilder;->isSpecial(Lorg/jsoup/nodes/Element;)Z │ │ move-result v36 │ @@ -622,21 +622,21 @@ │ │ invoke-static/range {v36 .. v37}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_9 │ │ - .line 305 │ + .line 306 │ :cond_c │ add-int/lit8 v19, v19, -0x1 │ │ goto :goto_2 │ │ - .line 318 │ + .line 319 │ .end local v13 # "el":Lorg/jsoup/nodes/Element; │ .end local v19 # "i":I │ .end local v32 # "stack":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ :cond_d │ const-string v36, "html" │ │ move-object/from16 v0, v23 │ @@ -645,35 +645,35 @@ │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_f │ │ - .line 319 │ + .line 320 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 321 │ + .line 322 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getStack()Ljava/util/ArrayList; │ │ move-result-object v36 │ │ const/16 v37, 0x0 │ │ invoke-virtual/range {v36 .. v37}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v18 │ │ check-cast v18, Lorg/jsoup/nodes/Element; │ │ - .line 322 │ + .line 323 │ .local v18, "html":Lorg/jsoup/nodes/Element; │ invoke-virtual/range {v34 .. v34}, Lorg/jsoup/parser/Token$StartTag;->getAttributes()Lorg/jsoup/nodes/Attributes; │ │ move-result-object v36 │ │ invoke-virtual/range {v36 .. v36}, Lorg/jsoup/nodes/Attributes;->iterator()Ljava/util/Iterator; │ │ @@ -689,15 +689,15 @@ │ │ invoke-interface/range {v36 .. v36}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v6 │ │ check-cast v6, Lorg/jsoup/nodes/Attribute; │ │ - .line 323 │ + .line 324 │ .local v6, "attribute":Lorg/jsoup/nodes/Attribute; │ invoke-virtual {v6}, Lorg/jsoup/nodes/Attribute;->getKey()Ljava/lang/String; │ │ move-result-object v37 │ │ move-object/from16 v0, v18 │ │ @@ -705,26 +705,26 @@ │ │ invoke-virtual {v0, v1}, Lorg/jsoup/nodes/Element;->hasAttr(Ljava/lang/String;)Z │ │ move-result v37 │ │ if-nez v37, :cond_e │ │ - .line 324 │ + .line 325 │ invoke-virtual/range {v18 .. v18}, Lorg/jsoup/nodes/Element;->attributes()Lorg/jsoup/nodes/Attributes; │ │ move-result-object v37 │ │ move-object/from16 v0, v37 │ │ invoke-virtual {v0, v6}, Lorg/jsoup/nodes/Attributes;->put(Lorg/jsoup/nodes/Attribute;)V │ │ goto :goto_3 │ │ - .line 326 │ + .line 327 │ .end local v6 # "attribute":Lorg/jsoup/nodes/Attribute; │ .end local v18 # "html":Lorg/jsoup/nodes/Element; │ :cond_f │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->access$800()[Ljava/lang/String; │ │ move-result-object v36 │ │ @@ -734,56 +734,56 @@ │ │ invoke-static {v0, v1}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_10 │ │ - .line 327 │ + .line 328 │ sget-object v36, Lorg/jsoup/parser/HtmlTreeBuilderState$7;->InHead:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p1 │ │ move-object/from16 v2, v36 │ │ invoke-virtual {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ move-result v36 │ │ goto/16 :goto_1 │ │ - .line 328 │ + .line 329 │ :cond_10 │ const-string v36, "body" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_14 │ │ - .line 329 │ + .line 330 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 330 │ + .line 331 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getStack()Ljava/util/ArrayList; │ │ move-result-object v32 │ │ - .line 331 │ + .line 332 │ .restart local v32 # "stack":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ invoke-virtual/range {v32 .. v32}, Ljava/util/ArrayList;->size()I │ │ move-result v36 │ │ const/16 v37, 0x1 │ │ @@ -825,44 +825,44 @@ │ │ invoke-virtual/range {v36 .. v37}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-nez v36, :cond_12 │ │ - .line 333 │ + .line 334 │ :cond_11 │ const/16 v36, 0x0 │ │ goto/16 :goto_1 │ │ - .line 335 │ + .line 336 │ :cond_12 │ const/16 v36, 0x0 │ │ move-object/from16 v0, p2 │ │ move/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->framesetOk(Z)V │ │ - .line 336 │ + .line 337 │ const/16 v36, 0x1 │ │ move-object/from16 v0, v32 │ │ move/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v7 │ │ check-cast v7, Lorg/jsoup/nodes/Element; │ │ - .line 337 │ + .line 338 │ .local v7, "body":Lorg/jsoup/nodes/Element; │ invoke-virtual/range {v34 .. v34}, Lorg/jsoup/parser/Token$StartTag;->getAttributes()Lorg/jsoup/nodes/Attributes; │ │ move-result-object v36 │ │ invoke-virtual/range {v36 .. v36}, Lorg/jsoup/nodes/Attributes;->iterator()Ljava/util/Iterator; │ │ @@ -878,40 +878,40 @@ │ │ invoke-interface/range {v36 .. v36}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v6 │ │ check-cast v6, Lorg/jsoup/nodes/Attribute; │ │ - .line 338 │ + .line 339 │ .restart local v6 # "attribute":Lorg/jsoup/nodes/Attribute; │ invoke-virtual {v6}, Lorg/jsoup/nodes/Attribute;->getKey()Ljava/lang/String; │ │ move-result-object v37 │ │ move-object/from16 v0, v37 │ │ invoke-virtual {v7, v0}, Lorg/jsoup/nodes/Element;->hasAttr(Ljava/lang/String;)Z │ │ move-result v37 │ │ if-nez v37, :cond_13 │ │ - .line 339 │ + .line 340 │ invoke-virtual {v7}, Lorg/jsoup/nodes/Element;->attributes()Lorg/jsoup/nodes/Attributes; │ │ move-result-object v37 │ │ move-object/from16 v0, v37 │ │ invoke-virtual {v0, v6}, Lorg/jsoup/nodes/Attributes;->put(Lorg/jsoup/nodes/Attribute;)V │ │ goto :goto_4 │ │ - .line 342 │ + .line 343 │ .end local v6 # "attribute":Lorg/jsoup/nodes/Attribute; │ .end local v7 # "body":Lorg/jsoup/nodes/Element; │ .end local v32 # "stack":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ :cond_14 │ const-string v36, "frameset" │ │ move-object/from16 v0, v23 │ @@ -920,27 +920,27 @@ │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_1a │ │ - .line 343 │ + .line 344 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 344 │ + .line 345 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getStack()Ljava/util/ArrayList; │ │ move-result-object v32 │ │ - .line 345 │ + .line 346 │ .restart local v32 # "stack":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ invoke-virtual/range {v32 .. v32}, Ljava/util/ArrayList;->size()I │ │ move-result v36 │ │ const/16 v37, 0x1 │ │ @@ -982,108 +982,108 @@ │ │ invoke-virtual/range {v36 .. v37}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-nez v36, :cond_16 │ │ - .line 347 │ + .line 348 │ :cond_15 │ const/16 v36, 0x0 │ │ goto/16 :goto_1 │ │ - .line 348 │ + .line 349 │ :cond_16 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->framesetOk()Z │ │ move-result v36 │ │ if-nez v36, :cond_17 │ │ - .line 349 │ + .line 350 │ const/16 v36, 0x0 │ │ goto/16 :goto_1 │ │ - .line 351 │ + .line 352 │ :cond_17 │ const/16 v36, 0x1 │ │ move-object/from16 v0, v32 │ │ move/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v29 │ │ check-cast v29, Lorg/jsoup/nodes/Element; │ │ - .line 352 │ + .line 353 │ .local v29, "second":Lorg/jsoup/nodes/Element; │ invoke-virtual/range {v29 .. v29}, Lorg/jsoup/nodes/Element;->parent()Lorg/jsoup/nodes/Element; │ │ move-result-object v36 │ │ if-eqz v36, :cond_18 │ │ - .line 353 │ + .line 354 │ invoke-virtual/range {v29 .. v29}, Lorg/jsoup/nodes/Element;->remove()V │ │ - .line 355 │ + .line 356 │ :cond_18 │ :goto_5 │ invoke-virtual/range {v32 .. v32}, Ljava/util/ArrayList;->size()I │ │ move-result v36 │ │ const/16 v37, 0x1 │ │ move/from16 v0, v36 │ │ move/from16 v1, v37 │ │ if-le v0, v1, :cond_19 │ │ - .line 356 │ + .line 357 │ invoke-virtual/range {v32 .. v32}, Ljava/util/ArrayList;->size()I │ │ move-result v36 │ │ add-int/lit8 v36, v36, -0x1 │ │ move-object/from16 v0, v32 │ │ move/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object; │ │ goto :goto_5 │ │ - .line 357 │ + .line 358 │ :cond_19 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ - .line 358 │ + .line 359 │ sget-object v36, Lorg/jsoup/parser/HtmlTreeBuilderState$7;->InFrameset:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_0 │ │ - .line 360 │ + .line 361 │ .end local v29 # "second":Lorg/jsoup/nodes/Element; │ .end local v32 # "stack":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ :cond_1a │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->access$900()[Ljava/lang/String; │ │ move-result-object v36 │ │ @@ -1093,37 +1093,37 @@ │ │ invoke-static {v0, v1}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_1d │ │ - .line 361 │ + .line 362 │ const-string v36, "p" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inButtonScope(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_1b │ │ - .line 362 │ + .line 363 │ const-string v36, "p" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 364 │ + .line 365 │ :cond_1b │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v36 │ │ invoke-virtual/range {v36 .. v36}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ @@ -1135,35 +1135,35 @@ │ │ invoke-static/range {v36 .. v37}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_1c │ │ - .line 365 │ + .line 366 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 366 │ + .line 367 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->pop()Lorg/jsoup/nodes/Element; │ │ - .line 368 │ + .line 369 │ :cond_1c │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ goto/16 :goto_0 │ │ - .line 369 │ + .line 370 │ :cond_1d │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->access$1000()[Ljava/lang/String; │ │ move-result-object v36 │ │ move-object/from16 v0, v23 │ │ @@ -1171,126 +1171,126 @@ │ │ invoke-static {v0, v1}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_1f │ │ - .line 370 │ + .line 371 │ const-string v36, "p" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inButtonScope(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_1e │ │ - .line 371 │ + .line 372 │ const-string v36, "p" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 373 │ + .line 374 │ :cond_1e │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ - .line 375 │ + .line 376 │ const/16 v36, 0x0 │ │ move-object/from16 v0, p2 │ │ move/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->framesetOk(Z)V │ │ goto/16 :goto_0 │ │ - .line 376 │ + .line 377 │ :cond_1f │ const-string v36, "form" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_22 │ │ - .line 377 │ + .line 378 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getFormElement()Lorg/jsoup/nodes/FormElement; │ │ move-result-object v36 │ │ if-eqz v36, :cond_20 │ │ - .line 378 │ + .line 379 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 379 │ + .line 380 │ const/16 v36, 0x0 │ │ goto/16 :goto_1 │ │ - .line 381 │ + .line 382 │ :cond_20 │ const-string v36, "p" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inButtonScope(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_21 │ │ - .line 382 │ + .line 383 │ const-string v36, "p" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 384 │ + .line 385 │ :cond_21 │ const/16 v36, 0x1 │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ move/from16 v2, v36 │ │ invoke-virtual {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertForm(Lorg/jsoup/parser/Token$StartTag;Z)Lorg/jsoup/nodes/FormElement; │ │ goto/16 :goto_0 │ │ - .line 385 │ + .line 386 │ :cond_22 │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->access$1100()[Ljava/lang/String; │ │ move-result-object v36 │ │ move-object/from16 v0, v23 │ │ @@ -1298,52 +1298,52 @@ │ │ invoke-static {v0, v1}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_27 │ │ - .line 386 │ + .line 387 │ const/16 v36, 0x0 │ │ move-object/from16 v0, p2 │ │ move/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->framesetOk(Z)V │ │ - .line 387 │ + .line 388 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getStack()Ljava/util/ArrayList; │ │ move-result-object v32 │ │ - .line 388 │ + .line 389 │ .restart local v32 # "stack":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ invoke-virtual/range {v32 .. v32}, Ljava/util/ArrayList;->size()I │ │ move-result v36 │ │ add-int/lit8 v19, v36, -0x1 │ │ .restart local v19 # "i":I │ :goto_6 │ if-lez v19, :cond_23 │ │ - .line 389 │ + .line 390 │ move-object/from16 v0, v32 │ │ move/from16 v1, v19 │ │ invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v13 │ │ check-cast v13, Lorg/jsoup/nodes/Element; │ │ - .line 390 │ + .line 391 │ .restart local v13 # "el":Lorg/jsoup/nodes/Element; │ invoke-virtual {v13}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v36 │ │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->access$1100()[Ljava/lang/String; │ │ @@ -1351,60 +1351,60 @@ │ │ invoke-static/range {v36 .. v37}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_25 │ │ - .line 391 │ + .line 392 │ invoke-virtual {v13}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v36 │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 397 │ + .line 398 │ .end local v13 # "el":Lorg/jsoup/nodes/Element; │ :cond_23 │ const-string v36, "p" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inButtonScope(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_24 │ │ - .line 398 │ + .line 399 │ const-string v36, "p" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 400 │ + .line 401 │ :cond_24 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ goto/16 :goto_0 │ │ - .line 394 │ + .line 395 │ .restart local v13 # "el":Lorg/jsoup/nodes/Element; │ :cond_25 │ move-object/from16 v0, p2 │ │ invoke-virtual {v0, v13}, Lorg/jsoup/parser/HtmlTreeBuilder;->isSpecial(Lorg/jsoup/nodes/Element;)Z │ │ move-result v36 │ @@ -1421,21 +1421,21 @@ │ │ invoke-static/range {v36 .. v37}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_23 │ │ - .line 388 │ + .line 389 │ :cond_26 │ add-int/lit8 v19, v19, -0x1 │ │ goto :goto_6 │ │ - .line 401 │ + .line 402 │ .end local v13 # "el":Lorg/jsoup/nodes/Element; │ .end local v19 # "i":I │ .end local v32 # "stack":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ :cond_27 │ const-string v36, "plaintext" │ │ move-object/from16 v0, v23 │ @@ -1444,132 +1444,132 @@ │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_29 │ │ - .line 402 │ + .line 403 │ const-string v36, "p" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inButtonScope(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_28 │ │ - .line 403 │ + .line 404 │ const-string v36, "p" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 405 │ + .line 406 │ :cond_28 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ - .line 406 │ + .line 407 │ move-object/from16 v0, p2 │ │ iget-object v0, v0, Lorg/jsoup/parser/HtmlTreeBuilder;->tokeniser:Lorg/jsoup/parser/Tokeniser; │ │ move-object/from16 v36, v0 │ │ sget-object v37, Lorg/jsoup/parser/TokeniserState;->PLAINTEXT:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual/range {v36 .. v37}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto/16 :goto_0 │ │ - .line 407 │ + .line 408 │ :cond_29 │ const-string v36, "button" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_2b │ │ - .line 408 │ + .line 409 │ const-string v36, "button" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inButtonScope(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_2a │ │ - .line 410 │ + .line 411 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 411 │ + .line 412 │ const-string v36, "button" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 412 │ + .line 413 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ goto/16 :goto_0 │ │ - .line 414 │ + .line 415 │ :cond_2a │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->reconstructFormattingElements()V │ │ - .line 415 │ + .line 416 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ - .line 416 │ + .line 417 │ const/16 v36, 0x0 │ │ move-object/from16 v0, p2 │ │ move/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->framesetOk(Z)V │ │ goto/16 :goto_0 │ │ - .line 418 │ + .line 419 │ :cond_2b │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->access$1200()[Ljava/lang/String; │ │ move-result-object v36 │ │ move-object/from16 v0, v23 │ │ @@ -1577,103 +1577,103 @@ │ │ invoke-static {v0, v1}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_2c │ │ - .line 419 │ + .line 420 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->reconstructFormattingElements()V │ │ - .line 420 │ + .line 421 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ move-result-object v13 │ │ - .line 421 │ + .line 422 │ .restart local v13 # "el":Lorg/jsoup/nodes/Element; │ move-object/from16 v0, p2 │ │ invoke-virtual {v0, v13}, Lorg/jsoup/parser/HtmlTreeBuilder;->pushActiveFormattingElements(Lorg/jsoup/nodes/Element;)V │ │ goto/16 :goto_0 │ │ - .line 422 │ + .line 423 │ .end local v13 # "el":Lorg/jsoup/nodes/Element; │ :cond_2c │ const-string v36, "nobr" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_2e │ │ - .line 423 │ + .line 424 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->reconstructFormattingElements()V │ │ - .line 424 │ + .line 425 │ const-string v36, "nobr" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inScope(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_2d │ │ - .line 425 │ + .line 426 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 426 │ + .line 427 │ const-string v36, "nobr" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 427 │ + .line 428 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->reconstructFormattingElements()V │ │ - .line 429 │ + .line 430 │ :cond_2d │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ move-result-object v13 │ │ - .line 430 │ + .line 431 │ .restart local v13 # "el":Lorg/jsoup/nodes/Element; │ move-object/from16 v0, p2 │ │ invoke-virtual {v0, v13}, Lorg/jsoup/parser/HtmlTreeBuilder;->pushActiveFormattingElements(Lorg/jsoup/nodes/Element;)V │ │ goto/16 :goto_0 │ │ - .line 431 │ + .line 432 │ .end local v13 # "el":Lorg/jsoup/nodes/Element; │ :cond_2e │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->access$1300()[Ljava/lang/String; │ │ move-result-object v36 │ │ move-object/from16 v0, v23 │ @@ -1682,53 +1682,53 @@ │ │ invoke-static {v0, v1}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_2f │ │ - .line 432 │ + .line 433 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->reconstructFormattingElements()V │ │ - .line 433 │ + .line 434 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ - .line 434 │ + .line 435 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertMarkerToFormattingElements()V │ │ - .line 435 │ + .line 436 │ const/16 v36, 0x0 │ │ move-object/from16 v0, p2 │ │ move/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->framesetOk(Z)V │ │ goto/16 :goto_0 │ │ - .line 436 │ + .line 437 │ :cond_2f │ const-string v36, "table" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_31 │ │ - .line 437 │ + .line 438 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getDocument()Lorg/jsoup/nodes/Document; │ │ move-result-object v36 │ │ invoke-virtual/range {v36 .. v36}, Lorg/jsoup/nodes/Document;->quirksMode()Lorg/jsoup/nodes/Document$QuirksMode; │ │ move-result-object v36 │ @@ -1749,78 +1749,78 @@ │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inButtonScope(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_30 │ │ - .line 438 │ + .line 439 │ const-string v36, "p" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 440 │ + .line 441 │ :cond_30 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ - .line 441 │ + .line 442 │ const/16 v36, 0x0 │ │ move-object/from16 v0, p2 │ │ move/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->framesetOk(Z)V │ │ - .line 442 │ + .line 443 │ sget-object v36, Lorg/jsoup/parser/HtmlTreeBuilderState$7;->InTable:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_0 │ │ - .line 443 │ + .line 444 │ :cond_31 │ const-string v36, "input" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_32 │ │ - .line 444 │ + .line 445 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->reconstructFormattingElements()V │ │ - .line 445 │ + .line 446 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertEmpty(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ move-result-object v13 │ │ - .line 446 │ + .line 447 │ .restart local v13 # "el":Lorg/jsoup/nodes/Element; │ const-string v36, "type" │ │ move-object/from16 v0, v36 │ │ invoke-virtual {v13, v0}, Lorg/jsoup/nodes/Element;->attr(Ljava/lang/String;)Ljava/lang/String; │ │ @@ -1830,26 +1830,26 @@ │ │ invoke-virtual/range {v36 .. v37}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-nez v36, :cond_0 │ │ - .line 447 │ + .line 448 │ const/16 v36, 0x0 │ │ move-object/from16 v0, p2 │ │ move/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->framesetOk(Z)V │ │ goto/16 :goto_0 │ │ - .line 448 │ + .line 449 │ .end local v13 # "el":Lorg/jsoup/nodes/Element; │ :cond_32 │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->access$1400()[Ljava/lang/String; │ │ move-result-object v36 │ │ move-object/from16 v0, v23 │ @@ -1858,106 +1858,106 @@ │ │ invoke-static {v0, v1}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_33 │ │ - .line 449 │ + .line 450 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertEmpty(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ goto/16 :goto_0 │ │ - .line 450 │ + .line 451 │ :cond_33 │ const-string v36, "hr" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_35 │ │ - .line 451 │ + .line 452 │ const-string v36, "p" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inButtonScope(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_34 │ │ - .line 452 │ + .line 453 │ const-string v36, "p" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 454 │ + .line 455 │ :cond_34 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertEmpty(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ - .line 455 │ + .line 456 │ const/16 v36, 0x0 │ │ move-object/from16 v0, p2 │ │ move/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->framesetOk(Z)V │ │ goto/16 :goto_0 │ │ - .line 456 │ + .line 457 │ :cond_35 │ const-string v36, "image" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_37 │ │ - .line 457 │ + .line 458 │ const-string v36, "svg" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->getFromStack(Ljava/lang/String;)Lorg/jsoup/nodes/Element; │ │ move-result-object v36 │ │ if-nez v36, :cond_36 │ │ - .line 458 │ + .line 459 │ const-string v36, "img" │ │ move-object/from16 v0, v34 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/Token$StartTag;->name(Ljava/lang/String;)Lorg/jsoup/parser/Token$Tag; │ @@ -1970,97 +1970,97 @@ │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v36 │ │ goto/16 :goto_1 │ │ - .line 460 │ + .line 461 │ :cond_36 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ goto/16 :goto_0 │ │ - .line 461 │ + .line 462 │ :cond_37 │ const-string v36, "isindex" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_3d │ │ - .line 463 │ + .line 464 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 464 │ + .line 465 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getFormElement()Lorg/jsoup/nodes/FormElement; │ │ move-result-object v36 │ │ if-eqz v36, :cond_38 │ │ - .line 465 │ + .line 466 │ const/16 v36, 0x0 │ │ goto/16 :goto_1 │ │ - .line 467 │ + .line 468 │ :cond_38 │ move-object/from16 v0, p2 │ │ iget-object v0, v0, Lorg/jsoup/parser/HtmlTreeBuilder;->tokeniser:Lorg/jsoup/parser/Tokeniser; │ │ move-object/from16 v36, v0 │ │ invoke-virtual/range {v36 .. v36}, Lorg/jsoup/parser/Tokeniser;->acknowledgeSelfClosingFlag()V │ │ - .line 468 │ + .line 469 │ const-string v36, "form" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processStartTag(Ljava/lang/String;)Z │ │ - .line 469 │ + .line 470 │ move-object/from16 v0, v34 │ │ iget-object v0, v0, Lorg/jsoup/parser/Token$StartTag;->attributes:Lorg/jsoup/nodes/Attributes; │ │ move-object/from16 v36, v0 │ │ const-string v37, "action" │ │ invoke-virtual/range {v36 .. v37}, Lorg/jsoup/nodes/Attributes;->hasKey(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_39 │ │ - .line 470 │ + .line 471 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getFormElement()Lorg/jsoup/nodes/FormElement; │ │ move-result-object v15 │ │ - .line 471 │ + .line 472 │ .local v15, "form":Lorg/jsoup/nodes/Element; │ const-string v36, "action" │ │ move-object/from16 v0, v34 │ │ iget-object v0, v0, Lorg/jsoup/parser/Token$StartTag;->attributes:Lorg/jsoup/nodes/Attributes; │ │ @@ -2074,35 +2074,35 @@ │ │ move-object/from16 v0, v36 │ │ move-object/from16 v1, v37 │ │ invoke-virtual {v15, v0, v1}, Lorg/jsoup/nodes/Element;->attr(Ljava/lang/String;Ljava/lang/String;)Lorg/jsoup/nodes/Element; │ │ - .line 473 │ + .line 474 │ .end local v15 # "form":Lorg/jsoup/nodes/Element; │ :cond_39 │ const-string v36, "hr" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processStartTag(Ljava/lang/String;)Z │ │ - .line 474 │ + .line 475 │ const-string v36, "label" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processStartTag(Ljava/lang/String;)Z │ │ - .line 476 │ + .line 477 │ move-object/from16 v0, v34 │ │ iget-object v0, v0, Lorg/jsoup/parser/Token$StartTag;->attributes:Lorg/jsoup/nodes/Attributes; │ │ move-object/from16 v36, v0 │ │ const-string v37, "prompt" │ @@ -2117,20 +2117,20 @@ │ │ iget-object v0, v0, Lorg/jsoup/parser/Token$StartTag;->attributes:Lorg/jsoup/nodes/Attributes; │ │ move-object/from16 v36, v0 │ │ const-string v37, "prompt" │ │ - .line 477 │ + .line 478 │ invoke-virtual/range {v36 .. v37}, Lorg/jsoup/nodes/Attributes;->get(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v26 │ │ - .line 480 │ + .line 481 │ .local v26, "prompt":Ljava/lang/String; │ :goto_7 │ new-instance v36, Lorg/jsoup/parser/Token$Character; │ │ invoke-direct/range {v36 .. v36}, Lorg/jsoup/parser/Token$Character;->()V │ │ move-object/from16 v0, v36 │ @@ -2143,20 +2143,20 @@ │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ - .line 483 │ + .line 484 │ new-instance v20, Lorg/jsoup/nodes/Attributes; │ │ invoke-direct/range {v20 .. v20}, Lorg/jsoup/nodes/Attributes;->()V │ │ - .line 484 │ + .line 485 │ .local v20, "inputAttribs":Lorg/jsoup/nodes/Attributes; │ move-object/from16 v0, v34 │ │ iget-object v0, v0, Lorg/jsoup/parser/Token$StartTag;->attributes:Lorg/jsoup/nodes/Attributes; │ │ move-object/from16 v36, v0 │ │ @@ -2174,15 +2174,15 @@ │ │ invoke-interface/range {v36 .. v36}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v5 │ │ check-cast v5, Lorg/jsoup/nodes/Attribute; │ │ - .line 485 │ + .line 486 │ .local v5, "attr":Lorg/jsoup/nodes/Attribute; │ invoke-virtual {v5}, Lorg/jsoup/nodes/Attribute;->getKey()Ljava/lang/String; │ │ move-result-object v37 │ │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->access$1500()[Ljava/lang/String; │ │ @@ -2190,31 +2190,31 @@ │ │ invoke-static/range {v37 .. v38}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v37 │ │ if-nez v37, :cond_3a │ │ - .line 486 │ + .line 487 │ move-object/from16 v0, v20 │ │ invoke-virtual {v0, v5}, Lorg/jsoup/nodes/Attributes;->put(Lorg/jsoup/nodes/Attribute;)V │ │ goto :goto_8 │ │ - .line 477 │ + .line 478 │ .end local v5 # "attr":Lorg/jsoup/nodes/Attribute; │ .end local v20 # "inputAttribs":Lorg/jsoup/nodes/Attributes; │ .end local v26 # "prompt":Ljava/lang/String; │ :cond_3b │ const-string v26, "This is a searchable index. Enter search keywords: " │ │ goto :goto_7 │ │ - .line 488 │ + .line 489 │ .restart local v20 # "inputAttribs":Lorg/jsoup/nodes/Attributes; │ .restart local v26 # "prompt":Ljava/lang/String; │ :cond_3c │ const-string v36, "name" │ │ const-string v37, "isindex" │ │ @@ -2222,55 +2222,55 @@ │ │ move-object/from16 v1, v36 │ │ move-object/from16 v2, v37 │ │ invoke-virtual {v0, v1, v2}, Lorg/jsoup/nodes/Attributes;->put(Ljava/lang/String;Ljava/lang/String;)V │ │ - .line 489 │ + .line 490 │ const-string v36, "input" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ move-object/from16 v2, v20 │ │ invoke-virtual {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->processStartTag(Ljava/lang/String;Lorg/jsoup/nodes/Attributes;)Z │ │ - .line 490 │ + .line 491 │ const-string v36, "label" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 491 │ + .line 492 │ const-string v36, "hr" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processStartTag(Ljava/lang/String;)Z │ │ - .line 492 │ + .line 493 │ const-string v36, "form" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ goto/16 :goto_0 │ │ - .line 493 │ + .line 494 │ .end local v20 # "inputAttribs":Lorg/jsoup/nodes/Attributes; │ .end local v26 # "prompt":Ljava/lang/String; │ :cond_3d │ const-string v36, "textarea" │ │ move-object/from16 v0, v23 │ │ @@ -2278,207 +2278,207 @@ │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_3e │ │ - .line 494 │ + .line 495 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ - .line 496 │ + .line 497 │ move-object/from16 v0, p2 │ │ iget-object v0, v0, Lorg/jsoup/parser/HtmlTreeBuilder;->tokeniser:Lorg/jsoup/parser/Tokeniser; │ │ move-object/from16 v36, v0 │ │ sget-object v37, Lorg/jsoup/parser/TokeniserState;->Rcdata:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual/range {v36 .. v37}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 497 │ + .line 498 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->markInsertionMode()V │ │ - .line 498 │ + .line 499 │ const/16 v36, 0x0 │ │ move-object/from16 v0, p2 │ │ move/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->framesetOk(Z)V │ │ - .line 499 │ + .line 500 │ sget-object v36, Lorg/jsoup/parser/HtmlTreeBuilderState$7;->Text:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_0 │ │ - .line 500 │ + .line 501 │ :cond_3e │ const-string v36, "xmp" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_40 │ │ - .line 501 │ + .line 502 │ const-string v36, "p" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inButtonScope(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_3f │ │ - .line 502 │ + .line 503 │ const-string v36, "p" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 504 │ + .line 505 │ :cond_3f │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->reconstructFormattingElements()V │ │ - .line 505 │ + .line 506 │ const/16 v36, 0x0 │ │ move-object/from16 v0, p2 │ │ move/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->framesetOk(Z)V │ │ - .line 506 │ + .line 507 │ move-object/from16 v0, v34 │ │ move-object/from16 v1, p2 │ │ invoke-static {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilderState;->access$300(Lorg/jsoup/parser/Token$StartTag;Lorg/jsoup/parser/HtmlTreeBuilder;)V │ │ goto/16 :goto_0 │ │ - .line 507 │ + .line 508 │ :cond_40 │ const-string v36, "iframe" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_41 │ │ - .line 508 │ + .line 509 │ const/16 v36, 0x0 │ │ move-object/from16 v0, p2 │ │ move/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->framesetOk(Z)V │ │ - .line 509 │ + .line 510 │ move-object/from16 v0, v34 │ │ move-object/from16 v1, p2 │ │ invoke-static {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilderState;->access$300(Lorg/jsoup/parser/Token$StartTag;Lorg/jsoup/parser/HtmlTreeBuilder;)V │ │ goto/16 :goto_0 │ │ - .line 510 │ + .line 511 │ :cond_41 │ const-string v36, "noembed" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_42 │ │ - .line 512 │ + .line 513 │ move-object/from16 v0, v34 │ │ move-object/from16 v1, p2 │ │ invoke-static {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilderState;->access$300(Lorg/jsoup/parser/Token$StartTag;Lorg/jsoup/parser/HtmlTreeBuilder;)V │ │ goto/16 :goto_0 │ │ - .line 513 │ + .line 514 │ :cond_42 │ const-string v36, "select" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_45 │ │ - .line 514 │ + .line 515 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->reconstructFormattingElements()V │ │ - .line 515 │ + .line 516 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ - .line 516 │ + .line 517 │ const/16 v36, 0x0 │ │ move-object/from16 v0, p2 │ │ move/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->framesetOk(Z)V │ │ - .line 518 │ + .line 519 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->state()Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ move-result-object v35 │ │ - .line 519 │ + .line 520 │ .local v35, "state":Lorg/jsoup/parser/HtmlTreeBuilderState; │ sget-object v36, Lorg/jsoup/parser/HtmlTreeBuilderState$7;->InTable:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual/range {v35 .. v36}, Lorg/jsoup/parser/HtmlTreeBuilderState;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ @@ -2512,39 +2512,39 @@ │ │ invoke-virtual/range {v35 .. v36}, Lorg/jsoup/parser/HtmlTreeBuilderState;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_44 │ │ - .line 520 │ + .line 521 │ :cond_43 │ sget-object v36, Lorg/jsoup/parser/HtmlTreeBuilderState$7;->InSelectInTable:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_0 │ │ - .line 522 │ + .line 523 │ :cond_44 │ sget-object v36, Lorg/jsoup/parser/HtmlTreeBuilderState$7;->InSelect:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_0 │ │ - .line 523 │ + .line 524 │ .end local v35 # "state":Lorg/jsoup/parser/HtmlTreeBuilderState; │ :cond_45 │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->access$1600()[Ljava/lang/String; │ │ move-result-object v36 │ │ move-object/from16 v0, v23 │ @@ -2553,15 +2553,15 @@ │ │ invoke-static {v0, v1}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_47 │ │ - .line 524 │ + .line 525 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v36 │ │ invoke-virtual/range {v36 .. v36}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v36 │ @@ -2570,37 +2570,37 @@ │ │ invoke-virtual/range {v36 .. v37}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_46 │ │ - .line 525 │ + .line 526 │ const-string v36, "option" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 526 │ + .line 527 │ :cond_46 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->reconstructFormattingElements()V │ │ - .line 527 │ + .line 528 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ goto/16 :goto_0 │ │ - .line 528 │ + .line 529 │ :cond_47 │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->access$1700()[Ljava/lang/String; │ │ move-result-object v36 │ │ move-object/from16 v0, v23 │ │ @@ -2608,31 +2608,31 @@ │ │ invoke-static {v0, v1}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_49 │ │ - .line 529 │ + .line 530 │ const-string v36, "ruby" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inScope(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_0 │ │ - .line 530 │ + .line 531 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->generateImpliedEndTags()V │ │ - .line 531 │ + .line 532 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v36 │ │ invoke-virtual/range {v36 .. v36}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v36 │ @@ -2641,111 +2641,111 @@ │ │ invoke-virtual/range {v36 .. v37}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-nez v36, :cond_48 │ │ - .line 532 │ + .line 533 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 533 │ + .line 534 │ const-string v36, "ruby" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->popStackToBefore(Ljava/lang/String;)V │ │ - .line 535 │ + .line 536 │ :cond_48 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ goto/16 :goto_0 │ │ - .line 537 │ + .line 538 │ :cond_49 │ const-string v36, "math" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_4a │ │ - .line 538 │ + .line 539 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->reconstructFormattingElements()V │ │ - .line 540 │ + .line 541 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ - .line 541 │ + .line 542 │ move-object/from16 v0, p2 │ │ iget-object v0, v0, Lorg/jsoup/parser/HtmlTreeBuilder;->tokeniser:Lorg/jsoup/parser/Tokeniser; │ │ move-object/from16 v36, v0 │ │ invoke-virtual/range {v36 .. v36}, Lorg/jsoup/parser/Tokeniser;->acknowledgeSelfClosingFlag()V │ │ goto/16 :goto_0 │ │ - .line 542 │ + .line 543 │ :cond_4a │ const-string v36, "svg" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_4b │ │ - .line 543 │ + .line 544 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->reconstructFormattingElements()V │ │ - .line 545 │ + .line 546 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ - .line 546 │ + .line 547 │ move-object/from16 v0, p2 │ │ iget-object v0, v0, Lorg/jsoup/parser/HtmlTreeBuilder;->tokeniser:Lorg/jsoup/parser/Tokeniser; │ │ move-object/from16 v36, v0 │ │ invoke-virtual/range {v36 .. v36}, Lorg/jsoup/parser/Tokeniser;->acknowledgeSelfClosingFlag()V │ │ goto/16 :goto_0 │ │ - .line 547 │ + .line 548 │ :cond_4b │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->access$1800()[Ljava/lang/String; │ │ move-result-object v36 │ │ move-object/from16 v0, v23 │ │ @@ -2753,54 +2753,54 @@ │ │ invoke-static {v0, v1}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_4c │ │ - .line 548 │ + .line 549 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 549 │ + .line 550 │ const/16 v36, 0x0 │ │ goto/16 :goto_1 │ │ - .line 551 │ + .line 552 │ :cond_4c │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->reconstructFormattingElements()V │ │ - .line 552 │ + .line 553 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ goto/16 :goto_0 │ │ - .line 557 │ + .line 558 │ .end local v23 # "name":Ljava/lang/String; │ .end local v34 # "startTag":Lorg/jsoup/parser/Token$StartTag; │ :pswitch_4 │ invoke-virtual/range {p1 .. p1}, Lorg/jsoup/parser/Token;->asEndTag()Lorg/jsoup/parser/Token$EndTag; │ │ move-result-object v14 │ │ - .line 558 │ + .line 559 │ .local v14, "endTag":Lorg/jsoup/parser/Token$EndTag; │ - invoke-virtual {v14}, Lorg/jsoup/parser/Token$EndTag;->name()Ljava/lang/String; │ + invoke-virtual {v14}, Lorg/jsoup/parser/Token$EndTag;->normalName()Ljava/lang/String; │ │ move-result-object v23 │ │ - .line 559 │ + .line 560 │ .restart local v23 # "name":Ljava/lang/String; │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->access$1900()[Ljava/lang/String; │ │ move-result-object v36 │ │ move-object/from16 v0, v23 │ │ @@ -2808,79 +2808,79 @@ │ │ invoke-static {v0, v1}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_5f │ │ - .line 561 │ + .line 562 │ const/16 v19, 0x0 │ │ .restart local v19 # "i":I │ :goto_9 │ const/16 v36, 0x8 │ │ move/from16 v0, v19 │ │ move/from16 v1, v36 │ │ if-ge v0, v1, :cond_0 │ │ - .line 562 │ + .line 563 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v23 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->getActiveFormattingElement(Ljava/lang/String;)Lorg/jsoup/nodes/Element; │ │ move-result-object v16 │ │ - .line 563 │ + .line 564 │ .local v16, "formatEl":Lorg/jsoup/nodes/Element; │ if-nez v16, :cond_4d │ │ - .line 564 │ + .line 565 │ invoke-virtual/range {p0 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$7;->anyOtherEndTag(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v36 │ │ goto/16 :goto_1 │ │ - .line 565 │ + .line 566 │ :cond_4d │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v16 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->onStack(Lorg/jsoup/nodes/Element;)Z │ │ move-result v36 │ │ if-nez v36, :cond_4e │ │ - .line 566 │ + .line 567 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 567 │ + .line 568 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v16 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->removeFromActiveFormattingElements(Lorg/jsoup/nodes/Element;)V │ │ - .line 568 │ + .line 569 │ const/16 v36, 0x1 │ │ goto/16 :goto_1 │ │ - .line 569 │ + .line 570 │ :cond_4e │ invoke-virtual/range {v16 .. v16}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v36 │ │ move-object/from16 v0, p2 │ │ @@ -2888,70 +2888,70 @@ │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inScope(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-nez v36, :cond_4f │ │ - .line 570 │ + .line 571 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 571 │ + .line 572 │ const/16 v36, 0x0 │ │ goto/16 :goto_1 │ │ - .line 572 │ + .line 573 │ :cond_4f │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v36 │ │ move-object/from16 v0, v36 │ │ move-object/from16 v1, v16 │ │ if-eq v0, v1, :cond_50 │ │ - .line 573 │ + .line 574 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 575 │ + .line 576 │ :cond_50 │ const/16 v17, 0x0 │ │ - .line 576 │ + .line 577 │ .local v17, "furthestBlock":Lorg/jsoup/nodes/Element; │ const/4 v11, 0x0 │ │ - .line 577 │ + .line 578 │ .local v11, "commonAncestor":Lorg/jsoup/nodes/Element; │ const/16 v30, 0x0 │ │ - .line 578 │ + .line 579 │ .local v30, "seenFormattingElement":Z │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getStack()Ljava/util/ArrayList; │ │ move-result-object v32 │ │ - .line 581 │ + .line 582 │ .restart local v32 # "stack":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ invoke-virtual/range {v32 .. v32}, Ljava/util/ArrayList;->size()I │ │ move-result v33 │ │ - .line 582 │ + .line 583 │ .local v33, "stackSize":I │ const/16 v31, 0x0 │ │ .local v31, "si":I │ :goto_a │ move/from16 v0, v31 │ │ @@ -2963,174 +2963,174 @@ │ │ move/from16 v0, v31 │ │ move/from16 v1, v36 │ │ if-ge v0, v1, :cond_53 │ │ - .line 583 │ + .line 584 │ move-object/from16 v0, v32 │ │ move/from16 v1, v31 │ │ invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v13 │ │ check-cast v13, Lorg/jsoup/nodes/Element; │ │ - .line 584 │ + .line 585 │ .restart local v13 # "el":Lorg/jsoup/nodes/Element; │ move-object/from16 v0, v16 │ │ if-ne v13, v0, :cond_52 │ │ - .line 585 │ + .line 586 │ add-int/lit8 v36, v31, -0x1 │ │ move-object/from16 v0, v32 │ │ move/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v11 │ │ .end local v11 # "commonAncestor":Lorg/jsoup/nodes/Element; │ check-cast v11, Lorg/jsoup/nodes/Element; │ │ - .line 586 │ + .line 587 │ .restart local v11 # "commonAncestor":Lorg/jsoup/nodes/Element; │ const/16 v30, 0x1 │ │ - .line 582 │ + .line 583 │ :cond_51 │ add-int/lit8 v31, v31, 0x1 │ │ goto :goto_a │ │ - .line 587 │ + .line 588 │ :cond_52 │ if-eqz v30, :cond_51 │ │ move-object/from16 v0, p2 │ │ invoke-virtual {v0, v13}, Lorg/jsoup/parser/HtmlTreeBuilder;->isSpecial(Lorg/jsoup/nodes/Element;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_51 │ │ - .line 588 │ + .line 589 │ move-object/from16 v17, v13 │ │ - .line 592 │ + .line 593 │ .end local v13 # "el":Lorg/jsoup/nodes/Element; │ :cond_53 │ if-nez v17, :cond_54 │ │ - .line 593 │ + .line 594 │ invoke-virtual/range {v16 .. v16}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v36 │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->popStackToClose(Ljava/lang/String;)V │ │ - .line 594 │ + .line 595 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v16 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->removeFromActiveFormattingElements(Lorg/jsoup/nodes/Element;)V │ │ - .line 595 │ + .line 596 │ const/16 v36, 0x1 │ │ goto/16 :goto_1 │ │ - .line 600 │ + .line 601 │ :cond_54 │ move-object/from16 v24, v17 │ │ - .line 601 │ + .line 602 │ .local v24, "node":Lorg/jsoup/nodes/Element; │ move-object/from16 v22, v17 │ │ - .line 602 │ + .line 603 │ .local v22, "lastNode":Lorg/jsoup/nodes/Element; │ const/16 v21, 0x0 │ │ .local v21, "j":I │ :goto_b │ const/16 v36, 0x3 │ │ move/from16 v0, v21 │ │ move/from16 v1, v36 │ │ if-ge v0, v1, :cond_57 │ │ - .line 603 │ + .line 604 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v24 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->onStack(Lorg/jsoup/nodes/Element;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_55 │ │ - .line 604 │ + .line 605 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v24 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->aboveOnStack(Lorg/jsoup/nodes/Element;)Lorg/jsoup/nodes/Element; │ │ move-result-object v24 │ │ - .line 605 │ + .line 606 │ :cond_55 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v24 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->isInActiveFormattingElements(Lorg/jsoup/nodes/Element;)Z │ │ move-result v36 │ │ if-nez v36, :cond_56 │ │ - .line 606 │ + .line 607 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v24 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->removeFromStack(Lorg/jsoup/nodes/Element;)Z │ │ - .line 602 │ + .line 603 │ :goto_c │ add-int/lit8 v21, v21, 0x1 │ │ goto :goto_b │ │ - .line 608 │ + .line 609 │ :cond_56 │ move-object/from16 v0, v24 │ │ move-object/from16 v1, v16 │ │ if-ne v0, v1, :cond_59 │ │ - .line 627 │ + .line 629 │ :cond_57 │ invoke-virtual {v11}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v36 │ │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->access$2000()[Ljava/lang/String; │ │ @@ -3138,33 +3138,33 @@ │ │ invoke-static/range {v36 .. v37}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_5c │ │ - .line 628 │ + .line 630 │ invoke-virtual/range {v22 .. v22}, Lorg/jsoup/nodes/Element;->parent()Lorg/jsoup/nodes/Element; │ │ move-result-object v36 │ │ if-eqz v36, :cond_58 │ │ - .line 629 │ + .line 631 │ invoke-virtual/range {v22 .. v22}, Lorg/jsoup/nodes/Element;->remove()V │ │ - .line 630 │ + .line 632 │ :cond_58 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v22 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertInFosterParent(Lorg/jsoup/nodes/Node;)V │ │ - .line 637 │ + .line 639 │ :goto_d │ new-instance v4, Lorg/jsoup/nodes/Element; │ │ invoke-virtual/range {v16 .. v16}, Lorg/jsoup/nodes/Element;->tag()Lorg/jsoup/parser/Tag; │ │ move-result-object v36 │ │ @@ -3174,27 +3174,27 @@ │ │ move-object/from16 v0, v36 │ │ move-object/from16 v1, v37 │ │ invoke-direct {v4, v0, v1}, Lorg/jsoup/nodes/Element;->(Lorg/jsoup/parser/Tag;Ljava/lang/String;)V │ │ - .line 638 │ + .line 640 │ .local v4, "adopter":Lorg/jsoup/nodes/Element; │ invoke-virtual {v4}, Lorg/jsoup/nodes/Element;->attributes()Lorg/jsoup/nodes/Attributes; │ │ move-result-object v36 │ │ invoke-virtual/range {v16 .. v16}, Lorg/jsoup/nodes/Element;->attributes()Lorg/jsoup/nodes/Attributes; │ │ move-result-object v37 │ │ invoke-virtual/range {v36 .. v37}, Lorg/jsoup/nodes/Attributes;->addAll(Lorg/jsoup/nodes/Attributes;)V │ │ - .line 639 │ + .line 641 │ invoke-virtual/range {v17 .. v17}, Lorg/jsoup/nodes/Element;->childNodes()Ljava/util/List; │ │ move-result-object v36 │ │ invoke-virtual/range {v17 .. v17}, Lorg/jsoup/nodes/Element;->childNodeSize()I │ │ move-result v37 │ @@ -3207,15 +3207,15 @@ │ │ invoke-interface/range {v36 .. v37}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; │ │ move-result-object v10 │ │ check-cast v10, [Lorg/jsoup/nodes/Node; │ │ - .line 640 │ + .line 642 │ .local v10, "childNodes":[Lorg/jsoup/nodes/Node; │ array-length v0, v10 │ │ move/from16 v37, v0 │ │ const/16 v36, 0x0 │ │ @@ -3224,35 +3224,37 @@ │ │ move/from16 v1, v37 │ │ if-ge v0, v1, :cond_5e │ │ aget-object v9, v10, v36 │ │ - .line 641 │ + .line 643 │ .local v9, "childNode":Lorg/jsoup/nodes/Node; │ invoke-virtual {v4, v9}, Lorg/jsoup/nodes/Element;->appendChild(Lorg/jsoup/nodes/Node;)Lorg/jsoup/nodes/Element; │ │ - .line 640 │ + .line 642 │ add-int/lit8 v36, v36, 0x1 │ │ goto :goto_e │ │ - .line 611 │ + .line 612 │ .end local v4 # "adopter":Lorg/jsoup/nodes/Element; │ .end local v9 # "childNode":Lorg/jsoup/nodes/Node; │ .end local v10 # "childNodes":[Lorg/jsoup/nodes/Node; │ :cond_59 │ new-instance v28, Lorg/jsoup/nodes/Element; │ │ invoke-virtual/range {v24 .. v24}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v36 │ │ - invoke-static/range {v36 .. v36}, Lorg/jsoup/parser/Tag;->valueOf(Ljava/lang/String;)Lorg/jsoup/parser/Tag; │ + sget-object v37, Lorg/jsoup/parser/ParseSettings;->preserveCase:Lorg/jsoup/parser/ParseSettings; │ + │ + invoke-static/range {v36 .. v37}, Lorg/jsoup/parser/Tag;->valueOf(Ljava/lang/String;Lorg/jsoup/parser/ParseSettings;)Lorg/jsoup/parser/Tag; │ │ move-result-object v36 │ │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getBaseUri()Ljava/lang/String; │ │ move-result-object v37 │ │ @@ -3260,122 +3262,122 @@ │ │ move-object/from16 v1, v36 │ │ move-object/from16 v2, v37 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/nodes/Element;->(Lorg/jsoup/parser/Tag;Ljava/lang/String;)V │ │ - .line 612 │ + .line 614 │ .local v28, "replacement":Lorg/jsoup/nodes/Element; │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v24 │ │ move-object/from16 v2, v28 │ │ invoke-virtual {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->replaceActiveFormattingElement(Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)V │ │ - .line 613 │ + .line 615 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v24 │ │ move-object/from16 v2, v28 │ │ invoke-virtual {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->replaceOnStack(Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)V │ │ - .line 614 │ + .line 616 │ move-object/from16 v24, v28 │ │ - .line 616 │ + .line 618 │ move-object/from16 v0, v22 │ │ move-object/from16 v1, v17 │ │ if-ne v0, v1, :cond_5a │ │ - .line 620 │ + .line 622 │ :cond_5a │ invoke-virtual/range {v22 .. v22}, Lorg/jsoup/nodes/Element;->parent()Lorg/jsoup/nodes/Element; │ │ move-result-object v36 │ │ if-eqz v36, :cond_5b │ │ - .line 621 │ + .line 623 │ invoke-virtual/range {v22 .. v22}, Lorg/jsoup/nodes/Element;->remove()V │ │ - .line 622 │ + .line 624 │ :cond_5b │ move-object/from16 v0, v24 │ │ move-object/from16 v1, v22 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/nodes/Element;->appendChild(Lorg/jsoup/nodes/Node;)Lorg/jsoup/nodes/Element; │ │ - .line 624 │ + .line 626 │ move-object/from16 v22, v24 │ │ goto/16 :goto_c │ │ - .line 632 │ + .line 634 │ .end local v28 # "replacement":Lorg/jsoup/nodes/Element; │ :cond_5c │ invoke-virtual/range {v22 .. v22}, Lorg/jsoup/nodes/Element;->parent()Lorg/jsoup/nodes/Element; │ │ move-result-object v36 │ │ if-eqz v36, :cond_5d │ │ - .line 633 │ + .line 635 │ invoke-virtual/range {v22 .. v22}, Lorg/jsoup/nodes/Element;->remove()V │ │ - .line 634 │ + .line 636 │ :cond_5d │ move-object/from16 v0, v22 │ │ invoke-virtual {v11, v0}, Lorg/jsoup/nodes/Element;->appendChild(Lorg/jsoup/nodes/Node;)Lorg/jsoup/nodes/Element; │ │ goto/16 :goto_d │ │ - .line 643 │ + .line 645 │ .restart local v4 # "adopter":Lorg/jsoup/nodes/Element; │ .restart local v10 # "childNodes":[Lorg/jsoup/nodes/Node; │ :cond_5e │ move-object/from16 v0, v17 │ │ invoke-virtual {v0, v4}, Lorg/jsoup/nodes/Element;->appendChild(Lorg/jsoup/nodes/Node;)Lorg/jsoup/nodes/Element; │ │ - .line 644 │ + .line 646 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v16 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->removeFromActiveFormattingElements(Lorg/jsoup/nodes/Element;)V │ │ - .line 646 │ + .line 648 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v16 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->removeFromStack(Lorg/jsoup/nodes/Element;)Z │ │ - .line 647 │ + .line 649 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v17 │ │ invoke-virtual {v0, v1, v4}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertOnStackAfter(Lorg/jsoup/nodes/Element;Lorg/jsoup/nodes/Element;)V │ │ - .line 561 │ + .line 562 │ add-int/lit8 v19, v19, 0x1 │ │ goto/16 :goto_9 │ │ - .line 649 │ + .line 651 │ .end local v4 # "adopter":Lorg/jsoup/nodes/Element; │ .end local v10 # "childNodes":[Lorg/jsoup/nodes/Node; │ .end local v11 # "commonAncestor":Lorg/jsoup/nodes/Element; │ .end local v16 # "formatEl":Lorg/jsoup/nodes/Element; │ .end local v17 # "furthestBlock":Lorg/jsoup/nodes/Element; │ .end local v19 # "i":I │ .end local v21 # "j":I │ @@ -3396,42 +3398,42 @@ │ │ invoke-static {v0, v1}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_62 │ │ - .line 650 │ + .line 652 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v23 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inScope(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-nez v36, :cond_60 │ │ - .line 652 │ + .line 654 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 653 │ + .line 655 │ const/16 v36, 0x0 │ │ goto/16 :goto_1 │ │ - .line 655 │ + .line 657 │ :cond_60 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->generateImpliedEndTags()V │ │ - .line 656 │ + .line 658 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v36 │ │ invoke-virtual/range {v36 .. v36}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v36 │ @@ -3442,98 +3444,98 @@ │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-nez v36, :cond_61 │ │ - .line 657 │ + .line 659 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 658 │ + .line 660 │ :cond_61 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v23 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->popStackToClose(Ljava/lang/String;)V │ │ goto/16 :goto_0 │ │ - .line 660 │ + .line 662 │ :cond_62 │ const-string v36, "span" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_63 │ │ - .line 662 │ + .line 664 │ invoke-virtual/range {p0 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$7;->anyOtherEndTag(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v36 │ │ goto/16 :goto_1 │ │ - .line 663 │ + .line 665 │ :cond_63 │ const-string v36, "li" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_66 │ │ - .line 664 │ + .line 666 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v23 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inListItemScope(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-nez v36, :cond_64 │ │ - .line 665 │ + .line 667 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 666 │ + .line 668 │ const/16 v36, 0x0 │ │ goto/16 :goto_1 │ │ - .line 668 │ + .line 670 │ :cond_64 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v23 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->generateImpliedEndTags(Ljava/lang/String;)V │ │ - .line 669 │ + .line 671 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v36 │ │ invoke-virtual/range {v36 .. v36}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v36 │ @@ -3544,181 +3546,181 @@ │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-nez v36, :cond_65 │ │ - .line 670 │ + .line 672 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 671 │ + .line 673 │ :cond_65 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v23 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->popStackToClose(Ljava/lang/String;)V │ │ goto/16 :goto_0 │ │ - .line 673 │ + .line 675 │ :cond_66 │ const-string v36, "body" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_68 │ │ - .line 674 │ + .line 676 │ const-string v36, "body" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inScope(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-nez v36, :cond_67 │ │ - .line 675 │ + .line 677 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 676 │ + .line 678 │ const/16 v36, 0x0 │ │ goto/16 :goto_1 │ │ - .line 679 │ + .line 681 │ :cond_67 │ sget-object v36, Lorg/jsoup/parser/HtmlTreeBuilderState$7;->AfterBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_0 │ │ - .line 681 │ + .line 683 │ :cond_68 │ const-string v36, "html" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_69 │ │ - .line 682 │ + .line 684 │ const-string v36, "body" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ move-result v25 │ │ - .line 683 │ + .line 685 │ .local v25, "notIgnored":Z │ if-eqz v25, :cond_0 │ │ - .line 684 │ + .line 686 │ move-object/from16 v0, p2 │ │ invoke-virtual {v0, v14}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v36 │ │ goto/16 :goto_1 │ │ - .line 685 │ + .line 687 │ .end local v25 # "notIgnored":Z │ :cond_69 │ const-string v36, "form" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_6d │ │ - .line 686 │ + .line 688 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->getFormElement()Lorg/jsoup/nodes/FormElement; │ │ move-result-object v12 │ │ - .line 687 │ + .line 689 │ .local v12, "currentForm":Lorg/jsoup/nodes/Element; │ const/16 v36, 0x0 │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->setFormElement(Lorg/jsoup/nodes/FormElement;)V │ │ - .line 688 │ + .line 690 │ if-eqz v12, :cond_6a │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v23 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inScope(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-nez v36, :cond_6b │ │ - .line 689 │ + .line 691 │ :cond_6a │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 690 │ + .line 692 │ const/16 v36, 0x0 │ │ goto/16 :goto_1 │ │ - .line 692 │ + .line 694 │ :cond_6b │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->generateImpliedEndTags()V │ │ - .line 693 │ + .line 695 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v36 │ │ invoke-virtual/range {v36 .. v36}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v36 │ @@ -3729,87 +3731,87 @@ │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-nez v36, :cond_6c │ │ - .line 694 │ + .line 696 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 696 │ + .line 698 │ :cond_6c │ move-object/from16 v0, p2 │ │ invoke-virtual {v0, v12}, Lorg/jsoup/parser/HtmlTreeBuilder;->removeFromStack(Lorg/jsoup/nodes/Element;)Z │ │ goto/16 :goto_0 │ │ - .line 698 │ + .line 700 │ .end local v12 # "currentForm":Lorg/jsoup/nodes/Element; │ :cond_6d │ const-string v36, "p" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_70 │ │ - .line 699 │ + .line 701 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v23 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inButtonScope(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-nez v36, :cond_6e │ │ - .line 700 │ + .line 702 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 701 │ + .line 703 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v23 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processStartTag(Ljava/lang/String;)Z │ │ - .line 702 │ + .line 704 │ move-object/from16 v0, p2 │ │ invoke-virtual {v0, v14}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v36 │ │ goto/16 :goto_1 │ │ - .line 704 │ + .line 706 │ :cond_6e │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v23 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->generateImpliedEndTags(Ljava/lang/String;)V │ │ - .line 705 │ + .line 707 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v36 │ │ invoke-virtual/range {v36 .. v36}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v36 │ @@ -3820,32 +3822,32 @@ │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-nez v36, :cond_6f │ │ - .line 706 │ + .line 708 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 707 │ + .line 709 │ :cond_6f │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v23 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->popStackToClose(Ljava/lang/String;)V │ │ goto/16 :goto_0 │ │ - .line 709 │ + .line 711 │ :cond_70 │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->access$1100()[Ljava/lang/String; │ │ move-result-object v36 │ │ move-object/from16 v0, v23 │ │ @@ -3853,46 +3855,46 @@ │ │ invoke-static {v0, v1}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_73 │ │ - .line 710 │ + .line 712 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v23 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inScope(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-nez v36, :cond_71 │ │ - .line 711 │ + .line 713 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 712 │ + .line 714 │ const/16 v36, 0x0 │ │ goto/16 :goto_1 │ │ - .line 714 │ + .line 716 │ :cond_71 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v23 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->generateImpliedEndTags(Ljava/lang/String;)V │ │ - .line 715 │ + .line 717 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v36 │ │ invoke-virtual/range {v36 .. v36}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v36 │ @@ -3903,32 +3905,32 @@ │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-nez v36, :cond_72 │ │ - .line 716 │ + .line 718 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 717 │ + .line 719 │ :cond_72 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v23 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->popStackToClose(Ljava/lang/String;)V │ │ goto/16 :goto_0 │ │ - .line 719 │ + .line 721 │ :cond_73 │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->access$900()[Ljava/lang/String; │ │ move-result-object v36 │ │ move-object/from16 v0, v23 │ │ @@ -3936,50 +3938,50 @@ │ │ invoke-static {v0, v1}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_76 │ │ - .line 720 │ + .line 722 │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->access$900()[Ljava/lang/String; │ │ move-result-object v36 │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inScope([Ljava/lang/String;)Z │ │ move-result v36 │ │ if-nez v36, :cond_74 │ │ - .line 721 │ + .line 723 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 722 │ + .line 724 │ const/16 v36, 0x0 │ │ goto/16 :goto_1 │ │ - .line 724 │ + .line 726 │ :cond_74 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v23 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->generateImpliedEndTags(Ljava/lang/String;)V │ │ - .line 725 │ + .line 727 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v36 │ │ invoke-virtual/range {v36 .. v36}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v36 │ @@ -3990,57 +3992,57 @@ │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-nez v36, :cond_75 │ │ - .line 726 │ + .line 728 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 727 │ + .line 729 │ :cond_75 │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->access$900()[Ljava/lang/String; │ │ move-result-object v36 │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->popStackToClose([Ljava/lang/String;)V │ │ goto/16 :goto_0 │ │ - .line 729 │ + .line 731 │ :cond_76 │ const-string v36, "sarcasm" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_77 │ │ - .line 731 │ + .line 733 │ invoke-virtual/range {p0 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$7;->anyOtherEndTag(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v36 │ │ goto/16 :goto_1 │ │ - .line 732 │ + .line 734 │ :cond_77 │ invoke-static {}, Lorg/jsoup/parser/HtmlTreeBuilderState$Constants;->access$1300()[Ljava/lang/String; │ │ move-result-object v36 │ │ move-object/from16 v0, v23 │ │ @@ -4048,55 +4050,55 @@ │ │ invoke-static {v0, v1}, Lorg/jsoup/helper/StringUtil;->inSorted(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_7a │ │ - .line 733 │ + .line 735 │ const-string v36, "name" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inScope(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-nez v36, :cond_0 │ │ - .line 734 │ + .line 736 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v23 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inScope(Ljava/lang/String;)Z │ │ move-result v36 │ │ if-nez v36, :cond_78 │ │ - .line 735 │ + .line 737 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 736 │ + .line 738 │ const/16 v36, 0x0 │ │ goto/16 :goto_1 │ │ - .line 738 │ + .line 740 │ :cond_78 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->generateImpliedEndTags()V │ │ - .line 739 │ + .line 741 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v36 │ │ invoke-virtual/range {v36 .. v36}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v36 │ @@ -4107,78 +4109,78 @@ │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-nez v36, :cond_79 │ │ - .line 740 │ + .line 742 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 741 │ + .line 743 │ :cond_79 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v23 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->popStackToClose(Ljava/lang/String;)V │ │ - .line 742 │ + .line 744 │ invoke-virtual/range {p2 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->clearFormattingElementsToLastMarker()V │ │ goto/16 :goto_0 │ │ - .line 744 │ + .line 746 │ :cond_7a │ const-string v36, "br" │ │ move-object/from16 v0, v23 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v36 │ │ if-eqz v36, :cond_7b │ │ - .line 745 │ + .line 747 │ move-object/from16 v0, p2 │ │ move-object/from16 v1, p0 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 746 │ + .line 748 │ const-string v36, "br" │ │ move-object/from16 v0, p2 │ │ move-object/from16 v1, v36 │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->processStartTag(Ljava/lang/String;)Z │ │ - .line 747 │ + .line 749 │ const/16 v36, 0x0 │ │ goto/16 :goto_1 │ │ - .line 749 │ + .line 751 │ :cond_7b │ invoke-virtual/range {p0 .. p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$7;->anyOtherEndTag(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v36 │ │ goto/16 :goto_1 │ │ - .line 246 │ + .line 247 │ nop │ │ :pswitch_data_0 │ .packed-switch 0x1 │ :pswitch_1 │ :pswitch_2 │ :pswitch_3 ├── smali/org/jsoup/parser/TokeniserState$57.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1280 │ + .line 1285 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -33,96 +33,96 @@ │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ const/4 v2, 0x1 │ │ - .line 1282 │ + .line 1287 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 1283 │ + .line 1288 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 1304 │ + .line 1309 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Doctype;->publicIdentifier:Ljava/lang/StringBuilder; │ │ invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 1306 │ + .line 1311 │ :goto_0 │ return-void │ │ - .line 1285 │ + .line 1290 │ :sswitch_0 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$57;->AfterDoctypePublicIdentifier:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1288 │ + .line 1293 │ :sswitch_1 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1289 │ + .line 1294 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Doctype;->publicIdentifier:Ljava/lang/StringBuilder; │ │ const v2, 0xfffd │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ goto :goto_0 │ │ - .line 1292 │ + .line 1297 │ :sswitch_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1293 │ + .line 1298 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1294 │ + .line 1299 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1295 │ + .line 1300 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$57;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1298 │ + .line 1303 │ :sswitch_3 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1299 │ + .line 1304 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1300 │ + .line 1305 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1301 │ + .line 1306 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$57;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1283 │ + .line 1288 │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_1 │ 0x22 -> :sswitch_0 │ 0x3e -> :sswitch_2 │ 0xffff -> :sswitch_3 │ .end sparse-switch ├── smali/org/jsoup/parser/TokeniserState$13.smali │ @@ -15,29 +15,29 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 206 │ + .line 208 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ .method private anythingElse(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 247 │ + .line 249 │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ const-string v1, "append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ @@ -56,148 +56,144 @@ │ │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(Ljava/lang/String;)V │ │ - .line 248 │ + .line 250 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->unconsume()V │ │ - .line 249 │ + .line 251 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$13;->Rcdata:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 250 │ + .line 252 │ return-void │ .end method │ │ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ - .locals 4 │ + .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 208 │ + .line 210 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->matchesLetter()Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ - .line 209 │ + .line 211 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consumeLetterSequence()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 210 │ + .line 212 │ .local v1, "name":Ljava/lang/String; │ iget-object v2, p1, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ - invoke-virtual {v1}, Ljava/lang/String;->toLowerCase()Ljava/lang/String; │ - │ - move-result-object v3 │ + invoke-virtual {v2, v1}, Lorg/jsoup/parser/Token$Tag;->appendTagName(Ljava/lang/String;)V │ │ - invoke-virtual {v2, v3}, Lorg/jsoup/parser/Token$Tag;->appendTagName(Ljava/lang/String;)V │ - │ - .line 211 │ + .line 213 │ iget-object v2, p1, Lorg/jsoup/parser/Tokeniser;->dataBuffer:Ljava/lang/StringBuilder; │ │ invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - .line 244 │ + .line 246 │ .end local v1 # "name":Ljava/lang/String; │ :goto_0 │ return-void │ │ - .line 215 │ + .line 217 │ :cond_0 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 216 │ + .line 218 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 242 │ + .line 244 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/TokeniserState$13;->anythingElse(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ │ goto :goto_0 │ │ - .line 222 │ + .line 224 │ :sswitch_0 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->isAppropriateEndTagToken()Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - .line 223 │ + .line 225 │ sget-object v2, Lorg/jsoup/parser/TokeniserState$13;->BeforeAttributeName:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v2}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 225 │ + .line 227 │ :cond_1 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/TokeniserState$13;->anythingElse(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ │ goto :goto_0 │ │ - .line 228 │ + .line 230 │ :sswitch_1 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->isAppropriateEndTagToken()Z │ │ move-result v2 │ │ if-eqz v2, :cond_2 │ │ - .line 229 │ + .line 231 │ sget-object v2, Lorg/jsoup/parser/TokeniserState$13;->SelfClosingStartTag:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v2}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 231 │ + .line 233 │ :cond_2 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/TokeniserState$13;->anythingElse(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ │ goto :goto_0 │ │ - .line 234 │ + .line 236 │ :sswitch_2 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->isAppropriateEndTagToken()Z │ │ move-result v2 │ │ if-eqz v2, :cond_3 │ │ - .line 235 │ + .line 237 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitTagPending()V │ │ - .line 236 │ + .line 238 │ sget-object v2, Lorg/jsoup/parser/TokeniserState$13;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v2}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 239 │ + .line 241 │ :cond_3 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/TokeniserState$13;->anythingElse(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ │ goto :goto_0 │ │ - .line 216 │ + .line 218 │ nop │ │ :sswitch_data_0 │ .sparse-switch │ 0x9 -> :sswitch_0 │ 0xa -> :sswitch_0 │ 0xc -> :sswitch_0 ├── smali/org/jsoup/parser/TokeniserState$66.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1571 │ + .line 1576 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,49 +31,49 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 1573 │ + .line 1578 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 1574 │ + .line 1579 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 1587 │ + .line 1592 │ :goto_0 │ return-void │ │ - .line 1576 │ + .line 1581 │ :sswitch_0 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1577 │ + .line 1582 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$66;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1580 │ + .line 1585 │ :sswitch_1 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1581 │ + .line 1586 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$66;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1574 │ + .line 1579 │ :sswitch_data_0 │ .sparse-switch │ 0x3e -> :sswitch_0 │ 0xffff -> :sswitch_1 │ .end sparse-switch │ .end method ├── smali/org/jsoup/parser/HtmlTreeBuilderState$11.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 938 │ + .line 940 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->(Ljava/lang/String;ILorg/jsoup/parser/HtmlTreeBuilderState$1;)V │ │ return-void │ .end method │ │ @@ -41,72 +41,72 @@ │ │ const/4 v9, 0x2 │ │ const/4 v4, 0x1 │ │ const/4 v3, 0x0 │ │ - .line 940 │ + .line 942 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEndTag()Z │ │ move-result v5 │ │ if-eqz v5, :cond_3 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asEndTag()Lorg/jsoup/parser/Token$EndTag; │ │ move-result-object v5 │ │ - invoke-virtual {v5}, Lorg/jsoup/parser/Token$EndTag;->name()Ljava/lang/String; │ + invoke-virtual {v5}, Lorg/jsoup/parser/Token$EndTag;->normalName()Ljava/lang/String; │ │ move-result-object v5 │ │ const-string v6, "caption" │ │ invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_3 │ │ - .line 941 │ + .line 943 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asEndTag()Lorg/jsoup/parser/Token$EndTag; │ │ move-result-object v0 │ │ - .line 942 │ + .line 944 │ .local v0, "endTag":Lorg/jsoup/parser/Token$EndTag; │ - invoke-virtual {v0}, Lorg/jsoup/parser/Token$EndTag;->name()Ljava/lang/String; │ + invoke-virtual {v0}, Lorg/jsoup/parser/Token$EndTag;->normalName()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 943 │ + .line 945 │ .local v1, "name":Ljava/lang/String; │ invoke-virtual {p2, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inTableScope(Ljava/lang/String;)Z │ │ move-result v5 │ │ if-nez v5, :cond_0 │ │ - .line 944 │ + .line 946 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 970 │ + .line 972 │ .end local v0 # "endTag":Lorg/jsoup/parser/Token$EndTag; │ .end local v1 # "name":Ljava/lang/String; │ :goto_0 │ return v3 │ │ - .line 947 │ + .line 949 │ .restart local v0 # "endTag":Lorg/jsoup/parser/Token$EndTag; │ .restart local v1 # "name":Ljava/lang/String; │ :cond_0 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->generateImpliedEndTags()V │ │ - .line 948 │ + .line 950 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v3 │ │ invoke-virtual {v3}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v3 │ @@ -115,52 +115,52 @@ │ │ invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v3 │ │ if-nez v3, :cond_1 │ │ - .line 949 │ + .line 951 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 950 │ + .line 952 │ :cond_1 │ const-string v3, "caption" │ │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->popStackToClose(Ljava/lang/String;)V │ │ - .line 951 │ + .line 953 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->clearFormattingElementsToLastMarker()V │ │ - .line 952 │ + .line 954 │ sget-object v3, Lorg/jsoup/parser/HtmlTreeBuilderState$11;->InTable:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ .end local v0 # "endTag":Lorg/jsoup/parser/Token$EndTag; │ .end local v1 # "name":Ljava/lang/String; │ :cond_2 │ move v3, v4 │ │ - .line 970 │ + .line 972 │ goto :goto_0 │ │ - .line 955 │ + .line 957 │ :cond_3 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isStartTag()Z │ │ move-result v5 │ │ if-eqz v5, :cond_4 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v5 │ │ - invoke-virtual {v5}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ + invoke-virtual {v5}, Lorg/jsoup/parser/Token$StartTag;->normalName()Ljava/lang/String; │ │ move-result-object v5 │ │ const/16 v6, 0x9 │ │ new-array v6, v6, [Ljava/lang/String; │ │ @@ -210,74 +210,74 @@ │ │ invoke-static {v5, v6}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v5 │ │ if-nez v5, :cond_5 │ │ - .line 957 │ + .line 959 │ :cond_4 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEndTag()Z │ │ move-result v5 │ │ if-eqz v5, :cond_6 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asEndTag()Lorg/jsoup/parser/Token$EndTag; │ │ move-result-object v5 │ │ - invoke-virtual {v5}, Lorg/jsoup/parser/Token$EndTag;->name()Ljava/lang/String; │ + invoke-virtual {v5}, Lorg/jsoup/parser/Token$EndTag;->normalName()Ljava/lang/String; │ │ move-result-object v5 │ │ const-string v6, "table" │ │ invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_6 │ │ - .line 959 │ + .line 961 │ :cond_5 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 960 │ + .line 962 │ const-string v3, "caption" │ │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ move-result v2 │ │ - .line 961 │ + .line 963 │ .local v2, "processed":Z │ if-eqz v2, :cond_2 │ │ - .line 962 │ + .line 964 │ invoke-virtual {p2, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v3 │ │ goto/16 :goto_0 │ │ - .line 963 │ + .line 965 │ .end local v2 # "processed":Z │ :cond_6 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEndTag()Z │ │ move-result v5 │ │ if-eqz v5, :cond_7 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asEndTag()Lorg/jsoup/parser/Token$EndTag; │ │ move-result-object v5 │ │ - invoke-virtual {v5}, Lorg/jsoup/parser/Token$EndTag;->name()Ljava/lang/String; │ + invoke-virtual {v5}, Lorg/jsoup/parser/Token$EndTag;->normalName()Ljava/lang/String; │ │ move-result-object v5 │ │ const/16 v6, 0xa │ │ new-array v6, v6, [Ljava/lang/String; │ │ @@ -333,20 +333,20 @@ │ │ invoke-static {v5, v6}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_7 │ │ - .line 965 │ + .line 967 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_0 │ │ - .line 968 │ + .line 970 │ :cond_7 │ sget-object v3, Lorg/jsoup/parser/HtmlTreeBuilderState$11;->InBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, p1, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ move-result v3 ├── smali/org/jsoup/parser/TokeniserState$55.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1203 │ + .line 1208 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -33,109 +33,109 @@ │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ const/4 v2, 0x1 │ │ - .line 1205 │ + .line 1210 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 1206 │ + .line 1211 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 1237 │ + .line 1242 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1238 │ + .line 1243 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1239 │ + .line 1244 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$55;->BogusDoctype:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1241 │ + .line 1246 │ :goto_0 │ return-void │ │ - .line 1212 │ + .line 1217 │ :sswitch_0 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$55;->BeforeDoctypePublicIdentifier:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1215 │ + .line 1220 │ :sswitch_1 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1217 │ + .line 1222 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$55;->DoctypePublicIdentifier_doubleQuoted:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1220 │ + .line 1225 │ :sswitch_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1222 │ + .line 1227 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$55;->DoctypePublicIdentifier_singleQuoted:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1225 │ + .line 1230 │ :sswitch_3 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1226 │ + .line 1231 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1227 │ + .line 1232 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1228 │ + .line 1233 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$55;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1231 │ + .line 1236 │ :sswitch_4 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1232 │ + .line 1237 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1233 │ + .line 1238 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1234 │ + .line 1239 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$55;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1206 │ + .line 1211 │ nop │ │ :sswitch_data_0 │ .sparse-switch │ 0x9 -> :sswitch_0 │ 0xa -> :sswitch_0 │ 0xc -> :sswitch_0 ├── smali/org/jsoup/parser/TokeniserState.smali │ @@ -179,742 +179,742 @@ │ │ const/16 v5, 0xd │ │ const/16 v4, 0xc │ │ const/4 v3, 0x3 │ │ - .line 9 │ + .line 11 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$1; │ │ const-string v1, "Data" │ │ invoke-direct {v0, v1, v6}, Lorg/jsoup/parser/TokeniserState$1;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->Data:Lorg/jsoup/parser/TokeniserState; │ │ - .line 33 │ + .line 35 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$2; │ │ const-string v1, "CharacterReferenceInData" │ │ invoke-direct {v0, v1, v7}, Lorg/jsoup/parser/TokeniserState$2;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->CharacterReferenceInData:Lorg/jsoup/parser/TokeniserState; │ │ - .line 39 │ + .line 41 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$3; │ │ const-string v1, "Rcdata" │ │ const/4 v2, 0x2 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$3;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->Rcdata:Lorg/jsoup/parser/TokeniserState; │ │ - .line 64 │ + .line 66 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$4; │ │ const-string v1, "CharacterReferenceInRcdata" │ │ invoke-direct {v0, v1, v3}, Lorg/jsoup/parser/TokeniserState$4;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->CharacterReferenceInRcdata:Lorg/jsoup/parser/TokeniserState; │ │ - .line 69 │ + .line 71 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$5; │ │ const-string v1, "Rawtext" │ │ const/4 v2, 0x4 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$5;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->Rawtext:Lorg/jsoup/parser/TokeniserState; │ │ - .line 74 │ + .line 76 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$6; │ │ const-string v1, "ScriptData" │ │ const/4 v2, 0x5 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$6;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->ScriptData:Lorg/jsoup/parser/TokeniserState; │ │ - .line 79 │ + .line 81 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$7; │ │ const-string v1, "PLAINTEXT" │ │ const/4 v2, 0x6 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$7;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->PLAINTEXT:Lorg/jsoup/parser/TokeniserState; │ │ - .line 97 │ + .line 99 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$8; │ │ const-string v1, "TagOpen" │ │ const/4 v2, 0x7 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$8;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->TagOpen:Lorg/jsoup/parser/TokeniserState; │ │ - .line 123 │ + .line 125 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$9; │ │ const-string v1, "EndTagOpen" │ │ const/16 v2, 0x8 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$9;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->EndTagOpen:Lorg/jsoup/parser/TokeniserState; │ │ - .line 141 │ + .line 143 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$10; │ │ const-string v1, "TagName" │ │ const/16 v2, 0x9 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$10;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->TagName:Lorg/jsoup/parser/TokeniserState; │ │ - .line 174 │ + .line 176 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$11; │ │ const-string v1, "RcdataLessthanSign" │ │ const/16 v2, 0xa │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$11;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->RcdataLessthanSign:Lorg/jsoup/parser/TokeniserState; │ │ - .line 193 │ + .line 195 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$12; │ │ const-string v1, "RCDATAEndTagOpen" │ │ const/16 v2, 0xb │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$12;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->RCDATAEndTagOpen:Lorg/jsoup/parser/TokeniserState; │ │ - .line 206 │ + .line 208 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$13; │ │ const-string v1, "RCDATAEndTagName" │ │ invoke-direct {v0, v1, v4}, Lorg/jsoup/parser/TokeniserState$13;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->RCDATAEndTagName:Lorg/jsoup/parser/TokeniserState; │ │ - .line 252 │ + .line 254 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$14; │ │ const-string v1, "RawtextLessthanSign" │ │ invoke-direct {v0, v1, v5}, Lorg/jsoup/parser/TokeniserState$14;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->RawtextLessthanSign:Lorg/jsoup/parser/TokeniserState; │ │ - .line 263 │ + .line 265 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$15; │ │ const-string v1, "RawtextEndTagOpen" │ │ const/16 v2, 0xe │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$15;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->RawtextEndTagOpen:Lorg/jsoup/parser/TokeniserState; │ │ - .line 268 │ + .line 270 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$16; │ │ const-string v1, "RawtextEndTagName" │ │ const/16 v2, 0xf │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$16;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->RawtextEndTagName:Lorg/jsoup/parser/TokeniserState; │ │ - .line 273 │ + .line 275 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$17; │ │ const-string v1, "ScriptDataLessthanSign" │ │ const/16 v2, 0x10 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$17;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->ScriptDataLessthanSign:Lorg/jsoup/parser/TokeniserState; │ │ - .line 291 │ + .line 293 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$18; │ │ const-string v1, "ScriptDataEndTagOpen" │ │ const/16 v2, 0x11 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$18;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->ScriptDataEndTagOpen:Lorg/jsoup/parser/TokeniserState; │ │ - .line 296 │ + .line 298 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$19; │ │ const-string v1, "ScriptDataEndTagName" │ │ const/16 v2, 0x12 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$19;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->ScriptDataEndTagName:Lorg/jsoup/parser/TokeniserState; │ │ - .line 301 │ + .line 303 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$20; │ │ const-string v1, "ScriptDataEscapeStart" │ │ const/16 v2, 0x13 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$20;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->ScriptDataEscapeStart:Lorg/jsoup/parser/TokeniserState; │ │ - .line 311 │ + .line 313 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$21; │ │ const-string v1, "ScriptDataEscapeStartDash" │ │ const/16 v2, 0x14 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$21;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->ScriptDataEscapeStartDash:Lorg/jsoup/parser/TokeniserState; │ │ - .line 321 │ + .line 323 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$22; │ │ const-string v1, "ScriptDataEscaped" │ │ const/16 v2, 0x15 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$22;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->ScriptDataEscaped:Lorg/jsoup/parser/TokeniserState; │ │ - .line 348 │ + .line 350 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$23; │ │ const-string v1, "ScriptDataEscapedDash" │ │ const/16 v2, 0x16 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$23;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->ScriptDataEscapedDash:Lorg/jsoup/parser/TokeniserState; │ │ - .line 376 │ + .line 378 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$24; │ │ const-string v1, "ScriptDataEscapedDashDash" │ │ const/16 v2, 0x17 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$24;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->ScriptDataEscapedDashDash:Lorg/jsoup/parser/TokeniserState; │ │ - .line 407 │ + .line 409 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$25; │ │ const-string v1, "ScriptDataEscapedLessthanSign" │ │ const/16 v2, 0x18 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$25;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->ScriptDataEscapedLessthanSign:Lorg/jsoup/parser/TokeniserState; │ │ - .line 423 │ + .line 425 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$26; │ │ const-string v1, "ScriptDataEscapedEndTagOpen" │ │ const/16 v2, 0x19 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$26;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->ScriptDataEscapedEndTagOpen:Lorg/jsoup/parser/TokeniserState; │ │ - .line 436 │ + .line 438 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$27; │ │ const-string v1, "ScriptDataEscapedEndTagName" │ │ const/16 v2, 0x1a │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$27;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->ScriptDataEscapedEndTagName:Lorg/jsoup/parser/TokeniserState; │ │ - .line 441 │ + .line 443 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$28; │ │ const-string v1, "ScriptDataDoubleEscapeStart" │ │ const/16 v2, 0x1b │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$28;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->ScriptDataDoubleEscapeStart:Lorg/jsoup/parser/TokeniserState; │ │ - .line 446 │ + .line 448 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$29; │ │ const-string v1, "ScriptDataDoubleEscaped" │ │ const/16 v2, 0x1c │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$29;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->ScriptDataDoubleEscaped:Lorg/jsoup/parser/TokeniserState; │ │ - .line 473 │ + .line 475 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$30; │ │ const-string v1, "ScriptDataDoubleEscapedDash" │ │ const/16 v2, 0x1d │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$30;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->ScriptDataDoubleEscapedDash:Lorg/jsoup/parser/TokeniserState; │ │ - .line 500 │ + .line 502 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$31; │ │ const-string v1, "ScriptDataDoubleEscapedDashDash" │ │ const/16 v2, 0x1e │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$31;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->ScriptDataDoubleEscapedDashDash:Lorg/jsoup/parser/TokeniserState; │ │ - .line 530 │ + .line 532 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$32; │ │ const-string v1, "ScriptDataDoubleEscapedLessthanSign" │ │ const/16 v2, 0x1f │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$32;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->ScriptDataDoubleEscapedLessthanSign:Lorg/jsoup/parser/TokeniserState; │ │ - .line 541 │ + .line 543 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$33; │ │ const-string v1, "ScriptDataDoubleEscapeEnd" │ │ const/16 v2, 0x20 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$33;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->ScriptDataDoubleEscapeEnd:Lorg/jsoup/parser/TokeniserState; │ │ - .line 546 │ + .line 548 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$34; │ │ const-string v1, "BeforeAttributeName" │ │ const/16 v2, 0x21 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$34;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->BeforeAttributeName:Lorg/jsoup/parser/TokeniserState; │ │ - .line 590 │ + .line 592 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$35; │ │ const-string v1, "AttributeName" │ │ const/16 v2, 0x22 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$35;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->AttributeName:Lorg/jsoup/parser/TokeniserState; │ │ - .line 632 │ + .line 634 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$36; │ │ const-string v1, "AfterAttributeName" │ │ const/16 v2, 0x23 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$36;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->AfterAttributeName:Lorg/jsoup/parser/TokeniserState; │ │ - .line 677 │ + .line 679 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$37; │ │ const-string v1, "BeforeAttributeValue" │ │ const/16 v2, 0x24 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$37;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->BeforeAttributeValue:Lorg/jsoup/parser/TokeniserState; │ │ - .line 726 │ + .line 728 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$38; │ │ const-string v1, "AttributeValue_doubleQuoted" │ │ const/16 v2, 0x25 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$38;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->AttributeValue_doubleQuoted:Lorg/jsoup/parser/TokeniserState; │ │ - .line 758 │ + .line 760 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$39; │ │ const-string v1, "AttributeValue_singleQuoted" │ │ const/16 v2, 0x26 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$39;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->AttributeValue_singleQuoted:Lorg/jsoup/parser/TokeniserState; │ │ - .line 790 │ + .line 792 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$40; │ │ const-string v1, "AttributeValue_unquoted" │ │ const/16 v2, 0x27 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$40;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->AttributeValue_unquoted:Lorg/jsoup/parser/TokeniserState; │ │ - .line 838 │ + .line 840 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$41; │ │ const-string v1, "AfterAttributeValue_quoted" │ │ const/16 v2, 0x28 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$41;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->AfterAttributeValue_quoted:Lorg/jsoup/parser/TokeniserState; │ │ - .line 868 │ + .line 870 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$42; │ │ const-string v1, "SelfClosingStartTag" │ │ const/16 v2, 0x29 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$42;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->SelfClosingStartTag:Lorg/jsoup/parser/TokeniserState; │ │ - .line 887 │ + .line 890 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$43; │ │ const-string v1, "BogusComment" │ │ const/16 v2, 0x2a │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$43;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->BogusComment:Lorg/jsoup/parser/TokeniserState; │ │ - .line 900 │ + .line 903 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$44; │ │ const-string v1, "MarkupDeclarationOpen" │ │ const/16 v2, 0x2b │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$44;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->MarkupDeclarationOpen:Lorg/jsoup/parser/TokeniserState; │ │ - .line 918 │ + .line 921 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$45; │ │ const-string v1, "CommentStart" │ │ const/16 v2, 0x2c │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$45;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->CommentStart:Lorg/jsoup/parser/TokeniserState; │ │ - .line 946 │ + .line 949 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$46; │ │ const-string v1, "CommentStartDash" │ │ const/16 v2, 0x2d │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$46;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->CommentStartDash:Lorg/jsoup/parser/TokeniserState; │ │ - .line 974 │ + .line 977 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$47; │ │ const-string v1, "Comment" │ │ const/16 v2, 0x2e │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$47;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->Comment:Lorg/jsoup/parser/TokeniserState; │ │ - .line 996 │ + .line 999 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$48; │ │ const-string v1, "CommentEndDash" │ │ const/16 v2, 0x2f │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$48;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->CommentEndDash:Lorg/jsoup/parser/TokeniserState; │ │ - .line 1019 │ + .line 1022 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$49; │ │ const-string v1, "CommentEnd" │ │ const/16 v2, 0x30 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$49;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->CommentEnd:Lorg/jsoup/parser/TokeniserState; │ │ - .line 1052 │ + .line 1055 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$50; │ │ const-string v1, "CommentEndBang" │ │ const/16 v2, 0x31 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$50;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->CommentEndBang:Lorg/jsoup/parser/TokeniserState; │ │ - .line 1080 │ + .line 1083 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$51; │ │ const-string v1, "Doctype" │ │ const/16 v2, 0x32 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$51;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->Doctype:Lorg/jsoup/parser/TokeniserState; │ │ - .line 1107 │ + .line 1110 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$52; │ │ const-string v1, "BeforeDoctypeName" │ │ const/16 v2, 0x33 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$52;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->BeforeDoctypeName:Lorg/jsoup/parser/TokeniserState; │ │ - .line 1142 │ + .line 1145 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$53; │ │ const-string v1, "DoctypeName" │ │ const/16 v2, 0x34 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$53;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->DoctypeName:Lorg/jsoup/parser/TokeniserState; │ │ - .line 1177 │ + .line 1180 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$54; │ │ const-string v1, "AfterDoctypeName" │ │ const/16 v2, 0x35 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$54;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->AfterDoctypeName:Lorg/jsoup/parser/TokeniserState; │ │ - .line 1203 │ + .line 1208 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$55; │ │ const-string v1, "AfterDoctypePublicKeyword" │ │ const/16 v2, 0x36 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$55;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->AfterDoctypePublicKeyword:Lorg/jsoup/parser/TokeniserState; │ │ - .line 1243 │ + .line 1248 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$56; │ │ const-string v1, "BeforeDoctypePublicIdentifier" │ │ const/16 v2, 0x37 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$56;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->BeforeDoctypePublicIdentifier:Lorg/jsoup/parser/TokeniserState; │ │ - .line 1280 │ + .line 1285 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$57; │ │ const-string v1, "DoctypePublicIdentifier_doubleQuoted" │ │ const/16 v2, 0x38 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$57;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->DoctypePublicIdentifier_doubleQuoted:Lorg/jsoup/parser/TokeniserState; │ │ - .line 1308 │ + .line 1313 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$58; │ │ const-string v1, "DoctypePublicIdentifier_singleQuoted" │ │ const/16 v2, 0x39 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$58;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->DoctypePublicIdentifier_singleQuoted:Lorg/jsoup/parser/TokeniserState; │ │ - .line 1336 │ + .line 1341 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$59; │ │ const-string v1, "AfterDoctypePublicIdentifier" │ │ const/16 v2, 0x3a │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$59;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->AfterDoctypePublicIdentifier:Lorg/jsoup/parser/TokeniserState; │ │ - .line 1374 │ + .line 1379 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$60; │ │ const-string v1, "BetweenDoctypePublicAndSystemIdentifiers" │ │ const/16 v2, 0x3b │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$60;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->BetweenDoctypePublicAndSystemIdentifiers:Lorg/jsoup/parser/TokeniserState; │ │ - .line 1411 │ + .line 1416 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$61; │ │ const-string v1, "AfterDoctypeSystemKeyword" │ │ const/16 v2, 0x3c │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$61;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->AfterDoctypeSystemKeyword:Lorg/jsoup/parser/TokeniserState; │ │ - .line 1451 │ + .line 1456 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$62; │ │ const-string v1, "BeforeDoctypeSystemIdentifier" │ │ const/16 v2, 0x3d │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$62;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->BeforeDoctypeSystemIdentifier:Lorg/jsoup/parser/TokeniserState; │ │ - .line 1488 │ + .line 1493 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$63; │ │ const-string v1, "DoctypeSystemIdentifier_doubleQuoted" │ │ const/16 v2, 0x3e │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$63;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->DoctypeSystemIdentifier_doubleQuoted:Lorg/jsoup/parser/TokeniserState; │ │ - .line 1516 │ + .line 1521 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$64; │ │ const-string v1, "DoctypeSystemIdentifier_singleQuoted" │ │ const/16 v2, 0x3f │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$64;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->DoctypeSystemIdentifier_singleQuoted:Lorg/jsoup/parser/TokeniserState; │ │ - .line 1544 │ + .line 1549 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$65; │ │ const-string v1, "AfterDoctypeSystemIdentifier" │ │ const/16 v2, 0x40 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$65;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->AfterDoctypeSystemIdentifier:Lorg/jsoup/parser/TokeniserState; │ │ - .line 1571 │ + .line 1576 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$66; │ │ const-string v1, "BogusDoctype" │ │ const/16 v2, 0x41 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$66;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->BogusDoctype:Lorg/jsoup/parser/TokeniserState; │ │ - .line 1589 │ + .line 1594 │ new-instance v0, Lorg/jsoup/parser/TokeniserState$67; │ │ const-string v1, "CdataSection" │ │ const/16 v2, 0x42 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/TokeniserState$67;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->CdataSection:Lorg/jsoup/parser/TokeniserState; │ │ - .line 8 │ + .line 10 │ const/16 v0, 0x43 │ │ new-array v0, v0, [Lorg/jsoup/parser/TokeniserState; │ │ sget-object v1, Lorg/jsoup/parser/TokeniserState;->Data:Lorg/jsoup/parser/TokeniserState; │ │ aput-object v1, v0, v6 │ @@ -1305,93 +1305,93 @@ │ │ sget-object v2, Lorg/jsoup/parser/TokeniserState;->CdataSection:Lorg/jsoup/parser/TokeniserState; │ │ aput-object v2, v0, v1 │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->$VALUES:[Lorg/jsoup/parser/TokeniserState; │ │ - .line 1602 │ + .line 1607 │ new-array v0, v3, [C │ │ fill-array-data v0, :array_0 │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->attributeSingleValueCharsSorted:[C │ │ - .line 1603 │ + .line 1608 │ new-array v0, v3, [C │ │ fill-array-data v0, :array_1 │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->attributeDoubleValueCharsSorted:[C │ │ - .line 1604 │ + .line 1609 │ new-array v0, v4, [C │ │ fill-array-data v0, :array_2 │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->attributeNameCharsSorted:[C │ │ - .line 1605 │ + .line 1610 │ new-array v0, v5, [C │ │ fill-array-data v0, :array_3 │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->attributeValueUnquoted:[C │ │ - .line 1608 │ + .line 1613 │ const v0, 0xfffd │ │ invoke-static {v0}, Ljava/lang/String;->valueOf(C)Ljava/lang/String; │ │ move-result-object v0 │ │ sput-object v0, Lorg/jsoup/parser/TokeniserState;->replacementStr:Ljava/lang/String; │ │ - .line 1612 │ + .line 1617 │ sget-object v0, Lorg/jsoup/parser/TokeniserState;->attributeSingleValueCharsSorted:[C │ │ invoke-static {v0}, Ljava/util/Arrays;->sort([C)V │ │ - .line 1613 │ + .line 1618 │ sget-object v0, Lorg/jsoup/parser/TokeniserState;->attributeDoubleValueCharsSorted:[C │ │ invoke-static {v0}, Ljava/util/Arrays;->sort([C)V │ │ - .line 1614 │ + .line 1619 │ sget-object v0, Lorg/jsoup/parser/TokeniserState;->attributeNameCharsSorted:[C │ │ invoke-static {v0}, Ljava/util/Arrays;->sort([C)V │ │ - .line 1615 │ + .line 1620 │ sget-object v0, Lorg/jsoup/parser/TokeniserState;->attributeValueUnquoted:[C │ │ invoke-static {v0}, Ljava/util/Arrays;->sort([C)V │ │ - .line 1616 │ + .line 1621 │ return-void │ │ - .line 1602 │ + .line 1607 │ :array_0 │ .array-data 2 │ 0x27s │ 0x26s │ 0x0s │ .end array-data │ │ - .line 1603 │ + .line 1608 │ nop │ │ :array_1 │ .array-data 2 │ 0x22s │ 0x26s │ 0x0s │ .end array-data │ │ - .line 1604 │ + .line 1609 │ nop │ │ :array_2 │ .array-data 2 │ 0x9s │ 0xas │ 0xds │ @@ -1402,15 +1402,15 @@ │ 0x3es │ 0x0s │ 0x22s │ 0x27s │ 0x3cs │ .end array-data │ │ - .line 1605 │ + .line 1610 │ :array_3 │ .array-data 2 │ 0x9s │ 0xas │ 0xds │ 0xcs │ 0x20s │ @@ -1430,207 +1430,203 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()V" │ } │ .end annotation │ │ .prologue │ - .line 8 │ + .line 10 │ invoke-direct {p0, p1, p2}, Ljava/lang/Enum;->(Ljava/lang/String;I)V │ │ return-void │ .end method │ │ .method synthetic constructor (Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ .locals 0 │ .param p1, "x0" # Ljava/lang/String; │ .param p2, "x1" # I │ .param p3, "x2" # Lorg/jsoup/parser/TokeniserState$1; │ │ .prologue │ - .line 8 │ + .line 10 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;I)V │ │ return-void │ .end method │ │ .method static synthetic access$100(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/TokeniserState;)V │ .locals 0 │ .param p0, "x0" # Lorg/jsoup/parser/Tokeniser; │ .param p1, "x1" # Lorg/jsoup/parser/TokeniserState; │ │ .prologue │ - .line 8 │ + .line 10 │ invoke-static {p0, p1}, Lorg/jsoup/parser/TokeniserState;->readCharRef(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/TokeniserState;)V │ │ return-void │ .end method │ │ .method static synthetic access$1000()[C │ .locals 1 │ │ .prologue │ - .line 8 │ + .line 10 │ sget-object v0, Lorg/jsoup/parser/TokeniserState;->attributeValueUnquoted:[C │ │ return-object v0 │ .end method │ │ .method static synthetic access$200(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;Lorg/jsoup/parser/TokeniserState;Lorg/jsoup/parser/TokeniserState;)V │ .locals 0 │ .param p0, "x0" # Lorg/jsoup/parser/Tokeniser; │ .param p1, "x1" # Lorg/jsoup/parser/CharacterReader; │ .param p2, "x2" # Lorg/jsoup/parser/TokeniserState; │ .param p3, "x3" # Lorg/jsoup/parser/TokeniserState; │ │ .prologue │ - .line 8 │ + .line 10 │ invoke-static {p0, p1, p2, p3}, Lorg/jsoup/parser/TokeniserState;->readData(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;Lorg/jsoup/parser/TokeniserState;Lorg/jsoup/parser/TokeniserState;)V │ │ return-void │ .end method │ │ .method static synthetic access$300()Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 8 │ + .line 10 │ sget-object v0, Lorg/jsoup/parser/TokeniserState;->replacementStr:Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method static synthetic access$400(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;Lorg/jsoup/parser/TokeniserState;Lorg/jsoup/parser/TokeniserState;)V │ .locals 0 │ .param p0, "x0" # Lorg/jsoup/parser/Tokeniser; │ .param p1, "x1" # Lorg/jsoup/parser/CharacterReader; │ .param p2, "x2" # Lorg/jsoup/parser/TokeniserState; │ .param p3, "x3" # Lorg/jsoup/parser/TokeniserState; │ │ .prologue │ - .line 8 │ + .line 10 │ invoke-static {p0, p1, p2, p3}, Lorg/jsoup/parser/TokeniserState;->readEndTag(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;Lorg/jsoup/parser/TokeniserState;Lorg/jsoup/parser/TokeniserState;)V │ │ return-void │ .end method │ │ .method static synthetic access$500(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;Lorg/jsoup/parser/TokeniserState;)V │ .locals 0 │ .param p0, "x0" # Lorg/jsoup/parser/Tokeniser; │ .param p1, "x1" # Lorg/jsoup/parser/CharacterReader; │ .param p2, "x2" # Lorg/jsoup/parser/TokeniserState; │ │ .prologue │ - .line 8 │ + .line 10 │ invoke-static {p0, p1, p2}, Lorg/jsoup/parser/TokeniserState;->handleDataEndTag(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;Lorg/jsoup/parser/TokeniserState;)V │ │ return-void │ .end method │ │ .method static synthetic access$600(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;Lorg/jsoup/parser/TokeniserState;Lorg/jsoup/parser/TokeniserState;)V │ .locals 0 │ .param p0, "x0" # Lorg/jsoup/parser/Tokeniser; │ .param p1, "x1" # Lorg/jsoup/parser/CharacterReader; │ .param p2, "x2" # Lorg/jsoup/parser/TokeniserState; │ .param p3, "x3" # Lorg/jsoup/parser/TokeniserState; │ │ .prologue │ - .line 8 │ + .line 10 │ invoke-static {p0, p1, p2, p3}, Lorg/jsoup/parser/TokeniserState;->handleDataDoubleEscapeTag(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;Lorg/jsoup/parser/TokeniserState;Lorg/jsoup/parser/TokeniserState;)V │ │ return-void │ .end method │ │ .method static synthetic access$700()[C │ .locals 1 │ │ .prologue │ - .line 8 │ + .line 10 │ sget-object v0, Lorg/jsoup/parser/TokeniserState;->attributeNameCharsSorted:[C │ │ return-object v0 │ .end method │ │ .method static synthetic access$800()[C │ .locals 1 │ │ .prologue │ - .line 8 │ + .line 10 │ sget-object v0, Lorg/jsoup/parser/TokeniserState;->attributeDoubleValueCharsSorted:[C │ │ return-object v0 │ .end method │ │ .method static synthetic access$900()[C │ .locals 1 │ │ .prologue │ - .line 8 │ + .line 10 │ sget-object v0, Lorg/jsoup/parser/TokeniserState;->attributeSingleValueCharsSorted:[C │ │ return-object v0 │ .end method │ │ .method private static handleDataDoubleEscapeTag(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;Lorg/jsoup/parser/TokeniserState;Lorg/jsoup/parser/TokeniserState;)V │ .locals 4 │ .param p0, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p1, "r" # Lorg/jsoup/parser/CharacterReader; │ .param p2, "primary" # Lorg/jsoup/parser/TokeniserState; │ .param p3, "fallback" # Lorg/jsoup/parser/TokeniserState; │ │ .prologue │ - .line 1702 │ + .line 1707 │ invoke-virtual {p1}, Lorg/jsoup/parser/CharacterReader;->matchesLetter()Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ - .line 1703 │ + .line 1708 │ invoke-virtual {p1}, Lorg/jsoup/parser/CharacterReader;->consumeLetterSequence()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 1704 │ + .line 1709 │ .local v1, "name":Ljava/lang/String; │ iget-object v2, p0, Lorg/jsoup/parser/Tokeniser;->dataBuffer:Ljava/lang/StringBuilder; │ │ - invoke-virtual {v1}, Ljava/lang/String;->toLowerCase()Ljava/lang/String; │ + invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v3 │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - .line 1705 │ + .line 1710 │ invoke-virtual {p0, v1}, Lorg/jsoup/parser/Tokeniser;->emit(Ljava/lang/String;)V │ │ - .line 1728 │ + .line 1733 │ .end local v1 # "name":Ljava/lang/String; │ :goto_0 │ return-void │ │ - .line 1709 │ + .line 1714 │ :cond_0 │ invoke-virtual {p1}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 1710 │ + .line 1715 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 1725 │ + .line 1730 │ invoke-virtual {p1}, Lorg/jsoup/parser/CharacterReader;->unconsume()V │ │ - .line 1726 │ + .line 1731 │ invoke-virtual {p0, p3}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1718 │ + .line 1723 │ :sswitch_0 │ iget-object v2, p0, Lorg/jsoup/parser/Tokeniser;->dataBuffer:Ljava/lang/StringBuilder; │ │ invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v2 │ │ @@ -1638,30 +1634,30 @@ │ │ invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - .line 1719 │ + .line 1724 │ invoke-virtual {p0, p2}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1722 │ + .line 1727 │ :goto_1 │ invoke-virtual {p0, v0}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ goto :goto_0 │ │ - .line 1721 │ + .line 1726 │ :cond_1 │ invoke-virtual {p0, p3}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_1 │ │ - .line 1710 │ + .line 1715 │ :sswitch_data_0 │ .sparse-switch │ 0x9 -> :sswitch_0 │ 0xa -> :sswitch_0 │ 0xc -> :sswitch_0 │ 0xd -> :sswitch_0 │ 0x20 -> :sswitch_0 │ @@ -1673,88 +1669,84 @@ │ .method private static handleDataEndTag(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;Lorg/jsoup/parser/TokeniserState;)V │ .locals 5 │ .param p0, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p1, "r" # Lorg/jsoup/parser/CharacterReader; │ .param p2, "elseTransition" # Lorg/jsoup/parser/TokeniserState; │ │ .prologue │ - .line 1623 │ + .line 1628 │ invoke-virtual {p1}, Lorg/jsoup/parser/CharacterReader;->matchesLetter()Z │ │ move-result v3 │ │ if-eqz v3, :cond_1 │ │ - .line 1624 │ + .line 1629 │ invoke-virtual {p1}, Lorg/jsoup/parser/CharacterReader;->consumeLetterSequence()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 1625 │ + .line 1630 │ .local v1, "name":Ljava/lang/String; │ iget-object v3, p0, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ - invoke-virtual {v1}, Ljava/lang/String;->toLowerCase()Ljava/lang/String; │ + invoke-virtual {v3, v1}, Lorg/jsoup/parser/Token$Tag;->appendTagName(Ljava/lang/String;)V │ │ - move-result-object v4 │ - │ - invoke-virtual {v3, v4}, Lorg/jsoup/parser/Token$Tag;->appendTagName(Ljava/lang/String;)V │ - │ - .line 1626 │ + .line 1631 │ iget-object v3, p0, Lorg/jsoup/parser/Tokeniser;->dataBuffer:Ljava/lang/StringBuilder; │ │ invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - .line 1660 │ + .line 1665 │ .end local v1 # "name":Ljava/lang/String; │ :cond_0 │ :goto_0 │ return-void │ │ - .line 1630 │ + .line 1635 │ :cond_1 │ const/4 v2, 0x0 │ │ - .line 1631 │ + .line 1636 │ .local v2, "needsExitTransition":Z │ invoke-virtual {p0}, Lorg/jsoup/parser/Tokeniser;->isAppropriateEndTagToken()Z │ │ move-result v3 │ │ if-eqz v3, :cond_2 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/CharacterReader;->isEmpty()Z │ │ move-result v3 │ │ if-nez v3, :cond_2 │ │ - .line 1632 │ + .line 1637 │ invoke-virtual {p1}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 1633 │ + .line 1638 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 1649 │ + .line 1654 │ iget-object v3, p0, Lorg/jsoup/parser/Tokeniser;->dataBuffer:Ljava/lang/StringBuilder; │ │ invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 1650 │ + .line 1655 │ const/4 v2, 0x1 │ │ - .line 1656 │ + .line 1661 │ .end local v0 # "c":C │ :goto_1 │ if-eqz v2, :cond_0 │ │ - .line 1657 │ + .line 1662 │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ const-string v4, "append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ @@ -1773,55 +1765,55 @@ │ │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {p0, v3}, Lorg/jsoup/parser/Tokeniser;->emit(Ljava/lang/String;)V │ │ - .line 1658 │ + .line 1663 │ invoke-virtual {p0, p2}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1639 │ + .line 1644 │ .restart local v0 # "c":C │ :sswitch_0 │ sget-object v3, Lorg/jsoup/parser/TokeniserState;->BeforeAttributeName:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p0, v3}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_1 │ │ - .line 1642 │ + .line 1647 │ :sswitch_1 │ sget-object v3, Lorg/jsoup/parser/TokeniserState;->SelfClosingStartTag:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p0, v3}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_1 │ │ - .line 1645 │ + .line 1650 │ :sswitch_2 │ invoke-virtual {p0}, Lorg/jsoup/parser/Tokeniser;->emitTagPending()V │ │ - .line 1646 │ + .line 1651 │ sget-object v3, Lorg/jsoup/parser/TokeniserState;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p0, v3}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_1 │ │ - .line 1653 │ + .line 1658 │ .end local v0 # "c":C │ :cond_2 │ const/4 v2, 0x1 │ │ goto :goto_1 │ │ - .line 1633 │ + .line 1638 │ :sswitch_data_0 │ .sparse-switch │ 0x9 -> :sswitch_0 │ 0xa -> :sswitch_0 │ 0xc -> :sswitch_0 │ 0xd -> :sswitch_0 │ 0x20 -> :sswitch_0 │ @@ -1832,122 +1824,122 @@ │ │ .method private static readCharRef(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/TokeniserState;)V │ .locals 3 │ .param p0, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p1, "advance" # Lorg/jsoup/parser/TokeniserState; │ │ .prologue │ - .line 1683 │ + .line 1688 │ const/4 v1, 0x0 │ │ const/4 v2, 0x0 │ │ - invoke-virtual {p0, v1, v2}, Lorg/jsoup/parser/Tokeniser;->consumeCharacterReference(Ljava/lang/Character;Z)[C │ + invoke-virtual {p0, v1, v2}, Lorg/jsoup/parser/Tokeniser;->consumeCharacterReference(Ljava/lang/Character;Z)[I │ │ move-result-object v0 │ │ - .line 1684 │ - .local v0, "c":[C │ + .line 1689 │ + .local v0, "c":[I │ if-nez v0, :cond_0 │ │ - .line 1685 │ + .line 1690 │ const/16 v1, 0x26 │ │ invoke-virtual {p0, v1}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ - .line 1688 │ + .line 1693 │ :goto_0 │ invoke-virtual {p0, p1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1689 │ + .line 1694 │ return-void │ │ - .line 1687 │ + .line 1692 │ :cond_0 │ - invoke-virtual {p0, v0}, Lorg/jsoup/parser/Tokeniser;->emit([C)V │ + invoke-virtual {p0, v0}, Lorg/jsoup/parser/Tokeniser;->emit([I)V │ │ goto :goto_0 │ .end method │ │ .method private static readData(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;Lorg/jsoup/parser/TokeniserState;Lorg/jsoup/parser/TokeniserState;)V │ .locals 2 │ .param p0, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p1, "r" # Lorg/jsoup/parser/CharacterReader; │ .param p2, "current" # Lorg/jsoup/parser/TokeniserState; │ .param p3, "advance" # Lorg/jsoup/parser/TokeniserState; │ │ .prologue │ - .line 1663 │ + .line 1668 │ invoke-virtual {p1}, Lorg/jsoup/parser/CharacterReader;->current()C │ │ move-result v1 │ │ sparse-switch v1, :sswitch_data_0 │ │ - .line 1676 │ + .line 1681 │ const/4 v1, 0x2 │ │ new-array v1, v1, [C │ │ fill-array-data v1, :array_0 │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/CharacterReader;->consumeToAny([C)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 1677 │ + .line 1682 │ .local v0, "data":Ljava/lang/String; │ invoke-virtual {p0, v0}, Lorg/jsoup/parser/Tokeniser;->emit(Ljava/lang/String;)V │ │ - .line 1680 │ + .line 1685 │ .end local v0 # "data":Ljava/lang/String; │ :goto_0 │ return-void │ │ - .line 1665 │ + .line 1670 │ :sswitch_0 │ invoke-virtual {p0, p3}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1668 │ + .line 1673 │ :sswitch_1 │ invoke-virtual {p0, p2}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1669 │ + .line 1674 │ invoke-virtual {p1}, Lorg/jsoup/parser/CharacterReader;->advance()V │ │ - .line 1670 │ + .line 1675 │ const v1, 0xfffd │ │ invoke-virtual {p0, v1}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ goto :goto_0 │ │ - .line 1673 │ + .line 1678 │ :sswitch_2 │ new-instance v1, Lorg/jsoup/parser/Token$EOF; │ │ invoke-direct {v1}, Lorg/jsoup/parser/Token$EOF;->()V │ │ invoke-virtual {p0, v1}, Lorg/jsoup/parser/Tokeniser;->emit(Lorg/jsoup/parser/Token;)V │ │ goto :goto_0 │ │ - .line 1663 │ + .line 1668 │ nop │ │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_1 │ 0x3c -> :sswitch_0 │ 0xffff -> :sswitch_2 │ .end sparse-switch │ │ - .line 1676 │ + .line 1681 │ :array_0 │ .array-data 2 │ 0x3cs │ 0x0s │ .end array-data │ .end method │ │ @@ -1955,51 +1947,51 @@ │ .locals 1 │ .param p0, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p1, "r" # Lorg/jsoup/parser/CharacterReader; │ .param p2, "a" # Lorg/jsoup/parser/TokeniserState; │ .param p3, "b" # Lorg/jsoup/parser/TokeniserState; │ │ .prologue │ - .line 1692 │ + .line 1697 │ invoke-virtual {p1}, Lorg/jsoup/parser/CharacterReader;->matchesLetter()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 1693 │ + .line 1698 │ const/4 v0, 0x0 │ │ invoke-virtual {p0, v0}, Lorg/jsoup/parser/Tokeniser;->createTagPending(Z)Lorg/jsoup/parser/Token$Tag; │ │ - .line 1694 │ + .line 1699 │ invoke-virtual {p0, p2}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1699 │ + .line 1704 │ :goto_0 │ return-void │ │ - .line 1696 │ + .line 1701 │ :cond_0 │ const-string v0, "emit(Ljava/lang/String;)V │ │ - .line 1697 │ + .line 1702 │ invoke-virtual {p0, p3}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ .end method │ │ .method public static valueOf(Ljava/lang/String;)Lorg/jsoup/parser/TokeniserState; │ .locals 1 │ .param p0, "name" # Ljava/lang/String; │ │ .prologue │ - .line 8 │ + .line 10 │ const-class v0, Lorg/jsoup/parser/TokeniserState; │ │ invoke-static {v0, p0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum; │ │ move-result-object v0 │ │ check-cast v0, Lorg/jsoup/parser/TokeniserState; │ @@ -2007,15 +1999,15 @@ │ return-object v0 │ .end method │ │ .method public static values()[Lorg/jsoup/parser/TokeniserState; │ .locals 1 │ │ .prologue │ - .line 8 │ + .line 10 │ sget-object v0, Lorg/jsoup/parser/TokeniserState;->$VALUES:[Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {v0}, [Lorg/jsoup/parser/TokeniserState;->clone()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, [Lorg/jsoup/parser/TokeniserState; ├── smali/org/jsoup/parser/HtmlTreeBuilderState$17.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1294 │ + .line 1297 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->(Ljava/lang/String;ILorg/jsoup/parser/HtmlTreeBuilderState$1;)V │ │ return-void │ .end method │ │ @@ -41,26 +41,26 @@ │ │ const/4 v6, 0x2 │ │ const/4 v5, 0x1 │ │ const/4 v0, 0x0 │ │ - .line 1296 │ + .line 1299 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isStartTag()Z │ │ move-result v1 │ │ if-eqz v1, :cond_1 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v1 │ │ - invoke-virtual {v1}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ + invoke-virtual {v1}, Lorg/jsoup/parser/Token$StartTag;->normalName()Ljava/lang/String; │ │ move-result-object v1 │ │ const/16 v2, 0x8 │ │ new-array v2, v2, [Ljava/lang/String; │ │ @@ -104,45 +104,45 @@ │ │ invoke-static {v1, v2}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_1 │ │ - .line 1297 │ + .line 1300 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 1298 │ + .line 1301 │ const-string v0, "select" │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 1299 │ + .line 1302 │ invoke-virtual {p2, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v0 │ │ - .line 1308 │ + .line 1311 │ :cond_0 │ :goto_0 │ return v0 │ │ - .line 1300 │ + .line 1303 │ :cond_1 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEndTag()Z │ │ move-result v1 │ │ if-eqz v1, :cond_2 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asEndTag()Lorg/jsoup/parser/Token$EndTag; │ │ move-result-object v1 │ │ - invoke-virtual {v1}, Lorg/jsoup/parser/Token$EndTag;->name()Ljava/lang/String; │ + invoke-virtual {v1}, Lorg/jsoup/parser/Token$EndTag;->normalName()Ljava/lang/String; │ │ move-result-object v1 │ │ const/16 v2, 0x8 │ │ new-array v2, v2, [Ljava/lang/String; │ │ @@ -186,45 +186,45 @@ │ │ invoke-static {v1, v2}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_2 │ │ - .line 1301 │ + .line 1304 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 1302 │ + .line 1305 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asEndTag()Lorg/jsoup/parser/Token$EndTag; │ │ move-result-object v1 │ │ - invoke-virtual {v1}, Lorg/jsoup/parser/Token$EndTag;->name()Ljava/lang/String; │ + invoke-virtual {v1}, Lorg/jsoup/parser/Token$EndTag;->normalName()Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-virtual {p2, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inTableScope(Ljava/lang/String;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ - .line 1303 │ + .line 1306 │ const-string v0, "select" │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 1304 │ + .line 1307 │ invoke-virtual {p2, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v0 │ │ goto :goto_0 │ │ - .line 1308 │ + .line 1311 │ :cond_2 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$17;->InSelect:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, p1, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ move-result v0 ├── smali/org/jsoup/parser/TokeniserState$59.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1336 │ + .line 1341 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -33,101 +33,101 @@ │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ const/4 v2, 0x1 │ │ - .line 1338 │ + .line 1343 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 1339 │ + .line 1344 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 1368 │ + .line 1373 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1369 │ + .line 1374 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1370 │ + .line 1375 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$59;->BogusDoctype:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1372 │ + .line 1377 │ :goto_0 │ return-void │ │ - .line 1345 │ + .line 1350 │ :sswitch_0 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$59;->BetweenDoctypePublicAndSystemIdentifiers:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1348 │ + .line 1353 │ :sswitch_1 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1349 │ + .line 1354 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$59;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1352 │ + .line 1357 │ :sswitch_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1354 │ + .line 1359 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$59;->DoctypeSystemIdentifier_doubleQuoted:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1357 │ + .line 1362 │ :sswitch_3 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1359 │ + .line 1364 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$59;->DoctypeSystemIdentifier_singleQuoted:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1362 │ + .line 1367 │ :sswitch_4 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1363 │ + .line 1368 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1364 │ + .line 1369 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1365 │ + .line 1370 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$59;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1339 │ + .line 1344 │ :sswitch_data_0 │ .sparse-switch │ 0x9 -> :sswitch_0 │ 0xa -> :sswitch_0 │ 0xc -> :sswitch_0 │ 0xd -> :sswitch_0 │ 0x20 -> :sswitch_0 ├── smali/org/jsoup/parser/TokeniserState$58.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1308 │ + .line 1313 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -33,96 +33,96 @@ │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ const/4 v2, 0x1 │ │ - .line 1310 │ + .line 1315 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 1311 │ + .line 1316 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 1332 │ + .line 1337 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Doctype;->publicIdentifier:Ljava/lang/StringBuilder; │ │ invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 1334 │ + .line 1339 │ :goto_0 │ return-void │ │ - .line 1313 │ + .line 1318 │ :sswitch_0 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$58;->AfterDoctypePublicIdentifier:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1316 │ + .line 1321 │ :sswitch_1 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1317 │ + .line 1322 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iget-object v1, v1, Lorg/jsoup/parser/Token$Doctype;->publicIdentifier:Ljava/lang/StringBuilder; │ │ const v2, 0xfffd │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ goto :goto_0 │ │ - .line 1320 │ + .line 1325 │ :sswitch_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1321 │ + .line 1326 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1322 │ + .line 1327 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1323 │ + .line 1328 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$58;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1326 │ + .line 1331 │ :sswitch_3 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1327 │ + .line 1332 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1328 │ + .line 1333 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1329 │ + .line 1334 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$58;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1311 │ + .line 1316 │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_1 │ 0x27 -> :sswitch_0 │ 0x3e -> :sswitch_2 │ 0xffff -> :sswitch_3 │ .end sparse-switch ├── smali/org/jsoup/parser/TreeBuilder.smali │ @@ -12,14 +12,16 @@ │ │ .field private end:Lorg/jsoup/parser/Token$EndTag; │ │ .field protected errors:Lorg/jsoup/parser/ParseErrorList; │ │ .field reader:Lorg/jsoup/parser/CharacterReader; │ │ +.field protected settings:Lorg/jsoup/parser/ParseSettings; │ + │ .field protected stack:Ljava/util/ArrayList; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Ljava/util/ArrayList", │ "<", │ "Lorg/jsoup/nodes/Element;", │ ">;" │ @@ -36,22 +38,22 @@ │ .method constructor ()V │ .locals 1 │ │ .prologue │ .line 13 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 22 │ + .line 23 │ new-instance v0, Lorg/jsoup/parser/Token$StartTag; │ │ invoke-direct {v0}, Lorg/jsoup/parser/Token$StartTag;->()V │ │ iput-object v0, p0, Lorg/jsoup/parser/TreeBuilder;->start:Lorg/jsoup/parser/Token$StartTag; │ │ - .line 23 │ + .line 24 │ new-instance v0, Lorg/jsoup/parser/Token$EndTag; │ │ invoke-direct {v0}, Lorg/jsoup/parser/Token$EndTag;->()V │ │ iput-object v0, p0, Lorg/jsoup/parser/TreeBuilder;->end:Lorg/jsoup/parser/Token$EndTag; │ │ return-void │ @@ -89,100 +91,90 @@ │ │ :cond_0 │ const/4 v1, 0x0 │ │ goto :goto_0 │ .end method │ │ -.method protected initialiseParse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;)V │ +.method abstract defaultSettings()Lorg/jsoup/parser/ParseSettings; │ +.end method │ + │ +.method protected initialiseParse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;Lorg/jsoup/parser/ParseSettings;)V │ .locals 2 │ .param p1, "input" # Ljava/lang/String; │ .param p2, "baseUri" # Ljava/lang/String; │ .param p3, "errors" # Lorg/jsoup/parser/ParseErrorList; │ + .param p4, "settings" # Lorg/jsoup/parser/ParseSettings; │ │ .prologue │ - .line 26 │ + .line 29 │ const-string v0, "String input must not be null" │ │ invoke-static {p1, v0}, Lorg/jsoup/helper/Validate;->notNull(Ljava/lang/Object;Ljava/lang/String;)V │ │ - .line 27 │ + .line 30 │ const-string v0, "BaseURI must not be null" │ │ invoke-static {p2, v0}, Lorg/jsoup/helper/Validate;->notNull(Ljava/lang/Object;Ljava/lang/String;)V │ │ - .line 29 │ + .line 32 │ new-instance v0, Lorg/jsoup/nodes/Document; │ │ invoke-direct {v0, p2}, Lorg/jsoup/nodes/Document;->(Ljava/lang/String;)V │ │ iput-object v0, p0, Lorg/jsoup/parser/TreeBuilder;->doc:Lorg/jsoup/nodes/Document; │ │ - .line 30 │ + .line 33 │ + iput-object p4, p0, Lorg/jsoup/parser/TreeBuilder;->settings:Lorg/jsoup/parser/ParseSettings; │ + │ + .line 34 │ new-instance v0, Lorg/jsoup/parser/CharacterReader; │ │ invoke-direct {v0, p1}, Lorg/jsoup/parser/CharacterReader;->(Ljava/lang/String;)V │ │ iput-object v0, p0, Lorg/jsoup/parser/TreeBuilder;->reader:Lorg/jsoup/parser/CharacterReader; │ │ - .line 31 │ + .line 35 │ iput-object p3, p0, Lorg/jsoup/parser/TreeBuilder;->errors:Lorg/jsoup/parser/ParseErrorList; │ │ - .line 32 │ + .line 36 │ new-instance v0, Lorg/jsoup/parser/Tokeniser; │ │ iget-object v1, p0, Lorg/jsoup/parser/TreeBuilder;->reader:Lorg/jsoup/parser/CharacterReader; │ │ invoke-direct {v0, v1, p3}, Lorg/jsoup/parser/Tokeniser;->(Lorg/jsoup/parser/CharacterReader;Lorg/jsoup/parser/ParseErrorList;)V │ │ iput-object v0, p0, Lorg/jsoup/parser/TreeBuilder;->tokeniser:Lorg/jsoup/parser/Tokeniser; │ │ - .line 33 │ + .line 37 │ new-instance v0, Ljava/util/ArrayList; │ │ const/16 v1, 0x20 │ │ invoke-direct {v0, v1}, Ljava/util/ArrayList;->(I)V │ │ iput-object v0, p0, Lorg/jsoup/parser/TreeBuilder;->stack:Ljava/util/ArrayList; │ │ - .line 34 │ + .line 38 │ iput-object p2, p0, Lorg/jsoup/parser/TreeBuilder;->baseUri:Ljava/lang/String; │ │ - .line 35 │ + .line 39 │ return-void │ .end method │ │ -.method parse(Ljava/lang/String;Ljava/lang/String;)Lorg/jsoup/nodes/Document; │ - .locals 1 │ - .param p1, "input" # Ljava/lang/String; │ - .param p2, "baseUri" # Ljava/lang/String; │ - │ - .prologue │ - .line 38 │ - invoke-static {}, Lorg/jsoup/parser/ParseErrorList;->noTracking()Lorg/jsoup/parser/ParseErrorList; │ - │ - move-result-object v0 │ - │ - invoke-virtual {p0, p1, p2, v0}, Lorg/jsoup/parser/TreeBuilder;->parse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;)Lorg/jsoup/nodes/Document; │ - │ - move-result-object v0 │ - │ - return-object v0 │ -.end method │ - │ -.method parse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;)Lorg/jsoup/nodes/Document; │ +.method parse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;Lorg/jsoup/parser/ParseSettings;)Lorg/jsoup/nodes/Document; │ .locals 1 │ .param p1, "input" # Ljava/lang/String; │ .param p2, "baseUri" # Ljava/lang/String; │ .param p3, "errors" # Lorg/jsoup/parser/ParseErrorList; │ + .param p4, "settings" # Lorg/jsoup/parser/ParseSettings; │ │ .prologue │ .line 42 │ - invoke-virtual {p0, p1, p2, p3}, Lorg/jsoup/parser/TreeBuilder;->initialiseParse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;)V │ + invoke-virtual {p0, p1, p2, p3, p4}, Lorg/jsoup/parser/TreeBuilder;->initialiseParse(Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/parser/ParseErrorList;Lorg/jsoup/parser/ParseSettings;)V │ │ .line 43 │ invoke-virtual {p0}, Lorg/jsoup/parser/TreeBuilder;->runParser()V │ │ .line 44 │ iget-object v0, p0, Lorg/jsoup/parser/TreeBuilder;->doc:Lorg/jsoup/nodes/Document; ├── smali/org/jsoup/parser/TokeniserState$65.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1544 │ + .line 1549 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,69 +31,69 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 1546 │ + .line 1551 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 1547 │ + .line 1552 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 1565 │ + .line 1570 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1566 │ + .line 1571 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$65;->BogusDoctype:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1569 │ + .line 1574 │ :goto_0 │ :sswitch_0 │ return-void │ │ - .line 1555 │ + .line 1560 │ :sswitch_1 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1556 │ + .line 1561 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$65;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1559 │ + .line 1564 │ :sswitch_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1560 │ + .line 1565 │ iget-object v1, p1, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ const/4 v2, 0x1 │ │ iput-boolean v2, v1, Lorg/jsoup/parser/Token$Doctype;->forceQuirks:Z │ │ - .line 1561 │ + .line 1566 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitDoctypePending()V │ │ - .line 1562 │ + .line 1567 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$65;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 1547 │ + .line 1552 │ :sswitch_data_0 │ .sparse-switch │ 0x9 -> :sswitch_0 │ 0xa -> :sswitch_0 │ 0xc -> :sswitch_0 │ 0xd -> :sswitch_0 │ 0x20 -> :sswitch_0 ├── smali/org/jsoup/parser/TokeniserState$28.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 441 │ + .line 443 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,17 +31,17 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 443 │ + .line 445 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$28;->ScriptDataDoubleEscaped:Lorg/jsoup/parser/TokeniserState; │ │ sget-object v1, Lorg/jsoup/parser/TokeniserState$28;->ScriptDataEscaped:Lorg/jsoup/parser/TokeniserState; │ │ invoke-static {p1, p2, v0, v1}, Lorg/jsoup/parser/TokeniserState;->access$600(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;Lorg/jsoup/parser/TokeniserState;Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 444 │ + .line 446 │ return-void │ .end method ├── smali/org/jsoup/parser/TokeniserState$3.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 39 │ + .line 41 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,93 +31,93 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 42 │ + .line 44 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->current()C │ │ move-result v1 │ │ sparse-switch v1, :sswitch_data_0 │ │ - .line 58 │ + .line 60 │ const/4 v1, 0x3 │ │ new-array v1, v1, [C │ │ fill-array-data v1, :array_0 │ │ invoke-virtual {p2, v1}, Lorg/jsoup/parser/CharacterReader;->consumeToAny([C)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 59 │ + .line 61 │ .local v0, "data":Ljava/lang/String; │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(Ljava/lang/String;)V │ │ - .line 62 │ + .line 64 │ .end local v0 # "data":Ljava/lang/String; │ :goto_0 │ return-void │ │ - .line 44 │ + .line 46 │ :sswitch_0 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$3;->CharacterReferenceInRcdata:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 47 │ + .line 49 │ :sswitch_1 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$3;->RcdataLessthanSign:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 50 │ + .line 52 │ :sswitch_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 51 │ + .line 53 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->advance()V │ │ - .line 52 │ + .line 54 │ const v1, 0xfffd │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ goto :goto_0 │ │ - .line 55 │ + .line 57 │ :sswitch_3 │ new-instance v1, Lorg/jsoup/parser/Token$EOF; │ │ invoke-direct {v1}, Lorg/jsoup/parser/Token$EOF;->()V │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->emit(Lorg/jsoup/parser/Token;)V │ │ goto :goto_0 │ │ - .line 42 │ + .line 44 │ nop │ │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_2 │ 0x26 -> :sswitch_0 │ 0x3c -> :sswitch_1 │ 0xffff -> :sswitch_3 │ .end sparse-switch │ │ - .line 58 │ + .line 60 │ :array_0 │ .array-data 2 │ 0x26s │ 0x3cs │ 0x0s │ .end array-data │ .end method ├── smali/org/jsoup/parser/Tokeniser.smali │ @@ -8,37 +8,39 @@ │ │ .field static final replacementChar:C = '\ufffd' │ │ │ # instance fields │ .field charPending:Lorg/jsoup/parser/Token$Character; │ │ -.field private final charRefHolder:[C │ - │ .field private charsBuilder:Ljava/lang/StringBuilder; │ │ .field private charsString:Ljava/lang/String; │ │ +.field private final codepointHolder:[I │ + │ .field commentPending:Lorg/jsoup/parser/Token$Comment; │ │ .field dataBuffer:Ljava/lang/StringBuilder; │ │ .field doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ .field private emitPending:Lorg/jsoup/parser/Token; │ │ .field endPending:Lorg/jsoup/parser/Token$EndTag; │ │ -.field private errors:Lorg/jsoup/parser/ParseErrorList; │ +.field private final errors:Lorg/jsoup/parser/ParseErrorList; │ │ .field private isEmitPending:Z │ │ .field private lastStartTag:Ljava/lang/String; │ │ -.field private reader:Lorg/jsoup/parser/CharacterReader; │ +.field private final multipointHolder:[I │ + │ +.field private final reader:Lorg/jsoup/parser/CharacterReader; │ │ .field private selfClosingFlagAcknowledged:Z │ │ .field startPending:Lorg/jsoup/parser/Token$StartTag; │ │ .field private state:Lorg/jsoup/parser/TokeniserState; │ │ @@ -156,18 +158,25 @@ │ invoke-direct {v0}, Lorg/jsoup/parser/Token$Comment;->()V │ │ iput-object v0, p0, Lorg/jsoup/parser/Tokeniser;->commentPending:Lorg/jsoup/parser/Token$Comment; │ │ .line 36 │ iput-boolean v1, p0, Lorg/jsoup/parser/Tokeniser;->selfClosingFlagAcknowledged:Z │ │ - .line 125 │ - new-array v0, v1, [C │ + .line 129 │ + new-array v0, v1, [I │ │ - iput-object v0, p0, Lorg/jsoup/parser/Tokeniser;->charRefHolder:[C │ + iput-object v0, p0, Lorg/jsoup/parser/Tokeniser;->codepointHolder:[I │ + │ + .line 130 │ + const/4 v0, 0x2 │ + │ + new-array v0, v0, [I │ + │ + iput-object v0, p0, Lorg/jsoup/parser/Tokeniser;->multipointHolder:[I │ │ .line 39 │ iput-object p1, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ .line 40 │ iput-object p2, p0, Lorg/jsoup/parser/Tokeniser;->errors:Lorg/jsoup/parser/ParseErrorList; │ │ @@ -176,24 +185,24 @@ │ .end method │ │ .method private characterReferenceError(Ljava/lang/String;)V │ .locals 6 │ .param p1, "message" # Ljava/lang/String; │ │ .prologue │ - .line 241 │ + .line 251 │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->errors:Lorg/jsoup/parser/ParseErrorList; │ │ invoke-virtual {v0}, Lorg/jsoup/parser/ParseErrorList;->canAddError()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 242 │ + .line 252 │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->errors:Lorg/jsoup/parser/ParseErrorList; │ │ new-instance v1, Lorg/jsoup/parser/ParseError; │ │ iget-object v2, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ invoke-virtual {v2}, Lorg/jsoup/parser/CharacterReader;->pos()I │ @@ -210,626 +219,666 @@ │ │ aput-object p1, v4, v5 │ │ invoke-direct {v1, v2, v3, v4}, Lorg/jsoup/parser/ParseError;->(ILjava/lang/String;[Ljava/lang/Object;)V │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/ParseErrorList;->add(Ljava/lang/Object;)Z │ │ - .line 243 │ + .line 253 │ :cond_0 │ return-void │ .end method │ │ .method private error(Ljava/lang/String;)V │ .locals 3 │ .param p1, "errorMsg" # Ljava/lang/String; │ │ .prologue │ - .line 246 │ + .line 256 │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->errors:Lorg/jsoup/parser/ParseErrorList; │ │ invoke-virtual {v0}, Lorg/jsoup/parser/ParseErrorList;->canAddError()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 247 │ + .line 257 │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->errors:Lorg/jsoup/parser/ParseErrorList; │ │ new-instance v1, Lorg/jsoup/parser/ParseError; │ │ iget-object v2, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ invoke-virtual {v2}, Lorg/jsoup/parser/CharacterReader;->pos()I │ │ move-result v2 │ │ invoke-direct {v1, v2, p1}, Lorg/jsoup/parser/ParseError;->(ILjava/lang/String;)V │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/ParseErrorList;->add(Ljava/lang/Object;)Z │ │ - .line 248 │ + .line 258 │ :cond_0 │ return-void │ .end method │ │ │ # virtual methods │ .method acknowledgeSelfClosingFlag()V │ .locals 1 │ │ .prologue │ - .line 122 │ + .line 126 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lorg/jsoup/parser/Tokeniser;->selfClosingFlagAcknowledged:Z │ │ - .line 123 │ + .line 127 │ return-void │ .end method │ │ .method advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ .locals 1 │ .param p1, "state" # Lorg/jsoup/parser/TokeniserState; │ │ .prologue │ - .line 117 │ + .line 121 │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ invoke-virtual {v0}, Lorg/jsoup/parser/CharacterReader;->advance()V │ │ - .line 118 │ + .line 122 │ iput-object p1, p0, Lorg/jsoup/parser/Tokeniser;->state:Lorg/jsoup/parser/TokeniserState; │ │ - .line 119 │ + .line 123 │ return-void │ .end method │ │ .method appropriateEndTagName()Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 225 │ + .line 235 │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->lastStartTag:Ljava/lang/String; │ │ if-nez v0, :cond_0 │ │ - .line 226 │ + .line 236 │ const/4 v0, 0x0 │ │ - .line 227 │ + .line 237 │ :goto_0 │ return-object v0 │ │ :cond_0 │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->lastStartTag:Ljava/lang/String; │ │ goto :goto_0 │ .end method │ │ -.method consumeCharacterReference(Ljava/lang/Character;Z)[C │ - .locals 13 │ +.method consumeCharacterReference(Ljava/lang/Character;Z)[I │ + .locals 12 │ .param p1, "additionalAllowedCharacter" # Ljava/lang/Character; │ .param p2, "inAttribute" # Z │ │ .prologue │ - const/4 v10, 0x1 │ - │ - const/4 v9, 0x0 │ - │ - const/4 v8, 0x0 │ - │ - .line 127 │ - iget-object v11, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ + .line 132 │ + iget-object v9, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ - invoke-virtual {v11}, Lorg/jsoup/parser/CharacterReader;->isEmpty()Z │ + invoke-virtual {v9}, Lorg/jsoup/parser/CharacterReader;->isEmpty()Z │ │ - move-result v11 │ + move-result v9 │ │ - if-eqz v11, :cond_0 │ + if-eqz v9, :cond_0 │ │ - move-object v1, v8 │ + .line 133 │ + const/4 v2, 0x0 │ │ - .line 186 │ + .line 195 │ :goto_0 │ - return-object v1 │ + return-object v2 │ │ - .line 129 │ + .line 134 │ :cond_0 │ if-eqz p1, :cond_1 │ │ invoke-virtual {p1}, Ljava/lang/Character;->charValue()C │ │ - move-result v11 │ + move-result v9 │ │ - iget-object v12, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ + iget-object v10, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ - invoke-virtual {v12}, Lorg/jsoup/parser/CharacterReader;->current()C │ + invoke-virtual {v10}, Lorg/jsoup/parser/CharacterReader;->current()C │ │ - move-result v12 │ + move-result v10 │ │ - if-ne v11, v12, :cond_1 │ + if-ne v9, v10, :cond_1 │ │ - move-object v1, v8 │ + .line 135 │ + const/4 v2, 0x0 │ │ - .line 130 │ goto :goto_0 │ │ - .line 131 │ + .line 136 │ :cond_1 │ - iget-object v11, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ + iget-object v9, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ - sget-object v12, Lorg/jsoup/parser/Tokeniser;->notCharRefCharsSorted:[C │ + sget-object v10, Lorg/jsoup/parser/Tokeniser;->notCharRefCharsSorted:[C │ │ - invoke-virtual {v11, v12}, Lorg/jsoup/parser/CharacterReader;->matchesAnySorted([C)Z │ + invoke-virtual {v9, v10}, Lorg/jsoup/parser/CharacterReader;->matchesAnySorted([C)Z │ │ - move-result v11 │ + move-result v9 │ │ - if-eqz v11, :cond_2 │ + if-eqz v9, :cond_2 │ │ - move-object v1, v8 │ + .line 137 │ + const/4 v2, 0x0 │ │ - .line 132 │ goto :goto_0 │ │ - .line 134 │ + .line 139 │ :cond_2 │ - iget-object v1, p0, Lorg/jsoup/parser/Tokeniser;->charRefHolder:[C │ + iget-object v2, p0, Lorg/jsoup/parser/Tokeniser;->codepointHolder:[I │ │ - .line 135 │ - .local v1, "charRef":[C │ - iget-object v11, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ + .line 140 │ + .local v2, "codeRef":[I │ + iget-object v9, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ - invoke-virtual {v11}, Lorg/jsoup/parser/CharacterReader;->mark()V │ + invoke-virtual {v9}, Lorg/jsoup/parser/CharacterReader;->mark()V │ │ - .line 136 │ - iget-object v11, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ + .line 141 │ + iget-object v9, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ - const-string v12, "#" │ + const-string v10, "#" │ │ - invoke-virtual {v11, v12}, Lorg/jsoup/parser/CharacterReader;->matchConsume(Ljava/lang/String;)Z │ + invoke-virtual {v9, v10}, Lorg/jsoup/parser/CharacterReader;->matchConsume(Ljava/lang/String;)Z │ │ - move-result v11 │ + move-result v9 │ │ - if-eqz v11, :cond_b │ + if-eqz v9, :cond_a │ │ - .line 137 │ - iget-object v10, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ + .line 142 │ + iget-object v9, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ - const-string v11, "X" │ + const-string v10, "X" │ │ - invoke-virtual {v10, v11}, Lorg/jsoup/parser/CharacterReader;->matchConsumeIgnoreCase(Ljava/lang/String;)Z │ + invoke-virtual {v9, v10}, Lorg/jsoup/parser/CharacterReader;->matchConsumeIgnoreCase(Ljava/lang/String;)Z │ │ move-result v4 │ │ - .line 138 │ + .line 143 │ .local v4, "isHexMode":Z │ if-eqz v4, :cond_3 │ │ - iget-object v10, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ + iget-object v9, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ - invoke-virtual {v10}, Lorg/jsoup/parser/CharacterReader;->consumeHexSequence()Ljava/lang/String; │ + invoke-virtual {v9}, Lorg/jsoup/parser/CharacterReader;->consumeHexSequence()Ljava/lang/String; │ │ - move-result-object v7 │ + move-result-object v8 │ │ - .line 139 │ - .local v7, "numRef":Ljava/lang/String; │ + .line 144 │ + .local v8, "numRef":Ljava/lang/String; │ :goto_1 │ - invoke-virtual {v7}, Ljava/lang/String;->length()I │ + invoke-virtual {v8}, Ljava/lang/String;->length()I │ │ - move-result v10 │ + move-result v9 │ │ - if-nez v10, :cond_4 │ + if-nez v9, :cond_4 │ │ - .line 140 │ + .line 145 │ const-string v9, "numeric reference with no numerals" │ │ invoke-direct {p0, v9}, Lorg/jsoup/parser/Tokeniser;->characterReferenceError(Ljava/lang/String;)V │ │ - .line 141 │ + .line 146 │ iget-object v9, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ invoke-virtual {v9}, Lorg/jsoup/parser/CharacterReader;->rewindToMark()V │ │ - move-object v1, v8 │ + .line 147 │ + const/4 v2, 0x0 │ │ - .line 142 │ goto :goto_0 │ │ - .line 138 │ - .end local v7 # "numRef":Ljava/lang/String; │ + .line 143 │ + .end local v8 # "numRef":Ljava/lang/String; │ :cond_3 │ - iget-object v10, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ + iget-object v9, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ - invoke-virtual {v10}, Lorg/jsoup/parser/CharacterReader;->consumeDigitSequence()Ljava/lang/String; │ + invoke-virtual {v9}, Lorg/jsoup/parser/CharacterReader;->consumeDigitSequence()Ljava/lang/String; │ │ - move-result-object v7 │ + move-result-object v8 │ │ goto :goto_1 │ │ - .line 144 │ - .restart local v7 # "numRef":Ljava/lang/String; │ + .line 149 │ + .restart local v8 # "numRef":Ljava/lang/String; │ :cond_4 │ - iget-object v8, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ + iget-object v9, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ const-string v10, ";" │ │ - invoke-virtual {v8, v10}, Lorg/jsoup/parser/CharacterReader;->matchConsume(Ljava/lang/String;)Z │ + invoke-virtual {v9, v10}, Lorg/jsoup/parser/CharacterReader;->matchConsume(Ljava/lang/String;)Z │ │ - move-result v8 │ + move-result v9 │ │ - if-nez v8, :cond_5 │ + if-nez v9, :cond_5 │ │ - .line 145 │ - const-string v8, "missing semicolon" │ + .line 150 │ + const-string v9, "missing semicolon" │ │ - invoke-direct {p0, v8}, Lorg/jsoup/parser/Tokeniser;->characterReferenceError(Ljava/lang/String;)V │ + invoke-direct {p0, v9}, Lorg/jsoup/parser/Tokeniser;->characterReferenceError(Ljava/lang/String;)V │ │ - .line 146 │ + .line 151 │ :cond_5 │ - const/4 v2, -0x1 │ + const/4 v1, -0x1 │ │ - .line 148 │ - .local v2, "charval":I │ + .line 153 │ + .local v1, "charval":I │ if-eqz v4, :cond_8 │ │ const/16 v0, 0x10 │ │ - .line 149 │ + .line 154 │ .local v0, "base":I │ :goto_2 │ :try_start_0 │ - invoke-static {v7, v0}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;I)Ljava/lang/Integer; │ + invoke-static {v8, v0}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;I)Ljava/lang/Integer; │ │ - move-result-object v8 │ + move-result-object v9 │ │ - invoke-virtual {v8}, Ljava/lang/Integer;->intValue()I │ + invoke-virtual {v9}, Ljava/lang/Integer;->intValue()I │ :try_end_0 │ .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - move-result v2 │ + move-result v1 │ │ - .line 152 │ + .line 157 │ :goto_3 │ - const/4 v8, -0x1 │ + const/4 v9, -0x1 │ │ - if-eq v2, v8, :cond_7 │ + if-eq v1, v9, :cond_7 │ │ - const v8, 0xd800 │ + const v9, 0xd800 │ │ - if-lt v2, v8, :cond_6 │ + if-lt v1, v9, :cond_6 │ │ - const v8, 0xdfff │ + const v9, 0xdfff │ │ - if-le v2, v8, :cond_7 │ + if-le v1, v9, :cond_7 │ │ :cond_6 │ - const v8, 0x10ffff │ + const v9, 0x10ffff │ │ - if-le v2, v8, :cond_9 │ + if-le v1, v9, :cond_9 │ │ - .line 153 │ + .line 158 │ :cond_7 │ - const-string v8, "character outside of valid range" │ + const-string v9, "character outside of valid range" │ │ - invoke-direct {p0, v8}, Lorg/jsoup/parser/Tokeniser;->characterReferenceError(Ljava/lang/String;)V │ + invoke-direct {p0, v9}, Lorg/jsoup/parser/Tokeniser;->characterReferenceError(Ljava/lang/String;)V │ │ - .line 154 │ - const v8, 0xfffd │ + .line 159 │ + const/4 v9, 0x0 │ + │ + const v10, 0xfffd │ │ - aput-char v8, v1, v9 │ + aput v10, v2, v9 │ │ goto/16 :goto_0 │ │ - .line 148 │ + .line 153 │ .end local v0 # "base":I │ :cond_8 │ const/16 v0, 0xa │ │ goto :goto_2 │ │ - .line 159 │ + .line 164 │ .restart local v0 # "base":I │ :cond_9 │ - const/high16 v8, 0x10000 │ - │ - if-ge v2, v8, :cond_a │ - │ - .line 160 │ - int-to-char v8, v2 │ - │ - aput-char v8, v1, v9 │ - │ - goto/16 :goto_0 │ - │ - .line 163 │ - :cond_a │ - invoke-static {v2}, Ljava/lang/Character;->toChars(I)[C │ + const/4 v9, 0x0 │ │ - move-result-object v1 │ + aput v1, v2, v9 │ │ goto/16 :goto_0 │ │ - .line 167 │ + .line 169 │ .end local v0 # "base":I │ - .end local v2 # "charval":I │ + .end local v1 # "charval":I │ .end local v4 # "isHexMode":Z │ - .end local v7 # "numRef":Ljava/lang/String; │ - :cond_b │ - iget-object v11, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ + .end local v8 # "numRef":Ljava/lang/String; │ + :cond_a │ + iget-object v9, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ - invoke-virtual {v11}, Lorg/jsoup/parser/CharacterReader;->consumeLetterThenDigitSequence()Ljava/lang/String; │ + invoke-virtual {v9}, Lorg/jsoup/parser/CharacterReader;->consumeLetterThenDigitSequence()Ljava/lang/String; │ │ move-result-object v6 │ │ - .line 168 │ + .line 170 │ .local v6, "nameRef":Ljava/lang/String; │ - iget-object v11, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ + iget-object v9, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ - const/16 v12, 0x3b │ + const/16 v10, 0x3b │ │ - invoke-virtual {v11, v12}, Lorg/jsoup/parser/CharacterReader;->matches(C)Z │ + invoke-virtual {v9, v10}, Lorg/jsoup/parser/CharacterReader;->matches(C)Z │ │ move-result v5 │ │ - .line 170 │ + .line 172 │ .local v5, "looksLegit":Z │ invoke-static {v6}, Lorg/jsoup/nodes/Entities;->isBaseNamedEntity(Ljava/lang/String;)Z │ │ - move-result v11 │ + move-result v9 │ │ - if-nez v11, :cond_c │ + if-nez v9, :cond_b │ │ invoke-static {v6}, Lorg/jsoup/nodes/Entities;->isNamedEntity(Ljava/lang/String;)Z │ │ - move-result v11 │ + move-result v9 │ │ - if-eqz v11, :cond_e │ + if-eqz v9, :cond_d │ │ - if-eqz v5, :cond_e │ + if-eqz v5, :cond_d │ │ - :cond_c │ - move v3, v10 │ + :cond_b │ + const/4 v3, 0x1 │ │ - .line 172 │ + .line 174 │ .local v3, "found":Z │ :goto_4 │ - if-nez v3, :cond_f │ + if-nez v3, :cond_e │ + │ + .line 175 │ + iget-object v9, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ - .line 173 │ - iget-object v11, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ + invoke-virtual {v9}, Lorg/jsoup/parser/CharacterReader;->rewindToMark()V │ │ - invoke-virtual {v11}, Lorg/jsoup/parser/CharacterReader;->rewindToMark()V │ + .line 176 │ + if-eqz v5, :cond_c │ │ - .line 174 │ - if-eqz v5, :cond_d │ + .line 177 │ + const-string v9, "invalid named referenece \'%s\'" │ │ - .line 175 │ - const-string v11, "invalid named referenece \'%s\'" │ + const/4 v10, 0x1 │ │ new-array v10, v10, [Ljava/lang/Object; │ │ - aput-object v6, v10, v9 │ + const/4 v11, 0x0 │ │ - invoke-static {v11, v10}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + aput-object v6, v10, v11 │ + │ + invoke-static {v9, v10}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v9 │ │ invoke-direct {p0, v9}, Lorg/jsoup/parser/Tokeniser;->characterReferenceError(Ljava/lang/String;)V │ │ - :cond_d │ - move-object v1, v8 │ + .line 178 │ + :cond_c │ + const/4 v2, 0x0 │ │ - .line 176 │ goto/16 :goto_0 │ │ + .line 172 │ .end local v3 # "found":Z │ - :cond_e │ - move v3, v9 │ + :cond_d │ + const/4 v3, 0x0 │ │ - .line 170 │ goto :goto_4 │ │ - .line 178 │ + .line 180 │ .restart local v3 # "found":Z │ - :cond_f │ - if-eqz p2, :cond_11 │ + :cond_e │ + if-eqz p2, :cond_10 │ │ - iget-object v10, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ + iget-object v9, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ - invoke-virtual {v10}, Lorg/jsoup/parser/CharacterReader;->matchesLetter()Z │ + invoke-virtual {v9}, Lorg/jsoup/parser/CharacterReader;->matchesLetter()Z │ │ - move-result v10 │ + move-result v9 │ │ - if-nez v10, :cond_10 │ + if-nez v9, :cond_f │ │ - iget-object v10, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ + iget-object v9, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ - invoke-virtual {v10}, Lorg/jsoup/parser/CharacterReader;->matchesDigit()Z │ + invoke-virtual {v9}, Lorg/jsoup/parser/CharacterReader;->matchesDigit()Z │ │ - move-result v10 │ + move-result v9 │ │ - if-nez v10, :cond_10 │ + if-nez v9, :cond_f │ │ - iget-object v10, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ + iget-object v9, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ - const/4 v11, 0x3 │ + const/4 v10, 0x3 │ │ - new-array v11, v11, [C │ + new-array v10, v10, [C │ │ - fill-array-data v11, :array_0 │ + fill-array-data v10, :array_0 │ │ - invoke-virtual {v10, v11}, Lorg/jsoup/parser/CharacterReader;->matchesAny([C)Z │ + invoke-virtual {v9, v10}, Lorg/jsoup/parser/CharacterReader;->matchesAny([C)Z │ │ - move-result v10 │ + move-result v9 │ │ - if-eqz v10, :cond_11 │ + if-eqz v9, :cond_10 │ │ - .line 180 │ - :cond_10 │ + .line 182 │ + :cond_f │ iget-object v9, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ invoke-virtual {v9}, Lorg/jsoup/parser/CharacterReader;->rewindToMark()V │ │ - move-object v1, v8 │ + .line 183 │ + const/4 v2, 0x0 │ │ - .line 181 │ goto/16 :goto_0 │ │ - .line 183 │ - :cond_11 │ - iget-object v8, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ + .line 185 │ + :cond_10 │ + iget-object v9, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ const-string v10, ";" │ │ - invoke-virtual {v8, v10}, Lorg/jsoup/parser/CharacterReader;->matchConsume(Ljava/lang/String;)Z │ + invoke-virtual {v9, v10}, Lorg/jsoup/parser/CharacterReader;->matchConsume(Ljava/lang/String;)Z │ │ - move-result v8 │ + move-result v9 │ │ - if-nez v8, :cond_12 │ + if-nez v9, :cond_11 │ │ - .line 184 │ - const-string v8, "missing semicolon" │ + .line 186 │ + const-string v9, "missing semicolon" │ │ - invoke-direct {p0, v8}, Lorg/jsoup/parser/Tokeniser;->characterReferenceError(Ljava/lang/String;)V │ + invoke-direct {p0, v9}, Lorg/jsoup/parser/Tokeniser;->characterReferenceError(Ljava/lang/String;)V │ │ - .line 185 │ + .line 187 │ + :cond_11 │ + iget-object v9, p0, Lorg/jsoup/parser/Tokeniser;->multipointHolder:[I │ + │ + invoke-static {v6, v9}, Lorg/jsoup/nodes/Entities;->codepointsForName(Ljava/lang/String;[I)I │ + │ + move-result v7 │ + │ + .line 188 │ + .local v7, "numChars":I │ + const/4 v9, 0x1 │ + │ + if-ne v7, v9, :cond_12 │ + │ + .line 189 │ + const/4 v9, 0x0 │ + │ + iget-object v10, p0, Lorg/jsoup/parser/Tokeniser;->multipointHolder:[I │ + │ + const/4 v11, 0x0 │ + │ + aget v10, v10, v11 │ + │ + aput v10, v2, v9 │ + │ + goto/16 :goto_0 │ + │ + .line 191 │ :cond_12 │ - invoke-static {v6}, Lorg/jsoup/nodes/Entities;->getCharacterByName(Ljava/lang/String;)Ljava/lang/Character; │ + const/4 v9, 0x2 │ │ - move-result-object v8 │ + if-ne v7, v9, :cond_13 │ + │ + .line 192 │ + iget-object v2, p0, Lorg/jsoup/parser/Tokeniser;->multipointHolder:[I │ + │ + goto/16 :goto_0 │ + │ + .line 194 │ + :cond_13 │ + new-instance v9, Ljava/lang/StringBuilder; │ + │ + invoke-direct {v9}, Ljava/lang/StringBuilder;->()V │ + │ + const-string v10, "Unexpected characters returned for " │ │ - invoke-virtual {v8}, Ljava/lang/Character;->charValue()C │ + invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v9 │ + │ + invoke-virtual {v9, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v9 │ + │ + invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + │ + move-result-object v9 │ │ - move-result v8 │ + invoke-static {v9}, Lorg/jsoup/helper/Validate;->fail(Ljava/lang/String;)V │ │ - aput-char v8, v1, v9 │ + .line 195 │ + iget-object v2, p0, Lorg/jsoup/parser/Tokeniser;->multipointHolder:[I │ │ goto/16 :goto_0 │ │ - .line 150 │ + .line 155 │ .end local v3 # "found":Z │ .end local v5 # "looksLegit":Z │ .end local v6 # "nameRef":Ljava/lang/String; │ + .end local v7 # "numChars":I │ .restart local v0 # "base":I │ - .restart local v2 # "charval":I │ + .restart local v1 # "charval":I │ .restart local v4 # "isHexMode":Z │ - .restart local v7 # "numRef":Ljava/lang/String; │ + .restart local v8 # "numRef":Ljava/lang/String; │ :catch_0 │ - move-exception v8 │ + move-exception v9 │ │ goto/16 :goto_3 │ │ - .line 178 │ + .line 180 │ nop │ │ :array_0 │ .array-data 2 │ 0x3ds │ 0x2ds │ 0x5fs │ .end array-data │ .end method │ │ .method createCommentPending()V │ .locals 1 │ │ .prologue │ - .line 201 │ + .line 211 │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->commentPending:Lorg/jsoup/parser/Token$Comment; │ │ invoke-virtual {v0}, Lorg/jsoup/parser/Token$Comment;->reset()Lorg/jsoup/parser/Token; │ │ - .line 202 │ + .line 212 │ return-void │ .end method │ │ .method createDoctypePending()V │ .locals 1 │ │ .prologue │ - .line 209 │ + .line 219 │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ invoke-virtual {v0}, Lorg/jsoup/parser/Token$Doctype;->reset()Lorg/jsoup/parser/Token; │ │ - .line 210 │ + .line 220 │ return-void │ .end method │ │ .method createTagPending(Z)Lorg/jsoup/parser/Token$Tag; │ .locals 1 │ .param p1, "start" # Z │ │ .prologue │ - .line 191 │ + .line 201 │ if-eqz p1, :cond_0 │ │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->startPending:Lorg/jsoup/parser/Token$StartTag; │ │ invoke-virtual {v0}, Lorg/jsoup/parser/Token$StartTag;->reset()Lorg/jsoup/parser/Token$Tag; │ │ move-result-object v0 │ │ :goto_0 │ iput-object v0, p0, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ - .line 192 │ + .line 202 │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ return-object v0 │ │ - .line 191 │ + .line 201 │ :cond_0 │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->endPending:Lorg/jsoup/parser/Token$EndTag; │ │ invoke-virtual {v0}, Lorg/jsoup/parser/Token$EndTag;->reset()Lorg/jsoup/parser/Token$Tag; │ │ move-result-object v0 │ │ goto :goto_0 │ .end method │ │ .method createTempBuffer()V │ .locals 1 │ │ .prologue │ - .line 217 │ + .line 227 │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->dataBuffer:Ljava/lang/StringBuilder; │ │ invoke-static {v0}, Lorg/jsoup/parser/Token;->reset(Ljava/lang/StringBuilder;)V │ │ - .line 218 │ + .line 228 │ return-void │ .end method │ │ .method currentNodeInHtmlNS()Z │ .locals 1 │ │ .prologue │ - .line 252 │ + .line 262 │ const/4 v0, 0x1 │ │ return v0 │ .end method │ │ .method emit(C)V │ .locals 1 │ .param p1, "c" # C │ │ .prologue │ - .line 105 │ + .line 109 │ invoke-static {p1}, Ljava/lang/String;->valueOf(C)Ljava/lang/String; │ │ move-result-object v0 │ │ invoke-virtual {p0, v0}, Lorg/jsoup/parser/Tokeniser;->emit(Ljava/lang/String;)V │ │ - .line 106 │ + .line 110 │ return-void │ .end method │ │ .method emit(Ljava/lang/String;)V │ .locals 2 │ .param p1, "str" # Ljava/lang/String; │ │ @@ -965,73 +1014,93 @@ │ │ invoke-virtual {p0, v0}, Lorg/jsoup/parser/Tokeniser;->emit(Ljava/lang/String;)V │ │ .line 102 │ return-void │ .end method │ │ +.method emit([I)V │ + .locals 3 │ + .param p1, "codepoints" # [I │ + │ + .prologue │ + .line 105 │ + new-instance v0, Ljava/lang/String; │ + │ + const/4 v1, 0x0 │ + │ + array-length v2, p1 │ + │ + invoke-direct {v0, p1, v1, v2}, Ljava/lang/String;->([III)V │ + │ + invoke-virtual {p0, v0}, Lorg/jsoup/parser/Tokeniser;->emit(Ljava/lang/String;)V │ + │ + .line 106 │ + return-void │ +.end method │ + │ .method emitCommentPending()V │ .locals 1 │ │ .prologue │ - .line 205 │ + .line 215 │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->commentPending:Lorg/jsoup/parser/Token$Comment; │ │ invoke-virtual {p0, v0}, Lorg/jsoup/parser/Tokeniser;->emit(Lorg/jsoup/parser/Token;)V │ │ - .line 206 │ + .line 216 │ return-void │ .end method │ │ .method emitDoctypePending()V │ .locals 1 │ │ .prologue │ - .line 213 │ + .line 223 │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->doctypePending:Lorg/jsoup/parser/Token$Doctype; │ │ invoke-virtual {p0, v0}, Lorg/jsoup/parser/Tokeniser;->emit(Lorg/jsoup/parser/Token;)V │ │ - .line 214 │ + .line 224 │ return-void │ .end method │ │ .method emitTagPending()V │ .locals 1 │ │ .prologue │ - .line 196 │ + .line 206 │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ invoke-virtual {v0}, Lorg/jsoup/parser/Token$Tag;->finaliseTag()V │ │ - .line 197 │ + .line 207 │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ invoke-virtual {p0, v0}, Lorg/jsoup/parser/Tokeniser;->emit(Lorg/jsoup/parser/Token;)V │ │ - .line 198 │ + .line 208 │ return-void │ .end method │ │ .method eofError(Lorg/jsoup/parser/TokeniserState;)V │ .locals 6 │ .param p1, "state" # Lorg/jsoup/parser/TokeniserState; │ │ .prologue │ - .line 236 │ + .line 246 │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->errors:Lorg/jsoup/parser/ParseErrorList; │ │ invoke-virtual {v0}, Lorg/jsoup/parser/ParseErrorList;->canAddError()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 237 │ + .line 247 │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->errors:Lorg/jsoup/parser/ParseErrorList; │ │ new-instance v1, Lorg/jsoup/parser/ParseError; │ │ iget-object v2, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ invoke-virtual {v2}, Lorg/jsoup/parser/CharacterReader;->pos()I │ @@ -1048,34 +1117,34 @@ │ │ aput-object p1, v4, v5 │ │ invoke-direct {v1, v2, v3, v4}, Lorg/jsoup/parser/ParseError;->(ILjava/lang/String;[Ljava/lang/Object;)V │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/ParseErrorList;->add(Ljava/lang/Object;)Z │ │ - .line 238 │ + .line 248 │ :cond_0 │ return-void │ .end method │ │ .method error(Lorg/jsoup/parser/TokeniserState;)V │ .locals 7 │ .param p1, "state" # Lorg/jsoup/parser/TokeniserState; │ │ .prologue │ - .line 231 │ + .line 241 │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->errors:Lorg/jsoup/parser/ParseErrorList; │ │ invoke-virtual {v0}, Lorg/jsoup/parser/ParseErrorList;->canAddError()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 232 │ + .line 242 │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->errors:Lorg/jsoup/parser/ParseErrorList; │ │ new-instance v1, Lorg/jsoup/parser/ParseError; │ │ iget-object v2, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ invoke-virtual {v2}, Lorg/jsoup/parser/CharacterReader;->pos()I │ @@ -1106,45 +1175,47 @@ │ │ aput-object p1, v4, v5 │ │ invoke-direct {v1, v2, v3, v4}, Lorg/jsoup/parser/ParseError;->(ILjava/lang/String;[Ljava/lang/Object;)V │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/ParseErrorList;->add(Ljava/lang/Object;)Z │ │ - .line 233 │ + .line 243 │ :cond_0 │ return-void │ .end method │ │ .method getState()Lorg/jsoup/parser/TokeniserState; │ .locals 1 │ │ .prologue │ - .line 109 │ + .line 113 │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->state:Lorg/jsoup/parser/TokeniserState; │ │ return-object v0 │ .end method │ │ .method isAppropriateEndTagToken()Z │ .locals 2 │ │ .prologue │ - .line 221 │ + .line 231 │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->lastStartTag:Ljava/lang/String; │ │ if-eqz v0, :cond_0 │ │ iget-object v0, p0, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ - iget-object v0, v0, Lorg/jsoup/parser/Token$Tag;->tagName:Ljava/lang/String; │ + invoke-virtual {v0}, Lorg/jsoup/parser/Token$Tag;->name()Ljava/lang/String; │ + │ + move-result-object v0 │ │ iget-object v1, p0, Lorg/jsoup/parser/Tokeniser;->lastStartTag:Ljava/lang/String; │ │ - invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v0, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ const/4 v0, 0x1 │ │ @@ -1273,97 +1344,115 @@ │ .end method │ │ .method transition(Lorg/jsoup/parser/TokeniserState;)V │ .locals 0 │ .param p1, "state" # Lorg/jsoup/parser/TokeniserState; │ │ .prologue │ - .line 113 │ + .line 117 │ iput-object p1, p0, Lorg/jsoup/parser/Tokeniser;->state:Lorg/jsoup/parser/TokeniserState; │ │ - .line 114 │ + .line 118 │ return-void │ .end method │ │ .method unescapeEntities(Z)Ljava/lang/String; │ - .locals 4 │ + .locals 5 │ .param p1, "inAttribute" # Z │ │ .prologue │ - const/16 v3, 0x26 │ + const/16 v4, 0x26 │ │ - .line 263 │ + .line 273 │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ - .line 264 │ + .line 274 │ .local v0, "builder":Ljava/lang/StringBuilder; │ :cond_0 │ :goto_0 │ iget-object v2, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ invoke-virtual {v2}, Lorg/jsoup/parser/CharacterReader;->isEmpty()Z │ │ move-result v2 │ │ if-nez v2, :cond_3 │ │ - .line 265 │ + .line 275 │ iget-object v2, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ - invoke-virtual {v2, v3}, Lorg/jsoup/parser/CharacterReader;->consumeTo(C)Ljava/lang/String; │ + invoke-virtual {v2, v4}, Lorg/jsoup/parser/CharacterReader;->consumeTo(C)Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - .line 266 │ + .line 276 │ iget-object v2, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ - invoke-virtual {v2, v3}, Lorg/jsoup/parser/CharacterReader;->matches(C)Z │ + invoke-virtual {v2, v4}, Lorg/jsoup/parser/CharacterReader;->matches(C)Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ - .line 267 │ + .line 277 │ iget-object v2, p0, Lorg/jsoup/parser/Tokeniser;->reader:Lorg/jsoup/parser/CharacterReader; │ │ invoke-virtual {v2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ - .line 268 │ + .line 278 │ const/4 v2, 0x0 │ │ - invoke-virtual {p0, v2, p1}, Lorg/jsoup/parser/Tokeniser;->consumeCharacterReference(Ljava/lang/Character;Z)[C │ + invoke-virtual {p0, v2, p1}, Lorg/jsoup/parser/Tokeniser;->consumeCharacterReference(Ljava/lang/Character;Z)[I │ │ move-result-object v1 │ │ - .line 269 │ - .local v1, "c":[C │ + .line 279 │ + .local v1, "c":[I │ if-eqz v1, :cond_1 │ │ array-length v2, v1 │ │ if-nez v2, :cond_2 │ │ - .line 270 │ + .line 280 │ :cond_1 │ - invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ goto :goto_0 │ │ - .line 272 │ + .line 282 │ :cond_2 │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append([C)Ljava/lang/StringBuilder; │ + const/4 v2, 0x0 │ + │ + aget v2, v1, v2 │ + │ + invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->appendCodePoint(I)Ljava/lang/StringBuilder; │ + │ + .line 283 │ + array-length v2, v1 │ + │ + const/4 v3, 0x2 │ + │ + if-ne v2, v3, :cond_0 │ + │ + .line 284 │ + const/4 v2, 0x1 │ + │ + aget v2, v1, v2 │ + │ + invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->appendCodePoint(I)Ljava/lang/StringBuilder; │ │ goto :goto_0 │ │ - .line 275 │ - .end local v1 # "c":[C │ + .line 289 │ + .end local v1 # "c":[I │ :cond_3 │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v2 │ │ return-object v2 │ .end method ├── smali/org/jsoup/parser/TokeniserState$35.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 590 │ + .line 592 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,117 +31,113 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 4 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 593 │ + .line 595 │ invoke-static {}, Lorg/jsoup/parser/TokeniserState;->access$700()[C │ │ move-result-object v2 │ │ invoke-virtual {p2, v2}, Lorg/jsoup/parser/CharacterReader;->consumeToAnySorted([C)Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 594 │ + .line 596 │ .local v1, "name":Ljava/lang/String; │ iget-object v2, p1, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ - invoke-virtual {v1}, Ljava/lang/String;->toLowerCase()Ljava/lang/String; │ - │ - move-result-object v3 │ + invoke-virtual {v2, v1}, Lorg/jsoup/parser/Token$Tag;->appendAttributeName(Ljava/lang/String;)V │ │ - invoke-virtual {v2, v3}, Lorg/jsoup/parser/Token$Tag;->appendAttributeName(Ljava/lang/String;)V │ - │ - .line 596 │ + .line 598 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v0 │ │ - .line 597 │ + .line 599 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 630 │ + .line 632 │ :goto_0 │ return-void │ │ - .line 603 │ + .line 605 │ :sswitch_0 │ sget-object v2, Lorg/jsoup/parser/TokeniserState$35;->AfterAttributeName:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v2}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 606 │ + .line 608 │ :sswitch_1 │ sget-object v2, Lorg/jsoup/parser/TokeniserState$35;->SelfClosingStartTag:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v2}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 609 │ + .line 611 │ :sswitch_2 │ sget-object v2, Lorg/jsoup/parser/TokeniserState$35;->BeforeAttributeValue:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v2}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 612 │ + .line 614 │ :sswitch_3 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->emitTagPending()V │ │ - .line 613 │ + .line 615 │ sget-object v2, Lorg/jsoup/parser/TokeniserState$35;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v2}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 616 │ + .line 618 │ :sswitch_4 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 617 │ + .line 619 │ iget-object v2, p1, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ const v3, 0xfffd │ │ invoke-virtual {v2, v3}, Lorg/jsoup/parser/Token$Tag;->appendAttributeName(C)V │ │ goto :goto_0 │ │ - .line 620 │ + .line 622 │ :sswitch_5 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 621 │ + .line 623 │ sget-object v2, Lorg/jsoup/parser/TokeniserState$35;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v2}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 626 │ + .line 628 │ :sswitch_6 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 627 │ + .line 629 │ iget-object v2, p1, Lorg/jsoup/parser/Tokeniser;->tagPending:Lorg/jsoup/parser/Token$Tag; │ │ invoke-virtual {v2, v0}, Lorg/jsoup/parser/Token$Tag;->appendAttributeName(C)V │ │ goto :goto_0 │ │ - .line 597 │ + .line 599 │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_4 │ 0x9 -> :sswitch_0 │ 0xa -> :sswitch_0 │ 0xc -> :sswitch_0 │ 0xd -> :sswitch_0 ├── smali/org/jsoup/parser/Token$Tag.smali │ @@ -17,14 +17,16 @@ │ # instance fields │ .field attributes:Lorg/jsoup/nodes/Attributes; │ │ .field private hasEmptyAttributeValue:Z │ │ .field private hasPendingAttributeValue:Z │ │ +.field protected normalName:Ljava/lang/String; │ + │ .field private pendingAttributeName:Ljava/lang/String; │ │ .field private pendingAttributeValue:Ljava/lang/StringBuilder; │ │ .field private pendingAttributeValueS:Ljava/lang/String; │ │ .field selfClosing:Z │ @@ -35,105 +37,105 @@ │ # direct methods │ .method constructor ()V │ .locals 2 │ │ .prologue │ const/4 v1, 0x0 │ │ - .line 69 │ + .line 77 │ const/4 v0, 0x0 │ │ invoke-direct {p0, v0}, Lorg/jsoup/parser/Token;->(Lorg/jsoup/parser/Token$1;)V │ │ - .line 72 │ + .line 81 │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ iput-object v0, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeValue:Ljava/lang/StringBuilder; │ │ - .line 74 │ + .line 83 │ iput-boolean v1, p0, Lorg/jsoup/parser/Token$Tag;->hasEmptyAttributeValue:Z │ │ - .line 75 │ + .line 84 │ iput-boolean v1, p0, Lorg/jsoup/parser/Token$Tag;->hasPendingAttributeValue:Z │ │ - .line 76 │ + .line 85 │ iput-boolean v1, p0, Lorg/jsoup/parser/Token$Tag;->selfClosing:Z │ │ return-void │ .end method │ │ .method private ensureAttributeValue()V │ .locals 2 │ │ .prologue │ - .line 182 │ + .line 209 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lorg/jsoup/parser/Token$Tag;->hasPendingAttributeValue:Z │ │ - .line 184 │ + .line 211 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeValueS:Ljava/lang/String; │ │ if-eqz v0, :cond_0 │ │ - .line 185 │ + .line 212 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeValue:Ljava/lang/StringBuilder; │ │ iget-object v1, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeValueS:Ljava/lang/String; │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - .line 186 │ + .line 213 │ const/4 v0, 0x0 │ │ iput-object v0, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeValueS:Ljava/lang/String; │ │ - .line 188 │ + .line 215 │ :cond_0 │ return-void │ .end method │ │ │ # virtual methods │ .method final appendAttributeName(C)V │ .locals 1 │ .param p1, "append" # C │ │ .prologue │ - .line 155 │ + .line 175 │ invoke-static {p1}, Ljava/lang/String;->valueOf(C)Ljava/lang/String; │ │ move-result-object v0 │ │ invoke-virtual {p0, v0}, Lorg/jsoup/parser/Token$Tag;->appendAttributeName(Ljava/lang/String;)V │ │ - .line 156 │ + .line 176 │ return-void │ .end method │ │ .method final appendAttributeName(Ljava/lang/String;)V │ .locals 1 │ .param p1, "append" # Ljava/lang/String; │ │ .prologue │ - .line 151 │ + .line 171 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeName:Ljava/lang/String; │ │ if-nez v0, :cond_0 │ │ .end local p1 # "append":Ljava/lang/String; │ :goto_0 │ iput-object p1, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeName:Ljava/lang/String; │ │ - .line 152 │ + .line 172 │ return-void │ │ - .line 151 │ + .line 171 │ .restart local p1 # "append":Ljava/lang/String; │ :cond_0 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeName:Ljava/lang/String; │ │ invoke-virtual {v0, p1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object p1 │ @@ -142,110 +144,154 @@ │ .end method │ │ .method final appendAttributeValue(C)V │ .locals 1 │ .param p1, "append" # C │ │ .prologue │ - .line 168 │ + .line 188 │ invoke-direct {p0}, Lorg/jsoup/parser/Token$Tag;->ensureAttributeValue()V │ │ - .line 169 │ + .line 189 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeValue:Ljava/lang/StringBuilder; │ │ invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 170 │ + .line 190 │ return-void │ .end method │ │ .method final appendAttributeValue(Ljava/lang/String;)V │ .locals 1 │ .param p1, "append" # Ljava/lang/String; │ │ .prologue │ - .line 159 │ + .line 179 │ invoke-direct {p0}, Lorg/jsoup/parser/Token$Tag;->ensureAttributeValue()V │ │ - .line 160 │ + .line 180 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeValue:Ljava/lang/StringBuilder; │ │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ - .line 161 │ + .line 181 │ iput-object p1, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeValueS:Ljava/lang/String; │ │ - .line 165 │ + .line 185 │ :goto_0 │ return-void │ │ - .line 163 │ + .line 183 │ :cond_0 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeValue:Ljava/lang/StringBuilder; │ │ invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ goto :goto_0 │ .end method │ │ .method final appendAttributeValue([C)V │ .locals 1 │ .param p1, "append" # [C │ │ .prologue │ - .line 173 │ + .line 193 │ invoke-direct {p0}, Lorg/jsoup/parser/Token$Tag;->ensureAttributeValue()V │ │ - .line 174 │ + .line 194 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeValue:Ljava/lang/StringBuilder; │ │ invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append([C)Ljava/lang/StringBuilder; │ │ - .line 175 │ + .line 195 │ + return-void │ +.end method │ + │ +.method final appendAttributeValue([I)V │ + .locals 4 │ + .param p1, "appendCodepoints" # [I │ + │ + .prologue │ + .line 198 │ + invoke-direct {p0}, Lorg/jsoup/parser/Token$Tag;->ensureAttributeValue()V │ + │ + .line 199 │ + array-length v2, p1 │ + │ + const/4 v1, 0x0 │ + │ + :goto_0 │ + if-ge v1, v2, :cond_0 │ + │ + aget v0, p1, v1 │ + │ + .line 200 │ + .local v0, "codepoint":I │ + iget-object v3, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeValue:Ljava/lang/StringBuilder; │ + │ + invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->appendCodePoint(I)Ljava/lang/StringBuilder; │ + │ + .line 199 │ + add-int/lit8 v1, v1, 0x1 │ + │ + goto :goto_0 │ + │ + .line 202 │ + .end local v0 # "codepoint":I │ + :cond_0 │ return-void │ .end method │ │ .method final appendTagName(C)V │ .locals 1 │ .param p1, "append" # C │ │ .prologue │ - .line 147 │ + .line 167 │ invoke-static {p1}, Ljava/lang/String;->valueOf(C)Ljava/lang/String; │ │ move-result-object v0 │ │ invoke-virtual {p0, v0}, Lorg/jsoup/parser/Token$Tag;->appendTagName(Ljava/lang/String;)V │ │ - .line 148 │ + .line 168 │ return-void │ .end method │ │ .method final appendTagName(Ljava/lang/String;)V │ .locals 1 │ .param p1, "append" # Ljava/lang/String; │ │ .prologue │ - .line 143 │ + .line 162 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Tag;->tagName:Ljava/lang/String; │ │ if-nez v0, :cond_0 │ │ .end local p1 # "append":Ljava/lang/String; │ :goto_0 │ iput-object p1, p0, Lorg/jsoup/parser/Token$Tag;->tagName:Ljava/lang/String; │ │ - .line 144 │ + .line 163 │ + iget-object v0, p0, Lorg/jsoup/parser/Token$Tag;->tagName:Ljava/lang/String; │ + │ + invoke-static {v0}, Lorg/jsoup/internal/Normalizer;->lowerCase(Ljava/lang/String;)Ljava/lang/String; │ + │ + move-result-object v0 │ + │ + iput-object v0, p0, Lorg/jsoup/parser/Token$Tag;->normalName:Ljava/lang/String; │ + │ + .line 164 │ return-void │ │ - .line 143 │ + .line 162 │ .restart local p1 # "append":Ljava/lang/String; │ :cond_0 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Tag;->tagName:Ljava/lang/String; │ │ invoke-virtual {v0, p1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object p1 │ @@ -253,52 +299,52 @@ │ goto :goto_0 │ .end method │ │ .method final finaliseTag()V │ .locals 1 │ │ .prologue │ - .line 116 │ + .line 130 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeName:Ljava/lang/String; │ │ if-eqz v0, :cond_0 │ │ - .line 118 │ + .line 132 │ invoke-virtual {p0}, Lorg/jsoup/parser/Token$Tag;->newAttribute()V │ │ - .line 120 │ + .line 134 │ :cond_0 │ return-void │ .end method │ │ .method final getAttributes()Lorg/jsoup/nodes/Attributes; │ .locals 1 │ │ .prologue │ - .line 138 │ + .line 157 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Tag;->attributes:Lorg/jsoup/nodes/Attributes; │ │ return-object v0 │ .end method │ │ .method final isSelfClosing()Z │ .locals 1 │ │ .prologue │ - .line 133 │ + .line 152 │ iget-boolean v0, p0, Lorg/jsoup/parser/Token$Tag;->selfClosing:Z │ │ return v0 │ .end method │ │ .method final name()Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 123 │ + .line 137 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Tag;->tagName:Ljava/lang/String; │ │ if-eqz v0, :cond_0 │ │ iget-object v0, p0, Lorg/jsoup/parser/Token$Tag;->tagName:Ljava/lang/String; │ │ invoke-virtual {v0}, Ljava/lang/String;->length()I │ @@ -309,77 +355,102 @@ │ │ :cond_0 │ const/4 v0, 0x1 │ │ :goto_0 │ invoke-static {v0}, Lorg/jsoup/helper/Validate;->isFalse(Z)V │ │ - .line 124 │ + .line 138 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Tag;->tagName:Ljava/lang/String; │ │ return-object v0 │ │ - .line 123 │ + .line 137 │ :cond_1 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method final name(Ljava/lang/String;)Lorg/jsoup/parser/Token$Tag; │ - .locals 0 │ + .locals 1 │ .param p1, "name" # Ljava/lang/String; │ │ .prologue │ - .line 128 │ + .line 146 │ iput-object p1, p0, Lorg/jsoup/parser/Token$Tag;->tagName:Ljava/lang/String; │ │ - .line 129 │ + .line 147 │ + invoke-static {p1}, Lorg/jsoup/internal/Normalizer;->lowerCase(Ljava/lang/String;)Ljava/lang/String; │ + │ + move-result-object v0 │ + │ + iput-object v0, p0, Lorg/jsoup/parser/Token$Tag;->normalName:Ljava/lang/String; │ + │ + .line 148 │ return-object p0 │ .end method │ │ .method final newAttribute()V │ .locals 5 │ │ .prologue │ const/4 v4, 0x0 │ │ const/4 v3, 0x0 │ │ - .line 93 │ + .line 103 │ iget-object v1, p0, Lorg/jsoup/parser/Token$Tag;->attributes:Lorg/jsoup/nodes/Attributes; │ │ if-nez v1, :cond_0 │ │ - .line 94 │ + .line 104 │ new-instance v1, Lorg/jsoup/nodes/Attributes; │ │ invoke-direct {v1}, Lorg/jsoup/nodes/Attributes;->()V │ │ iput-object v1, p0, Lorg/jsoup/parser/Token$Tag;->attributes:Lorg/jsoup/nodes/Attributes; │ │ - .line 96 │ + .line 106 │ :cond_0 │ iget-object v1, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeName:Ljava/lang/String; │ │ if-eqz v1, :cond_1 │ │ - .line 98 │ + .line 108 │ + iget-object v1, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeName:Ljava/lang/String; │ + │ + invoke-virtual {v1}, Ljava/lang/String;->trim()Ljava/lang/String; │ + │ + move-result-object v1 │ + │ + iput-object v1, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeName:Ljava/lang/String; │ + │ + .line 109 │ + iget-object v1, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeName:Ljava/lang/String; │ + │ + invoke-virtual {v1}, Ljava/lang/String;->length()I │ + │ + move-result v1 │ + │ + if-lez v1, :cond_1 │ + │ + .line 111 │ iget-boolean v1, p0, Lorg/jsoup/parser/Token$Tag;->hasPendingAttributeValue:Z │ │ if-eqz v1, :cond_3 │ │ - .line 99 │ + .line 112 │ new-instance v0, Lorg/jsoup/nodes/Attribute; │ │ iget-object v2, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeName:Ljava/lang/String; │ │ iget-object v1, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeValue:Ljava/lang/StringBuilder; │ │ - .line 100 │ + .line 113 │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->length()I │ │ move-result v1 │ │ if-lez v1, :cond_2 │ │ iget-object v1, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeValue:Ljava/lang/StringBuilder; │ @@ -387,135 +458,148 @@ │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v1 │ │ :goto_0 │ invoke-direct {v0, v2, v1}, Lorg/jsoup/nodes/Attribute;->(Ljava/lang/String;Ljava/lang/String;)V │ │ - .line 105 │ + .line 118 │ .local v0, "attribute":Lorg/jsoup/nodes/Attribute; │ :goto_1 │ iget-object v1, p0, Lorg/jsoup/parser/Token$Tag;->attributes:Lorg/jsoup/nodes/Attributes; │ │ invoke-virtual {v1, v0}, Lorg/jsoup/nodes/Attributes;->put(Lorg/jsoup/nodes/Attribute;)V │ │ - .line 107 │ + .line 121 │ .end local v0 # "attribute":Lorg/jsoup/nodes/Attribute; │ :cond_1 │ iput-object v4, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeName:Ljava/lang/String; │ │ - .line 108 │ + .line 122 │ iput-boolean v3, p0, Lorg/jsoup/parser/Token$Tag;->hasEmptyAttributeValue:Z │ │ - .line 109 │ + .line 123 │ iput-boolean v3, p0, Lorg/jsoup/parser/Token$Tag;->hasPendingAttributeValue:Z │ │ - .line 110 │ + .line 124 │ iget-object v1, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeValue:Ljava/lang/StringBuilder; │ │ invoke-static {v1}, Lorg/jsoup/parser/Token$Tag;->reset(Ljava/lang/StringBuilder;)V │ │ - .line 111 │ + .line 125 │ iput-object v4, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeValueS:Ljava/lang/String; │ │ - .line 112 │ + .line 126 │ return-void │ │ - .line 100 │ + .line 113 │ :cond_2 │ iget-object v1, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeValueS:Ljava/lang/String; │ │ goto :goto_0 │ │ - .line 101 │ + .line 114 │ :cond_3 │ iget-boolean v1, p0, Lorg/jsoup/parser/Token$Tag;->hasEmptyAttributeValue:Z │ │ if-eqz v1, :cond_4 │ │ - .line 102 │ + .line 115 │ new-instance v0, Lorg/jsoup/nodes/Attribute; │ │ iget-object v1, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeName:Ljava/lang/String; │ │ const-string v2, "" │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/nodes/Attribute;->(Ljava/lang/String;Ljava/lang/String;)V │ │ .restart local v0 # "attribute":Lorg/jsoup/nodes/Attribute; │ goto :goto_1 │ │ - .line 104 │ + .line 117 │ .end local v0 # "attribute":Lorg/jsoup/nodes/Attribute; │ :cond_4 │ new-instance v0, Lorg/jsoup/nodes/BooleanAttribute; │ │ iget-object v1, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeName:Ljava/lang/String; │ │ invoke-direct {v0, v1}, Lorg/jsoup/nodes/BooleanAttribute;->(Ljava/lang/String;)V │ │ .restart local v0 # "attribute":Lorg/jsoup/nodes/Attribute; │ goto :goto_1 │ .end method │ │ +.method final normalName()Ljava/lang/String; │ + .locals 1 │ + │ + .prologue │ + .line 142 │ + iget-object v0, p0, Lorg/jsoup/parser/Token$Tag;->normalName:Ljava/lang/String; │ + │ + return-object v0 │ +.end method │ + │ .method reset()Lorg/jsoup/parser/Token$Tag; │ .locals 3 │ │ .prologue │ const/4 v2, 0x0 │ │ const/4 v1, 0x0 │ │ - .line 81 │ + .line 90 │ iput-object v1, p0, Lorg/jsoup/parser/Token$Tag;->tagName:Ljava/lang/String; │ │ - .line 82 │ + .line 91 │ + iput-object v1, p0, Lorg/jsoup/parser/Token$Tag;->normalName:Ljava/lang/String; │ + │ + .line 92 │ iput-object v1, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeName:Ljava/lang/String; │ │ - .line 83 │ + .line 93 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeValue:Ljava/lang/StringBuilder; │ │ invoke-static {v0}, Lorg/jsoup/parser/Token$Tag;->reset(Ljava/lang/StringBuilder;)V │ │ - .line 84 │ + .line 94 │ iput-object v1, p0, Lorg/jsoup/parser/Token$Tag;->pendingAttributeValueS:Ljava/lang/String; │ │ - .line 85 │ + .line 95 │ iput-boolean v2, p0, Lorg/jsoup/parser/Token$Tag;->hasEmptyAttributeValue:Z │ │ - .line 86 │ + .line 96 │ iput-boolean v2, p0, Lorg/jsoup/parser/Token$Tag;->hasPendingAttributeValue:Z │ │ - .line 87 │ + .line 97 │ iput-boolean v2, p0, Lorg/jsoup/parser/Token$Tag;->selfClosing:Z │ │ - .line 88 │ + .line 98 │ iput-object v1, p0, Lorg/jsoup/parser/Token$Tag;->attributes:Lorg/jsoup/nodes/Attributes; │ │ - .line 89 │ + .line 99 │ return-object p0 │ .end method │ │ .method bridge synthetic reset()Lorg/jsoup/parser/Token; │ .locals 1 │ │ .prologue │ - .line 69 │ + .line 77 │ invoke-virtual {p0}, Lorg/jsoup/parser/Token$Tag;->reset()Lorg/jsoup/parser/Token$Tag; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method final setEmptyAttributeValue()V │ .locals 1 │ │ .prologue │ - .line 178 │ + .line 205 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lorg/jsoup/parser/Token$Tag;->hasEmptyAttributeValue:Z │ │ - .line 179 │ + .line 206 │ return-void │ .end method ├── smali/org/jsoup/parser/TokeniserState$29.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 446 │ + .line 448 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,102 +31,102 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 3 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 448 │ + .line 450 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->current()C │ │ move-result v0 │ │ - .line 449 │ + .line 451 │ .local v0, "c":C │ sparse-switch v0, :sswitch_data_0 │ │ - .line 468 │ + .line 470 │ const/4 v2, 0x3 │ │ new-array v2, v2, [C │ │ fill-array-data v2, :array_0 │ │ invoke-virtual {p2, v2}, Lorg/jsoup/parser/CharacterReader;->consumeToAny([C)Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 469 │ + .line 471 │ .local v1, "data":Ljava/lang/String; │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->emit(Ljava/lang/String;)V │ │ - .line 471 │ + .line 473 │ .end local v1 # "data":Ljava/lang/String; │ :goto_0 │ return-void │ │ - .line 451 │ + .line 453 │ :sswitch_0 │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ - .line 452 │ + .line 454 │ sget-object v2, Lorg/jsoup/parser/TokeniserState$29;->ScriptDataDoubleEscapedDash:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v2}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 455 │ + .line 457 │ :sswitch_1 │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ - .line 456 │ + .line 458 │ sget-object v2, Lorg/jsoup/parser/TokeniserState$29;->ScriptDataDoubleEscapedLessthanSign:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v2}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 459 │ + .line 461 │ :sswitch_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 460 │ + .line 462 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->advance()V │ │ - .line 461 │ + .line 463 │ const v2, 0xfffd │ │ invoke-virtual {p1, v2}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ goto :goto_0 │ │ - .line 464 │ + .line 466 │ :sswitch_3 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->eofError(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 465 │ + .line 467 │ sget-object v2, Lorg/jsoup/parser/TokeniserState$29;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v2}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 449 │ + .line 451 │ nop │ │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_2 │ 0x2d -> :sswitch_0 │ 0x3c -> :sswitch_1 │ 0xffff -> :sswitch_3 │ .end sparse-switch │ │ - .line 468 │ + .line 470 │ :array_0 │ .array-data 2 │ 0x2ds │ 0x3cs │ 0x0s │ .end array-data │ .end method ├── smali/org/jsoup/parser/HtmlTreeBuilderState$15.smali │ @@ -15,62 +15,62 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1149 │ + .line 1151 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->(Ljava/lang/String;ILorg/jsoup/parser/HtmlTreeBuilderState$1;)V │ │ return-void │ .end method │ │ .method private anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ .locals 1 │ .param p1, "t" # Lorg/jsoup/parser/Token; │ .param p2, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ - .line 1196 │ + .line 1198 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$15;->InBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, p1, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilderState;)Z │ │ move-result v0 │ │ return v0 │ .end method │ │ .method private closeCell(Lorg/jsoup/parser/HtmlTreeBuilder;)V │ .locals 1 │ .param p1, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ - .line 1200 │ + .line 1202 │ const-string v0, "td" │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->inTableScope(Ljava/lang/String;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 1201 │ + .line 1203 │ const-string v0, "td" │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ - .line 1204 │ + .line 1206 │ :goto_0 │ return-void │ │ - .line 1203 │ + .line 1205 │ :cond_0 │ const-string v0, "th" │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->processEndTag(Ljava/lang/String;)Z │ │ goto :goto_0 │ .end method │ @@ -89,33 +89,33 @@ │ │ const/4 v7, 0x2 │ │ const/4 v3, 0x1 │ │ const/4 v2, 0x0 │ │ - .line 1151 │ + .line 1153 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEndTag()Z │ │ move-result v4 │ │ if-eqz v4, :cond_6 │ │ - .line 1152 │ + .line 1154 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asEndTag()Lorg/jsoup/parser/Token$EndTag; │ │ move-result-object v0 │ │ - .line 1153 │ + .line 1155 │ .local v0, "endTag":Lorg/jsoup/parser/Token$EndTag; │ - invoke-virtual {v0}, Lorg/jsoup/parser/Token$EndTag;->name()Ljava/lang/String; │ + invoke-virtual {v0}, Lorg/jsoup/parser/Token$EndTag;->normalName()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 1155 │ + .line 1157 │ .local v1, "name":Ljava/lang/String; │ new-array v4, v7, [Ljava/lang/String; │ │ const-string v5, "td" │ │ aput-object v5, v4, v2 │ │ @@ -125,77 +125,77 @@ │ │ invoke-static {v1, v4}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_2 │ │ - .line 1156 │ + .line 1158 │ invoke-virtual {p2, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inTableScope(Ljava/lang/String;)Z │ │ move-result v4 │ │ if-nez v4, :cond_0 │ │ - .line 1157 │ + .line 1159 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 1158 │ + .line 1160 │ sget-object v3, Lorg/jsoup/parser/HtmlTreeBuilderState$15;->InRow:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 1192 │ + .line 1194 │ .end local v0 # "endTag":Lorg/jsoup/parser/Token$EndTag; │ .end local v1 # "name":Ljava/lang/String; │ :goto_0 │ return v2 │ │ - .line 1161 │ + .line 1163 │ .restart local v0 # "endTag":Lorg/jsoup/parser/Token$EndTag; │ .restart local v1 # "name":Ljava/lang/String; │ :cond_0 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->generateImpliedEndTags()V │ │ - .line 1162 │ + .line 1164 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->currentElement()Lorg/jsoup/nodes/Element; │ │ move-result-object v2 │ │ invoke-virtual {v2}, Lorg/jsoup/nodes/Element;->nodeName()Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v2, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v2 │ │ if-nez v2, :cond_1 │ │ - .line 1163 │ + .line 1165 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 1164 │ + .line 1166 │ :cond_1 │ invoke-virtual {p2, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->popStackToClose(Ljava/lang/String;)V │ │ - .line 1165 │ + .line 1167 │ invoke-virtual {p2}, Lorg/jsoup/parser/HtmlTreeBuilder;->clearFormattingElementsToLastMarker()V │ │ - .line 1166 │ + .line 1168 │ sget-object v2, Lorg/jsoup/parser/HtmlTreeBuilderState$15;->InRow:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v2}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ move v2, v3 │ │ - .line 1192 │ + .line 1194 │ goto :goto_0 │ │ - .line 1167 │ + .line 1169 │ :cond_2 │ const/4 v4, 0x5 │ │ new-array v4, v4, [Ljava/lang/String; │ │ const-string v5, "body" │ │ @@ -219,20 +219,20 @@ │ │ invoke-static {v1, v4}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_3 │ │ - .line 1168 │ + .line 1170 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_0 │ │ - .line 1170 │ + .line 1172 │ :cond_3 │ const/4 v4, 0x5 │ │ new-array v4, v4, [Ljava/lang/String; │ │ const-string v5, "table" │ │ @@ -256,61 +256,61 @@ │ │ invoke-static {v1, v4}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v3 │ │ if-eqz v3, :cond_5 │ │ - .line 1171 │ + .line 1173 │ invoke-virtual {p2, v1}, Lorg/jsoup/parser/HtmlTreeBuilder;->inTableScope(Ljava/lang/String;)Z │ │ move-result v3 │ │ if-nez v3, :cond_4 │ │ - .line 1172 │ + .line 1174 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_0 │ │ - .line 1175 │ + .line 1177 │ :cond_4 │ invoke-direct {p0, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$15;->closeCell(Lorg/jsoup/parser/HtmlTreeBuilder;)V │ │ - .line 1176 │ + .line 1178 │ invoke-virtual {p2, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v2 │ │ goto :goto_0 │ │ - .line 1178 │ + .line 1180 │ :cond_5 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$15;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v2 │ │ goto :goto_0 │ │ - .line 1180 │ + .line 1182 │ .end local v0 # "endTag":Lorg/jsoup/parser/Token$EndTag; │ .end local v1 # "name":Ljava/lang/String; │ :cond_6 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isStartTag()Z │ │ move-result v4 │ │ if-eqz v4, :cond_8 │ │ - .line 1181 │ + .line 1183 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v4 │ │ - invoke-virtual {v4}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ + invoke-virtual {v4}, Lorg/jsoup/parser/Token$StartTag;->normalName()Ljava/lang/String; │ │ move-result-object v4 │ │ const/16 v5, 0x9 │ │ new-array v5, v5, [Ljava/lang/String; │ │ @@ -360,15 +360,15 @@ │ │ invoke-static {v4, v5}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v3 │ │ if-eqz v3, :cond_8 │ │ - .line 1183 │ + .line 1185 │ const-string v3, "td" │ │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->inTableScope(Ljava/lang/String;)Z │ │ move-result v3 │ │ if-nez v3, :cond_7 │ @@ -377,31 +377,31 @@ │ │ invoke-virtual {p2, v3}, Lorg/jsoup/parser/HtmlTreeBuilder;->inTableScope(Ljava/lang/String;)Z │ │ move-result v3 │ │ if-nez v3, :cond_7 │ │ - .line 1184 │ + .line 1186 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto/16 :goto_0 │ │ - .line 1187 │ + .line 1189 │ :cond_7 │ invoke-direct {p0, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$15;->closeCell(Lorg/jsoup/parser/HtmlTreeBuilder;)V │ │ - .line 1188 │ + .line 1190 │ invoke-virtual {p2, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v2 │ │ goto/16 :goto_0 │ │ - .line 1190 │ + .line 1192 │ :cond_8 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$15;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v2 │ │ goto/16 :goto_0 │ .end method ├── smali/org/jsoup/parser/HtmlTreeBuilderState$2.smali │ @@ -15,39 +15,39 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 35 │ + .line 36 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->(Ljava/lang/String;ILorg/jsoup/parser/HtmlTreeBuilderState$1;)V │ │ return-void │ .end method │ │ .method private anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ .locals 1 │ .param p1, "t" # Lorg/jsoup/parser/Token; │ .param p2, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ - .line 59 │ + .line 60 │ const-string v0, "html" │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->insertStartTag(Ljava/lang/String;)Lorg/jsoup/nodes/Element; │ │ - .line 60 │ + .line 61 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$2;->BeforeHead:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 61 │ + .line 62 │ invoke-virtual {p2, p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->process(Lorg/jsoup/parser/Token;)Z │ │ move-result v0 │ │ return v0 │ .end method │ │ @@ -59,113 +59,113 @@ │ .param p2, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ const/4 v1, 0x1 │ │ const/4 v0, 0x0 │ │ - .line 37 │ + .line 38 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isDoctype()Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ - .line 38 │ + .line 39 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 55 │ + .line 56 │ :goto_0 │ return v0 │ │ - .line 40 │ + .line 41 │ :cond_0 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isComment()Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - .line 41 │ + .line 42 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asComment()Lorg/jsoup/parser/Token$Comment; │ │ move-result-object v0 │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$Comment;)V │ │ :goto_1 │ move v0, v1 │ │ - .line 55 │ + .line 56 │ goto :goto_0 │ │ - .line 42 │ + .line 43 │ :cond_1 │ invoke-static {p1}, Lorg/jsoup/parser/HtmlTreeBuilderState;->access$100(Lorg/jsoup/parser/Token;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_2 │ │ move v0, v1 │ │ - .line 43 │ + .line 44 │ goto :goto_0 │ │ - .line 44 │ + .line 45 │ :cond_2 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isStartTag()Z │ │ move-result v2 │ │ if-eqz v2, :cond_3 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v2 │ │ - invoke-virtual {v2}, Lorg/jsoup/parser/Token$StartTag;->name()Ljava/lang/String; │ + invoke-virtual {v2}, Lorg/jsoup/parser/Token$StartTag;->normalName()Ljava/lang/String; │ │ move-result-object v2 │ │ const-string v3, "html" │ │ invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_3 │ │ - .line 45 │ + .line 46 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asStartTag()Lorg/jsoup/parser/Token$StartTag; │ │ move-result-object v0 │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ - .line 46 │ + .line 47 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState$2;->BeforeHead:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_1 │ │ - .line 47 │ + .line 48 │ :cond_3 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEndTag()Z │ │ move-result v2 │ │ if-eqz v2, :cond_4 │ │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->asEndTag()Lorg/jsoup/parser/Token$EndTag; │ │ move-result-object v2 │ │ - invoke-virtual {v2}, Lorg/jsoup/parser/Token$EndTag;->name()Ljava/lang/String; │ + invoke-virtual {v2}, Lorg/jsoup/parser/Token$EndTag;->normalName()Ljava/lang/String; │ │ move-result-object v2 │ │ const/4 v3, 0x4 │ │ new-array v3, v3, [Ljava/lang/String; │ │ @@ -191,35 +191,35 @@ │ │ invoke-static {v2, v3}, Lorg/jsoup/helper/StringUtil;->in(Ljava/lang/String;[Ljava/lang/String;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_4 │ │ - .line 48 │ + .line 49 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$2;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v0 │ │ goto :goto_0 │ │ - .line 49 │ + .line 50 │ :cond_4 │ invoke-virtual {p1}, Lorg/jsoup/parser/Token;->isEndTag()Z │ │ move-result v1 │ │ if-eqz v1, :cond_5 │ │ - .line 50 │ + .line 51 │ invoke-virtual {p2, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->error(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ goto :goto_0 │ │ - .line 53 │ + .line 54 │ :cond_5 │ invoke-direct {p0, p1, p2}, Lorg/jsoup/parser/HtmlTreeBuilderState$2;->anythingElse(Lorg/jsoup/parser/Token;Lorg/jsoup/parser/HtmlTreeBuilder;)Z │ │ move-result v0 │ │ goto :goto_0 │ .end method ├── smali/org/jsoup/parser/HtmlTreeBuilderState.smali │ @@ -92,238 +92,238 @@ │ │ const-string v1, "Initial" │ │ invoke-direct {v0, v1, v3}, Lorg/jsoup/parser/HtmlTreeBuilderState$1;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->Initial:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 35 │ + .line 36 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilderState$2; │ │ const-string v1, "BeforeHtml" │ │ invoke-direct {v0, v1, v4}, Lorg/jsoup/parser/HtmlTreeBuilderState$2;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->BeforeHtml:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 64 │ + .line 65 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilderState$3; │ │ const-string v1, "BeforeHead" │ │ invoke-direct {v0, v1, v5}, Lorg/jsoup/parser/HtmlTreeBuilderState$3;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->BeforeHead:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 92 │ + .line 93 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilderState$4; │ │ const-string v1, "InHead" │ │ invoke-direct {v0, v1, v6}, Lorg/jsoup/parser/HtmlTreeBuilderState$4;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->InHead:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 164 │ + .line 165 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilderState$5; │ │ const-string v1, "InHeadNoscript" │ │ invoke-direct {v0, v1, v7}, Lorg/jsoup/parser/HtmlTreeBuilderState$5;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->InHeadNoscript:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 193 │ + .line 194 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilderState$6; │ │ const-string v1, "AfterHead" │ │ const/4 v2, 0x5 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilderState$6;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->AfterHead:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 244 │ + .line 245 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilderState$7; │ │ const-string v1, "InBody" │ │ const/4 v2, 0x6 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilderState$7;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->InBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 782 │ + .line 784 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilderState$8; │ │ const-string v1, "Text" │ │ const/4 v2, 0x7 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilderState$8;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->Text:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 801 │ + .line 803 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilderState$9; │ │ const-string v1, "InTable" │ │ const/16 v2, 0x8 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilderState$9;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->InTable:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 901 │ + .line 903 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilderState$10; │ │ const-string v1, "InTableText" │ │ const/16 v2, 0x9 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilderState$10;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->InTableText:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 938 │ + .line 940 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilderState$11; │ │ const-string v1, "InCaption" │ │ const/16 v2, 0xa │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilderState$11;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->InCaption:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 973 │ + .line 975 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilderState$12; │ │ const-string v1, "InColumnGroup" │ │ const/16 v2, 0xb │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilderState$12;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->InColumnGroup:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 1028 │ + .line 1030 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilderState$13; │ │ const-string v1, "InTableBody" │ │ const/16 v2, 0xc │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilderState$13;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->InTableBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 1088 │ + .line 1090 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilderState$14; │ │ const-string v1, "InRow" │ │ const/16 v2, 0xd │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilderState$14;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->InRow:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 1149 │ + .line 1151 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilderState$15; │ │ const-string v1, "InCell" │ │ const/16 v2, 0xe │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilderState$15;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->InCell:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 1206 │ + .line 1208 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilderState$16; │ │ const-string v1, "InSelect" │ │ const/16 v2, 0xf │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilderState$16;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->InSelect:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 1294 │ + .line 1297 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilderState$17; │ │ const-string v1, "InSelectInTable" │ │ const/16 v2, 0x10 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilderState$17;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->InSelectInTable:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 1312 │ + .line 1315 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilderState$18; │ │ const-string v1, "AfterBody" │ │ const/16 v2, 0x11 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilderState$18;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->AfterBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 1340 │ + .line 1343 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilderState$19; │ │ const-string v1, "InFrameset" │ │ const/16 v2, 0x12 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilderState$19;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->InFrameset:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 1386 │ + .line 1389 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilderState$20; │ │ const-string v1, "AfterFrameset" │ │ const/16 v2, 0x13 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilderState$20;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->AfterFrameset:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 1410 │ + .line 1413 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilderState$21; │ │ const-string v1, "AfterAfterBody" │ │ const/16 v2, 0x14 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilderState$21;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->AfterAfterBody:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 1426 │ + .line 1429 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilderState$22; │ │ const-string v1, "AfterAfterFrameset" │ │ const/16 v2, 0x15 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilderState$22;->(Ljava/lang/String;I)V │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->AfterAfterFrameset:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 1443 │ + .line 1446 │ new-instance v0, Lorg/jsoup/parser/HtmlTreeBuilderState$23; │ │ const-string v1, "ForeignContent" │ │ const/16 v2, 0x16 │ │ invoke-direct {v0, v1, v2}, Lorg/jsoup/parser/HtmlTreeBuilderState$23;->(Ljava/lang/String;I)V │ @@ -461,15 +461,15 @@ │ │ sget-object v2, Lorg/jsoup/parser/HtmlTreeBuilderState;->ForeignContent:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ aput-object v2, v0, v1 │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->$VALUES:[Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ - .line 1450 │ + .line 1453 │ invoke-static {v3}, Ljava/lang/String;->valueOf(C)Ljava/lang/String; │ │ move-result-object v0 │ │ sput-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->nullString:Ljava/lang/String; │ │ return-void │ @@ -483,15 +483,14 @@ │ } │ .end annotation │ │ .prologue │ .line 11 │ invoke-direct {p0, p1, p2}, Ljava/lang/Enum;->(Ljava/lang/String;I)V │ │ - .line 1488 │ return-void │ .end method │ │ .method synthetic constructor (Ljava/lang/String;ILorg/jsoup/parser/HtmlTreeBuilderState$1;)V │ .locals 0 │ .param p1, "x0" # Ljava/lang/String; │ .param p2, "x1" # I │ @@ -566,144 +565,144 @@ │ │ .method private static handleRawtext(Lorg/jsoup/parser/Token$StartTag;Lorg/jsoup/parser/HtmlTreeBuilder;)V │ .locals 2 │ .param p0, "startTag" # Lorg/jsoup/parser/Token$StartTag; │ .param p1, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ - .line 1480 │ + .line 1483 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ - .line 1481 │ + .line 1484 │ iget-object v0, p1, Lorg/jsoup/parser/HtmlTreeBuilder;->tokeniser:Lorg/jsoup/parser/Tokeniser; │ │ sget-object v1, Lorg/jsoup/parser/TokeniserState;->Rawtext:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1482 │ + .line 1485 │ invoke-virtual {p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->markInsertionMode()V │ │ - .line 1483 │ + .line 1486 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->Text:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 1484 │ + .line 1487 │ return-void │ .end method │ │ .method private static handleRcData(Lorg/jsoup/parser/Token$StartTag;Lorg/jsoup/parser/HtmlTreeBuilder;)V │ .locals 2 │ .param p0, "startTag" # Lorg/jsoup/parser/Token$StartTag; │ .param p1, "tb" # Lorg/jsoup/parser/HtmlTreeBuilder; │ │ .prologue │ - .line 1473 │ + .line 1476 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/HtmlTreeBuilder;->insert(Lorg/jsoup/parser/Token$StartTag;)Lorg/jsoup/nodes/Element; │ │ - .line 1474 │ + .line 1477 │ iget-object v0, p1, Lorg/jsoup/parser/HtmlTreeBuilder;->tokeniser:Lorg/jsoup/parser/Tokeniser; │ │ sget-object v1, Lorg/jsoup/parser/TokeniserState;->Rcdata:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {v0, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1475 │ + .line 1478 │ invoke-virtual {p1}, Lorg/jsoup/parser/HtmlTreeBuilder;->markInsertionMode()V │ │ - .line 1476 │ + .line 1479 │ sget-object v0, Lorg/jsoup/parser/HtmlTreeBuilderState;->Text:Lorg/jsoup/parser/HtmlTreeBuilderState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/HtmlTreeBuilder;->transition(Lorg/jsoup/parser/HtmlTreeBuilderState;)V │ │ - .line 1477 │ + .line 1480 │ return-void │ .end method │ │ .method private static isWhitespace(Ljava/lang/String;)Z │ .locals 3 │ .param p0, "data" # Ljava/lang/String; │ │ .prologue │ - .line 1464 │ + .line 1467 │ const/4 v1, 0x0 │ │ .local v1, "i":I │ :goto_0 │ invoke-virtual {p0}, Ljava/lang/String;->length()I │ │ move-result v2 │ │ if-ge v1, v2, :cond_1 │ │ - .line 1465 │ + .line 1468 │ invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C │ │ move-result v0 │ │ - .line 1466 │ + .line 1469 │ .local v0, "c":C │ invoke-static {v0}, Lorg/jsoup/helper/StringUtil;->isWhitespace(I)Z │ │ move-result v2 │ │ if-nez v2, :cond_0 │ │ - .line 1467 │ + .line 1470 │ const/4 v2, 0x0 │ │ - .line 1469 │ + .line 1472 │ .end local v0 # "c":C │ :goto_1 │ return v2 │ │ - .line 1464 │ + .line 1467 │ .restart local v0 # "c":C │ :cond_0 │ add-int/lit8 v1, v1, 0x1 │ │ goto :goto_0 │ │ - .line 1469 │ + .line 1472 │ .end local v0 # "c":C │ :cond_1 │ const/4 v2, 0x1 │ │ goto :goto_1 │ .end method │ │ .method private static isWhitespace(Lorg/jsoup/parser/Token;)Z │ .locals 2 │ .param p0, "t" # Lorg/jsoup/parser/Token; │ │ .prologue │ - .line 1455 │ + .line 1458 │ invoke-virtual {p0}, Lorg/jsoup/parser/Token;->isCharacter()Z │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ - .line 1456 │ + .line 1459 │ invoke-virtual {p0}, Lorg/jsoup/parser/Token;->asCharacter()Lorg/jsoup/parser/Token$Character; │ │ move-result-object v1 │ │ invoke-virtual {v1}, Lorg/jsoup/parser/Token$Character;->getData()Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 1457 │ + .line 1460 │ .local v0, "data":Ljava/lang/String; │ invoke-static {v0}, Lorg/jsoup/parser/HtmlTreeBuilderState;->isWhitespace(Ljava/lang/String;)Z │ │ move-result v1 │ │ - .line 1459 │ + .line 1462 │ .end local v0 # "data":Ljava/lang/String; │ :goto_0 │ return v1 │ │ :cond_0 │ const/4 v1, 0x0 ├── smali/org/jsoup/parser/HtmlTreeBuilderState$24.smali │ @@ -19,15 +19,15 @@ │ │ │ # direct methods │ .method static constructor ()V │ .locals 3 │ │ .prologue │ - .line 98 │ + .line 99 │ invoke-static {}, Lorg/jsoup/parser/Token$TokenType;->values()[Lorg/jsoup/parser/Token$TokenType; │ │ move-result-object v0 │ │ array-length v0, v0 │ │ new-array v0, v0, [I ├── smali/org/jsoup/parser/TokeniserState$14.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 252 │ + .line 254 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,41 +31,41 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 1 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 254 │ + .line 256 │ const/16 v0, 0x2f │ │ invoke-virtual {p2, v0}, Lorg/jsoup/parser/CharacterReader;->matches(C)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 255 │ + .line 257 │ invoke-virtual {p1}, Lorg/jsoup/parser/Tokeniser;->createTempBuffer()V │ │ - .line 256 │ + .line 258 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$14;->RawtextEndTagOpen:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 261 │ + .line 263 │ :goto_0 │ return-void │ │ - .line 258 │ + .line 260 │ :cond_0 │ const/16 v0, 0x3c │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ - .line 259 │ + .line 261 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$14;->Rawtext:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ .end method ├── smali/org/jsoup/parser/TokeniserState$67.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 1589 │ + .line 1594 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,31 +31,31 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 1591 │ + .line 1596 │ const-string v1, "]]>" │ │ invoke-virtual {p2, v1}, Lorg/jsoup/parser/CharacterReader;->consumeTo(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 1592 │ + .line 1597 │ .local v0, "data":Ljava/lang/String; │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(Ljava/lang/String;)V │ │ - .line 1593 │ + .line 1598 │ const-string v1, "]]>" │ │ invoke-virtual {p2, v1}, Lorg/jsoup/parser/CharacterReader;->matchConsume(Ljava/lang/String;)Z │ │ - .line 1594 │ + .line 1599 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$67;->Data:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->transition(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 1595 │ + .line 1600 │ return-void │ .end method ├── smali/org/jsoup/parser/TokeniserState$16.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 268 │ + .line 270 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,15 +31,15 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 1 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 270 │ + .line 272 │ sget-object v0, Lorg/jsoup/parser/TokeniserState$16;->Rawtext:Lorg/jsoup/parser/TokeniserState; │ │ invoke-static {p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->access$500(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 271 │ + .line 273 │ return-void │ .end method ├── smali/org/jsoup/parser/TokeniserState$1.smali │ @@ -15,15 +15,15 @@ │ │ │ # direct methods │ .method constructor (Ljava/lang/String;I)V │ .locals 1 │ │ .prologue │ - .line 9 │ + .line 11 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lorg/jsoup/parser/TokeniserState;->(Ljava/lang/String;ILorg/jsoup/parser/TokeniserState$1;)V │ │ return-void │ .end method │ │ @@ -31,75 +31,75 @@ │ # virtual methods │ .method read(Lorg/jsoup/parser/Tokeniser;Lorg/jsoup/parser/CharacterReader;)V │ .locals 2 │ .param p1, "t" # Lorg/jsoup/parser/Tokeniser; │ .param p2, "r" # Lorg/jsoup/parser/CharacterReader; │ │ .prologue │ - .line 12 │ + .line 14 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->current()C │ │ move-result v1 │ │ sparse-switch v1, :sswitch_data_0 │ │ - .line 27 │ + .line 29 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consumeData()Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 28 │ + .line 30 │ .local v0, "data":Ljava/lang/String; │ invoke-virtual {p1, v0}, Lorg/jsoup/parser/Tokeniser;->emit(Ljava/lang/String;)V │ │ - .line 31 │ + .line 33 │ .end local v0 # "data":Ljava/lang/String; │ :goto_0 │ return-void │ │ - .line 14 │ + .line 16 │ :sswitch_0 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$1;->CharacterReferenceInData:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 17 │ + .line 19 │ :sswitch_1 │ sget-object v1, Lorg/jsoup/parser/TokeniserState$1;->TagOpen:Lorg/jsoup/parser/TokeniserState; │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->advanceTransition(Lorg/jsoup/parser/TokeniserState;)V │ │ goto :goto_0 │ │ - .line 20 │ + .line 22 │ :sswitch_2 │ invoke-virtual {p1, p0}, Lorg/jsoup/parser/Tokeniser;->error(Lorg/jsoup/parser/TokeniserState;)V │ │ - .line 21 │ + .line 23 │ invoke-virtual {p2}, Lorg/jsoup/parser/CharacterReader;->consume()C │ │ move-result v1 │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->emit(C)V │ │ goto :goto_0 │ │ - .line 24 │ + .line 26 │ :sswitch_3 │ new-instance v1, Lorg/jsoup/parser/Token$EOF; │ │ invoke-direct {v1}, Lorg/jsoup/parser/Token$EOF;->()V │ │ invoke-virtual {p1, v1}, Lorg/jsoup/parser/Tokeniser;->emit(Lorg/jsoup/parser/Token;)V │ │ goto :goto_0 │ │ - .line 12 │ + .line 14 │ nop │ │ :sswitch_data_0 │ .sparse-switch │ 0x0 -> :sswitch_2 │ 0x26 -> :sswitch_0 │ 0x3c -> :sswitch_1 ├── smali/org/jsoup/parser/Token$Comment.smali │ @@ -21,79 +21,79 @@ │ │ │ # direct methods │ .method constructor ()V │ .locals 1 │ │ .prologue │ - .line 244 │ + .line 272 │ const/4 v0, 0x0 │ │ invoke-direct {p0, v0}, Lorg/jsoup/parser/Token;->(Lorg/jsoup/parser/Token$1;)V │ │ - .line 234 │ + .line 262 │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ iput-object v0, p0, Lorg/jsoup/parser/Token$Comment;->data:Ljava/lang/StringBuilder; │ │ - .line 235 │ + .line 263 │ const/4 v0, 0x0 │ │ iput-boolean v0, p0, Lorg/jsoup/parser/Token$Comment;->bogus:Z │ │ - .line 245 │ + .line 273 │ sget-object v0, Lorg/jsoup/parser/Token$TokenType;->Comment:Lorg/jsoup/parser/Token$TokenType; │ │ iput-object v0, p0, Lorg/jsoup/parser/Token$Comment;->type:Lorg/jsoup/parser/Token$TokenType; │ │ - .line 246 │ + .line 274 │ return-void │ .end method │ │ │ # virtual methods │ .method getData()Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 249 │ + .line 277 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Comment;->data:Ljava/lang/StringBuilder; │ │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method reset()Lorg/jsoup/parser/Token; │ .locals 1 │ │ .prologue │ - .line 239 │ + .line 267 │ iget-object v0, p0, Lorg/jsoup/parser/Token$Comment;->data:Ljava/lang/StringBuilder; │ │ invoke-static {v0}, Lorg/jsoup/parser/Token$Comment;->reset(Ljava/lang/StringBuilder;)V │ │ - .line 240 │ + .line 268 │ const/4 v0, 0x0 │ │ iput-boolean v0, p0, Lorg/jsoup/parser/Token$Comment;->bogus:Z │ │ - .line 241 │ + .line 269 │ return-object p0 │ .end method │ │ .method public toString()Ljava/lang/String; │ .locals 2 │ │ .prologue │ - .line 254 │ + .line 282 │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ const-string v1, "