From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <4FB6C728.3090507@gmail.com> Date: Fri, 18 May 2012 15:03:20 -0700 From: David Daney MIME-Version: 1.0 To: Tabi Timur-B04825 Subject: Re: [PATCH v6 0/3] netdev/of/phy: MDIO bus multiplexer support. References: <1336007799-31016-1-git-send-email-ddaney.cavm@gmail.com> In-Reply-To: Content-Type: multipart/mixed; boundary="------------080005030004050806070101" Cc: "netdev@vger.kernel.org" , "devicetree-discuss@lists.ozlabs.org" , "linuxppc-dev@lists.ozlabs.org" List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , This is a multi-part message in MIME format. --------------080005030004050806070101 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 05/18/2012 02:42 PM, Tabi Timur-B04825 wrote: > On Wed, May 2, 2012 at 8:16 PM, David Daney wrote: >> From: David Daney >> >> This code has been working well for about six months on a couple of >> different configurations (boards), so I thought it would be a good >> time to send it out again, and I hope get it on the path towards >> merging. > > David, > > I'm trying to implement this feature on our boards, which don't use > GPIOs but rather a memory-mapped FPGA. I control the mux by setting > some bits in one of the FPGA registers. You can either: 1) write a standard GPIO driver for the thing that controls the mux, and then use mdio-mux-gpio.c, or... 2) Write a new driver modeled on mdio-mux-gpio.c for your switch control. > > Do you have a real device tree I can use as an example? > Attached. > I'm not sure what the "parent" MDIO bus node is supposed to represent. > Is that that device that actually controls the muxing hardware No. It is the device that implements the master 802.3 clause {22,45} MDIO Station Management (STA) protocol. >, which in our case would be the FPGA? I have no idea what your FPGA implements, so it is hard to say. A sane person would implement a separate MDIO STA controller for each bus, in which case you wouldn't use the multiplexer driver. Only people dealing with insane hardware need the multiplexer. The patch in net-next has a nice ASCII art picture of such an insane design. David Daney --------------080005030004050806070101 Content-Type: audio/vnd.dts; name="ebb6600.dts" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="ebb6600.dts" L2R0cy12MS87Ci8qCiAqIENhdml1bSBJbmMuIEVCQjY2MDAgYm9hcmQKICovCi8gewoJbW9k ZWwgPSAiY2F2aXVtLGViYjY2MDAiOwoJY29tcGF0aWJsZSA9ICJjYXZpdW0sZWJiNjYwMCI7 CgkjYWRkcmVzcy1jZWxscyA9IDwyPjsKCSNzaXplLWNlbGxzID0gPDI+OwoJaW50ZXJydXB0 LXBhcmVudCA9IDwmY2l1PjsKCglzb2NAMCB7CgkJY29tcGF0aWJsZSA9ICJzaW1wbGUtYnVz IjsKCQkjYWRkcmVzcy1jZWxscyA9IDwyPjsKCQkjc2l6ZS1jZWxscyA9IDwyPjsKCQlyYW5n ZXM7IC8qIERpcmVjdCBtYXBwaW5nICovCgoJCWNpdTogaW50ZXJydXB0LWNvbnRyb2xsZXJA MTA3MDAwMDAwMDAwMCB7CgkJCWNvbXBhdGlibGUgPSAiY2F2aXVtLG9jdGVvbi0zODYwLWNp dSI7CgkJCWludGVycnVwdC1jb250cm9sbGVyOwoJCQkvKiBJbnRlcnJ1cHRzIGFyZSBzcGVj aWZpZWQgYnkgdHdvIHBhcnRzOgoJCQkgKiAxKSBDb250cm9sbGVyIHJlZ2lzdGVyICgwIG9y IDEpCgkJCSAqIDIpIEJpdCB3aXRoaW4gdGhlIHJlZ2lzdGVyICgwLi42MykKCQkJICovCgkJ CSNpbnRlcnJ1cHQtY2VsbHMgPSA8Mj47CgkJCXJlZyA9IDwweDEwNzAwIDB4MDAwMDAwMDAg MHgwIDB4NzAwMD47CgkJfTsKCgkJZ3BpbzogZ3Bpby1jb250cm9sbGVyQDEwNzAwMDAwMDA4 MDAgewoJCQkjZ3Bpby1jZWxscyA9IDwyPjsKCQkJY29tcGF0aWJsZSA9ICJjYXZpdW0sb2N0 ZW9uLTM4NjAtZ3BpbyI7CgkJCXJlZyA9IDwweDEwNzAwIDB4MDAwMDA4MDAgMHgwIDB4MTAw PjsKCQkJZ3Bpby1jb250cm9sbGVyOwoJCQkvKiBJbnRlcnJ1cHRzIGFyZSBzcGVjaWZpZWQg YnkgdHdvIHBhcnRzOgoJCQkgKiAxKSBHUElPIHBpbiBudW1iZXIgKDAuLjE1KQoJCQkgKiAy KSBUcmlnZ2VyaW5nICgxIC0gZWRnZSByaXNpbmcKCQkJICoJCSAgMiAtIGVkZ2UgZmFsbGlu ZwoJCQkgKgkJICA0IC0gbGV2ZWwgYWN0aXZlIGhpZ2gKCQkJICoJCSAgOCAtIGxldmVsIGFj dGl2ZSBsb3cpCgkJCSAqLwoJCQlpbnRlcnJ1cHQtY29udHJvbGxlcjsKCQkJI2ludGVycnVw dC1jZWxscyA9IDwyPjsKCQkJLyogVGhlIEdQSU8gcGlucyBjb25uZWN0IHRvIDE2IGNvbnNl Y3V0aXZlIENVSSBiaXRzICovCgkJCWludGVycnVwdHMgPSA8MCAxNj47IC8qIDwwIDE3PiA8 MCAxOD4gPDAgMTk+CgkJCQkgICAgIDwwIDIwPiA8MCAyMT4gPDAgMjI+IDwwIDIzPgoJCQkJ ICAgICA8MCAyND4gPDAgMjU+IDwwIDI2PiA8MCAyNz4KCQkJCSAgICAgPDAgMjg+IDwwIDI5 PiA8MCAzMD4gPDAgMzE+OyAqLwoJCX07CgoJCXNtaTA6IG1kaW9AMTE4MDAwMDAwMTgwMCB7 CgkJCWNvbXBhdGlibGUgPSAiY2F2aXVtLG9jdGVvbi0zODYwLW1kaW8iOwoJCQkjYWRkcmVz cy1jZWxscyA9IDwxPjsKCQkJI3NpemUtY2VsbHMgPSA8MD47CgkJCXJlZyA9IDwweDExODAw IDB4MDAwMDE4MDAgMHgwIDB4NDA+OwoKCQkJcGh5MDogZXRoZXJuZXQtcGh5QDQgewoJCQkJ Y29tcGF0aWJsZSA9ICJtYXJ2ZWxsLDg4ZTExMTgiOwoJCQkJcmVnID0gPDQ+OwoJCQkJbWFy dmVsbCxyZWctaW5pdCA9CgkJCQkJLyogRml4IHJ4IGFuZCB0eCBjbG9jayB0cmFuc2l0aW9u IHRpbWluZyAqLwoJCQkJCTwyIDB4MTUgMHhmZmNmIDA+LCAvKiBSZWcgMiwyMSBDbGVhciBi aXRzIDQsIDUgKi8KCQkJCQkvKiBBZGp1c3QgTEVEIGRyaXZlLiAqLwoJCQkJCTwzIDB4MTEg MCAweDQ0MmE+LCAvKiBSZWcgMywxNyA8LSAwNDQyYSAqLwoJCQkJCS8qIGlycSwgYmxpbmst YWN0aXZpdHksIGJsaW5rLWxpbmsgKi8KCQkJCQk8MyAweDEwIDAgMHgwMjQyPjsgLyogUmVn IDMsMTYgPC0gMHgwMjQyICovCgkJCX07CgoJCQlwaHkxOiBldGhlcm5ldC1waHlANSB7CgkJ CQljb21wYXRpYmxlID0gIm1hcnZlbGwsODhlMTExOCI7CgkJCQlyZWcgPSA8NT47CgkJCQlt YXJ2ZWxsLHJlZy1pbml0ID0KCQkJCQkvKiBGaXggcnggYW5kIHR4IGNsb2NrIHRyYW5zaXRp b24gdGltaW5nICovCgkJCQkJPDIgMHgxNSAweGZmY2YgMD4sIC8qIFJlZyAyLDIxIENsZWFy IGJpdHMgNCwgNSAqLwoJCQkJCS8qIEFkanVzdCBMRUQgZHJpdmUuICovCgkJCQkJPDMgMHgx MSAwIDB4NDQyYT4sIC8qIFJlZyAzLDE3IDwtIDA0NDJhICovCgkJCQkJLyogaXJxLCBibGlu ay1hY3Rpdml0eSwgYmxpbmstbGluayAqLwoJCQkJCTwzIDB4MTAgMCAweDAyNDI+OyAvKiBS ZWcgMywxNiA8LSAweDAyNDIgKi8KCQkJfTsKCgkJfTsKCgkJc21pMTogbWRpb0AxMTgwMDAw MDAxOTAwIHsKCQkJY29tcGF0aWJsZSA9ICJjYXZpdW0sb2N0ZW9uLTM4NjAtbWRpbyI7CgkJ CSNhZGRyZXNzLWNlbGxzID0gPDE+OwoJCQkjc2l6ZS1jZWxscyA9IDwwPjsKCQkJcmVnID0g PDB4MTE4MDAgMHgwMDAwMTkwMCAweDAgMHg0MD47CgoJCX07CgoKCQltaXgwOiBldGhlcm5l dEAxMDcwMDAwMTAwMDAwIHsKCQkJY29tcGF0aWJsZSA9ICJjYXZpdW0sb2N0ZW9uLTU3NTAt bWl4IjsKCQkJcmVnID0gPDB4MTA3MDAgMHgwMDEwMDAwMCAweDAgMHgxMDA+LCAvKiBNSVgg Ki8KCQkJICAgICAgPDB4MTE4MDAgMHhFMDAwMDAwMCAweDAgMHgzMDA+LCAvKiBBR0wgKi8K CQkJICAgICAgPDB4MTE4MDAgMHhFMDAwMDQwMCAweDAgMHg0MDA+LCAvKiBBR0xfU0hBUkVE ICAqLwoJCQkgICAgICA8MHgxMTgwMCAweEUwMDAyMDAwIDB4MCAweDg+OyAgIC8qIEFHTF9Q UlRfQ1RMICovCgkJCWNlbGwtaW5kZXggPSA8MD47CgkJCWludGVycnVwdHMgPSA8MCA2Mj4s IDwxIDQ2PjsKCQkJbG9jYWwtbWFjLWFkZHJlc3MgPSBbIDAwIDAwIDAwIDAwIDAwIDAwIF07 CgkJCXBoeS1oYW5kbGUgPSA8JnBoeTA+OwoJCX07CgoJCW1peDE6IGV0aGVybmV0QDEwNzAw MDAxMDA4MDAgewoJCQljb21wYXRpYmxlID0gImNhdml1bSxvY3Rlb24tNTc1MC1taXgiOwoJ CQlyZWcgPSA8MHgxMDcwMCAweDAwMTAwODAwIDB4MCAweDEwMD4sIC8qIE1JWCAqLwoJCQkg ICAgICA8MHgxMTgwMCAweEUwMDAwODAwIDB4MCAweDMwMD4sIC8qIEFHTCAqLwoJCQkgICAg ICA8MHgxMTgwMCAweEUwMDAwNDAwIDB4MCAweDQwMD4sIC8qIEFHTF9TSEFSRUQgICovCgkJ CSAgICAgIDwweDExODAwIDB4RTAwMDIwMDggMHgwIDB4OD47ICAgLyogQUdMX1BSVF9DVEwg Ki8KCQkJY2VsbC1pbmRleCA9IDwxPjsKCQkJaW50ZXJydXB0cyA9IDwxIDE4PiwgPCAxIDQ2 PjsKCQkJbG9jYWwtbWFjLWFkZHJlc3MgPSBbIDAwIDAwIDAwIDAwIDAwIDAwIF07CgkJCXBo eS1oYW5kbGUgPSA8JnBoeTE+OwoJCX07CgoJCXBpcDogcGlwQDExODAwYTAwMDAwMDAgewoJ CQljb21wYXRpYmxlID0gImNhdml1bSxvY3Rlb24tMzg2MC1waXAiOwoJCQkjYWRkcmVzcy1j ZWxscyA9IDwxPjsKCQkJI3NpemUtY2VsbHMgPSA8MD47CgkJCXJlZyA9IDwweDExODAwIDB4 YTAwMDAwMDAgMHgwIDB4MjAwMD47CgoJCQlpbnRlcmZhY2VAMCB7CgkJCQljb21wYXRpYmxl ID0gImNhdml1bSxvY3Rlb24tMzg2MC1waXAtaW50ZXJmYWNlIjsKCQkJCSNhZGRyZXNzLWNl bGxzID0gPDE+OwoJCQkJI3NpemUtY2VsbHMgPSA8MD47CgkJCQlyZWcgPSA8MD47IC8qIGlu dGVyZmFjZSAqLwoKCQkJCWV0aGVybmV0QDAgewoJCQkJCWNvbXBhdGlibGUgPSAiY2F2aXVt LG9jdGVvbi0zODYwLXBpcC1wb3J0IjsKCQkJCQlyZWcgPSA8MHgwPjsgLyogUG9ydCAqLwoJ CQkJCWxvY2FsLW1hYy1hZGRyZXNzID0gWyAwMCAwMCAwMCAwMCAwMCAwMCBdOwoJCQkJCXBo eS1oYW5kbGUgPSA8JnBoeTExPjsKCQkJCX07CgkJCQlldGhlcm5ldEAxIHsKCQkJCQljb21w YXRpYmxlID0gImNhdml1bSxvY3Rlb24tMzg2MC1waXAtcG9ydCI7CgkJCQkJcmVnID0gPDB4 MT47IC8qIFBvcnQgKi8KCQkJCQlsb2NhbC1tYWMtYWRkcmVzcyA9IFsgMDAgMDAgMDAgMDAg MDAgMDAgXTsKCQkJCQlwaHktaGFuZGxlID0gPCZwaHkxMj47CgkJCQl9OwoJCQkJZXRoZXJu ZXRAMiB7CgkJCQkJY29tcGF0aWJsZSA9ICJjYXZpdW0sb2N0ZW9uLTM4NjAtcGlwLXBvcnQi OwoJCQkJCXJlZyA9IDwweDI+OyAvKiBQb3J0ICovCgkJCQkJbG9jYWwtbWFjLWFkZHJlc3Mg PSBbIDAwIDAwIDAwIDAwIDAwIDAwIF07CgkJCQkJcGh5LWhhbmRsZSA9IDwmcGh5MTM+OwoJ CQkJfTsKCQkJCWV0aGVybmV0QDMgewoJCQkJCWNvbXBhdGlibGUgPSAiY2F2aXVtLG9jdGVv bi0zODYwLXBpcC1wb3J0IjsKCQkJCQlyZWcgPSA8MHgzPjsgLyogUG9ydCAqLwoJCQkJCWxv Y2FsLW1hYy1hZGRyZXNzID0gWyAwMCAwMCAwMCAwMCAwMCAwMCBdOwoJCQkJCXBoeS1oYW5k bGUgPSA8JnBoeTE0PjsKCQkJCX07CgkJCX07CgkJCWludGVyZmFjZUAxIHsKCQkJCWNvbXBh dGlibGUgPSAiY2F2aXVtLG9jdGVvbi0zODYwLXBpcC1pbnRlcmZhY2UiOwoJCQkJI2FkZHJl c3MtY2VsbHMgPSA8MT47CgkJCQkjc2l6ZS1jZWxscyA9IDwwPjsKCQkJCXJlZyA9IDwxPjsg LyogaW50ZXJmYWNlICovCgoJCQkJZXRoZXJuZXRAMCB7CgkJCQkJY29tcGF0aWJsZSA9ICJj YXZpdW0sb2N0ZW9uLTM4NjAtcGlwLXBvcnQiOwoJCQkJCXJlZyA9IDwweDA+OyAvKiBQb3J0 ICovCgkJCQkJbG9jYWwtbWFjLWFkZHJlc3MgPSBbIDAwIDAwIDAwIDAwIDAwIDAwIF07CgkJ CQkJcGh5LWhhbmRsZSA9IDwmcGh5MjE+OwoJCQkJfTsKCQkJCWV0aGVybmV0QDEgewoJCQkJ CWNvbXBhdGlibGUgPSAiY2F2aXVtLG9jdGVvbi0zODYwLXBpcC1wb3J0IjsKCQkJCQlyZWcg PSA8MHgxPjsgLyogUG9ydCAqLwoJCQkJCWxvY2FsLW1hYy1hZGRyZXNzID0gWyAwMCAwMCAw MCAwMCAwMCAwMCBdOwoJCQkJCXBoeS1oYW5kbGUgPSA8JnBoeTIyPjsKCQkJCX07CgkJCQll dGhlcm5ldEAyIHsKCQkJCQljb21wYXRpYmxlID0gImNhdml1bSxvY3Rlb24tMzg2MC1waXAt cG9ydCI7CgkJCQkJcmVnID0gPDB4Mj47IC8qIFBvcnQgKi8KCQkJCQlsb2NhbC1tYWMtYWRk cmVzcyA9IFsgMDAgMDAgMDAgMDAgMDAgMDAgXTsKCQkJCQlwaHktaGFuZGxlID0gPCZwaHky Mz47CgkJCQl9OwoJCQkJZXRoZXJuZXRAMyB7CgkJCQkJY29tcGF0aWJsZSA9ICJjYXZpdW0s b2N0ZW9uLTM4NjAtcGlwLXBvcnQiOwoJCQkJCXJlZyA9IDwweDM+OyAvKiBQb3J0ICovCgkJ CQkJbG9jYWwtbWFjLWFkZHJlc3MgPSBbIDAwIDAwIDAwIDAwIDAwIDAwIF07CgkJCQkJcGh5 LWhhbmRsZSA9IDwmcGh5MjQ+OwoJCQkJfTsKCQkJfTsKCgkJfTsKCgkJdHdzaTA6IGkyY0Ax MTgwMDAwMDAxMDAwIHsKCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CgkJCSNzaXplLWNlbGxz ID0gPDA+OwoJCQljb21wYXRpYmxlID0gImNhdml1bSxvY3Rlb24tMzg2MC10d3NpIjsKCQkJ cmVnID0gPDB4MTE4MDAgMHgwMDAwMTAwMCAweDAgMHgyMDA+OwoJCQlpbnRlcnJ1cHRzID0g PDAgNDU+OwoJCQljbG9jay1mcmVxdWVuY3kgPSA8MTAwMDAwPjsKCgkJCXJ0Y0A2OCB7CgkJ CQljb21wYXRpYmxlID0gImRhbGxhcyxkczEzMzciOwoJCQkJcmVnID0gPDB4Njg+OwoJCQl9 OwoJCQl0bXBANGMgewoJCQkJY29tcGF0aWJsZSA9ICJ0aSx0bXA0MjEiOwoJCQkJcmVnID0g PDB4NGM+OwoJCQl9OwoJCQl0bHYtZWVwcm9tQDU2IHsKCQkJCWNvbXBhdGlibGUgPSAiYXRt ZWwsMjRjMjU2IiwgIm1pY3JvY2hpcCwyNGxjMjU2IjsKCQkJCXJlZyA9IDwweDU2PjsKCQkJ CXBhZ2VzaXplID0gPDY0PjsKCQkJfTsKCQkJbXV4QDcwIHsKCQkJCWNvbXBhdGlibGUgPSAi bnhwLHBjYTk1NDgiOwoJCQkJcmVnID0gPDB4NzA+OwoJCQkJI2FkZHJlc3MtY2VsbHMgPSA8 MT47CgkJCQkjc2l6ZS1jZWxscyA9IDwwPjsKCi8qCQkJCWkyY0AwIHsKCQkJCQkjYWRkcmVz cy1jZWxscyA9IDwxPjsKCQkJCQkjc2l6ZS1jZWxscyA9IDwwPjsKCQkJCQlyZWcgPSA8MD47 CgkJCQl9OwoJCQkJaTJjQDEgewoJCQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwoJCQkJCSNz aXplLWNlbGxzID0gPDA+OwoJCQkJCXJlZyA9IDwxPjsKCQkJCX07CgkJCQlpMmNAMiB7CgkJ CQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CgkJCQkJI3NpemUtY2VsbHMgPSA8MD47CgkJCQkJ cmVnID0gPDI+OwoJCQkJfTsKKi8KCQkJCWkyY0AzIHsKCQkJCQkjYWRkcmVzcy1jZWxscyA9 IDwxPjsKCQkJCQkjc2l6ZS1jZWxscyA9IDwwPjsKCQkJCQlyZWcgPSA8Mz47CgoJCQkJCWdw aW8xOiBncGlvQDM4IHsKCQkJCQkJY29tcGF0aWJsZSA9ICJueHAscGNhODU3NCI7CgkJCQkJ CXJlZyA9IDwweDM4PjsKCQkJCQkJLyogVHdvIGNlbGxzLCB0aGUgR1BJTyBwaW4gbnVtYmVy IGFuZCBmbGFncy4gKi8KCQkJCQkJI2dwaW8tY2VsbHMgPSA8Mj47CgkJCQkJCWdwaW8tY29u dHJvbGxlcjsKCQkJCQl9OwoJCQkJfTsKCQkJCWkyY0A0IHsKCQkJCQkjYWRkcmVzcy1jZWxs cyA9IDwxPjsKCQkJCQkjc2l6ZS1jZWxscyA9IDwwPjsKCQkJCQlyZWcgPSA8ND47CgoJCQkJ CWdwaW8yOiBncGlvQDNlIHsKCQkJCQkJY29tcGF0aWJsZSA9ICJueHAscGNhODU3NCI7CgkJ CQkJCXJlZyA9IDwweDNlPjsKCQkJCQkJLyogVHdvIGNlbGxzLCB0aGUgR1BJTyBwaW4gbnVt YmVyIGFuZCBmbGFncy4gKi8KCQkJCQkJI2dwaW8tY2VsbHMgPSA8Mj47CgkJCQkJCWdwaW8t Y29udHJvbGxlcjsKCQkJCQl9OwoJCQkJfTsKLyoJCQkJaTJjQDUgewoJCQkJCSNhZGRyZXNz LWNlbGxzID0gPDE+OwoJCQkJCSNzaXplLWNlbGxzID0gPDA+OwoJCQkJCXJlZyA9IDw1PjsK CQkJCX07CgkJCQlpMmNANiB7CgkJCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CgkJCQkJI3Np emUtY2VsbHMgPSA8MD47CgkJCQkJcmVnID0gPDY+OwoJCQkJfTsKCQkJCWkyY0A3IHsKCQkJ CQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKCQkJCQkjc2l6ZS1jZWxscyA9IDwwPjsKCQkJCQly ZWcgPSA8Nz47CgkJCQl9OwoqLwoJCQl9OwoJCX07CgoJCXR3c2kxOiBpMmNAMTE4MDAwMDAw MTIwMCB7CgkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwoJCQkjc2l6ZS1jZWxscyA9IDwwPjsK CQkJY29tcGF0aWJsZSA9ICJjYXZpdW0sb2N0ZW9uLTM4NjAtdHdzaSI7CgkJCXJlZyA9IDww eDExODAwIDB4MDAwMDEyMDAgMHgwIDB4MjAwPjsKCQkJaW50ZXJydXB0cyA9IDwwIDU5PjsK CQkJY2xvY2stZnJlcXVlbmN5ID0gPDEwMDAwMD47CgkJfTsKCgkJdWFydDA6IHNlcmlhbEAx MTgwMDAwMDAwODAwIHsKCQkJY29tcGF0aWJsZSA9ICJjYXZpdW0sb2N0ZW9uLTM4NjAtdWFy dCIsIm5zMTY1NTAiOwoJCQlyZWcgPSA8MHgxMTgwMCAweDAwMDAwODAwIDB4MCAweDQwMD47 CgkJCWNsb2NrLWZyZXF1ZW5jeSA9IDwwPjsKCQkJY3VycmVudC1zcGVlZCA9IDwxMTUyMDA+ OwoJCQlyZWctc2hpZnQgPSA8Mz47CgkJCWludGVycnVwdHMgPSA8MCAzND47CgkJfTsKCgkJ dWFydDE6IHNlcmlhbEAxMTgwMDAwMDAwYzAwIHsKCQkJY29tcGF0aWJsZSA9ICJjYXZpdW0s b2N0ZW9uLTM4NjAtdWFydCIsIm5zMTY1NTAiOwoJCQlyZWcgPSA8MHgxMTgwMCAweDAwMDAw YzAwIDB4MCAweDQwMD47CgkJCWNsb2NrLWZyZXF1ZW5jeSA9IDwwPjsKCQkJY3VycmVudC1z cGVlZCA9IDwxMTUyMDA+OwoJCQlyZWctc2hpZnQgPSA8Mz47CgkJCWludGVycnVwdHMgPSA8 MCAzNT47CgkJfTsKCgkJc3BpQDEwNzAwMDAwMDEwMDAgewoJCQljb21wYXRpYmxlID0gImNh dml1bSxvY3Rlb24tMzAxMC1zcGkiOwoJCQlyZWcgPSA8MHgxMDcwMCAweDAwMDAxMDAwIDB4 MCAweDEwMD47CgkJCWludGVycnVwdHMgPSA8MCA1OD47CgkJCSNhZGRyZXNzLWNlbGxzID0g PDE+OwoJCQkjc2l6ZS1jZWxscyA9IDwwPjsKCgkJCWNsa2dlbkAwIHsKCQkJCWNvbXBhdGli bGUgPSAiYWRpLGFkOTUxNiI7CgkJCQlyZWcgPSA8MD47CgkJCQlzcGktbWF4LWZyZXF1ZW5j eSA9IDwyNTAwMDAwMD47CgkJCQlzcGktY3BoYTsKCQkJCXNwaS1jcG9sOwoJCQl9OwoKCQkJ ZWVwcm9tQDEgewoJCQkJY29tcGF0aWJsZSA9ICJzdCxtOTUyNTYiLCAiYXRtZWwsYXQyNSI7 CgkJCQlyZWcgPSA8MT47CgkJCQlzcGktbWF4LWZyZXF1ZW5jeSA9IDw1MDAwMDAwPjsKCQkJ CXNwaS1jcGhhOwoJCQkJc3BpLWNwb2w7CgoJCQkJcGFnZXNpemUgPSA8NjQ+OwoJCQkJc2l6 ZSA9IDwzMjc2OD47CgkJCQlhZGRyZXNzLXdpZHRoID0gPDE2PjsKCQkJfTsKCQl9OwoKCQli b290YnVzOiBib290YnVzQDExODAwMDAwMDAwMDAgewoJCQljb21wYXRpYmxlID0gImNhdml1 bSxvY3Rlb24tMzg2MC1ib290YnVzIjsKCQkJcmVnID0gPDB4MTE4MDAgMHgwMDAwMDAwMCAw eDAgMHgyMDA+OwoJCQkvKiBUaGUgY2hpcCBzZWxlY3QgbnVtYmVyIGFuZCBvZmZzZXQgKi8K CQkJI2FkZHJlc3MtY2VsbHMgPSA8Mj47CgkJCS8qIFRoZSBzaXplIG9mIHRoZSBjaGlwIHNl bGVjdCByZWdpb24gKi8KCQkJI3NpemUtY2VsbHMgPSA8MT47CgkJCS8qIENoaXAgU2VsZWN0 LCBvZmZzZXQgKGFsd2F5cyAwKSwgNjQtYml0IGFkZHJlc3MsIGxlbmd0aAoJCQkgKiBVc2Ug MCBsZW5ndGggdG8gZGlzYWJsZSBjaGlwIHNlbGVjdC4KCQkJICovCgkJCXJhbmdlcyA9IDww IDAgIDAgICAgICAgMHgxZjQwMDAwMCAgMHhjMDAwMDA+LAoJCQkJIDwxIDAgIDB4MTAwMDAg MHgzMDAwMDAwMCAgMD4sCgkJCQkgPDIgMCAgMCAgICAgICAweDFlMDQwMDAwICAweDEwMDAw PiwKCQkJCSA8MyAwICAwICAgICAgIDB4MWUwNTAwMDAgIDB4MTAwMDA+LAoJCQkJIDw0IDAg IDAgICAgICAgMHgxZDAyMDAwMCAgMHgxMDAwMD4sCgkJCQkgPDUgMCAgMCAgICAgICAweDFk MDQwMDAwICAweDEwMDAwPiwKCQkJCSA8NiAwICAwICAgICAgIDB4MWQwNTAwMDAgIDB4MTAw MDA+LAoJCQkJIDw3IDAgIDB4MTAwMDAgMHg5MDAwMDAwMCAgMD47CgoJCQljYXZpdW0sY3Mt Y29uZmlnQDAgewoJCQkJY29tcGF0aWJsZSA9ICJjYXZpdW0sb2N0ZW9uLTM4NjAtYm9vdGJ1 cy1jb25maWciOwoJCQkJY2F2aXVtLGNzLWluZGV4ID0gPDA+OwoJCQkJY2F2aXVtLHQtYWRy ICA9IDwxMD47CgkJCQljYXZpdW0sdC1jZSAgID0gPDUwPjsKCQkJCWNhdml1bSx0LW9lICAg PSA8NTA+OwoJCQkJY2F2aXVtLHQtd2UgICA9IDwzNT47CgkJCQljYXZpdW0sdC1yZC1obGQg PSA8MjU+OwoJCQkJY2F2aXVtLHQtd3ItaGxkID0gPDM1PjsKCQkJCWNhdml1bSx0LXBhdXNl ICA9IDwwPjsKCQkJCWNhdml1bSx0LXdhaXQgICA9IDwzMDA+OwoJCQkJY2F2aXVtLHQtcGFn ZSAgID0gPDI1PjsKCQkJCWNhdml1bSx0LXJkLWRseSA9IDwwPjsKCgkJCQljYXZpdW0scGFn ZXMgICAgID0gPDA+OwoJCQkJY2F2aXVtLGJ1cy13aWR0aCA9IDw4PjsKCQkJfTsKCgkJCWNh dml1bSxjcy1jb25maWdAMiB7CgkJCQljb21wYXRpYmxlID0gImNhdml1bSxvY3Rlb24tMzg2 MC1ib290YnVzLWNvbmZpZyI7CgkJCQljYXZpdW0sY3MtaW5kZXggPSA8Mj47CgkJCQljYXZp dW0sdC1hZHIgID0gPDA+OwoJCQkJY2F2aXVtLHQtY2UgICA9IDwzMDA+OwoJCQkJY2F2aXVt LHQtb2UgICA9IDwxMjU+OwoJCQkJY2F2aXVtLHQtd2UgICA9IDwxNTA+OwoJCQkJY2F2aXVt LHQtcmQtaGxkID0gPDEwMD47CgkJCQljYXZpdW0sdC13ci1obGQgPSA8MzAwPjsKCQkJCWNh dml1bSx0LXBhdXNlICA9IDwwPjsKCQkJCWNhdml1bSx0LXdhaXQgICA9IDwzMDA+OwoJCQkJ Y2F2aXVtLHQtcGFnZSAgID0gPDMwMD47CgkJCQljYXZpdW0sdC1yZC1kbHkgPSA8MD47CgoJ CQkJY2F2aXVtLHBhZ2VzICAgICA9IDwwPjsKCQkJCWNhdml1bSxidXMtd2lkdGggPSA8MTY+ OwoJCQl9OwoJCQljYXZpdW0sY3MtY29uZmlnQDMgewoJCQkJY29tcGF0aWJsZSA9ICJjYXZp dW0sb2N0ZW9uLTM4NjAtYm9vdGJ1cy1jb25maWciOwoJCQkJY2F2aXVtLGNzLWluZGV4ID0g PDM+OwoJCQkJY2F2aXVtLHQtYWRyICA9IDwwPjsKCQkJCWNhdml1bSx0LWNlICAgPSA8MzA+ OwoJCQkJY2F2aXVtLHQtb2UgICA9IDwxMjU+OwoJCQkJY2F2aXVtLHQtd2UgICA9IDwxNTA+ OwoJCQkJY2F2aXVtLHQtcmQtaGxkID0gPDEwMD47CgkJCQljYXZpdW0sdC13ci1obGQgPSA8 MzA+OwoJCQkJY2F2aXVtLHQtcGF1c2UgID0gPDA+OwoJCQkJY2F2aXVtLHQtd2FpdCAgID0g PDMwPjsKCQkJCWNhdml1bSx0LXBhZ2UgICA9IDwzMDA+OwoJCQkJY2F2aXVtLHQtcmQtZGx5 ID0gPDA+OwoKCQkJCWNhdml1bSxwYWdlcyAgICAgPSA8MD47CgkJCQljYXZpdW0sd2FpdC1t b2RlOwoJCQkJY2F2aXVtLGJ1cy13aWR0aCA9IDwxNj47CgkJCX07CgoJCQljYXZpdW0sY3Mt Y29uZmlnQDQgewoJCQkJY29tcGF0aWJsZSA9ICJjYXZpdW0sb2N0ZW9uLTM4NjAtYm9vdGJ1 cy1jb25maWciOwoJCQkJY2F2aXVtLGNzLWluZGV4ID0gPDQ+OwoJCQkJY2F2aXVtLHQtYWRy ICA9IDwzMDA+OwoJCQkJY2F2aXVtLHQtY2UgICA9IDwzMDA+OwoJCQkJY2F2aXVtLHQtb2Ug ICA9IDwzMDA+OwoJCQkJY2F2aXVtLHQtd2UgICA9IDwzMDA+OwoJCQkJY2F2aXVtLHQtcmQt aGxkID0gPDMwMD47CgkJCQljYXZpdW0sdC13ci1obGQgPSA8MzAwPjsKCQkJCWNhdml1bSx0 LXBhdXNlICA9IDwzMDA+OwoJCQkJY2F2aXVtLHQtd2FpdCAgID0gPDMwMD47CgkJCQljYXZp dW0sdC1wYWdlICAgPSA8MzAwPjsKCQkJCWNhdml1bSx0LXJkLWRseSA9IDwwPjsKCgkJCQlj YXZpdW0scGFnZXMgICAgID0gPDA+OwoJCQkJY2F2aXVtLGJ1cy13aWR0aCA9IDw4PjsKCQkJ fTsKCQkJY2F2aXVtLGNzLWNvbmZpZ0A1IHsKCQkJCWNvbXBhdGlibGUgPSAiY2F2aXVtLG9j dGVvbi0zODYwLWJvb3RidXMtY29uZmlnIjsKCQkJCWNhdml1bSxjcy1pbmRleCA9IDw1PjsK CQkJCWNhdml1bSx0LWFkciAgPSA8MD47CgkJCQljYXZpdW0sdC1jZSAgID0gPDMwMD47CgkJ CQljYXZpdW0sdC1vZSAgID0gPDEyNT47CgkJCQljYXZpdW0sdC13ZSAgID0gPDE1MD47CgkJ CQljYXZpdW0sdC1yZC1obGQgPSA8MTAwPjsKCQkJCWNhdml1bSx0LXdyLWhsZCA9IDwzMDA+ OwoJCQkJY2F2aXVtLHQtcGF1c2UgID0gPDA+OwoJCQkJY2F2aXVtLHQtd2FpdCAgID0gPDMw MD47CgkJCQljYXZpdW0sdC1wYWdlICAgPSA8MzAwPjsKCQkJCWNhdml1bSx0LXJkLWRseSA9 IDwwPjsKCgkJCQljYXZpdW0scGFnZXMgICAgID0gPDA+OwoJCQkJY2F2aXVtLGJ1cy13aWR0 aCA9IDwxNj47CgkJCX07CgkJCWNhdml1bSxjcy1jb25maWdANiB7CgkJCQljb21wYXRpYmxl ID0gImNhdml1bSxvY3Rlb24tMzg2MC1ib290YnVzLWNvbmZpZyI7CgkJCQljYXZpdW0sY3Mt aW5kZXggPSA8Nj47CgkJCQljYXZpdW0sdC1hZHIgID0gPDA+OwoJCQkJY2F2aXVtLHQtY2Ug ICA9IDwzMD47CgkJCQljYXZpdW0sdC1vZSAgID0gPDEyNT47CgkJCQljYXZpdW0sdC13ZSAg ID0gPDE1MD47CgkJCQljYXZpdW0sdC1yZC1obGQgPSA8MTAwPjsKCQkJCWNhdml1bSx0LXdy LWhsZCA9IDwzMD47CgkJCQljYXZpdW0sdC1wYXVzZSAgPSA8MD47CgkJCQljYXZpdW0sdC13 YWl0ICAgPSA8MzA+OwoJCQkJY2F2aXVtLHQtcGFnZSAgID0gPDMwMD47CgkJCQljYXZpdW0s dC1yZC1kbHkgPSA8MD47CgoJCQkJY2F2aXVtLHBhZ2VzICAgICA9IDwwPjsKCQkJCWNhdml1 bSx3YWl0LW1vZGU7CgkJCQljYXZpdW0sYnVzLXdpZHRoID0gPDE2PjsKCQkJfTsKCgkJCWZs YXNoMDogbm9yQDAsMCB7CgkJCQljb21wYXRpYmxlID0gImNmaS1mbGFzaCI7CgkJCQlyZWcg PSA8MCAwIDB4ODAwMDAwPjsKCQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwoJCQkJI3NpemUt Y2VsbHMgPSA8MT47CgoJCQkJcGFydGl0aW9uQDAgewoJCQkJCWxhYmVsID0gImJvb3Rsb2Fk ZXIiOwoJCQkJCXJlZyA9IDwwIDB4MjAwMDAwPjsKCQkJCQlyZWFkLW9ubHk7CgkJCQl9OwoJ CQkJcGFydGl0aW9uQDIwMDAwMCB7CgkJCQkJbGFiZWwgPSAia2VybmVsIjsKCQkJCQlyZWcg PSA8MHgyMDAwMDAgMHgyMDAwMDA+OwoJCQkJfTsKCQkJCXBhcnRpdGlvbkA0MDAwMDAgewoJ CQkJCWxhYmVsID0gImNyYW1mcyI7CgkJCQkJcmVnID0gPDB4NDAwMDAwIDB4M2ZlMDAwPjsK CQkJCX07CgkJCQlwYXJ0aXRpb25AN2ZlMDAwIHsKCQkJCQlsYWJlbCA9ICJlbnZpcm9ubWVu dCI7CgkJCQkJcmVnID0gPDB4N2ZlMDAwIDB4MjAwMD47CgkJCQkJcmVhZC1vbmx5OwoJCQkJ fTsKCQkJfTsKCgkJCWxlZC1kaXNwbGF5QDQsMCB7CgkJCQljb21wYXRpYmxlID0gImF2YWdv LGhkc3AtMjUzeCI7CgkJCQlyZWcgPSA8NCAweDIwIDB4MjA+LCA8NCAwIDB4MjA+OwoJCQl9 OwoKCQkJY29tcGFjdC1mbGFzaEA1LDAgewoJCQkJY29tcGF0aWJsZSA9ICJjYXZpdW0sZWJ0 MzAwMC1jb21wYWN0LWZsYXNoIjsKCQkJCXJlZyA9IDw1IDAgMHgxMDAwMD4sIDw2IDAgMHgx MDAwMD47CgkJCQljYXZpdW0sYnVzLXdpZHRoID0gPDE2PjsKCQkJCWNhdml1bSx0cnVlLWlk ZTsKCQkJCWNhdml1bSxkbWEtZW5naW5lLWhhbmRsZSA9IDwmZG1hMD47CgkJCX07CgkJfTsK CgkJZG1hMDogZG1hLWVuZ2luZUAxMTgwMDAwMDAwMTAwIHsKCQkJY29tcGF0aWJsZSA9ICJj YXZpdW0sb2N0ZW9uLTU3NTAtYm9vdGJ1cy1kbWEiOwoJCQlyZWcgPSA8MHgxMTgwMCAweDAw MDAwMTAwIDB4MCAweDg+OwoJCQlpbnRlcnJ1cHRzID0gPDAgNjM+OwoJCX07CgkJZG1hMTog ZG1hLWVuZ2luZUAxMTgwMDAwMDAwMTA4IHsKCQkJY29tcGF0aWJsZSA9ICJjYXZpdW0sb2N0 ZW9uLTU3NTAtYm9vdGJ1cy1kbWEiOwoJCQlyZWcgPSA8MHgxMTgwMCAweDAwMDAwMTA4IDB4 MCAweDg+OwoJCQlpbnRlcnJ1cHRzID0gPDAgNjM+OwoJCX07CgoJCXVjdGw6IHVjdGxAMTE4 MDA2ZjAwMDAwMCB7CgkJCWNvbXBhdGlibGUgPSAiY2F2aXVtLG9jdGVvbi02MzM1LXVjdGwi OwoJCQlyZWcgPSA8MHgxMTgwMCAweDZmMDAwMDAwIDB4MCAweDEwMD47CgkJCXJhbmdlczsg LyogRGlyZWN0IG1hcHBpbmcgKi8KCQkJI2FkZHJlc3MtY2VsbHMgPSA8Mj47CgkJCSNzaXpl LWNlbGxzID0gPDI+OwoJCQkvKiAxMk1IeiwgMjRNSHogYW5kIDQ4TUh6IGFsbG93ZWQgKi8K CQkJcmVmY2xrLWZyZXF1ZW5jeSA9IDwxMjAwMDAwMD47CgkJCS8qIEVpdGhlciAiY3J5c3Rh bCIgb3IgImV4dGVybmFsIiAqLwoJCQlyZWZjbGstdHlwZSA9ICJjcnlzdGFsIjsKCgkJCWVo Y2lAMTZmMDAwMDAwMDAwMCB7CgkJCQljb21wYXRpYmxlID0gImNhdml1bSxvY3Rlb24tNjMz NS1laGNpIiwidXNiLWVoY2kiOwoJCQkJcmVnID0gPDB4MTZmMDAgMHgwMDAwMDAwMCAweDAg MHgxMDA+OwoJCQkJaW50ZXJydXB0cyA9IDwwIDU2PjsKCQkJCWJpZy1lbmRpYW4tcmVnczsK CQkJfTsKCQkJb2hjaUAxNmYwMDAwMDAwNDAwIHsKCQkJCWNvbXBhdGlibGUgPSAiY2F2aXVt LG9jdGVvbi02MzM1LW9oY2kiLCJ1c2Itb2hjaSI7CgkJCQlyZWcgPSA8MHgxNmYwMCAweDAw MDAwNDAwIDB4MCAweDEwMD47CgkJCQlpbnRlcnJ1cHRzID0gPDAgNTY+OwoJCQkJYmlnLWVu ZGlhbi1yZWdzOwoJCQl9OwoJCX07Cgl9OwoKCW1kaW8tbXV4IHsKCQljb21wYXRpYmxlID0g ImNhdml1bSxtZGlvLW11eC1zbjc0Y2J0bHYzMjUzIiwgImNhdml1bSxtZGlvLW11eCI7CgkJ Z3Bpb3MgPSA8JmdwaW8xIDMgMD4sIDwmZ3BpbzEgNCAwPjsKCQltZGlvLXBhcmVudC1idXMg PSA8JnNtaTE+OwoJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwoJCSNzaXplLWNlbGxzID0gPDA+ OwoKCQltZGlvQDIgewoJCQlyZWcgPSA8Mj47CgkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwoJ CQkjc2l6ZS1jZWxscyA9IDwwPjsKCgkJCXBoeTIxOiBldGhlcm5ldC1waHlAMSB7CgkJCQly ZWcgPSA8MT47CgkJCQljb21wYXRpYmxlID0gIm1hcnZlbGwsODhlMTE0OXIiLCAiZXRoZXJu ZXQtcGh5LWllZWU4MDIuMy1jMjIiOwoJCQkJbWFydmVsbCxyZWctaW5pdCA9IDwzIDB4MTAg MCAweDU3Nzc+LAoJCQkJCTwzIDB4MTEgMCAweDAwYWE+LAoJCQkJCTwzIDB4MTIgMCAweDQx MDU+LAoJCQkJCTwzIDB4MTMgMCAweDBhNjA+OwoJCQkJaW50ZXJydXB0LXBhcmVudCA9IDwm Z3Bpbz47CgkJCQlpbnRlcnJ1cHRzID0gPDEwIDg+OyAvKiBQaW4gMTAsIGFjdGl2ZSBsb3cg Ki8KCQkJfTsKCQkJcGh5MjI6IGV0aGVybmV0LXBoeUAyIHsKCQkJCXJlZyA9IDwyPjsKCQkJ CWNvbXBhdGlibGUgPSAibWFydmVsbCw4OGUxMTQ5ciIsICJldGhlcm5ldC1waHktaWVlZTgw Mi4zLWMyMiI7CgkJCQltYXJ2ZWxsLHJlZy1pbml0ID0gPDMgMHgxMCAwIDB4NTc3Nz4sCgkJ CQkJPDMgMHgxMSAwIDB4MDBhYT4sCgkJCQkJPDMgMHgxMiAwIDB4NDEwNT4sCgkJCQkJPDMg MHgxMyAwIDB4MGE2MD47CgkJCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZncGlvPjsKCQkJCWlu dGVycnVwdHMgPSA8MTAgOD47IC8qIFBpbiAxMCwgYWN0aXZlIGxvdyAqLwoJCQl9OwoJCQlw aHkyMzogZXRoZXJuZXQtcGh5QDMgewoJCQkJcmVnID0gPDM+OwoJCQkJY29tcGF0aWJsZSA9 ICJtYXJ2ZWxsLDg4ZTExNDlyIiwgImV0aGVybmV0LXBoeS1pZWVlODAyLjMtYzIyIjsKCQkJ CW1hcnZlbGwscmVnLWluaXQgPSA8MyAweDEwIDAgMHg1Nzc3PiwKCQkJCQk8MyAweDExIDAg MHgwMGFhPiwKCQkJCQk8MyAweDEyIDAgMHg0MTA1PiwKCQkJCQk8MyAweDEzIDAgMHgwYTYw PjsKCQkJCWludGVycnVwdC1wYXJlbnQgPSA8JmdwaW8+OwoJCQkJaW50ZXJydXB0cyA9IDwx MCA4PjsgLyogUGluIDEwLCBhY3RpdmUgbG93ICovCgkJCX07CgkJCXBoeTI0OiBldGhlcm5l dC1waHlANCB7CgkJCQlyZWcgPSA8ND47CgkJCQljb21wYXRpYmxlID0gIm1hcnZlbGwsODhl MTE0OXIiLCAiZXRoZXJuZXQtcGh5LWllZWU4MDIuMy1jMjIiOwoJCQkJbWFydmVsbCxyZWct aW5pdCA9IDwzIDB4MTAgMCAweDU3Nzc+LAoJCQkJCTwzIDB4MTEgMCAweDAwYWE+LAoJCQkJ CTwzIDB4MTIgMCAweDQxMDU+LAoJCQkJCTwzIDB4MTMgMCAweDBhNjA+OwoJCQkJaW50ZXJy dXB0LXBhcmVudCA9IDwmZ3Bpbz47CgkJCQlpbnRlcnJ1cHRzID0gPDEwIDg+OyAvKiBQaW4g MTAsIGFjdGl2ZSBsb3cgKi8KCQkJfTsKCQl9OwoKCQltZGlvQDMgewoJCQlyZWcgPSA8Mz47 CgkJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwoJCQkjc2l6ZS1jZWxscyA9IDwwPjsKCgkJCXBo eTExOiBldGhlcm5ldC1waHlAMSB7CgkJCQlyZWcgPSA8MT47CgkJCQljb21wYXRpYmxlID0g Im1hcnZlbGwsODhlMTE0OXIiLCAiZXRoZXJuZXQtcGh5LWllZWU4MDIuMy1jMjIiOwoJCQkJ bWFydmVsbCxyZWctaW5pdCA9IDwzIDB4MTAgMCAweDU3Nzc+LAoJCQkJCTwzIDB4MTEgMCAw eDAwYWE+LAoJCQkJCTwzIDB4MTIgMCAweDQxMDU+LAoJCQkJCTwzIDB4MTMgMCAweDBhNjA+ OwoJCQkJaW50ZXJydXB0LXBhcmVudCA9IDwmZ3Bpbz47CgkJCQlpbnRlcnJ1cHRzID0gPDEy IDg+OyAvKiBQaW4gMTIsIGFjdGl2ZSBsb3cgKi8KCQkJfTsKCQkJcGh5MTI6IGV0aGVybmV0 LXBoeUAyIHsKCQkJCXJlZyA9IDwyPjsKCQkJCWNvbXBhdGlibGUgPSAibWFydmVsbCw4OGUx MTQ5ciIsICJldGhlcm5ldC1waHktaWVlZTgwMi4zLWMyMiI7CgkJCQltYXJ2ZWxsLHJlZy1p bml0ID0gPDMgMHgxMCAwIDB4NTc3Nz4sCgkJCQkJPDMgMHgxMSAwIDB4MDBhYT4sCgkJCQkJ PDMgMHgxMiAwIDB4NDEwNT4sCgkJCQkJPDMgMHgxMyAwIDB4MGE2MD47CgkJCQlpbnRlcnJ1 cHQtcGFyZW50ID0gPCZncGlvPjsKCQkJCWludGVycnVwdHMgPSA8MTIgOD47IC8qIFBpbiAx MiwgYWN0aXZlIGxvdyAqLwoJCQl9OwoJCQlwaHkxMzogZXRoZXJuZXQtcGh5QDMgewoJCQkJ cmVnID0gPDM+OwoJCQkJY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLDg4ZTExNDlyIiwgImV0aGVy bmV0LXBoeS1pZWVlODAyLjMtYzIyIjsKCQkJCW1hcnZlbGwscmVnLWluaXQgPSA8MyAweDEw IDAgMHg1Nzc3PiwKCQkJCQk8MyAweDExIDAgMHgwMGFhPiwKCQkJCQk8MyAweDEyIDAgMHg0 MTA1PiwKCQkJCQk8MyAweDEzIDAgMHgwYTYwPjsKCQkJCWludGVycnVwdC1wYXJlbnQgPSA8 JmdwaW8+OwoJCQkJaW50ZXJydXB0cyA9IDwxMiA4PjsgLyogUGluIDEyLCBhY3RpdmUgbG93 ICovCgkJCX07CgkJCXBoeTE0OiBldGhlcm5ldC1waHlANCB7CgkJCQlyZWcgPSA8ND47CgkJ CQljb21wYXRpYmxlID0gIm1hcnZlbGwsODhlMTE0OXIiLCAiZXRoZXJuZXQtcGh5LWllZWU4 MDIuMy1jMjIiOwoJCQkJbWFydmVsbCxyZWctaW5pdCA9IDwzIDB4MTAgMCAweDU3Nzc+LAoJ CQkJCTwzIDB4MTEgMCAweDAwYWE+LAoJCQkJCTwzIDB4MTIgMCAweDQxMDU+LAoJCQkJCTwz IDB4MTMgMCAweDBhNjA+OwoJCQkJaW50ZXJydXB0LXBhcmVudCA9IDwmZ3Bpbz47CgkJCQlp bnRlcnJ1cHRzID0gPDEyIDg+OyAvKiBQaW4gMTIsIGFjdGl2ZSBsb3cgKi8KCQkJfTsKCQl9 OwoJfTsKCglncGlvLWxlZHMgewoJCWNvbXBhdGlibGUgPSAiZ3Bpby1sZWRzIjsKCgkJZDEg ewoJCQlsYWJlbCA9ICJRTE0wLVJlZCI7CgkJCWdwaW9zID0gPCZncGlvMiAwIDE+OwoJCQlk ZWZhdWx0LXN0YXRlID0gImtlZXAiOwoJCX07CgkJZDIgewoJCQlsYWJlbCA9ICJRTE0wLUdy ZWVuIjsKCQkJZ3Bpb3MgPSA8JmdwaW8yIDEgMT47CgkJCWRlZmF1bHQtc3RhdGUgPSAia2Vl cCI7CgkJfTsKCQlkOSB7CgkJCWxhYmVsID0gIlFMTTEtUmVkIjsKCQkJZ3Bpb3MgPSA8Jmdw aW8yIDIgMT47CgkJCWRlZmF1bHQtc3RhdGUgPSAia2VlcCI7CgkJfTsKCQlkMTAgewoJCQls YWJlbCA9ICJRTE0xLUdyZWVuIjsKCQkJZ3Bpb3MgPSA8JmdwaW8yIDMgMT47CgkJCWRlZmF1 bHQtc3RhdGUgPSAia2VlcCI7CgkJfTsKCQlkMTcgewoJCQlsYWJlbCA9ICJRTE0yLVJlZCI7 CgkJCWdwaW9zID0gPCZncGlvMiA0IDE+OwoJCQlkZWZhdWx0LXN0YXRlID0gImtlZXAiOwoJ CX07CgkJZDE4IHsKCQkJbGFiZWwgPSAiUUxNMi1HcmVlbiI7CgkJCWdwaW9zID0gPCZncGlv MiA1IDE+OwoJCQlkZWZhdWx0LXN0YXRlID0gImtlZXAiOwoJCX07Cgl9OwoKCWFsaWFzZXMg ewoJCW1peDAgPSAmbWl4MDsKCQltaXgxID0gJm1peDE7CgkJcGlwID0gJnBpcDsKCQlzbWkw ID0gJnNtaTA7CgkJc21pMSA9ICZzbWkxOwoJCXR3c2kwID0gJnR3c2kwOwoJCXR3c2kxID0g JnR3c2kxOwoJCXVhcnQwID0gJnVhcnQwOwoJCXVhcnQxID0gJnVhcnQxOwoJCWZsYXNoMCA9 ICZmbGFzaDA7Cgl9OwogfTsK --------------080005030004050806070101--