From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexey.Brodkin@synopsys.com (Alexey Brodkin) Date: Mon, 4 Dec 2017 14:53:40 +0000 Subject: xf86-video-armada via UDL [was: Re: UDL's fbdev doesn't work for user-space apps] In-Reply-To: References: <1512387175.4977.24.camel@synopsys.com> <86238def-82be-2ad1-63d0-b9a8dbf83db6@synopsys.com> <1512393408.4977.44.camel@synopsys.com> List-ID: Message-ID: <1512399218.4977.48.camel@synopsys.com> To: linux-snps-arc@lists.infradead.org Hi Jose, On Mon, 2017-12-04@14:02 +0000, Jose Abreu wrote: > On 04-12-2017 13:16, Alexey Brodkin wrote: > > > > ????????Option??????????"kmsdev" "/dev/dri/card1" > > Which drm driver uses /dev/dri/card0? I'm seing drmOpen code and > if you don't specify the busID it will fallback for the first > card that matches "armada-drm" or "imx-drm" or "udl". > > > > > But if I swap "imx-drm" to "udl" I don't see anything on my screen > > (connected via UDL) even though Xserver seems to really start claiming the screen > > (so I see it becomes black, effectively overriding whatever was there before) and > > glmark benchmark prints results. > > > > > > Xorg.log can help confirm if everything is ok. That's xorg.conf: ------------------------------->8------------------------------ # cat /etc/X11/xorg.conf? Section "Device" ????????Identifier??????"Driver0" ????????Screen??????????0 ????????Driver??????????"armada" # Support hotplugging displays? ????????Option??????????"Hotplug"???????"TRUE" # Support hardware cursor if available? ????????Option??????????"HWCursor"??????"TRUE" # Use GPU acceleration? ????????Option??????????"UseGPU"????????"TRUE" # Provide Xv interfaces? ????????Option??????????"XvAccel"???????"TRUE" # Prefer overlay for Xv (TRUE for armada-drm, FALSE for imx-drm) ????????Option??????????"XvPreferOverlay" "TRUE" # Which accelerator module to load (automatically found if commented out) ????????Option??????????"AccelModule"???"etnadrm_gpu" ????????Option??????????"AccelModule"???"etnaviv_gpu" # Support DRI2 interfaces? ????????Option??????????"DRI"???????????"TRUE" EndSection ------------------------------->8------------------------------ Full log you may find below. -Alexey Linux version 4.14.2-00008-g95be6f762b7f-dirty (abrodkin at abrodkin-7440l) (gcc version 7.1.1 20170710 (ARCv2 ISA Linux uClibc toolchain 2017.09-rc1)) #68 SMP PREEMPT Mon Dec 4 16:12:46 MSK 2017 Memory @ 80000000 [1024M]? OF: fdt: Machine model: snps,hsdk earlycon: uart8250 at MMIO32 0xf0005000 (options '115200n8') bootconsole [uart8250] enabled archs-intc??????: 2 priority levels (default 1) FIRQ (not used) IDENTITY????????: ARCVER [0x52] ARCNUM [0x0] CHIPID [ 0x0] processor [0]???: ARC HS38 R2.1 (ARCv2 ISA)? Timers??????????: Timer0 Timer1 RTC [UP 64-bit] GFRC [SMP 64-bit]? ISA Extn????????: atomic ll64 unalign (not used) ????????????????: mpy[opt 9] div_rem norm barrel-shift swap minmax swape BPU?????????????: full match, cache:2048, Predict Table:16384 MMU [v4]????????: 8k PAGE, 2M Super Page (not used) JTLB 1024 (256x4), uDTLB 8, uITLB 4, PAE40 (not used)? I-Cache?????????: 64K, 4way/set, 64B Line, VIPT aliasing D-Cache?????????: 64K, 2way/set, 64B Line, PIPT SLC?????????????: 512K, 128B Line Peripherals?????: 0xf0000000, IO-Coherency (disabled)? Vector Table????: 0x90000000 FPU?????????????: SP DP? DEBUG???????????: ActionPoint smaRT RTT? OS ABI [v4]?????: 64-bit data any register aligned Extn [SMP]??????: ARConnect (v2): 4 cores with IPI IDU DEBUG GFRC Enable CONFIG_ARC_HAS_ACCL_REGS for working apps On node 0 totalpages: 131072 free_area_init_node: node 0, pgdat 91cf1080, node_mem_map bfb80000 ? Normal zone: 576 pages used for memmap ? Normal zone: 0 pages reserved ? Normal zone: 131072 pages, LIFO batch:15 random: fast init done percpu: Embedded 7 pages/cpu @bfb1c000 s25088 r8192 d24064 u57344 pcpu-alloc: s25088 r8192 d24064 u57344 alloc=7*8192 pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3? Built 1 zonelists, mobility grouping on.??Total pages: 130496 Kernel command line: earlycon=uart8250,mmio32,0xf0005000,115200n8 console=ttyS0,115200n8 debug print-fatal-signals=1 drm.debug=0x1e PID hash table entries: 4096 (order: 1, 16384 bytes) Dentry cache hash table entries: 131072 (order: 6, 524288 bytes) Inode-cache hash table entries: 65536 (order: 5, 262144 bytes) Memory: 749864K/1048576K available (5319K kernel code, 270K rwdata, 1048K rodata, 23040K init, 293K bss, 298712K reserved, 0K cma-reserved) Preemptible hierarchical RCU implementation. ????????Tasks RCU enabled. NR_IRQS: 512 MCIP: IDU supports 64 common irqs clocksource: ARConnect GFRC: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns Console: colour dummy device 80x25 Calibrating delay loop... 996.14 BogoMIPS (lpj=4980736) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 2048 (order: 0, 8192 bytes) Mountpoint-cache hash table entries: 2048 (order: 0, 8192 bytes) Hierarchical SRCU implementation. smp: Bringing up secondary CPUs ... Idle Task [1] bf04da80 Trying to bring up CPU1 ... archs-intc??????: 2 priority levels (default 1) FIRQ (not used) IDENTITY????????: ARCVER [0x52] ARCNUM [0x1] CHIPID [ 0x0] processor [1]???: ARC HS38 R2.1 (ARCv2 ISA)? Timers??????????: Timer0 Timer1 RTC [UP 64-bit]? ISA Extn????????: atomic ll64 unalign (not used) ????????????????: mpy[opt 9] div_rem norm barrel-shift swap minmax swape BPU?????????????: full match, cache:2048, Predict Table:16384 MMU [v4]????????: 8k PAGE, 2M Super Page (not used) JTLB 1024 (256x4), uDTLB 8, uITLB 4, PAE40 (not used)? I-Cache?????????: 64K, 4way/set, 64B Line, VIPT aliasing D-Cache?????????: 64K, 2way/set, 64B Line, PIPT SLC?????????????: 512K, 128B Line Peripherals?????: 0xf0000000, IO-Coherency (disabled)? Vector Table????: 0x90000000 FPU?????????????: SP DP? DEBUG???????????: ActionPoint smaRT RTT? Extn [CCM]??????: DCCM @ 80000000, 256 KB / ICCM: @ 70000000, 256 KB OS ABI [v4]?????: 64-bit data any register aligned Extn [SMP]??????: ARConnect (v2): 4 cores with IPI IDU DEBUG GFRC Enable CONFIG_ARC_HAS_ACCL_REGS for working apps ## CPU1 LIVE ##: Executing Code... Idle Task [2] bf04d540 Trying to bring up CPU2 ... archs-intc??????: 2 priority levels (default 1) FIRQ (not used) IDENTITY????????: ARCVER [0x52] ARCNUM [0x2] CHIPID [ 0x0] processor [2]???: ARC HS38 R2.1 (ARCv2 ISA)? Timers??????????: Timer0 Timer1 RTC [UP 64-bit]? ISA Extn????????: atomic ll64 unalign (not used) ????????????????: mpy[opt 9] div_rem norm barrel-shift swap minmax swape BPU?????????????: full match, cache:2048, Predict Table:16384 MMU [v4]????????: 8k PAGE, 2M Super Page (not used) JTLB 1024 (256x4), uDTLB 8, uITLB 4, PAE40 (not used)? I-Cache?????????: 64K, 4way/set, 64B Line, VIPT aliasing D-Cache?????????: 64K, 2way/set, 64B Line, PIPT SLC?????????????: 512K, 128B Line Peripherals?????: 0xf0000000, IO-Coherency (disabled)? Vector Table????: 0x90000000 FPU?????????????: SP DP? DEBUG???????????: ActionPoint smaRT RTT? OS ABI [v4]?????: 64-bit data any register aligned Extn [SMP]??????: ARConnect (v2): 4 cores with IPI IDU DEBUG GFRC Enable CONFIG_ARC_HAS_ACCL_REGS for working apps ## CPU2 LIVE ##: Executing Code... Idle Task [3] bf04d000 Trying to bring up CPU3 ... archs-intc??????: 2 priority levels (default 1) FIRQ (not used) IDENTITY????????: ARCVER [0x52] ARCNUM [0x3] CHIPID [ 0x0] processor [3]???: ARC HS38 R2.1 (ARCv2 ISA)? Timers??????????: Timer0 Timer1 RTC [UP 64-bit]? ISA Extn????????: atomic ll64 unalign (not used) ????????????????: mpy[opt 9] div_rem norm barrel-shift swap minmax swape BPU?????????????: full match, cache:2048, Predict Table:16384 MMU [v4]????????: 8k PAGE, 2M Super Page (not used) JTLB 1024 (256x4), uDTLB 8, uITLB 4, PAE40 (not used)? I-Cache?????????: 64K, 4way/set, 64B Line, VIPT aliasing D-Cache?????????: 64K, 2way/set, 64B Line, PIPT SLC?????????????: 512K, 128B Line Peripherals?????: 0xf0000000, IO-Coherency (disabled)? Vector Table????: 0x90000000 FPU?????????????: SP DP? DEBUG???????????: ActionPoint smaRT RTT? Extn [CCM]??????: DCCM @ 80000000, 256 KB / ICCM: @ 70000000, 256 KB OS ABI [v4]?????: 64-bit data any register aligned Extn [SMP]??????: ARConnect (v2): 4 cores with IPI IDU DEBUG GFRC Enable CONFIG_ARC_HAS_ACCL_REGS for working apps ## CPU3 LIVE ##: Executing Code... smp: Brought up 1 node, 4 CPUs devtmpfs: initialized clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns futex hash table entries: 1024 (order: 3, 65536 bytes) NET: Registered protocol family 16 SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb pps_core: LinuxPPS API ver. 1 registered pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti PTP clock support registered clocksource: Switched to clocksource ARConnect GFRC NET: Registered protocol family 2 TCP established hash table entries: 8192 (order: 2, 32768 bytes) TCP bind hash table entries: 8192 (order: 3, 65536 bytes) TCP: Hash tables configured (established 8192 bind 8192) UDP hash table entries: 512 (order: 1, 16384 bytes) UDP-Lite hash table entries: 512 (order: 1, 16384 bytes) NET: Registered protocol family 1 RPC: Registered named UNIX socket transport module. RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. ARC perf????????: 8 counters (48 bits), 113 conditions workingset: timestamp_bits=30 max_order=17 bucket_order=0 Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) io scheduler mq-deadline registered io scheduler kyber registered Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled console [ttyS0] disabled f0005000.serial: ttyS0 at MMIO 0xf0005000 (irq = 6, base_baud = 2083125) is a 16550A console [ttyS0] enabled console [ttyS0] enabled bootconsole [uart8250] disabled bootconsole [uart8250] disabled usbcore: registered new interface driver udl etnaviv soc:gpu-subsystem: bound f0090000.gpu (ops 0x91be058c) etnaviv-gpu f0090000.gpu: model: GC880, revision: 5124 [drm] Initialized etnaviv 1.1.0 20151214 for soc:gpu-subsystem on minor 0 libphy: Fixed MDIO Bus: probed stmmaceth f0008000.ethernet: PTP uses main clock stmmac - user ID: 0x10, Synopsys ID: 0x37 stmmaceth f0008000.ethernet: Ring mode enabled stmmaceth f0008000.ethernet: DMA HW capability register supported stmmaceth f0008000.ethernet: Normal descriptors stmmaceth f0008000.ethernet: RX Checksum Offload Engine supported stmmaceth f0008000.ethernet: COE Type 2 stmmaceth f0008000.ethernet: TX Checksum insertion supported stmmaceth f0008000.ethernet: Enable RX Mitigation via HW Watchdog Timer libphy: stmmac: probed ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver ehci-platform: EHCI generic platform driver ehci-platform f0040000.ehci: EHCI Host Controller ehci-platform f0040000.ehci: new USB bus registered, assigned bus number 1 ehci-platform f0040000.ehci: irq 15, io mem 0xf0040000 ehci-platform f0040000.ehci: USB 2.0 started, EHCI 1.00 hub 1-0:1.0: USB hub found hub 1-0:1.0: 1 port detected ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver ohci-platform: OHCI generic platform driver ohci-platform f0060000.ohci: Generic Platform OHCI controller ohci-platform f0060000.ohci: new USB bus registered, assigned bus number 2 ohci-platform f0060000.ohci: irq 15, io mem 0xf0060000 hub 2-0:1.0: USB hub found hub 2-0:1.0: 1 port detected usbcore: registered new interface driver usb-storage IR NEC protocol handler initialized IR RC5(x/sz) protocol handler initialized IR RC6 protocol handler initialized IR JVC protocol handler initialized IR Sony protocol handler initialized IR SANYO protocol handler initialized IR Sharp protocol handler initialized IR MCE Keyboard/mouse protocol handler initialized IR XMP protocol handler initialized sdhci: Secure Digital Host Controller Interface driver sdhci: Copyright(c) Pierre Ossman Synopsys Designware Multimedia Card Interface Driver dw_mmc f000a000.mmc: 'num-slots' was deprecated. dw_mmc f000a000.mmc: IDMAC supports 32-bit address mode. dw_mmc f000a000.mmc: Using internal DMA controller. dw_mmc f000a000.mmc: Version ID is 290a dw_mmc f000a000.mmc: DW MMC controller at irq 12,32 bit host data width,16 deep fifo mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63) sdhci-pltfm: SDHCI platform and OF driver helper usbcore: registered new interface driver usbhid usbhid: USB HID core driver NET: Registered protocol family 10 Segment Routing with IPv6 sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver NET: Registered protocol family 17 ttyS0 - failed to request DMA Freeing unused kernel memory: 23040K This architecture does not have kernel memory protection. Starting logging: OK Initializing random number generator... done. Starting network: stmmaceth f0008000.ethernet eth0: device MAC address a6:6c:7e:40:c6:86 mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 25000000Hz, actual 25000000HZ div = 1) usb 1-1: new high-speed USB device number 2 using ehci-platform mmc0: new SDHC card at address aaaa blk_queue_max_segment_size: set to minimum 8192 mmcblk0: mmc0:aaaa SL08G 7.40 GiB? ?mmcblk0: p1 p2 Micrel KSZ9031 Gigabit PHY stmmac-0:00: attached PHY driver [Micrel KSZ9031 Gigabit PHY] (mii_bus:phy_addr=stmmac-0:00, irq=POLL) stmmaceth f0008000.ethernet eth0: PTP not supported by HW IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready udhcpc: started, v1.27.2 udhcpc: sending discover hub 1-1:1.0: USB hub found hub 1-1:1.0: 2 ports detected usb 1-1.1: new high-speed USB device number 3 using ehci-platform [drm] vendor descriptor length:2e data:2e 5f 01 00 2c 00 04 04 01 00 03 [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [drm] No driver support for vblank timestamp query. [drm] Initialized udl 0.0.1 20120220 for 1-1.1:1.0 on minor 1 [drm] Initialized udl on minor 1 stmmaceth f0008000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready udhcpc: sending discover udhcpc: sending discover udhcpc: sending select for 10.42.0.122 udhcpc: lease of 10.42.0.122 obtained, lease time 3600 deleting routers adding dns 10.42.0.1 OK Welcome to the ARC Software Development Platform axs103 login: root # cat /etc/X11/xorg.conf? Section "Device" ????????Identifier??????"Driver0" ????????Screen??????????0 ????????Driver??????????"armada" # Support hotplugging displays? ????????Option??????????"Hotplug"???????"TRUE" # Support hardware cursor if available? ????????Option??????????"HWCursor"??????"TRUE" # Use GPU acceleration? ????????Option??????????"UseGPU"????????"TRUE" # Provide Xv interfaces? ????????Option??????????"XvAccel"???????"TRUE" # Prefer overlay for Xv (TRUE for armada-drm, FALSE for imx-drm) ????????Option??????????"XvPreferOverlay" "TRUE" # Which accelerator module to load (automatically found if commented out) ????????Option??????????"AccelModule"???"etnadrm_gpu" ????????Option??????????"AccelModule"???"etnaviv_gpu" # Support DRI2 interfaces? ????????Option??????????"DRI"???????????"TRUE" EndSection # X& #? X.Org X Server 1.19.5 Release Date: 2017-10-12 X Protocol Version 11, Revision 0 Build Operating System: Linux 3.10.0-514.el7.x86_64 x86_64? Current Operating System: Linux axs1[drm:drm_helper_probe_single_connector_modes] [CONNECTOR:30:DVI-I-1] 03 4.14.2-00008-g95be6f762b7f-di[drm:drm_helper_probe_single_connector_modes] [CONNECTOR:30:DVI-I-1] status updated from unknown to connected rty #68 SMP PREEMPT Mon Dec 4 16:12:46 MSK 2017 arc Kernel command line: earlycon=uart8250,mmio32,0xf0005000,115200n8 console=ttyS0,115200n8 debug print-fatal-signals=1 drm.debug=0x1e Build Date: 01 December 2017??12:21:28PM ? Current version of pixman: 0.34.0 ????????Before reporting problems, check http://wiki.x.org ????????to make sure that you have the latest version. Markers: (--) probed, (**) from config file, (==) default setting, ????????(++) from command line, (!!) notice, (II) informational, ????????(WW) warning, (EE) error, (NI) not implemented, (??) unknown. (==) Log file: "/[drm:drm_helper_probe_single_connector_modes] [CONNECTOR:30:DVI-I-1] probed modes : var/log/Xorg.0.log", Time: Thu J[drm:drm_mode_debug_printmodeline] Modeline 32:"1920x1080" 60 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x48 0x5 an??1 00:00:30 1970 (==) Using [drm:drm_mode_debug_printmodeline] Modeline 39:"1280x1024" 75 135000 1280 1296 1440 1688 1024 1025 1028 1066 0x40 0x5 config file: "/etc/X11/xorg.conf[drm:drm_mode_debug_printmodeline] Modeline 34:"1280x1024" 60 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x40 0x5 " (==) Using system config dire[drm:drm_mode_debug_printmodeline] Modeline 33:"1152x864" 75 108000 1152 1216 1344 1600 864 865 868 900 0x40 0x5 ctory "/usr/share/X11/xorg.conf.[drm:drm_mode_debug_printmodeline] Modeline 40:"1024x768" 75 78750 1024 1040 1136 1312 768 769 772 800 0x40 0x5 d" [drm:drm_mode_debug_printmodeline] Modeline 41:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa [drm:drm_mode_debug_printmodeline] Modeline 42:"800x600" 75 49500 800 816 896 1056 600 601 604 625 0x40 0x5 [drm:drm_mode_debug_printmodeline] Modeline 35:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5 [drm:drm_mode_debug_printmodeline] Modeline 36:"640x480" 75 31500 640 656 720 840 480 481 484 500 0x40 0xa [drm:drm_mode_debug_printmodeline] Modeline 37:"640x480" 60 25175 640 656 752 800 480 490 492 525 0x40 0xa [drm:drm_mode_debug_printmodeline] Modeline 38:"720x400" 70 28320 720 738 846 900 400 412 414 449 0x40 0x6 [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:30:DVI-I-1] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:30:DVI-I-1] probed modes : [drm:drm_mode_debug_printmodeline] Modeline 32:"1920x1080" 60 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x48 0x5 [drm:drm_mode_debug_printmodeline] Modeline 39:"1280x1024" 75 135000 1280 1296 1440 1688 1024 1025 1028 1066 0x40 0x5 [drm:drm_mode_debug_printmodeline] Modeline 34:"1280x1024" 60 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x40 0x5 [drm:drm_mode_debug_printmodeline] Modeline 33:"1152x864" 75 108000 1152 1216 1344 1600 864 865 868 900 0x40 0x5 [drm:drm_mode_debug_printmodeline] Modeline 40:"1024x768" 75 78750 1024 1040 1136 1312 768 769 772 800 0x40 0x5 [drm:drm_mode_debug_printmodeline] Modeline 41:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa [drm:drm_mode_debug_printmodeline] Modeline 42:"800x600" 75 49500 800 816 896 1056 600 601 604 625 0x40 0x5 [drm:drm_mode_debug_printmodeline] Modeline 35:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5 [drm:drm_mode_debug_printmodeline] Modeline 36:"640x480" 75 31500 640 656 720 840 480 481 484 500 0x40 0xa [drm:drm_mode_debug_printmodeline] Modeline 37:"640x480" 60 25175 640 656 752 800 480 490 492 525 0x40 0xa [drm:drm_mode_debug_printmodeline] Modeline 38:"720x400" 70 28320 720 738 846 900 400 412 414 449 0x40 0x6 [drm:udl_drm_gem_mmap] flags = 0x1 [drm:drm_mode_addfb] [FB:31] [drm:drm_mode_setcrtc] [CRTC:28:crtc-0] [drm:drm_mode_setcrtc] [CONNECTOR:30:DVI-I-1] [drm:drm_crtc_helper_set_config]? [drm:drm_crtc_helper_set_config] [CRTC:28:crtc-0] [FB:31] #connectors=1 (x y) (0 0) [drm:drm_crtc_helper_set_config] crtc has no fb, full mode set [drm:drm_crtc_helper_set_config] modes are different, full mode set [drm:drm_mode_debug_printmodeline] Modeline 0:"" 0 0 0 0 0 0 0 0 0 0 0x0 0x0 [drm:drm_mode_debug_printmodeline] Modeline 44:"" 0 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x0 0x5 [drm:drm_crtc_helper_set_config] encoder changed, full mode switch [drm:drm_crtc_helper_set_config] crtc changed, full mode switch [drm:drm_crtc_helper_set_config] [CONNECTOR:30:DVI-I-1] to [CRTC:28:crtc-0] [drm:drm_crtc_helper_set_config] attempting to set mode from userspace [drm:drm_mode_debug_printmodeline] Modeline 44:"" 0 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x0 0x5 [drm:drm_crtc_helper_set_mode] [CRTC:28:crtc-0] [drm:drm_crtc_helper_set_mode] [ENCODER:29:TMDS-29] set [MODE:44:] [drm] write mode info 153 [drm:drm_crtc_helper_set_config] Setting connector DPMS state to on [drm:drm_crtc_helper_set_config]????????[CONNECTOR:30:DVI-I-1] set DPMS on [drm:udl_attach_dma_buf] [DEV:soc:gpu-subsystem] size:8298496 [drm:udl_map_dma_buf] [DEV:soc:gpu-subsystem] size:8298496 dir=0 etnaviv-gpu f0090000.gpu: virt 71040000 phys 0x00000000 free 0x00001ec0 cmd 00000000: 380000c8 00000000 40000002 00000000 ... cmd 00000130: 48000000 00000701 08010e01 00000040 stream link to 0x00000050 @ 0x00002000 71042000 cmd 00000000: 08010e03 00000008 08010e02 00000701 ... cmd 000000b0: 40000007 00000050 link op: 71040000 addr: 0x00000010 back: 0x00000050 event: 0 etnaviv-gpu f0090000.gpu: virt 71040000 phys 0x00000000 free 0x00001ec0 cmd 00000000: 40000008 00000010 40000002 00000000 ... cmd 00000130: 48000000 00000701 08010e01 00000040 #? # export DISPLAY=:0 # glmark2-es2random: crng init done ======================================================= ????glmetnaviv-gpu f0090000.gpu: virt 71040000 phys 0x00000000 free 0x00001ec0 ark2 2014.03 ==================cmd 00000000: 40000008 00000010 40000002 00000000 ================================cmd 00000010: 08010061 00000118 08010e02 00000701 ===== ????OpenGL Information ?cmd 00000020: 48000000 00000701 08010e03 00000000 ???GL_VENDOR:?????etnaviv ????Gcmd 00000030: 08010e02 00000701 48000000 00000701 L_RENDERER:???Vivante GC880 rev cmd 00000040: 08010e00 00000001 40000017 00002000 5124 ????GL_VERSION:????OpenGL cmd 00000050: 08010e03 00000008 08010e02 00000701 ES 2.0 Mesa 17.2.4 ============cmd 00000060: 48000000 00000701 08010e01 00000040 ================================cmd 00000070: 380000c8 00000701 40000002 00000070 =========== cmd 00000080: 40000013 00002000 40000002 00000080 ... cmd 00000130: 48000000 00000701 08010e01 00000040 stream link to 0x000000c0 @ 0x00002000 71042000 cmd 00000000: 08010e13 00000000 08010e05 00000001 ... cmd 00000110: 40000007 000000c0 link op: 71040070 addr: 0x00000080 back: 0x000000c0 event: 0 etnaviv-gpu f0090000.gpu: virt 71040000 phys 0x00000000 free 0x00001ec0 etnaviv-gpu f0090000.gpu: MMU fault status 0x00002000 etnaviv-gpu f0090000.gpu: MMU 0 fault addr 0x00000000 etnaviv-gpu f0090000.gpu: MMU 1 fault addr 0x00000000 etnaviv-gpu f0090000.gpu: MMU 2 fault addr 0x00000000 etnaviv-gpu f0090000.gpu: MMU 3 fault addr 0x0082a000 cmd 00000000: 40000008 00000010 40000002 00000000 ... cmd 00000130: 48000000 00000701 08010e01 00000040 etnaviv-gpu f0090000.gpu: virt 71040000 phys 0x00000000 free 0x00001ec0 cmd 00000000: 40000008 00000010 40000002 00000000 ... cmd 00000130: 48000000 00000701 08010e01 00000040 stream link to 0x000000f8 @ 0x00003000 71043000 cmd 00000000: 08010e13 00000000 08010e05 00000001 cmd 00000010: 08010382 00000031 0801028b 34000001 cmd 00000020: 080105ae 00000000 40000007 000000f8 link op: 710400e8 addr: 0x00003000 back: 0x000000f8 event: 1 etnaviv-gpu f0090000.gpu: virt 71040000 phys 0x00000000 free 0x00001ec0 cmd 00000000: 40000008 00000010 40000002 00000000 ... cmd 00000130: 48000000 00000701 08010e01 00000040 etnaviv-gpu f0090000.gpu: virt 71040000 phys 0x00000000 free 0x00001ec0 cmd 00000000: 40000008 00000010 40000002 00000000 ... cmd 00000130: 48000000 00000701 08010e01 00000040 stream link to 0x00000170 @ 0x00004000 71044000 cmd 00000000: 0804048a 00040000 00001e00 00000000 ... cmd 00000090: 40000007 00000170 link op: 71040120 addr: 0x00000130 back: 0x00000170 event: 2 etnaviv-gpu f0090000.gpu: virt 71040000 phys 0x00000000 free 0x00001ec0 cmd 00000000: 40000008 00000010 40000002 00000000 ... cmd 00000130: 08010061 00000118 08010e02 00000701 etnaviv-gpu f0090000.gpu: virt 71040000 phys 0x00000000 free 0x00001ec0 cmd 00000000: 40000008 00000010 40000002 00000000 ... cmd 00000130: 08010061 00000118 08010e02 00000701 stream link to 0x000001e0 @ 0x00005000 71045000 cmd 00000000: 08010e13 00000000 08010e05 00000001 cmd 00000010: 08010382 00000031 0801028b 34000001 cmd 00000020: 080105ae 00000000 40000007 000001e0 link op: 71040190 addr: 0x000001a0 back: 0x000001e0 event: 3 etnaviv-gpu f0090000.gpu: virt 71040000 phys 0x00000000 free 0x00001ec0 cmd 00000000: 40000008 00000010 40000002 00000000 ... cmd 00000130: 08010061 00000118 08010e02 00000701 [build] use-vbo=false:etnaviv-gpu f0090000.gpu: virt 71040000 phys 0x00000000 free 0x00001ec0 cmd 00000000: 40000008 00000010 40000002 00000000 ... ^C??<-- Ctrl-C # [drm:udl_drm_gem_mmap] flags = 0x1 [drm:drm_mode_addfb] [FB:31] [drm:drm_mode_setcrtc] [CRTC:28:crtc-0] [drm:drm_mode_setcrtc] [CONNECTOR:30:DVI-I-1] [drm:drm_crtc_helper_set_config]? [drm:drm_crtc_helper_set_config] [CRTC:28:crtc-0] [FB:31] #connectors=1 (x y) (0 0) [drm:drm_crtc_helper_set_config] crtc has no fb, full mode set [drm:drm_crtc_helper_set_config] connector dpms not on, full mode switch [drm:drm_crtc_helper_set_config] encoder changed, full mode switch [drm:drm_crtc_helper_set_config] crtc changed, full mode switch [drm:drm_crtc_helper_set_config] [CONNECTOR:30:DVI-I-1] to [CRTC:28:crtc-0] [drm:drm_crtc_helper_set_config] attempting to set mode from userspace [drm:drm_mode_debug_printmodeline] Modeline 44:"" 0 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x0 0x5 [drm:drm_crtc_helper_set_mode] [CRTC:28:crtc-0] [drm:drm_crtc_helper_set_mode] [ENCODER:29:TMDS-29] set [MODE:44:] [drm] write mode info 153 [drm:drm_crtc_helper_set_config] Setting connector DPMS state to on [drm:drm_crtc_helper_set_config]????????[CONNECTOR:30:DVI-I-1] set DPMS on [drm] write mode info 153 [drm:udl_attach_dma_buf] [DEV:soc:gpu-subsystem] size:8298496 [drm:udl_map_dma_buf] [DEV:soc:gpu-subsystem] size:8298496 dir=0 etnaviv-gpu f0090000.gpu: virt 71040000 phys 0x00000000 free 0x00001ec0 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexey Brodkin Subject: Re: xf86-video-armada via UDL [was: Re: UDL's fbdev doesn't work for user-space apps] Date: Mon, 4 Dec 2017 14:53:40 +0000 Message-ID: <1512399218.4977.48.camel@synopsys.com> References: <1512387175.4977.24.camel@synopsys.com> <86238def-82be-2ad1-63d0-b9a8dbf83db6@synopsys.com> <1512393408.4977.44.camel@synopsys.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US Content-ID: Sender: linux-kernel-owner@vger.kernel.org To: "l.stach@pengutronix.de" , Jose Abreu Cc: "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" , "airlied@gmail.com" , "airlied@redhat.com" , "daniel.vetter@ffwll.ch" , "linux-snps-arc@lists.infradead.org" List-Id: dri-devel@lists.freedesktop.org SGkgSm9zZSwNCg0KT24gTW9uLCAyMDE3LTEyLTA0IGF0IDE0OjAyICswMDAwLCBKb3NlIEFicmV1 IHdyb3RlOg0KPiBPbiAwNC0xMi0yMDE3IDEzOjE2LCBBbGV4ZXkgQnJvZGtpbiB3cm90ZToNCj4g PiANCj4gPiDCoMKgwqDCoMKgwqDCoMKgT3B0aW9uwqDCoMKgwqDCoMKgwqDCoMKgwqAia21zZGV2 IiAiL2Rldi9kcmkvY2FyZDEiDQo+IA0KPiBXaGljaCBkcm0gZHJpdmVyIHVzZXMgL2Rldi9kcmkv Y2FyZDA/IEknbSBzZWluZyBkcm1PcGVuIGNvZGUgYW5kDQo+IGlmIHlvdSBkb24ndCBzcGVjaWZ5 IHRoZSBidXNJRCBpdCB3aWxsIGZhbGxiYWNrIGZvciB0aGUgZmlyc3QNCj4gY2FyZCB0aGF0IG1h dGNoZXMgImFybWFkYS1kcm0iIG9yICJpbXgtZHJtIiBvciAidWRsIi4NCj4gDQo+ID4gDQo+ID4g QnV0IGlmIEkgc3dhcCAiaW14LWRybSIgdG8gInVkbCIgSSBkb24ndCBzZWUgYW55dGhpbmcgb24g bXkgc2NyZWVuDQo+ID4gKGNvbm5lY3RlZCB2aWEgVURMKSBldmVuIHRob3VnaCBYc2VydmVyIHNl ZW1zIHRvIHJlYWxseSBzdGFydCBjbGFpbWluZyB0aGUgc2NyZWVuDQo+ID4gKHNvIEkgc2VlIGl0 IGJlY29tZXMgYmxhY2ssIGVmZmVjdGl2ZWx5IG92ZXJyaWRpbmcgd2hhdGV2ZXIgd2FzIHRoZXJl IGJlZm9yZSkgYW5kDQo+ID4gZ2xtYXJrIGJlbmNobWFyayBwcmludHMgcmVzdWx0cy4NCj4gPiAN Cj4gPiANCj4gDQo+IFhvcmcubG9nIGNhbiBoZWxwIGNvbmZpcm0gaWYgZXZlcnl0aGluZyBpcyBv ay4NCg0KVGhhdCdzIHhvcmcuY29uZjoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+ OC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBjYXQgL2V0Yy9YMTEveG9yZy5jb25m wqANClNlY3Rpb24gIkRldmljZSINCsKgwqDCoMKgwqDCoMKgwqBJZGVudGlmaWVywqDCoMKgwqDC oMKgIkRyaXZlcjAiDQrCoMKgwqDCoMKgwqDCoMKgU2NyZWVuwqDCoMKgwqDCoMKgwqDCoMKgwqAw DQrCoMKgwqDCoMKgwqDCoMKgRHJpdmVywqDCoMKgwqDCoMKgwqDCoMKgwqAiYXJtYWRhIg0KDQoj IFN1cHBvcnQgaG90cGx1Z2dpbmcgZGlzcGxheXM/DQrCoMKgwqDCoMKgwqDCoMKgT3B0aW9uwqDC oMKgwqDCoMKgwqDCoMKgwqAiSG90cGx1ZyLCoMKgwqDCoMKgwqDCoCJUUlVFIg0KDQojIFN1cHBv cnQgaGFyZHdhcmUgY3Vyc29yIGlmIGF2YWlsYWJsZT8NCsKgwqDCoMKgwqDCoMKgwqBPcHRpb27C oMKgwqDCoMKgwqDCoMKgwqDCoCJIV0N1cnNvciLCoMKgwqDCoMKgwqAiVFJVRSINCg0KIyBVc2Ug R1BVIGFjY2VsZXJhdGlvbj8NCsKgwqDCoMKgwqDCoMKgwqBPcHRpb27CoMKgwqDCoMKgwqDCoMKg wqDCoCJVc2VHUFUiwqDCoMKgwqDCoMKgwqDCoCJUUlVFIg0KDQojIFByb3ZpZGUgWHYgaW50ZXJm YWNlcz8NCsKgwqDCoMKgwqDCoMKgwqBPcHRpb27CoMKgwqDCoMKgwqDCoMKgwqDCoCJYdkFjY2Vs IsKgwqDCoMKgwqDCoMKgIlRSVUUiDQoNCiMgUHJlZmVyIG92ZXJsYXkgZm9yIFh2IChUUlVFIGZv ciBhcm1hZGEtZHJtLCBGQUxTRSBmb3IgaW14LWRybSkNCsKgwqDCoMKgwqDCoMKgwqBPcHRpb27C oMKgwqDCoMKgwqDCoMKgwqDCoCJYdlByZWZlck92ZXJsYXkiICJUUlVFIg0KDQojIFdoaWNoIGFj Y2VsZXJhdG9yIG1vZHVsZSB0byBsb2FkIChhdXRvbWF0aWNhbGx5IGZvdW5kIGlmIGNvbW1lbnRl ZCBvdXQpDQrCoMKgwqDCoMKgwqDCoMKgT3B0aW9uwqDCoMKgwqDCoMKgwqDCoMKgwqAiQWNjZWxN b2R1bGUiwqDCoMKgImV0bmFkcm1fZ3B1Ig0KwqDCoMKgwqDCoMKgwqDCoE9wdGlvbsKgwqDCoMKg wqDCoMKgwqDCoMKgIkFjY2VsTW9kdWxlIsKgwqDCoCJldG5hdml2X2dwdSINCg0KIyBTdXBwb3J0 IERSSTIgaW50ZXJmYWNlcz8NCsKgwqDCoMKgwqDCoMKgwqBPcHRpb27CoMKgwqDCoMKgwqDCoMKg wqDCoCJEUkkiwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCJUUlVFIg0KRW5kU2VjdGlvbg0KLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT44LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQoNCkZ1bGwgbG9nIHlvdSBtYXkgZmluZCBiZWxvdy4NCg0KLUFsZXhleQ0KDQoNCkxpbnV4IHZl cnNpb24gNC4xNC4yLTAwMDA4LWc5NWJlNmY3NjJiN2YtZGlydHkgKGFicm9ka2luQGFicm9ka2lu LTc0NDBsKSAoZ2NjIHZlcnNpb24gNy4xLjEgMjAxNzA3MTAgKEFSQ3YyIElTQSBMaW51eCB1Q2xp YmMgdG9vbGNoYWluIDIwMTcuMDktcmMxKSkNCiM2OCBTTVAgUFJFRU1QVCBNb24gRGVjIDQgMTY6 MTI6NDYgTVNLIDIwMTcNCk1lbW9yeSBAIDgwMDAwMDAwIFsxMDI0TV3CoA0KT0Y6IGZkdDogTWFj aGluZSBtb2RlbDogc25wcyxoc2RrDQplYXJseWNvbjogdWFydDgyNTAgYXQgTU1JTzMyIDB4ZjAw MDUwMDAgKG9wdGlvbnMgJzExNTIwMG44JykNCmJvb3Rjb25zb2xlIFt1YXJ0ODI1MF0gZW5hYmxl ZA0KYXJjaHMtaW50Y8KgwqDCoMKgwqDCoDogMiBwcmlvcml0eSBsZXZlbHMgKGRlZmF1bHQgMSkg RklSUSAobm90IHVzZWQpDQoNCklERU5USVRZwqDCoMKgwqDCoMKgwqDCoDogQVJDVkVSIFsweDUy XSBBUkNOVU0gWzB4MF0gQ0hJUElEIFsgMHgwXQ0KcHJvY2Vzc29yIFswXcKgwqDCoDogQVJDIEhT MzggUjIuMSAoQVJDdjIgSVNBKcKgDQpUaW1lcnPCoMKgwqDCoMKgwqDCoMKgwqDCoDogVGltZXIw IFRpbWVyMSBSVEMgW1VQIDY0LWJpdF0gR0ZSQyBbU01QIDY0LWJpdF3CoA0KSVNBIEV4dG7CoMKg wqDCoMKgwqDCoMKgOiBhdG9taWMgbGw2NCB1bmFsaWduIChub3QgdXNlZCkNCsKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgOiBtcHlbb3B0IDldIGRpdl9yZW0gbm9ybSBiYXJyZWwtc2hp ZnQgc3dhcCBtaW5tYXggc3dhcGUNCkJQVcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgOiBmdWxs IG1hdGNoLCBjYWNoZToyMDQ4LCBQcmVkaWN0IFRhYmxlOjE2Mzg0DQpNTVUgW3Y0XcKgwqDCoMKg wqDCoMKgwqA6IDhrIFBBR0UsIDJNIFN1cGVyIFBhZ2UgKG5vdCB1c2VkKSBKVExCIDEwMjQgKDI1 Nng0KSwgdURUTEIgOCwgdUlUTEIgNCwgUEFFNDAgKG5vdCB1c2VkKcKgDQpJLUNhY2hlwqDCoMKg wqDCoMKgwqDCoMKgOiA2NEssIDR3YXkvc2V0LCA2NEIgTGluZSwgVklQVCBhbGlhc2luZw0KRC1D YWNoZcKgwqDCoMKgwqDCoMKgwqDCoDogNjRLLCAyd2F5L3NldCwgNjRCIExpbmUsIFBJUFQNClNM Q8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgOiA1MTJLLCAxMjhCIExpbmUNClBlcmlwaGVyYWxz wqDCoMKgwqDCoDogMHhmMDAwMDAwMCwgSU8tQ29oZXJlbmN5IChkaXNhYmxlZCnCoA0KVmVjdG9y IFRhYmxlwqDCoMKgwqA6IDB4OTAwMDAwMDANCkZQVcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg OiBTUCBEUMKgDQpERUJVR8KgwqDCoMKgwqDCoMKgwqDCoMKgwqA6IEFjdGlvblBvaW50IHNtYVJU IFJUVMKgDQpPUyBBQkkgW3Y0XcKgwqDCoMKgwqA6IDY0LWJpdCBkYXRhIGFueSByZWdpc3RlciBh bGlnbmVkDQpFeHRuIFtTTVBdwqDCoMKgwqDCoMKgOiBBUkNvbm5lY3QgKHYyKTogNCBjb3JlcyB3 aXRoIElQSSBJRFUgREVCVUcgR0ZSQw0KRW5hYmxlIENPTkZJR19BUkNfSEFTX0FDQ0xfUkVHUyBm b3Igd29ya2luZyBhcHBzDQpPbiBub2RlIDAgdG90YWxwYWdlczogMTMxMDcyDQpmcmVlX2FyZWFf aW5pdF9ub2RlOiBub2RlIDAsIHBnZGF0IDkxY2YxMDgwLCBub2RlX21lbV9tYXAgYmZiODAwMDAN CsKgIE5vcm1hbCB6b25lOiA1NzYgcGFnZXMgdXNlZCBmb3IgbWVtbWFwDQrCoCBOb3JtYWwgem9u ZTogMCBwYWdlcyByZXNlcnZlZA0KwqAgTm9ybWFsIHpvbmU6IDEzMTA3MiBwYWdlcywgTElGTyBi YXRjaDoxNQ0KcmFuZG9tOiBmYXN0IGluaXQgZG9uZQ0KcGVyY3B1OiBFbWJlZGRlZCA3IHBhZ2Vz L2NwdSBAYmZiMWMwMDAgczI1MDg4IHI4MTkyIGQyNDA2NCB1NTczNDQNCnBjcHUtYWxsb2M6IHMy NTA4OCByODE5MiBkMjQwNjQgdTU3MzQ0IGFsbG9jPTcqODE5Mg0KcGNwdS1hbGxvYzogWzBdIDAg WzBdIDEgWzBdIDIgWzBdIDPCoA0KQnVpbHQgMSB6b25lbGlzdHMsIG1vYmlsaXR5IGdyb3VwaW5n IG9uLsKgwqBUb3RhbCBwYWdlczogMTMwNDk2DQpLZXJuZWwgY29tbWFuZCBsaW5lOiBlYXJseWNv bj11YXJ0ODI1MCxtbWlvMzIsMHhmMDAwNTAwMCwxMTUyMDBuOCBjb25zb2xlPXR0eVMwLDExNTIw MG44IGRlYnVnIHByaW50LWZhdGFsLXNpZ25hbHM9MSBkcm0uZGVidWc9MHgxZQ0KUElEIGhhc2gg dGFibGUgZW50cmllczogNDA5NiAob3JkZXI6IDEsIDE2Mzg0IGJ5dGVzKQ0KRGVudHJ5IGNhY2hl IGhhc2ggdGFibGUgZW50cmllczogMTMxMDcyIChvcmRlcjogNiwgNTI0Mjg4IGJ5dGVzKQ0KSW5v ZGUtY2FjaGUgaGFzaCB0YWJsZSBlbnRyaWVzOiA2NTUzNiAob3JkZXI6IDUsIDI2MjE0NCBieXRl cykNCk1lbW9yeTogNzQ5ODY0Sy8xMDQ4NTc2SyBhdmFpbGFibGUgKDUzMTlLIGtlcm5lbCBjb2Rl LCAyNzBLIHJ3ZGF0YSwgMTA0OEsgcm9kYXRhLCAyMzA0MEsgaW5pdCwgMjkzSyBic3MsIDI5ODcx MksgcmVzZXJ2ZWQsIDBLIGNtYS1yZXNlcnZlZCkNClByZWVtcHRpYmxlIGhpZXJhcmNoaWNhbCBS Q1UgaW1wbGVtZW50YXRpb24uDQrCoMKgwqDCoMKgwqDCoMKgVGFza3MgUkNVIGVuYWJsZWQuDQpO Ul9JUlFTOiA1MTINCk1DSVA6IElEVSBzdXBwb3J0cyA2NCBjb21tb24gaXJxcw0KY2xvY2tzb3Vy Y2U6IEFSQ29ubmVjdCBHRlJDOiBtYXNrOiAweGZmZmZmZmZmZmZmZmZmZmYgbWF4X2N5Y2xlczog MHgxY2Q0MmU0ZGZmYiwgbWF4X2lkbGVfbnM6IDg4MTU5MDU5MTQ4MyBucw0KQ29uc29sZTogY29s b3VyIGR1bW15IGRldmljZSA4MHgyNQ0KQ2FsaWJyYXRpbmcgZGVsYXkgbG9vcC4uLiA5OTYuMTQg Qm9nb01JUFMgKGxwaj00OTgwNzM2KQ0KcGlkX21heDogZGVmYXVsdDogMzI3NjggbWluaW11bTog MzAxDQpNb3VudC1jYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDIwNDggKG9yZGVyOiAwLCA4MTky IGJ5dGVzKQ0KTW91bnRwb2ludC1jYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDIwNDggKG9yZGVy OiAwLCA4MTkyIGJ5dGVzKQ0KSGllcmFyY2hpY2FsIFNSQ1UgaW1wbGVtZW50YXRpb24uDQpzbXA6 IEJyaW5naW5nIHVwIHNlY29uZGFyeSBDUFVzIC4uLg0KSWRsZSBUYXNrIFsxXSBiZjA0ZGE4MA0K VHJ5aW5nIHRvIGJyaW5nIHVwIENQVTEgLi4uDQphcmNocy1pbnRjwqDCoMKgwqDCoMKgOiAyIHBy aW9yaXR5IGxldmVscyAoZGVmYXVsdCAxKSBGSVJRIChub3QgdXNlZCkNCg0KSURFTlRJVFnCoMKg wqDCoMKgwqDCoMKgOiBBUkNWRVIgWzB4NTJdIEFSQ05VTSBbMHgxXSBDSElQSUQgWyAweDBdDQpw cm9jZXNzb3IgWzFdwqDCoMKgOiBBUkMgSFMzOCBSMi4xIChBUkN2MiBJU0EpwqANClRpbWVyc8Kg wqDCoMKgwqDCoMKgwqDCoMKgOiBUaW1lcjAgVGltZXIxIFJUQyBbVVAgNjQtYml0XcKgDQpJU0Eg RXh0bsKgwqDCoMKgwqDCoMKgwqA6IGF0b21pYyBsbDY0IHVuYWxpZ24gKG5vdCB1c2VkKQ0KwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA6IG1weVtvcHQgOV0gZGl2X3JlbSBub3JtIGJh cnJlbC1zaGlmdCBzd2FwIG1pbm1heCBzd2FwZQ0KQlBVwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqA6IGZ1bGwgbWF0Y2gsIGNhY2hlOjIwNDgsIFByZWRpY3QgVGFibGU6MTYzODQNCk1NVSBbdjRd wqDCoMKgwqDCoMKgwqDCoDogOGsgUEFHRSwgMk0gU3VwZXIgUGFnZSAobm90IHVzZWQpIEpUTEIg MTAyNCAoMjU2eDQpLCB1RFRMQiA4LCB1SVRMQiA0LCBQQUU0MCAobm90IHVzZWQpwqANCkktQ2Fj aGXCoMKgwqDCoMKgwqDCoMKgwqA6IDY0SywgNHdheS9zZXQsIDY0QiBMaW5lLCBWSVBUIGFsaWFz aW5nDQpELUNhY2hlwqDCoMKgwqDCoMKgwqDCoMKgOiA2NEssIDJ3YXkvc2V0LCA2NEIgTGluZSwg UElQVA0KU0xDwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA6IDUxMkssIDEyOEIgTGluZQ0KUGVy aXBoZXJhbHPCoMKgwqDCoMKgOiAweGYwMDAwMDAwLCBJTy1Db2hlcmVuY3kgKGRpc2FibGVkKcKg DQpWZWN0b3IgVGFibGXCoMKgwqDCoDogMHg5MDAwMDAwMA0KRlBVwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqA6IFNQIERQwqANCkRFQlVHwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDogQWN0aW9uUG9p bnQgc21hUlQgUlRUwqANCkV4dG4gW0NDTV3CoMKgwqDCoMKgwqA6IERDQ00gQCA4MDAwMDAwMCwg MjU2IEtCIC8gSUNDTTogQCA3MDAwMDAwMCwgMjU2IEtCDQpPUyBBQkkgW3Y0XcKgwqDCoMKgwqA6 IDY0LWJpdCBkYXRhIGFueSByZWdpc3RlciBhbGlnbmVkDQpFeHRuIFtTTVBdwqDCoMKgwqDCoMKg OiBBUkNvbm5lY3QgKHYyKTogNCBjb3JlcyB3aXRoIElQSSBJRFUgREVCVUcgR0ZSQw0KRW5hYmxl IENPTkZJR19BUkNfSEFTX0FDQ0xfUkVHUyBmb3Igd29ya2luZyBhcHBzDQojIyBDUFUxIExJVkUg IyM6IEV4ZWN1dGluZyBDb2RlLi4uDQpJZGxlIFRhc2sgWzJdIGJmMDRkNTQwDQpUcnlpbmcgdG8g YnJpbmcgdXAgQ1BVMiAuLi4NCmFyY2hzLWludGPCoMKgwqDCoMKgwqA6IDIgcHJpb3JpdHkgbGV2 ZWxzIChkZWZhdWx0IDEpIEZJUlEgKG5vdCB1c2VkKQ0KDQpJREVOVElUWcKgwqDCoMKgwqDCoMKg wqA6IEFSQ1ZFUiBbMHg1Ml0gQVJDTlVNIFsweDJdIENISVBJRCBbIDB4MF0NCnByb2Nlc3NvciBb Ml3CoMKgwqA6IEFSQyBIUzM4IFIyLjEgKEFSQ3YyIElTQSnCoA0KVGltZXJzwqDCoMKgwqDCoMKg wqDCoMKgwqA6IFRpbWVyMCBUaW1lcjEgUlRDIFtVUCA2NC1iaXRdwqANCklTQSBFeHRuwqDCoMKg wqDCoMKgwqDCoDogYXRvbWljIGxsNjQgdW5hbGlnbiAobm90IHVzZWQpDQrCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoDogbXB5W29wdCA5XSBkaXZfcmVtIG5vcm0gYmFycmVsLXNoaWZ0 IHN3YXAgbWlubWF4IHN3YXBlDQpCUFXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDogZnVsbCBt YXRjaCwgY2FjaGU6MjA0OCwgUHJlZGljdCBUYWJsZToxNjM4NA0KTU1VIFt2NF3CoMKgwqDCoMKg wqDCoMKgOiA4ayBQQUdFLCAyTSBTdXBlciBQYWdlIChub3QgdXNlZCkgSlRMQiAxMDI0ICgyNTZ4 NCksIHVEVExCIDgsIHVJVExCIDQsIFBBRTQwIChub3QgdXNlZCnCoA0KSS1DYWNoZcKgwqDCoMKg wqDCoMKgwqDCoDogNjRLLCA0d2F5L3NldCwgNjRCIExpbmUsIFZJUFQgYWxpYXNpbmcNCkQtQ2Fj aGXCoMKgwqDCoMKgwqDCoMKgwqA6IDY0SywgMndheS9zZXQsIDY0QiBMaW5lLCBQSVBUDQpTTEPC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDogNTEySywgMTI4QiBMaW5lDQpQZXJpcGhlcmFsc8Kg wqDCoMKgwqA6IDB4ZjAwMDAwMDAsIElPLUNvaGVyZW5jeSAoZGlzYWJsZWQpwqANClZlY3RvciBU YWJsZcKgwqDCoMKgOiAweDkwMDAwMDAwDQpGUFXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDog U1AgRFDCoA0KREVCVUfCoMKgwqDCoMKgwqDCoMKgwqDCoMKgOiBBY3Rpb25Qb2ludCBzbWFSVCBS VFTCoA0KT1MgQUJJIFt2NF3CoMKgwqDCoMKgOiA2NC1iaXQgZGF0YSBhbnkgcmVnaXN0ZXIgYWxp Z25lZA0KRXh0biBbU01QXcKgwqDCoMKgwqDCoDogQVJDb25uZWN0ICh2Mik6IDQgY29yZXMgd2l0 aCBJUEkgSURVIERFQlVHIEdGUkMNCkVuYWJsZSBDT05GSUdfQVJDX0hBU19BQ0NMX1JFR1MgZm9y IHdvcmtpbmcgYXBwcw0KIyMgQ1BVMiBMSVZFICMjOiBFeGVjdXRpbmcgQ29kZS4uLg0KSWRsZSBU YXNrIFszXSBiZjA0ZDAwMA0KVHJ5aW5nIHRvIGJyaW5nIHVwIENQVTMgLi4uDQphcmNocy1pbnRj wqDCoMKgwqDCoMKgOiAyIHByaW9yaXR5IGxldmVscyAoZGVmYXVsdCAxKSBGSVJRIChub3QgdXNl ZCkNCg0KSURFTlRJVFnCoMKgwqDCoMKgwqDCoMKgOiBBUkNWRVIgWzB4NTJdIEFSQ05VTSBbMHgz XSBDSElQSUQgWyAweDBdDQpwcm9jZXNzb3IgWzNdwqDCoMKgOiBBUkMgSFMzOCBSMi4xIChBUkN2 MiBJU0EpwqANClRpbWVyc8KgwqDCoMKgwqDCoMKgwqDCoMKgOiBUaW1lcjAgVGltZXIxIFJUQyBb VVAgNjQtYml0XcKgDQpJU0EgRXh0bsKgwqDCoMKgwqDCoMKgwqA6IGF0b21pYyBsbDY0IHVuYWxp Z24gKG5vdCB1c2VkKQ0KwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA6IG1weVtvcHQg OV0gZGl2X3JlbSBub3JtIGJhcnJlbC1zaGlmdCBzd2FwIG1pbm1heCBzd2FwZQ0KQlBVwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqA6IGZ1bGwgbWF0Y2gsIGNhY2hlOjIwNDgsIFByZWRpY3QgVGFi bGU6MTYzODQNCk1NVSBbdjRdwqDCoMKgwqDCoMKgwqDCoDogOGsgUEFHRSwgMk0gU3VwZXIgUGFn ZSAobm90IHVzZWQpIEpUTEIgMTAyNCAoMjU2eDQpLCB1RFRMQiA4LCB1SVRMQiA0LCBQQUU0MCAo bm90IHVzZWQpwqANCkktQ2FjaGXCoMKgwqDCoMKgwqDCoMKgwqA6IDY0SywgNHdheS9zZXQsIDY0 QiBMaW5lLCBWSVBUIGFsaWFzaW5nDQpELUNhY2hlwqDCoMKgwqDCoMKgwqDCoMKgOiA2NEssIDJ3 YXkvc2V0LCA2NEIgTGluZSwgUElQVA0KU0xDwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA6IDUx MkssIDEyOEIgTGluZQ0KUGVyaXBoZXJhbHPCoMKgwqDCoMKgOiAweGYwMDAwMDAwLCBJTy1Db2hl cmVuY3kgKGRpc2FibGVkKcKgDQpWZWN0b3IgVGFibGXCoMKgwqDCoDogMHg5MDAwMDAwMA0KRlBV wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA6IFNQIERQwqANCkRFQlVHwqDCoMKgwqDCoMKgwqDC oMKgwqDCoDogQWN0aW9uUG9pbnQgc21hUlQgUlRUwqANCkV4dG4gW0NDTV3CoMKgwqDCoMKgwqA6 IERDQ00gQCA4MDAwMDAwMCwgMjU2IEtCIC8gSUNDTTogQCA3MDAwMDAwMCwgMjU2IEtCDQpPUyBB QkkgW3Y0XcKgwqDCoMKgwqA6IDY0LWJpdCBkYXRhIGFueSByZWdpc3RlciBhbGlnbmVkDQpFeHRu IFtTTVBdwqDCoMKgwqDCoMKgOiBBUkNvbm5lY3QgKHYyKTogNCBjb3JlcyB3aXRoIElQSSBJRFUg REVCVUcgR0ZSQw0KRW5hYmxlIENPTkZJR19BUkNfSEFTX0FDQ0xfUkVHUyBmb3Igd29ya2luZyBh cHBzDQojIyBDUFUzIExJVkUgIyM6IEV4ZWN1dGluZyBDb2RlLi4uDQpzbXA6IEJyb3VnaHQgdXAg MSBub2RlLCA0IENQVXMNCmRldnRtcGZzOiBpbml0aWFsaXplZA0KY2xvY2tzb3VyY2U6IGppZmZp ZXM6IG1hc2s6IDB4ZmZmZmZmZmYgbWF4X2N5Y2xlczogMHhmZmZmZmZmZiwgbWF4X2lkbGVfbnM6 IDE5MTEyNjA0NDYyNzUwMDAwIG5zDQpmdXRleCBoYXNoIHRhYmxlIGVudHJpZXM6IDEwMjQgKG9y ZGVyOiAzLCA2NTUzNiBieXRlcykNCk5FVDogUmVnaXN0ZXJlZCBwcm90b2NvbCBmYW1pbHkgMTYN ClNDU0kgc3Vic3lzdGVtIGluaXRpYWxpemVkDQp1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRl cmZhY2UgZHJpdmVyIHVzYmZzDQp1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJp dmVyIGh1Yg0KdXNiY29yZTogcmVnaXN0ZXJlZCBuZXcgZGV2aWNlIGRyaXZlciB1c2INCnBwc19j b3JlOiBMaW51eFBQUyBBUEkgdmVyLiAxIHJlZ2lzdGVyZWQNCnBwc19jb3JlOiBTb2Z0d2FyZSB2 ZXIuIDUuMy42IC0gQ29weXJpZ2h0IDIwMDUtMjAwNyBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0 aUBsaW51eC5pdD4NClBUUCBjbG9jayBzdXBwb3J0IHJlZ2lzdGVyZWQNCmNsb2Nrc291cmNlOiBT d2l0Y2hlZCB0byBjbG9ja3NvdXJjZSBBUkNvbm5lY3QgR0ZSQw0KTkVUOiBSZWdpc3RlcmVkIHBy b3RvY29sIGZhbWlseSAyDQpUQ1AgZXN0YWJsaXNoZWQgaGFzaCB0YWJsZSBlbnRyaWVzOiA4MTky IChvcmRlcjogMiwgMzI3NjggYnl0ZXMpDQpUQ1AgYmluZCBoYXNoIHRhYmxlIGVudHJpZXM6IDgx OTIgKG9yZGVyOiAzLCA2NTUzNiBieXRlcykNClRDUDogSGFzaCB0YWJsZXMgY29uZmlndXJlZCAo ZXN0YWJsaXNoZWQgODE5MiBiaW5kIDgxOTIpDQpVRFAgaGFzaCB0YWJsZSBlbnRyaWVzOiA1MTIg KG9yZGVyOiAxLCAxNjM4NCBieXRlcykNClVEUC1MaXRlIGhhc2ggdGFibGUgZW50cmllczogNTEy IChvcmRlcjogMSwgMTYzODQgYnl0ZXMpDQpORVQ6IFJlZ2lzdGVyZWQgcHJvdG9jb2wgZmFtaWx5 IDENClJQQzogUmVnaXN0ZXJlZCBuYW1lZCBVTklYIHNvY2tldCB0cmFuc3BvcnQgbW9kdWxlLg0K UlBDOiBSZWdpc3RlcmVkIHVkcCB0cmFuc3BvcnQgbW9kdWxlLg0KUlBDOiBSZWdpc3RlcmVkIHRj cCB0cmFuc3BvcnQgbW9kdWxlLg0KUlBDOiBSZWdpc3RlcmVkIHRjcCBORlN2NC4xIGJhY2tjaGFu bmVsIHRyYW5zcG9ydCBtb2R1bGUuDQpBUkMgcGVyZsKgwqDCoMKgwqDCoMKgwqA6IDggY291bnRl cnMgKDQ4IGJpdHMpLCAxMTMgY29uZGl0aW9ucw0Kd29ya2luZ3NldDogdGltZXN0YW1wX2JpdHM9 MzAgbWF4X29yZGVyPTE3IGJ1Y2tldF9vcmRlcj0wDQpCbG9jayBsYXllciBTQ1NJIGdlbmVyaWMg KGJzZykgZHJpdmVyIHZlcnNpb24gMC40IGxvYWRlZCAobWFqb3IgMjUyKQ0KaW8gc2NoZWR1bGVy IG5vb3AgcmVnaXN0ZXJlZA0KaW8gc2NoZWR1bGVyIGRlYWRsaW5lIHJlZ2lzdGVyZWQNCmlvIHNj aGVkdWxlciBjZnEgcmVnaXN0ZXJlZCAoZGVmYXVsdCkNCmlvIHNjaGVkdWxlciBtcS1kZWFkbGlu ZSByZWdpc3RlcmVkDQppbyBzY2hlZHVsZXIga3liZXIgcmVnaXN0ZXJlZA0KU2VyaWFsOiA4MjUw LzE2NTUwIGRyaXZlciwgNCBwb3J0cywgSVJRIHNoYXJpbmcgZGlzYWJsZWQNCmNvbnNvbGUgW3R0 eVMwXSBkaXNhYmxlZA0KZjAwMDUwMDAuc2VyaWFsOiB0dHlTMCBhdCBNTUlPIDB4ZjAwMDUwMDAg KGlycSA9IDYsIGJhc2VfYmF1ZCA9IDIwODMxMjUpIGlzIGEgMTY1NTBBDQpjb25zb2xlIFt0dHlT MF0gZW5hYmxlZA0KY29uc29sZSBbdHR5UzBdIGVuYWJsZWQNCmJvb3Rjb25zb2xlIFt1YXJ0ODI1 MF0gZGlzYWJsZWQNCmJvb3Rjb25zb2xlIFt1YXJ0ODI1MF0gZGlzYWJsZWQNCnVzYmNvcmU6IHJl Z2lzdGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgdWRsDQpldG5hdml2IHNvYzpncHUtc3Vic3lz dGVtOiBib3VuZCBmMDA5MDAwMC5ncHUgKG9wcyAweDkxYmUwNThjKQ0KZXRuYXZpdi1ncHUgZjAw OTAwMDAuZ3B1OiBtb2RlbDogR0M4ODAsIHJldmlzaW9uOiA1MTI0DQpbZHJtXSBJbml0aWFsaXpl ZCBldG5hdml2IDEuMS4wIDIwMTUxMjE0IGZvciBzb2M6Z3B1LXN1YnN5c3RlbSBvbiBtaW5vciAw DQpsaWJwaHk6IEZpeGVkIE1ESU8gQnVzOiBwcm9iZWQNCnN0bW1hY2V0aCBmMDAwODAwMC5ldGhl cm5ldDogUFRQIHVzZXMgbWFpbiBjbG9jaw0Kc3RtbWFjIC0gdXNlciBJRDogMHgxMCwgU3lub3Bz eXMgSUQ6IDB4MzcNCnN0bW1hY2V0aCBmMDAwODAwMC5ldGhlcm5ldDogUmluZyBtb2RlIGVuYWJs ZWQNCnN0bW1hY2V0aCBmMDAwODAwMC5ldGhlcm5ldDogRE1BIEhXIGNhcGFiaWxpdHkgcmVnaXN0 ZXIgc3VwcG9ydGVkDQpzdG1tYWNldGggZjAwMDgwMDAuZXRoZXJuZXQ6IE5vcm1hbCBkZXNjcmlw dG9ycw0Kc3RtbWFjZXRoIGYwMDA4MDAwLmV0aGVybmV0OiBSWCBDaGVja3N1bSBPZmZsb2FkIEVu Z2luZSBzdXBwb3J0ZWQNCnN0bW1hY2V0aCBmMDAwODAwMC5ldGhlcm5ldDogQ09FIFR5cGUgMg0K c3RtbWFjZXRoIGYwMDA4MDAwLmV0aGVybmV0OiBUWCBDaGVja3N1bSBpbnNlcnRpb24gc3VwcG9y dGVkDQpzdG1tYWNldGggZjAwMDgwMDAuZXRoZXJuZXQ6IEVuYWJsZSBSWCBNaXRpZ2F0aW9uIHZp YSBIVyBXYXRjaGRvZyBUaW1lcg0KbGlicGh5OiBzdG1tYWM6IHByb2JlZA0KZWhjaV9oY2Q6IFVT QiAyLjAgJ0VuaGFuY2VkJyBIb3N0IENvbnRyb2xsZXIgKEVIQ0kpIERyaXZlcg0KZWhjaS1wbGF0 Zm9ybTogRUhDSSBnZW5lcmljIHBsYXRmb3JtIGRyaXZlcg0KZWhjaS1wbGF0Zm9ybSBmMDA0MDAw MC5laGNpOiBFSENJIEhvc3QgQ29udHJvbGxlcg0KZWhjaS1wbGF0Zm9ybSBmMDA0MDAwMC5laGNp OiBuZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBhc3NpZ25lZCBidXMgbnVtYmVyIDENCmVoY2ktcGxh dGZvcm0gZjAwNDAwMDAuZWhjaTogaXJxIDE1LCBpbyBtZW0gMHhmMDA0MDAwMA0KZWhjaS1wbGF0 Zm9ybSBmMDA0MDAwMC5laGNpOiBVU0IgMi4wIHN0YXJ0ZWQsIEVIQ0kgMS4wMA0KaHViIDEtMDox LjA6IFVTQiBodWIgZm91bmQNCmh1YiAxLTA6MS4wOiAxIHBvcnQgZGV0ZWN0ZWQNCm9oY2lfaGNk OiBVU0IgMS4xICdPcGVuJyBIb3N0IENvbnRyb2xsZXIgKE9IQ0kpIERyaXZlcg0Kb2hjaS1wbGF0 Zm9ybTogT0hDSSBnZW5lcmljIHBsYXRmb3JtIGRyaXZlcg0Kb2hjaS1wbGF0Zm9ybSBmMDA2MDAw MC5vaGNpOiBHZW5lcmljIFBsYXRmb3JtIE9IQ0kgY29udHJvbGxlcg0Kb2hjaS1wbGF0Zm9ybSBm MDA2MDAwMC5vaGNpOiBuZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBhc3NpZ25lZCBidXMgbnVtYmVy IDINCm9oY2ktcGxhdGZvcm0gZjAwNjAwMDAub2hjaTogaXJxIDE1LCBpbyBtZW0gMHhmMDA2MDAw MA0KaHViIDItMDoxLjA6IFVTQiBodWIgZm91bmQNCmh1YiAyLTA6MS4wOiAxIHBvcnQgZGV0ZWN0 ZWQNCnVzYmNvcmU6IHJlZ2lzdGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgdXNiLXN0b3JhZ2UN CklSIE5FQyBwcm90b2NvbCBoYW5kbGVyIGluaXRpYWxpemVkDQpJUiBSQzUoeC9zeikgcHJvdG9j b2wgaGFuZGxlciBpbml0aWFsaXplZA0KSVIgUkM2IHByb3RvY29sIGhhbmRsZXIgaW5pdGlhbGl6 ZWQNCklSIEpWQyBwcm90b2NvbCBoYW5kbGVyIGluaXRpYWxpemVkDQpJUiBTb255IHByb3RvY29s IGhhbmRsZXIgaW5pdGlhbGl6ZWQNCklSIFNBTllPIHByb3RvY29sIGhhbmRsZXIgaW5pdGlhbGl6 ZWQNCklSIFNoYXJwIHByb3RvY29sIGhhbmRsZXIgaW5pdGlhbGl6ZWQNCklSIE1DRSBLZXlib2Fy ZC9tb3VzZSBwcm90b2NvbCBoYW5kbGVyIGluaXRpYWxpemVkDQpJUiBYTVAgcHJvdG9jb2wgaGFu ZGxlciBpbml0aWFsaXplZA0Kc2RoY2k6IFNlY3VyZSBEaWdpdGFsIEhvc3QgQ29udHJvbGxlciBJ bnRlcmZhY2UgZHJpdmVyDQpzZGhjaTogQ29weXJpZ2h0KGMpIFBpZXJyZSBPc3NtYW4NClN5bm9w c3lzIERlc2lnbndhcmUgTXVsdGltZWRpYSBDYXJkIEludGVyZmFjZSBEcml2ZXINCmR3X21tYyBm MDAwYTAwMC5tbWM6ICdudW0tc2xvdHMnIHdhcyBkZXByZWNhdGVkLg0KZHdfbW1jIGYwMDBhMDAw Lm1tYzogSURNQUMgc3VwcG9ydHMgMzItYml0IGFkZHJlc3MgbW9kZS4NCmR3X21tYyBmMDAwYTAw MC5tbWM6IFVzaW5nIGludGVybmFsIERNQSBjb250cm9sbGVyLg0KZHdfbW1jIGYwMDBhMDAwLm1t YzogVmVyc2lvbiBJRCBpcyAyOTBhDQpkd19tbWMgZjAwMGEwMDAubW1jOiBEVyBNTUMgY29udHJv bGxlciBhdCBpcnEgMTIsMzIgYml0IGhvc3QgZGF0YSB3aWR0aCwxNiBkZWVwIGZpZm8NCm1tY19o b3N0IG1tYzA6IEJ1cyBzcGVlZCAoc2xvdCAwKSA9IDUwMDAwMDAwSHogKHNsb3QgcmVxIDQwMDAw MEh6LCBhY3R1YWwgMzk2ODI1SFogZGl2ID0gNjMpDQpzZGhjaS1wbHRmbTogU0RIQ0kgcGxhdGZv cm0gYW5kIE9GIGRyaXZlciBoZWxwZXINCnVzYmNvcmU6IHJlZ2lzdGVyZWQgbmV3IGludGVyZmFj ZSBkcml2ZXIgdXNiaGlkDQp1c2JoaWQ6IFVTQiBISUQgY29yZSBkcml2ZXINCk5FVDogUmVnaXN0 ZXJlZCBwcm90b2NvbCBmYW1pbHkgMTANClNlZ21lbnQgUm91dGluZyB3aXRoIElQdjYNCnNpdDog SVB2NiwgSVB2NCBhbmQgTVBMUyBvdmVyIElQdjQgdHVubmVsaW5nIGRyaXZlcg0KTkVUOiBSZWdp c3RlcmVkIHByb3RvY29sIGZhbWlseSAxNw0KdHR5UzAgLSBmYWlsZWQgdG8gcmVxdWVzdCBETUEN CkZyZWVpbmcgdW51c2VkIGtlcm5lbCBtZW1vcnk6IDIzMDQwSw0KVGhpcyBhcmNoaXRlY3R1cmUg ZG9lcyBub3QgaGF2ZSBrZXJuZWwgbWVtb3J5IHByb3RlY3Rpb24uDQpTdGFydGluZyBsb2dnaW5n OiBPSw0KSW5pdGlhbGl6aW5nIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yLi4uIGRvbmUuDQpTdGFy dGluZyBuZXR3b3JrOiBzdG1tYWNldGggZjAwMDgwMDAuZXRoZXJuZXQgZXRoMDogZGV2aWNlIE1B QyBhZGRyZXNzIGE2OjZjOjdlOjQwOmM2Ojg2DQptbWNfaG9zdCBtbWMwOiBCdXMgc3BlZWQgKHNs b3QgMCkgPSA1MDAwMDAwMEh6IChzbG90IHJlcSAyNTAwMDAwMEh6LCBhY3R1YWwgMjUwMDAwMDBI WiBkaXYgPSAxKQ0KdXNiIDEtMTogbmV3IGhpZ2gtc3BlZWQgVVNCIGRldmljZSBudW1iZXIgMiB1 c2luZyBlaGNpLXBsYXRmb3JtDQptbWMwOiBuZXcgU0RIQyBjYXJkIGF0IGFkZHJlc3MgYWFhYQ0K YmxrX3F1ZXVlX21heF9zZWdtZW50X3NpemU6IHNldCB0byBtaW5pbXVtIDgxOTINCm1tY2JsazA6 IG1tYzA6YWFhYSBTTDA4RyA3LjQwIEdpQsKgDQrCoG1tY2JsazA6IHAxIHAyDQpNaWNyZWwgS1Na OTAzMSBHaWdhYml0IFBIWSBzdG1tYWMtMDowMDogYXR0YWNoZWQgUEhZIGRyaXZlciBbTWljcmVs IEtTWjkwMzEgR2lnYWJpdCBQSFldIChtaWlfYnVzOnBoeV9hZGRyPXN0bW1hYy0wOjAwLCBpcnE9 UE9MTCkNCnN0bW1hY2V0aCBmMDAwODAwMC5ldGhlcm5ldCBldGgwOiBQVFAgbm90IHN1cHBvcnRl ZCBieSBIVw0KSVB2NjogQUREUkNPTkYoTkVUREVWX1VQKTogZXRoMDogbGluayBpcyBub3QgcmVh ZHkNCnVkaGNwYzogc3RhcnRlZCwgdjEuMjcuMg0KdWRoY3BjOiBzZW5kaW5nIGRpc2NvdmVyDQpo dWIgMS0xOjEuMDogVVNCIGh1YiBmb3VuZA0KaHViIDEtMToxLjA6IDIgcG9ydHMgZGV0ZWN0ZWQN CnVzYiAxLTEuMTogbmV3IGhpZ2gtc3BlZWQgVVNCIGRldmljZSBudW1iZXIgMyB1c2luZyBlaGNp LXBsYXRmb3JtDQpbZHJtXSB2ZW5kb3IgZGVzY3JpcHRvciBsZW5ndGg6MmUgZGF0YToyZSA1ZiAw MSAwMCAyYyAwMCAwNCAwNCAwMSAwMCAwMw0KW2RybV0gU3VwcG9ydHMgdmJsYW5rIHRpbWVzdGFt cCBjYWNoaW5nIFJldiAyICgyMS4xMC4yMDEzKS4NCltkcm1dIE5vIGRyaXZlciBzdXBwb3J0IGZv ciB2YmxhbmsgdGltZXN0YW1wIHF1ZXJ5Lg0KW2RybV0gSW5pdGlhbGl6ZWQgdWRsIDAuMC4xIDIw MTIwMjIwIGZvciAxLTEuMToxLjAgb24gbWlub3IgMQ0KW2RybV0gSW5pdGlhbGl6ZWQgdWRsIG9u IG1pbm9yIDENCnN0bW1hY2V0aCBmMDAwODAwMC5ldGhlcm5ldCBldGgwOiBMaW5rIGlzIFVwIC0g MTAwTWJwcy9GdWxsIC0gZmxvdyBjb250cm9sIHJ4L3R4DQpJUHY2OiBBRERSQ09ORihORVRERVZf Q0hBTkdFKTogZXRoMDogbGluayBiZWNvbWVzIHJlYWR5DQoNCnVkaGNwYzogc2VuZGluZyBkaXNj b3Zlcg0KDQoNCnVkaGNwYzogc2VuZGluZyBkaXNjb3Zlcg0KdWRoY3BjOiBzZW5kaW5nIHNlbGVj dCBmb3IgMTAuNDIuMC4xMjINCnVkaGNwYzogbGVhc2Ugb2YgMTAuNDIuMC4xMjIgb2J0YWluZWQs IGxlYXNlIHRpbWUgMzYwMA0KZGVsZXRpbmcgcm91dGVycw0KYWRkaW5nIGRucyAxMC40Mi4wLjEN Ck9LDQoNCldlbGNvbWUgdG8gdGhlIEFSQyBTb2Z0d2FyZSBEZXZlbG9wbWVudCBQbGF0Zm9ybQ0K YXhzMTAzIGxvZ2luOiByb290DQojIGNhdCAvZXRjL1gxMS94b3JnLmNvbmbCoA0KU2VjdGlvbiAi RGV2aWNlIg0KwqDCoMKgwqDCoMKgwqDCoElkZW50aWZpZXLCoMKgwqDCoMKgwqAiRHJpdmVyMCIN CsKgwqDCoMKgwqDCoMKgwqBTY3JlZW7CoMKgwqDCoMKgwqDCoMKgwqDCoDANCsKgwqDCoMKgwqDC oMKgwqBEcml2ZXLCoMKgwqDCoMKgwqDCoMKgwqDCoCJhcm1hZGEiDQoNCiMgU3VwcG9ydCBob3Rw bHVnZ2luZyBkaXNwbGF5cz8NCsKgwqDCoMKgwqDCoMKgwqBPcHRpb27CoMKgwqDCoMKgwqDCoMKg wqDCoCJIb3RwbHVnIsKgwqDCoMKgwqDCoMKgIlRSVUUiDQoNCiMgU3VwcG9ydCBoYXJkd2FyZSBj dXJzb3IgaWYgYXZhaWxhYmxlPw0KwqDCoMKgwqDCoMKgwqDCoE9wdGlvbsKgwqDCoMKgwqDCoMKg wqDCoMKgIkhXQ3Vyc29yIsKgwqDCoMKgwqDCoCJUUlVFIg0KDQojIFVzZSBHUFUgYWNjZWxlcmF0 aW9uPw0KwqDCoMKgwqDCoMKgwqDCoE9wdGlvbsKgwqDCoMKgwqDCoMKgwqDCoMKgIlVzZUdQVSLC oMKgwqDCoMKgwqDCoMKgIlRSVUUiDQoNCiMgUHJvdmlkZSBYdiBpbnRlcmZhY2VzPw0KwqDCoMKg wqDCoMKgwqDCoE9wdGlvbsKgwqDCoMKgwqDCoMKgwqDCoMKgIlh2QWNjZWwiwqDCoMKgwqDCoMKg wqAiVFJVRSINCg0KIyBQcmVmZXIgb3ZlcmxheSBmb3IgWHYgKFRSVUUgZm9yIGFybWFkYS1kcm0s IEZBTFNFIGZvciBpbXgtZHJtKQ0KwqDCoMKgwqDCoMKgwqDCoE9wdGlvbsKgwqDCoMKgwqDCoMKg wqDCoMKgIlh2UHJlZmVyT3ZlcmxheSIgIlRSVUUiDQoNCiMgV2hpY2ggYWNjZWxlcmF0b3IgbW9k dWxlIHRvIGxvYWQgKGF1dG9tYXRpY2FsbHkgZm91bmQgaWYgY29tbWVudGVkIG91dCkNCsKgwqDC oMKgwqDCoMKgwqBPcHRpb27CoMKgwqDCoMKgwqDCoMKgwqDCoCJBY2NlbE1vZHVsZSLCoMKgwqAi ZXRuYWRybV9ncHUiDQrCoMKgwqDCoMKgwqDCoMKgT3B0aW9uwqDCoMKgwqDCoMKgwqDCoMKgwqAi QWNjZWxNb2R1bGUiwqDCoMKgImV0bmF2aXZfZ3B1Ig0KDQojIFN1cHBvcnQgRFJJMiBpbnRlcmZh Y2VzPw0KwqDCoMKgwqDCoMKgwqDCoE9wdGlvbsKgwqDCoMKgwqDCoMKgwqDCoMKgIkRSSSLCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIlRSVUUiDQpFbmRTZWN0aW9uDQoNCiMgWCYNCiPCoA0KWC5Pcmcg WCBTZXJ2ZXIgMS4xOS41DQpSZWxlYXNlIERhdGU6IDIwMTctMTAtMTINClggUHJvdG9jb2wgVmVy c2lvbiAxMSwgUmV2aXNpb24gMA0KQnVpbGQgT3BlcmF0aW5nIFN5c3RlbTogTGludXggMy4xMC4w LTUxNC5lbDcueDg2XzY0IHg4Nl82NMKgDQpDdXJyZW50IE9wZXJhdGluZyBTeXN0ZW06IExpbnV4 IGF4czFbZHJtOmRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2Rlc10gW0NPTk5F Q1RPUjozMDpEVkktSS0xXQ0KMDMgNC4xNC4yLTAwMDA4LWc5NWJlNmY3NjJiN2YtZGlbZHJtOmRy bV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2Rlc10gW0NPTk5FQ1RPUjozMDpEVkkt SS0xXSBzdGF0dXMgdXBkYXRlZCBmcm9tIHVua25vd24gdG8gY29ubmVjdGVkDQpydHkgIzY4IFNN UCBQUkVFTVBUIE1vbiBEZWMgNCAxNjoxMjo0NiBNU0sgMjAxNyBhcmMNCktlcm5lbCBjb21tYW5k IGxpbmU6IGVhcmx5Y29uPXVhcnQ4MjUwLG1taW8zMiwweGYwMDA1MDAwLDExNTIwMG44IGNvbnNv bGU9dHR5UzAsMTE1MjAwbjggZGVidWcgcHJpbnQtZmF0YWwtc2lnbmFscz0xIGRybS5kZWJ1Zz0w eDFlDQpCdWlsZCBEYXRlOiAwMSBEZWNlbWJlciAyMDE3wqDCoDEyOjIxOjI4UE0NCsKgDQpDdXJy ZW50IHZlcnNpb24gb2YgcGl4bWFuOiAwLjM0LjANCsKgwqDCoMKgwqDCoMKgwqBCZWZvcmUgcmVw b3J0aW5nIHByb2JsZW1zLCBjaGVjayBodHRwOi8vd2lraS54Lm9yZw0KwqDCoMKgwqDCoMKgwqDC oHRvIG1ha2Ugc3VyZSB0aGF0IHlvdSBoYXZlIHRoZSBsYXRlc3QgdmVyc2lvbi4NCk1hcmtlcnM6 ICgtLSkgcHJvYmVkLCAoKiopIGZyb20gY29uZmlnIGZpbGUsICg9PSkgZGVmYXVsdCBzZXR0aW5n LA0KwqDCoMKgwqDCoMKgwqDCoCgrKykgZnJvbSBjb21tYW5kIGxpbmUsICghISkgbm90aWNlLCAo SUkpIGluZm9ybWF0aW9uYWwsDQrCoMKgwqDCoMKgwqDCoMKgKFdXKSB3YXJuaW5nLCAoRUUpIGVy cm9yLCAoTkkpIG5vdCBpbXBsZW1lbnRlZCwgKD8/KSB1bmtub3duLg0KKD09KSBMb2cgZmlsZTog Ii9bZHJtOmRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2Rlc10gW0NPTk5FQ1RP UjozMDpEVkktSS0xXSBwcm9iZWQgbW9kZXMgOg0KdmFyL2xvZy9Yb3JnLjAubG9nIiwgVGltZTog VGh1IEpbZHJtOmRybV9tb2RlX2RlYnVnX3ByaW50bW9kZWxpbmVdIE1vZGVsaW5lIDMyOiIxOTIw eDEwODAiIDYwIDE0ODUwMCAxOTIwIDIwMDggMjA1MiAyMjAwIDEwODAgMTA4NCAxMDg5IDExMjUg MHg0OCAweDUNCmFuwqDCoDEgMDA6MDA6MzAgMTk3MA0KKD09KSBVc2luZyBbZHJtOmRybV9tb2Rl X2RlYnVnX3ByaW50bW9kZWxpbmVdIE1vZGVsaW5lIDM5OiIxMjgweDEwMjQiIDc1IDEzNTAwMCAx MjgwIDEyOTYgMTQ0MCAxNjg4IDEwMjQgMTAyNSAxMDI4IDEwNjYgMHg0MCAweDUNCmNvbmZpZyBm aWxlOiAiL2V0Yy9YMTEveG9yZy5jb25mW2RybTpkcm1fbW9kZV9kZWJ1Z19wcmludG1vZGVsaW5l XSBNb2RlbGluZSAzNDoiMTI4MHgxMDI0IiA2MCAxMDgwMDAgMTI4MCAxMzI4IDE0NDAgMTY4OCAx MDI0IDEwMjUgMTAyOCAxMDY2IDB4NDAgMHg1DQoiDQooPT0pIFVzaW5nIHN5c3RlbSBjb25maWcg ZGlyZVtkcm06ZHJtX21vZGVfZGVidWdfcHJpbnRtb2RlbGluZV0gTW9kZWxpbmUgMzM6IjExNTJ4 ODY0IiA3NSAxMDgwMDAgMTE1MiAxMjE2IDEzNDQgMTYwMCA4NjQgODY1IDg2OCA5MDAgMHg0MCAw eDUNCmN0b3J5ICIvdXNyL3NoYXJlL1gxMS94b3JnLmNvbmYuW2RybTpkcm1fbW9kZV9kZWJ1Z19w cmludG1vZGVsaW5lXSBNb2RlbGluZSA0MDoiMTAyNHg3NjgiIDc1IDc4NzUwIDEwMjQgMTA0MCAx MTM2IDEzMTIgNzY4IDc2OSA3NzIgODAwIDB4NDAgMHg1DQpkIg0KW2RybTpkcm1fbW9kZV9kZWJ1 Z19wcmludG1vZGVsaW5lXSBNb2RlbGluZSA0MToiMTAyNHg3NjgiIDYwIDY1MDAwIDEwMjQgMTA0 OCAxMTg0IDEzNDQgNzY4IDc3MSA3NzcgODA2IDB4NDAgMHhhDQpbZHJtOmRybV9tb2RlX2RlYnVn X3ByaW50bW9kZWxpbmVdIE1vZGVsaW5lIDQyOiI4MDB4NjAwIiA3NSA0OTUwMCA4MDAgODE2IDg5 NiAxMDU2IDYwMCA2MDEgNjA0IDYyNSAweDQwIDB4NQ0KW2RybTpkcm1fbW9kZV9kZWJ1Z19wcmlu dG1vZGVsaW5lXSBNb2RlbGluZSAzNToiODAweDYwMCIgNjAgNDAwMDAgODAwIDg0MCA5NjggMTA1 NiA2MDAgNjAxIDYwNSA2MjggMHg0MCAweDUNCltkcm06ZHJtX21vZGVfZGVidWdfcHJpbnRtb2Rl bGluZV0gTW9kZWxpbmUgMzY6IjY0MHg0ODAiIDc1IDMxNTAwIDY0MCA2NTYgNzIwIDg0MCA0ODAg NDgxIDQ4NCA1MDAgMHg0MCAweGENCltkcm06ZHJtX21vZGVfZGVidWdfcHJpbnRtb2RlbGluZV0g TW9kZWxpbmUgMzc6IjY0MHg0ODAiIDYwIDI1MTc1IDY0MCA2NTYgNzUyIDgwMCA0ODAgNDkwIDQ5 MiA1MjUgMHg0MCAweGENCltkcm06ZHJtX21vZGVfZGVidWdfcHJpbnRtb2RlbGluZV0gTW9kZWxp bmUgMzg6IjcyMHg0MDAiIDcwIDI4MzIwIDcyMCA3MzggODQ2IDkwMCA0MDAgNDEyIDQxNCA0NDkg MHg0MCAweDYNCltkcm06ZHJtX2hlbHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzXSBb Q09OTkVDVE9SOjMwOkRWSS1JLTFdDQpbZHJtOmRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5l Y3Rvcl9tb2Rlc10gW0NPTk5FQ1RPUjozMDpEVkktSS0xXSBwcm9iZWQgbW9kZXMgOg0KW2RybTpk cm1fbW9kZV9kZWJ1Z19wcmludG1vZGVsaW5lXSBNb2RlbGluZSAzMjoiMTkyMHgxMDgwIiA2MCAx NDg1MDAgMTkyMCAyMDA4IDIwNTIgMjIwMCAxMDgwIDEwODQgMTA4OSAxMTI1IDB4NDggMHg1DQpb ZHJtOmRybV9tb2RlX2RlYnVnX3ByaW50bW9kZWxpbmVdIE1vZGVsaW5lIDM5OiIxMjgweDEwMjQi IDc1IDEzNTAwMCAxMjgwIDEyOTYgMTQ0MCAxNjg4IDEwMjQgMTAyNSAxMDI4IDEwNjYgMHg0MCAw eDUNCltkcm06ZHJtX21vZGVfZGVidWdfcHJpbnRtb2RlbGluZV0gTW9kZWxpbmUgMzQ6IjEyODB4 MTAyNCIgNjAgMTA4MDAwIDEyODAgMTMyOCAxNDQwIDE2ODggMTAyNCAxMDI1IDEwMjggMTA2NiAw eDQwIDB4NQ0KW2RybTpkcm1fbW9kZV9kZWJ1Z19wcmludG1vZGVsaW5lXSBNb2RlbGluZSAzMzoi MTE1Mng4NjQiIDc1IDEwODAwMCAxMTUyIDEyMTYgMTM0NCAxNjAwIDg2NCA4NjUgODY4IDkwMCAw eDQwIDB4NQ0KW2RybTpkcm1fbW9kZV9kZWJ1Z19wcmludG1vZGVsaW5lXSBNb2RlbGluZSA0MDoi MTAyNHg3NjgiIDc1IDc4NzUwIDEwMjQgMTA0MCAxMTM2IDEzMTIgNzY4IDc2OSA3NzIgODAwIDB4 NDAgMHg1DQpbZHJtOmRybV9tb2RlX2RlYnVnX3ByaW50bW9kZWxpbmVdIE1vZGVsaW5lIDQxOiIx MDI0eDc2OCIgNjAgNjUwMDAgMTAyNCAxMDQ4IDExODQgMTM0NCA3NjggNzcxIDc3NyA4MDYgMHg0 MCAweGENCltkcm06ZHJtX21vZGVfZGVidWdfcHJpbnRtb2RlbGluZV0gTW9kZWxpbmUgNDI6Ijgw MHg2MDAiIDc1IDQ5NTAwIDgwMCA4MTYgODk2IDEwNTYgNjAwIDYwMSA2MDQgNjI1IDB4NDAgMHg1 DQpbZHJtOmRybV9tb2RlX2RlYnVnX3ByaW50bW9kZWxpbmVdIE1vZGVsaW5lIDM1OiI4MDB4NjAw IiA2MCA0MDAwMCA4MDAgODQwIDk2OCAxMDU2IDYwMCA2MDEgNjA1IDYyOCAweDQwIDB4NQ0KW2Ry bTpkcm1fbW9kZV9kZWJ1Z19wcmludG1vZGVsaW5lXSBNb2RlbGluZSAzNjoiNjQweDQ4MCIgNzUg MzE1MDAgNjQwIDY1NiA3MjAgODQwIDQ4MCA0ODEgNDg0IDUwMCAweDQwIDB4YQ0KW2RybTpkcm1f bW9kZV9kZWJ1Z19wcmludG1vZGVsaW5lXSBNb2RlbGluZSAzNzoiNjQweDQ4MCIgNjAgMjUxNzUg NjQwIDY1NiA3NTIgODAwIDQ4MCA0OTAgNDkyIDUyNSAweDQwIDB4YQ0KW2RybTpkcm1fbW9kZV9k ZWJ1Z19wcmludG1vZGVsaW5lXSBNb2RlbGluZSAzODoiNzIweDQwMCIgNzAgMjgzMjAgNzIwIDcz OCA4NDYgOTAwIDQwMCA0MTIgNDE0IDQ0OSAweDQwIDB4Ng0KW2RybTp1ZGxfZHJtX2dlbV9tbWFw XSBmbGFncyA9IDB4MQ0KW2RybTpkcm1fbW9kZV9hZGRmYl0gW0ZCOjMxXQ0KW2RybTpkcm1fbW9k ZV9zZXRjcnRjXSBbQ1JUQzoyODpjcnRjLTBdDQpbZHJtOmRybV9tb2RlX3NldGNydGNdIFtDT05O RUNUT1I6MzA6RFZJLUktMV0NCltkcm06ZHJtX2NydGNfaGVscGVyX3NldF9jb25maWddwqANCltk cm06ZHJtX2NydGNfaGVscGVyX3NldF9jb25maWddIFtDUlRDOjI4OmNydGMtMF0gW0ZCOjMxXSAj Y29ubmVjdG9ycz0xICh4IHkpICgwIDApDQpbZHJtOmRybV9jcnRjX2hlbHBlcl9zZXRfY29uZmln XSBjcnRjIGhhcyBubyBmYiwgZnVsbCBtb2RlIHNldA0KW2RybTpkcm1fY3J0Y19oZWxwZXJfc2V0 X2NvbmZpZ10gbW9kZXMgYXJlIGRpZmZlcmVudCwgZnVsbCBtb2RlIHNldA0KW2RybTpkcm1fbW9k ZV9kZWJ1Z19wcmludG1vZGVsaW5lXSBNb2RlbGluZSAwOiIiIDAgMCAwIDAgMCAwIDAgMCAwIDAg MHgwIDB4MA0KW2RybTpkcm1fbW9kZV9kZWJ1Z19wcmludG1vZGVsaW5lXSBNb2RlbGluZSA0NDoi IiAwIDE0ODUwMCAxOTIwIDIwMDggMjA1MiAyMjAwIDEwODAgMTA4NCAxMDg5IDExMjUgMHgwIDB4 NQ0KW2RybTpkcm1fY3J0Y19oZWxwZXJfc2V0X2NvbmZpZ10gZW5jb2RlciBjaGFuZ2VkLCBmdWxs IG1vZGUgc3dpdGNoDQpbZHJtOmRybV9jcnRjX2hlbHBlcl9zZXRfY29uZmlnXSBjcnRjIGNoYW5n ZWQsIGZ1bGwgbW9kZSBzd2l0Y2gNCltkcm06ZHJtX2NydGNfaGVscGVyX3NldF9jb25maWddIFtD T05ORUNUT1I6MzA6RFZJLUktMV0gdG8gW0NSVEM6Mjg6Y3J0Yy0wXQ0KW2RybTpkcm1fY3J0Y19o ZWxwZXJfc2V0X2NvbmZpZ10gYXR0ZW1wdGluZyB0byBzZXQgbW9kZSBmcm9tIHVzZXJzcGFjZQ0K W2RybTpkcm1fbW9kZV9kZWJ1Z19wcmludG1vZGVsaW5lXSBNb2RlbGluZSA0NDoiIiAwIDE0ODUw MCAxOTIwIDIwMDggMjA1MiAyMjAwIDEwODAgMTA4NCAxMDg5IDExMjUgMHgwIDB4NQ0KW2RybTpk cm1fY3J0Y19oZWxwZXJfc2V0X21vZGVdIFtDUlRDOjI4OmNydGMtMF0NCltkcm06ZHJtX2NydGNf aGVscGVyX3NldF9tb2RlXSBbRU5DT0RFUjoyOTpUTURTLTI5XSBzZXQgW01PREU6NDQ6XQ0KW2Ry bV0gd3JpdGUgbW9kZSBpbmZvIDE1Mw0KW2RybTpkcm1fY3J0Y19oZWxwZXJfc2V0X2NvbmZpZ10g U2V0dGluZyBjb25uZWN0b3IgRFBNUyBzdGF0ZSB0byBvbg0KW2RybTpkcm1fY3J0Y19oZWxwZXJf c2V0X2NvbmZpZ13CoMKgwqDCoMKgwqDCoMKgW0NPTk5FQ1RPUjozMDpEVkktSS0xXSBzZXQgRFBN UyBvbg0KW2RybTp1ZGxfYXR0YWNoX2RtYV9idWZdIFtERVY6c29jOmdwdS1zdWJzeXN0ZW1dIHNp emU6ODI5ODQ5Ng0KW2RybTp1ZGxfbWFwX2RtYV9idWZdIFtERVY6c29jOmdwdS1zdWJzeXN0ZW1d IHNpemU6ODI5ODQ5NiBkaXI9MA0KZXRuYXZpdi1ncHUgZjAwOTAwMDAuZ3B1OiB2aXJ0IDcxMDQw MDAwIHBoeXMgMHgwMDAwMDAwMCBmcmVlIDB4MDAwMDFlYzANCmNtZCAwMDAwMDAwMDogMzgwMDAw YzggMDAwMDAwMDAgNDAwMDAwMDIgMDAwMDAwMDANCi4uLg0KY21kIDAwMDAwMTMwOiA0ODAwMDAw MCAwMDAwMDcwMSAwODAxMGUwMSAwMDAwMDA0MA0Kc3RyZWFtIGxpbmsgdG8gMHgwMDAwMDA1MCBA IDB4MDAwMDIwMDAgNzEwNDIwMDANCmNtZCAwMDAwMDAwMDogMDgwMTBlMDMgMDAwMDAwMDggMDgw MTBlMDIgMDAwMDA3MDENCi4uLg0KY21kIDAwMDAwMGIwOiA0MDAwMDAwNyAwMDAwMDA1MA0KbGlu ayBvcDogNzEwNDAwMDANCmFkZHI6IDB4MDAwMDAwMTANCmJhY2s6IDB4MDAwMDAwNTANCmV2ZW50 OiAwDQpldG5hdml2LWdwdSBmMDA5MDAwMC5ncHU6IHZpcnQgNzEwNDAwMDAgcGh5cyAweDAwMDAw MDAwIGZyZWUgMHgwMDAwMWVjMA0KY21kIDAwMDAwMDAwOiA0MDAwMDAwOCAwMDAwMDAxMCA0MDAw MDAwMiAwMDAwMDAwMA0KLi4uDQpjbWQgMDAwMDAxMzA6IDQ4MDAwMDAwIDAwMDAwNzAxIDA4MDEw ZTAxIDAwMDAwMDQwDQoNCiPCoA0KIyBleHBvcnQgRElTUExBWT06MA0KIyBnbG1hcmsyLWVzMnJh bmRvbTogY3JuZyBpbml0IGRvbmUNCg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KwqDCoMKgwqBnbG1ldG5hdml2LWdwdSBmMDA5MDAwMC5n cHU6IHZpcnQgNzEwNDAwMDAgcGh5cyAweDAwMDAwMDAwIGZyZWUgMHgwMDAwMWVjMA0KYXJrMiAy MDE0LjAzDQo9PT09PT09PT09PT09PT09PT1jbWQgMDAwMDAwMDA6IDQwMDAwMDA4IDAwMDAwMDEw IDQwMDAwMDAyIDAwMDAwMDAwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PWNtZCAw MDAwMDAxMDogMDgwMTAwNjEgMDAwMDAxMTggMDgwMTBlMDIgMDAwMDA3MDENCj09PT09DQrCoMKg wqDCoE9wZW5HTCBJbmZvcm1hdGlvbg0KwqBjbWQgMDAwMDAwMjA6IDQ4MDAwMDAwIDAwMDAwNzAx IDA4MDEwZTAzIDAwMDAwMDAwDQrCoMKgwqBHTF9WRU5ET1I6wqDCoMKgwqDCoGV0bmF2aXYNCsKg wqDCoMKgR2NtZCAwMDAwMDAzMDogMDgwMTBlMDIgMDAwMDA3MDEgNDgwMDAwMDAgMDAwMDA3MDEN CkxfUkVOREVSRVI6wqDCoMKgVml2YW50ZSBHQzg4MCByZXYgY21kIDAwMDAwMDQwOiAwODAxMGUw MCAwMDAwMDAwMSA0MDAwMDAxNyAwMDAwMjAwMA0KNTEyNA0KwqDCoMKgwqBHTF9WRVJTSU9OOsKg wqDCoMKgT3BlbkdMIGNtZCAwMDAwMDA1MDogMDgwMTBlMDMgMDAwMDAwMDggMDgwMTBlMDIgMDAw MDA3MDENCkVTIDIuMCBNZXNhIDE3LjIuNA0KPT09PT09PT09PT09Y21kIDAwMDAwMDYwOiA0ODAw MDAwMCAwMDAwMDcwMSAwODAxMGUwMSAwMDAwMDA0MA0KPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT1jbWQgMDAwMDAwNzA6IDM4MDAwMGM4IDAwMDAwNzAxIDQwMDAwMDAyIDAwMDAwMDcw DQo9PT09PT09PT09PQ0KY21kIDAwMDAwMDgwOiA0MDAwMDAxMyAwMDAwMjAwMCA0MDAwMDAwMiAw MDAwMDA4MA0KLi4uDQpjbWQgMDAwMDAxMzA6IDQ4MDAwMDAwIDAwMDAwNzAxIDA4MDEwZTAxIDAw MDAwMDQwDQpzdHJlYW0gbGluayB0byAweDAwMDAwMGMwIEAgMHgwMDAwMjAwMCA3MTA0MjAwMA0K Y21kIDAwMDAwMDAwOiAwODAxMGUxMyAwMDAwMDAwMCAwODAxMGUwNSAwMDAwMDAwMQ0KLi4uDQpj bWQgMDAwMDAxMTA6IDQwMDAwMDA3IDAwMDAwMGMwDQpsaW5rIG9wOiA3MTA0MDA3MA0KYWRkcjog MHgwMDAwMDA4MA0KYmFjazogMHgwMDAwMDBjMA0KZXZlbnQ6IDANCmV0bmF2aXYtZ3B1IGYwMDkw MDAwLmdwdTogdmlydCA3MTA0MDAwMCBwaHlzIDB4MDAwMDAwMDAgZnJlZSAweDAwMDAxZWMwDQpl dG5hdml2LWdwdSBmMDA5MDAwMC5ncHU6IE1NVSBmYXVsdCBzdGF0dXMgMHgwMDAwMjAwMA0KZXRu YXZpdi1ncHUgZjAwOTAwMDAuZ3B1OiBNTVUgMCBmYXVsdCBhZGRyIDB4MDAwMDAwMDANCmV0bmF2 aXYtZ3B1IGYwMDkwMDAwLmdwdTogTU1VIDEgZmF1bHQgYWRkciAweDAwMDAwMDAwDQpldG5hdml2 LWdwdSBmMDA5MDAwMC5ncHU6IE1NVSAyIGZhdWx0IGFkZHIgMHgwMDAwMDAwMA0KZXRuYXZpdi1n cHUgZjAwOTAwMDAuZ3B1OiBNTVUgMyBmYXVsdCBhZGRyIDB4MDA4MmEwMDANCmNtZCAwMDAwMDAw MDogNDAwMDAwMDggMDAwMDAwMTAgNDAwMDAwMDIgMDAwMDAwMDANCi4uLg0KY21kIDAwMDAwMTMw OiA0ODAwMDAwMCAwMDAwMDcwMSAwODAxMGUwMSAwMDAwMDA0MA0KZXRuYXZpdi1ncHUgZjAwOTAw MDAuZ3B1OiB2aXJ0IDcxMDQwMDAwIHBoeXMgMHgwMDAwMDAwMCBmcmVlIDB4MDAwMDFlYzANCmNt ZCAwMDAwMDAwMDogNDAwMDAwMDggMDAwMDAwMTAgNDAwMDAwMDIgMDAwMDAwMDANCi4uLg0KY21k IDAwMDAwMTMwOiA0ODAwMDAwMCAwMDAwMDcwMSAwODAxMGUwMSAwMDAwMDA0MA0Kc3RyZWFtIGxp bmsgdG8gMHgwMDAwMDBmOCBAIDB4MDAwMDMwMDAgNzEwNDMwMDANCmNtZCAwMDAwMDAwMDogMDgw MTBlMTMgMDAwMDAwMDAgMDgwMTBlMDUgMDAwMDAwMDENCmNtZCAwMDAwMDAxMDogMDgwMTAzODIg MDAwMDAwMzEgMDgwMTAyOGIgMzQwMDAwMDENCmNtZCAwMDAwMDAyMDogMDgwMTA1YWUgMDAwMDAw MDAgNDAwMDAwMDcgMDAwMDAwZjgNCmxpbmsgb3A6IDcxMDQwMGU4DQphZGRyOiAweDAwMDAzMDAw DQpiYWNrOiAweDAwMDAwMGY4DQpldmVudDogMQ0KZXRuYXZpdi1ncHUgZjAwOTAwMDAuZ3B1OiB2 aXJ0IDcxMDQwMDAwIHBoeXMgMHgwMDAwMDAwMCBmcmVlIDB4MDAwMDFlYzANCmNtZCAwMDAwMDAw MDogNDAwMDAwMDggMDAwMDAwMTAgNDAwMDAwMDIgMDAwMDAwMDANCi4uLg0KY21kIDAwMDAwMTMw OiA0ODAwMDAwMCAwMDAwMDcwMSAwODAxMGUwMSAwMDAwMDA0MA0KZXRuYXZpdi1ncHUgZjAwOTAw MDAuZ3B1OiB2aXJ0IDcxMDQwMDAwIHBoeXMgMHgwMDAwMDAwMCBmcmVlIDB4MDAwMDFlYzANCmNt ZCAwMDAwMDAwMDogNDAwMDAwMDggMDAwMDAwMTAgNDAwMDAwMDIgMDAwMDAwMDANCi4uLg0KY21k IDAwMDAwMTMwOiA0ODAwMDAwMCAwMDAwMDcwMSAwODAxMGUwMSAwMDAwMDA0MA0Kc3RyZWFtIGxp bmsgdG8gMHgwMDAwMDE3MCBAIDB4MDAwMDQwMDAgNzEwNDQwMDANCmNtZCAwMDAwMDAwMDogMDgw NDA0OGEgMDAwNDAwMDAgMDAwMDFlMDAgMDAwMDAwMDANCi4uLg0KY21kIDAwMDAwMDkwOiA0MDAw MDAwNyAwMDAwMDE3MA0KbGluayBvcDogNzEwNDAxMjANCmFkZHI6IDB4MDAwMDAxMzANCmJhY2s6 IDB4MDAwMDAxNzANCmV2ZW50OiAyDQpldG5hdml2LWdwdSBmMDA5MDAwMC5ncHU6IHZpcnQgNzEw NDAwMDAgcGh5cyAweDAwMDAwMDAwIGZyZWUgMHgwMDAwMWVjMA0KY21kIDAwMDAwMDAwOiA0MDAw MDAwOCAwMDAwMDAxMCA0MDAwMDAwMiAwMDAwMDAwMA0KLi4uDQpjbWQgMDAwMDAxMzA6IDA4MDEw MDYxIDAwMDAwMTE4IDA4MDEwZTAyIDAwMDAwNzAxDQpldG5hdml2LWdwdSBmMDA5MDAwMC5ncHU6 IHZpcnQgNzEwNDAwMDAgcGh5cyAweDAwMDAwMDAwIGZyZWUgMHgwMDAwMWVjMA0KY21kIDAwMDAw MDAwOiA0MDAwMDAwOCAwMDAwMDAxMCA0MDAwMDAwMiAwMDAwMDAwMA0KLi4uDQpjbWQgMDAwMDAx MzA6IDA4MDEwMDYxIDAwMDAwMTE4IDA4MDEwZTAyIDAwMDAwNzAxDQpzdHJlYW0gbGluayB0byAw eDAwMDAwMWUwIEAgMHgwMDAwNTAwMCA3MTA0NTAwMA0KY21kIDAwMDAwMDAwOiAwODAxMGUxMyAw MDAwMDAwMCAwODAxMGUwNSAwMDAwMDAwMQ0KY21kIDAwMDAwMDEwOiAwODAxMDM4MiAwMDAwMDAz MSAwODAxMDI4YiAzNDAwMDAwMQ0KY21kIDAwMDAwMDIwOiAwODAxMDVhZSAwMDAwMDAwMCA0MDAw MDAwNyAwMDAwMDFlMA0KbGluayBvcDogNzEwNDAxOTANCmFkZHI6IDB4MDAwMDAxYTANCmJhY2s6 IDB4MDAwMDAxZTANCmV2ZW50OiAzDQpldG5hdml2LWdwdSBmMDA5MDAwMC5ncHU6IHZpcnQgNzEw NDAwMDAgcGh5cyAweDAwMDAwMDAwIGZyZWUgMHgwMDAwMWVjMA0KY21kIDAwMDAwMDAwOiA0MDAw MDAwOCAwMDAwMDAxMCA0MDAwMDAwMiAwMDAwMDAwMA0KLi4uDQpjbWQgMDAwMDAxMzA6IDA4MDEw MDYxIDAwMDAwMTE4IDA4MDEwZTAyIDAwMDAwNzAxDQpbYnVpbGRdIHVzZS12Ym89ZmFsc2U6ZXRu YXZpdi1ncHUgZjAwOTAwMDAuZ3B1OiB2aXJ0IDcxMDQwMDAwIHBoeXMgMHgwMDAwMDAwMCBmcmVl IDB4MDAwMDFlYzANCmNtZCAwMDAwMDAwMDogNDAwMDAwMDggMDAwMDAwMTAgNDAwMDAwMDIgMDAw MDAwMDANCi4uLg0KDQpeQ8KgwqA8LS0gQ3RybC1DDQoNCiMgW2RybTp1ZGxfZHJtX2dlbV9tbWFw XSBmbGFncyA9IDB4MQ0KW2RybTpkcm1fbW9kZV9hZGRmYl0gW0ZCOjMxXQ0KW2RybTpkcm1fbW9k ZV9zZXRjcnRjXSBbQ1JUQzoyODpjcnRjLTBdDQpbZHJtOmRybV9tb2RlX3NldGNydGNdIFtDT05O RUNUT1I6MzA6RFZJLUktMV0NCltkcm06ZHJtX2NydGNfaGVscGVyX3NldF9jb25maWddwqANCltk cm06ZHJtX2NydGNfaGVscGVyX3NldF9jb25maWddIFtDUlRDOjI4OmNydGMtMF0gW0ZCOjMxXSAj Y29ubmVjdG9ycz0xICh4IHkpICgwIDApDQpbZHJtOmRybV9jcnRjX2hlbHBlcl9zZXRfY29uZmln XSBjcnRjIGhhcyBubyBmYiwgZnVsbCBtb2RlIHNldA0KW2RybTpkcm1fY3J0Y19oZWxwZXJfc2V0 X2NvbmZpZ10gY29ubmVjdG9yIGRwbXMgbm90IG9uLCBmdWxsIG1vZGUgc3dpdGNoDQpbZHJtOmRy bV9jcnRjX2hlbHBlcl9zZXRfY29uZmlnXSBlbmNvZGVyIGNoYW5nZWQsIGZ1bGwgbW9kZSBzd2l0 Y2gNCltkcm06ZHJtX2NydGNfaGVscGVyX3NldF9jb25maWddIGNydGMgY2hhbmdlZCwgZnVsbCBt b2RlIHN3aXRjaA0KW2RybTpkcm1fY3J0Y19oZWxwZXJfc2V0X2NvbmZpZ10gW0NPTk5FQ1RPUjoz MDpEVkktSS0xXSB0byBbQ1JUQzoyODpjcnRjLTBdDQpbZHJtOmRybV9jcnRjX2hlbHBlcl9zZXRf Y29uZmlnXSBhdHRlbXB0aW5nIHRvIHNldCBtb2RlIGZyb20gdXNlcnNwYWNlDQpbZHJtOmRybV9t b2RlX2RlYnVnX3ByaW50bW9kZWxpbmVdIE1vZGVsaW5lIDQ0OiIiIDAgMTQ4NTAwIDE5MjAgMjAw OCAyMDUyIDIyMDAgMTA4MCAxMDg0IDEwODkgMTEyNSAweDAgMHg1DQpbZHJtOmRybV9jcnRjX2hl bHBlcl9zZXRfbW9kZV0gW0NSVEM6Mjg6Y3J0Yy0wXQ0KW2RybTpkcm1fY3J0Y19oZWxwZXJfc2V0 X21vZGVdIFtFTkNPREVSOjI5OlRNRFMtMjldIHNldCBbTU9ERTo0NDpdDQpbZHJtXSB3cml0ZSBt b2RlIGluZm8gMTUzDQpbZHJtOmRybV9jcnRjX2hlbHBlcl9zZXRfY29uZmlnXSBTZXR0aW5nIGNv bm5lY3RvciBEUE1TIHN0YXRlIHRvIG9uDQpbZHJtOmRybV9jcnRjX2hlbHBlcl9zZXRfY29uZmln XcKgwqDCoMKgwqDCoMKgwqBbQ09OTkVDVE9SOjMwOkRWSS1JLTFdIHNldCBEUE1TIG9uDQpbZHJt XSB3cml0ZSBtb2RlIGluZm8gMTUzDQpbZHJtOnVkbF9hdHRhY2hfZG1hX2J1Zl0gW0RFVjpzb2M6 Z3B1LXN1YnN5c3RlbV0gc2l6ZTo4Mjk4NDk2DQpbZHJtOnVkbF9tYXBfZG1hX2J1Zl0gW0RFVjpz b2M6Z3B1LXN1YnN5c3RlbV0gc2l6ZTo4Mjk4NDk2IGRpcj0wDQpldG5hdml2LWdwdSBmMDA5MDAw MC5ncHU6IHZpcnQgNzEwNDAwMDAgcGh5cyAweDAwMDAwMDAwIGZyZWUgMHgwMDAwMWVjMA==