LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpSZWFkbWUgZm9yIExpbnV4IGRldmljZSBkcml2ZXIgZm9yIHRoZSBPbW5pVmlzaW9uIE9WNTExIFVTQiB0byBjYW1lcmEgYnJpZGdlIElDCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkF1dGhvcjogTWFyayBNY0NsZWxsYW5kCkhvbWVwYWdlOiBodHRwOi8vYWxwaGEuZHluZG5zLm9yZy9vdjUxMQoKSU5UUk9EVUNUSU9OOgoKVGhpcyBpcyBhIGRyaXZlciBmb3IgdGhlIE9WNTExLCBhIFVTQi1vbmx5IGNoaXAgdXNlZCBpbiBtYW55ICJ3ZWJjYW0iIGRldmljZXMuCkFueSBjYW1lcmEgdXNpbmcgdGhlIE9WNTExL09WNTExKyBhbmQgdGhlIE9WNjYyMC9PVjc2MTAvMjAvMjBBRSBzaG91bGQgd29yay4KVmlkZW8gY2FwdHVyZSBkZXZpY2VzIHRoYXQgdXNlIHRoZSBQaGlsaXBzIFNBQTcxMTFBIGRlY29kZXIgYWxzbyB3b3JrLiBJdApzdXBwb3J0cyBzdHJlYW1pbmcgYW5kIGNhcHR1cmUgb2YgY29sb3Igb3IgbW9ub2Nocm9tZSB2aWRlbyB2aWEgdGhlIFZpZGVvNExpbnV4CkFQSS4gTW9zdCBWNEwgYXBwcyBhcmUgY29tcGF0aWJsZSB3aXRoIGl0LiBNb3N0IHJlc29sdXRpb25zIHdpdGggYSB3aWR0aCBhbmQKaGVpZ2h0IHRoYXQgYXJlIGEgbXVsdGlwbGUgb2YgOCBhcmUgc3VwcG9ydGVkLgoKSWYgeW91IG5lZWQgbW9yZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpc2l0IHRoZSBPVjUxMSBob21lcGFnZSBhdCB0aGUgYWJvdmUgVVJMLgoKV0hBVCBZT1UgTkVFRDoKCi0gSWYgeW91IHdhbnQgdG8gaGVscCB3aXRoIHRoZSBkZXZlbG9wbWVudCwgZ2V0IHRoZSBjaGlwJ3Mgc3BlY2lmaWNhdGlvbiBkb2NzIGF0CiAgaHR0cDovL3d3dy5vdnQuY29tL29tbml1c2JwLmh0bWwKCi0gQSBWaWRlbzRMaW51eCBjb21wYXRpYmxlIGZyYW1lIGdyYWJiZXIgcHJvZ3JhbSAoSSByZWNvbW1lbmQgdmlkY2F0IGFuZCB4YXd0dikKICAgIHZpZGNhdCBpcyBwYXJ0IG9mIHRoZSB3M2NhbSBwYWNrYWdlOiAgaHR0cDovL21weC5mcmVlc2hlbGwubmV0LwogICAgeGF3dHYgaXMgYXZhaWxhYmxlIGF0OiAgaHR0cDovL2xpbnV4LmJ5dGVzZXgub3JnL3hhd3R2LwoKSE9XIFRPIFVTRSBJVDoKCk5vdGU6IFRoZXNlIGFyZSBzaW1wbGlmaWVkIGluc3RydWN0aW9ucy4gRm9yIGNvbXBsZXRlIGluc3RydWN0aW9ucyBzZWU6CglodHRwOi8vYWxwaGEuZHluZG5zLm9yZy9vdjUxMS9pbnN0YWxsLmh0bWwKCllvdSBtdXN0IGhhdmUgZmlyc3QgY29tcGlsZWQgVVNCIHN1cHBvcnQsIHN1cHBvcnQgZm9yIHlvdXIgc3BlY2lmaWMgVVNCIGhvc3QKY29udHJvbGxlciAoVUhDSSBvciBPSENJKSwgYW5kIFZpZGVvNExpbnV4IHN1cHBvcnQgZm9yIHlvdXIga2VybmVsIChJIHJlY29tbWVuZAptYWtpbmcgdGhlbSBtb2R1bGVzLikgTWFrZSBzdXJlICJFbmZvcmNlIGJhbmR3aWR0aCBhbGxvY2F0aW9uIiBpcyBOT1QgZW5hYmxlZC4KCk5leHQsIChhcyByb290KToKCgltb2Rwcm9iZSB1c2Jjb3JlCgltb2Rwcm9iZSB1c2ItdWhjaSAgPE9SPiAgbW9kcHJvYmUgdXNiLW9oY2kKCW1vZHByb2JlIHZpZGVvZGV2Cgltb2Rwcm9iZSBvdjUxMQoKSWYgaXQgaXMgbm90IGFscmVhZHkgdGhlcmUgKGl0IHVzdWFsbHkgaXMpLCBjcmVhdGUgdGhlIHZpZGVvIGRldmljZToKCglta25vZCAvZGV2L3ZpZGVvMCBjIDgxIDAKCk9wdGlvbmFsbHksIHN5bWxpbmsgL2Rldi92aWRlbyB0byAvZGV2L3ZpZGVvMAoKWW91IHdpbGwgaGF2ZSB0byBzZXQgcGVybWlzc2lvbnMgb24gdGhpcyBkZXZpY2UgdG8gYWxsb3cgeW91IHRvIHJlYWQvd3JpdGUKZnJvbSBpdDoKCgljaG1vZCA2NjYgL2Rldi92aWRlbwoJY2htb2QgNjY2IC9kZXYvdmlkZW8wIChpZiBuZWNlc3NhcnkpCgpOb3cgeW91IGFyZSByZWFkeSB0byBydW4gYSB2aWRlbyBhcHAhIEJvdGggdmlkY2F0IGFuZCB4YXd0diB3b3JrIHdlbGwgZm9yIG1lCmF0IDY0MHg0ODAuCgpbVXNpbmcgdmlkY2F0Ol0KCgl2aWRjYXQgLXMgNjQweDQ4MCAtcCBjID4gdGVzdC5qcGcKCXh2aWV3IHRlc3QuanBnCgpbVXNpbmcgeGF3dHY6XQoKRnJvbSB0aGUgbWFpbiB4YXd0diBkaXJlY3Rvcnk6CgoJbWFrZSBjbGVhbgoJLi9jb25maWd1cmUKCW1ha2UKCW1ha2UgaW5zdGFsbAoKTm93IHlvdSBzaG91bGQgYmUgYWJsZSB0byBydW4geGF3dHYuIFJpZ2h0IGNsaWNrIGZvciB0aGUgb3B0aW9ucyBkaWFsb2cuCgpNT0RVTEUgUEFSQU1FVEVSUzoKCiAgWW91IGNhbiBzZXQgdGhlc2Ugd2l0aDogIGluc21vZCBvdjUxMSBOQU1FPVZBTFVFCiAgVGhlcmUgaXMgY3VycmVudGx5IG5vIHdheSB0byBzZXQgdGhlc2Ugb24gYSBwZXItY2FtZXJhIGJhc2lzLgoKICBOQU1FOiBhdXRvYnJpZ2h0CiAgVFlQRTogaW50ZWdlciAoQm9vbGVhbikKICBERUZBVUxUOiAxCiAgREVTQzogQnJpZ2h0bmVzcyBpcyBub3JtYWxseSB1bmRlciBhdXRvbWF0aWMgY29udHJvbCBhbmQgY2FuJ3QgYmUgc2V0CiAgICAgICAgbWFudWFsbHkgYnkgdGhlIHZpZGVvIGFwcC4gU2V0IHRvIDAgZm9yIG1hbnVhbCBjb250cm9sLgoKICBOQU1FOiBhdXRvZ2FpbgogIFRZUEU6IGludGVnZXIgKEJvb2xlYW4pCiAgREVGQVVMVDogMQogIERFU0M6IEF1dG8gR2FpbiBDb250cm9sIGVuYWJsZS4gVGhpcyBmZWF0dXJlIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCgogIE5BTUU6IGF1dG9leHAKICBUWVBFOiBpbnRlZ2VyIChCb29sZWFuKQogIERFRkFVTFQ6IDEKICBERVNDOiBBdXRvIEV4cG9zdXJlIENvbnRyb2wgZW5hYmxlLiBUaGlzIGZlYXR1cmUgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4KCiAgTkFNRTogZGVidWcKICBUWVBFOiBpbnRlZ2VyICgwLTYpCiAgREVGQVVMVDogMwogIERFU0M6IFNldHMgdGhlIHRocmVzaG9sZCBmb3IgcHJpbnRpbmcgZGVidWcgbWVzc2FnZXMuIFRoZSBoaWdoZXIgdGhlIHZhbHVlLAogICAgICAgIHRoZSBtb3JlIGlzIHByaW50ZWQuIFRoZSBsZXZlbHMgYXJlIGN1bXVsYXRpdmUsIGFuZCBhcmUgYXMgZm9sbG93czoKICAgICAgICAgIDA9bm8gZGVidWcgbWVzc2FnZXMKICAgICAgICAgIDE9aW5pdC9kZXRlY3Rpb24vdW5sb2FkIGFuZCBvdGhlciBzaWduaWZpY2FudCBtZXNzYWdlcwogICAgICAgICAgMj1zb21lIHdhcm5pbmcgbWVzc2FnZXMKICAgICAgICAgIDM9Y29uZmlnL2NvbnRyb2wgZnVuY3Rpb24gY2FsbHMKICAgICAgICAgIDQ9bW9zdCBmdW5jdGlvbiBjYWxscyBhbmQgZGF0YSBwYXJzaW5nIG1lc3NhZ2VzCiAgICAgICAgICA1PWhpZ2hseSByZXBldGl0aXZlIG1lc2dzCgogIE5BTUU6IHNuYXBzaG90CiAgVFlQRTogaW50ZWdlciAoQm9vbGVhbikKICBERUZBVUxUOiAwCiAgREVTQzogU2V0IHRvIDEgdG8gZW5hYmxlIHNuYXBzaG90IG1vZGUuIHJlYWQoKS9WSURJT0NTWU5DIHdpbGwgYmxvY2sgdW50aWwKCXRoZSBzbmFwc2hvdCBidXR0b24gaXMgcHJlc3NlZC4gTm90ZTogZW5hYmxpbmcgdGhpcyBtb2RlIGRpc2FibGVzCgkvcHJvYy92aWRlby9vdjUxMS88bWlub3IjPi9idXR0b24KCiAgTkFNRTogY2FtcwogIFRZUEU6IGludGVnZXIgKDEtNCBmb3IgT1Y1MTEsIDEtMzEgZm9yIE9WNTExKykKICBERUZBVUxUOiAxCiAgREVTQzogTnVtYmVyIG9mIGNhbWVyYXMgYWxsb3dlZCB0byBzdHJlYW0gc2ltdWx0YW5lb3VzbHkgb24gYSBzaW5nbGUgYnVzLgogICAgICAgIFZhbHVlcyBoaWdoZXIgdGhhbiAxIHJlZHVjZSB0aGUgZGF0YSByYXRlIG9mIGVhY2ggY2FtZXJhLCBhbGxvd2luZyB0d28KICAgICAgICBvciBtb3JlIHRvIGJlIHVzZWQgYXQgb25jZS4gSWYgeW91IGhhdmUgYSBjb21wbGljYXRlZCBzZXR1cCBpbnZvbHZpbmcKICAgICAgICBib3RoIE9WNTExIGFuZCBPVjUxMSsgY2FtZXJhcywgdHJpYWwtYW5kLWVycm9yIG1heSBiZSBuZWNlc3NhcnkgZm9yCiAgICAgICAgZmluZGluZyB0aGUgb3B0aW11bSBzZXR0aW5nLgoKICBOQU1FOiBjb21wcmVzcwogIFRZUEU6IGludGVnZXIgKEJvb2xlYW4pCiAgREVGQVVMVDogMAogIERFU0M6IFNldCB0aGlzIHRvIDEgdG8gdHVybiBvbiB0aGUgY2FtZXJhJ3MgY29tcHJlc3Npb24gZW5naW5lLiBUaGlzIGNhbgogICAgICAgIHBvdGVudGlhbGx5IGluY3JlYXNlIHRoZSBmcmFtZSByYXRlIGF0IHRoZSBleHBlbnNlIG9mIHF1YWxpdHksIGlmIHlvdQogICAgICAgIGhhdmUgYSBmYXN0IENQVS4gWW91IG11c3QgbG9hZCB0aGUgcHJvcGVyIGNvbXByZXNzaW9uIG1vZHVsZSBmb3IgeW91cgogICAgICAgIGNhbWVyYSBiZWZvcmUgc3RhcnRpbmcgeW91ciBhcHBsaWNhdGlvbiAob3Y1MTFfZGVjb21wIG9yIG92NTE4X2RlY29tcCkuCgogIE5BTUU6IHRlc3RwYXQKICBUWVBFOiBpbnRlZ2VyIChCb29sZWFuKQogIERFRkFVTFQ6IDAKICBERVNDOiBUaGlzIGNvbmZpZ3VyZXMgdGhlIGNhbWVyYSdzIHNlbnNvciB0byB0cmFuc21pdCBhIGNvbG9yZWQgdGVzdC1wYXR0ZXJuCiAgICAgICAgaW5zdGVhZCBvZiBhbiBpbWFnZS4gVGhpcyBkb2VzIG5vdCB3b3JrIGNvcnJlY3RseSB5ZXQuCgogIE5BTUU6IGR1bXBwaXgKICBUWVBFOiBpbnRlZ2VyICgwLTIpCiAgREVGQVVMVDogMAogIERFU0M6IER1bXBzIHJhdyBwaXhlbCBkYXRhIGFuZCBza2lwcyBwb3N0LXByb2Nlc3NpbmcgYW5kIGZvcm1hdCBjb252ZXJzaW9uLgoJSXQgaXMgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcyBvbmx5LiBPcHRpb25zIGFyZToKCQkwOiBEaXNhYmxlIChkZWZhdWx0KQoJCTE6IER1bXAgcmF3IGRhdGEgZnJvbSBjYW1lcmEsIGV4Y2x1ZGluZyBoZWFkZXJzIGFuZCB0cmFpbGVycwoJCTI6IER1bXBzIGRhdGEgZXhhY3RseSBhcyByZWNlaXZlZCBmcm9tIGNhbWVyYQoKICBOQU1FOiBsZWQKICBUWVBFOiBpbnRlZ2VyICgwLTIpCiAgREVGQVVMVDogMSAoQWx3YXlzIG9uKQogIERFU0M6IENvbnRyb2xzIHdoZXRoZXIgdGhlIExFRCAodGhlIGxpdHRsZSBsaWdodCkgb24gdGhlIGZyb250IG9mIHRoZSBjYW1lcmEKCWlzIGFsd2F5cyBvZmYgKDApLCBhbHdheXMgb24gKDEpLCBvciBvbmx5IG9uIHdoZW4gZHJpdmVyIGlzIG9wZW4gKDIpLgoJVGhpcyBpcyBub3Qgc3VwcG9ydGVkIHdpdGggdGhlIE9WNTExLCBhbmQgbWlnaHQgb25seSB3b3JrIHdpdGggY2VydGFpbgoJY2FtZXJhcyAob25lcyB0aGF0IGFjdHVhbGx5IGhhdmUgdGhlIExFRCB3aXJlZCB0byB0aGUgY29udHJvbCBwaW4sIGFuZAoJbm90IGp1c3QgaGFyZC13aXJlZCB0byBiZSBvbiBhbGwgdGhlIHRpbWUpLgoKICBOQU1FOiBkdW1wX2JyaWRnZQogIFRZUEU6IGludGVnZXIgKEJvb2xlYW4pCiAgREVGQVVMVDogMAogIERFU0M6IER1bXBzIHRoZSBicmlkZ2UgKE9WNTExWytdIG9yIE9WNTE4WytdKSByZWdpc3RlciB2YWx1ZXMgdG8gdGhlIHN5c3RlbQoJbG9nLiBPbmx5IHVzZWZ1bCBmb3Igc2VyaW91cyBkZWJ1Z2dpbmcvZGV2ZWxvcG1lbnQgcHVycG9zZXMuCgogIE5BTUU6IGR1bXBfc2Vuc29yCiAgVFlQRTogaW50ZWdlciAoQm9vbGVhbikKICBERUZBVUxUOiAwCiAgREVTQzogRHVtcHMgdGhlIHNlbnNvciByZWdpc3RlciB2YWx1ZXMgdG8gdGhlIHN5c3RlbSBsb2cuIE9ubHkgdXNlZnVsIGZvcgoJc2VyaW91cyBkZWJ1Z2dpbmcvZGV2ZWxvcG1lbnQgcHVycG9zZXMuCgogIE5BTUU6IHByaW50cGgKICBUWVBFOiBpbnRlZ2VyIChCb29sZWFuKQogIERFRkFVTFQ6IDAKICBERVNDOiBTZXR0aW5nIHRoaXMgdG8gMSB3aWxsIGR1bXAgdGhlIGZpcnN0IDEyIGJ5dGVzIG9mIGVhY2ggaXNvYyBmcmFtZS4gVGhpcwoJaXMgb25seSB1c2VmdWwgaWYgeW91IGFyZSB0cnlpbmcgdG8gZGVidWcgcHJvYmxlbXMgd2l0aCB0aGUgaXNvYyBkYXRhCglzdHJlYW0gKGkuZS46IGNhbWVyYSBpbml0aWFsaXplcywgYnV0IHZpZGNhdCBoYW5ncyB1bnRpbCBDdHJsLUMpLiBCZQoJd2FybmVkIHRoYXQgdGhpcyBkdW1wcyBhIGxhcmdlIG51bWJlciBvZiBtZXNzYWdlcyB0byB5b3VyIGtlcm5lbCBsb2cuCgogIE5BTUU6IHBoeSwgcGh1diwgcHZ5LCBwdnV2LCBxaHksIHFodXYsIHF2eSwgcXZ1dgogIFRZUEU6IGludGVnZXIgKDAtNjMgZm9yIHBoeSBhbmQgcGh1diwgMC0yNTUgZm9yIHJlc3QpCiAgREVGQVVMVDogT1Y1MTEgZGVmYXVsdCB2YWx1ZXMKICBERVNDOiBUaGVzZSBhcmUgcmVnaXN0ZXJzIDcwaCAtIDc3aCBvZiB0aGUgT1Y1MTEsIHdoaWNoIGNvbnRyb2wgdGhlCglwcmVkaWN0aW9uIHJhbmdlcyBhbmQgcXVhbnRpemF0aW9uIHRocmVzaG9sZHMgb2YgdGhlIGNvbXByZXNzb3IsIGZvcgoJdGhlIFkgYW5kIFVWIGNoYW5uZWxzIGluIHRoZSBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBkaXJlY3Rpb25zLiBTZWUKCXRoZSBPVjUxMSBvciBPVjUxMSsgZGF0YSBzaGVldCBmb3IgbW9yZSBkZXRhaWxlZCBkZXNjcmlwdGlvbnMuIFRoZXNlCglub3JtYWxseSBkbyBub3QgbmVlZCB0byBiZSBjaGFuZ2VkLgoKICBOQU1FOiBsaWdodGZyZXEKICBUWVBFOiBpbnRlZ2VyICgwLCA1MCwgb3IgNjApCiAgREVGQVVMVDogMCAodXNlIHNlbnNvciBkZWZhdWx0KQogIERFU0M6IFNldHMgdGhlIHNlbnNvciB0byBtYXRjaCB5b3VyIGxpZ2h0aW5nIGZyZXF1ZW5jeS4gVGhpcyBjYW4gcmVkdWNlIHRoZQoJYXBwZWFyYW5jZSBvZiAiYmFuZGluZyIsIGkuZS4gaG9yaXpvbnRhbCBsaW5lcyBvciB3YXZlcyBvZiBsaWdodCBhbmQKCWRhcmsgdGhhdCBhcmUgb2Z0ZW4gY2F1c2VkIGJ5IGFydGlmaWNpYWwgbGlnaHRpbmcuIFZhbGlkIHZhbHVlcyBhcmU6CgkJMCAtIFVzZSBkZWZhdWx0IChkZXBlbmRzIG9uIHNlbnNvciwgbW9zdCBsaWtlbHkgNjAgSHopCgkJNTAgLSBGb3IgRXVyb3BlYW4gYW5kIEFzaWFuIDUwIEh6IHBvd2VyCgkJNjAgLSBGb3IgQW1lcmljYW4gNjAgSHogcG93ZXIKCiAgTkFNRTogYmFuZGluZ2ZpbHRlcgogIFRZUEU6IGludGVnZXIgKEJvb2xlYW4pCiAgREVGQVVMVDogMCAob2ZmKQogIERFU0M6IEVuYWJsZXMgdGhlIHNlbnNvcrRzIGJhbmRpbmcgZmlsdGVyIGV4cG9zdXJlIGFsZ29yaXRobS4gVGhpcyByZWR1Y2VzCglvciBzdGFiaWxpemVzIHRoZSAiYmFuZGluZyIgY2F1c2VkIGJ5IHNvbWUgYXJ0aWZpY2lhbCBsaWdodCBzb3VyY2VzCgkoZXNwZWNpYWxseSBmbHVvcmVzY2VudCkuIFlvdSBtaWdodCBoYXZlIHRvIHNldCBsaWdodGZyZXEgY29ycmVjdGx5IGZvcgoJdGhpcyB0byB3b3JrIHJpZ2h0LiBBcyBhbiBhZGRlZCBib251cywgdGhpcyBzb21ldGltZXMgbWFrZXMgaXQKCXBvc3NpYmxlIHRvIGNhcHR1cmUgeW91ciBtb25pdG9ytHMgb3V0cHV0LgoKICBOQU1FOiBmYXN0c2V0CiAgVFlQRTogaW50ZWdlciAoQm9vbGVhbikKICBERUZBVUxUOiAwIChvZmYpCiAgREVTQzogQWxsb3dzIHBpY3R1cmUgc2V0dGluZ3MgKGJyaWdodG5lc3MsIGNvbnRyYXN0LCBjb2xvciwgYW5kIGh1ZSkgdG8gdGFrZQoJZWZmZWN0IGltbWVkaWF0ZWx5LCBldmVuIGluIHRoZSBtaWRkbGUgb2YgYSBmcmFtZS4gVGhpcyByZWR1Y2VzIHRoZQoJdGltZSB0byBjaGFuZ2Ugc2V0dGluZ3MsIGJ1dCBjYW4gcnVpbiBmcmFtZXMgZHVyaW5nIHRoZSBjaGFuZ2UuIE9ubHkKCWFmZmVjdHMgT21uaVZpc2lvbiBzZW5zb3JzLgoKICBOQU1FOiBmb3JjZV9wYWxldHRlCiAgVFlQRTogaW50ZWdlciAoQm9vbGVhbikKICBERUZBVUxUOiAwIChvZmYpCiAgREVTQzogRm9yY2VzIHRoZSBwYWxldHRlIChjb2xvciBmb3JtYXQpIHRvIGEgc3BlY2lmaWMgdmFsdWUuIElmIGFuCglhcHBsaWNhdGlvbiByZXF1ZXN0cyBhIGRpZmZlcmVudCBwYWxldHRlLCBpdCB3aWxsIGJlIHJlamVjdGVkLCB0aGVyZWJ5Cglmb3JjaW5nIGl0IHRvIHRyeSBvdGhlcnMgdW50aWwgaXQgc3VjY2VlZHMuIFRoaXMgaXMgdXNlZnVsIGZvciBmb3JjaW5nCglncmV5c2NhbGUgbW9kZSB3aXRoIGEgY29sb3IgY2FtZXJhLCBmb3IgZXhhbXBsZS4gU3VwcG9ydGVkIG1vZGVzIGFyZToKCQkwICAgICAgICAgICAgICAgICAgICAgICAgICAgKEFsbG93cyBhbGwgdGhlIGZvbGxvd2luZyBmb3JtYXRzKQoJCTEgICBWSURFT19QQUxFVFRFX0dSRVkgICAgICAoTGluZWFyIGdyZXlzY2FsZSkKCQkxMCAgVklERU9fUEFMRVRURV9ZVVY0MjAgICAgKFlVViA0OjI6MCBQbGFuYXIpCgkJMTUgIFZJREVPX1BBTEVUVEVfWVVWNDIwUCAgIChZVVYgNDoyOjAgUGxhbmFyLCBzYW1lIGFzIDEwKQoKICBOQU1FOiBiYWNrbGlnaHQKICBUWVBFOiBpbnRlZ2VyIChCb29sZWFuKQogIERFRkFVTFQ6IDAgKG9mZikKICBERVNDOiBTZXR0aW5nIHRoaXMgZmxhZyBjaGFuZ2VzIHRoZSBleHBvc3VyZSBhbGdvcml0aG0gZm9yIE9tbmlWaXNpb24gc2Vuc29ycwoJc3VjaCB0aGF0IG9iamVjdHMgaW4gdGhlIGNhbWVyYSdzIHZpZXcgKGkuZS4geW91ciBoZWFkKSBjYW4gYmUgY2xlYXJseQoJc2VlbiB3aGVuIHRoZXkgYXJlIGlsbHVtaW5hdGVkIGZyb20gYmVoaW5kLiBJdCByZWR1Y2VzIG9yIGVsaW1pbmF0ZXMKCXRoZSBzZW5zb3IncyBhdXRvLWV4cG9zdXJlIGZ1bmN0aW9uLCBzbyBpdCBzaG91bGQgb25seSBiZSB1c2VkIHdoZW4KCW5lZWRlZC4gQWRkaXRpb25hbGx5LCBpdCBpcyBvbmx5IHN1cHBvcnRlZCB3aXRoIHRoZSBPVjY2MjAgYW5kIE9WNzYyMC4KCiAgTkFNRTogdW5pdF92aWRlbwogIFRZUEU6IFVwIHRvIDE2IGNvbW1hLXNlcGFyYXRlZCBpbnRlZ2VycwogIERFRkFVTFQ6IDAsMCwwLi4uIChhdXRvbWF0aWNhbGx5IGFzc2lnbiB0aGUgbmV4dCBhdmFpbGFibGUgbWlub3IocykpCiAgREVTQzogWW91IGNhbiBzcGVjaWZ5IHVwIHRvIDE2IG1pbm9yIG51bWJlcnMgdG8gYmUgYXNzaWduZWQgdG8gb3Y1MTEgZGV2aWNlcy4KCUZvciBleGFtcGxlLCAidW5pdF92aWRlbz0xLDMiIHdpbGwgbWFrZSB0aGUgZHJpdmVyIHVzZSAvZGV2L3ZpZGVvMSBhbmQKCS9kZXYvdmlkZW8zIGZvciB0aGUgZmlyc3QgdHdvIGRldmljZXMgaXQgZGV0ZWN0cy4gQWRkaXRpb25hbCBkZXZpY2VzCgl3aWxsIGJlIGFzc2lnbmVkIGF1dG9tYXRpY2FsbHkgc3RhcnRpbmcgYXQgdGhlIGZpcnN0IGF2YWlsYWJsZSBkZXZpY2UKCW5vZGUgKC9kZXYvdmlkZW8wIGluIHRoaXMgY2FzZSkuIE5vdGUgdGhhdCB5b3UgY2Fubm90IHNwZWNpZnkgMCBhcyBhCgltaW5vciBudW1iZXIuIFRoaXMgZmVhdHVyZSByZXF1aXJlcyBrZXJuZWwgdmVyc2lvbiAyLjQuNSBvciBoaWdoZXIuCgogIE5BTUU6IHJlbW92ZV96ZXJvcwogIFRZUEU6IGludGVnZXIgKEJvb2xlYW4pCiAgREVGQVVMVDogMCAoZG8gbm90IHNraXAgYW55IGluY29taW5nIGRhdGEpCiAgREVTQzogU2V0dGluZyB0aGlzIHRvIDEgd2lsbCByZW1vdmUgemVyby1wYWRkaW5nIGZyb20gaW5jb21pbmcgZGF0YS4gVGhpcwoJd2lsbCBjb21wZW5zYXRlIGZvciB0aGUgYmxvY2tzIG9mIGNvcnJ1cHRpb24gdGhhdCBjYW4gYXBwZWFyIHdoZW4gdGhlCgljYW1lcmEgY2Fubm90IGtlZXAgdXAgd2l0aCB0aGUgc3BlZWQgb2YgdGhlIFVTQiBidXMgKGVnLiBhdCBsb3cgZnJhbWUKCXJlc29sdXRpb25zKS4gVGhpcyBmZWF0dXJlIGlzIGFsd2F5cyBlbmFibGVkIHdoZW4gY29tcHJlc3Npb24gaXMgb24uCgogIE5BTUU6IG1pcnJvcgogIFRZUEU6IGludGVnZXIgKEJvb2xlYW4pCiAgREVGQVVMVDogMCAob2ZmKQogIERFU0M6IFNldHRpbmcgdGhpcyB0byAxIHdpbGwgcmV2ZXJzZSAoIm1pcnJvciIpIHRoZSBpbWFnZSBob3Jpem9udGFsbHkuIFRoaXMKCW1pZ2h0IGJlIG5lY2Vzc2FyeSBpZiB5b3VyIGNhbWVyYSBoYXMgYSBjdXN0b20gbGVucyBhc3NlbWJseS4gVGhpcyBoYXMKCW5vIGVmZmVjdCB3aXRoIHZpZGVvIGNhcHR1cmUgZGV2aWNlcy4KCiAgTkFNRTogb3Y1MThfY29sb3IKICBUWVBFOiBpbnRlZ2VyIChCb29sZWFuKQogIERFRkFVTFQ6IDAgKG9mZikKICBERVNDOiBFbmFibGUgT1Y1MTggY29sb3Igc3VwcG9ydC4gVGhpcyBpcyBvZmYgYnkgZGVmYXVsdCBzaW5jZSBpdCBkb2Vzbid0Cgl3b3JrIG1vc3Qgb2YgdGhlIHRpbWUuIElmIHlvdSB3YW50IHRvIHRyeSBpdCwgeW91IG11c3QgYWxzbyBsb2FkCglvdjUxOF9kZWNvbXAgd2l0aCB0aGUgIm5vdXY9MCIgcGFyYW1ldGVyLiBJZiB5b3UgZ2V0IGltcHJvcGVyIGNvbG9ycyBvcgoJZGlhZ29uYWwgbGluZXMgdGhyb3VnaCB0aGUgaW1hZ2UsIHJlc3RhcnQgeW91ciB2aWRlbyBhcHAgYW5kIHRyeSBhZ2Fpbi4KCVJlcGVhdCBhcyBuZWNlc3NhcnkuCgpXT1JLSU5HIEZFQVRVUkVTOgogbyBDb2xvciBzdHJlYW1pbmcvY2FwdHVyZSBhdCBtb3N0IHdpZHRocyBhbmQgaGVpZ2h0cyB0aGF0IGFyZSBtdWx0aXBsZXMgb2YgOC4KIG8gTW9ub2Nocm9tZSAodXNlIGZvcmNlX3BhbGV0dGU9MSB0byBlbmFibGUpCiBvIFNldHRpbmcvZ2V0dGluZyBvZiBzYXR1cmF0aW9uLCBjb250cmFzdCwgYnJpZ2h0bmVzcywgYW5kIGh1ZSAob25seSBzb21lIG9mCiAgIHRoZW0gd29yayB0aGUgT1Y3NjIwIGFuZCBPVjc2MjBBRSkKIG8gL3Byb2Mgc3RhdHVzIHJlcG9ydGluZwogbyBTQUE3MTExQSB2aWRlbyBjYXB0dXJlIHN1cHBvcnQgYXQgMzIweDI0MCBhbmQgNjQweDQ4MAogbyBDb21wcmVzc2lvbiBzdXBwb3J0CiBvIFNNUCBjb21wYXRpYmlsaXR5CgpIT1cgVE8gQ09OVEFDVCBNRToKCllvdSBjYW4gZW1haWwgbWUgYXQgbWFya0BhbHBoYS5keW5kbnMub3JnIC4gUGxlYXNlIHByZWZpeCB0aGUgc3ViamVjdCBsaW5lCndpdGggIk9WNTExOiAiIHNvIHRoYXQgSSBhbSBjZXJ0YWluIHRvIG5vdGljZSB5b3VyIG1lc3NhZ2UuCgpDUkVESVRTOgoKVGhlIGNvZGUgaXMgYmFzZWQgaW4gbm8gc21hbGwgcGFydCBvbiB0aGUgQ1BpQSBkcml2ZXIgYnkgSm9oYW5uZXMgRXJkZmVsdCwKUmFuZHkgRHVubGFwLCBhbmQgb3RoZXJzLiBCaWcgdGhhbmtzIHRvIHRoZW0gZm9yIHRoZWlyIHBpb25lZXJpbmcgd29yayBvbiB0aGF0CmFuZCB0aGUgVVNCIHN0YWNrLiBUaGFua3MgdG8gQnJldCBXYWxsYWNoIGZvciBnZXR0aW5nIGNhbWVyYSByZWcgSU8sIElTT0MsIGFuZAppbWFnZSBjYXB0dXJlIHdvcmtpbmcuIFRoYW5rcyB0byBPcmlvbiBTa3kgTGF3bG9yLCBLZXZpbiBNb29yZSwgYW5kIENsYXVkaW8KTWF0c3Vva2EgZm9yIHRoZWlyIHdvcmsgYXMgd2VsbC4K