--- /home/fdroid/fdroiddata/tmp/com.jwetherell.heart_rate_monitor_1.apk +++ /home/fdroid/fdroiddata/tmp/sigcp_com.jwetherell.heart_rate_monitor_1.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: res/drawable-ldpi/icon.png entry referenced by META-INF/MANIFEST.MF not found in the APK │┄ ERROR: res/drawable-mdpi/icon.png entry referenced by META-INF/MANIFEST.MF not found in the APK │┄ ERROR: res/drawable-mdpi/red_icon.png entry referenced by META-INF/MANIFEST.MF not found in the APK │┄ ERROR: res/drawable-mdpi/green_icon.png entry referenced by META-INF/MANIFEST.MF not found in the APK │┄ ERROR: res/drawable-hdpi/icon.png entry referenced by META-INF/MANIFEST.MF not found in the APK │ @@ -1,16 +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: 555b229d2ab63c223b1654a15465b84e0507b1bc5dc806c99967b2ac709b9b01 │ -Signer #1 certificate SHA-1 digest: 3000d27593bcea0b17b0bad45d8ee62e9fc9d46c │ -Signer #1 certificate MD5 digest: ace5ed35ae767006e4ba98c76d3bb09e │ -Signer #1 key algorithm: RSA │ -Signer #1 key size (bits): 2048 │ -Signer #1 public key SHA-256 digest: fd70940b8bdd2a37d79b6de8bfd8434c8ec5ba159ed3a7ea76e438719478af6c │ -Signer #1 public key SHA-1 digest: 76c28e071b349ad7db0eda04a33c422f798fe24f │ -Signer #1 public key MD5 digest: c613f81ab7f4772ea8884e6eb538011f ├── zipinfo -v {} │┄ Differences in extra fields detected; using output from zipinfo -v │ @@ -1,376 +1,366 @@ │ There is no zipfile comment. │ │ End-of-central-directory record: │ ------------------------------- │ │ - Zip archive file size: 25873 (0000000000006511h) │ - Actual end-cent-dir record offset: 25851 (00000000000064FBh) │ - Expected end-cent-dir record offset: 25851 (00000000000064FBh) │ + Zip archive file size: 26018 (00000000000065A2h) │ + Actual end-cent-dir record offset: 25996 (000000000000658Ch) │ + Expected end-cent-dir record offset: 25996 (000000000000658Ch) │ (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 12 entries. │ - The central directory is 820 (0000000000000334h) bytes long, │ + The central directory is 835 (0000000000000343h) bytes long, │ and its (expected) offset in bytes from the beginning of the zipfile │ - is 25031 (00000000000061C7h). │ + is 25161 (0000000000006249h). │ │ │ 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): 2013 May 29 06:40:16 │ - 32-bit CRC value (hex): eea05c5d │ - compressed size: 384 bytes │ - uncompressed size: 751 bytes │ - length of filename: 20 characters │ - length of extra field: 0 bytes │ + file last modified on (DOS date/time): 2017 Oct 14 00:19:00 │ + 32-bit CRC value (hex): 8c954a65 │ + compressed size: 880 bytes │ + uncompressed size: 2500 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/FCA6B2F0.SF │ + res/drawable-hdpi-v4/icon.png │ │ - offset of local header from start of archive: 450 │ - (00000000000001C2h) bytes │ + offset of local header from start of archive: 949 │ + (00000000000003B5h) 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): 2013 May 29 06:40:16 │ - 32-bit CRC value (hex): c38288aa │ - compressed size: 468 bytes │ - uncompressed size: 872 bytes │ - length of filename: 20 characters │ + extended local header: no │ + file last modified on (DOS date/time): 1980 Jan 1 00:00:00 │ + 32-bit CRC value (hex): 13e5ae94 │ + compressed size: 3941 bytes │ + uncompressed size: 3941 bytes │ + length of filename: 29 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. │ + res/drawable-ldpi-v4/icon.png │ │ - META-INF/FCA6B2F0.RSA │ - │ - offset of local header from start of archive: 984 │ - (00000000000003D8h) bytes │ + offset of local header from start of archive: 4949 │ + (0000000000001355h) 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): 2013 May 29 06:40:16 │ - 32-bit CRC value (hex): 504a92e3 │ - compressed size: 1077 bytes │ - uncompressed size: 1332 bytes │ - length of filename: 21 characters │ + extended local header: no │ + file last modified on (DOS date/time): 1980 Jan 1 00:00:00 │ + 32-bit CRC value (hex): 8ef78580 │ + compressed size: 1537 bytes │ + uncompressed size: 1537 bytes │ + length of filename: 29 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. │ - │ - res/layout/main.xml │ + res/drawable-mdpi-v4/green_icon.png │ │ - offset of local header from start of archive: 2128 │ - (0000000000000850h) bytes │ + offset of local header from start of archive: 6545 │ + (0000000000001991h) 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): 2013 May 29 04:31:50 │ - 32-bit CRC value (hex): ec7be297 │ - compressed size: 572 bytes │ - uncompressed size: 1652 bytes │ - length of filename: 19 characters │ - length of extra field: 4 bytes │ + extended local header: no │ + file last modified on (DOS date/time): 1980 Jan 1 00:00:00 │ + 32-bit CRC value (hex): 99a4f90b │ + compressed size: 2200 bytes │ + uncompressed size: 2200 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 │ │ - The central-directory extra field contains: │ - - A subfield with ID 0xcafe (unknown) and 0 data bytes. │ - │ There is no file comment. │ │ Central directory entry #5: │ --------------------------- │ │ - There are an extra 16 bytes preceding this file. │ + res/drawable-mdpi-v4/icon.png │ │ - AndroidManifest.xml │ - │ - offset of local header from start of archive: 2769 │ - (0000000000000AD1h) bytes │ + offset of local header from start of archive: 8810 │ + (000000000000226Ah) 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): 2013 May 29 04:31:50 │ - 32-bit CRC value (hex): 0a590faf │ - compressed size: 807 bytes │ - uncompressed size: 2308 bytes │ - length of filename: 19 characters │ + extended local header: no │ + file last modified on (DOS date/time): 1980 Jan 1 00:00:00 │ + 32-bit CRC value (hex): 99a4f90b │ + compressed size: 2200 bytes │ + uncompressed size: 2200 bytes │ + length of filename: 29 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. │ - │ - resources.arsc │ + res/drawable-mdpi-v4/red_icon.png │ │ - offset of local header from start of archive: 3641 │ - (0000000000000E39h) bytes │ + offset of local header from start of archive: 11069 │ + (0000000000002B3Dh) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ version of encoding software: 1.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) │ file security status: not encrypted │ extended local header: no │ - file last modified on (DOS date/time): 2013 May 29 04:31:50 │ - 32-bit CRC value (hex): 38d96f3b │ - compressed size: 1860 bytes │ - uncompressed size: 1860 bytes │ - length of filename: 14 characters │ + file last modified on (DOS date/time): 1980 Jan 1 00:00:00 │ + 32-bit CRC value (hex): ff7a3af8 │ + compressed size: 2009 bytes │ + uncompressed size: 2009 bytes │ + length of filename: 33 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 #7: │ --------------------------- │ │ - There are an extra 3 bytes preceding this file. │ - │ - res/drawable-hdpi/icon.png │ + res/layout/main.xml │ │ - offset of local header from start of archive: 5548 │ - (00000000000015ACh) bytes │ + offset of local header from start of archive: 13141 │ + (0000000000003355h) 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): 2013 May 29 04:31:50 │ - 32-bit CRC value (hex): 3c13576b │ - compressed size: 3966 bytes │ - uncompressed size: 3966 bytes │ - length of filename: 26 characters │ + extended local header: yes │ + file last modified on (DOS date/time): 2017 Oct 14 00:19:00 │ + 32-bit CRC value (hex): ec7be297 │ + compressed size: 572 bytes │ + uncompressed size: 1652 bytes │ + length of filename: 19 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: │ --------------------------- │ │ - res/drawable-ldpi/icon.png │ + There are an extra 16 bytes preceding this file. │ + │ + resources.arsc │ │ - offset of local header from start of archive: 9570 │ - (0000000000002562h) bytes │ + offset of local header from start of archive: 13778 │ + (00000000000035D2h) bytes │ file system or operating system of origin: MS-DOS, OS/2 or NT FAT │ version of encoding software: 1.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) │ file security status: not encrypted │ extended local header: no │ - file last modified on (DOS date/time): 2013 May 29 04:31:50 │ - 32-bit CRC value (hex): 8ef78580 │ - compressed size: 1537 bytes │ - uncompressed size: 1537 bytes │ - length of filename: 26 characters │ + file last modified on (DOS date/time): 1980 Jan 1 00:00:00 │ + 32-bit CRC value (hex): 764b4494 │ + compressed size: 2012 bytes │ + uncompressed size: 2012 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 #9: │ --------------------------- │ │ - There are an extra 2 bytes preceding this file. │ - │ - res/drawable-mdpi/green_icon.png │ + classes.dex │ │ - offset of local header from start of archive: 11165 │ - (0000000000002B9Dh) bytes │ + offset of local header from start of archive: 15834 │ + (0000000000003DDAh) 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): 2013 May 29 04:31:50 │ - 32-bit CRC value (hex): 99a4f90b │ - compressed size: 2200 bytes │ - uncompressed size: 2200 bytes │ - length of filename: 32 characters │ + extended local header: yes │ + file last modified on (DOS date/time): 2017 Oct 14 00:19:00 │ + 32-bit CRC value (hex): c9b595c8 │ + compressed size: 7190 bytes │ + uncompressed size: 17136 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 #10: │ --------------------------- │ │ - There are an extra 1 bytes preceding this file. │ + There are an extra 16 bytes preceding this file. │ │ - res/drawable-mdpi/icon.png │ + META-INF/MANIFEST.MF │ │ - offset of local header from start of archive: 13428 │ - (0000000000003474h) bytes │ + offset of local header from start of archive: 23081 │ + (0000000000005A29h) 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): 2013 May 29 04:31:50 │ - 32-bit CRC value (hex): 99a4f90b │ - compressed size: 2200 bytes │ - uncompressed size: 2200 bytes │ - length of filename: 26 characters │ + file last modified on (DOS date/time): 2017 Oct 14 00:19:00 │ + 32-bit CRC value (hex): eea05c5d │ + compressed size: 384 bytes │ + uncompressed size: 751 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: │ --------------------------- │ │ - res/drawable-mdpi/red_icon.png │ + META-INF/FCA6B2F0.SF │ │ - offset of local header from start of archive: 15684 │ - (0000000000003D44h) bytes │ + offset of local header from start of archive: 23515 │ + (0000000000005BDBh) 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): 2013 May 29 04:31:50 │ - 32-bit CRC value (hex): ff7a3af8 │ - compressed size: 2009 bytes │ - uncompressed size: 2009 bytes │ - length of filename: 30 characters │ + file last modified on (DOS date/time): 2017 Oct 14 00:19:00 │ + 32-bit CRC value (hex): c38288aa │ + compressed size: 468 bytes │ + uncompressed size: 872 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: │ --------------------------- │ │ - classes.dex │ + META-INF/FCA6B2F0.RSA │ │ - offset of local header from start of archive: 17753 │ - (0000000000004559h) bytes │ + offset of local header from start of archive: 24033 │ + (0000000000005DE1h) 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): 2013 May 29 04:31:48 │ - 32-bit CRC value (hex): e548809b │ - compressed size: 7221 bytes │ - uncompressed size: 16984 bytes │ - length of filename: 11 characters │ + extended local header: no │ + file last modified on (DOS date/time): 2017 Oct 14 00:19:00 │ + 32-bit CRC value (hex): 504a92e3 │ + compressed size: 1077 bytes │ + uncompressed size: 1332 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) ├── AndroidManifest.xml (decoded) │ ├── AndroidManifest.xml │ │ @@ -1,9 +1,9 @@ │ │ │ │ - │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── resources.arsc │ ├── aapt2 dump resources {} │ │ @@ -1,18 +1,18 @@ │ │ Binary APK │ │ Package name=com.jwetherell.heart_rate_monitor id=7f │ │ type drawable id=02 entryCount=3 │ │ resource 0x7f020000 drawable/green_icon │ │ - (mdpi-v4) (file) res/drawable-mdpi/green_icon.png type=PNG │ │ + (mdpi-v4) (file) res/drawable-mdpi-v4/green_icon.png type=PNG │ │ resource 0x7f020001 drawable/icon │ │ - (ldpi-v4) (file) res/drawable-ldpi/icon.png type=PNG │ │ - (mdpi-v4) (file) res/drawable-mdpi/icon.png type=PNG │ │ - (hdpi-v4) (file) res/drawable-hdpi/icon.png type=PNG │ │ + (ldpi-v4) (file) res/drawable-ldpi-v4/icon.png type=PNG │ │ + (mdpi-v4) (file) res/drawable-mdpi-v4/icon.png type=PNG │ │ + (hdpi-v4) (file) res/drawable-hdpi-v4/icon.png type=PNG │ │ resource 0x7f020002 drawable/red_icon │ │ - (mdpi-v4) (file) res/drawable-mdpi/red_icon.png type=PNG │ │ + (mdpi-v4) (file) res/drawable-mdpi-v4/red_icon.png type=PNG │ │ type id id=05 entryCount=5 │ │ resource 0x7f050000 id/layout │ │ () (id) │ │ resource 0x7f050001 id/top │ │ () (id) │ │ resource 0x7f050002 id/text │ │ () (id) ├── classes.dex │ ├── dexdump -a -d -f -h {} │ │┄ Ignoring differences in offsets to keep diff size reasonable. │ │ @@ -1,30 +1,30 @@ │ │ DEX version '035' │ │ DEX file header: │ │ magic : 'dex\n035\0' │ │ -checksum : 09158e1e │ │ -signature : 4e6d...3d65 │ │ -file_size : 16984 │ │ +checksum : d2358d0b │ │ +signature : 2e5e...6620 │ │ +file_size : 17136 │ │ header_size : 112 │ │ link_size : 0 │ │ link_off : 0 (0x000000) │ │ -string_ids_size : 304 │ │ +string_ids_size : 303 │ │ string_ids_off : 112 (0x000070) │ │ type_ids_size : 70 │ │ -type_ids_off : 1328 (0x000530) │ │ +type_ids_off : 1324 (0x00052c) │ │ proto_ids_size : 59 │ │ -proto_ids_off : 1608 (0x000648) │ │ +proto_ids_off : 1604 (0x000644) │ │ field_ids_size : 49 │ │ -field_ids_off : 2316 (0x00090c) │ │ +field_ids_off : 2312 (0x000908) │ │ method_ids_size : 119 │ │ -method_ids_off : 2708 (0x000a94) │ │ +method_ids_off : 2704 (0x000a90) │ │ class_defs_size : 15 │ │ -class_defs_off : 3660 (0x000e4c) │ │ -data_size : 12804 │ │ -data_off : 4180 (0x001054) │ │ +class_defs_off : 3656 (0x000e48) │ │ +data_size : 12960 │ │ +data_off : 4176 (0x001050) │ │ │ │ Class #0 header: │ │ class_idx : 4 │ │ access_flags : 9729 (0x2601) │ │ superclass_idx : 51 │ │ source_file_idx : 103 │ │ static_fields_size : 0 │ │ @@ -115,17 +115,17 @@ │ │ type : '()V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -001508: |[001508] com.jwetherell.heart_rate_monitor.BuildConfig.:()V │ │ -001518: 7010 6800 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@0068 │ │ -00151e: 0e00 |0003: return-void │ │ +0015b0: |[0015b0] com.jwetherell.heart_rate_monitor.BuildConfig.:()V │ │ +0015c0: 7010 6800 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@0068 │ │ +0015c6: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=4 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lcom/jwetherell/heart_rate_monitor/BuildConfig; │ │ │ │ Virtual methods - │ │ @@ -160,307 +160,307 @@ │ │ type : '()V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -001520: |[001520] com.jwetherell.heart_rate_monitor.HeartRateMonitor$1.:()V │ │ -001530: 7010 6800 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@0068 │ │ -001536: 0e00 |0003: return-void │ │ +0015c8: |[0015c8] com.jwetherell.heart_rate_monitor.HeartRateMonitor$1.:()V │ │ +0015d8: 7010 6800 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@0068 │ │ +0015de: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ - 0x0000 line=111 │ │ + 0x0000 line=116 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$1; │ │ │ │ Virtual methods - │ │ #0 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$1;) │ │ name : 'onPreviewFrame' │ │ type : '([BLandroid/hardware/Camera;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ - registers : 28 │ │ + registers : 29 │ │ ins : 3 │ │ outs : 3 │ │ insns size : 382 16-bit code units │ │ -001538: |[001538] com.jwetherell.heart_rate_monitor.HeartRateMonitor$1.onPreviewFrame:([BLandroid/hardware/Camera;)V │ │ -001548: 391a 0800 |0000: if-nez v26, 0008 // +0008 │ │ -00154c: 2215 3200 |0002: new-instance v21, Ljava/lang/NullPointerException; // type@0032 │ │ -001550: 7601 6700 1500 |0004: invoke-direct/range {v21}, Ljava/lang/NullPointerException;.:()V // method@0067 │ │ -001556: 2715 |0007: throw v21 │ │ -001558: 7401 1300 1b00 |0008: invoke-virtual/range {v27}, Landroid/hardware/Camera;.getParameters:()Landroid/hardware/Camera$Parameters; // method@0013 │ │ -00155e: 0c15 |000b: move-result-object v21 │ │ -001560: 7401 0f00 1500 |000c: invoke-virtual/range {v21}, Landroid/hardware/Camera$Parameters;.getPreviewSize:()Landroid/hardware/Camera$Size; // method@000f │ │ -001566: 0c11 |000f: move-result-object v17 │ │ -001568: 3911 0800 |0010: if-nez v17, 0018 // +0008 │ │ -00156c: 2215 3200 |0012: new-instance v21, Ljava/lang/NullPointerException; // type@0032 │ │ -001570: 7601 6700 1500 |0014: invoke-direct/range {v21}, Ljava/lang/NullPointerException;.:()V // method@0067 │ │ -001576: 2715 |0017: throw v21 │ │ -001578: 7100 3600 0000 |0018: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$000:()Ljava/util/concurrent/atomic/AtomicBoolean; // method@0036 │ │ -00157e: 0c15 |001b: move-result-object v21 │ │ -001580: 1316 0000 |001c: const/16 v22, #int 0 // #0 │ │ -001584: 1317 0100 |001e: const/16 v23, #int 1 // #1 │ │ -001588: 7403 7300 1500 |0020: invoke-virtual/range {v21, v22, v23}, Ljava/util/concurrent/atomic/AtomicBoolean;.compareAndSet:(ZZ)Z // method@0073 │ │ -00158e: 0a15 |0023: move-result v21 │ │ -001590: 3915 0300 |0024: if-nez v21, 0027 // +0003 │ │ -001594: 0e00 |0026: return-void │ │ -001596: 0800 1100 |0027: move-object/from16 v0, v17 │ │ -00159a: 5200 0100 |0029: iget v0, v0, Landroid/hardware/Camera$Size;.width:I // field@0001 │ │ -00159e: 0214 0000 |002b: move/from16 v20, v0 │ │ -0015a2: 0800 1100 |002d: move-object/from16 v0, v17 │ │ -0015a6: 520c 0000 |002f: iget v12, v0, Landroid/hardware/Camera$Size;.height:I // field@0000 │ │ -0015aa: 7401 7500 1a00 |0031: invoke-virtual/range {v26}, [B.clone:()Ljava/lang/Object; // method@0075 │ │ -0015b0: 0c15 |0034: move-result-object v21 │ │ -0015b2: 1f15 4200 |0035: check-cast v21, [B // type@0042 │ │ -0015b6: 0800 1500 |0037: move-object/from16 v0, v21 │ │ -0015ba: 0201 1400 |0039: move/from16 v1, v20 │ │ -0015be: 7130 5d00 c001 |003b: invoke-static {v0, v12, v1}, Lcom/jwetherell/heart_rate_monitor/ImageProcessing;.decodeYUV420SPtoRedAvg:([BII)I // method@005d │ │ -0015c4: 0a0e |003e: move-result v14 │ │ -0015c6: 380e 0800 |003f: if-eqz v14, 0047 // +0008 │ │ -0015ca: 1315 ff00 |0041: const/16 v21, #int 255 // #ff │ │ -0015ce: 0200 1500 |0043: move/from16 v0, v21 │ │ -0015d2: 330e 0c00 |0045: if-ne v14, v0, 0051 // +000c │ │ -0015d6: 7100 3600 0000 |0047: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$000:()Ljava/util/concurrent/atomic/AtomicBoolean; // method@0036 │ │ -0015dc: 0c15 |004a: move-result-object v21 │ │ -0015de: 1316 0000 |004b: const/16 v22, #int 0 // #0 │ │ -0015e2: 7402 7400 1500 |004d: invoke-virtual/range {v21, v22}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@0074 │ │ -0015e8: 28d6 |0050: goto 0026 // -002a │ │ -0015ea: 1202 |0051: const/4 v2, #int 0 // #0 │ │ -0015ec: 1203 |0052: const/4 v3, #int 0 // #0 │ │ -0015ee: 120d |0053: const/4 v13, #int 0 // #0 │ │ -0015f0: 7100 3700 0000 |0054: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$100:()[I // method@0037 │ │ -0015f6: 0c15 |0057: move-result-object v21 │ │ -0015f8: 0800 1500 |0058: move-object/from16 v0, v21 │ │ -0015fc: 2100 |005a: array-length v0, v0 │ │ -0015fe: 0215 0000 |005b: move/from16 v21, v0 │ │ -001602: 0200 1500 |005d: move/from16 v0, v21 │ │ -001606: 350d 1700 |005f: if-ge v13, v0, 0076 // +0017 │ │ -00160a: 7100 3700 0000 |0061: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$100:()[I // method@0037 │ │ -001610: 0c15 |0064: move-result-object v21 │ │ -001612: 4415 150d |0065: aget v21, v21, v13 │ │ -001616: 3d15 0c00 |0067: if-lez v21, 0073 // +000c │ │ -00161a: 7100 3700 0000 |0069: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$100:()[I // method@0037 │ │ -001620: 0c15 |006c: move-result-object v21 │ │ -001622: 4415 150d |006d: aget v21, v21, v13 │ │ -001626: 9002 0215 |006f: add-int v2, v2, v21 │ │ -00162a: d803 0301 |0071: add-int/lit8 v3, v3, #int 1 // #01 │ │ -00162e: d80d 0d01 |0073: add-int/lit8 v13, v13, #int 1 // #01 │ │ -001632: 28df |0075: goto 0054 // -0021 │ │ -001634: 3d03 9500 |0076: if-lez v3, 010b // +0095 │ │ -001638: 9310 0203 |0078: div-int v16, v2, v3 │ │ -00163c: 7100 3c00 0000 |007a: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$200:()Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // method@003c │ │ -001642: 0c0f |007d: move-result-object v15 │ │ -001644: 0200 1000 |007e: move/from16 v0, v16 │ │ -001648: 350e 8f00 |0080: if-ge v14, v0, 010f // +008f │ │ -00164c: 620f 0500 |0082: sget-object v15, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.RED:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@0005 │ │ -001650: 7100 3c00 0000 |0084: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$200:()Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // method@003c │ │ -001656: 0c15 |0087: move-result-object v21 │ │ -001658: 0800 1500 |0088: move-object/from16 v0, v21 │ │ -00165c: 320f 0500 |008a: if-eq v15, v0, 008f // +0005 │ │ -001660: 7100 4000 0000 |008c: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$308:()D // method@0040 │ │ -001666: 7100 4100 0000 |008f: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$400:()I // method@0041 │ │ -00166c: 0a15 |0092: move-result v21 │ │ -00166e: 1316 0400 |0093: const/16 v22, #int 4 // #4 │ │ -001672: 0200 1500 |0095: move/from16 v0, v21 │ │ -001676: 0201 1600 |0097: move/from16 v1, v22 │ │ -00167a: 3310 0700 |0099: if-ne v0, v1, 00a0 // +0007 │ │ -00167e: 1315 0000 |009b: const/16 v21, #int 0 // #0 │ │ -001682: 7701 4200 1500 |009d: invoke-static/range {v21}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$402:(I)I // method@0042 │ │ -001688: 7100 3700 0000 |00a0: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$100:()[I // method@0037 │ │ -00168e: 0c15 |00a3: move-result-object v21 │ │ -001690: 7100 4100 0000 |00a4: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$400:()I // method@0041 │ │ -001696: 0a16 |00a7: move-result v22 │ │ -001698: 4b0e 1516 |00a8: aput v14, v21, v22 │ │ -00169c: 7100 4300 0000 |00aa: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$408:()I // method@0043 │ │ -0016a2: 7100 3c00 0000 |00ad: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$200:()Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // method@003c │ │ -0016a8: 0c15 |00b0: move-result-object v21 │ │ -0016aa: 0800 1500 |00b1: move-object/from16 v0, v21 │ │ -0016ae: 320f 0c00 |00b3: if-eq v15, v0, 00bf // +000c │ │ -0016b2: 7110 3d00 0f00 |00b5: invoke-static {v15}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$202:(Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;)Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // method@003d │ │ -0016b8: 7100 4400 0000 |00b8: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$500:()Landroid/view/View; // method@0044 │ │ -0016be: 0c15 |00bb: move-result-object v21 │ │ -0016c0: 7401 2700 1500 |00bc: invoke-virtual/range {v21}, Landroid/view/View;.postInvalidate:()V // method@0027 │ │ -0016c6: 7100 6e00 0000 |00bf: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@006e │ │ -0016cc: 0b0a |00c2: move-result-wide v10 │ │ -0016ce: 7100 4500 0000 |00c3: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$600:()J // method@0045 │ │ -0016d4: 0b15 |00c6: move-result-wide v21 │ │ -0016d6: 9c15 0a15 |00c7: sub-long v21, v10, v21 │ │ -0016da: 0500 1500 |00c9: move-wide/from16 v0, v21 │ │ -0016de: 8600 |00cb: long-to-double v0, v0 │ │ -0016e0: 0515 0000 |00cc: move-wide/from16 v21, v0 │ │ -0016e4: 1817 0000 0000 0040 8f40 |00ce: const-wide v23, #double 1000 // #408f400000000000 │ │ -0016ee: ae12 1517 |00d3: div-double v18, v21, v23 │ │ -0016f2: 1915 2440 |00d5: const-wide/high16 v21, #long 4621819117588971520 // #4024 │ │ -0016f6: 2f15 1215 |00d7: cmpl-double v21, v18, v21 │ │ -0016fa: 3a15 9a00 |00d9: if-ltz v21, 0173 // +009a │ │ -0016fe: 7100 3e00 0000 |00db: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$300:()D // method@003e │ │ -001704: 0b15 |00de: move-result-wide v21 │ │ -001706: ae07 1512 |00df: div-double v7, v21, v18 │ │ -00170a: 1915 4e40 |00e1: const-wide/high16 v21, #long 4633641066610819072 // #404e │ │ -00170e: ad15 1507 |00e3: mul-double v21, v21, v7 │ │ -001712: 0500 1500 |00e5: move-wide/from16 v0, v21 │ │ -001716: 8a09 |00e7: double-to-int v9, v0 │ │ -001718: 1315 1e00 |00e8: const/16 v21, #int 30 // #1e │ │ -00171c: 0200 1500 |00ea: move/from16 v0, v21 │ │ -001720: 3409 0800 |00ec: if-lt v9, v0, 00f4 // +0008 │ │ -001724: 1315 b400 |00ee: const/16 v21, #int 180 // #b4 │ │ -001728: 0200 1500 |00f0: move/from16 v0, v21 │ │ -00172c: 3709 2500 |00f2: if-le v9, v0, 0117 // +0025 │ │ -001730: 7100 6e00 0000 |00f4: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@006e │ │ -001736: 0b15 |00f7: move-result-wide v21 │ │ -001738: 7702 4600 1500 |00f8: invoke-static/range {v21, v22}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$602:(J)J // method@0046 │ │ -00173e: 1615 0000 |00fb: const-wide/16 v21, #int 0 // #0 │ │ -001742: 7702 3f00 1500 |00fd: invoke-static/range {v21, v22}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$302:(D)D // method@003f │ │ -001748: 7100 3600 0000 |0100: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$000:()Ljava/util/concurrent/atomic/AtomicBoolean; // method@0036 │ │ -00174e: 0c15 |0103: move-result-object v21 │ │ -001750: 1316 0000 |0104: const/16 v22, #int 0 // #0 │ │ -001754: 7402 7400 1500 |0106: invoke-virtual/range {v21, v22}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@0074 │ │ -00175a: 2900 1dff |0109: goto/16 0026 // -00e3 │ │ -00175e: 1310 0000 |010b: const/16 v16, #int 0 // #0 │ │ -001762: 2900 6dff |010d: goto/16 007a // -0093 │ │ -001766: 0200 1000 |010f: move/from16 v0, v16 │ │ -00176a: 370e 7eff |0111: if-le v14, v0, 008f // -0082 │ │ -00176e: 620f 0400 |0113: sget-object v15, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.GREEN:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@0004 │ │ -001772: 2900 7aff |0115: goto/16 008f // -0086 │ │ -001776: 7100 4700 0000 |0117: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$700:()I // method@0047 │ │ -00177c: 0a15 |011a: move-result v21 │ │ -00177e: 1316 0300 |011b: const/16 v22, #int 3 // #3 │ │ -001782: 0200 1500 |011d: move/from16 v0, v21 │ │ -001786: 0201 1600 |011f: move/from16 v1, v22 │ │ -00178a: 3310 0700 |0121: if-ne v0, v1, 0128 // +0007 │ │ -00178e: 1315 0000 |0123: const/16 v21, #int 0 // #0 │ │ -001792: 7701 4800 1500 |0125: invoke-static/range {v21}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$702:(I)I // method@0048 │ │ -001798: 7100 4a00 0000 |0128: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$800:()[I // method@004a │ │ -00179e: 0c15 |012b: move-result-object v21 │ │ -0017a0: 7100 4700 0000 |012c: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$700:()I // method@0047 │ │ -0017a6: 0a16 |012f: move-result v22 │ │ -0017a8: 4b09 1516 |0130: aput v9, v21, v22 │ │ -0017ac: 7100 4900 0000 |0132: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$708:()I // method@0049 │ │ -0017b2: 1204 |0135: const/4 v4, #int 0 // #0 │ │ -0017b4: 1205 |0136: const/4 v5, #int 0 // #0 │ │ -0017b6: 120d |0137: const/4 v13, #int 0 // #0 │ │ -0017b8: 7100 4a00 0000 |0138: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$800:()[I // method@004a │ │ -0017be: 0c15 |013b: move-result-object v21 │ │ -0017c0: 0800 1500 |013c: move-object/from16 v0, v21 │ │ -0017c4: 2100 |013e: array-length v0, v0 │ │ -0017c6: 0215 0000 |013f: move/from16 v21, v0 │ │ -0017ca: 0200 1500 |0141: move/from16 v0, v21 │ │ -0017ce: 350d 1700 |0143: if-ge v13, v0, 015a // +0017 │ │ -0017d2: 7100 4a00 0000 |0145: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$800:()[I // method@004a │ │ -0017d8: 0c15 |0148: move-result-object v21 │ │ -0017da: 4415 150d |0149: aget v21, v21, v13 │ │ -0017de: 3d15 0c00 |014b: if-lez v21, 0157 // +000c │ │ -0017e2: 7100 4a00 0000 |014d: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$800:()[I // method@004a │ │ -0017e8: 0c15 |0150: move-result-object v21 │ │ -0017ea: 4415 150d |0151: aget v21, v21, v13 │ │ -0017ee: 9004 0415 |0153: add-int v4, v4, v21 │ │ -0017f2: d805 0501 |0155: add-int/lit8 v5, v5, #int 1 // #01 │ │ -0017f6: d80d 0d01 |0157: add-int/lit8 v13, v13, #int 1 // #01 │ │ -0017fa: 28df |0159: goto 0138 // -0021 │ │ -0017fc: 9306 0405 |015a: div-int v6, v4, v5 │ │ -001800: 7100 4b00 0000 |015c: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$900:()Landroid/widget/TextView; // method@004b │ │ -001806: 0c15 |015f: move-result-object v21 │ │ -001808: 7110 6900 0600 |0160: invoke-static {v6}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@0069 │ │ -00180e: 0c16 |0163: move-result-object v22 │ │ -001810: 7402 2800 1500 |0164: invoke-virtual/range {v21, v22}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@0028 │ │ -001816: 7100 6e00 0000 |0167: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@006e │ │ -00181c: 0b15 |016a: move-result-wide v21 │ │ -00181e: 7702 4600 1500 |016b: invoke-static/range {v21, v22}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$602:(J)J // method@0046 │ │ -001824: 1615 0000 |016e: const-wide/16 v21, #int 0 // #0 │ │ -001828: 7702 3f00 1500 |0170: invoke-static/range {v21, v22}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$302:(D)D // method@003f │ │ -00182e: 7100 3600 0000 |0173: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$000:()Ljava/util/concurrent/atomic/AtomicBoolean; // method@0036 │ │ -001834: 0c15 |0176: move-result-object v21 │ │ -001836: 1316 0000 |0177: const/16 v22, #int 0 // #0 │ │ -00183a: 7402 7400 1500 |0179: invoke-virtual/range {v21, v22}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@0074 │ │ -001840: 2900 aafe |017c: goto/16 0026 // -0156 │ │ - catches : (none) │ │ - positions : │ │ - 0x0000 line=117 │ │ - 0x0008 line=118 │ │ - 0x0010 line=119 │ │ - 0x0018 line=121 │ │ - 0x0026 line=196 │ │ - 0x0027 line=123 │ │ - 0x002d line=124 │ │ - 0x0031 line=126 │ │ - 0x003f line=128 │ │ - 0x0047 line=129 │ │ - 0x0051 line=133 │ │ - 0x0052 line=134 │ │ - 0x0053 line=135 │ │ - 0x0061 line=136 │ │ - 0x0069 line=137 │ │ - 0x0071 line=138 │ │ - 0x0073 line=135 │ │ - 0x0076 line=142 │ │ - 0x007a line=143 │ │ - 0x007e line=144 │ │ - 0x0082 line=145 │ │ - 0x0084 line=146 │ │ - 0x008c line=147 │ │ - 0x008f line=154 │ │ - 0x00a0 line=155 │ │ - 0x00aa line=156 │ │ - 0x00ad line=159 │ │ - 0x00b5 line=160 │ │ - 0x00b8 line=161 │ │ - 0x00bf line=164 │ │ - 0x00c3 line=165 │ │ - 0x00d5 line=166 │ │ - 0x00db line=167 │ │ - 0x00e1 line=168 │ │ - 0x00e8 line=169 │ │ - 0x00f4 line=170 │ │ - 0x00fb line=171 │ │ - 0x0100 line=172 │ │ - 0x010b line=142 │ │ - 0x010f line=150 │ │ - 0x0113 line=151 │ │ - 0x0117 line=178 │ │ - 0x0128 line=179 │ │ - 0x0132 line=180 │ │ - 0x0135 line=182 │ │ - 0x0136 line=183 │ │ - 0x0137 line=184 │ │ - 0x0145 line=185 │ │ - 0x014d line=186 │ │ - 0x0155 line=187 │ │ - 0x0157 line=184 │ │ - 0x015a line=190 │ │ - 0x015c line=191 │ │ - 0x0167 line=192 │ │ - 0x016e line=193 │ │ - 0x0173 line=195 │ │ +0015e0: |[0015e0] com.jwetherell.heart_rate_monitor.HeartRateMonitor$1.onPreviewFrame:([BLandroid/hardware/Camera;)V │ │ +0015f0: 391b 0800 |0000: if-nez v27, 0008 // +0008 │ │ +0015f4: 2215 3200 |0002: new-instance v21, Ljava/lang/NullPointerException; // type@0032 │ │ +0015f8: 7601 6700 1500 |0004: invoke-direct/range {v21}, Ljava/lang/NullPointerException;.:()V // method@0067 │ │ +0015fe: 2715 |0007: throw v21 │ │ +001600: 7401 1300 1c00 |0008: invoke-virtual/range {v28}, Landroid/hardware/Camera;.getParameters:()Landroid/hardware/Camera$Parameters; // method@0013 │ │ +001606: 0c15 |000b: move-result-object v21 │ │ +001608: 7401 0f00 1500 |000c: invoke-virtual/range {v21}, Landroid/hardware/Camera$Parameters;.getPreviewSize:()Landroid/hardware/Camera$Size; // method@000f │ │ +00160e: 0c11 |000f: move-result-object v17 │ │ +001610: 3911 0800 |0010: if-nez v17, 0018 // +0008 │ │ +001614: 2215 3200 |0012: new-instance v21, Ljava/lang/NullPointerException; // type@0032 │ │ +001618: 7601 6700 1500 |0014: invoke-direct/range {v21}, Ljava/lang/NullPointerException;.:()V // method@0067 │ │ +00161e: 2715 |0017: throw v21 │ │ +001620: 7100 3600 0000 |0018: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$000:()Ljava/util/concurrent/atomic/AtomicBoolean; // method@0036 │ │ +001626: 0c15 |001b: move-result-object v21 │ │ +001628: 1316 0000 |001c: const/16 v22, #int 0 // #0 │ │ +00162c: 1317 0100 |001e: const/16 v23, #int 1 // #1 │ │ +001630: 7403 7300 1500 |0020: invoke-virtual/range {v21, v22, v23}, Ljava/util/concurrent/atomic/AtomicBoolean;.compareAndSet:(ZZ)Z // method@0073 │ │ +001636: 0a15 |0023: move-result v21 │ │ +001638: 3915 0300 |0024: if-nez v21, 0027 // +0003 │ │ +00163c: 0e00 |0026: return-void │ │ +00163e: 0800 1100 |0027: move-object/from16 v0, v17 │ │ +001642: 5200 0100 |0029: iget v0, v0, Landroid/hardware/Camera$Size;.width:I // field@0001 │ │ +001646: 0214 0000 |002b: move/from16 v20, v0 │ │ +00164a: 0800 1100 |002d: move-object/from16 v0, v17 │ │ +00164e: 520c 0000 |002f: iget v12, v0, Landroid/hardware/Camera$Size;.height:I // field@0000 │ │ +001652: 7401 7500 1b00 |0031: invoke-virtual/range {v27}, [B.clone:()Ljava/lang/Object; // method@0075 │ │ +001658: 0c15 |0034: move-result-object v21 │ │ +00165a: 1f15 4200 |0035: check-cast v21, [B // type@0042 │ │ +00165e: 0800 1500 |0037: move-object/from16 v0, v21 │ │ +001662: 0201 1400 |0039: move/from16 v1, v20 │ │ +001666: 7130 5d00 c001 |003b: invoke-static {v0, v12, v1}, Lcom/jwetherell/heart_rate_monitor/ImageProcessing;.decodeYUV420SPtoRedAvg:([BII)I // method@005d │ │ +00166c: 0a0e |003e: move-result v14 │ │ +00166e: 380e 0800 |003f: if-eqz v14, 0047 // +0008 │ │ +001672: 1315 ff00 |0041: const/16 v21, #int 255 // #ff │ │ +001676: 0200 1500 |0043: move/from16 v0, v21 │ │ +00167a: 330e 0c00 |0045: if-ne v14, v0, 0051 // +000c │ │ +00167e: 7100 3600 0000 |0047: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$000:()Ljava/util/concurrent/atomic/AtomicBoolean; // method@0036 │ │ +001684: 0c15 |004a: move-result-object v21 │ │ +001686: 1316 0000 |004b: const/16 v22, #int 0 // #0 │ │ +00168a: 7402 7400 1500 |004d: invoke-virtual/range {v21, v22}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@0074 │ │ +001690: 28d6 |0050: goto 0026 // -002a │ │ +001692: 1202 |0051: const/4 v2, #int 0 // #0 │ │ +001694: 1203 |0052: const/4 v3, #int 0 // #0 │ │ +001696: 120d |0053: const/4 v13, #int 0 // #0 │ │ +001698: 7100 3700 0000 |0054: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$100:()[I // method@0037 │ │ +00169e: 0c15 |0057: move-result-object v21 │ │ +0016a0: 0800 1500 |0058: move-object/from16 v0, v21 │ │ +0016a4: 2100 |005a: array-length v0, v0 │ │ +0016a6: 0215 0000 |005b: move/from16 v21, v0 │ │ +0016aa: 0200 1500 |005d: move/from16 v0, v21 │ │ +0016ae: 350d 1700 |005f: if-ge v13, v0, 0076 // +0017 │ │ +0016b2: 7100 3700 0000 |0061: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$100:()[I // method@0037 │ │ +0016b8: 0c15 |0064: move-result-object v21 │ │ +0016ba: 4415 150d |0065: aget v21, v21, v13 │ │ +0016be: 3d15 0c00 |0067: if-lez v21, 0073 // +000c │ │ +0016c2: 7100 3700 0000 |0069: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$100:()[I // method@0037 │ │ +0016c8: 0c15 |006c: move-result-object v21 │ │ +0016ca: 4415 150d |006d: aget v21, v21, v13 │ │ +0016ce: 9002 0215 |006f: add-int v2, v2, v21 │ │ +0016d2: d803 0301 |0071: add-int/lit8 v3, v3, #int 1 // #01 │ │ +0016d6: d80d 0d01 |0073: add-int/lit8 v13, v13, #int 1 // #01 │ │ +0016da: 28df |0075: goto 0054 // -0021 │ │ +0016dc: 3d03 9500 |0076: if-lez v3, 010b // +0095 │ │ +0016e0: 9310 0203 |0078: div-int v16, v2, v3 │ │ +0016e4: 7100 3c00 0000 |007a: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$200:()Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // method@003c │ │ +0016ea: 0c0f |007d: move-result-object v15 │ │ +0016ec: 0200 1000 |007e: move/from16 v0, v16 │ │ +0016f0: 350e 8f00 |0080: if-ge v14, v0, 010f // +008f │ │ +0016f4: 620f 0500 |0082: sget-object v15, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.RED:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@0005 │ │ +0016f8: 7100 3c00 0000 |0084: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$200:()Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // method@003c │ │ +0016fe: 0c15 |0087: move-result-object v21 │ │ +001700: 0800 1500 |0088: move-object/from16 v0, v21 │ │ +001704: 320f 0500 |008a: if-eq v15, v0, 008f // +0005 │ │ +001708: 7100 4000 0000 |008c: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$308:()D // method@0040 │ │ +00170e: 7100 4100 0000 |008f: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$400:()I // method@0041 │ │ +001714: 0a15 |0092: move-result v21 │ │ +001716: 1316 0400 |0093: const/16 v22, #int 4 // #4 │ │ +00171a: 0200 1500 |0095: move/from16 v0, v21 │ │ +00171e: 0201 1600 |0097: move/from16 v1, v22 │ │ +001722: 3310 0700 |0099: if-ne v0, v1, 00a0 // +0007 │ │ +001726: 1315 0000 |009b: const/16 v21, #int 0 // #0 │ │ +00172a: 7701 4200 1500 |009d: invoke-static/range {v21}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$402:(I)I // method@0042 │ │ +001730: 7100 3700 0000 |00a0: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$100:()[I // method@0037 │ │ +001736: 0c15 |00a3: move-result-object v21 │ │ +001738: 7100 4100 0000 |00a4: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$400:()I // method@0041 │ │ +00173e: 0a16 |00a7: move-result v22 │ │ +001740: 4b0e 1516 |00a8: aput v14, v21, v22 │ │ +001744: 7100 4300 0000 |00aa: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$408:()I // method@0043 │ │ +00174a: 7100 3c00 0000 |00ad: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$200:()Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // method@003c │ │ +001750: 0c15 |00b0: move-result-object v21 │ │ +001752: 0800 1500 |00b1: move-object/from16 v0, v21 │ │ +001756: 320f 0c00 |00b3: if-eq v15, v0, 00bf // +000c │ │ +00175a: 7110 3d00 0f00 |00b5: invoke-static {v15}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$202:(Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;)Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // method@003d │ │ +001760: 7100 4400 0000 |00b8: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$500:()Landroid/view/View; // method@0044 │ │ +001766: 0c15 |00bb: move-result-object v21 │ │ +001768: 7401 2700 1500 |00bc: invoke-virtual/range {v21}, Landroid/view/View;.postInvalidate:()V // method@0027 │ │ +00176e: 7100 6e00 0000 |00bf: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@006e │ │ +001774: 0b0a |00c2: move-result-wide v10 │ │ +001776: 7100 4500 0000 |00c3: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$600:()J // method@0045 │ │ +00177c: 0b16 |00c6: move-result-wide v22 │ │ +00177e: 9c16 0a16 |00c7: sub-long v22, v10, v22 │ │ +001782: 0500 1600 |00c9: move-wide/from16 v0, v22 │ │ +001786: 8600 |00cb: long-to-double v0, v0 │ │ +001788: 0516 0000 |00cc: move-wide/from16 v22, v0 │ │ +00178c: 1818 0000 0000 0040 8f40 |00ce: const-wide v24, #double 1000 // #408f400000000000 │ │ +001796: ae12 1618 |00d3: div-double v18, v22, v24 │ │ +00179a: 1916 2440 |00d5: const-wide/high16 v22, #long 4621819117588971520 // #4024 │ │ +00179e: 2f15 1216 |00d7: cmpl-double v21, v18, v22 │ │ +0017a2: 3a15 9a00 |00d9: if-ltz v21, 0173 // +009a │ │ +0017a6: 7100 3e00 0000 |00db: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$300:()D // method@003e │ │ +0017ac: 0b16 |00de: move-result-wide v22 │ │ +0017ae: ae08 1612 |00df: div-double v8, v22, v18 │ │ +0017b2: 1916 4e40 |00e1: const-wide/high16 v22, #long 4633641066610819072 // #404e │ │ +0017b6: ad16 1608 |00e3: mul-double v22, v22, v8 │ │ +0017ba: 0500 1600 |00e5: move-wide/from16 v0, v22 │ │ +0017be: 8a07 |00e7: double-to-int v7, v0 │ │ +0017c0: 1315 1e00 |00e8: const/16 v21, #int 30 // #1e │ │ +0017c4: 0200 1500 |00ea: move/from16 v0, v21 │ │ +0017c8: 3407 0800 |00ec: if-lt v7, v0, 00f4 // +0008 │ │ +0017cc: 1315 b400 |00ee: const/16 v21, #int 180 // #b4 │ │ +0017d0: 0200 1500 |00f0: move/from16 v0, v21 │ │ +0017d4: 3707 2500 |00f2: if-le v7, v0, 0117 // +0025 │ │ +0017d8: 7100 6e00 0000 |00f4: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@006e │ │ +0017de: 0b16 |00f7: move-result-wide v22 │ │ +0017e0: 7702 4600 1600 |00f8: invoke-static/range {v22, v23}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$602:(J)J // method@0046 │ │ +0017e6: 1616 0000 |00fb: const-wide/16 v22, #int 0 // #0 │ │ +0017ea: 7702 3f00 1600 |00fd: invoke-static/range {v22, v23}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$302:(D)D // method@003f │ │ +0017f0: 7100 3600 0000 |0100: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$000:()Ljava/util/concurrent/atomic/AtomicBoolean; // method@0036 │ │ +0017f6: 0c15 |0103: move-result-object v21 │ │ +0017f8: 1316 0000 |0104: const/16 v22, #int 0 // #0 │ │ +0017fc: 7402 7400 1500 |0106: invoke-virtual/range {v21, v22}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@0074 │ │ +001802: 2900 1dff |0109: goto/16 0026 // -00e3 │ │ +001806: 1310 0000 |010b: const/16 v16, #int 0 // #0 │ │ +00180a: 2900 6dff |010d: goto/16 007a // -0093 │ │ +00180e: 0200 1000 |010f: move/from16 v0, v16 │ │ +001812: 370e 7eff |0111: if-le v14, v0, 008f // -0082 │ │ +001816: 620f 0400 |0113: sget-object v15, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.GREEN:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@0004 │ │ +00181a: 2900 7aff |0115: goto/16 008f // -0086 │ │ +00181e: 7100 4700 0000 |0117: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$700:()I // method@0047 │ │ +001824: 0a15 |011a: move-result v21 │ │ +001826: 1316 0300 |011b: const/16 v22, #int 3 // #3 │ │ +00182a: 0200 1500 |011d: move/from16 v0, v21 │ │ +00182e: 0201 1600 |011f: move/from16 v1, v22 │ │ +001832: 3310 0700 |0121: if-ne v0, v1, 0128 // +0007 │ │ +001836: 1315 0000 |0123: const/16 v21, #int 0 // #0 │ │ +00183a: 7701 4800 1500 |0125: invoke-static/range {v21}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$702:(I)I // method@0048 │ │ +001840: 7100 4a00 0000 |0128: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$800:()[I // method@004a │ │ +001846: 0c15 |012b: move-result-object v21 │ │ +001848: 7100 4700 0000 |012c: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$700:()I // method@0047 │ │ +00184e: 0a16 |012f: move-result v22 │ │ +001850: 4b07 1516 |0130: aput v7, v21, v22 │ │ +001854: 7100 4900 0000 |0132: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$708:()I // method@0049 │ │ +00185a: 1204 |0135: const/4 v4, #int 0 // #0 │ │ +00185c: 1205 |0136: const/4 v5, #int 0 // #0 │ │ +00185e: 120d |0137: const/4 v13, #int 0 // #0 │ │ +001860: 7100 4a00 0000 |0138: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$800:()[I // method@004a │ │ +001866: 0c15 |013b: move-result-object v21 │ │ +001868: 0800 1500 |013c: move-object/from16 v0, v21 │ │ +00186c: 2100 |013e: array-length v0, v0 │ │ +00186e: 0215 0000 |013f: move/from16 v21, v0 │ │ +001872: 0200 1500 |0141: move/from16 v0, v21 │ │ +001876: 350d 1700 |0143: if-ge v13, v0, 015a // +0017 │ │ +00187a: 7100 4a00 0000 |0145: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$800:()[I // method@004a │ │ +001880: 0c15 |0148: move-result-object v21 │ │ +001882: 4415 150d |0149: aget v21, v21, v13 │ │ +001886: 3d15 0c00 |014b: if-lez v21, 0157 // +000c │ │ +00188a: 7100 4a00 0000 |014d: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$800:()[I // method@004a │ │ +001890: 0c15 |0150: move-result-object v21 │ │ +001892: 4415 150d |0151: aget v21, v21, v13 │ │ +001896: 9004 0415 |0153: add-int v4, v4, v21 │ │ +00189a: d805 0501 |0155: add-int/lit8 v5, v5, #int 1 // #01 │ │ +00189e: d80d 0d01 |0157: add-int/lit8 v13, v13, #int 1 // #01 │ │ +0018a2: 28df |0159: goto 0138 // -0021 │ │ +0018a4: 9306 0405 |015a: div-int v6, v4, v5 │ │ +0018a8: 7100 4b00 0000 |015c: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$900:()Landroid/widget/TextView; // method@004b │ │ +0018ae: 0c15 |015f: move-result-object v21 │ │ +0018b0: 7110 6900 0600 |0160: invoke-static {v6}, Ljava/lang/String;.valueOf:(I)Ljava/lang/String; // method@0069 │ │ +0018b6: 0c16 |0163: move-result-object v22 │ │ +0018b8: 7402 2800 1500 |0164: invoke-virtual/range {v21, v22}, Landroid/widget/TextView;.setText:(Ljava/lang/CharSequence;)V // method@0028 │ │ +0018be: 7100 6e00 0000 |0167: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@006e │ │ +0018c4: 0b16 |016a: move-result-wide v22 │ │ +0018c6: 7702 4600 1600 |016b: invoke-static/range {v22, v23}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$602:(J)J // method@0046 │ │ +0018cc: 1616 0000 |016e: const-wide/16 v22, #int 0 // #0 │ │ +0018d0: 7702 3f00 1600 |0170: invoke-static/range {v22, v23}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$302:(D)D // method@003f │ │ +0018d6: 7100 3600 0000 |0173: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$000:()Ljava/util/concurrent/atomic/AtomicBoolean; // method@0036 │ │ +0018dc: 0c15 |0176: move-result-object v21 │ │ +0018de: 1316 0000 |0177: const/16 v22, #int 0 // #0 │ │ +0018e2: 7402 7400 1500 |0179: invoke-virtual/range {v21, v22}, Ljava/util/concurrent/atomic/AtomicBoolean;.set:(Z)V // method@0074 │ │ +0018e8: 2900 aafe |017c: goto/16 0026 // -0156 │ │ + catches : (none) │ │ + positions : │ │ + 0x0000 line=123 │ │ + 0x0008 line=124 │ │ + 0x0010 line=125 │ │ + 0x0018 line=127 │ │ + 0x0026 line=203 │ │ + 0x0027 line=129 │ │ + 0x002d line=130 │ │ + 0x0031 line=132 │ │ + 0x003f line=134 │ │ + 0x0047 line=135 │ │ + 0x0051 line=139 │ │ + 0x0052 line=140 │ │ + 0x0053 line=141 │ │ + 0x0061 line=142 │ │ + 0x0069 line=143 │ │ + 0x0071 line=144 │ │ + 0x0073 line=141 │ │ + 0x0076 line=148 │ │ + 0x007a line=149 │ │ + 0x007e line=150 │ │ + 0x0082 line=151 │ │ + 0x0084 line=152 │ │ + 0x008c line=153 │ │ + 0x008f line=160 │ │ + 0x00a0 line=161 │ │ + 0x00aa line=162 │ │ + 0x00ad line=165 │ │ + 0x00b5 line=166 │ │ + 0x00b8 line=167 │ │ + 0x00bf line=170 │ │ + 0x00c3 line=171 │ │ + 0x00d5 line=172 │ │ + 0x00db line=173 │ │ + 0x00e1 line=174 │ │ + 0x00e8 line=175 │ │ + 0x00f4 line=176 │ │ + 0x00fb line=177 │ │ + 0x0100 line=178 │ │ + 0x010b line=148 │ │ + 0x010f line=156 │ │ + 0x0113 line=157 │ │ + 0x0117 line=185 │ │ + 0x0128 line=186 │ │ + 0x0132 line=187 │ │ + 0x0135 line=189 │ │ + 0x0136 line=190 │ │ + 0x0137 line=191 │ │ + 0x0145 line=192 │ │ + 0x014d line=193 │ │ + 0x0155 line=194 │ │ + 0x0157 line=191 │ │ + 0x015a line=197 │ │ + 0x015c line=198 │ │ + 0x0167 line=199 │ │ + 0x016e line=200 │ │ + 0x0173 line=202 │ │ locals : │ │ - 0x00e1 - 0x010b reg=7 bps D │ │ - 0x00e8 - 0x010b reg=9 dpm I │ │ + 0x00e8 - 0x010b reg=7 dpm I │ │ + 0x00e1 - 0x010b reg=8 bps D │ │ 0x00c3 - 0x010b reg=10 endTime J │ │ 0x007e - 0x010b reg=15 newType Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ 0x007a - 0x010b reg=16 rollingAverage I │ │ 0x00d5 - 0x010b reg=18 totalTimeInSecs D │ │ 0x0136 - 0x0173 reg=4 beatsArrayAvg I │ │ 0x0137 - 0x0173 reg=5 beatsArrayCnt I │ │ 0x015c - 0x0173 reg=6 beatsAvg I │ │ - 0x0117 - 0x0173 reg=7 bps D │ │ - 0x0117 - 0x0173 reg=9 dpm I │ │ + 0x0117 - 0x0173 reg=7 dpm I │ │ + 0x0117 - 0x0173 reg=8 bps D │ │ 0x0052 - 0x017e reg=2 averageArrayAvg I │ │ 0x0053 - 0x017e reg=3 averageArrayCnt I │ │ 0x0117 - 0x017e reg=10 endTime J │ │ 0x0031 - 0x017e reg=12 height I │ │ 0x0054 - 0x017e reg=13 i I │ │ 0x003f - 0x017e reg=14 imgAvg I │ │ 0x010f - 0x017e reg=15 newType Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ 0x010f - 0x017e reg=16 rollingAverage I │ │ 0x0010 - 0x017e reg=17 size Landroid/hardware/Camera$Size; │ │ 0x0117 - 0x017e reg=18 totalTimeInSecs D │ │ 0x002d - 0x017e reg=20 width I │ │ - 0x0000 - 0x017e reg=25 this Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$1; │ │ - 0x0000 - 0x017e reg=26 data [B │ │ - 0x0000 - 0x017e reg=27 cam Landroid/hardware/Camera; │ │ + 0x0000 - 0x017e reg=26 this Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$1; │ │ + 0x0000 - 0x017e reg=27 data [B │ │ + 0x0000 - 0x017e reg=28 cam Landroid/hardware/Camera; │ │ │ │ source_file_idx : 19 (HeartRateMonitor.java) │ │ │ │ Class #4 header: │ │ class_idx : 32 │ │ access_flags : 16 (0x0010) │ │ superclass_idx : 51 │ │ @@ -489,82 +489,82 @@ │ │ type : '()V' │ │ access : 0x10000 (CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -001844: |[001844] com.jwetherell.heart_rate_monitor.HeartRateMonitor$2.:()V │ │ -001854: 7010 6800 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@0068 │ │ -00185a: 0e00 |0003: return-void │ │ +0018ec: |[0018ec] com.jwetherell.heart_rate_monitor.HeartRateMonitor$2.:()V │ │ +0018fc: 7010 6800 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@0068 │ │ +001902: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ - 0x0000 line=199 │ │ + 0x0000 line=206 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$2; │ │ │ │ Virtual methods - │ │ #0 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$2;) │ │ name : 'surfaceChanged' │ │ type : '(Landroid/view/SurfaceHolder;III)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 10 │ │ ins : 5 │ │ outs : 3 │ │ insns size : 79 16-bit code units │ │ -00185c: |[00185c] com.jwetherell.heart_rate_monitor.HeartRateMonitor$2.surfaceChanged:(Landroid/view/SurfaceHolder;III)V │ │ -00186c: 7100 3900 0000 |0000: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$1100:()Landroid/hardware/Camera; // method@0039 │ │ -001872: 0c02 |0003: move-result-object v2 │ │ -001874: 6e10 1300 0200 |0004: invoke-virtual {v2}, Landroid/hardware/Camera;.getParameters:()Landroid/hardware/Camera$Parameters; // method@0013 │ │ -00187a: 0c00 |0007: move-result-object v0 │ │ -00187c: 1a02 1e01 |0008: const-string v2, "torch" // string@011e │ │ -001880: 6e20 1100 2000 |000a: invoke-virtual {v0, v2}, Landroid/hardware/Camera$Parameters;.setFlashMode:(Ljava/lang/String;)V // method@0011 │ │ -001886: 7130 3b00 9800 |000d: invoke-static {v8, v9, v0}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$1300:(IILandroid/hardware/Camera$Parameters;)Landroid/hardware/Camera$Size; // method@003b │ │ -00188c: 0c01 |0010: move-result-object v1 │ │ -00188e: 3801 2f00 |0011: if-eqz v1, 0040 // +002f │ │ -001892: 5212 0100 |0013: iget v2, v1, Landroid/hardware/Camera$Size;.width:I // field@0001 │ │ -001896: 5213 0000 |0015: iget v3, v1, Landroid/hardware/Camera$Size;.height:I // field@0000 │ │ -00189a: 6e30 1200 2003 |0017: invoke-virtual {v0, v2, v3}, Landroid/hardware/Camera$Parameters;.setPreviewSize:(II)V // method@0012 │ │ -0018a0: 1a02 1200 |001a: const-string v2, "HeartRateMonitor" // string@0012 │ │ -0018a4: 2203 3500 |001c: new-instance v3, Ljava/lang/StringBuilder; // type@0035 │ │ -0018a8: 7010 6a00 0300 |001e: invoke-direct {v3}, Ljava/lang/StringBuilder;.:()V // method@006a │ │ -0018ae: 1a04 6b00 |0021: const-string v4, "Using width=" // string@006b │ │ -0018b2: 6e20 6c00 4300 |0023: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@006c │ │ -0018b8: 0c03 |0026: move-result-object v3 │ │ -0018ba: 5214 0100 |0027: iget v4, v1, Landroid/hardware/Camera$Size;.width:I // field@0001 │ │ -0018be: 6e20 6b00 4300 |0029: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@006b │ │ -0018c4: 0c03 |002c: move-result-object v3 │ │ -0018c6: 1a04 0000 |002d: const-string v4, " height=" // string@0000 │ │ -0018ca: 6e20 6c00 4300 |002f: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@006c │ │ -0018d0: 0c03 |0032: move-result-object v3 │ │ -0018d2: 5214 0000 |0033: iget v4, v1, Landroid/hardware/Camera$Size;.height:I // field@0000 │ │ -0018d6: 6e20 6b00 4300 |0035: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@006b │ │ -0018dc: 0c03 |0038: move-result-object v3 │ │ -0018de: 6e10 6d00 0300 |0039: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@006d │ │ -0018e4: 0c03 |003c: move-result-object v3 │ │ -0018e6: 7120 1e00 3200 |003d: invoke-static {v2, v3}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@001e │ │ -0018ec: 7100 3900 0000 |0040: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$1100:()Landroid/hardware/Camera; // method@0039 │ │ -0018f2: 0c02 |0043: move-result-object v2 │ │ -0018f4: 6e20 1600 0200 |0044: invoke-virtual {v2, v0}, Landroid/hardware/Camera;.setParameters:(Landroid/hardware/Camera$Parameters;)V // method@0016 │ │ -0018fa: 7100 3900 0000 |0047: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$1100:()Landroid/hardware/Camera; // method@0039 │ │ -001900: 0c02 |004a: move-result-object v2 │ │ -001902: 6e10 1900 0200 |004b: invoke-virtual {v2}, Landroid/hardware/Camera;.startPreview:()V // method@0019 │ │ -001908: 0e00 |004e: return-void │ │ - catches : (none) │ │ - positions : │ │ - 0x0000 line=218 │ │ - 0x0008 line=219 │ │ - 0x000d line=220 │ │ - 0x0011 line=221 │ │ - 0x0013 line=222 │ │ - 0x001a line=223 │ │ - 0x0040 line=225 │ │ - 0x0047 line=226 │ │ - 0x004e line=227 │ │ +001904: |[001904] com.jwetherell.heart_rate_monitor.HeartRateMonitor$2.surfaceChanged:(Landroid/view/SurfaceHolder;III)V │ │ +001914: 7100 3900 0000 |0000: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$1100:()Landroid/hardware/Camera; // method@0039 │ │ +00191a: 0c02 |0003: move-result-object v2 │ │ +00191c: 6e10 1300 0200 |0004: invoke-virtual {v2}, Landroid/hardware/Camera;.getParameters:()Landroid/hardware/Camera$Parameters; // method@0013 │ │ +001922: 0c00 |0007: move-result-object v0 │ │ +001924: 1a02 1d01 |0008: const-string v2, "torch" // string@011d │ │ +001928: 6e20 1100 2000 |000a: invoke-virtual {v0, v2}, Landroid/hardware/Camera$Parameters;.setFlashMode:(Ljava/lang/String;)V // method@0011 │ │ +00192e: 7130 3b00 9800 |000d: invoke-static {v8, v9, v0}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$1300:(IILandroid/hardware/Camera$Parameters;)Landroid/hardware/Camera$Size; // method@003b │ │ +001934: 0c01 |0010: move-result-object v1 │ │ +001936: 3801 2f00 |0011: if-eqz v1, 0040 // +002f │ │ +00193a: 5212 0100 |0013: iget v2, v1, Landroid/hardware/Camera$Size;.width:I // field@0001 │ │ +00193e: 5213 0000 |0015: iget v3, v1, Landroid/hardware/Camera$Size;.height:I // field@0000 │ │ +001942: 6e30 1200 2003 |0017: invoke-virtual {v0, v2, v3}, Landroid/hardware/Camera$Parameters;.setPreviewSize:(II)V // method@0012 │ │ +001948: 1a02 1200 |001a: const-string v2, "HeartRateMonitor" // string@0012 │ │ +00194c: 2203 3500 |001c: new-instance v3, Ljava/lang/StringBuilder; // type@0035 │ │ +001950: 7010 6a00 0300 |001e: invoke-direct {v3}, Ljava/lang/StringBuilder;.:()V // method@006a │ │ +001956: 1a04 6b00 |0021: const-string v4, "Using width=" // string@006b │ │ +00195a: 6e20 6c00 4300 |0023: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@006c │ │ +001960: 0c03 |0026: move-result-object v3 │ │ +001962: 5214 0100 |0027: iget v4, v1, Landroid/hardware/Camera$Size;.width:I // field@0001 │ │ +001966: 6e20 6b00 4300 |0029: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@006b │ │ +00196c: 0c03 |002c: move-result-object v3 │ │ +00196e: 1a04 0000 |002d: const-string v4, " height=" // string@0000 │ │ +001972: 6e20 6c00 4300 |002f: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@006c │ │ +001978: 0c03 |0032: move-result-object v3 │ │ +00197a: 5214 0000 |0033: iget v4, v1, Landroid/hardware/Camera$Size;.height:I // field@0000 │ │ +00197e: 6e20 6b00 4300 |0035: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@006b │ │ +001984: 0c03 |0038: move-result-object v3 │ │ +001986: 6e10 6d00 0300 |0039: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@006d │ │ +00198c: 0c03 |003c: move-result-object v3 │ │ +00198e: 7120 1e00 3200 |003d: invoke-static {v2, v3}, Landroid/util/Log;.d:(Ljava/lang/String;Ljava/lang/String;)I // method@001e │ │ +001994: 7100 3900 0000 |0040: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$1100:()Landroid/hardware/Camera; // method@0039 │ │ +00199a: 0c02 |0043: move-result-object v2 │ │ +00199c: 6e20 1600 0200 |0044: invoke-virtual {v2, v0}, Landroid/hardware/Camera;.setParameters:(Landroid/hardware/Camera$Parameters;)V // method@0016 │ │ +0019a2: 7100 3900 0000 |0047: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$1100:()Landroid/hardware/Camera; // method@0039 │ │ +0019a8: 0c02 |004a: move-result-object v2 │ │ +0019aa: 6e10 1900 0200 |004b: invoke-virtual {v2}, Landroid/hardware/Camera;.startPreview:()V // method@0019 │ │ +0019b0: 0e00 |004e: return-void │ │ + catches : (none) │ │ + positions : │ │ + 0x0000 line=226 │ │ + 0x0008 line=227 │ │ + 0x000d line=228 │ │ + 0x0011 line=229 │ │ + 0x0013 line=230 │ │ + 0x001a line=231 │ │ + 0x0040 line=233 │ │ + 0x0047 line=234 │ │ + 0x004e line=235 │ │ locals : │ │ 0x0008 - 0x004f reg=0 parameters Landroid/hardware/Camera$Parameters; │ │ 0x0011 - 0x004f reg=1 size Landroid/hardware/Camera$Size; │ │ 0x0000 - 0x004f reg=5 this Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$2; │ │ 0x0000 - 0x004f reg=6 holder Landroid/view/SurfaceHolder; │ │ 0x0000 - 0x004f reg=7 format I │ │ 0x0000 - 0x004f reg=8 width I │ │ @@ -575,59 +575,59 @@ │ │ type : '(Landroid/view/SurfaceHolder;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 5 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 32 16-bit code units │ │ -00190c: |[00190c] com.jwetherell.heart_rate_monitor.HeartRateMonitor$2.surfaceCreated:(Landroid/view/SurfaceHolder;)V │ │ -00191c: 7100 3900 0000 |0000: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$1100:()Landroid/hardware/Camera; // method@0039 │ │ -001922: 0c01 |0003: move-result-object v1 │ │ -001924: 7100 3800 0000 |0004: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$1000:()Landroid/view/SurfaceHolder; // method@0038 │ │ -00192a: 0c02 |0007: move-result-object v2 │ │ -00192c: 6e20 1800 2100 |0008: invoke-virtual {v1, v2}, Landroid/hardware/Camera;.setPreviewDisplay:(Landroid/view/SurfaceHolder;)V // method@0018 │ │ -001932: 7100 3900 0000 |000b: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$1100:()Landroid/hardware/Camera; // method@0039 │ │ -001938: 0c01 |000e: move-result-object v1 │ │ -00193a: 7100 3a00 0000 |000f: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$1200:()Landroid/hardware/Camera$PreviewCallback; // method@003a │ │ -001940: 0c02 |0012: move-result-object v2 │ │ -001942: 6e20 1700 2100 |0013: invoke-virtual {v1, v2}, Landroid/hardware/Camera;.setPreviewCallback:(Landroid/hardware/Camera$PreviewCallback;)V // method@0017 │ │ -001948: 0e00 |0016: return-void │ │ -00194a: 0d00 |0017: move-exception v0 │ │ -00194c: 1a01 6400 |0018: const-string v1, "PreviewDemo-surfaceCallback" // string@0064 │ │ -001950: 1a02 0e00 |001a: const-string v2, "Exception in setPreviewDisplay()" // string@000e │ │ -001954: 7130 1f00 2100 |001c: invoke-static {v1, v2, v0}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I // method@001f │ │ -00195a: 28f7 |001f: goto 0016 // -0009 │ │ +0019b4: |[0019b4] com.jwetherell.heart_rate_monitor.HeartRateMonitor$2.surfaceCreated:(Landroid/view/SurfaceHolder;)V │ │ +0019c4: 7100 3900 0000 |0000: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$1100:()Landroid/hardware/Camera; // method@0039 │ │ +0019ca: 0c01 |0003: move-result-object v1 │ │ +0019cc: 7100 3800 0000 |0004: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$1000:()Landroid/view/SurfaceHolder; // method@0038 │ │ +0019d2: 0c02 |0007: move-result-object v2 │ │ +0019d4: 6e20 1800 2100 |0008: invoke-virtual {v1, v2}, Landroid/hardware/Camera;.setPreviewDisplay:(Landroid/view/SurfaceHolder;)V // method@0018 │ │ +0019da: 7100 3900 0000 |000b: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$1100:()Landroid/hardware/Camera; // method@0039 │ │ +0019e0: 0c01 |000e: move-result-object v1 │ │ +0019e2: 7100 3a00 0000 |000f: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.access$1200:()Landroid/hardware/Camera$PreviewCallback; // method@003a │ │ +0019e8: 0c02 |0012: move-result-object v2 │ │ +0019ea: 6e20 1700 2100 |0013: invoke-virtual {v1, v2}, Landroid/hardware/Camera;.setPreviewCallback:(Landroid/hardware/Camera$PreviewCallback;)V // method@0017 │ │ +0019f0: 0e00 |0016: return-void │ │ +0019f2: 0d00 |0017: move-exception v0 │ │ +0019f4: 1a01 6400 |0018: const-string v1, "PreviewDemo-surfaceCallback" // string@0064 │ │ +0019f8: 1a02 0e00 |001a: const-string v2, "Exception in setPreviewDisplay()" // string@000e │ │ +0019fc: 7130 1f00 2100 |001c: invoke-static {v1, v2, v0}, Landroid/util/Log;.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I // method@001f │ │ +001a02: 28f7 |001f: goto 0016 // -0009 │ │ catches : 1 │ │ 0x0000 - 0x0016 │ │ Ljava/lang/Throwable; -> 0x0017 │ │ positions : │ │ - 0x0000 line=206 │ │ - 0x000b line=207 │ │ - 0x0016 line=211 │ │ - 0x0017 line=208 │ │ - 0x0018 line=209 │ │ + 0x0000 line=214 │ │ + 0x000b line=215 │ │ + 0x0016 line=219 │ │ + 0x0017 line=216 │ │ + 0x0018 line=217 │ │ locals : │ │ 0x0018 - 0x0020 reg=0 t Ljava/lang/Throwable; │ │ 0x0000 - 0x0020 reg=3 this Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$2; │ │ 0x0000 - 0x0020 reg=4 holder Landroid/view/SurfaceHolder; │ │ │ │ #2 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$2;) │ │ name : 'surfaceDestroyed' │ │ type : '(Landroid/view/SurfaceHolder;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 0 │ │ insns size : 1 16-bit code units │ │ -001968: |[001968] com.jwetherell.heart_rate_monitor.HeartRateMonitor$2.surfaceDestroyed:(Landroid/view/SurfaceHolder;)V │ │ -001978: 0e00 |0000: return-void │ │ +001a10: |[001a10] com.jwetherell.heart_rate_monitor.HeartRateMonitor$2.surfaceDestroyed:(Landroid/view/SurfaceHolder;)V │ │ +001a20: 0e00 |0000: return-void │ │ catches : (none) │ │ positions : │ │ - 0x0000 line=235 │ │ + 0x0000 line=243 │ │ locals : │ │ 0x0000 - 0x0001 reg=0 this Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$2; │ │ 0x0000 - 0x0001 reg=1 holder Landroid/view/SurfaceHolder; │ │ │ │ source_file_idx : 19 (HeartRateMonitor.java) │ │ │ │ Class #5 header: │ │ @@ -673,97 +673,98 @@ │ │ type : '()V' │ │ access : 0x10008 (STATIC CONSTRUCTOR) │ │ code - │ │ registers : 4 │ │ ins : 0 │ │ outs : 3 │ │ insns size : 34 16-bit code units │ │ -00197c: |[00197c] com.jwetherell.heart_rate_monitor.HeartRateMonitor$TYPE.:()V │ │ -00198c: 1213 |0000: const/4 v3, #int 1 // #1 │ │ -00198e: 1202 |0001: const/4 v2, #int 0 // #0 │ │ -001990: 2200 2100 |0002: new-instance v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // type@0021 │ │ -001994: 1a01 1100 |0004: const-string v1, "GREEN" // string@0011 │ │ -001998: 7030 3100 1002 |0006: invoke-direct {v0, v1, v2}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.:(Ljava/lang/String;I)V // method@0031 │ │ -00199e: 6900 0400 |0009: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.GREEN:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@0004 │ │ -0019a2: 2200 2100 |000b: new-instance v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // type@0021 │ │ -0019a6: 1a01 6600 |000d: const-string v1, "RED" // string@0066 │ │ -0019aa: 7030 3100 1003 |000f: invoke-direct {v0, v1, v3}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.:(Ljava/lang/String;I)V // method@0031 │ │ -0019b0: 6900 0500 |0012: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.RED:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@0005 │ │ -0019b4: 1220 |0014: const/4 v0, #int 2 // #2 │ │ -0019b6: 2300 4400 |0015: new-array v0, v0, [Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // type@0044 │ │ -0019ba: 6201 0400 |0017: sget-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.GREEN:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@0004 │ │ -0019be: 4d01 0002 |0019: aput-object v1, v0, v2 │ │ -0019c2: 6201 0500 |001b: sget-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.RED:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@0005 │ │ -0019c6: 4d01 0003 |001d: aput-object v1, v0, v3 │ │ -0019ca: 6900 0300 |001f: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.$VALUES:[Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@0003 │ │ -0019ce: 0e00 |0021: return-void │ │ +001a24: |[001a24] com.jwetherell.heart_rate_monitor.HeartRateMonitor$TYPE.:()V │ │ +001a34: 1213 |0000: const/4 v3, #int 1 // #1 │ │ +001a36: 1202 |0001: const/4 v2, #int 0 // #0 │ │ +001a38: 2200 2100 |0002: new-instance v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // type@0021 │ │ +001a3c: 1a01 1100 |0004: const-string v1, "GREEN" // string@0011 │ │ +001a40: 7030 3100 1002 |0006: invoke-direct {v0, v1, v2}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.:(Ljava/lang/String;I)V // method@0031 │ │ +001a46: 6900 0400 |0009: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.GREEN:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@0004 │ │ +001a4a: 2200 2100 |000b: new-instance v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // type@0021 │ │ +001a4e: 1a01 6600 |000d: const-string v1, "RED" // string@0066 │ │ +001a52: 7030 3100 1003 |000f: invoke-direct {v0, v1, v3}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.:(Ljava/lang/String;I)V // method@0031 │ │ +001a58: 6900 0500 |0012: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.RED:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@0005 │ │ +001a5c: 1220 |0014: const/4 v0, #int 2 // #2 │ │ +001a5e: 2300 4400 |0015: new-array v0, v0, [Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // type@0044 │ │ +001a62: 6201 0400 |0017: sget-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.GREEN:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@0004 │ │ +001a66: 4d01 0002 |0019: aput-object v1, v0, v2 │ │ +001a6a: 6201 0500 |001b: sget-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.RED:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@0005 │ │ +001a6e: 4d01 0003 |001d: aput-object v1, v0, v3 │ │ +001a72: 6900 0300 |001f: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.$VALUES:[Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@0003 │ │ +001a76: 0e00 |0021: return-void │ │ catches : (none) │ │ positions : │ │ - 0x0002 line=42 │ │ + 0x0002 line=44 │ │ + 0x0014 line=43 │ │ locals : │ │ │ │ #1 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;) │ │ name : '' │ │ type : '(Ljava/lang/String;I)V' │ │ access : 0x10002 (PRIVATE CONSTRUCTOR) │ │ code - │ │ registers : 3 │ │ ins : 3 │ │ outs : 3 │ │ insns size : 4 16-bit code units │ │ -0019d0: |[0019d0] com.jwetherell.heart_rate_monitor.HeartRateMonitor$TYPE.:(Ljava/lang/String;I)V │ │ -0019e0: 7030 6500 1002 |0000: invoke-direct {v0, v1, v2}, Ljava/lang/Enum;.:(Ljava/lang/String;I)V // method@0065 │ │ -0019e6: 0e00 |0003: return-void │ │ +001a78: |[001a78] com.jwetherell.heart_rate_monitor.HeartRateMonitor$TYPE.:(Ljava/lang/String;I)V │ │ +001a88: 7030 6500 1002 |0000: invoke-direct {v0, v1, v2}, Ljava/lang/Enum;.:(Ljava/lang/String;I)V // method@0065 │ │ +001a8e: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ - 0x0000 line=42 │ │ + 0x0000 line=43 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ 0x0000 - 0x0004 reg=1 (null) Ljava/lang/String; │ │ 0x0000 - 0x0004 reg=2 (null) I │ │ │ │ #2 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;) │ │ name : 'valueOf' │ │ type : '(Ljava/lang/String;)Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;' │ │ access : 0x0009 (PUBLIC STATIC) │ │ code - │ │ registers : 2 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 9 16-bit code units │ │ -0019e8: |[0019e8] com.jwetherell.heart_rate_monitor.HeartRateMonitor$TYPE.valueOf:(Ljava/lang/String;)Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ -0019f8: 1c00 2100 |0000: const-class v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // type@0021 │ │ -0019fc: 7120 6600 1000 |0002: invoke-static {v0, v1}, Ljava/lang/Enum;.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum; // method@0066 │ │ -001a02: 0c00 |0005: move-result-object v0 │ │ -001a04: 1f00 2100 |0006: check-cast v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // type@0021 │ │ -001a08: 1100 |0008: return-object v0 │ │ +001a90: |[001a90] com.jwetherell.heart_rate_monitor.HeartRateMonitor$TYPE.valueOf:(Ljava/lang/String;)Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ +001aa0: 1c00 2100 |0000: const-class v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // type@0021 │ │ +001aa4: 7120 6600 1000 |0002: invoke-static {v0, v1}, Ljava/lang/Enum;.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum; // method@0066 │ │ +001aaa: 0c00 |0005: move-result-object v0 │ │ +001aac: 1f00 2100 |0006: check-cast v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // type@0021 │ │ +001ab0: 1100 |0008: return-object v0 │ │ catches : (none) │ │ positions : │ │ - 0x0000 line=42 │ │ + 0x0000 line=43 │ │ locals : │ │ 0x0000 - 0x0009 reg=1 name Ljava/lang/String; │ │ │ │ #3 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;) │ │ name : 'values' │ │ type : '()[Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;' │ │ access : 0x0009 (PUBLIC STATIC) │ │ code - │ │ registers : 1 │ │ ins : 0 │ │ outs : 1 │ │ insns size : 9 16-bit code units │ │ -001a0c: |[001a0c] com.jwetherell.heart_rate_monitor.HeartRateMonitor$TYPE.values:()[Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ -001a1c: 6200 0300 |0000: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.$VALUES:[Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@0003 │ │ -001a20: 6e10 7600 0000 |0002: invoke-virtual {v0}, [Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.clone:()Ljava/lang/Object; // method@0076 │ │ -001a26: 0c00 |0005: move-result-object v0 │ │ -001a28: 1f00 4400 |0006: check-cast v0, [Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // type@0044 │ │ -001a2c: 1100 |0008: return-object v0 │ │ +001ab4: |[001ab4] com.jwetherell.heart_rate_monitor.HeartRateMonitor$TYPE.values:()[Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ +001ac4: 6200 0300 |0000: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.$VALUES:[Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@0003 │ │ +001ac8: 6e10 7600 0000 |0002: invoke-virtual {v0}, [Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.clone:()Ljava/lang/Object; // method@0076 │ │ +001ace: 0c00 |0005: move-result-object v0 │ │ +001ad0: 1f00 4400 |0006: check-cast v0, [Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // type@0044 │ │ +001ad4: 1100 |0008: return-object v0 │ │ catches : (none) │ │ positions : │ │ - 0x0000 line=42 │ │ + 0x0000 line=43 │ │ locals : │ │ │ │ Virtual methods - │ │ source_file_idx : 19 (HeartRateMonitor.java) │ │ │ │ Class #6 header: │ │ class_idx : 34 │ │ @@ -875,79 +876,79 @@ │ │ type : '()V' │ │ access : 0x10008 (STATIC CONSTRUCTOR) │ │ code - │ │ registers : 3 │ │ ins : 0 │ │ outs : 2 │ │ insns size : 62 16-bit code units │ │ -001a30: |[001a30] com.jwetherell.heart_rate_monitor.HeartRateMonitor.:()V │ │ -001a40: 1202 |0000: const/4 v2, #int 0 // #0 │ │ -001a42: 1201 |0001: const/4 v1, #int 0 // #0 │ │ -001a44: 2200 3f00 |0002: new-instance v0, Ljava/util/concurrent/atomic/AtomicBoolean; // type@003f │ │ -001a48: 7020 7200 2000 |0004: invoke-direct {v0, v2}, Ljava/util/concurrent/atomic/AtomicBoolean;.:(Z)V // method@0072 │ │ -001a4e: 6900 1400 |0007: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.processing:Ljava/util/concurrent/atomic/AtomicBoolean; // field@0014 │ │ -001a52: 6901 1100 |0009: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.preview:Landroid/view/SurfaceView; // field@0011 │ │ -001a56: 6901 1300 |000b: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.previewHolder:Landroid/view/SurfaceHolder; // field@0013 │ │ -001a5a: 6901 0e00 |000d: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.camera:Landroid/hardware/Camera; // field@000e │ │ -001a5e: 6901 1000 |000f: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.image:Landroid/view/View; // field@0010 │ │ -001a62: 6901 1700 |0011: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.text:Landroid/widget/TextView; // field@0017 │ │ -001a66: 6901 1800 |0013: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.wakeLock:Landroid/os/PowerManager$WakeLock; // field@0018 │ │ -001a6a: 6702 0900 |0015: sput v2, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.averageIndex:I // field@0009 │ │ -001a6e: 1240 |0017: const/4 v0, #int 4 // #4 │ │ -001a70: 2300 4300 |0018: new-array v0, v0, [I // type@0043 │ │ -001a74: 6900 0700 |001a: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.averageArray:[I // field@0007 │ │ -001a78: 6200 0400 |001c: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.GREEN:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@0004 │ │ -001a7c: 6900 0f00 |001e: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.currentType:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@000f │ │ -001a80: 6702 0d00 |0020: sput v2, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beatsIndex:I // field@000d │ │ -001a84: 1230 |0022: const/4 v0, #int 3 // #3 │ │ -001a86: 2300 4300 |0023: new-array v0, v0, [I // type@0043 │ │ -001a8a: 6900 0b00 |0025: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beatsArray:[I // field@000b │ │ -001a8e: 1600 0000 |0027: const-wide/16 v0, #int 0 // #0 │ │ -001a92: 6800 0a00 |0029: sput-wide v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beats:D // field@000a │ │ -001a96: 1600 0000 |002b: const-wide/16 v0, #int 0 // #0 │ │ -001a9a: 6800 1500 |002d: sput-wide v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.startTime:J // field@0015 │ │ -001a9e: 2200 1f00 |002f: new-instance v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$1; // type@001f │ │ -001aa2: 7010 2a00 0000 |0031: invoke-direct {v0}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$1;.:()V // method@002a │ │ -001aa8: 6900 1200 |0034: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.previewCallback:Landroid/hardware/Camera$PreviewCallback; // field@0012 │ │ -001aac: 2200 2000 |0036: new-instance v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$2; // type@0020 │ │ -001ab0: 7010 2c00 0000 |0038: invoke-direct {v0}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$2;.:()V // method@002c │ │ -001ab6: 6900 1600 |003b: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.surfaceCallback:Landroid/view/SurfaceHolder$Callback; // field@0016 │ │ -001aba: 0e00 |003d: return-void │ │ - catches : (none) │ │ - positions : │ │ - 0x0002 line=28 │ │ - 0x0009 line=30 │ │ - 0x000b line=31 │ │ - 0x000d line=32 │ │ - 0x000f line=33 │ │ - 0x0011 line=34 │ │ - 0x0013 line=36 │ │ - 0x0015 line=38 │ │ - 0x0017 line=40 │ │ - 0x001c line=43 │ │ - 0x0020 line=48 │ │ - 0x0022 line=50 │ │ - 0x0027 line=51 │ │ - 0x002b line=52 │ │ - 0x002f line=111 │ │ - 0x0036 line=199 │ │ +001ad8: |[001ad8] com.jwetherell.heart_rate_monitor.HeartRateMonitor.:()V │ │ +001ae8: 1202 |0000: const/4 v2, #int 0 // #0 │ │ +001aea: 1201 |0001: const/4 v1, #int 0 // #0 │ │ +001aec: 2200 3f00 |0002: new-instance v0, Ljava/util/concurrent/atomic/AtomicBoolean; // type@003f │ │ +001af0: 7020 7200 2000 |0004: invoke-direct {v0, v2}, Ljava/util/concurrent/atomic/AtomicBoolean;.:(Z)V // method@0072 │ │ +001af6: 6900 1400 |0007: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.processing:Ljava/util/concurrent/atomic/AtomicBoolean; // field@0014 │ │ +001afa: 6901 1100 |0009: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.preview:Landroid/view/SurfaceView; // field@0011 │ │ +001afe: 6901 1300 |000b: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.previewHolder:Landroid/view/SurfaceHolder; // field@0013 │ │ +001b02: 6901 0e00 |000d: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.camera:Landroid/hardware/Camera; // field@000e │ │ +001b06: 6901 1000 |000f: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.image:Landroid/view/View; // field@0010 │ │ +001b0a: 6901 1700 |0011: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.text:Landroid/widget/TextView; // field@0017 │ │ +001b0e: 6901 1800 |0013: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.wakeLock:Landroid/os/PowerManager$WakeLock; // field@0018 │ │ +001b12: 6702 0900 |0015: sput v2, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.averageIndex:I // field@0009 │ │ +001b16: 1240 |0017: const/4 v0, #int 4 // #4 │ │ +001b18: 2300 4300 |0018: new-array v0, v0, [I // type@0043 │ │ +001b1c: 6900 0700 |001a: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.averageArray:[I // field@0007 │ │ +001b20: 6200 0400 |001c: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.GREEN:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@0004 │ │ +001b24: 6900 0f00 |001e: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.currentType:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@000f │ │ +001b28: 6702 0d00 |0020: sput v2, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beatsIndex:I // field@000d │ │ +001b2c: 1230 |0022: const/4 v0, #int 3 // #3 │ │ +001b2e: 2300 4300 |0023: new-array v0, v0, [I // type@0043 │ │ +001b32: 6900 0b00 |0025: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beatsArray:[I // field@000b │ │ +001b36: 1600 0000 |0027: const-wide/16 v0, #int 0 // #0 │ │ +001b3a: 6800 0a00 |0029: sput-wide v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beats:D // field@000a │ │ +001b3e: 1600 0000 |002b: const-wide/16 v0, #int 0 // #0 │ │ +001b42: 6800 1500 |002d: sput-wide v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.startTime:J // field@0015 │ │ +001b46: 2200 1f00 |002f: new-instance v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$1; // type@001f │ │ +001b4a: 7010 2a00 0000 |0031: invoke-direct {v0}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$1;.:()V // method@002a │ │ +001b50: 6900 1200 |0034: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.previewCallback:Landroid/hardware/Camera$PreviewCallback; // field@0012 │ │ +001b54: 2200 2000 |0036: new-instance v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$2; // type@0020 │ │ +001b58: 7010 2c00 0000 |0038: invoke-direct {v0}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$2;.:()V // method@002c │ │ +001b5e: 6900 1600 |003b: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.surfaceCallback:Landroid/view/SurfaceHolder$Callback; // field@0016 │ │ +001b62: 0e00 |003d: return-void │ │ + catches : (none) │ │ + positions : │ │ + 0x0002 line=29 │ │ + 0x0009 line=31 │ │ + 0x000b line=32 │ │ + 0x000d line=33 │ │ + 0x000f line=34 │ │ + 0x0011 line=35 │ │ + 0x0013 line=37 │ │ + 0x0015 line=39 │ │ + 0x0017 line=41 │ │ + 0x001c line=47 │ │ + 0x0020 line=53 │ │ + 0x0022 line=55 │ │ + 0x0027 line=56 │ │ + 0x002b line=57 │ │ + 0x002f line=116 │ │ + 0x0036 line=206 │ │ locals : │ │ │ │ #1 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ name : '' │ │ type : '()V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -001abc: |[001abc] com.jwetherell.heart_rate_monitor.HeartRateMonitor.:()V │ │ -001acc: 7010 0200 0000 |0000: invoke-direct {v0}, Landroid/app/Activity;.:()V // method@0002 │ │ -001ad2: 0e00 |0003: return-void │ │ +001b64: |[001b64] com.jwetherell.heart_rate_monitor.HeartRateMonitor.:()V │ │ +001b74: 7010 0200 0000 |0000: invoke-direct {v0}, Landroid/app/Activity;.:()V // method@0002 │ │ +001b7a: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor; │ │ │ │ #2 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ @@ -955,103 +956,103 @@ │ │ type : '()Ljava/util/concurrent/atomic/AtomicBoolean;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -001ad4: |[001ad4] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$000:()Ljava/util/concurrent/atomic/AtomicBoolean; │ │ -001ae4: 6200 1400 |0000: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.processing:Ljava/util/concurrent/atomic/AtomicBoolean; // field@0014 │ │ -001ae8: 1100 |0002: return-object v0 │ │ +001b7c: |[001b7c] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$000:()Ljava/util/concurrent/atomic/AtomicBoolean; │ │ +001b8c: 6200 1400 |0000: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.processing:Ljava/util/concurrent/atomic/AtomicBoolean; // field@0014 │ │ +001b90: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ │ │ #3 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ name : 'access$100' │ │ type : '()[I' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -001aec: |[001aec] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$100:()[I │ │ -001afc: 6200 0700 |0000: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.averageArray:[I // field@0007 │ │ -001b00: 1100 |0002: return-object v0 │ │ +001b94: |[001b94] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$100:()[I │ │ +001ba4: 6200 0700 |0000: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.averageArray:[I // field@0007 │ │ +001ba8: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ │ │ #4 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ name : 'access$1000' │ │ type : '()Landroid/view/SurfaceHolder;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -001b04: |[001b04] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$1000:()Landroid/view/SurfaceHolder; │ │ -001b14: 6200 1300 |0000: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.previewHolder:Landroid/view/SurfaceHolder; // field@0013 │ │ -001b18: 1100 |0002: return-object v0 │ │ +001bac: |[001bac] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$1000:()Landroid/view/SurfaceHolder; │ │ +001bbc: 6200 1300 |0000: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.previewHolder:Landroid/view/SurfaceHolder; // field@0013 │ │ +001bc0: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ │ │ #5 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ name : 'access$1100' │ │ type : '()Landroid/hardware/Camera;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -001b1c: |[001b1c] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$1100:()Landroid/hardware/Camera; │ │ -001b2c: 6200 0e00 |0000: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.camera:Landroid/hardware/Camera; // field@000e │ │ -001b30: 1100 |0002: return-object v0 │ │ +001bc4: |[001bc4] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$1100:()Landroid/hardware/Camera; │ │ +001bd4: 6200 0e00 |0000: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.camera:Landroid/hardware/Camera; // field@000e │ │ +001bd8: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ │ │ #6 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ name : 'access$1200' │ │ type : '()Landroid/hardware/Camera$PreviewCallback;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -001b34: |[001b34] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$1200:()Landroid/hardware/Camera$PreviewCallback; │ │ -001b44: 6200 1200 |0000: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.previewCallback:Landroid/hardware/Camera$PreviewCallback; // field@0012 │ │ -001b48: 1100 |0002: return-object v0 │ │ +001bdc: |[001bdc] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$1200:()Landroid/hardware/Camera$PreviewCallback; │ │ +001bec: 6200 1200 |0000: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.previewCallback:Landroid/hardware/Camera$PreviewCallback; // field@0012 │ │ +001bf0: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ │ │ #7 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ name : 'access$1300' │ │ type : '(IILandroid/hardware/Camera$Parameters;)Landroid/hardware/Camera$Size;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 4 │ │ ins : 3 │ │ outs : 3 │ │ insns size : 5 16-bit code units │ │ -001b4c: |[001b4c] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$1300:(IILandroid/hardware/Camera$Parameters;)Landroid/hardware/Camera$Size; │ │ -001b5c: 7130 4e00 2103 |0000: invoke-static {v1, v2, v3}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.getSmallestPreviewSize:(IILandroid/hardware/Camera$Parameters;)Landroid/hardware/Camera$Size; // method@004e │ │ -001b62: 0c00 |0003: move-result-object v0 │ │ -001b64: 1100 |0004: return-object v0 │ │ +001bf4: |[001bf4] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$1300:(IILandroid/hardware/Camera$Parameters;)Landroid/hardware/Camera$Size; │ │ +001c04: 7130 4e00 2103 |0000: invoke-static {v1, v2, v3}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.getSmallestPreviewSize:(IILandroid/hardware/Camera$Parameters;)Landroid/hardware/Camera$Size; // method@004e │ │ +001c0a: 0c00 |0003: move-result-object v0 │ │ +001c0c: 1100 |0004: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ 0x0000 - 0x0005 reg=1 x0 I │ │ 0x0000 - 0x0005 reg=2 x1 I │ │ 0x0000 - 0x0005 reg=3 x2 Landroid/hardware/Camera$Parameters; │ │ @@ -1061,34 +1062,34 @@ │ │ type : '()Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -001b68: |[001b68] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$200:()Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ -001b78: 6200 0f00 |0000: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.currentType:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@000f │ │ -001b7c: 1100 |0002: return-object v0 │ │ +001c10: |[001c10] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$200:()Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ +001c20: 6200 0f00 |0000: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.currentType:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@000f │ │ +001c24: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ │ │ #9 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ name : 'access$202' │ │ type : '(Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;)Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -001b80: |[001b80] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$202:(Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;)Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ -001b90: 6900 0f00 |0000: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.currentType:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@000f │ │ -001b94: 1100 |0002: return-object v0 │ │ +001c28: |[001c28] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$202:(Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;)Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ +001c38: 6900 0f00 |0000: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.currentType:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@000f │ │ +001c3c: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 x0 Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ │ │ #10 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ @@ -1096,34 +1097,34 @@ │ │ type : '()D' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -001b98: |[001b98] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$300:()D │ │ -001ba8: 6100 0a00 |0000: sget-wide v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beats:D // field@000a │ │ -001bac: 1000 |0002: return-wide v0 │ │ +001c40: |[001c40] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$300:()D │ │ +001c50: 6100 0a00 |0000: sget-wide v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beats:D // field@000a │ │ +001c54: 1000 |0002: return-wide v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ │ │ #11 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ name : 'access$302' │ │ type : '(D)D' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -001bb0: |[001bb0] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$302:(D)D │ │ -001bc0: 6800 0a00 |0000: sput-wide v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beats:D // field@000a │ │ -001bc4: 1000 |0002: return-wide v0 │ │ +001c58: |[001c58] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$302:(D)D │ │ +001c68: 6800 0a00 |0000: sput-wide v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beats:D // field@000a │ │ +001c6c: 1000 |0002: return-wide v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 x0 D │ │ │ │ #12 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ @@ -1131,54 +1132,54 @@ │ │ type : '()D' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 4 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 8 16-bit code units │ │ -001bc8: |[001bc8] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$308:()D │ │ -001bd8: 6100 0a00 |0000: sget-wide v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beats:D // field@000a │ │ -001bdc: 1902 f03f |0002: const-wide/high16 v2, #long 4607182418800017408 // #3ff0 │ │ -001be0: cb02 |0004: add-double/2addr v2, v0 │ │ -001be2: 6802 0a00 |0005: sput-wide v2, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beats:D // field@000a │ │ -001be6: 1000 |0007: return-wide v0 │ │ +001c70: |[001c70] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$308:()D │ │ +001c80: 6100 0a00 |0000: sget-wide v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beats:D // field@000a │ │ +001c84: 1902 f03f |0002: const-wide/high16 v2, #long 4607182418800017408 // #3ff0 │ │ +001c88: cb02 |0004: add-double/2addr v2, v0 │ │ +001c8a: 6802 0a00 |0005: sput-wide v2, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beats:D // field@000a │ │ +001c8e: 1000 |0007: return-wide v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ │ │ #13 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ name : 'access$400' │ │ type : '()I' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -001be8: |[001be8] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$400:()I │ │ -001bf8: 6000 0900 |0000: sget v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.averageIndex:I // field@0009 │ │ -001bfc: 0f00 |0002: return v0 │ │ +001c90: |[001c90] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$400:()I │ │ +001ca0: 6000 0900 |0000: sget v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.averageIndex:I // field@0009 │ │ +001ca4: 0f00 |0002: return v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ │ │ #14 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ name : 'access$402' │ │ type : '(I)I' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -001c00: |[001c00] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$402:(I)I │ │ -001c10: 6700 0900 |0000: sput v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.averageIndex:I // field@0009 │ │ -001c14: 0f00 |0002: return v0 │ │ +001ca8: |[001ca8] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$402:(I)I │ │ +001cb8: 6700 0900 |0000: sput v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.averageIndex:I // field@0009 │ │ +001cbc: 0f00 |0002: return v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 x0 I │ │ │ │ #15 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ @@ -1186,70 +1187,70 @@ │ │ type : '()I' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 7 16-bit code units │ │ -001c18: |[001c18] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$408:()I │ │ -001c28: 6000 0900 |0000: sget v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.averageIndex:I // field@0009 │ │ -001c2c: d801 0001 |0002: add-int/lit8 v1, v0, #int 1 // #01 │ │ -001c30: 6701 0900 |0004: sput v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.averageIndex:I // field@0009 │ │ -001c34: 0f00 |0006: return v0 │ │ +001cc0: |[001cc0] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$408:()I │ │ +001cd0: 6000 0900 |0000: sget v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.averageIndex:I // field@0009 │ │ +001cd4: d801 0001 |0002: add-int/lit8 v1, v0, #int 1 // #01 │ │ +001cd8: 6701 0900 |0004: sput v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.averageIndex:I // field@0009 │ │ +001cdc: 0f00 |0006: return v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ │ │ #16 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ name : 'access$500' │ │ type : '()Landroid/view/View;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -001c38: |[001c38] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$500:()Landroid/view/View; │ │ -001c48: 6200 1000 |0000: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.image:Landroid/view/View; // field@0010 │ │ -001c4c: 1100 |0002: return-object v0 │ │ +001ce0: |[001ce0] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$500:()Landroid/view/View; │ │ +001cf0: 6200 1000 |0000: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.image:Landroid/view/View; // field@0010 │ │ +001cf4: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ │ │ #17 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ name : 'access$600' │ │ type : '()J' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -001c50: |[001c50] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$600:()J │ │ -001c60: 6100 1500 |0000: sget-wide v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.startTime:J // field@0015 │ │ -001c64: 1000 |0002: return-wide v0 │ │ +001cf8: |[001cf8] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$600:()J │ │ +001d08: 6100 1500 |0000: sget-wide v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.startTime:J // field@0015 │ │ +001d0c: 1000 |0002: return-wide v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ │ │ #18 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ name : 'access$602' │ │ type : '(J)J' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -001c68: |[001c68] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$602:(J)J │ │ -001c78: 6800 1500 |0000: sput-wide v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.startTime:J // field@0015 │ │ -001c7c: 1000 |0002: return-wide v0 │ │ +001d10: |[001d10] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$602:(J)J │ │ +001d20: 6800 1500 |0000: sput-wide v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.startTime:J // field@0015 │ │ +001d24: 1000 |0002: return-wide v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 x0 J │ │ │ │ #19 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ @@ -1257,34 +1258,34 @@ │ │ type : '()I' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -001c80: |[001c80] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$700:()I │ │ -001c90: 6000 0d00 |0000: sget v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beatsIndex:I // field@000d │ │ -001c94: 0f00 |0002: return v0 │ │ +001d28: |[001d28] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$700:()I │ │ +001d38: 6000 0d00 |0000: sget v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beatsIndex:I // field@000d │ │ +001d3c: 0f00 |0002: return v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ │ │ #20 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ name : 'access$702' │ │ type : '(I)I' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -001c98: |[001c98] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$702:(I)I │ │ -001ca8: 6700 0d00 |0000: sput v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beatsIndex:I // field@000d │ │ -001cac: 0f00 |0002: return v0 │ │ +001d40: |[001d40] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$702:(I)I │ │ +001d50: 6700 0d00 |0000: sput v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beatsIndex:I // field@000d │ │ +001d54: 0f00 |0002: return v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ 0x0000 - 0x0003 reg=0 x0 I │ │ │ │ #21 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ @@ -1292,281 +1293,280 @@ │ │ type : '()I' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 2 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 7 16-bit code units │ │ -001cb0: |[001cb0] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$708:()I │ │ -001cc0: 6000 0d00 |0000: sget v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beatsIndex:I // field@000d │ │ -001cc4: d801 0001 |0002: add-int/lit8 v1, v0, #int 1 // #01 │ │ -001cc8: 6701 0d00 |0004: sput v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beatsIndex:I // field@000d │ │ -001ccc: 0f00 |0006: return v0 │ │ +001d58: |[001d58] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$708:()I │ │ +001d68: 6000 0d00 |0000: sget v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beatsIndex:I // field@000d │ │ +001d6c: d801 0001 |0002: add-int/lit8 v1, v0, #int 1 // #01 │ │ +001d70: 6701 0d00 |0004: sput v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beatsIndex:I // field@000d │ │ +001d74: 0f00 |0006: return v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ │ │ #22 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ name : 'access$800' │ │ type : '()[I' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -001cd0: |[001cd0] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$800:()[I │ │ -001ce0: 6200 0b00 |0000: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beatsArray:[I // field@000b │ │ -001ce4: 1100 |0002: return-object v0 │ │ +001d78: |[001d78] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$800:()[I │ │ +001d88: 6200 0b00 |0000: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.beatsArray:[I // field@000b │ │ +001d8c: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ │ │ #23 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ name : 'access$900' │ │ type : '()Landroid/widget/TextView;' │ │ access : 0x1008 (STATIC SYNTHETIC) │ │ code - │ │ registers : 1 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -001ce8: |[001ce8] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$900:()Landroid/widget/TextView; │ │ -001cf8: 6200 1700 |0000: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.text:Landroid/widget/TextView; // field@0017 │ │ -001cfc: 1100 |0002: return-object v0 │ │ +001d90: |[001d90] com.jwetherell.heart_rate_monitor.HeartRateMonitor.access$900:()Landroid/widget/TextView; │ │ +001da0: 6200 1700 |0000: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.text:Landroid/widget/TextView; // field@0017 │ │ +001da4: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ 0x0000 line=26 │ │ locals : │ │ │ │ #24 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ name : 'getCurrent' │ │ type : '()Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;' │ │ access : 0x0009 (PUBLIC STATIC) │ │ code - │ │ registers : 1 │ │ ins : 0 │ │ outs : 0 │ │ insns size : 3 16-bit code units │ │ -001d00: |[001d00] com.jwetherell.heart_rate_monitor.HeartRateMonitor.getCurrent:()Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ -001d10: 6200 0f00 |0000: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.currentType:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@000f │ │ -001d14: 1100 |0002: return-object v0 │ │ +001da8: |[001da8] com.jwetherell.heart_rate_monitor.HeartRateMonitor.getCurrent:()Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ +001db8: 6200 0f00 |0000: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.currentType:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@000f │ │ +001dbc: 1100 |0002: return-object v0 │ │ catches : (none) │ │ positions : │ │ - 0x0000 line=45 │ │ + 0x0000 line=50 │ │ locals : │ │ │ │ #25 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ name : 'getSmallestPreviewSize' │ │ type : '(IILandroid/hardware/Camera$Parameters;)Landroid/hardware/Camera$Size;' │ │ access : 0x000a (PRIVATE STATIC) │ │ code - │ │ registers : 10 │ │ ins : 3 │ │ outs : 1 │ │ insns size : 50 16-bit code units │ │ -001d18: |[001d18] com.jwetherell.heart_rate_monitor.HeartRateMonitor.getSmallestPreviewSize:(IILandroid/hardware/Camera$Parameters;)Landroid/hardware/Camera$Size; │ │ -001d28: 1202 |0000: const/4 v2, #int 0 // #0 │ │ -001d2a: 6e10 1000 0900 |0001: invoke-virtual {v9}, Landroid/hardware/Camera$Parameters;.getSupportedPreviewSizes:()Ljava/util/List; // method@0010 │ │ -001d30: 0c05 |0004: move-result-object v5 │ │ -001d32: 7210 7100 0500 |0005: invoke-interface {v5}, Ljava/util/List;.iterator:()Ljava/util/Iterator; // method@0071 │ │ -001d38: 0c00 |0008: move-result-object v0 │ │ -001d3a: 7210 6f00 0000 |0009: invoke-interface {v0}, Ljava/util/Iterator;.hasNext:()Z // method@006f │ │ -001d40: 0a05 |000c: move-result v5 │ │ -001d42: 3805 2400 |000d: if-eqz v5, 0031 // +0024 │ │ -001d46: 7210 7000 0000 |000f: invoke-interface {v0}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0070 │ │ -001d4c: 0c04 |0012: move-result-object v4 │ │ -001d4e: 1f04 1100 |0013: check-cast v4, Landroid/hardware/Camera$Size; // type@0011 │ │ -001d52: 5245 0100 |0015: iget v5, v4, Landroid/hardware/Camera$Size;.width:I // field@0001 │ │ -001d56: 3675 f2ff |0017: if-gt v5, v7, 0009 // -000e │ │ -001d5a: 5245 0000 |0019: iget v5, v4, Landroid/hardware/Camera$Size;.height:I // field@0000 │ │ -001d5e: 3685 eeff |001b: if-gt v5, v8, 0009 // -0012 │ │ -001d62: 3902 0400 |001d: if-nez v2, 0021 // +0004 │ │ -001d66: 0742 |001f: move-object v2, v4 │ │ -001d68: 28e9 |0020: goto 0009 // -0017 │ │ -001d6a: 5225 0100 |0021: iget v5, v2, Landroid/hardware/Camera$Size;.width:I // field@0001 │ │ -001d6e: 5226 0000 |0023: iget v6, v2, Landroid/hardware/Camera$Size;.height:I // field@0000 │ │ -001d72: 9203 0506 |0025: mul-int v3, v5, v6 │ │ -001d76: 5245 0100 |0027: iget v5, v4, Landroid/hardware/Camera$Size;.width:I // field@0001 │ │ -001d7a: 5246 0000 |0029: iget v6, v4, Landroid/hardware/Camera$Size;.height:I // field@0000 │ │ -001d7e: 9201 0506 |002b: mul-int v1, v5, v6 │ │ -001d82: 3531 dcff |002d: if-ge v1, v3, 0009 // -0024 │ │ -001d86: 0742 |002f: move-object v2, v4 │ │ -001d88: 28d9 |0030: goto 0009 // -0027 │ │ -001d8a: 1102 |0031: return-object v2 │ │ - catches : (none) │ │ - positions : │ │ - 0x0000 line=239 │ │ - 0x0001 line=241 │ │ - 0x0015 line=242 │ │ - 0x001d line=243 │ │ - 0x001f line=244 │ │ - 0x0021 line=246 │ │ - 0x0027 line=247 │ │ - 0x002d line=249 │ │ - 0x0031 line=254 │ │ - locals : │ │ - 0x002d - 0x0031 reg=1 newArea I │ │ - 0x0027 - 0x0031 reg=3 resultArea I │ │ - 0x0015 - 0x0031 reg=4 size Landroid/hardware/Camera$Size; │ │ - 0x0009 - 0x0032 reg=0 i$ Ljava/util/Iterator; │ │ - 0x0001 - 0x0032 reg=2 result Landroid/hardware/Camera$Size; │ │ +001dc0: |[001dc0] com.jwetherell.heart_rate_monitor.HeartRateMonitor.getSmallestPreviewSize:(IILandroid/hardware/Camera$Parameters;)Landroid/hardware/Camera$Size; │ │ +001dd0: 1201 |0000: const/4 v1, #int 0 // #0 │ │ +001dd2: 6e10 1000 0900 |0001: invoke-virtual {v9}, Landroid/hardware/Camera$Parameters;.getSupportedPreviewSizes:()Ljava/util/List; // method@0010 │ │ +001dd8: 0c04 |0004: move-result-object v4 │ │ +001dda: 7210 7100 0400 |0005: invoke-interface {v4}, Ljava/util/List;.iterator:()Ljava/util/Iterator; // method@0071 │ │ +001de0: 0c04 |0008: move-result-object v4 │ │ +001de2: 7210 6f00 0400 |0009: invoke-interface {v4}, Ljava/util/Iterator;.hasNext:()Z // method@006f │ │ +001de8: 0a05 |000c: move-result v5 │ │ +001dea: 3805 2400 |000d: if-eqz v5, 0031 // +0024 │ │ +001dee: 7210 7000 0400 |000f: invoke-interface {v4}, Ljava/util/Iterator;.next:()Ljava/lang/Object; // method@0070 │ │ +001df4: 0c03 |0012: move-result-object v3 │ │ +001df6: 1f03 1100 |0013: check-cast v3, Landroid/hardware/Camera$Size; // type@0011 │ │ +001dfa: 5235 0100 |0015: iget v5, v3, Landroid/hardware/Camera$Size;.width:I // field@0001 │ │ +001dfe: 3675 f2ff |0017: if-gt v5, v7, 0009 // -000e │ │ +001e02: 5235 0000 |0019: iget v5, v3, Landroid/hardware/Camera$Size;.height:I // field@0000 │ │ +001e06: 3685 eeff |001b: if-gt v5, v8, 0009 // -0012 │ │ +001e0a: 3901 0400 |001d: if-nez v1, 0021 // +0004 │ │ +001e0e: 0731 |001f: move-object v1, v3 │ │ +001e10: 28e9 |0020: goto 0009 // -0017 │ │ +001e12: 5215 0100 |0021: iget v5, v1, Landroid/hardware/Camera$Size;.width:I // field@0001 │ │ +001e16: 5216 0000 |0023: iget v6, v1, Landroid/hardware/Camera$Size;.height:I // field@0000 │ │ +001e1a: 9202 0506 |0025: mul-int v2, v5, v6 │ │ +001e1e: 5235 0100 |0027: iget v5, v3, Landroid/hardware/Camera$Size;.width:I // field@0001 │ │ +001e22: 5236 0000 |0029: iget v6, v3, Landroid/hardware/Camera$Size;.height:I // field@0000 │ │ +001e26: 9200 0506 |002b: mul-int v0, v5, v6 │ │ +001e2a: 3520 dcff |002d: if-ge v0, v2, 0009 // -0024 │ │ +001e2e: 0731 |002f: move-object v1, v3 │ │ +001e30: 28d9 |0030: goto 0009 // -0027 │ │ +001e32: 1101 |0031: return-object v1 │ │ + catches : (none) │ │ + positions : │ │ + 0x0000 line=247 │ │ + 0x0001 line=249 │ │ + 0x0015 line=250 │ │ + 0x001d line=251 │ │ + 0x001f line=252 │ │ + 0x0021 line=254 │ │ + 0x0027 line=255 │ │ + 0x002d line=257 │ │ + 0x0031 line=262 │ │ + locals : │ │ + 0x002d - 0x0031 reg=0 newArea I │ │ + 0x0027 - 0x0031 reg=2 resultArea I │ │ + 0x0015 - 0x0031 reg=3 size Landroid/hardware/Camera$Size; │ │ + 0x0001 - 0x0032 reg=1 result Landroid/hardware/Camera$Size; │ │ 0x0000 - 0x0032 reg=7 width I │ │ 0x0000 - 0x0032 reg=8 height I │ │ 0x0000 - 0x0032 reg=9 parameters Landroid/hardware/Camera$Parameters; │ │ │ │ Virtual methods - │ │ #0 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ name : 'onConfigurationChanged' │ │ type : '(Landroid/content/res/Configuration;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 2 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 4 16-bit code units │ │ -001d8c: |[001d8c] com.jwetherell.heart_rate_monitor.HeartRateMonitor.onConfigurationChanged:(Landroid/content/res/Configuration;)V │ │ -001d9c: 6f20 0300 1000 |0000: invoke-super {v0, v1}, Landroid/app/Activity;.onConfigurationChanged:(Landroid/content/res/Configuration;)V // method@0003 │ │ -001da2: 0e00 |0003: return-void │ │ +001e34: |[001e34] com.jwetherell.heart_rate_monitor.HeartRateMonitor.onConfigurationChanged:(Landroid/content/res/Configuration;)V │ │ +001e44: 6f20 0300 1000 |0000: invoke-super {v0, v1}, Landroid/app/Activity;.onConfigurationChanged:(Landroid/content/res/Configuration;)V // method@0003 │ │ +001e4a: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ - 0x0000 line=79 │ │ - 0x0003 line=80 │ │ + 0x0000 line=84 │ │ + 0x0003 line=85 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor; │ │ 0x0000 - 0x0004 reg=1 newConfig Landroid/content/res/Configuration; │ │ │ │ #1 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ name : 'onCreate' │ │ type : '(Landroid/os/Bundle;)V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 5 │ │ ins : 2 │ │ outs : 3 │ │ insns size : 79 16-bit code units │ │ -001da4: |[001da4] com.jwetherell.heart_rate_monitor.HeartRateMonitor.onCreate:(Landroid/os/Bundle;)V │ │ -001db4: 6f20 0400 4300 |0000: invoke-super {v3, v4}, Landroid/app/Activity;.onCreate:(Landroid/os/Bundle;)V // method@0004 │ │ -001dba: 1501 037f |0003: const/high16 v1, #int 2130903040 // #7f03 │ │ -001dbe: 6e20 5400 1300 |0005: invoke-virtual {v3, v1}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.setContentView:(I)V // method@0054 │ │ -001dc4: 1401 0400 057f |0008: const v1, #float 1.76787e+38 // #7f050004 │ │ -001dca: 6e20 4c00 1300 |000b: invoke-virtual {v3, v1}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.findViewById:(I)Landroid/view/View; // method@004c │ │ -001dd0: 0c01 |000e: move-result-object v1 │ │ -001dd2: 1f01 1a00 |000f: check-cast v1, Landroid/view/SurfaceView; // type@001a │ │ -001dd6: 6901 1100 |0011: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.preview:Landroid/view/SurfaceView; // field@0011 │ │ -001dda: 6201 1100 |0013: sget-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.preview:Landroid/view/SurfaceView; // field@0011 │ │ -001dde: 6e10 2200 0100 |0015: invoke-virtual {v1}, Landroid/view/SurfaceView;.getHolder:()Landroid/view/SurfaceHolder; // method@0022 │ │ -001de4: 0c01 |0018: move-result-object v1 │ │ -001de6: 6901 1300 |0019: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.previewHolder:Landroid/view/SurfaceHolder; // field@0013 │ │ -001dea: 6201 1300 |001b: sget-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.previewHolder:Landroid/view/SurfaceHolder; // field@0013 │ │ -001dee: 6202 1600 |001d: sget-object v2, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.surfaceCallback:Landroid/view/SurfaceHolder$Callback; // field@0016 │ │ -001df2: 7220 2000 2100 |001f: invoke-interface {v1, v2}, Landroid/view/SurfaceHolder;.addCallback:(Landroid/view/SurfaceHolder$Callback;)V // method@0020 │ │ -001df8: 6201 1300 |0022: sget-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.previewHolder:Landroid/view/SurfaceHolder; // field@0013 │ │ -001dfc: 1232 |0024: const/4 v2, #int 3 // #3 │ │ -001dfe: 7220 2100 2100 |0025: invoke-interface {v1, v2}, Landroid/view/SurfaceHolder;.setType:(I)V // method@0021 │ │ -001e04: 1401 0300 057f |0028: const v1, #float 1.76787e+38 // #7f050003 │ │ -001e0a: 6e20 4c00 1300 |002b: invoke-virtual {v3, v1}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.findViewById:(I)Landroid/view/View; // method@004c │ │ -001e10: 0c01 |002e: move-result-object v1 │ │ -001e12: 6901 1000 |002f: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.image:Landroid/view/View; // field@0010 │ │ -001e16: 1401 0200 057f |0031: const v1, #float 1.76787e+38 // #7f050002 │ │ -001e1c: 6e20 4c00 1300 |0034: invoke-virtual {v3, v1}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.findViewById:(I)Landroid/view/View; // method@004c │ │ -001e22: 0c01 |0037: move-result-object v1 │ │ -001e24: 1f01 1d00 |0038: check-cast v1, Landroid/widget/TextView; // type@001d │ │ -001e28: 6901 1700 |003a: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.text:Landroid/widget/TextView; // field@0017 │ │ -001e2c: 1a01 f600 |003c: const-string v1, "power" // string@00f6 │ │ -001e30: 6e20 4f00 1300 |003e: invoke-virtual {v3, v1}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.getSystemService:(Ljava/lang/String;)Ljava/lang/Object; // method@004f │ │ -001e36: 0c00 |0041: move-result-object v0 │ │ -001e38: 1f00 1500 |0042: check-cast v0, Landroid/os/PowerManager; // type@0015 │ │ -001e3c: 1301 1a00 |0044: const/16 v1, #int 26 // #1a │ │ -001e40: 1a02 0d00 |0046: const-string v2, "DoNotDimScreen" // string@000d │ │ -001e44: 6e30 1d00 1002 |0048: invoke-virtual {v0, v1, v2}, Landroid/os/PowerManager;.newWakeLock:(ILjava/lang/String;)Landroid/os/PowerManager$WakeLock; // method@001d │ │ -001e4a: 0c01 |004b: move-result-object v1 │ │ -001e4c: 6901 1800 |004c: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.wakeLock:Landroid/os/PowerManager$WakeLock; // field@0018 │ │ -001e50: 0e00 |004e: return-void │ │ - catches : (none) │ │ - positions : │ │ - 0x0000 line=59 │ │ - 0x0003 line=60 │ │ - 0x0008 line=62 │ │ - 0x0013 line=63 │ │ - 0x001b line=64 │ │ - 0x0022 line=65 │ │ - 0x0028 line=67 │ │ - 0x0031 line=68 │ │ - 0x003c line=70 │ │ - 0x0044 line=71 │ │ - 0x004e line=72 │ │ +001e4c: |[001e4c] com.jwetherell.heart_rate_monitor.HeartRateMonitor.onCreate:(Landroid/os/Bundle;)V │ │ +001e5c: 6f20 0400 4300 |0000: invoke-super {v3, v4}, Landroid/app/Activity;.onCreate:(Landroid/os/Bundle;)V // method@0004 │ │ +001e62: 1501 037f |0003: const/high16 v1, #int 2130903040 // #7f03 │ │ +001e66: 6e20 5400 1300 |0005: invoke-virtual {v3, v1}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.setContentView:(I)V // method@0054 │ │ +001e6c: 1401 0400 057f |0008: const v1, #float 1.76787e+38 // #7f050004 │ │ +001e72: 6e20 4c00 1300 |000b: invoke-virtual {v3, v1}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.findViewById:(I)Landroid/view/View; // method@004c │ │ +001e78: 0c01 |000e: move-result-object v1 │ │ +001e7a: 1f01 1a00 |000f: check-cast v1, Landroid/view/SurfaceView; // type@001a │ │ +001e7e: 6901 1100 |0011: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.preview:Landroid/view/SurfaceView; // field@0011 │ │ +001e82: 6201 1100 |0013: sget-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.preview:Landroid/view/SurfaceView; // field@0011 │ │ +001e86: 6e10 2200 0100 |0015: invoke-virtual {v1}, Landroid/view/SurfaceView;.getHolder:()Landroid/view/SurfaceHolder; // method@0022 │ │ +001e8c: 0c01 |0018: move-result-object v1 │ │ +001e8e: 6901 1300 |0019: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.previewHolder:Landroid/view/SurfaceHolder; // field@0013 │ │ +001e92: 6201 1300 |001b: sget-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.previewHolder:Landroid/view/SurfaceHolder; // field@0013 │ │ +001e96: 6202 1600 |001d: sget-object v2, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.surfaceCallback:Landroid/view/SurfaceHolder$Callback; // field@0016 │ │ +001e9a: 7220 2000 2100 |001f: invoke-interface {v1, v2}, Landroid/view/SurfaceHolder;.addCallback:(Landroid/view/SurfaceHolder$Callback;)V // method@0020 │ │ +001ea0: 6201 1300 |0022: sget-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.previewHolder:Landroid/view/SurfaceHolder; // field@0013 │ │ +001ea4: 1232 |0024: const/4 v2, #int 3 // #3 │ │ +001ea6: 7220 2100 2100 |0025: invoke-interface {v1, v2}, Landroid/view/SurfaceHolder;.setType:(I)V // method@0021 │ │ +001eac: 1401 0300 057f |0028: const v1, #float 1.76787e+38 // #7f050003 │ │ +001eb2: 6e20 4c00 1300 |002b: invoke-virtual {v3, v1}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.findViewById:(I)Landroid/view/View; // method@004c │ │ +001eb8: 0c01 |002e: move-result-object v1 │ │ +001eba: 6901 1000 |002f: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.image:Landroid/view/View; // field@0010 │ │ +001ebe: 1401 0200 057f |0031: const v1, #float 1.76787e+38 // #7f050002 │ │ +001ec4: 6e20 4c00 1300 |0034: invoke-virtual {v3, v1}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.findViewById:(I)Landroid/view/View; // method@004c │ │ +001eca: 0c01 |0037: move-result-object v1 │ │ +001ecc: 1f01 1d00 |0038: check-cast v1, Landroid/widget/TextView; // type@001d │ │ +001ed0: 6901 1700 |003a: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.text:Landroid/widget/TextView; // field@0017 │ │ +001ed4: 1a01 f500 |003c: const-string v1, "power" // string@00f5 │ │ +001ed8: 6e20 4f00 1300 |003e: invoke-virtual {v3, v1}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.getSystemService:(Ljava/lang/String;)Ljava/lang/Object; // method@004f │ │ +001ede: 0c00 |0041: move-result-object v0 │ │ +001ee0: 1f00 1500 |0042: check-cast v0, Landroid/os/PowerManager; // type@0015 │ │ +001ee4: 1301 1a00 |0044: const/16 v1, #int 26 // #1a │ │ +001ee8: 1a02 0d00 |0046: const-string v2, "DoNotDimScreen" // string@000d │ │ +001eec: 6e30 1d00 1002 |0048: invoke-virtual {v0, v1, v2}, Landroid/os/PowerManager;.newWakeLock:(ILjava/lang/String;)Landroid/os/PowerManager$WakeLock; // method@001d │ │ +001ef2: 0c01 |004b: move-result-object v1 │ │ +001ef4: 6901 1800 |004c: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.wakeLock:Landroid/os/PowerManager$WakeLock; // field@0018 │ │ +001ef8: 0e00 |004e: return-void │ │ + catches : (none) │ │ + positions : │ │ + 0x0000 line=64 │ │ + 0x0003 line=65 │ │ + 0x0008 line=67 │ │ + 0x0013 line=68 │ │ + 0x001b line=69 │ │ + 0x0022 line=70 │ │ + 0x0028 line=72 │ │ + 0x0031 line=73 │ │ + 0x003c line=75 │ │ + 0x0044 line=76 │ │ + 0x004e line=77 │ │ locals : │ │ 0x0044 - 0x004f reg=0 pm Landroid/os/PowerManager; │ │ 0x0000 - 0x004f reg=3 this Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor; │ │ 0x0000 - 0x004f reg=4 savedInstanceState Landroid/os/Bundle; │ │ │ │ #2 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ name : 'onPause' │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 2 │ │ insns size : 27 16-bit code units │ │ -001e54: |[001e54] com.jwetherell.heart_rate_monitor.HeartRateMonitor.onPause:()V │ │ -001e64: 1201 |0000: const/4 v1, #int 0 // #0 │ │ -001e66: 6f10 0500 0200 |0001: invoke-super {v2}, Landroid/app/Activity;.onPause:()V // method@0005 │ │ -001e6c: 6200 1800 |0004: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.wakeLock:Landroid/os/PowerManager$WakeLock; // field@0018 │ │ -001e70: 6e10 1c00 0000 |0006: invoke-virtual {v0}, Landroid/os/PowerManager$WakeLock;.release:()V // method@001c │ │ -001e76: 6200 0e00 |0009: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.camera:Landroid/hardware/Camera; // field@000e │ │ -001e7a: 6e20 1700 1000 |000b: invoke-virtual {v0, v1}, Landroid/hardware/Camera;.setPreviewCallback:(Landroid/hardware/Camera$PreviewCallback;)V // method@0017 │ │ -001e80: 6200 0e00 |000e: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.camera:Landroid/hardware/Camera; // field@000e │ │ -001e84: 6e10 1a00 0000 |0010: invoke-virtual {v0}, Landroid/hardware/Camera;.stopPreview:()V // method@001a │ │ -001e8a: 6200 0e00 |0013: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.camera:Landroid/hardware/Camera; // field@000e │ │ -001e8e: 6e10 1500 0000 |0015: invoke-virtual {v0}, Landroid/hardware/Camera;.release:()V // method@0015 │ │ -001e94: 6901 0e00 |0018: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.camera:Landroid/hardware/Camera; // field@000e │ │ -001e98: 0e00 |001a: return-void │ │ - catches : (none) │ │ - positions : │ │ - 0x0001 line=101 │ │ - 0x0004 line=103 │ │ - 0x0009 line=105 │ │ - 0x000e line=106 │ │ - 0x0013 line=107 │ │ - 0x0018 line=108 │ │ - 0x001a line=109 │ │ +001efc: |[001efc] com.jwetherell.heart_rate_monitor.HeartRateMonitor.onPause:()V │ │ +001f0c: 1201 |0000: const/4 v1, #int 0 // #0 │ │ +001f0e: 6f10 0500 0200 |0001: invoke-super {v2}, Landroid/app/Activity;.onPause:()V // method@0005 │ │ +001f14: 6200 1800 |0004: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.wakeLock:Landroid/os/PowerManager$WakeLock; // field@0018 │ │ +001f18: 6e10 1c00 0000 |0006: invoke-virtual {v0}, Landroid/os/PowerManager$WakeLock;.release:()V // method@001c │ │ +001f1e: 6200 0e00 |0009: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.camera:Landroid/hardware/Camera; // field@000e │ │ +001f22: 6e20 1700 1000 |000b: invoke-virtual {v0, v1}, Landroid/hardware/Camera;.setPreviewCallback:(Landroid/hardware/Camera$PreviewCallback;)V // method@0017 │ │ +001f28: 6200 0e00 |000e: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.camera:Landroid/hardware/Camera; // field@000e │ │ +001f2c: 6e10 1a00 0000 |0010: invoke-virtual {v0}, Landroid/hardware/Camera;.stopPreview:()V // method@001a │ │ +001f32: 6200 0e00 |0013: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.camera:Landroid/hardware/Camera; // field@000e │ │ +001f36: 6e10 1500 0000 |0015: invoke-virtual {v0}, Landroid/hardware/Camera;.release:()V // method@0015 │ │ +001f3c: 6901 0e00 |0018: sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.camera:Landroid/hardware/Camera; // field@000e │ │ +001f40: 0e00 |001a: return-void │ │ + catches : (none) │ │ + positions : │ │ + 0x0001 line=106 │ │ + 0x0004 line=108 │ │ + 0x0009 line=110 │ │ + 0x000e line=111 │ │ + 0x0013 line=112 │ │ + 0x0018 line=113 │ │ + 0x001a line=114 │ │ locals : │ │ 0x0000 - 0x001b reg=2 this Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor; │ │ │ │ #3 : (in Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;) │ │ name : 'onResume' │ │ type : '()V' │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 3 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 21 16-bit code units │ │ -001e9c: |[001e9c] com.jwetherell.heart_rate_monitor.HeartRateMonitor.onResume:()V │ │ -001eac: 6f10 0600 0200 |0000: invoke-super {v2}, Landroid/app/Activity;.onResume:()V // method@0006 │ │ -001eb2: 6200 1800 |0003: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.wakeLock:Landroid/os/PowerManager$WakeLock; // field@0018 │ │ -001eb6: 6e10 1b00 0000 |0005: invoke-virtual {v0}, Landroid/os/PowerManager$WakeLock;.acquire:()V // method@001b │ │ -001ebc: 7100 1400 0000 |0008: invoke-static {}, Landroid/hardware/Camera;.open:()Landroid/hardware/Camera; // method@0014 │ │ -001ec2: 0c00 |000b: move-result-object v0 │ │ -001ec4: 6900 0e00 |000c: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.camera:Landroid/hardware/Camera; // field@000e │ │ -001ec8: 7100 6e00 0000 |000e: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@006e │ │ -001ece: 0b00 |0011: move-result-wide v0 │ │ -001ed0: 6800 1500 |0012: sput-wide v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.startTime:J // field@0015 │ │ -001ed4: 0e00 |0014: return-void │ │ - catches : (none) │ │ - positions : │ │ - 0x0000 line=87 │ │ - 0x0003 line=89 │ │ - 0x0008 line=91 │ │ - 0x000e line=93 │ │ - 0x0014 line=94 │ │ +001f44: |[001f44] com.jwetherell.heart_rate_monitor.HeartRateMonitor.onResume:()V │ │ +001f54: 6f10 0600 0200 |0000: invoke-super {v2}, Landroid/app/Activity;.onResume:()V // method@0006 │ │ +001f5a: 6200 1800 |0003: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.wakeLock:Landroid/os/PowerManager$WakeLock; // field@0018 │ │ +001f5e: 6e10 1b00 0000 |0005: invoke-virtual {v0}, Landroid/os/PowerManager$WakeLock;.acquire:()V // method@001b │ │ +001f64: 7100 1400 0000 |0008: invoke-static {}, Landroid/hardware/Camera;.open:()Landroid/hardware/Camera; // method@0014 │ │ +001f6a: 0c00 |000b: move-result-object v0 │ │ +001f6c: 6900 0e00 |000c: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.camera:Landroid/hardware/Camera; // field@000e │ │ +001f70: 7100 6e00 0000 |000e: invoke-static {}, Ljava/lang/System;.currentTimeMillis:()J // method@006e │ │ +001f76: 0b00 |0011: move-result-wide v0 │ │ +001f78: 6800 1500 |0012: sput-wide v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.startTime:J // field@0015 │ │ +001f7c: 0e00 |0014: return-void │ │ + catches : (none) │ │ + positions : │ │ + 0x0000 line=92 │ │ + 0x0003 line=94 │ │ + 0x0008 line=96 │ │ + 0x000e line=98 │ │ + 0x0014 line=99 │ │ locals : │ │ 0x0000 - 0x0015 reg=2 this Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor; │ │ │ │ source_file_idx : 19 (HeartRateMonitor.java) │ │ │ │ Class #7 header: │ │ class_idx : 35 │ │ @@ -1615,103 +1615,103 @@ │ │ type : '()V' │ │ access : 0x10008 (STATIC CONSTRUCTOR) │ │ code - │ │ registers : 4 │ │ ins : 0 │ │ outs : 2 │ │ insns size : 26 16-bit code units │ │ -001ed8: |[001ed8] com.jwetherell.heart_rate_monitor.HeartbeatView.:()V │ │ -001ee8: 1203 |0000: const/4 v3, #int 0 // #0 │ │ -001eea: 1202 |0001: const/4 v2, #int 0 // #0 │ │ -001eec: 2200 0d00 |0002: new-instance v0, Landroid/graphics/Matrix; // type@000d │ │ -001ef0: 7010 0b00 0000 |0004: invoke-direct {v0}, Landroid/graphics/Matrix;.:()V // method@000b │ │ -001ef6: 6900 1a00 |0007: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.matrix:Landroid/graphics/Matrix; // field@001a │ │ -001efa: 2200 0e00 |0009: new-instance v0, Landroid/graphics/Paint; // type@000e │ │ -001efe: 1211 |000b: const/4 v1, #int 1 // #1 │ │ -001f00: 7020 0e00 1000 |000c: invoke-direct {v0, v1}, Landroid/graphics/Paint;.:(I)V // method@000e │ │ -001f06: 6900 1b00 |000f: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.paint:Landroid/graphics/Paint; // field@001b │ │ -001f0a: 6903 1900 |0011: sput-object v3, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.greenBitmap:Landroid/graphics/Bitmap; // field@0019 │ │ -001f0e: 6903 1e00 |0013: sput-object v3, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.redBitmap:Landroid/graphics/Bitmap; // field@001e │ │ -001f12: 6702 1d00 |0015: sput v2, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.parentWidth:I // field@001d │ │ -001f16: 6702 1c00 |0017: sput v2, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.parentHeight:I // field@001c │ │ -001f1a: 0e00 |0019: return-void │ │ - catches : (none) │ │ - positions : │ │ - 0x0002 line=19 │ │ - 0x0009 line=20 │ │ - 0x0011 line=22 │ │ - 0x0013 line=23 │ │ - 0x0015 line=25 │ │ - 0x0017 line=26 │ │ +001f80: |[001f80] com.jwetherell.heart_rate_monitor.HeartbeatView.:()V │ │ +001f90: 1203 |0000: const/4 v3, #int 0 // #0 │ │ +001f92: 1202 |0001: const/4 v2, #int 0 // #0 │ │ +001f94: 2200 0d00 |0002: new-instance v0, Landroid/graphics/Matrix; // type@000d │ │ +001f98: 7010 0b00 0000 |0004: invoke-direct {v0}, Landroid/graphics/Matrix;.:()V // method@000b │ │ +001f9e: 6900 1a00 |0007: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.matrix:Landroid/graphics/Matrix; // field@001a │ │ +001fa2: 2200 0e00 |0009: new-instance v0, Landroid/graphics/Paint; // type@000e │ │ +001fa6: 1211 |000b: const/4 v1, #int 1 // #1 │ │ +001fa8: 7020 0e00 1000 |000c: invoke-direct {v0, v1}, Landroid/graphics/Paint;.:(I)V // method@000e │ │ +001fae: 6900 1b00 |000f: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.paint:Landroid/graphics/Paint; // field@001b │ │ +001fb2: 6903 1900 |0011: sput-object v3, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.greenBitmap:Landroid/graphics/Bitmap; // field@0019 │ │ +001fb6: 6903 1e00 |0013: sput-object v3, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.redBitmap:Landroid/graphics/Bitmap; // field@001e │ │ +001fba: 6702 1d00 |0015: sput v2, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.parentWidth:I // field@001d │ │ +001fbe: 6702 1c00 |0017: sput v2, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.parentHeight:I // field@001c │ │ +001fc2: 0e00 |0019: return-void │ │ + catches : (none) │ │ + positions : │ │ + 0x0002 line=20 │ │ + 0x0009 line=21 │ │ + 0x0011 line=23 │ │ + 0x0013 line=24 │ │ + 0x0015 line=26 │ │ + 0x0017 line=27 │ │ locals : │ │ │ │ #1 : (in Lcom/jwetherell/heart_rate_monitor/HeartbeatView;) │ │ name : '' │ │ type : '(Landroid/content/Context;)V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 4 │ │ ins : 2 │ │ outs : 2 │ │ insns size : 29 16-bit code units │ │ -001f1c: |[001f1c] com.jwetherell.heart_rate_monitor.HeartbeatView.:(Landroid/content/Context;)V │ │ -001f2c: 7020 2400 3200 |0000: invoke-direct {v2, v3}, Landroid/view/View;.:(Landroid/content/Context;)V // method@0024 │ │ -001f32: 6e10 5800 0200 |0003: invoke-virtual {v2}, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.getResources:()Landroid/content/res/Resources; // method@0058 │ │ -001f38: 0c00 |0006: move-result-object v0 │ │ -001f3a: 1501 027f |0007: const/high16 v1, #int 2130837504 // #7f02 │ │ -001f3e: 7120 0900 1000 |0009: invoke-static {v0, v1}, Landroid/graphics/BitmapFactory;.decodeResource:(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; // method@0009 │ │ -001f44: 0c00 |000c: move-result-object v0 │ │ -001f46: 6900 1900 |000d: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.greenBitmap:Landroid/graphics/Bitmap; // field@0019 │ │ -001f4a: 6e10 5800 0200 |000f: invoke-virtual {v2}, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.getResources:()Landroid/content/res/Resources; // method@0058 │ │ -001f50: 0c00 |0012: move-result-object v0 │ │ -001f52: 1401 0200 027f |0013: const v1, #float 1.728e+38 // #7f020002 │ │ -001f58: 7120 0900 1000 |0016: invoke-static {v0, v1}, Landroid/graphics/BitmapFactory;.decodeResource:(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; // method@0009 │ │ -001f5e: 0c00 |0019: move-result-object v0 │ │ -001f60: 6900 1e00 |001a: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.redBitmap:Landroid/graphics/Bitmap; // field@001e │ │ -001f64: 0e00 |001c: return-void │ │ - catches : (none) │ │ - positions : │ │ - 0x0000 line=36 │ │ - 0x0003 line=38 │ │ - 0x000f line=39 │ │ - 0x001c line=40 │ │ +001fc4: |[001fc4] com.jwetherell.heart_rate_monitor.HeartbeatView.:(Landroid/content/Context;)V │ │ +001fd4: 7020 2400 3200 |0000: invoke-direct {v2, v3}, Landroid/view/View;.:(Landroid/content/Context;)V // method@0024 │ │ +001fda: 6e10 5800 0200 |0003: invoke-virtual {v2}, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.getResources:()Landroid/content/res/Resources; // method@0058 │ │ +001fe0: 0c00 |0006: move-result-object v0 │ │ +001fe2: 1501 027f |0007: const/high16 v1, #int 2130837504 // #7f02 │ │ +001fe6: 7120 0900 1000 |0009: invoke-static {v0, v1}, Landroid/graphics/BitmapFactory;.decodeResource:(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; // method@0009 │ │ +001fec: 0c00 |000c: move-result-object v0 │ │ +001fee: 6900 1900 |000d: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.greenBitmap:Landroid/graphics/Bitmap; // field@0019 │ │ +001ff2: 6e10 5800 0200 |000f: invoke-virtual {v2}, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.getResources:()Landroid/content/res/Resources; // method@0058 │ │ +001ff8: 0c00 |0012: move-result-object v0 │ │ +001ffa: 1401 0200 027f |0013: const v1, #float 1.728e+38 // #7f020002 │ │ +002000: 7120 0900 1000 |0016: invoke-static {v0, v1}, Landroid/graphics/BitmapFactory;.decodeResource:(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; // method@0009 │ │ +002006: 0c00 |0019: move-result-object v0 │ │ +002008: 6900 1e00 |001a: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.redBitmap:Landroid/graphics/Bitmap; // field@001e │ │ +00200c: 0e00 |001c: return-void │ │ + catches : (none) │ │ + positions : │ │ + 0x0000 line=37 │ │ + 0x0003 line=39 │ │ + 0x000f line=40 │ │ + 0x001c line=41 │ │ locals : │ │ 0x0000 - 0x001d reg=2 this Lcom/jwetherell/heart_rate_monitor/HeartbeatView; │ │ 0x0000 - 0x001d reg=3 context Landroid/content/Context; │ │ │ │ #2 : (in Lcom/jwetherell/heart_rate_monitor/HeartbeatView;) │ │ name : '' │ │ type : '(Landroid/content/Context;Landroid/util/AttributeSet;)V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 5 │ │ ins : 3 │ │ outs : 3 │ │ insns size : 29 16-bit code units │ │ -001f68: |[001f68] com.jwetherell.heart_rate_monitor.HeartbeatView.:(Landroid/content/Context;Landroid/util/AttributeSet;)V │ │ -001f78: 7030 2500 3204 |0000: invoke-direct {v2, v3, v4}, Landroid/view/View;.:(Landroid/content/Context;Landroid/util/AttributeSet;)V // method@0025 │ │ -001f7e: 6e10 5800 0200 |0003: invoke-virtual {v2}, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.getResources:()Landroid/content/res/Resources; // method@0058 │ │ -001f84: 0c00 |0006: move-result-object v0 │ │ -001f86: 1501 027f |0007: const/high16 v1, #int 2130837504 // #7f02 │ │ -001f8a: 7120 0900 1000 |0009: invoke-static {v0, v1}, Landroid/graphics/BitmapFactory;.decodeResource:(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; // method@0009 │ │ -001f90: 0c00 |000c: move-result-object v0 │ │ -001f92: 6900 1900 |000d: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.greenBitmap:Landroid/graphics/Bitmap; // field@0019 │ │ -001f96: 6e10 5800 0200 |000f: invoke-virtual {v2}, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.getResources:()Landroid/content/res/Resources; // method@0058 │ │ -001f9c: 0c00 |0012: move-result-object v0 │ │ -001f9e: 1401 0200 027f |0013: const v1, #float 1.728e+38 // #7f020002 │ │ -001fa4: 7120 0900 1000 |0016: invoke-static {v0, v1}, Landroid/graphics/BitmapFactory;.decodeResource:(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; // method@0009 │ │ -001faa: 0c00 |0019: move-result-object v0 │ │ -001fac: 6900 1e00 |001a: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.redBitmap:Landroid/graphics/Bitmap; // field@001e │ │ -001fb0: 0e00 |001c: return-void │ │ - catches : (none) │ │ - positions : │ │ - 0x0000 line=29 │ │ - 0x0003 line=31 │ │ - 0x000f line=32 │ │ - 0x001c line=33 │ │ +002010: |[002010] com.jwetherell.heart_rate_monitor.HeartbeatView.:(Landroid/content/Context;Landroid/util/AttributeSet;)V │ │ +002020: 7030 2500 3204 |0000: invoke-direct {v2, v3, v4}, Landroid/view/View;.:(Landroid/content/Context;Landroid/util/AttributeSet;)V // method@0025 │ │ +002026: 6e10 5800 0200 |0003: invoke-virtual {v2}, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.getResources:()Landroid/content/res/Resources; // method@0058 │ │ +00202c: 0c00 |0006: move-result-object v0 │ │ +00202e: 1501 027f |0007: const/high16 v1, #int 2130837504 // #7f02 │ │ +002032: 7120 0900 1000 |0009: invoke-static {v0, v1}, Landroid/graphics/BitmapFactory;.decodeResource:(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; // method@0009 │ │ +002038: 0c00 |000c: move-result-object v0 │ │ +00203a: 6900 1900 |000d: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.greenBitmap:Landroid/graphics/Bitmap; // field@0019 │ │ +00203e: 6e10 5800 0200 |000f: invoke-virtual {v2}, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.getResources:()Landroid/content/res/Resources; // method@0058 │ │ +002044: 0c00 |0012: move-result-object v0 │ │ +002046: 1401 0200 027f |0013: const v1, #float 1.728e+38 // #7f020002 │ │ +00204c: 7120 0900 1000 |0016: invoke-static {v0, v1}, Landroid/graphics/BitmapFactory;.decodeResource:(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; // method@0009 │ │ +002052: 0c00 |0019: move-result-object v0 │ │ +002054: 6900 1e00 |001a: sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.redBitmap:Landroid/graphics/Bitmap; // field@001e │ │ +002058: 0e00 |001c: return-void │ │ + catches : (none) │ │ + positions : │ │ + 0x0000 line=30 │ │ + 0x0003 line=32 │ │ + 0x000f line=33 │ │ + 0x001c line=34 │ │ locals : │ │ 0x0000 - 0x001d reg=2 this Lcom/jwetherell/heart_rate_monitor/HeartbeatView; │ │ 0x0000 - 0x001d reg=3 context Landroid/content/Context; │ │ 0x0000 - 0x001d reg=4 attr Landroid/util/AttributeSet; │ │ │ │ Virtual methods - │ │ #0 : (in Lcom/jwetherell/heart_rate_monitor/HeartbeatView;) │ │ @@ -1719,65 +1719,65 @@ │ │ type : '(Landroid/graphics/Canvas;)V' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 12 │ │ ins : 2 │ │ outs : 4 │ │ insns size : 66 16-bit code units │ │ -001fb4: |[001fb4] com.jwetherell.heart_rate_monitor.HeartbeatView.onDraw:(Landroid/graphics/Canvas;)V │ │ -001fc4: 390b 0800 |0000: if-nez v11, 0008 // +0008 │ │ -001fc8: 2207 3200 |0002: new-instance v7, Ljava/lang/NullPointerException; // type@0032 │ │ -001fcc: 7010 6700 0700 |0004: invoke-direct {v7}, Ljava/lang/NullPointerException;.:()V // method@0067 │ │ -001fd2: 2707 |0007: throw v7 │ │ -001fd4: 1200 |0008: const/4 v0, #int 0 // #0 │ │ -001fd6: 7100 4d00 0000 |0009: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.getCurrent:()Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // method@004d │ │ -001fdc: 0c07 |000c: move-result-object v7 │ │ -001fde: 6208 0400 |000d: sget-object v8, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.GREEN:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@0004 │ │ -001fe2: 3387 3000 |000f: if-ne v7, v8, 003f // +0030 │ │ -001fe6: 6200 1900 |0011: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.greenBitmap:Landroid/graphics/Bitmap; // field@0019 │ │ -001fea: 6e10 0800 0000 |0013: invoke-virtual {v0}, Landroid/graphics/Bitmap;.getWidth:()I // method@0008 │ │ -001ff0: 0a07 |0016: move-result v7 │ │ -001ff2: db01 0702 |0017: div-int/lit8 v1, v7, #int 2 // #02 │ │ -001ff6: 6e10 0700 0000 |0019: invoke-virtual {v0}, Landroid/graphics/Bitmap;.getHeight:()I // method@0007 │ │ -001ffc: 0a07 |001c: move-result v7 │ │ -001ffe: db02 0702 |001d: div-int/lit8 v2, v7, #int 2 // #02 │ │ -002002: 6007 1d00 |001f: sget v7, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.parentWidth:I // field@001d │ │ -002006: db05 0702 |0021: div-int/lit8 v5, v7, #int 2 // #02 │ │ -00200a: 6007 1c00 |0023: sget v7, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.parentHeight:I // field@001c │ │ -00200e: db06 0702 |0025: div-int/lit8 v6, v7, #int 2 // #02 │ │ -002012: 9103 0501 |0027: sub-int v3, v5, v1 │ │ -002016: 9104 0602 |0029: sub-int v4, v6, v2 │ │ -00201a: 6207 1a00 |002b: sget-object v7, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.matrix:Landroid/graphics/Matrix; // field@001a │ │ -00201e: 6e10 0d00 0700 |002d: invoke-virtual {v7}, Landroid/graphics/Matrix;.reset:()V // method@000d │ │ -002024: 6207 1a00 |0030: sget-object v7, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.matrix:Landroid/graphics/Matrix; // field@001a │ │ -002028: 8238 |0032: int-to-float v8, v3 │ │ -00202a: 8249 |0033: int-to-float v9, v4 │ │ -00202c: 6e30 0c00 8709 |0034: invoke-virtual {v7, v8, v9}, Landroid/graphics/Matrix;.postTranslate:(FF)Z // method@000c │ │ -002032: 6207 1a00 |0037: sget-object v7, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.matrix:Landroid/graphics/Matrix; // field@001a │ │ -002036: 6208 1b00 |0039: sget-object v8, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.paint:Landroid/graphics/Paint; // field@001b │ │ -00203a: 6e40 0a00 0b87 |003b: invoke-virtual {v11, v0, v7, v8}, Landroid/graphics/Canvas;.drawBitmap:(Landroid/graphics/Bitmap;Landroid/graphics/Matrix;Landroid/graphics/Paint;)V // method@000a │ │ -002040: 0e00 |003e: return-void │ │ -002042: 6200 1e00 |003f: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.redBitmap:Landroid/graphics/Bitmap; // field@001e │ │ -002046: 28d2 |0041: goto 0013 // -002e │ │ - catches : (none) │ │ - positions : │ │ - 0x0000 line=59 │ │ - 0x0008 line=61 │ │ - 0x0009 line=62 │ │ - 0x0013 line=65 │ │ - 0x0019 line=66 │ │ - 0x001f line=68 │ │ - 0x0023 line=69 │ │ - 0x0027 line=71 │ │ - 0x0029 line=72 │ │ - 0x002b line=74 │ │ - 0x0030 line=75 │ │ - 0x0037 line=76 │ │ - 0x003e line=77 │ │ - 0x003f line=63 │ │ +00205c: |[00205c] com.jwetherell.heart_rate_monitor.HeartbeatView.onDraw:(Landroid/graphics/Canvas;)V │ │ +00206c: 390b 0800 |0000: if-nez v11, 0008 // +0008 │ │ +002070: 2207 3200 |0002: new-instance v7, Ljava/lang/NullPointerException; // type@0032 │ │ +002074: 7010 6700 0700 |0004: invoke-direct {v7}, Ljava/lang/NullPointerException;.:()V // method@0067 │ │ +00207a: 2707 |0007: throw v7 │ │ +00207c: 1200 |0008: const/4 v0, #int 0 // #0 │ │ +00207e: 7100 4d00 0000 |0009: invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;.getCurrent:()Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // method@004d │ │ +002084: 0c07 |000c: move-result-object v7 │ │ +002086: 6208 0400 |000d: sget-object v8, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;.GREEN:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; // field@0004 │ │ +00208a: 3387 3000 |000f: if-ne v7, v8, 003f // +0030 │ │ +00208e: 6200 1900 |0011: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.greenBitmap:Landroid/graphics/Bitmap; // field@0019 │ │ +002092: 6e10 0800 0000 |0013: invoke-virtual {v0}, Landroid/graphics/Bitmap;.getWidth:()I // method@0008 │ │ +002098: 0a07 |0016: move-result v7 │ │ +00209a: db01 0702 |0017: div-int/lit8 v1, v7, #int 2 // #02 │ │ +00209e: 6e10 0700 0000 |0019: invoke-virtual {v0}, Landroid/graphics/Bitmap;.getHeight:()I // method@0007 │ │ +0020a4: 0a07 |001c: move-result v7 │ │ +0020a6: db02 0702 |001d: div-int/lit8 v2, v7, #int 2 // #02 │ │ +0020aa: 6007 1d00 |001f: sget v7, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.parentWidth:I // field@001d │ │ +0020ae: db05 0702 |0021: div-int/lit8 v5, v7, #int 2 // #02 │ │ +0020b2: 6007 1c00 |0023: sget v7, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.parentHeight:I // field@001c │ │ +0020b6: db06 0702 |0025: div-int/lit8 v6, v7, #int 2 // #02 │ │ +0020ba: 9103 0501 |0027: sub-int v3, v5, v1 │ │ +0020be: 9104 0602 |0029: sub-int v4, v6, v2 │ │ +0020c2: 6207 1a00 |002b: sget-object v7, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.matrix:Landroid/graphics/Matrix; // field@001a │ │ +0020c6: 6e10 0d00 0700 |002d: invoke-virtual {v7}, Landroid/graphics/Matrix;.reset:()V // method@000d │ │ +0020cc: 6207 1a00 |0030: sget-object v7, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.matrix:Landroid/graphics/Matrix; // field@001a │ │ +0020d0: 8238 |0032: int-to-float v8, v3 │ │ +0020d2: 8249 |0033: int-to-float v9, v4 │ │ +0020d4: 6e30 0c00 8709 |0034: invoke-virtual {v7, v8, v9}, Landroid/graphics/Matrix;.postTranslate:(FF)Z // method@000c │ │ +0020da: 6207 1a00 |0037: sget-object v7, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.matrix:Landroid/graphics/Matrix; // field@001a │ │ +0020de: 6208 1b00 |0039: sget-object v8, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.paint:Landroid/graphics/Paint; // field@001b │ │ +0020e2: 6e40 0a00 0b87 |003b: invoke-virtual {v11, v0, v7, v8}, Landroid/graphics/Canvas;.drawBitmap:(Landroid/graphics/Bitmap;Landroid/graphics/Matrix;Landroid/graphics/Paint;)V // method@000a │ │ +0020e8: 0e00 |003e: return-void │ │ +0020ea: 6200 1e00 |003f: sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.redBitmap:Landroid/graphics/Bitmap; // field@001e │ │ +0020ee: 28d2 |0041: goto 0013 // -002e │ │ + catches : (none) │ │ + positions : │ │ + 0x0000 line=60 │ │ + 0x0008 line=62 │ │ + 0x0009 line=63 │ │ + 0x0013 line=66 │ │ + 0x0019 line=67 │ │ + 0x001f line=69 │ │ + 0x0023 line=70 │ │ + 0x0027 line=72 │ │ + 0x0029 line=73 │ │ + 0x002b line=75 │ │ + 0x0030 line=76 │ │ + 0x0037 line=77 │ │ + 0x003e line=78 │ │ + 0x003f line=64 │ │ locals : │ │ 0x0019 - 0x003f reg=1 bitmapX I │ │ 0x001f - 0x003f reg=2 bitmapY I │ │ 0x0029 - 0x003f reg=3 centerX I │ │ 0x002b - 0x003f reg=4 centerY I │ │ 0x0023 - 0x003f reg=5 parentX I │ │ 0x0027 - 0x003f reg=6 parentY I │ │ @@ -1790,33 +1790,33 @@ │ │ type : '(II)V' │ │ access : 0x0004 (PROTECTED) │ │ code - │ │ registers : 5 │ │ ins : 3 │ │ outs : 3 │ │ insns size : 23 16-bit code units │ │ -002048: |[002048] com.jwetherell.heart_rate_monitor.HeartbeatView.onMeasure:(II)V │ │ -002058: 6f30 2600 3204 |0000: invoke-super {v2, v3, v4}, Landroid/view/View;.onMeasure:(II)V // method@0026 │ │ -00205e: 7110 2300 0300 |0003: invoke-static {v3}, Landroid/view/View$MeasureSpec;.getSize:(I)I // method@0023 │ │ -002064: 0a00 |0006: move-result v0 │ │ -002066: 6700 1d00 |0007: sput v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.parentWidth:I // field@001d │ │ -00206a: 7110 2300 0400 |0009: invoke-static {v4}, Landroid/view/View$MeasureSpec;.getSize:(I)I // method@0023 │ │ -002070: 0a00 |000c: move-result v0 │ │ -002072: 6700 1c00 |000d: sput v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.parentHeight:I // field@001c │ │ -002076: 6000 1d00 |000f: sget v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.parentWidth:I // field@001d │ │ -00207a: 6001 1c00 |0011: sget v1, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.parentHeight:I // field@001c │ │ -00207e: 6e30 5b00 0201 |0013: invoke-virtual {v2, v0, v1}, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.setMeasuredDimension:(II)V // method@005b │ │ -002084: 0e00 |0016: return-void │ │ - catches : (none) │ │ - positions : │ │ - 0x0000 line=47 │ │ - 0x0003 line=49 │ │ - 0x0009 line=50 │ │ - 0x000f line=51 │ │ - 0x0016 line=52 │ │ +0020f0: |[0020f0] com.jwetherell.heart_rate_monitor.HeartbeatView.onMeasure:(II)V │ │ +002100: 6f30 2600 3204 |0000: invoke-super {v2, v3, v4}, Landroid/view/View;.onMeasure:(II)V // method@0026 │ │ +002106: 7110 2300 0300 |0003: invoke-static {v3}, Landroid/view/View$MeasureSpec;.getSize:(I)I // method@0023 │ │ +00210c: 0a00 |0006: move-result v0 │ │ +00210e: 6700 1d00 |0007: sput v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.parentWidth:I // field@001d │ │ +002112: 7110 2300 0400 |0009: invoke-static {v4}, Landroid/view/View$MeasureSpec;.getSize:(I)I // method@0023 │ │ +002118: 0a00 |000c: move-result v0 │ │ +00211a: 6700 1c00 |000d: sput v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.parentHeight:I // field@001c │ │ +00211e: 6000 1d00 |000f: sget v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.parentWidth:I // field@001d │ │ +002122: 6001 1c00 |0011: sget v1, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.parentHeight:I // field@001c │ │ +002126: 6e30 5b00 0201 |0013: invoke-virtual {v2, v0, v1}, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;.setMeasuredDimension:(II)V // method@005b │ │ +00212c: 0e00 |0016: return-void │ │ + catches : (none) │ │ + positions : │ │ + 0x0000 line=48 │ │ + 0x0003 line=50 │ │ + 0x0009 line=51 │ │ + 0x000f line=52 │ │ + 0x0016 line=53 │ │ locals : │ │ 0x0000 - 0x0017 reg=2 this Lcom/jwetherell/heart_rate_monitor/HeartbeatView; │ │ 0x0000 - 0x0017 reg=3 widthMeasureSpec I │ │ 0x0000 - 0x0017 reg=4 heightMeasureSpec I │ │ │ │ source_file_idx : 20 (HeartbeatView.java) │ │ │ │ @@ -1843,48 +1843,48 @@ │ │ type : '()V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -002088: |[002088] com.jwetherell.heart_rate_monitor.ImageProcessing.:()V │ │ -002098: 7010 6800 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@0068 │ │ -00209e: 0e00 |0003: return-void │ │ +002130: |[002130] com.jwetherell.heart_rate_monitor.ImageProcessing.:()V │ │ +002140: 7010 6800 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@0068 │ │ +002146: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ - 0x0000 line=9 │ │ + 0x0000 line=8 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lcom/jwetherell/heart_rate_monitor/ImageProcessing; │ │ │ │ #1 : (in Lcom/jwetherell/heart_rate_monitor/ImageProcessing;) │ │ name : 'decodeYUV420SPtoRedAvg' │ │ type : '([BII)I' │ │ access : 0x0009 (PUBLIC STATIC) │ │ code - │ │ registers : 6 │ │ ins : 3 │ │ outs : 3 │ │ insns size : 13 16-bit code units │ │ -0020a0: |[0020a0] com.jwetherell.heart_rate_monitor.ImageProcessing.decodeYUV420SPtoRedAvg:([BII)I │ │ -0020b0: 3903 0400 |0000: if-nez v3, 0004 // +0004 │ │ -0020b4: 1202 |0002: const/4 v2, #int 0 // #0 │ │ -0020b6: 0f02 |0003: return v2 │ │ -0020b8: 9200 0405 |0004: mul-int v0, v4, v5 │ │ -0020bc: 7130 5e00 4305 |0006: invoke-static {v3, v4, v5}, Lcom/jwetherell/heart_rate_monitor/ImageProcessing;.decodeYUV420SPtoRedSum:([BII)I // method@005e │ │ -0020c2: 0a01 |0009: move-result v1 │ │ -0020c4: 9302 0100 |000a: div-int v2, v1, v0 │ │ -0020c8: 28f7 |000c: goto 0003 // -0009 │ │ - catches : (none) │ │ - positions : │ │ - 0x0000 line=53 │ │ - 0x0003 line=58 │ │ - 0x0004 line=55 │ │ - 0x0006 line=57 │ │ - 0x000a line=58 │ │ +002148: |[002148] com.jwetherell.heart_rate_monitor.ImageProcessing.decodeYUV420SPtoRedAvg:([BII)I │ │ +002158: 3903 0400 |0000: if-nez v3, 0004 // +0004 │ │ +00215c: 1202 |0002: const/4 v2, #int 0 // #0 │ │ +00215e: 0f02 |0003: return v2 │ │ +002160: 9200 0405 |0004: mul-int v0, v4, v5 │ │ +002164: 7130 5e00 4305 |0006: invoke-static {v3, v4, v5}, Lcom/jwetherell/heart_rate_monitor/ImageProcessing;.decodeYUV420SPtoRedSum:([BII)I // method@005e │ │ +00216a: 0a01 |0009: move-result v1 │ │ +00216c: 9302 0100 |000a: div-int v2, v1, v0 │ │ +002170: 28f7 |000c: goto 0003 // -0009 │ │ + catches : (none) │ │ + positions : │ │ + 0x0000 line=58 │ │ + 0x0003 line=63 │ │ + 0x0004 line=60 │ │ + 0x0006 line=62 │ │ + 0x000a line=63 │ │ locals : │ │ 0x0006 - 0x000d reg=0 frameSize I │ │ 0x000a - 0x000d reg=1 sum I │ │ 0x0000 - 0x000d reg=3 yuv420sp [B │ │ 0x0000 - 0x000d reg=4 width I │ │ 0x0000 - 0x000d reg=5 height I │ │ │ │ @@ -1893,144 +1893,144 @@ │ │ type : '([BII)I' │ │ access : 0x000a (PRIVATE STATIC) │ │ code - │ │ registers : 23 │ │ ins : 3 │ │ outs : 0 │ │ insns size : 186 16-bit code units │ │ -0020cc: |[0020cc] com.jwetherell.heart_rate_monitor.ImageProcessing.decodeYUV420SPtoRedSum:([BII)I │ │ -0020dc: 3914 0400 |0000: if-nez v20, 0004 // +0004 │ │ -0020e0: 1209 |0002: const/4 v9, #int 0 // #0 │ │ -0020e2: 0f09 |0003: return v9 │ │ -0020e4: 9202 1516 |0004: mul-int v2, v21, v22 │ │ -0020e8: 1209 |0006: const/4 v9, #int 0 // #0 │ │ -0020ea: 1205 |0007: const/4 v5, #int 0 // #0 │ │ -0020ec: 1310 0000 |0008: const/16 v16, #int 0 // #0 │ │ -0020f0: 0200 1600 |000a: move/from16 v0, v22 │ │ -0020f4: 3505 f7ff |000c: if-ge v5, v0, 0003 // -0009 │ │ -0020f8: e111 0501 |000e: shr-int/lit8 v17, v5, #int 1 // #01 │ │ -0020fc: 9211 1115 |0010: mul-int v17, v17, v21 │ │ -002100: 900b 0211 |0012: add-int v11, v2, v17 │ │ -002104: 120a |0014: const/4 v10, #int 0 // #0 │ │ -002106: 120d |0015: const/4 v13, #int 0 // #0 │ │ -002108: 1204 |0016: const/4 v4, #int 0 // #0 │ │ -00210a: 01bc |0017: move v12, v11 │ │ -00210c: 0200 1500 |0018: move/from16 v0, v21 │ │ -002110: 3504 9a00 |001a: if-ge v4, v0, 00b4 // +009a │ │ -002114: 4811 1410 |001c: aget-byte v17, v20, v16 │ │ -002118: 0200 1100 |001e: move/from16 v0, v17 │ │ -00211c: d500 ff00 |0020: and-int/lit16 v0, v0, #int 255 // #00ff │ │ -002120: 0211 0000 |0022: move/from16 v17, v0 │ │ -002124: d80e 11f0 |0024: add-int/lit8 v14, v17, #int -16 // #f0 │ │ -002128: 3b0e 0300 |0026: if-gez v14, 0029 // +0003 │ │ -00212c: 120e |0028: const/4 v14, #int 0 // #0 │ │ -00212e: dd11 0401 |0029: and-int/lit8 v17, v4, #int 1 // #01 │ │ -002132: 3911 8d00 |002b: if-nez v17, 00b8 // +008d │ │ -002136: d80b 0c01 |002d: add-int/lit8 v11, v12, #int 1 // #01 │ │ -00213a: 4811 140c |002f: aget-byte v17, v20, v12 │ │ -00213e: 0200 1100 |0031: move/from16 v0, v17 │ │ -002142: d500 ff00 |0033: and-int/lit16 v0, v0, #int 255 // #00ff │ │ -002146: 0211 0000 |0035: move/from16 v17, v0 │ │ -00214a: d80d 1180 |0037: add-int/lit8 v13, v17, #int -128 // #80 │ │ -00214e: d80c 0b01 |0039: add-int/lit8 v12, v11, #int 1 // #01 │ │ -002152: 4811 140b |003b: aget-byte v17, v20, v11 │ │ -002156: 0200 1100 |003d: move/from16 v0, v17 │ │ -00215a: d500 ff00 |003f: and-int/lit16 v0, v0, #int 255 // #00ff │ │ -00215e: 0211 0000 |0041: move/from16 v17, v0 │ │ -002162: d80a 1180 |0043: add-int/lit8 v10, v17, #int -128 // #80 │ │ -002166: 01cb |0045: move v11, v12 │ │ -002168: d2ef a804 |0046: mul-int/lit16 v15, v14, #int 1192 // #04a8 │ │ -00216c: d2d0 6206 |0048: mul-int/lit16 v0, v13, #int 1634 // #0662 │ │ -002170: 0211 0000 |004a: move/from16 v17, v0 │ │ -002174: 9007 0f11 |004c: add-int v7, v15, v17 │ │ -002178: d2d0 4103 |004e: mul-int/lit16 v0, v13, #int 833 // #0341 │ │ -00217c: 0211 0000 |0050: move/from16 v17, v0 │ │ -002180: 9111 0f11 |0052: sub-int v17, v15, v17 │ │ -002184: d2a0 9001 |0054: mul-int/lit16 v0, v10, #int 400 // #0190 │ │ -002188: 0212 0000 |0056: move/from16 v18, v0 │ │ -00218c: 9103 1112 |0058: sub-int v3, v17, v18 │ │ -002190: d2a0 1208 |005a: mul-int/lit16 v0, v10, #int 2066 // #0812 │ │ -002194: 0211 0000 |005c: move/from16 v17, v0 │ │ -002198: 9001 0f11 |005e: add-int v1, v15, v17 │ │ -00219c: 3b07 3300 |0060: if-gez v7, 0093 // +0033 │ │ -0021a0: 1207 |0062: const/4 v7, #int 0 // #0 │ │ -0021a2: 3b03 3b00 |0063: if-gez v3, 009e // +003b │ │ -0021a6: 1203 |0065: const/4 v3, #int 0 // #0 │ │ -0021a8: 3b01 4300 |0066: if-gez v1, 00a9 // +0043 │ │ -0021ac: 1201 |0068: const/4 v1, #int 0 // #0 │ │ -0021ae: 1511 00ff |0069: const/high16 v17, #int -16777216 // #ff00 │ │ -0021b2: e012 0706 |006b: shl-int/lit8 v18, v7, #int 6 // #06 │ │ -0021b6: 1513 ff00 |006d: const/high16 v19, #int 16711680 // #ff │ │ -0021ba: 9512 1213 |006f: and-int v18, v18, v19 │ │ -0021be: 9611 1112 |0071: or-int v17, v17, v18 │ │ -0021c2: e112 0302 |0073: shr-int/lit8 v18, v3, #int 2 // #02 │ │ -0021c6: 1413 00ff 0000 |0075: const v19, #float 9.14768e-41 // #0000ff00 │ │ -0021cc: 9512 1213 |0078: and-int v18, v18, v19 │ │ -0021d0: 9611 1112 |007a: or-int v17, v17, v18 │ │ -0021d4: e112 010a |007c: shr-int/lit8 v18, v1, #int 10 // #0a │ │ -0021d8: 0200 1200 |007e: move/from16 v0, v18 │ │ -0021dc: d500 ff00 |0080: and-int/lit16 v0, v0, #int 255 // #00ff │ │ -0021e0: 0212 0000 |0082: move/from16 v18, v0 │ │ -0021e4: 9606 1112 |0084: or-int v6, v17, v18 │ │ -0021e8: e111 0610 |0086: shr-int/lit8 v17, v6, #int 16 // #10 │ │ -0021ec: 0200 1100 |0088: move/from16 v0, v17 │ │ -0021f0: d508 ff00 |008a: and-int/lit16 v8, v0, #int 255 // #00ff │ │ -0021f4: b089 |008c: add-int/2addr v9, v8 │ │ -0021f6: d804 0401 |008d: add-int/lit8 v4, v4, #int 1 // #01 │ │ -0021fa: d810 1001 |008f: add-int/lit8 v16, v16, #int 1 // #01 │ │ -0021fe: 01bc |0091: move v12, v11 │ │ -002200: 2886 |0092: goto 0018 // -007a │ │ -002202: 1411 ffff 0300 |0093: const v17, #float 3.67341e-40 // #0003ffff │ │ -002208: 0200 1100 |0096: move/from16 v0, v17 │ │ -00220c: 3707 cbff |0098: if-le v7, v0, 0063 // -0035 │ │ -002210: 1407 ffff 0300 |009a: const v7, #float 3.67341e-40 // #0003ffff │ │ -002216: 28c6 |009d: goto 0063 // -003a │ │ -002218: 1411 ffff 0300 |009e: const v17, #float 3.67341e-40 // #0003ffff │ │ -00221e: 0200 1100 |00a1: move/from16 v0, v17 │ │ -002222: 3703 c3ff |00a3: if-le v3, v0, 0066 // -003d │ │ -002226: 1403 ffff 0300 |00a5: const v3, #float 3.67341e-40 // #0003ffff │ │ -00222c: 28be |00a8: goto 0066 // -0042 │ │ -00222e: 1411 ffff 0300 |00a9: const v17, #float 3.67341e-40 // #0003ffff │ │ -002234: 0200 1100 |00ac: move/from16 v0, v17 │ │ -002238: 3701 bbff |00ae: if-le v1, v0, 0069 // -0045 │ │ -00223c: 1401 ffff 0300 |00b0: const v1, #float 3.67341e-40 // #0003ffff │ │ -002242: 28b6 |00b3: goto 0069 // -004a │ │ -002244: d805 0501 |00b4: add-int/lit8 v5, v5, #int 1 // #01 │ │ -002248: 2900 54ff |00b6: goto/16 000a // -00ac │ │ -00224c: 01cb |00b8: move v11, v12 │ │ -00224e: 288d |00b9: goto 0046 // -0073 │ │ - catches : (none) │ │ - positions : │ │ - 0x0000 line=12 │ │ - 0x0003 line=40 │ │ - 0x0004 line=14 │ │ - 0x0006 line=16 │ │ - 0x0007 line=17 │ │ - 0x000e line=18 │ │ - 0x0016 line=19 │ │ - 0x001c line=20 │ │ - 0x0026 line=21 │ │ - 0x0029 line=22 │ │ - 0x002d line=23 │ │ - 0x0039 line=24 │ │ - 0x0046 line=26 │ │ - 0x0048 line=27 │ │ - 0x004e line=28 │ │ - 0x005a line=29 │ │ - 0x0060 line=31 │ │ +002174: |[002174] com.jwetherell.heart_rate_monitor.ImageProcessing.decodeYUV420SPtoRedSum:([BII)I │ │ +002184: 3914 0400 |0000: if-nez v20, 0004 // +0004 │ │ +002188: 1209 |0002: const/4 v9, #int 0 // #0 │ │ +00218a: 0f09 |0003: return v9 │ │ +00218c: 9202 1516 |0004: mul-int v2, v21, v22 │ │ +002190: 1209 |0006: const/4 v9, #int 0 // #0 │ │ +002192: 1205 |0007: const/4 v5, #int 0 // #0 │ │ +002194: 1310 0000 |0008: const/16 v16, #int 0 // #0 │ │ +002198: 0200 1600 |000a: move/from16 v0, v22 │ │ +00219c: 3505 f7ff |000c: if-ge v5, v0, 0003 // -0009 │ │ +0021a0: e111 0501 |000e: shr-int/lit8 v17, v5, #int 1 // #01 │ │ +0021a4: 9211 1115 |0010: mul-int v17, v17, v21 │ │ +0021a8: 900b 0211 |0012: add-int v11, v2, v17 │ │ +0021ac: 120a |0014: const/4 v10, #int 0 // #0 │ │ +0021ae: 120d |0015: const/4 v13, #int 0 // #0 │ │ +0021b0: 1204 |0016: const/4 v4, #int 0 // #0 │ │ +0021b2: 01bc |0017: move v12, v11 │ │ +0021b4: 0200 1500 |0018: move/from16 v0, v21 │ │ +0021b8: 3504 9a00 |001a: if-ge v4, v0, 00b4 // +009a │ │ +0021bc: 4811 1410 |001c: aget-byte v17, v20, v16 │ │ +0021c0: 0200 1100 |001e: move/from16 v0, v17 │ │ +0021c4: d500 ff00 |0020: and-int/lit16 v0, v0, #int 255 // #00ff │ │ +0021c8: 0211 0000 |0022: move/from16 v17, v0 │ │ +0021cc: d80e 11f0 |0024: add-int/lit8 v14, v17, #int -16 // #f0 │ │ +0021d0: 3b0e 0300 |0026: if-gez v14, 0029 // +0003 │ │ +0021d4: 120e |0028: const/4 v14, #int 0 // #0 │ │ +0021d6: dd11 0401 |0029: and-int/lit8 v17, v4, #int 1 // #01 │ │ +0021da: 3911 8d00 |002b: if-nez v17, 00b8 // +008d │ │ +0021de: d80b 0c01 |002d: add-int/lit8 v11, v12, #int 1 // #01 │ │ +0021e2: 4811 140c |002f: aget-byte v17, v20, v12 │ │ +0021e6: 0200 1100 |0031: move/from16 v0, v17 │ │ +0021ea: d500 ff00 |0033: and-int/lit16 v0, v0, #int 255 // #00ff │ │ +0021ee: 0211 0000 |0035: move/from16 v17, v0 │ │ +0021f2: d80d 1180 |0037: add-int/lit8 v13, v17, #int -128 // #80 │ │ +0021f6: d80c 0b01 |0039: add-int/lit8 v12, v11, #int 1 // #01 │ │ +0021fa: 4811 140b |003b: aget-byte v17, v20, v11 │ │ +0021fe: 0200 1100 |003d: move/from16 v0, v17 │ │ +002202: d500 ff00 |003f: and-int/lit16 v0, v0, #int 255 // #00ff │ │ +002206: 0211 0000 |0041: move/from16 v17, v0 │ │ +00220a: d80a 1180 |0043: add-int/lit8 v10, v17, #int -128 // #80 │ │ +00220e: 01cb |0045: move v11, v12 │ │ +002210: d2ef a804 |0046: mul-int/lit16 v15, v14, #int 1192 // #04a8 │ │ +002214: d2d0 6206 |0048: mul-int/lit16 v0, v13, #int 1634 // #0662 │ │ +002218: 0211 0000 |004a: move/from16 v17, v0 │ │ +00221c: 9007 0f11 |004c: add-int v7, v15, v17 │ │ +002220: d2d0 4103 |004e: mul-int/lit16 v0, v13, #int 833 // #0341 │ │ +002224: 0211 0000 |0050: move/from16 v17, v0 │ │ +002228: 9111 0f11 |0052: sub-int v17, v15, v17 │ │ +00222c: d2a0 9001 |0054: mul-int/lit16 v0, v10, #int 400 // #0190 │ │ +002230: 0212 0000 |0056: move/from16 v18, v0 │ │ +002234: 9103 1112 |0058: sub-int v3, v17, v18 │ │ +002238: d2a0 1208 |005a: mul-int/lit16 v0, v10, #int 2066 // #0812 │ │ +00223c: 0211 0000 |005c: move/from16 v17, v0 │ │ +002240: 9001 0f11 |005e: add-int v1, v15, v17 │ │ +002244: 3b07 3300 |0060: if-gez v7, 0093 // +0033 │ │ +002248: 1207 |0062: const/4 v7, #int 0 // #0 │ │ +00224a: 3b03 3b00 |0063: if-gez v3, 009e // +003b │ │ +00224e: 1203 |0065: const/4 v3, #int 0 // #0 │ │ +002250: 3b01 4300 |0066: if-gez v1, 00a9 // +0043 │ │ +002254: 1201 |0068: const/4 v1, #int 0 // #0 │ │ +002256: 1511 00ff |0069: const/high16 v17, #int -16777216 // #ff00 │ │ +00225a: e012 0706 |006b: shl-int/lit8 v18, v7, #int 6 // #06 │ │ +00225e: 1513 ff00 |006d: const/high16 v19, #int 16711680 // #ff │ │ +002262: 9512 1213 |006f: and-int v18, v18, v19 │ │ +002266: 9611 1112 |0071: or-int v17, v17, v18 │ │ +00226a: e112 0302 |0073: shr-int/lit8 v18, v3, #int 2 // #02 │ │ +00226e: 1413 00ff 0000 |0075: const v19, #float 9.14768e-41 // #0000ff00 │ │ +002274: 9512 1213 |0078: and-int v18, v18, v19 │ │ +002278: 9611 1112 |007a: or-int v17, v17, v18 │ │ +00227c: e112 010a |007c: shr-int/lit8 v18, v1, #int 10 // #0a │ │ +002280: 0200 1200 |007e: move/from16 v0, v18 │ │ +002284: d500 ff00 |0080: and-int/lit16 v0, v0, #int 255 // #00ff │ │ +002288: 0212 0000 |0082: move/from16 v18, v0 │ │ +00228c: 9606 1112 |0084: or-int v6, v17, v18 │ │ +002290: e111 0610 |0086: shr-int/lit8 v17, v6, #int 16 // #10 │ │ +002294: 0200 1100 |0088: move/from16 v0, v17 │ │ +002298: d508 ff00 |008a: and-int/lit16 v8, v0, #int 255 // #00ff │ │ +00229c: b089 |008c: add-int/2addr v9, v8 │ │ +00229e: d804 0401 |008d: add-int/lit8 v4, v4, #int 1 // #01 │ │ +0022a2: d810 1001 |008f: add-int/lit8 v16, v16, #int 1 // #01 │ │ +0022a6: 01bc |0091: move v12, v11 │ │ +0022a8: 2886 |0092: goto 0018 // -007a │ │ +0022aa: 1411 ffff 0300 |0093: const v17, #float 3.67341e-40 // #0003ffff │ │ +0022b0: 0200 1100 |0096: move/from16 v0, v17 │ │ +0022b4: 3707 cbff |0098: if-le v7, v0, 0063 // -0035 │ │ +0022b8: 1407 ffff 0300 |009a: const v7, #float 3.67341e-40 // #0003ffff │ │ +0022be: 28c6 |009d: goto 0063 // -003a │ │ +0022c0: 1411 ffff 0300 |009e: const v17, #float 3.67341e-40 // #0003ffff │ │ +0022c6: 0200 1100 |00a1: move/from16 v0, v17 │ │ +0022ca: 3703 c3ff |00a3: if-le v3, v0, 0066 // -003d │ │ +0022ce: 1403 ffff 0300 |00a5: const v3, #float 3.67341e-40 // #0003ffff │ │ +0022d4: 28be |00a8: goto 0066 // -0042 │ │ +0022d6: 1411 ffff 0300 |00a9: const v17, #float 3.67341e-40 // #0003ffff │ │ +0022dc: 0200 1100 |00ac: move/from16 v0, v17 │ │ +0022e0: 3701 bbff |00ae: if-le v1, v0, 0069 // -0045 │ │ +0022e4: 1401 ffff 0300 |00b0: const v1, #float 3.67341e-40 // #0003ffff │ │ +0022ea: 28b6 |00b3: goto 0069 // -004a │ │ +0022ec: d805 0501 |00b4: add-int/lit8 v5, v5, #int 1 // #01 │ │ +0022f0: 2900 54ff |00b6: goto/16 000a // -00ac │ │ +0022f4: 01cb |00b8: move v11, v12 │ │ +0022f6: 288d |00b9: goto 0046 // -0073 │ │ + catches : (none) │ │ + positions : │ │ + 0x0000 line=11 │ │ + 0x0003 line=42 │ │ + 0x0004 line=13 │ │ + 0x0006 line=15 │ │ + 0x0007 line=16 │ │ + 0x000e line=17 │ │ + 0x0016 line=18 │ │ + 0x001c line=19 │ │ + 0x0026 line=20 │ │ + 0x0029 line=21 │ │ + 0x002d line=22 │ │ + 0x0039 line=23 │ │ + 0x0046 line=25 │ │ + 0x0048 line=26 │ │ + 0x004e line=27 │ │ + 0x005a line=28 │ │ + 0x0060 line=30 │ │ 0x0063 line=32 │ │ - 0x0066 line=33 │ │ - 0x0069 line=35 │ │ - 0x0086 line=36 │ │ - 0x008c line=37 │ │ - 0x008d line=19 │ │ + 0x0066 line=34 │ │ + 0x0069 line=37 │ │ + 0x0086 line=38 │ │ + 0x008c line=39 │ │ + 0x008d line=18 │ │ 0x0093 line=31 │ │ - 0x009e line=32 │ │ - 0x00a9 line=33 │ │ - 0x00b4 line=17 │ │ + 0x009e line=33 │ │ + 0x00a9 line=35 │ │ + 0x00b4 line=16 │ │ locals : │ │ 0x0014 - 0x0018 reg=11 uvp I │ │ 0x0018 - 0x002f reg=12 uvp I │ │ 0x002f - 0x003b reg=11 uvp I │ │ 0x003b - 0x0046 reg=12 uvp I │ │ 0x0046 - 0x0092 reg=11 uvp I │ │ 0x0086 - 0x0093 reg=6 pixel I │ │ @@ -2087,17 +2087,17 @@ │ │ type : '()V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -002250: |[002250] com.jwetherell.heart_rate_monitor.R$attr.:()V │ │ -002260: 7010 6800 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@0068 │ │ -002266: 0e00 |0003: return-void │ │ +0022f8: |[0022f8] com.jwetherell.heart_rate_monitor.R$attr.:()V │ │ +002308: 7010 6800 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@0068 │ │ +00230e: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=11 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lcom/jwetherell/heart_rate_monitor/R$attr; │ │ │ │ Virtual methods - │ │ @@ -2146,17 +2146,17 @@ │ │ type : '()V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -002268: |[002268] com.jwetherell.heart_rate_monitor.R$drawable.:()V │ │ -002278: 7010 6800 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@0068 │ │ -00227e: 0e00 |0003: return-void │ │ +002310: |[002310] com.jwetherell.heart_rate_monitor.R$drawable.:()V │ │ +002320: 7010 6800 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@0068 │ │ +002326: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=13 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lcom/jwetherell/heart_rate_monitor/R$drawable; │ │ │ │ Virtual methods - │ │ @@ -2215,17 +2215,17 @@ │ │ type : '()V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -002280: |[002280] com.jwetherell.heart_rate_monitor.R$id.:()V │ │ -002290: 7010 6800 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@0068 │ │ -002296: 0e00 |0003: return-void │ │ +002328: |[002328] com.jwetherell.heart_rate_monitor.R$id.:()V │ │ +002338: 7010 6800 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@0068 │ │ +00233e: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=18 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lcom/jwetherell/heart_rate_monitor/R$id; │ │ │ │ Virtual methods - │ │ @@ -2264,17 +2264,17 @@ │ │ type : '()V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -002298: |[002298] com.jwetherell.heart_rate_monitor.R$layout.:()V │ │ -0022a8: 7010 6800 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@0068 │ │ -0022ae: 0e00 |0003: return-void │ │ +002340: |[002340] com.jwetherell.heart_rate_monitor.R$layout.:()V │ │ +002350: 7010 6800 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@0068 │ │ +002356: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=25 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lcom/jwetherell/heart_rate_monitor/R$layout; │ │ │ │ Virtual methods - │ │ @@ -2318,17 +2318,17 @@ │ │ type : '()V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -0022b0: |[0022b0] com.jwetherell.heart_rate_monitor.R$string.:()V │ │ -0022c0: 7010 6800 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@0068 │ │ -0022c6: 0e00 |0003: return-void │ │ +002358: |[002358] com.jwetherell.heart_rate_monitor.R$string.:()V │ │ +002368: 7010 6800 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@0068 │ │ +00236e: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=28 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lcom/jwetherell/heart_rate_monitor/R$string; │ │ │ │ Virtual methods - │ │ @@ -2361,20 +2361,19 @@ │ │ type : '()V' │ │ access : 0x10001 (PUBLIC CONSTRUCTOR) │ │ code - │ │ registers : 1 │ │ ins : 1 │ │ outs : 1 │ │ insns size : 4 16-bit code units │ │ -0022c8: |[0022c8] com.jwetherell.heart_rate_monitor.R.:()V │ │ -0022d8: 7010 6800 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@0068 │ │ -0022de: 0e00 |0003: return-void │ │ +002370: |[002370] com.jwetherell.heart_rate_monitor.R.:()V │ │ +002380: 7010 6800 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@0068 │ │ +002386: 0e00 |0003: return-void │ │ catches : (none) │ │ positions : │ │ 0x0000 line=10 │ │ - 0x0003 line=28 │ │ locals : │ │ 0x0000 - 0x0004 reg=0 this Lcom/jwetherell/heart_rate_monitor/R; │ │ │ │ Virtual methods - │ │ source_file_idx : 101 (R.java) │ ├── classes.jar │ │ ├── zipinfo {} │ │ │ @@ -1,17 +1,17 @@ │ │ │ -Zip file size: 17900 bytes, number of entries: 15 │ │ │ +Zip file size: 17896 bytes, number of entries: 15 │ │ │ ?rwxrwxr-x 2.0 unx 162 b- stor 80-Jan-01 00:00 android/annotation/SuppressLint.class │ │ │ ?rwxrwxr-x 2.0 unx 141 b- stor 80-Jan-01 00:00 android/annotation/TargetApi.class │ │ │ ?rwxrwxr-x 2.0 unx 180 b- stor 80-Jan-01 00:00 com/jwetherell/heart_rate_monitor/BuildConfig.class │ │ │ ?rwxrwxr-x 2.0 unx 2834 b- stor 80-Jan-01 00:00 com/jwetherell/heart_rate_monitor/HeartRateMonitor$1.class │ │ │ ?rwxrwxr-x 2.0 unx 1965 b- stor 80-Jan-01 00:00 com/jwetherell/heart_rate_monitor/HeartRateMonitor$2.class │ │ │ ?rwxrwxr-x 2.0 unx 854 b- stor 80-Jan-01 00:00 com/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE.class │ │ │ -?rwxrwxr-x 2.0 unx 4972 b- stor 80-Jan-01 00:00 com/jwetherell/heart_rate_monitor/HeartRateMonitor.class │ │ │ +?rwxrwxr-x 2.0 unx 4968 b- stor 80-Jan-01 00:00 com/jwetherell/heart_rate_monitor/HeartRateMonitor.class │ │ │ ?rwxrwxr-x 2.0 unx 1955 b- stor 80-Jan-01 00:00 com/jwetherell/heart_rate_monitor/HeartbeatView.class │ │ │ ?rwxrwxr-x 2.0 unx 849 b- stor 80-Jan-01 00:00 com/jwetherell/heart_rate_monitor/ImageProcessing.class │ │ │ ?rwxrwxr-x 2.0 unx 155 b- stor 80-Jan-01 00:00 com/jwetherell/heart_rate_monitor/R$attr.class │ │ │ ?rwxrwxr-x 2.0 unx 273 b- stor 80-Jan-01 00:00 com/jwetherell/heart_rate_monitor/R$drawable.class │ │ │ ?rwxrwxr-x 2.0 unx 318 b- stor 80-Jan-01 00:00 com/jwetherell/heart_rate_monitor/R$id.class │ │ │ ?rwxrwxr-x 2.0 unx 205 b- stor 80-Jan-01 00:00 com/jwetherell/heart_rate_monitor/R$layout.class │ │ │ ?rwxrwxr-x 2.0 unx 245 b- stor 80-Jan-01 00:00 com/jwetherell/heart_rate_monitor/R$string.class │ │ │ ?rwxrwxr-x 2.0 unx 150 b- stor 80-Jan-01 00:00 com/jwetherell/heart_rate_monitor/R.class │ │ │ -15 files, 15258 bytes uncompressed, 15258 bytes compressed: 0.0% │ │ │ +15 files, 15254 bytes uncompressed, 15254 bytes compressed: 0.0% │ │ ├── com/jwetherell/heart_rate_monitor/HeartRateMonitor.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -628,77 +628,75 @@ │ │ │ │ 0: getstatic #78 // Field currentType:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ │ │ 3: areturn │ │ │ │ │ │ │ │ private static android.hardware.Camera$Size getSmallestPreviewSize(int, int, android.hardware.Camera$Parameters); │ │ │ │ descriptor: (IILandroid/hardware/Camera$Parameters;)Landroid/hardware/Camera$Size; │ │ │ │ flags: (0x000a) ACC_PRIVATE, ACC_STATIC │ │ │ │ Code: │ │ │ │ - stack=300, locals=11, args_size=3 │ │ │ │ + stack=300, locals=10, args_size=3 │ │ │ │ 0: aconst_null │ │ │ │ 1: astore_3 │ │ │ │ 2: aload_2 │ │ │ │ 3: invokevirtual #114 // Method android/hardware/Camera$Parameters.getSupportedPreviewSizes:()Ljava/util/List; │ │ │ │ - 6: astore 4 │ │ │ │ - 8: aload 4 │ │ │ │ - 10: invokeinterface #120, 1 // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator; │ │ │ │ - 15: astore 5 │ │ │ │ - 17: aload 5 │ │ │ │ - 19: invokeinterface #126, 1 // InterfaceMethod java/util/Iterator.hasNext:()Z │ │ │ │ - 24: istore 6 │ │ │ │ - 26: iload 6 │ │ │ │ - 28: ifeq 132 │ │ │ │ - 31: aload 5 │ │ │ │ - 33: invokeinterface #130, 1 // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object; │ │ │ │ - 38: checkcast #132 // class android/hardware/Camera$Size │ │ │ │ - 41: astore 7 │ │ │ │ - 43: aload 7 │ │ │ │ - 45: getfield #135 // Field android/hardware/Camera$Size.width:I │ │ │ │ - 48: istore 6 │ │ │ │ - 50: iload 6 │ │ │ │ - 52: iload_0 │ │ │ │ - 53: if_icmpgt 17 │ │ │ │ - 56: aload 7 │ │ │ │ - 58: getfield #138 // Field android/hardware/Camera$Size.height:I │ │ │ │ - 61: istore 6 │ │ │ │ - 63: iload 6 │ │ │ │ - 65: iload_1 │ │ │ │ - 66: if_icmpgt 17 │ │ │ │ - 69: aload_3 │ │ │ │ - 70: ifnonnull 79 │ │ │ │ - 73: aload 7 │ │ │ │ - 75: astore_3 │ │ │ │ - 76: goto 17 │ │ │ │ - 79: aload_3 │ │ │ │ - 80: getfield #135 // Field android/hardware/Camera$Size.width:I │ │ │ │ - 83: istore 6 │ │ │ │ - 85: aload_3 │ │ │ │ - 86: getfield #138 // Field android/hardware/Camera$Size.height:I │ │ │ │ - 89: istore 8 │ │ │ │ - 91: iload 6 │ │ │ │ - 93: iload 8 │ │ │ │ - 95: imul │ │ │ │ - 96: istore 9 │ │ │ │ - 98: aload 7 │ │ │ │ - 100: getfield #135 // Field android/hardware/Camera$Size.width:I │ │ │ │ - 103: istore 6 │ │ │ │ - 105: aload 7 │ │ │ │ - 107: getfield #138 // Field android/hardware/Camera$Size.height:I │ │ │ │ - 110: istore 8 │ │ │ │ - 112: iload 6 │ │ │ │ - 114: iload 8 │ │ │ │ - 116: imul │ │ │ │ - 117: istore 10 │ │ │ │ - 119: iload 10 │ │ │ │ - 121: iload 9 │ │ │ │ - 123: if_icmpge 17 │ │ │ │ - 126: aload 7 │ │ │ │ - 128: astore_3 │ │ │ │ - 129: goto 17 │ │ │ │ - 132: aload_3 │ │ │ │ - 133: areturn │ │ │ │ + 6: invokeinterface #120, 1 // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator; │ │ │ │ + 11: astore 4 │ │ │ │ + 13: aload 4 │ │ │ │ + 15: invokeinterface #126, 1 // InterfaceMethod java/util/Iterator.hasNext:()Z │ │ │ │ + 20: istore 5 │ │ │ │ + 22: iload 5 │ │ │ │ + 24: ifeq 128 │ │ │ │ + 27: aload 4 │ │ │ │ + 29: invokeinterface #130, 1 // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object; │ │ │ │ + 34: checkcast #132 // class android/hardware/Camera$Size │ │ │ │ + 37: astore 6 │ │ │ │ + 39: aload 6 │ │ │ │ + 41: getfield #135 // Field android/hardware/Camera$Size.width:I │ │ │ │ + 44: istore 5 │ │ │ │ + 46: iload 5 │ │ │ │ + 48: iload_0 │ │ │ │ + 49: if_icmpgt 13 │ │ │ │ + 52: aload 6 │ │ │ │ + 54: getfield #138 // Field android/hardware/Camera$Size.height:I │ │ │ │ + 57: istore 5 │ │ │ │ + 59: iload 5 │ │ │ │ + 61: iload_1 │ │ │ │ + 62: if_icmpgt 13 │ │ │ │ + 65: aload_3 │ │ │ │ + 66: ifnonnull 75 │ │ │ │ + 69: aload 6 │ │ │ │ + 71: astore_3 │ │ │ │ + 72: goto 13 │ │ │ │ + 75: aload_3 │ │ │ │ + 76: getfield #135 // Field android/hardware/Camera$Size.width:I │ │ │ │ + 79: istore 5 │ │ │ │ + 81: aload_3 │ │ │ │ + 82: getfield #138 // Field android/hardware/Camera$Size.height:I │ │ │ │ + 85: istore 7 │ │ │ │ + 87: iload 5 │ │ │ │ + 89: iload 7 │ │ │ │ + 91: imul │ │ │ │ + 92: istore 8 │ │ │ │ + 94: aload 6 │ │ │ │ + 96: getfield #135 // Field android/hardware/Camera$Size.width:I │ │ │ │ + 99: istore 5 │ │ │ │ + 101: aload 6 │ │ │ │ + 103: getfield #138 // Field android/hardware/Camera$Size.height:I │ │ │ │ + 106: istore 7 │ │ │ │ + 108: iload 5 │ │ │ │ + 110: iload 7 │ │ │ │ + 112: imul │ │ │ │ + 113: istore 9 │ │ │ │ + 115: iload 9 │ │ │ │ + 117: iload 8 │ │ │ │ + 119: if_icmpge 13 │ │ │ │ + 122: aload 6 │ │ │ │ + 124: astore_3 │ │ │ │ + 125: goto 13 │ │ │ │ + 128: aload_3 │ │ │ │ + 129: areturn │ │ │ │ │ │ │ │ public void onConfigurationChanged(android.content.res.Configuration); │ │ │ │ descriptor: (Landroid/content/res/Configuration;)V │ │ │ │ flags: (0x0001) ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=2, args_size=2 │ │ │ │ 0: aload_0 ├── smali/com/jwetherell/heart_rate_monitor/HeartbeatView.smali │ @@ -22,216 +22,216 @@ │ .locals 4 │ │ .prologue │ const/4 v3, 0x0 │ │ const/4 v2, 0x0 │ │ - .line 19 │ + .line 20 │ new-instance v0, Landroid/graphics/Matrix; │ │ invoke-direct {v0}, Landroid/graphics/Matrix;->()V │ │ sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->matrix:Landroid/graphics/Matrix; │ │ - .line 20 │ + .line 21 │ new-instance v0, Landroid/graphics/Paint; │ │ const/4 v1, 0x1 │ │ invoke-direct {v0, v1}, Landroid/graphics/Paint;->(I)V │ │ sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->paint:Landroid/graphics/Paint; │ │ - .line 22 │ + .line 23 │ sput-object v3, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->greenBitmap:Landroid/graphics/Bitmap; │ │ - .line 23 │ + .line 24 │ sput-object v3, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->redBitmap:Landroid/graphics/Bitmap; │ │ - .line 25 │ + .line 26 │ sput v2, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->parentWidth:I │ │ - .line 26 │ + .line 27 │ sput v2, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->parentHeight:I │ │ return-void │ .end method │ │ .method public constructor (Landroid/content/Context;)V │ .locals 2 │ .param p1, "context" # Landroid/content/Context; │ │ .prologue │ - .line 36 │ + .line 37 │ invoke-direct {p0, p1}, Landroid/view/View;->(Landroid/content/Context;)V │ │ - .line 38 │ + .line 39 │ invoke-virtual {p0}, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->getResources()Landroid/content/res/Resources; │ │ move-result-object v0 │ │ const/high16 v1, 0x7f020000 │ │ invoke-static {v0, v1}, Landroid/graphics/BitmapFactory;->decodeResource(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; │ │ move-result-object v0 │ │ sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->greenBitmap:Landroid/graphics/Bitmap; │ │ - .line 39 │ + .line 40 │ invoke-virtual {p0}, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->getResources()Landroid/content/res/Resources; │ │ move-result-object v0 │ │ const v1, 0x7f020002 │ │ invoke-static {v0, v1}, Landroid/graphics/BitmapFactory;->decodeResource(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; │ │ move-result-object v0 │ │ sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->redBitmap:Landroid/graphics/Bitmap; │ │ - .line 40 │ + .line 41 │ return-void │ .end method │ │ .method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;)V │ .locals 2 │ .param p1, "context" # Landroid/content/Context; │ .param p2, "attr" # Landroid/util/AttributeSet; │ │ .prologue │ - .line 29 │ + .line 30 │ invoke-direct {p0, p1, p2}, Landroid/view/View;->(Landroid/content/Context;Landroid/util/AttributeSet;)V │ │ - .line 31 │ + .line 32 │ invoke-virtual {p0}, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->getResources()Landroid/content/res/Resources; │ │ move-result-object v0 │ │ const/high16 v1, 0x7f020000 │ │ invoke-static {v0, v1}, Landroid/graphics/BitmapFactory;->decodeResource(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; │ │ move-result-object v0 │ │ sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->greenBitmap:Landroid/graphics/Bitmap; │ │ - .line 32 │ + .line 33 │ invoke-virtual {p0}, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->getResources()Landroid/content/res/Resources; │ │ move-result-object v0 │ │ const v1, 0x7f020002 │ │ invoke-static {v0, v1}, Landroid/graphics/BitmapFactory;->decodeResource(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; │ │ move-result-object v0 │ │ sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->redBitmap:Landroid/graphics/Bitmap; │ │ - .line 33 │ + .line 34 │ return-void │ .end method │ │ │ # virtual methods │ .method protected onDraw(Landroid/graphics/Canvas;)V │ .locals 10 │ .param p1, "canvas" # Landroid/graphics/Canvas; │ │ .prologue │ - .line 59 │ + .line 60 │ if-nez p1, :cond_0 │ │ new-instance v7, Ljava/lang/NullPointerException; │ │ invoke-direct {v7}, Ljava/lang/NullPointerException;->()V │ │ throw v7 │ │ - .line 61 │ + .line 62 │ :cond_0 │ const/4 v0, 0x0 │ │ - .line 62 │ + .line 63 │ .local v0, "bitmap":Landroid/graphics/Bitmap; │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->getCurrent()Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ move-result-object v7 │ │ sget-object v8, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;->GREEN:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ if-ne v7, v8, :cond_1 │ │ sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->greenBitmap:Landroid/graphics/Bitmap; │ │ - .line 65 │ + .line 66 │ :goto_0 │ invoke-virtual {v0}, Landroid/graphics/Bitmap;->getWidth()I │ │ move-result v7 │ │ div-int/lit8 v1, v7, 0x2 │ │ - .line 66 │ + .line 67 │ .local v1, "bitmapX":I │ invoke-virtual {v0}, Landroid/graphics/Bitmap;->getHeight()I │ │ move-result v7 │ │ div-int/lit8 v2, v7, 0x2 │ │ - .line 68 │ + .line 69 │ .local v2, "bitmapY":I │ sget v7, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->parentWidth:I │ │ div-int/lit8 v5, v7, 0x2 │ │ - .line 69 │ + .line 70 │ .local v5, "parentX":I │ sget v7, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->parentHeight:I │ │ div-int/lit8 v6, v7, 0x2 │ │ - .line 71 │ + .line 72 │ .local v6, "parentY":I │ sub-int v3, v5, v1 │ │ - .line 72 │ + .line 73 │ .local v3, "centerX":I │ sub-int v4, v6, v2 │ │ - .line 74 │ + .line 75 │ .local v4, "centerY":I │ sget-object v7, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->matrix:Landroid/graphics/Matrix; │ │ invoke-virtual {v7}, Landroid/graphics/Matrix;->reset()V │ │ - .line 75 │ + .line 76 │ sget-object v7, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->matrix:Landroid/graphics/Matrix; │ │ int-to-float v8, v3 │ │ int-to-float v9, v4 │ │ invoke-virtual {v7, v8, v9}, Landroid/graphics/Matrix;->postTranslate(FF)Z │ │ - .line 76 │ + .line 77 │ sget-object v7, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->matrix:Landroid/graphics/Matrix; │ │ sget-object v8, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->paint:Landroid/graphics/Paint; │ │ invoke-virtual {p1, v0, v7, v8}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Matrix;Landroid/graphics/Paint;)V │ │ - .line 77 │ + .line 78 │ return-void │ │ - .line 63 │ + .line 64 │ .end local v1 # "bitmapX":I │ .end local v2 # "bitmapY":I │ .end local v3 # "centerX":I │ .end local v4 # "centerY":I │ .end local v5 # "parentX":I │ .end local v6 # "parentY":I │ :cond_1 │ @@ -242,34 +242,34 @@ │ │ .method protected onMeasure(II)V │ .locals 2 │ .param p1, "widthMeasureSpec" # I │ .param p2, "heightMeasureSpec" # I │ │ .prologue │ - .line 47 │ + .line 48 │ invoke-super {p0, p1, p2}, Landroid/view/View;->onMeasure(II)V │ │ - .line 49 │ + .line 50 │ invoke-static {p1}, Landroid/view/View$MeasureSpec;->getSize(I)I │ │ move-result v0 │ │ sput v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->parentWidth:I │ │ - .line 50 │ + .line 51 │ invoke-static {p2}, Landroid/view/View$MeasureSpec;->getSize(I)I │ │ move-result v0 │ │ sput v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->parentHeight:I │ │ - .line 51 │ + .line 52 │ sget v0, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->parentWidth:I │ │ sget v1, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->parentHeight:I │ │ invoke-virtual {p0, v0, v1}, Lcom/jwetherell/heart_rate_monitor/HeartbeatView;->setMeasuredDimension(II)V │ │ - .line 52 │ + .line 53 │ return-void │ .end method ├── smali/com/jwetherell/heart_rate_monitor/HeartRateMonitor$2.smali │ @@ -18,15 +18,15 @@ │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 199 │ + .line 206 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ @@ -34,46 +34,46 @@ │ .locals 5 │ .param p1, "holder" # Landroid/view/SurfaceHolder; │ .param p2, "format" # I │ .param p3, "width" # I │ .param p4, "height" # I │ │ .prologue │ - .line 218 │ + .line 226 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$1100()Landroid/hardware/Camera; │ │ move-result-object v2 │ │ invoke-virtual {v2}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters; │ │ move-result-object v0 │ │ - .line 219 │ + .line 227 │ .local v0, "parameters":Landroid/hardware/Camera$Parameters; │ const-string v2, "torch" │ │ invoke-virtual {v0, v2}, Landroid/hardware/Camera$Parameters;->setFlashMode(Ljava/lang/String;)V │ │ - .line 220 │ + .line 228 │ invoke-static {p3, p4, v0}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$1300(IILandroid/hardware/Camera$Parameters;)Landroid/hardware/Camera$Size; │ │ move-result-object v1 │ │ - .line 221 │ + .line 229 │ .local v1, "size":Landroid/hardware/Camera$Size; │ if-eqz v1, :cond_0 │ │ - .line 222 │ + .line 230 │ iget v2, v1, Landroid/hardware/Camera$Size;->width:I │ │ iget v3, v1, Landroid/hardware/Camera$Size;->height:I │ │ invoke-virtual {v0, v2, v3}, Landroid/hardware/Camera$Parameters;->setPreviewSize(II)V │ │ - .line 223 │ + .line 231 │ const-string v2, "HeartRateMonitor" │ │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ const-string v4, "Using width=" │ @@ -102,72 +102,72 @@ │ │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I │ │ - .line 225 │ + .line 233 │ :cond_0 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$1100()Landroid/hardware/Camera; │ │ move-result-object v2 │ │ invoke-virtual {v2, v0}, Landroid/hardware/Camera;->setParameters(Landroid/hardware/Camera$Parameters;)V │ │ - .line 226 │ + .line 234 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$1100()Landroid/hardware/Camera; │ │ move-result-object v2 │ │ invoke-virtual {v2}, Landroid/hardware/Camera;->startPreview()V │ │ - .line 227 │ + .line 235 │ return-void │ .end method │ │ .method public surfaceCreated(Landroid/view/SurfaceHolder;)V │ .locals 3 │ .param p1, "holder" # Landroid/view/SurfaceHolder; │ │ .prologue │ - .line 206 │ + .line 214 │ :try_start_0 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$1100()Landroid/hardware/Camera; │ │ move-result-object v1 │ │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$1000()Landroid/view/SurfaceHolder; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Landroid/hardware/Camera;->setPreviewDisplay(Landroid/view/SurfaceHolder;)V │ │ - .line 207 │ + .line 215 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$1100()Landroid/hardware/Camera; │ │ move-result-object v1 │ │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$1200()Landroid/hardware/Camera$PreviewCallback; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Landroid/hardware/Camera;->setPreviewCallback(Landroid/hardware/Camera$PreviewCallback;)V │ :try_end_0 │ .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 211 │ + .line 219 │ :goto_0 │ return-void │ │ - .line 208 │ + .line 216 │ :catch_0 │ move-exception v0 │ │ - .line 209 │ + .line 217 │ .local v0, "t":Ljava/lang/Throwable; │ const-string v1, "PreviewDemo-surfaceCallback" │ │ const-string v2, "Exception in setPreviewDisplay()" │ │ invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ │ @@ -175,10 +175,10 @@ │ .end method │ │ .method public surfaceDestroyed(Landroid/view/SurfaceHolder;)V │ .locals 0 │ .param p1, "holder" # Landroid/view/SurfaceHolder; │ │ .prologue │ - .line 235 │ + .line 243 │ return-void │ .end method ├── smali/com/jwetherell/heart_rate_monitor/R.smali │ @@ -19,10 +19,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 10 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 28 │ return-void │ .end method ├── smali/com/jwetherell/heart_rate_monitor/HeartRateMonitor.smali │ @@ -56,82 +56,82 @@ │ .locals 3 │ │ .prologue │ const/4 v2, 0x0 │ │ const/4 v1, 0x0 │ │ - .line 28 │ + .line 29 │ new-instance v0, Ljava/util/concurrent/atomic/AtomicBoolean; │ │ invoke-direct {v0, v2}, Ljava/util/concurrent/atomic/AtomicBoolean;->(Z)V │ │ sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->processing:Ljava/util/concurrent/atomic/AtomicBoolean; │ │ - .line 30 │ + .line 31 │ sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->preview:Landroid/view/SurfaceView; │ │ - .line 31 │ + .line 32 │ sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->previewHolder:Landroid/view/SurfaceHolder; │ │ - .line 32 │ + .line 33 │ sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->camera:Landroid/hardware/Camera; │ │ - .line 33 │ + .line 34 │ sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->image:Landroid/view/View; │ │ - .line 34 │ + .line 35 │ sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->text:Landroid/widget/TextView; │ │ - .line 36 │ + .line 37 │ sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->wakeLock:Landroid/os/PowerManager$WakeLock; │ │ - .line 38 │ + .line 39 │ sput v2, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->averageIndex:I │ │ - .line 40 │ + .line 41 │ const/4 v0, 0x4 │ │ new-array v0, v0, [I │ │ sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->averageArray:[I │ │ - .line 43 │ + .line 47 │ sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;->GREEN:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->currentType:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ - .line 48 │ + .line 53 │ sput v2, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->beatsIndex:I │ │ - .line 50 │ + .line 55 │ const/4 v0, 0x3 │ │ new-array v0, v0, [I │ │ sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->beatsArray:[I │ │ - .line 51 │ + .line 56 │ const-wide/16 v0, 0x0 │ │ sput-wide v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->beats:D │ │ - .line 52 │ + .line 57 │ const-wide/16 v0, 0x0 │ │ sput-wide v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->startTime:J │ │ - .line 111 │ + .line 116 │ new-instance v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$1; │ │ invoke-direct {v0}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$1;->()V │ │ sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->previewCallback:Landroid/hardware/Camera$PreviewCallback; │ │ - .line 199 │ + .line 206 │ new-instance v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$2; │ │ invoke-direct {v0}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$2;->()V │ │ sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->surfaceCallback:Landroid/view/SurfaceHolder$Callback; │ │ return-void │ @@ -391,269 +391,268 @@ │ return-object v0 │ .end method │ │ .method public static getCurrent()Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ .locals 1 │ │ .prologue │ - .line 45 │ + .line 50 │ sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->currentType:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ return-object v0 │ .end method │ │ .method private static getSmallestPreviewSize(IILandroid/hardware/Camera$Parameters;)Landroid/hardware/Camera$Size; │ .locals 7 │ .param p0, "width" # I │ .param p1, "height" # I │ .param p2, "parameters" # Landroid/hardware/Camera$Parameters; │ │ .prologue │ - .line 239 │ - const/4 v2, 0x0 │ + .line 247 │ + const/4 v1, 0x0 │ │ - .line 241 │ - .local v2, "result":Landroid/hardware/Camera$Size; │ + .line 249 │ + .local v1, "result":Landroid/hardware/Camera$Size; │ invoke-virtual {p2}, Landroid/hardware/Camera$Parameters;->getSupportedPreviewSizes()Ljava/util/List; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - invoke-interface {v5}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v4}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v4 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :cond_0 │ :goto_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v5 │ │ if-eqz v5, :cond_2 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - check-cast v4, Landroid/hardware/Camera$Size; │ + check-cast v3, Landroid/hardware/Camera$Size; │ │ - .line 242 │ - .local v4, "size":Landroid/hardware/Camera$Size; │ - iget v5, v4, Landroid/hardware/Camera$Size;->width:I │ + .line 250 │ + .local v3, "size":Landroid/hardware/Camera$Size; │ + iget v5, v3, Landroid/hardware/Camera$Size;->width:I │ │ if-gt v5, p0, :cond_0 │ │ - iget v5, v4, Landroid/hardware/Camera$Size;->height:I │ + iget v5, v3, Landroid/hardware/Camera$Size;->height:I │ │ if-gt v5, p1, :cond_0 │ │ - .line 243 │ - if-nez v2, :cond_1 │ + .line 251 │ + if-nez v1, :cond_1 │ │ - .line 244 │ - move-object v2, v4 │ + .line 252 │ + move-object v1, v3 │ │ goto :goto_0 │ │ - .line 246 │ + .line 254 │ :cond_1 │ - iget v5, v2, Landroid/hardware/Camera$Size;->width:I │ + iget v5, v1, Landroid/hardware/Camera$Size;->width:I │ │ - iget v6, v2, Landroid/hardware/Camera$Size;->height:I │ + iget v6, v1, Landroid/hardware/Camera$Size;->height:I │ │ - mul-int v3, v5, v6 │ + mul-int v2, v5, v6 │ │ - .line 247 │ - .local v3, "resultArea":I │ - iget v5, v4, Landroid/hardware/Camera$Size;->width:I │ + .line 255 │ + .local v2, "resultArea":I │ + iget v5, v3, Landroid/hardware/Camera$Size;->width:I │ │ - iget v6, v4, Landroid/hardware/Camera$Size;->height:I │ + iget v6, v3, Landroid/hardware/Camera$Size;->height:I │ │ - mul-int v1, v5, v6 │ + mul-int v0, v5, v6 │ │ - .line 249 │ - .local v1, "newArea":I │ - if-ge v1, v3, :cond_0 │ + .line 257 │ + .local v0, "newArea":I │ + if-ge v0, v2, :cond_0 │ │ - move-object v2, v4 │ + move-object v1, v3 │ │ goto :goto_0 │ │ - .line 254 │ - .end local v1 # "newArea":I │ - .end local v3 # "resultArea":I │ - .end local v4 # "size":Landroid/hardware/Camera$Size; │ + .line 262 │ + .end local v0 # "newArea":I │ + .end local v2 # "resultArea":I │ + .end local v3 # "size":Landroid/hardware/Camera$Size; │ :cond_2 │ - return-object v2 │ + return-object v1 │ .end method │ │ │ # virtual methods │ .method public onConfigurationChanged(Landroid/content/res/Configuration;)V │ .locals 0 │ .param p1, "newConfig" # Landroid/content/res/Configuration; │ │ .prologue │ - .line 79 │ + .line 84 │ invoke-super {p0, p1}, Landroid/app/Activity;->onConfigurationChanged(Landroid/content/res/Configuration;)V │ │ - .line 80 │ + .line 85 │ return-void │ .end method │ │ .method public onCreate(Landroid/os/Bundle;)V │ .locals 3 │ .param p1, "savedInstanceState" # Landroid/os/Bundle; │ │ .prologue │ - .line 59 │ + .line 64 │ invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V │ │ - .line 60 │ + .line 65 │ const/high16 v1, 0x7f030000 │ │ invoke-virtual {p0, v1}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->setContentView(I)V │ │ - .line 62 │ + .line 67 │ const v1, 0x7f050004 │ │ invoke-virtual {p0, v1}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->findViewById(I)Landroid/view/View; │ │ move-result-object v1 │ │ check-cast v1, Landroid/view/SurfaceView; │ │ sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->preview:Landroid/view/SurfaceView; │ │ - .line 63 │ + .line 68 │ sget-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->preview:Landroid/view/SurfaceView; │ │ invoke-virtual {v1}, Landroid/view/SurfaceView;->getHolder()Landroid/view/SurfaceHolder; │ │ move-result-object v1 │ │ sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->previewHolder:Landroid/view/SurfaceHolder; │ │ - .line 64 │ + .line 69 │ sget-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->previewHolder:Landroid/view/SurfaceHolder; │ │ sget-object v2, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->surfaceCallback:Landroid/view/SurfaceHolder$Callback; │ │ invoke-interface {v1, v2}, Landroid/view/SurfaceHolder;->addCallback(Landroid/view/SurfaceHolder$Callback;)V │ │ - .line 65 │ + .line 70 │ sget-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->previewHolder:Landroid/view/SurfaceHolder; │ │ const/4 v2, 0x3 │ │ invoke-interface {v1, v2}, Landroid/view/SurfaceHolder;->setType(I)V │ │ - .line 67 │ + .line 72 │ const v1, 0x7f050003 │ │ invoke-virtual {p0, v1}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->findViewById(I)Landroid/view/View; │ │ move-result-object v1 │ │ sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->image:Landroid/view/View; │ │ - .line 68 │ + .line 73 │ const v1, 0x7f050002 │ │ invoke-virtual {p0, v1}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->findViewById(I)Landroid/view/View; │ │ move-result-object v1 │ │ check-cast v1, Landroid/widget/TextView; │ │ sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->text:Landroid/widget/TextView; │ │ - .line 70 │ + .line 75 │ const-string v1, "power" │ │ invoke-virtual {p0, v1}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Landroid/os/PowerManager; │ │ - .line 71 │ + .line 76 │ .local v0, "pm":Landroid/os/PowerManager; │ const/16 v1, 0x1a │ │ const-string v2, "DoNotDimScreen" │ │ invoke-virtual {v0, v1, v2}, Landroid/os/PowerManager;->newWakeLock(ILjava/lang/String;)Landroid/os/PowerManager$WakeLock; │ │ move-result-object v1 │ │ sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->wakeLock:Landroid/os/PowerManager$WakeLock; │ │ - .line 72 │ + .line 77 │ return-void │ .end method │ │ .method public onPause()V │ .locals 2 │ │ .prologue │ const/4 v1, 0x0 │ │ - .line 101 │ + .line 106 │ invoke-super {p0}, Landroid/app/Activity;->onPause()V │ │ - .line 103 │ + .line 108 │ sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->wakeLock:Landroid/os/PowerManager$WakeLock; │ │ invoke-virtual {v0}, Landroid/os/PowerManager$WakeLock;->release()V │ │ - .line 105 │ + .line 110 │ sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->camera:Landroid/hardware/Camera; │ │ invoke-virtual {v0, v1}, Landroid/hardware/Camera;->setPreviewCallback(Landroid/hardware/Camera$PreviewCallback;)V │ │ - .line 106 │ + .line 111 │ sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->camera:Landroid/hardware/Camera; │ │ invoke-virtual {v0}, Landroid/hardware/Camera;->stopPreview()V │ │ - .line 107 │ + .line 112 │ sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->camera:Landroid/hardware/Camera; │ │ invoke-virtual {v0}, Landroid/hardware/Camera;->release()V │ │ - .line 108 │ + .line 113 │ sput-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->camera:Landroid/hardware/Camera; │ │ - .line 109 │ + .line 114 │ return-void │ .end method │ │ .method public onResume()V │ .locals 2 │ │ .prologue │ - .line 87 │ + .line 92 │ invoke-super {p0}, Landroid/app/Activity;->onResume()V │ │ - .line 89 │ + .line 94 │ sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->wakeLock:Landroid/os/PowerManager$WakeLock; │ │ invoke-virtual {v0}, Landroid/os/PowerManager$WakeLock;->acquire()V │ │ - .line 91 │ + .line 96 │ invoke-static {}, Landroid/hardware/Camera;->open()Landroid/hardware/Camera; │ │ move-result-object v0 │ │ sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->camera:Landroid/hardware/Camera; │ │ - .line 93 │ + .line 98 │ invoke-static {}, Ljava/lang/System;->currentTimeMillis()J │ │ move-result-wide v0 │ │ sput-wide v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->startTime:J │ │ - .line 94 │ + .line 99 │ return-void │ .end method ├── smali/com/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE.smali │ @@ -36,15 +36,15 @@ │ .locals 4 │ │ .prologue │ const/4 v3, 0x1 │ │ const/4 v2, 0x0 │ │ - .line 42 │ + .line 44 │ new-instance v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ const-string v1, "GREEN" │ │ invoke-direct {v0, v1, v2}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;->(Ljava/lang/String;I)V │ │ sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;->GREEN:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ @@ -53,14 +53,15 @@ │ │ const-string v1, "RED" │ │ invoke-direct {v0, v1, v3}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;->(Ljava/lang/String;I)V │ │ sput-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;->RED:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ + .line 43 │ const/4 v0, 0x2 │ │ new-array v0, v0, [Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ sget-object v1, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;->GREEN:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ aput-object v1, v0, v2 │ @@ -79,26 +80,26 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()V" │ } │ .end annotation │ │ .prologue │ - .line 42 │ + .line 43 │ invoke-direct {p0, p1, p2}, Ljava/lang/Enum;->(Ljava/lang/String;I)V │ │ return-void │ .end method │ │ .method public static valueOf(Ljava/lang/String;)Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ .locals 1 │ .param p0, "name" # Ljava/lang/String; │ │ .prologue │ - .line 42 │ + .line 43 │ const-class v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ invoke-static {v0, p0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum; │ │ move-result-object v0 │ │ check-cast v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ @@ -106,15 +107,15 @@ │ return-object v0 │ .end method │ │ .method public static values()[Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ .locals 1 │ │ .prologue │ - .line 42 │ + .line 43 │ sget-object v0, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;->$VALUES:[Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ invoke-virtual {v0}, [Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;->clone()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, [Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; ├── smali/com/jwetherell/heart_rate_monitor/ImageProcessing.smali │ @@ -4,156 +4,156 @@ │ │ │ # direct methods │ .method public constructor ()V │ .locals 0 │ │ .prologue │ - .line 9 │ + .line 8 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ .method public static decodeYUV420SPtoRedAvg([BII)I │ .locals 3 │ .param p0, "yuv420sp" # [B │ .param p1, "width" # I │ .param p2, "height" # I │ │ .prologue │ - .line 53 │ + .line 58 │ if-nez p0, :cond_0 │ │ const/4 v2, 0x0 │ │ - .line 58 │ + .line 63 │ :goto_0 │ return v2 │ │ - .line 55 │ + .line 60 │ :cond_0 │ mul-int v0, p1, p2 │ │ - .line 57 │ + .line 62 │ .local v0, "frameSize":I │ invoke-static {p0, p1, p2}, Lcom/jwetherell/heart_rate_monitor/ImageProcessing;->decodeYUV420SPtoRedSum([BII)I │ │ move-result v1 │ │ - .line 58 │ + .line 63 │ .local v1, "sum":I │ div-int v2, v1, v0 │ │ goto :goto_0 │ .end method │ │ .method private static decodeYUV420SPtoRedSum([BII)I │ .locals 20 │ .param p0, "yuv420sp" # [B │ .param p1, "width" # I │ .param p2, "height" # I │ │ .prologue │ - .line 12 │ + .line 11 │ if-nez p0, :cond_1 │ │ const/4 v9, 0x0 │ │ - .line 40 │ + .line 42 │ :cond_0 │ return v9 │ │ - .line 14 │ + .line 13 │ :cond_1 │ mul-int v2, p1, p2 │ │ - .line 16 │ + .line 15 │ .local v2, "frameSize":I │ const/4 v9, 0x0 │ │ - .line 17 │ + .line 16 │ .local v9, "sum":I │ const/4 v5, 0x0 │ │ .local v5, "j":I │ const/16 v16, 0x0 │ │ .local v16, "yp":I │ :goto_0 │ move/from16 v0, p2 │ │ if-ge v5, v0, :cond_0 │ │ - .line 18 │ + .line 17 │ shr-int/lit8 v17, v5, 0x1 │ │ mul-int v17, v17, p1 │ │ add-int v11, v2, v17 │ │ .local v11, "uvp":I │ const/4 v10, 0x0 │ │ .local v10, "u":I │ const/4 v13, 0x0 │ │ - .line 19 │ + .line 18 │ .local v13, "v":I │ const/4 v4, 0x0 │ │ .local v4, "i":I │ move v12, v11 │ │ .end local v11 # "uvp":I │ .local v12, "uvp":I │ :goto_1 │ move/from16 v0, p1 │ │ if-ge v4, v0, :cond_9 │ │ - .line 20 │ + .line 19 │ aget-byte v17, p0, v16 │ │ move/from16 v0, v17 │ │ and-int/lit16 v0, v0, 0xff │ │ move/from16 v17, v0 │ │ add-int/lit8 v14, v17, -0x10 │ │ - .line 21 │ + .line 20 │ .local v14, "y":I │ if-gez v14, :cond_2 │ │ const/4 v14, 0x0 │ │ - .line 22 │ + .line 21 │ :cond_2 │ and-int/lit8 v17, v4, 0x1 │ │ if-nez v17, :cond_a │ │ - .line 23 │ + .line 22 │ add-int/lit8 v11, v12, 0x1 │ │ .end local v12 # "uvp":I │ .restart local v11 # "uvp":I │ aget-byte v17, p0, v12 │ │ move/from16 v0, v17 │ │ and-int/lit16 v0, v0, 0xff │ │ move/from16 v17, v0 │ │ add-int/lit8 v13, v17, -0x80 │ │ - .line 24 │ + .line 23 │ add-int/lit8 v12, v11, 0x1 │ │ .end local v11 # "uvp":I │ .restart local v12 # "uvp":I │ aget-byte v17, p0, v11 │ │ move/from16 v0, v17 │ @@ -162,71 +162,71 @@ │ │ move/from16 v17, v0 │ │ add-int/lit8 v10, v17, -0x80 │ │ move v11, v12 │ │ - .line 26 │ + .line 25 │ .end local v12 # "uvp":I │ .restart local v11 # "uvp":I │ :goto_2 │ mul-int/lit16 v15, v14, 0x4a8 │ │ - .line 27 │ + .line 26 │ .local v15, "y1192":I │ mul-int/lit16 v0, v13, 0x662 │ │ move/from16 v17, v0 │ │ add-int v7, v15, v17 │ │ - .line 28 │ + .line 27 │ .local v7, "r":I │ mul-int/lit16 v0, v13, 0x341 │ │ move/from16 v17, v0 │ │ sub-int v17, v15, v17 │ │ mul-int/lit16 v0, v10, 0x190 │ │ move/from16 v18, v0 │ │ sub-int v3, v17, v18 │ │ - .line 29 │ + .line 28 │ .local v3, "g":I │ mul-int/lit16 v0, v10, 0x812 │ │ move/from16 v17, v0 │ │ add-int v1, v15, v17 │ │ - .line 31 │ + .line 30 │ .local v1, "b":I │ if-gez v7, :cond_6 │ │ const/4 v7, 0x0 │ │ .line 32 │ :cond_3 │ :goto_3 │ if-gez v3, :cond_7 │ │ const/4 v3, 0x0 │ │ - .line 33 │ + .line 34 │ :cond_4 │ :goto_4 │ if-gez v1, :cond_8 │ │ const/4 v1, 0x0 │ │ - .line 35 │ + .line 37 │ :cond_5 │ :goto_5 │ const/high16 v17, -0x1000000 │ │ shl-int/lit8 v18, v7, 0x6 │ │ const/high16 v19, 0xff0000 │ @@ -249,27 +249,27 @@ │ │ and-int/lit16 v0, v0, 0xff │ │ move/from16 v18, v0 │ │ or-int v6, v17, v18 │ │ - .line 36 │ + .line 38 │ .local v6, "pixel":I │ shr-int/lit8 v17, v6, 0x10 │ │ move/from16 v0, v17 │ │ and-int/lit16 v8, v0, 0xff │ │ - .line 37 │ + .line 39 │ .local v8, "red":I │ add-int/2addr v9, v8 │ │ - .line 19 │ + .line 18 │ add-int/lit8 v4, v4, 0x1 │ │ add-int/lit8 v16, v16, 0x1 │ │ move v12, v11 │ │ .end local v11 # "uvp":I │ @@ -288,39 +288,39 @@ │ │ if-le v7, v0, :cond_3 │ │ const v7, 0x3ffff │ │ goto :goto_3 │ │ - .line 32 │ + .line 33 │ :cond_7 │ const v17, 0x3ffff │ │ move/from16 v0, v17 │ │ if-le v3, v0, :cond_4 │ │ const v3, 0x3ffff │ │ goto :goto_4 │ │ - .line 33 │ + .line 35 │ :cond_8 │ const v17, 0x3ffff │ │ move/from16 v0, v17 │ │ if-le v1, v0, :cond_5 │ │ const v1, 0x3ffff │ │ goto :goto_5 │ │ - .line 17 │ + .line 16 │ .end local v1 # "b":I │ .end local v3 # "g":I │ .end local v7 # "r":I │ .end local v11 # "uvp":I │ .end local v14 # "y":I │ .end local v15 # "y1192":I │ .restart local v12 # "uvp":I ├── smali/com/jwetherell/heart_rate_monitor/HeartRateMonitor$1.smali │ @@ -18,58 +18,58 @@ │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 111 │ + .line 116 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public onPreviewFrame([BLandroid/hardware/Camera;)V │ - .locals 25 │ + .locals 26 │ .param p1, "data" # [B │ .param p2, "cam" # Landroid/hardware/Camera; │ │ .prologue │ - .line 117 │ + .line 123 │ if-nez p1, :cond_0 │ │ new-instance v21, Ljava/lang/NullPointerException; │ │ invoke-direct/range {v21 .. v21}, Ljava/lang/NullPointerException;->()V │ │ throw v21 │ │ - .line 118 │ + .line 124 │ :cond_0 │ invoke-virtual/range {p2 .. p2}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters; │ │ move-result-object v21 │ │ invoke-virtual/range {v21 .. v21}, Landroid/hardware/Camera$Parameters;->getPreviewSize()Landroid/hardware/Camera$Size; │ │ move-result-object v17 │ │ - .line 119 │ + .line 125 │ .local v17, "size":Landroid/hardware/Camera$Size; │ if-nez v17, :cond_1 │ │ new-instance v21, Ljava/lang/NullPointerException; │ │ invoke-direct/range {v21 .. v21}, Ljava/lang/NullPointerException;->()V │ │ throw v21 │ │ - .line 121 │ + .line 127 │ :cond_1 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$000()Ljava/util/concurrent/atomic/AtomicBoolean; │ │ move-result-object v21 │ │ const/16 v22, 0x0 │ │ @@ -77,33 +77,33 @@ │ │ invoke-virtual/range {v21 .. v23}, Ljava/util/concurrent/atomic/AtomicBoolean;->compareAndSet(ZZ)Z │ │ move-result v21 │ │ if-nez v21, :cond_2 │ │ - .line 196 │ + .line 203 │ :goto_0 │ return-void │ │ - .line 123 │ + .line 129 │ :cond_2 │ move-object/from16 v0, v17 │ │ iget v0, v0, Landroid/hardware/Camera$Size;->width:I │ │ move/from16 v20, v0 │ │ - .line 124 │ + .line 130 │ .local v20, "width":I │ move-object/from16 v0, v17 │ │ iget v12, v0, Landroid/hardware/Camera$Size;->height:I │ │ - .line 126 │ + .line 132 │ .local v12, "height":I │ invoke-virtual/range {p1 .. p1}, [B->clone()Ljava/lang/Object; │ │ move-result-object v21 │ │ check-cast v21, [B │ │ @@ -111,45 +111,45 @@ │ │ move/from16 v1, v20 │ │ invoke-static {v0, v12, v1}, Lcom/jwetherell/heart_rate_monitor/ImageProcessing;->decodeYUV420SPtoRedAvg([BII)I │ │ move-result v14 │ │ - .line 128 │ + .line 134 │ .local v14, "imgAvg":I │ if-eqz v14, :cond_3 │ │ const/16 v21, 0xff │ │ move/from16 v0, v21 │ │ if-ne v14, v0, :cond_4 │ │ - .line 129 │ + .line 135 │ :cond_3 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$000()Ljava/util/concurrent/atomic/AtomicBoolean; │ │ move-result-object v21 │ │ const/16 v22, 0x0 │ │ invoke-virtual/range {v21 .. v22}, Ljava/util/concurrent/atomic/AtomicBoolean;->set(Z)V │ │ goto :goto_0 │ │ - .line 133 │ + .line 139 │ :cond_4 │ const/4 v2, 0x0 │ │ - .line 134 │ + .line 140 │ .local v2, "averageArrayAvg":I │ const/4 v3, 0x0 │ │ - .line 135 │ + .line 141 │ .local v3, "averageArrayCnt":I │ const/4 v13, 0x0 │ │ .local v13, "i":I │ :goto_1 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$100()[I │ │ @@ -161,76 +161,76 @@ │ │ move/from16 v21, v0 │ │ move/from16 v0, v21 │ │ if-ge v13, v0, :cond_6 │ │ - .line 136 │ + .line 142 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$100()[I │ │ move-result-object v21 │ │ aget v21, v21, v13 │ │ if-lez v21, :cond_5 │ │ - .line 137 │ + .line 143 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$100()[I │ │ move-result-object v21 │ │ aget v21, v21, v13 │ │ add-int v2, v2, v21 │ │ - .line 138 │ + .line 144 │ add-int/lit8 v3, v3, 0x1 │ │ - .line 135 │ + .line 141 │ :cond_5 │ add-int/lit8 v13, v13, 0x1 │ │ goto :goto_1 │ │ - .line 142 │ + .line 148 │ :cond_6 │ if-lez v3, :cond_b │ │ div-int v16, v2, v3 │ │ - .line 143 │ + .line 149 │ .local v16, "rollingAverage":I │ :goto_2 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$200()Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ move-result-object v15 │ │ - .line 144 │ + .line 150 │ .local v15, "newType":Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ move/from16 v0, v16 │ │ if-ge v14, v0, :cond_c │ │ - .line 145 │ + .line 151 │ sget-object v15, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;->RED:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ - .line 146 │ + .line 152 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$200()Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ move-result-object v21 │ │ move-object/from16 v0, v21 │ │ if-eq v15, v0, :cond_7 │ │ - .line 147 │ + .line 153 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$308()D │ │ - .line 154 │ + .line 160 │ :cond_7 │ :goto_3 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$400()I │ │ move-result v21 │ │ const/16 v22, 0x4 │ @@ -241,163 +241,163 @@ │ │ if-ne v0, v1, :cond_8 │ │ const/16 v21, 0x0 │ │ invoke-static/range {v21 .. v21}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$402(I)I │ │ - .line 155 │ + .line 161 │ :cond_8 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$100()[I │ │ move-result-object v21 │ │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$400()I │ │ move-result v22 │ │ aput v14, v21, v22 │ │ - .line 156 │ + .line 162 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$408()I │ │ - .line 159 │ + .line 165 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$200()Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ move-result-object v21 │ │ move-object/from16 v0, v21 │ │ if-eq v15, v0, :cond_9 │ │ - .line 160 │ + .line 166 │ invoke-static {v15}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$202(Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;)Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ - .line 161 │ + .line 167 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$500()Landroid/view/View; │ │ move-result-object v21 │ │ invoke-virtual/range {v21 .. v21}, Landroid/view/View;->postInvalidate()V │ │ - .line 164 │ + .line 170 │ :cond_9 │ invoke-static {}, Ljava/lang/System;->currentTimeMillis()J │ │ move-result-wide v10 │ │ - .line 165 │ + .line 171 │ .local v10, "endTime":J │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$600()J │ │ - move-result-wide v21 │ + move-result-wide v22 │ │ - sub-long v21, v10, v21 │ + sub-long v22, v10, v22 │ │ - move-wide/from16 v0, v21 │ + move-wide/from16 v0, v22 │ │ long-to-double v0, v0 │ │ - move-wide/from16 v21, v0 │ + move-wide/from16 v22, v0 │ │ - const-wide v23, 0x408f400000000000L # 1000.0 │ + const-wide v24, 0x408f400000000000L # 1000.0 │ │ - div-double v18, v21, v23 │ + div-double v18, v22, v24 │ │ - .line 166 │ + .line 172 │ .local v18, "totalTimeInSecs":D │ - const-wide/high16 v21, 0x4024000000000000L # 10.0 │ + const-wide/high16 v22, 0x4024000000000000L # 10.0 │ │ - cmpl-double v21, v18, v21 │ + cmpl-double v21, v18, v22 │ │ if-ltz v21, :cond_11 │ │ - .line 167 │ + .line 173 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$300()D │ │ - move-result-wide v21 │ + move-result-wide v22 │ │ - div-double v7, v21, v18 │ + div-double v8, v22, v18 │ │ - .line 168 │ - .local v7, "bps":D │ - const-wide/high16 v21, 0x404e000000000000L # 60.0 │ + .line 174 │ + .local v8, "bps":D │ + const-wide/high16 v22, 0x404e000000000000L # 60.0 │ │ - mul-double v21, v21, v7 │ + mul-double v22, v22, v8 │ │ - move-wide/from16 v0, v21 │ + move-wide/from16 v0, v22 │ │ - double-to-int v9, v0 │ + double-to-int v7, v0 │ │ - .line 169 │ - .local v9, "dpm":I │ + .line 175 │ + .local v7, "dpm":I │ const/16 v21, 0x1e │ │ move/from16 v0, v21 │ │ - if-lt v9, v0, :cond_a │ + if-lt v7, v0, :cond_a │ │ const/16 v21, 0xb4 │ │ move/from16 v0, v21 │ │ - if-le v9, v0, :cond_d │ + if-le v7, v0, :cond_d │ │ - .line 170 │ + .line 176 │ :cond_a │ invoke-static {}, Ljava/lang/System;->currentTimeMillis()J │ │ - move-result-wide v21 │ + move-result-wide v22 │ │ - invoke-static/range {v21 .. v22}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$602(J)J │ + invoke-static/range {v22 .. v23}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$602(J)J │ │ - .line 171 │ - const-wide/16 v21, 0x0 │ + .line 177 │ + const-wide/16 v22, 0x0 │ │ - invoke-static/range {v21 .. v22}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$302(D)D │ + invoke-static/range {v22 .. v23}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$302(D)D │ │ - .line 172 │ + .line 178 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$000()Ljava/util/concurrent/atomic/AtomicBoolean; │ │ move-result-object v21 │ │ const/16 v22, 0x0 │ │ invoke-virtual/range {v21 .. v22}, Ljava/util/concurrent/atomic/AtomicBoolean;->set(Z)V │ │ goto/16 :goto_0 │ │ - .line 142 │ - .end local v7 # "bps":D │ - .end local v9 # "dpm":I │ + .line 148 │ + .end local v7 # "dpm":I │ + .end local v8 # "bps":D │ .end local v10 # "endTime":J │ .end local v15 # "newType":Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ .end local v16 # "rollingAverage":I │ .end local v18 # "totalTimeInSecs":D │ :cond_b │ const/16 v16, 0x0 │ │ goto/16 :goto_2 │ │ - .line 150 │ + .line 156 │ .restart local v15 # "newType":Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ .restart local v16 # "rollingAverage":I │ :cond_c │ move/from16 v0, v16 │ │ if-le v14, v0, :cond_7 │ │ - .line 151 │ + .line 157 │ sget-object v15, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE;->GREEN:Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor$TYPE; │ │ goto/16 :goto_3 │ │ - .line 178 │ - .restart local v7 # "bps":D │ - .restart local v9 # "dpm":I │ + .line 185 │ + .restart local v7 # "dpm":I │ + .restart local v8 # "bps":D │ .restart local v10 # "endTime":J │ .restart local v18 # "totalTimeInSecs":D │ :cond_d │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$700()I │ │ move-result v21 │ │ @@ -409,37 +409,37 @@ │ │ if-ne v0, v1, :cond_e │ │ const/16 v21, 0x0 │ │ invoke-static/range {v21 .. v21}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$702(I)I │ │ - .line 179 │ + .line 186 │ :cond_e │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$800()[I │ │ move-result-object v21 │ │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$700()I │ │ move-result v22 │ │ - aput v9, v21, v22 │ + aput v7, v21, v22 │ │ - .line 180 │ + .line 187 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$708()I │ │ - .line 182 │ + .line 189 │ const/4 v4, 0x0 │ │ - .line 183 │ + .line 190 │ .local v4, "beatsArrayAvg":I │ const/4 v5, 0x0 │ │ - .line 184 │ + .line 191 │ .local v5, "beatsArrayCnt":I │ const/4 v13, 0x0 │ │ :goto_4 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$800()[I │ │ move-result-object v21 │ @@ -450,75 +450,75 @@ │ │ move/from16 v21, v0 │ │ move/from16 v0, v21 │ │ if-ge v13, v0, :cond_10 │ │ - .line 185 │ + .line 192 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$800()[I │ │ move-result-object v21 │ │ aget v21, v21, v13 │ │ if-lez v21, :cond_f │ │ - .line 186 │ + .line 193 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$800()[I │ │ move-result-object v21 │ │ aget v21, v21, v13 │ │ add-int v4, v4, v21 │ │ - .line 187 │ + .line 194 │ add-int/lit8 v5, v5, 0x1 │ │ - .line 184 │ + .line 191 │ :cond_f │ add-int/lit8 v13, v13, 0x1 │ │ goto :goto_4 │ │ - .line 190 │ + .line 197 │ :cond_10 │ div-int v6, v4, v5 │ │ - .line 191 │ + .line 198 │ .local v6, "beatsAvg":I │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$900()Landroid/widget/TextView; │ │ move-result-object v21 │ │ invoke-static {v6}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; │ │ move-result-object v22 │ │ invoke-virtual/range {v21 .. v22}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ - .line 192 │ + .line 199 │ invoke-static {}, Ljava/lang/System;->currentTimeMillis()J │ │ - move-result-wide v21 │ + move-result-wide v22 │ │ - invoke-static/range {v21 .. v22}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$602(J)J │ + invoke-static/range {v22 .. v23}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$602(J)J │ │ - .line 193 │ - const-wide/16 v21, 0x0 │ + .line 200 │ + const-wide/16 v22, 0x0 │ │ - invoke-static/range {v21 .. v22}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$302(D)D │ + invoke-static/range {v22 .. v23}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$302(D)D │ │ - .line 195 │ + .line 202 │ .end local v4 # "beatsArrayAvg":I │ .end local v5 # "beatsArrayCnt":I │ .end local v6 # "beatsAvg":I │ - .end local v7 # "bps":D │ - .end local v9 # "dpm":I │ + .end local v7 # "dpm":I │ + .end local v8 # "bps":D │ :cond_11 │ invoke-static {}, Lcom/jwetherell/heart_rate_monitor/HeartRateMonitor;->access$000()Ljava/util/concurrent/atomic/AtomicBoolean; │ │ move-result-object v21 │ │ const/16 v22, 0x0 ├── res/drawable-hdpi-v4/icon.png │ ├── sng │ │ @@ -1,80 +1,80 @@ │ │ #SNG: from stdin │ │ IHDR { │ │ width: 72; height: 72; bitdepth: 8; │ │ using color alpha; │ │ } │ │ IMAGE { │ │ pixels hex │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 00000000 00000000 00000001 00000002 00000004 00000006 00000008 00000009 0000000b 0000000b 0000000c 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000c 0000000b 0000000b 00000009 00000008 00000006 00000004 00000002 00000001 00000000 00000000 00000000 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 00000000 00000001 00000003 00000006 00000009 0000000d 00000011 00000014 00000017 00000019 0000001a 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001a 00000019 00000017 00000014 00000011 0000000d 00000009 00000006 00000003 00000001 00000000 00000000 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 00000001 00000003 00000006 0000000b 00000012 0000001d 5f7f1ca6 65891bd5 63881ad6 63881ad6 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63881ad6 63881ad6 65891bd5 5f7f1ca6 0000001d 00000012 0000000b 00000006 00000003 00000001 00000000 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 00000002 00000006 0000000b 00000013 00000023 5e811ab7 669112ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 669112ff 5e811ab7 00000023 00000013 0000000b 00000006 00000002 00000000 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 00000004 00000009 00000012 0000001d 7a9a39b0 87ac3eff 85a93bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85a93bff 87ac3eff 7a9a39b0 0000001d 00000012 00000009 00000004 00000001 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 00000006 0000000d 00000019 00000031 92be3bec a7d648ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a7d648ff 92be3bec 00000031 00000019 0000000d 00000006 00000001 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 00000008 00000012 00000020 0000003f 83b029e7 97cb30ff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 97cb30ff 83b029e7 0000003f 00000020 00000012 00000008 00000002 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000a 00000015 00000025 00000047 83ae2be9 98cb33ff 96c932ff 96c932ff 96c932ff 97c933ff 95c830ff 90c626ff 93c72cff 97c933ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 97c933ff 94c82eff 92c72aff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 96c933ff 95c82fff 91c629ff 95c930ff 96c933ff 96c932ff 96c931ff 92c729ff 95c82fff 97c933ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 98cb33ff 83ae2be9 00000047 00000025 00000015 0000000a 00000003 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000b 00000019 0000002a 0000004e 82ad2bea 98ca33ff 96c832ff 96c832ff 96c832ff 94c72fff 99c939ff b1d666ff a3cf4dff 93c62cff 96c832ff 95c832ff 96c832ff 95c731ff 95c731ff 96c832ff 96c832ff 96c832ff 8fc425ff bada78ff d9ecb7ff 98c836ff 94c72fff 96c832ff 95c731ff 96c832ff 96c832ff 95c731ff 95c731ff 96c832ff 91c52aff acd45eff dfeec1ff 9dcc41ff 94c62eff 93c62dff 9ecc42ff e0efc3ff acd35dff 91c529ff 96c832ff 96c832ff 96c832ff 96c832ff 96c832ff 96c832ff 96c832ff 96c832ff 98ca33ff 82ad2bea 0000004e 0000002a 00000019 0000000b 00000004 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000d 0000001b 0000002d 00000051 80a92beb 96c733ff 94c532ff 94c532ff 94c532ff 8dc124ff bcda80ff ffffffff dfecc2ff 90c22aff 93c431ff 92c32eff 8ec227ff 91c32cff 90c22aff 92c32eff 94c432ff 90c229ff 87be19ff c8e097ff fdfdfdff 98c638ff 90c229ff 8fc228ff 91c32bff 94c532ff 91c32bff 90c22bff 91c32dff 8fc229ff 90c22bff a9d05aff d6e8b1ff 9cc83fff 8fc228ff 8dc124ff 9dca44ff ffffffff b6d774ff 8dc024ff 94c532ff 94c532ff 94c532ff 94c532ff 94c532ff 94c532ff 94c532ff 94c532ff 96c733ff 80a92beb 00000051 0000002d 0000001b 0000000d 00000004 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000d 0000001b 0000002f 00000054 7fa82beb 95c632ff 93c431ff 93c431ff 94c431ff 8ec128ff e2eec8ff e3efcaff eff6e3ff a2cb4eff 8dc124ff c4de8fff cfe4a5ff e8f1d3ff e1eec7ff 9cc943ff 8ec127ff cae19aff ebf3d9ff e6f0d0ff eef5e1ff 92c32fff c1dc89ff cfe4a4ff e5f0d0ff aad05dff a0ca49ff e5f0cdff f1f6e5ff b9d87bff 8bbf20ff aad05cff d5e7afff 98c63aff abd05eff eaf3d8ff e0edc4ff fafcf7ff b4d670ff 8cc024ff 93c431ff 93c431ff 93c431ff 93c431ff 93c431ff 93c431ff 93c431ff 93c431ff 95c632ff 7fa82beb 00000054 0000002f 0000001b 0000000d 00000004 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000d 0000001c 00000030 00000054 7ea72aeb 94c531ff 92c330ff 92c330ff 8ec129ff 9eca49ff f7f9f3ff a0ca4bff e4efceff c4de90ff 84bb16ff dbebbeff fafbf9ff bdd982ff ffffffff bcda82ff 9fca4aff fffeffff c6df94ff dbeabbff f0f5e6ff 8ec129ff d6e7b2ff ffffffff c8df98ff 9bc840ff e7f0d3ff deecc2ff c3de8eff fdfcfeff 9dc945ff b1d46dff fffeffff 9fca4aff e6f0d1ff e5f0d0ff c0db88ff fefeffff b2d46eff 8bbf23ff 92c330ff 92c330ff 92c330ff 92c330ff 92c330ff 92c330ff 92c330ff 92c330ff 94c531ff 7ea72aeb 00000054 00000030 0000001c 0000000d 00000004 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 7da62aeb 93c331ff 91c130ff 91c130ff 89bd22ff bbd880ff ffffffff cee3a4ff eef5e0ff e3eeccff 87bc1dff daeabbff e0edc8ff 87bc1eff f5f8f0ff bcd985ff aed169ff fffdffff 8bbe26ff b2d36fff f1f6e8ff 8ec02bff d5e7b3ff e7f0d3ff 85bb19ff 95c338ff fffeffff b1d370ff 89bd22ff fefdffff b2d371ff abd063ff f8faf4ff a5cc57ff f7f9f3ff bbd881ff 86bc1cff f4f7eeff b4d473ff 8abd23ff 91c130ff 91c130ff 91c130ff 91c130ff 91c130ff 91c130ff 91c130ff 91c130ff 93c331ff 7da62aeb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 74a11ceb 89bc21ff 87ba20ff 87ba1fff 84b91aff dfebc6ff e6f0d0ff cde1a5ff d7e7b7ff f6f8f2ff 95c23aff d3e5afff deebc5ff 84b819ff f5f8efff b7d67cff 9ec74bff fdfcfeff 9cc646ff c0da8bff f0f5e7ff 84b81aff d1e4acff e3eecdff 82b716ff 89bb22ff f0f5e7ff c2db8fff 9cc646ff fbfbfbff 9fc84dff a7cc5bff f7f9f4ff 99c441ff eaf1daff c8df99ff 96c33dff fafbf8ff acce65ff 80b612ff 87ba20ff 87ba20ff 87ba20ff 87ba20ff 87ba20ff 87ba20ff 87ba20ff 87ba20ff 89bc21ff 74a11ceb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 9eb76beb bad87dff b7d57cff b6d478ff bdd986ff fafafaff cee1a5ff a6cc5cff b4d476ff f9faf7ff d0e3a9ff e1eccbff eaf1dcff b6d478ff f7f9f4ff d6e6b5ff b9d67eff f8f9f5ff f3f7ecff f6f9f3ff f1f5e8ff b6d478ff e2eecdff ecf3e0ff b6d478ff b2d272ff dfebc6ff f9faf5ff f3f7ebff f2f6ebff b6d478ff cce0a2ff f9faf9ff bcd885ff e1eccaff f9fbf6ff f1f5e8ff fdfcfdff cce0a2ff b3d373ff b7d57cff b7d57cff b7d57cff b7d57cff b7d57cff b7d57cff b7d57cff b7d57cff bad87dff 9eb76beb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 e0dce7eb ffffffff ffffffff ffffffff ffffffff fafafbff fffdffff ffffffff fffeffff fafafaff fffdffff fdfcffff fcfbfeff ffffffff fafafbff fffdffff ffffffff fafafaff fdfbffff fbfbfdff fbfafcff ffffffff fdfbffff fcfbfdff ffffffff ffffffff fdfbffff fbfafdff fdfbffff fafafbff ffffffff fffdffff fafafaff ffffffff fdfbffff fbfafcff fdfcffff f9f9f9ff fffdffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff e0dce7eb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 d6d6d6eb fcfcfcff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff fcfcfcff d6d6d6eb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 d6d6d6eb fcfcfcff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff fcfcfcff d6d6d6eb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 d5d5d5eb fbfbfbff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff fbfbfbff d5d5d5eb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 d5d5d5eb fafafaff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff fafafaff d5d5d5eb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 d5d5d5eb fafafaff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff fafafaff d5d5d5eb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 d4d4d4eb f8f8f8ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f8f8f8ff d4d4d4eb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 d3d3d3eb f8f8f8ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f8f8f8ff d3d3d3eb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 d2d2d2eb f7f7f7ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f7f7f7ff d2d2d2eb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 d2d2d2eb f7f7f7ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f7f7f7ff d2d2d2eb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 d2d2d2eb f5f5f5ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f3f3f3ff f3f3f4ff f3f3f3ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f5f5f5ff d2d2d2eb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 d1d1d1eb f5f5f5ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f5f5f5ff cfcfcfeb 00000054 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 d0d0d0eb f4f4f4ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f2f2f4ff ecefe9ff b6d37aff ecefe7ff f2f2f3ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f7f7f7ff d5d5d5eb 05050556 00000031 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 cfcfcfeb f3f3f3ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f2f1f4ff ebede5ff a5ca59ff e9ede3ff f1f1f3ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f3f3f3ff f5f5f5ff eeeeeeff ddddddfb 4a4a4a70 00000032 0000001d 0000000f 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 cfcfcfeb f3f3f3ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f2f1f3ff eceee7ff a8cc62ff e7ebdeff f2f1f4ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff efefefff f2f2f2ff efefefff d4d4d4ff ccccccff bcbcbcfc 39393973 00000033 0000001e 0000000f 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 cdcdcdeb f2f2f2ff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff eeeeeeff efefefff f1f0f3ff ededebff aacc66ff e8ebe2ff f4f1faff f1f0f4ff f0eff1ff efefefff eeeeeeff efefefff efefefff efefefff efefefff efefefff eeeeeeff f1f1f1ff ebebebff c6c6c6ff c1c1c1ff ccccccff bbbbbbf9 2929296f 00000033 0000001f 0000000f 00000006 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 cccccceb f0f0f0ff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff eeeeefff f2f0f7ff f5f1fdff f2f0f5ff e7ebe1ff a4c95cff cedeaeff e0e7d2ff e4e9dcff ededecff f4f0faff f3f0f9ff efeef0ff edededff edededff edededff edededff eeeeeeff f0f0f0ff cececeff bdbdbdff c6c6c6ff ccccccff bbbbbbf9 2727276f 00000034 00000020 00000010 00000006 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 cccccceb f0f0f0ff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff ededeeff f3f0f9ff f1eff5ff dae3c7ff bcd48bff a9cc66ff 97c342ff 8ebe2eff 8dbe2eff 90bf32ff 91bf35ff 9dc54eff b4d07bff d3e0b8ff eeeef0ff f3f0f9ff ededeeff edededff edededff eeeeeeff e8e8e8ff c1c1c1ff c1c1c1ff c6c6c6ff ccccccff bbbbbbfa 28282870 00000035 00000020 00000010 00000006 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 cbcbcbeb efefefff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ececebff efedf2ff f3eff9ff d6e1c0ff a7ca62ff 8cbc2cff 85b91fff 88ba23ff 8bbc2aff 8ebd2eff 8dbd2dff 8bbc2aff 8bbc29ff 8abb27ff 86b91fff 89bb26ff a1c655ff d2dfb8ff f2eff8ff eeedf0ff ecececff eeeeeeff e4e4e4ff bbbbbbff c1c1c1ff c5c5c5ff cbcbcbff bababafa 27272771 00000035 00000020 00000010 00000006 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 cacacaeb eeeeeeff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebeaff efedf2ff f1eef7ff ecebecff ebebebff ebebebff ebebeaff f0edf5ff eaeae9ff b4d07dff 8aba29ff 87b921ff 8cbc2dff 8dbc2fff 8dbc2fff 8dbc2fff 8dbc30ff 8cbc2dff 8bbb2aff 8bbb2aff 8cbb2cff 8dbc30ff 8dbc2eff 87b924ff 88ba25ff b7d182ff edecefff eeedf1ff eeeeeeff e0e0e0ff b7b7b7ff c1c1c1ff c5c5c7ff cecdd1ff bbbabdfa 27282771 00000035 00000020 00000011 00000006 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 cacacaeb eeeeeeff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff efecf2ff d3dfbcff c7d8a2ff f0edf4ff efedf4ff eaeaeaff f1edf6ff e2e6daff 9fc655ff 84b71eff 8bbb2cff 8dbc2fff 8cbc2fff 8cbc2fff 8cbc2fff 8cbc2fff 8bbb2cff 8fbc33ff ccdbadff cedcb2ff 92be39ff 8bbb2cff 8cbc2fff 8dbc2fff 8bbb2cff 84b71dff abcb6cff edeceeff eeedefff ebebebff b8b9b8ff c0bec3ff c4c4c2ff bcc4afff b0b5a7f9 29282a70 00000035 00000020 00000011 00000006 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 c9c9c9eb ecececff e9e9e9ff e9e9e9ff e9e9e9ff e9e9e9ff e9e9e9ff e9e9e9ff e9e9e9ff e9e9e9ff e9e9e9ff e9e9e9ff e9e9e9ff e9e9e9ff e9e9e9ff edebf0ff dbe2cdff a3c65cff a7c865ff dbe2ccff f5efffff e3e6dbff 99c14aff 85b71fff 8cba2fff 8cba2fff 8cba2fff 8cba2fff 8cba2fff 8cba2fff 8cba2fff 89b929ff 94be3fff eeecf2ff f0edf6ff 9ac14bff 89b928ff 8cba2fff 8cba2fff 8cba2fff 8cba2eff 83b61eff b3ce7cff edebf1ff eeeeefff d9d7dcff 9ba091ff 89a352ff 8dae4dff 8ca35df9 2d2a3272 00000035 00000020 00000010 00000006 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 c7c7c7eb ebebebff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e7ff eceaf0ff eceaf0ff c1d59bff 9bc24fff bed394ff a3c65eff 84b620ff 8cba2fff 8bba2fff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 8ab92bff a3c65dff a4c760ff 8aba2bff 8bba2eff 8bba2eff 8bba2eff 8cba2fff 8cba2fff 86b724ff 82b51cff d4debfff f0ecf8ff eaece5ff 8aae43ff 61841cff 76933dff 7a904ffa 24222871 00000035 00000020 00000010 00000006 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 c7c7c7eb ebebebff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e9e8eaff efecf6ff e3e6dfff 99c14bff 83b61fff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 86b724ff 86b723ff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 89b929ff 82b61dff 96c044ff cad8abff e0e3d7ff eceaf1ff d6dfc3ff 8abd26ff 88b72cff 77a027ff 5d7d1fef 0000005e 00000034 00000020 00000010 00000006 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 c6c6c6eb eaeaeaff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff ebe9eeff dde2d3ff 92bd3cff 89b729ff 8bb92eff 8bb92dff 8bb92eff 8bb92eff 8bb92eff 8bb92eff 8bb92eff 8bb92eff 8bb92eff 8bb92eff 8bb92eff 8bb92eff 8bb92eff 8bb92eff 8bb92eff 8ab92cff 83b51fff 8cb930ff bcd191ff e4e5e1ff c9d7aaff 90bb38ff c8d8a9ff e0e4d9ff 8ab82bff 8bb92cff 90c030ff 7ba528ea 00000057 00000033 0000001f 0000000f 00000006 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 c5c5c5eb e9e9e9ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff ece9f3ff b2cc7dff 83b41eff 8bb82fff 85b624ff 83b41fff 88b72aff 8bb82fff 8ab82eff 8ab82eff 8ab82eff 8ab82eff 8ab82eff 8ab82eff 8ab82eff 8ab82eff 8ab82eff 8ab82eff 85b523ff 85b625ff acc971ff dee2d6ff d5dec4ff a0c35aff 84b520ff 82b41eff 96be47ff e7e6e8ff aac86dff 83b521ff 8cba2fff 769e28ec 00000057 00000033 0000001e 0000000f 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 c4c4c4eb e9e9e9ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e7e6e9ff e1e3dcff 93bc40ff 86b627ff 87b628ff a8c76bff c4d4a1ff 93bc41ff 87b62aff 89b82eff 89b82eff 89b82eff 89b82eff 89b82eff 89b82eff 89b82eff 8ab82eff 86b627ff 82b41fff 9dc155ff d3ddc1ff dee2d7ff adca75ff 86b627ff 84b523ff 89b72eff 8ab82eff 81b41eff bbd191ff dee2d6ff 89b82eff 89b92bff 769f28eb 00000056 00000032 0000001d 0000000f 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 c4c4c4eb e7e7e7ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff eae7f0ff cad7afff 85b426ff 87b62aff 87b62aff d7decaff fdf1ffff adc977ff 82b31fff 89b62eff 89b62eff 89b62eff 89b62eff 89b62eff 89b62eff 87b52aff 81b31eff 90ba3dff c5d4a5ff e2e3dfff bdd094ff 8cb834ff 82b320ff 88b62cff 89b62eff 89b62eff 89b62eff 87b529ff 8bb832ff e0e2dbff b6cd87ff 84b520ff 769e28eb 00000056 00000031 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 c4c4c4eb e7e7e7ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff ebe8f2ff b8ce8cff 81b21eff 89b62eff 86b429ff a2c360ff b9cf8fff 91ba3dff 87b52aff 89b62eff 89b62eff 89b62eff 89b62eff 88b62cff 82b320ff 88b52cff b5cd87ff e0e2ddff cad7b1ff 95bd46ff 82b21fff 87b52aff 89b62eff 89b62eff 89b62eff 89b62eff 89b62eff 89b62eff 82b220ff acc773ff e5e4e6ff 93bc3fff 729a1feb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 c4c4c4eb e6e6e6ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e4ff e8e6edff acc876ff 81b31fff 88b62dff 88b62eff 84b425ff 81b320ff 86b52aff 88b62eff 88b62dff 88b62dff 88b62dff 83b323ff 83b322ff a5c467ff d9decfff d6ddc9ff a1c260ff 82b321ff 84b425ff 88b62dff 88b62dff 88b62dff 88b62dff 88b62dff 88b62dff 88b62dff 88b62dff 87b62bff 84b425ff d3dbc4ff c3d5a1ff 6f9918eb 00000055 00000030 0000001d 0000000e 00000004 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 c4c4c4eb e5e5e5ff e2e2e2ff e2e2e2ff e2e2e2ff e2e2e2ff e2e2e2ff e2e2e2ff e2e2e2ff e2e2e2ff e2e2e2ff e2e2e2ff e2e2e2ff e2e2e2ff e2e2e2ff e2e2e2ff e4e2e4ff e6e4eaff a8c56dff 82b321ff 88b62dff 88b62dff 88b52dff 88b52dff 88b62dff 88b62dff 88b62dff 85b427ff 80b21dff 98bd4dff ced8b8ff dde0d8ff afc97dff 86b529ff 82b321ff 88b52dff 88b62dff 88b62dff 88b62dff 88b62dff 88b62dff 88b62dff 88b62dff 88b62dff 88b62dff 88b62dff 82b321ff 9cc056ff e4e5e3ff 8ba752eb 00000055 00000030 0000001d 0000000e 00000004 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 c2c2c2eb e4e4e4ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e2e1e2ff e6e3eaff aac572ff 81b120ff 87b42dff 87b42dff 87b42dff 87b42dff 88b42dff 86b42aff 7fb01eff 8cb737ff bed09cff e0e1deff becf9aff 8cb737ff 80b11fff 86b42bff 88b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42cff 80b11fff c3d3a3ff c1c2c0eb 00000054 00000030 0000001d 0000000e 00000004 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 c2c2c2eb e4e4e4ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e8e4efff b4ca87ff 7fb01dff 87b42dff 87b42dff 87b42dff 86b42cff 81b120ff 85b328ff aec87cff dcdfd8ff cbd6b6ff 96bc4cff 80b01eff 84b328ff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 83b225ff 94bc45ff bec0baeb 00000255 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 c1c1c1eb e3e3e3ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e6e3ecff c5d3a9ff 82b124ff 86b32cff 86b32dff 82b124ff 80b020ff a0c060ff d4dac7ff d6dbccff a2c165ff 81b123ff 82b124ff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 85b428ff 8da658eb 00000555 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 c0c0c0eb e2e2e2ff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff e1e1e4ff daddd4ff 8db63bff 80af22ff 7eaf1dff 93b946ff c7d3afff dcded9ff b1c884ff 86b22cff 80b021ff 86b22cff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 88b42dff 719822eb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 c0c0c0eb e2e2e2ff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff e5e2ebff abc577ff 83b127ff b9cc91ff dddedaff c0d0a1ff 8db63cff 7faf1fff 85b12aff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 88b42eff 739927eb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 c0c0c0eb e1e1e1ff dededeff dededeff dededeff dededeff dededeff dededeff dededeff dededeff dededeff dededeff dededeff dededeff dededeff dededeff dededeff dededeff e1dfe3ff d6daceff cfd7c0ff cbd5b9ff 97bc51ff 7eaf1eff 82b126ff 86b22dff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 87b42dff 729926eb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 bebebeeb e0e0e0ff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff e0dfe3ff e4e0eaff e4e0eaff e8e3f4ff c9d4b6ff 7eae1fff 80af21ff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 87b32cff 729826eb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 bebebeeb e0e0e0ff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff dddddcff e1e0e6ff d5d9cdff b6c98fff b3c889ff cfd6c2ff e1dfe5ff 98bb52ff 7fae21ff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 87b32cff 729826eb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 bdbdbdeb dfdfdfff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff e1dee4ff cdd5bfff 8bb43aff 7dac1dff 7ead1fff 84b02bff c7d1b0ff ced5c0ff 82af27ff 83b02aff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 86b22cff 719726eb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 bdbdbdeb dfdfdfff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dddcddff dfdee3ff 9ebd5eff 7cac1bff 84b02cff 84b02cff 7fae23ff 8ab338ff dcdcdaff a7c272ff 7cac1dff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 86b22cff 719726eb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 bcbcbceb dededeff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dcdbdeff dadbd9ff 8cb43dff 80ae26ff 83af2cff 83af2cff 83af2cff 7cac1eff abc47cff d8dad4ff 87b132ff 81ae27ff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 85b12cff 709626eb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001d 00000030 00000055 bcbcbceb dededeff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dcdbdcff dedde1ff 9bbb5cff 7cab1fff 83af2cff 83af2cff 83af2cff 81ae29ff 83af2bff d2d7c9ff b6c991ff 7cab1dff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 85b12cff 709626eb 00000055 00000030 0000001d 0000000e 00000005 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000e 0000001c 00000030 00000054 bcbcbceb ddddddff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dfdde4ff c3cfadff 7fad25ff 82ae2aff 83ae2cff 83ae2cff 83ae2cff 7dac20ff 9dbc60ff dcdbdeff 8fb544ff 7fac23ff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 85b02cff 709526eb 00000054 00000030 0000001c 0000000e 00000004 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000d 0000001b 0000002f 00000053 bcbcbceb ddddddff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadbff dfdde5ff a1be68ff 7caa1eff 83ae2cff 83ae2cff 83ae2cff 83ae2bff 7dac21ff c3cfadff c3ceadff 7dac21ff 82ae2bff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 85b02cff 709526eb 00000053 0000002f 0000001b 0000000d 00000004 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000d 0000001a 0000002c 00000050 c4c4c4ef e4e4e4ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e0e0e0ff e4e2e8ff d5dbcaff 8db639ff 84b229ff 87b32dff 87b32dff 87b32dff 83b125ff 94ba47ff dfe0deff a5c269ff 82b123ff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 89b62dff 759c27ef 00000050 0000002c 0000001a 0000000d 00000004 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000b 00000018 00000028 00000048 7f7f7fd6 858585ef 838383f1 828282f2 818181f3 818181f4 818181f4 818181f4 818181f4 818181f4 818181f4 818181f4 818181f4 818181f4 818181f4 818181f4 87848af4 637244f4 4a6612f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 496611f4 717960f4 777c6cf4 4c6715f4 4d6818f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f3 4e6919f2 4f691af1 4f6b1aef 4c6519d6 00000048 00000028 00000018 0000000b 00000004 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 0000000a 00000014 00000023 0000003b 00000062 0000007e 00000089 00000091 00000098 0000009b 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009b 00000098 00000091 00000089 0000007e 00000062 0000003b 00000023 00000014 0000000a 00000004 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 00000008 00000011 0000001c 0000002b 0000003c 0000004b 00000057 0000005f 00000066 00000069 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 00000069 00000066 0000005f 00000057 0000004b 0000003c 0000002b 0000001c 00000011 00000008 00000003 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 00000006 0000000c 00000014 00000020 0000002c 00000037 00000040 00000046 0000004b 0000004d 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004d 0000004b 00000046 00000040 00000037 0000002c 00000020 00000014 0000000c 00000006 00000001 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 00000004 00000008 0000000e 00000015 0000001d 00000025 0000002b 0000002f 00000033 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000033 0000002f 0000002b 00000025 0000001d 00000015 0000000e 00000008 00000004 00000001 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 00000002 00000005 00000008 0000000d 00000012 00000016 0000001a 0000001d 0000001f 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 0000001f 0000001d 0000001a 00000016 00000012 0000000d 00000008 00000005 00000002 00000001 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ -ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 00000001 00000002 00000004 00000006 00000009 0000000b 0000000d 0000000f 00000010 00000010 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000010 00000010 0000000f 0000000d 0000000b 00000009 00000006 00000004 00000002 00000001 00000000 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 ffffff00 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 00000002 00000004 00000006 00000008 00000009 0000000b 0000000b 0000000c 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000d 0000000c 0000000b 0000000b 00000009 00000008 00000006 00000004 00000002 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 00000003 00000006 00000009 0000000d 00000011 00000014 00000017 00000019 0000001a 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001b 0000001a 00000019 00000017 00000014 00000011 0000000d 00000009 00000006 00000003 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 00000003 00000006 0000000b 00000012 0000001d 5f7f1ca6 65891bd5 63881ad6 63881ad6 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63871ad7 63881ad6 63881ad6 65891bd5 5f7f1ca6 0000001d 00000012 0000000b 00000006 00000003 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000002 00000006 0000000b 00000013 00000023 5e811ab7 669112ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 608d08ff 669112ff 5e811ab7 00000023 00000013 0000000b 00000006 00000002 00000000 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000004 00000009 00000012 0000001d 7a9a39b0 87ac3eff 85a93bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85aa3bff 85a93bff 87ac3eff 7a9a39b0 0000001d 00000012 00000009 00000004 00000001 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000006 0000000d 00000019 00000031 92be3bec a7d648ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a6d548ff a7d648ff 92be3bec 00000031 00000019 0000000d 00000006 00000001 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000008 00000012 00000020 0000003f 83b029e7 97cb30ff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 95c92fff 97cb30ff 83b029e7 0000003f 00000020 00000012 00000008 00000002 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000a 00000015 00000025 00000047 83ae2be9 98cb33ff 96c932ff 96c932ff 96c932ff 97c933ff 95c830ff 90c626ff 93c72cff 97c933ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 97c933ff 94c82eff 92c72aff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 96c933ff 95c82fff 91c629ff 95c930ff 96c933ff 96c932ff 96c931ff 92c729ff 95c82fff 97c933ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 96c932ff 98cb33ff 83ae2be9 00000047 00000025 00000015 0000000a 00000003 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000b 00000019 0000002a 0000004e 82ad2bea 98ca33ff 96c832ff 96c832ff 96c832ff 94c72fff 99c939ff b1d666ff a3cf4dff 93c62cff 96c832ff 95c832ff 96c832ff 95c731ff 95c731ff 96c832ff 96c832ff 96c832ff 8fc425ff bada78ff d9ecb7ff 98c836ff 94c72fff 96c832ff 95c731ff 96c832ff 96c832ff 95c731ff 95c731ff 96c832ff 91c52aff acd45eff dfeec1ff 9dcc41ff 94c62eff 93c62dff 9ecc42ff e0efc3ff acd35dff 91c529ff 96c832ff 96c832ff 96c832ff 96c832ff 96c832ff 96c832ff 96c832ff 96c832ff 98ca33ff 82ad2bea 0000004e 0000002a 00000019 0000000b 00000004 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000d 0000001b 0000002d 00000051 80a92beb 96c733ff 94c532ff 94c532ff 94c532ff 8dc124ff bcda80ff ffffffff dfecc2ff 90c22aff 93c431ff 92c32eff 8ec227ff 91c32cff 90c22aff 92c32eff 94c432ff 90c229ff 87be19ff c8e097ff fdfdfdff 98c638ff 90c229ff 8fc228ff 91c32bff 94c532ff 91c32bff 90c22bff 91c32dff 8fc229ff 90c22bff a9d05aff d6e8b1ff 9cc83fff 8fc228ff 8dc124ff 9dca44ff ffffffff b6d774ff 8dc024ff 94c532ff 94c532ff 94c532ff 94c532ff 94c532ff 94c532ff 94c532ff 94c532ff 96c733ff 80a92beb 00000051 0000002d 0000001b 0000000d 00000004 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000d 0000001b 0000002f 00000054 7fa82beb 95c632ff 93c431ff 93c431ff 94c431ff 8ec128ff e2eec8ff e3efcaff eff6e3ff a2cb4eff 8dc124ff c4de8fff cfe4a5ff e8f1d3ff e1eec7ff 9cc943ff 8ec127ff cae19aff ebf3d9ff e6f0d0ff eef5e1ff 92c32fff c1dc89ff cfe4a4ff e5f0d0ff aad05dff a0ca49ff e5f0cdff f1f6e5ff b9d87bff 8bbf20ff aad05cff d5e7afff 98c63aff abd05eff eaf3d8ff e0edc4ff fafcf7ff b4d670ff 8cc024ff 93c431ff 93c431ff 93c431ff 93c431ff 93c431ff 93c431ff 93c431ff 93c431ff 95c632ff 7fa82beb 00000054 0000002f 0000001b 0000000d 00000004 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000d 0000001c 00000030 00000054 7ea72aeb 94c531ff 92c330ff 92c330ff 8ec129ff 9eca49ff f7f9f3ff a0ca4bff e4efceff c4de90ff 84bb16ff dbebbeff fafbf9ff bdd982ff ffffffff bcda82ff 9fca4aff fffeffff c6df94ff dbeabbff f0f5e6ff 8ec129ff d6e7b2ff ffffffff c8df98ff 9bc840ff e7f0d3ff deecc2ff c3de8eff fdfcfeff 9dc945ff b1d46dff fffeffff 9fca4aff e6f0d1ff e5f0d0ff c0db88ff fefeffff b2d46eff 8bbf23ff 92c330ff 92c330ff 92c330ff 92c330ff 92c330ff 92c330ff 92c330ff 92c330ff 94c531ff 7ea72aeb 00000054 00000030 0000001c 0000000d 00000004 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 7da62aeb 93c331ff 91c130ff 91c130ff 89bd22ff bbd880ff ffffffff cee3a4ff eef5e0ff e3eeccff 87bc1dff daeabbff e0edc8ff 87bc1eff f5f8f0ff bcd985ff aed169ff fffdffff 8bbe26ff b2d36fff f1f6e8ff 8ec02bff d5e7b3ff e7f0d3ff 85bb19ff 95c338ff fffeffff b1d370ff 89bd22ff fefdffff b2d371ff abd063ff f8faf4ff a5cc57ff f7f9f3ff bbd881ff 86bc1cff f4f7eeff b4d473ff 8abd23ff 91c130ff 91c130ff 91c130ff 91c130ff 91c130ff 91c130ff 91c130ff 91c130ff 93c331ff 7da62aeb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 74a11ceb 89bc21ff 87ba20ff 87ba1fff 84b91aff dfebc6ff e6f0d0ff cde1a5ff d7e7b7ff f6f8f2ff 95c23aff d3e5afff deebc5ff 84b819ff f5f8efff b7d67cff 9ec74bff fdfcfeff 9cc646ff c0da8bff f0f5e7ff 84b81aff d1e4acff e3eecdff 82b716ff 89bb22ff f0f5e7ff c2db8fff 9cc646ff fbfbfbff 9fc84dff a7cc5bff f7f9f4ff 99c441ff eaf1daff c8df99ff 96c33dff fafbf8ff acce65ff 80b612ff 87ba20ff 87ba20ff 87ba20ff 87ba20ff 87ba20ff 87ba20ff 87ba20ff 87ba20ff 89bc21ff 74a11ceb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 9eb76beb bad87dff b7d57cff b6d478ff bdd986ff fafafaff cee1a5ff a6cc5cff b4d476ff f9faf7ff d0e3a9ff e1eccbff eaf1dcff b6d478ff f7f9f4ff d6e6b5ff b9d67eff f8f9f5ff f3f7ecff f6f9f3ff f1f5e8ff b6d478ff e2eecdff ecf3e0ff b6d478ff b2d272ff dfebc6ff f9faf5ff f3f7ebff f2f6ebff b6d478ff cce0a2ff f9faf9ff bcd885ff e1eccaff f9fbf6ff f1f5e8ff fdfcfdff cce0a2ff b3d373ff b7d57cff b7d57cff b7d57cff b7d57cff b7d57cff b7d57cff b7d57cff b7d57cff bad87dff 9eb76beb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 e0dce7eb ffffffff ffffffff ffffffff ffffffff fafafbff fffdffff ffffffff fffeffff fafafaff fffdffff fdfcffff fcfbfeff ffffffff fafafbff fffdffff ffffffff fafafaff fdfbffff fbfbfdff fbfafcff ffffffff fdfbffff fcfbfdff ffffffff ffffffff fdfbffff fbfafdff fdfbffff fafafbff ffffffff fffdffff fafafaff ffffffff fdfbffff fbfafcff fdfcffff f9f9f9ff fffdffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff e0dce7eb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 d6d6d6eb fcfcfcff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff fcfcfcff d6d6d6eb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 d6d6d6eb fcfcfcff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff f9f9f9ff fcfcfcff d6d6d6eb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 d5d5d5eb fbfbfbff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff f8f8f8ff fbfbfbff d5d5d5eb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 d5d5d5eb fafafaff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff fafafaff d5d5d5eb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 d5d5d5eb fafafaff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff f7f7f7ff fafafaff d5d5d5eb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 d4d4d4eb f8f8f8ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f8f8f8ff d4d4d4eb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 d3d3d3eb f8f8f8ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f5f5f5ff f8f8f8ff d3d3d3eb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 d2d2d2eb f7f7f7ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f7f7f7ff d2d2d2eb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 d2d2d2eb f7f7f7ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f4f4f4ff f7f7f7ff d2d2d2eb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 d2d2d2eb f5f5f5ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f3f3f3ff f3f3f4ff f3f3f3ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f5f5f5ff d2d2d2eb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 d1d1d1eb f5f5f5ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f2f2f2ff f5f5f5ff cfcfcfeb 00000054 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 d0d0d0eb f4f4f4ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f2f2f4ff ecefe9ff b6d37aff ecefe7ff f2f2f3ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f1f1f1ff f7f7f7ff d5d5d5eb 05050556 00000031 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 cfcfcfeb f3f3f3ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f2f1f4ff ebede5ff a5ca59ff e9ede3ff f1f1f3ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f3f3f3ff f5f5f5ff eeeeeeff ddddddfb 4a4a4a70 00000032 0000001d 0000000f 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 cfcfcfeb f3f3f3ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f2f1f3ff eceee7ff a8cc62ff e7ebdeff f2f1f4ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff f0f0f0ff efefefff f2f2f2ff efefefff d4d4d4ff ccccccff bcbcbcfc 39393973 00000033 0000001e 0000000f 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 cdcdcdeb f2f2f2ff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff efefefff eeeeeeff efefefff f1f0f3ff ededebff aacc66ff e8ebe2ff f4f1faff f1f0f4ff f0eff1ff efefefff eeeeeeff efefefff efefefff efefefff efefefff efefefff eeeeeeff f1f1f1ff ebebebff c6c6c6ff c1c1c1ff ccccccff bbbbbbf9 2929296f 00000033 0000001f 0000000f 00000006 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 cccccceb f0f0f0ff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff eeeeefff f2f0f7ff f5f1fdff f2f0f5ff e7ebe1ff a4c95cff cedeaeff e0e7d2ff e4e9dcff ededecff f4f0faff f3f0f9ff efeef0ff edededff edededff edededff edededff eeeeeeff f0f0f0ff cececeff bdbdbdff c6c6c6ff ccccccff bbbbbbf9 2727276f 00000034 00000020 00000010 00000006 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 cccccceb f0f0f0ff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff edededff ededeeff f3f0f9ff f1eff5ff dae3c7ff bcd48bff a9cc66ff 97c342ff 8ebe2eff 8dbe2eff 90bf32ff 91bf35ff 9dc54eff b4d07bff d3e0b8ff eeeef0ff f3f0f9ff ededeeff edededff edededff eeeeeeff e8e8e8ff c1c1c1ff c1c1c1ff c6c6c6ff ccccccff bbbbbbfa 28282870 00000035 00000020 00000010 00000006 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 cbcbcbeb efefefff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ecececff ececebff efedf2ff f3eff9ff d6e1c0ff a7ca62ff 8cbc2cff 85b91fff 88ba23ff 8bbc2aff 8ebd2eff 8dbd2dff 8bbc2aff 8bbc29ff 8abb27ff 86b91fff 89bb26ff a1c655ff d2dfb8ff f2eff8ff eeedf0ff ecececff eeeeeeff e4e4e4ff bbbbbbff c1c1c1ff c5c5c5ff cbcbcbff bababafa 27272771 00000035 00000020 00000010 00000006 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 cacacaeb eeeeeeff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebeaff efedf2ff f1eef7ff ecebecff ebebebff ebebebff ebebeaff f0edf5ff eaeae9ff b4d07dff 8aba29ff 87b921ff 8cbc2dff 8dbc2fff 8dbc2fff 8dbc2fff 8dbc30ff 8cbc2dff 8bbb2aff 8bbb2aff 8cbb2cff 8dbc30ff 8dbc2eff 87b924ff 88ba25ff b7d182ff edecefff eeedf1ff eeeeeeff e0e0e0ff b7b7b7ff c1c1c1ff c5c5c7ff cecdd1ff bbbabdfa 27282771 00000035 00000020 00000011 00000006 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 cacacaeb eeeeeeff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff ebebebff efecf2ff d3dfbcff c7d8a2ff f0edf4ff efedf4ff eaeaeaff f1edf6ff e2e6daff 9fc655ff 84b71eff 8bbb2cff 8dbc2fff 8cbc2fff 8cbc2fff 8cbc2fff 8cbc2fff 8bbb2cff 8fbc33ff ccdbadff cedcb2ff 92be39ff 8bbb2cff 8cbc2fff 8dbc2fff 8bbb2cff 84b71dff abcb6cff edeceeff eeedefff ebebebff b8b9b8ff c0bec3ff c4c4c2ff bcc4afff b0b5a7f9 29282a70 00000035 00000020 00000011 00000006 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 c9c9c9eb ecececff e9e9e9ff e9e9e9ff e9e9e9ff e9e9e9ff e9e9e9ff e9e9e9ff e9e9e9ff e9e9e9ff e9e9e9ff e9e9e9ff e9e9e9ff e9e9e9ff e9e9e9ff edebf0ff dbe2cdff a3c65cff a7c865ff dbe2ccff f5efffff e3e6dbff 99c14aff 85b71fff 8cba2fff 8cba2fff 8cba2fff 8cba2fff 8cba2fff 8cba2fff 8cba2fff 89b929ff 94be3fff eeecf2ff f0edf6ff 9ac14bff 89b928ff 8cba2fff 8cba2fff 8cba2fff 8cba2eff 83b61eff b3ce7cff edebf1ff eeeeefff d9d7dcff 9ba091ff 89a352ff 8dae4dff 8ca35df9 2d2a3272 00000035 00000020 00000010 00000006 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 c7c7c7eb ebebebff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e7ff eceaf0ff eceaf0ff c1d59bff 9bc24fff bed394ff a3c65eff 84b620ff 8cba2fff 8bba2fff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 8ab92bff a3c65dff a4c760ff 8aba2bff 8bba2eff 8bba2eff 8bba2eff 8cba2fff 8cba2fff 86b724ff 82b51cff d4debfff f0ecf8ff eaece5ff 8aae43ff 61841cff 76933dff 7a904ffa 24222871 00000035 00000020 00000010 00000006 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 c7c7c7eb ebebebff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e8e8e8ff e9e8eaff efecf6ff e3e6dfff 99c14bff 83b61fff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 86b724ff 86b723ff 8bba2eff 8bba2eff 8bba2eff 8bba2eff 89b929ff 82b61dff 96c044ff cad8abff e0e3d7ff eceaf1ff d6dfc3ff 8abd26ff 88b72cff 77a027ff 5d7d1fef 0000005e 00000034 00000020 00000010 00000006 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 c6c6c6eb eaeaeaff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff e7e7e7ff ebe9eeff dde2d3ff 92bd3cff 89b729ff 8bb92eff 8bb92dff 8bb92eff 8bb92eff 8bb92eff 8bb92eff 8bb92eff 8bb92eff 8bb92eff 8bb92eff 8bb92eff 8bb92eff 8bb92eff 8bb92eff 8bb92eff 8ab92cff 83b51fff 8cb930ff bcd191ff e4e5e1ff c9d7aaff 90bb38ff c8d8a9ff e0e4d9ff 8ab82bff 8bb92cff 90c030ff 7ba528ea 00000057 00000033 0000001f 0000000f 00000006 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 c5c5c5eb e9e9e9ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff ece9f3ff b2cc7dff 83b41eff 8bb82fff 85b624ff 83b41fff 88b72aff 8bb82fff 8ab82eff 8ab82eff 8ab82eff 8ab82eff 8ab82eff 8ab82eff 8ab82eff 8ab82eff 8ab82eff 8ab82eff 85b523ff 85b625ff acc971ff dee2d6ff d5dec4ff a0c35aff 84b520ff 82b41eff 96be47ff e7e6e8ff aac86dff 83b521ff 8cba2fff 769e28ec 00000057 00000033 0000001e 0000000f 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 c4c4c4eb e9e9e9ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e6e6e6ff e7e6e9ff e1e3dcff 93bc40ff 86b627ff 87b628ff a8c76bff c4d4a1ff 93bc41ff 87b62aff 89b82eff 89b82eff 89b82eff 89b82eff 89b82eff 89b82eff 89b82eff 8ab82eff 86b627ff 82b41fff 9dc155ff d3ddc1ff dee2d7ff adca75ff 86b627ff 84b523ff 89b72eff 8ab82eff 81b41eff bbd191ff dee2d6ff 89b82eff 89b92bff 769f28eb 00000056 00000032 0000001d 0000000f 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 c4c4c4eb e7e7e7ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff eae7f0ff cad7afff 85b426ff 87b62aff 87b62aff d7decaff fdf1ffff adc977ff 82b31fff 89b62eff 89b62eff 89b62eff 89b62eff 89b62eff 89b62eff 87b52aff 81b31eff 90ba3dff c5d4a5ff e2e3dfff bdd094ff 8cb834ff 82b320ff 88b62cff 89b62eff 89b62eff 89b62eff 87b529ff 8bb832ff e0e2dbff b6cd87ff 84b520ff 769e28eb 00000056 00000031 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 c4c4c4eb e7e7e7ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff e4e4e4ff ebe8f2ff b8ce8cff 81b21eff 89b62eff 86b429ff a2c360ff b9cf8fff 91ba3dff 87b52aff 89b62eff 89b62eff 89b62eff 89b62eff 88b62cff 82b320ff 88b52cff b5cd87ff e0e2ddff cad7b1ff 95bd46ff 82b21fff 87b52aff 89b62eff 89b62eff 89b62eff 89b62eff 89b62eff 89b62eff 82b220ff acc773ff e5e4e6ff 93bc3fff 729a1feb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 c4c4c4eb e6e6e6ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e3ff e3e3e4ff e8e6edff acc876ff 81b31fff 88b62dff 88b62eff 84b425ff 81b320ff 86b52aff 88b62eff 88b62dff 88b62dff 88b62dff 83b323ff 83b322ff a5c467ff d9decfff d6ddc9ff a1c260ff 82b321ff 84b425ff 88b62dff 88b62dff 88b62dff 88b62dff 88b62dff 88b62dff 88b62dff 88b62dff 87b62bff 84b425ff d3dbc4ff c3d5a1ff 6f9918eb 00000055 00000030 0000001d 0000000e 00000004 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 c4c4c4eb e5e5e5ff e2e2e2ff e2e2e2ff e2e2e2ff e2e2e2ff e2e2e2ff e2e2e2ff e2e2e2ff e2e2e2ff e2e2e2ff e2e2e2ff e2e2e2ff e2e2e2ff e2e2e2ff e2e2e2ff e4e2e4ff e6e4eaff a8c56dff 82b321ff 88b62dff 88b62dff 88b52dff 88b52dff 88b62dff 88b62dff 88b62dff 85b427ff 80b21dff 98bd4dff ced8b8ff dde0d8ff afc97dff 86b529ff 82b321ff 88b52dff 88b62dff 88b62dff 88b62dff 88b62dff 88b62dff 88b62dff 88b62dff 88b62dff 88b62dff 88b62dff 82b321ff 9cc056ff e4e5e3ff 8ba752eb 00000055 00000030 0000001d 0000000e 00000004 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 c2c2c2eb e4e4e4ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e2e1e2ff e6e3eaff aac572ff 81b120ff 87b42dff 87b42dff 87b42dff 87b42dff 88b42dff 86b42aff 7fb01eff 8cb737ff bed09cff e0e1deff becf9aff 8cb737ff 80b11fff 86b42bff 88b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42cff 80b11fff c3d3a3ff c1c2c0eb 00000054 00000030 0000001d 0000000e 00000004 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 c2c2c2eb e4e4e4ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e8e4efff b4ca87ff 7fb01dff 87b42dff 87b42dff 87b42dff 86b42cff 81b120ff 85b328ff aec87cff dcdfd8ff cbd6b6ff 96bc4cff 80b01eff 84b328ff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 87b42dff 83b225ff 94bc45ff bec0baeb 00000255 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 c1c1c1eb e3e3e3ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e0e0e0ff e6e3ecff c5d3a9ff 82b124ff 86b32cff 86b32dff 82b124ff 80b020ff a0c060ff d4dac7ff d6dbccff a2c165ff 81b123ff 82b124ff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 86b32dff 85b428ff 8da658eb 00000555 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 c0c0c0eb e2e2e2ff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff e1e1e4ff daddd4ff 8db63bff 80af22ff 7eaf1dff 93b946ff c7d3afff dcded9ff b1c884ff 86b22cff 80b021ff 86b22cff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 88b42dff 719822eb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 c0c0c0eb e2e2e2ff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff dfdfdfff e5e2ebff abc577ff 83b127ff b9cc91ff dddedaff c0d0a1ff 8db63cff 7faf1fff 85b12aff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 86b22dff 88b42eff 739927eb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 c0c0c0eb e1e1e1ff dededeff dededeff dededeff dededeff dededeff dededeff dededeff dededeff dededeff dededeff dededeff dededeff dededeff dededeff dededeff dededeff e1dfe3ff d6daceff cfd7c0ff cbd5b9ff 97bc51ff 7eaf1eff 82b126ff 86b22dff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 85b22cff 87b42dff 729926eb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 bebebeeb e0e0e0ff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff e0dfe3ff e4e0eaff e4e0eaff e8e3f4ff c9d4b6ff 7eae1fff 80af21ff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 87b32cff 729826eb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 bebebeeb e0e0e0ff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff ddddddff dddddcff e1e0e6ff d5d9cdff b6c98fff b3c889ff cfd6c2ff e1dfe5ff 98bb52ff 7fae21ff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 85b12cff 87b32cff 729826eb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 bdbdbdeb dfdfdfff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff e1dee4ff cdd5bfff 8bb43aff 7dac1dff 7ead1fff 84b02bff c7d1b0ff ced5c0ff 82af27ff 83b02aff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 86b22cff 719726eb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 bdbdbdeb dfdfdfff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dcdcdcff dddcddff dfdee3ff 9ebd5eff 7cac1bff 84b02cff 84b02cff 7fae23ff 8ab338ff dcdcdaff a7c272ff 7cac1dff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 84b02cff 86b22cff 719726eb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 bcbcbceb dededeff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dcdbdeff dadbd9ff 8cb43dff 80ae26ff 83af2cff 83af2cff 83af2cff 7cac1eff abc47cff d8dad4ff 87b132ff 81ae27ff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 85b12cff 709626eb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001d 00000030 00000055 bcbcbceb dededeff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dbdbdbff dcdbdcff dedde1ff 9bbb5cff 7cab1fff 83af2cff 83af2cff 83af2cff 81ae29ff 83af2bff d2d7c9ff b6c991ff 7cab1dff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 83af2cff 85b12cff 709626eb 00000055 00000030 0000001d 0000000e 00000005 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000e 0000001c 00000030 00000054 bcbcbceb ddddddff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dfdde4ff c3cfadff 7fad25ff 82ae2aff 83ae2cff 83ae2cff 83ae2cff 7dac20ff 9dbc60ff dcdbdeff 8fb544ff 7fac23ff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 85b02cff 709526eb 00000054 00000030 0000001c 0000000e 00000004 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000d 0000001b 0000002f 00000053 bcbcbceb ddddddff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadaff dadadbff dfdde5ff a1be68ff 7caa1eff 83ae2cff 83ae2cff 83ae2cff 83ae2bff 7dac21ff c3cfadff c3ceadff 7dac21ff 82ae2bff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 83ae2cff 85b02cff 709526eb 00000053 0000002f 0000001b 0000000d 00000004 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000d 0000001a 0000002c 00000050 c4c4c4ef e4e4e4ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e1e1e1ff e0e0e0ff e4e2e8ff d5dbcaff 8db639ff 84b229ff 87b32dff 87b32dff 87b32dff 83b125ff 94ba47ff dfe0deff a5c269ff 82b123ff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 87b32dff 89b62dff 759c27ef 00000050 0000002c 0000001a 0000000d 00000004 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000b 00000018 00000028 00000048 7f7f7fd6 858585ef 838383f1 828282f2 818181f3 818181f4 818181f4 818181f4 818181f4 818181f4 818181f4 818181f4 818181f4 818181f4 818181f4 818181f4 87848af4 637244f4 4a6612f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 496611f4 717960f4 777c6cf4 4c6715f4 4d6818f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f4 4e6819f3 4e6919f2 4f691af1 4f6b1aef 4c6519d6 00000048 00000028 00000018 0000000b 00000004 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000a 00000014 00000023 0000003b 00000062 0000007e 00000089 00000091 00000098 0000009b 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009c 0000009b 00000098 00000091 00000089 0000007e 00000062 0000003b 00000023 00000014 0000000a 00000004 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000008 00000011 0000001c 0000002b 0000003c 0000004b 00000057 0000005f 00000066 00000069 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 0000006a 00000069 00000066 0000005f 00000057 0000004b 0000003c 0000002b 0000001c 00000011 00000008 00000003 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000006 0000000c 00000014 00000020 0000002c 00000037 00000040 00000046 0000004b 0000004d 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004e 0000004d 0000004b 00000046 00000040 00000037 0000002c 00000020 00000014 0000000c 00000006 00000001 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000004 00000008 0000000e 00000015 0000001d 00000025 0000002b 0000002f 00000033 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000034 00000033 0000002f 0000002b 00000025 0000001d 00000015 0000000e 00000008 00000004 00000001 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000002 00000005 00000008 0000000d 00000012 00000016 0000001a 0000001d 0000001f 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 00000020 0000001f 0000001d 0000001a 00000016 00000012 0000000d 00000008 00000005 00000002 00000001 00000000 00000000 00000000 00000000 00000000 00000000 │ │ +00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 00000002 00000004 00000006 00000009 0000000b 0000000d 0000000f 00000010 00000010 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000011 00000010 00000010 0000000f 0000000d 0000000b 00000009 00000006 00000004 00000002 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000000 │ │ } │ ├── Image content