From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Return-Path: Subject: Re: [PATCH V3 2/4] ARM64 LPC: LPC driver implementation on Hip06 To: Arnd Bergmann , "will.deacon@arm.com" , "liviu.dudau@arm.com" , bhelgaas@google.com References: <1473855354-150093-1-git-send-email-yuanzhichang@hisilicon.com> <9178320.n4yHmfyPA3@wuerfel> <57E40665.8080005@gmail.com> <1760643.vMTR5o5E9g@wuerfel> From: zhichang Message-ID: <378cda2d-e8fb-af10-01ff-c555def3d639@gmail.com> Date: Sat, 24 Sep 2016 16:00:37 +0800 MIME-Version: 1.0 In-Reply-To: <1760643.vMTR5o5E9g@wuerfel> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "devicetree@vger.kernel.org" , "lorenzo.pieralisi@arm.com" , "benh@kernel.crashing.org" , Gabriele Paoloni , "minyard@acm.org" , "linux-pci@vger.kernel.org" , John Garry , "linux-kernel@vger.kernel.org" , Yuanzhichang , Linuxarm , "xuwei \(O\)" , "linux-serial@vger.kernel.org" , "gregkh@linuxfoundation.org" , "zourongrong@gmail.com" , "kantyzc@163.com" , "linux-arm-kernel@lists.infradead.org" Content-Type: text/plain; charset="utf-8" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+bjorn=helgaas.com@lists.infradead.org List-ID: SGksIEFybmQsCgoKT24gMjAxNuW5tDA55pyIMjPml6UgMTc6NTEsIEFybmQgQmVyZ21hbm4gd3Jv dGU6Cj4gT24gRnJpZGF5LCBTZXB0ZW1iZXIgMjMsIDIwMTYgMTI6Mjc6MTcgQU0gQ0VTVCB6aGlj aGFuZy55dWFuIHdyb3RlOgo+PiBGb3IgdGhpcyBwYXRjaCBza2V0Y2gsIEkgaGF2ZSBhIHF1ZXN0 aW9uLgo+PiBEbyB3ZSBjYWxsIHBjaV9hZGRyZXNzX3RvX3BpbyBpbiBhcmNoX29mX2FkZHJlc3Nf dG9fcGlvIHRvIGdldCB0aGUgCj4+IGNvcnJlc3BvbmRpbmcgbG9naWNhbCBJTyBwb3J0Cj4+IGZv ciBMUEM/Pwo+IAo+IAo+IE5vLCBvZiBjb3Vyc2Ugbm90LCB0aGF0IHdvdWxkIGJlIHNpbGx5Ogo+ IAo+IFRoZSBhcmd1bWVudCB0byBwY2lfYWRkcmVzc190b19waW8oKSBpcyBhIHBoeXNfYWRkcl90 LCBhbmQgd2Ugd2UgZG9uJ3QKPiBoYXZlIG9uZSBiZWNhdXNlIHRoZXJlIGlzIG5vIGFkZHJlc3Mg YXNzb2NpYXRlZCB3aXRoIHlvdXIgUElPLCB0aGF0Cj4gaXMgdGhlIGVudGlyZSBwb2ludCBvZiB5 b3VyIGRyaXZlciEKPiAKb2suIEkgdGhpbmsgSSBrbm93IHlvdSBwb2ludHMuIFRoZSBwaHlzaWNh bCBhZGRyZXNzZXMgb2YgTFBDIGFyZSBvbmx5IHRoZSBMUEMKZG9tYWluIGFkZHJlc3Nlcywgbm90 IHRoZSByZWFsbHkgQ1BVIHBoeXNpY2FsIGFkZHJlc3Nlcy4gVGhhdCBpcyBqdXN0IHdoeSB5b3UK ZG9uJ3Qgc3VwcG9ydCB0aGUgcmFuZ2VzIHByb3BlcnR5IHVzYWdlIGluIHBhdGNoIFYzLiBDb25z ZXF1ZW50bHksIEl0IGlzIG5vdCBzbwpyZWFzb25hYmxlIHRvIGNhbGwgcGNpX2FkZHJlc3NfdG9f cGlvKCkgd2l0aCBMUEMgYWRkcmVzcyBiZWNhdXNlIHRoYXQgZnVuY3Rpb24KaXMgb25seSBzdWl0 YWJsZSBmb3IgY3B1IHBoeXNpY2FsIGFkZHJlc3MuCgpCdXQganVzdCBhcyB5b3Ugc2FpZCBpbiB0 aGUgbmV4dCBlbWFpbCByZXBseSB0byBHYWJyaWVsZSwgIkFueSBJT1JFU09VUkNFX0lPCmFkZHJl c3MgYWx3YXlzIHJlZmVycyB0byB0aGUgbG9naWNhbCBJL08gcG9ydCByYW5nZSBpbiBMaW51eCwg bm90IHRoZSBwaHlzaWNhbAphZGRyZXNzIHRoYXQgaXMgdXNlZCBvbiBhIGJ1cy4iLCBBbnkgZGV2 aWNlcyB3aGljaCBzdXBwb3J0IElPIGFjY2Vzc2VzIHNob3VsZApoYXZlIHRoZWlyIG93biB1bmlx dWUgbG9naWNhbCBJTyByYW5nZSB0byBkcml2ZSB0aGUgY29ycmVzcG9uZGluZyBoYXJkd2FyZS4g SXQKbWVhbnMgdGhhdCB0aGUgZHJpdmVycyBzaG91bGQga25vdyB0aGUgbWFwcGluZyBiZXR3ZWVu IHBoeXNpY2FsIHBvcnQvbWVtb3J5CmFkZHJlc3MgYW5kIGxvZ2ljYWwgSU8gZGVwZW5kIG9uIHRo ZSBkZXZpY2Ugc3BlY2lmaWMgSS9PIG1vZGUuIEF0IHRoaXMgbW9tZW50LApvbmx5IFBDSSBob3N0 IGJyaWRnZSBzZXR1cCBhIGxvZ2ljYWwgSU8gcmFuZ2UgYWxsb2NhdGlvbiBtZWNoYW5pc20gdG8g bWFuaXB1bGF0ZQp0aGlzIGxvZ2ljYWwgSU8gcmFuZ2UsIGFuZCB0aGlzIHdheSBhcHBsaWVzIGNw dSBwaHlzaWNhbCBhZGRyZXNzKG1lbW9yeSkgYXMgdGhlCmlucHV0LiBOb3csIG91ciBMUEMgYWxz byBuZWVkIHN1YnJhbmdlIGZyb20gdGhpcyBjb21tb24gbG9naWNhbCBJTyByYW5nZSwgYnV0Cndp dGggbGVnYWN5IEkvTyBwb3J0IHJhdGhlciB0aGFuIENQVSBtZW1vcnkgYWRkcmVzcy4gT2ssIGl0 IGJyZWFrIHRoZQpwcmVjb25kaXRpb24gb2YgcGNpX3JlZ2lzdGVyX2lvX3JhbmdlL3BjaV9waW9f dG9fYWRkcmVzcywgd2Ugc2hvdWxkIG5vdCB1c2UgdGhlbQpkaXJlY3RseSBmb3IgTFBDIGFsdGhv dWdoIHRoZSBjYWxsaW5nIG9mIHBjaV9waW9fdG9fYWRkcmVzcyBpcyBzaW1wbGUgYW5kIGxlc3MK Y2hhbmdlIG9uIHRoZSByZWxldmFudCBjb2RlLiBXZSBoYWQgZG9uZSBsaWtlIHRoYXQgaW4gVjMu Li4KClNvLCB0aGUga2V5IGlzc3VlIGlzIGhvdyB0byBnZXQgYSBsb2dpY2FsIElPIHN1YnJhbmdl IHdoaWNoIGlzIG5vdCBjb25mbGljdGVkCndpdGggb3RoZXJzLCBzdWNoIGFzIHBjaSBob3N0IGJy aWRnZXM/PwoKSSBsaXN0IHNldmVyYWwgaWRlYXMgZm9yIGRpc2N1c3Npb246CgoxLiByZXNlcnZl IGEgc3BlY2lmaWMgbG9naWNhbCBJTyBzdWJyYW5nZSBmb3IgTFBDCgpJIGRlc2NyaWJlIHRoaXMg aW4gIk5vdGUgMSIgYmVsb3cuIFBsZWFzZSBjaGVjayBpdC4KVGhpcyB3YXkgc2VlbXMgc2ltcGxl IHdpdGhvdXQgbXVjaCBjaGFuZ2VzLCBidXQgaXQgaXMgbm90IGdlbmVyaWMuCgoyLiBzZXR1cCBh IHNlcGFyYXRlIGxvZ2ljYWwgSU8gc3VicmFuZ2UgYWxsb2NhdGlvbiBtZWNoYW5pc20gc3BlY2lm aWMgZm9yIExQQy9JU0EKCkp1c3QgYXMgeW91ciBzdWdnZXN0aW9uIGJlZm9yZSwgYWRkIHRoZSBh cmNoX29mX2FkZHJlc3NfdG9fcGlvKCkgZm9yIHRoZSBkZXZpY2VzCndoaWNoIG9wZXJhdGUgSS9P IHdpdGggbGVnYWN5IEkvTyBwb3J0IGFkZHJlc3MgcmF0aGVyIHRoYW4gbWVtb3J5IGFkZHJlc3Mg aW4KTU1JTyBtb2RlLiBUaGF0IGFyY2hfb2ZfYWRkcmVzc190b19waW8oKSB3aWxsIHJldHVybiBu b24tY29uZmxpY3QgbG9naWNhbCBJTwp3aXRoIFBDSSBob3N0IGJyaWRnZSBhdCBsYXN0LiBCdXQg dGhlIGxvZ2ljYWwgSU8gcmFuZ2UgaXMgZ2xvYmFsLCB0aG9zZQpmdW5jdGlvbnMgZm9yIExQQy9J U0Egc3BlY2lmaWMgbG9naWNhbCBJTyBzdWJyYW5nZSBhbGxvY2F0aW9uIG11c3QgYmUKc3luY2hy b25pemVkIHdpdGggcGNpX3JlZ2lzdGVyX2lvX3JhbmdlL3BjaV9waW9fdG9fYWRkcmVzcyB0byBr bm93IHdoYXQgbG9naWNhbApyYW5nZXMgaGFkIGJlZW4gcG9wdWxhdGVkLiBJdCBpcyBub3QgZ29v ZCBmb3IgdGhlIGltcGxlbWVudCBkaXNwZXJzaW9uIG9uIHNhbWUKaXNzdWUuCgozLiBzZXR1cCBh IG5ldyB1bmRlcmx5aW5nIG1ldGhvZCB0byBjb250cm9sIHRoZSBsb2dpY2FsIElPIHJhbmdlIG1h bmFnZW1lbnQKCkJhc2VkIG9uIHRoZSBleGlzdGluZyByZXNvdXJjZSBtYW5hZ2VtZW50LCBhZGQg YSBzaW1wbGlmaWVkIGxvZ2ljYWwgSU8gcmFuZ2UKbWFuYWdlbWVudCBzdXBwb3J0IHdoaWNoIG9u bHkgcmVxdWVzdCB0aGUgbG9naWNhbCBJTyByYW5nZXMgYWNjb3JkaW5nIHRoZSBJTwpyYW5nZSBz aXplICggc2ltaWxhciB0byBJT1JFU09VUkNFX1NJWkVBTElHTiBtb2RlICksIG5vIG1hdHRlciB3 aGF0IHR5cGUgdGhlCnBoeXNpY2FsIGFkZHJlc3MgaXMuIFRoZW4gcmV2aXNlIHRoZSBjdXJyZW50 IHBjaV9yZWdpc3Rlcl9pb19yYW5nZSB0byBhZG9wdCB0aGlzCm5ldyBtZXRob2QuIE9mLWNvdXJz ZSwgTFBDL0lTQSByZXF1ZXN0IHRoZSBsb2dpY2FsIElPIHdpdGggdGhpcyBuZXcgbWV0aG9kIHRv by4KClRoaXMgaXMganVzdCBhIHByb3Bvc2l0aW9uLiBJdCBpcyBtb3JlIHdvcmtsb2FkIGNvbXBh cmVkIHdpdGggb3RoZXIgc29sdXRpb25zLgoKV2hhdCBkbyB5b3UgdGhpbmsgYWJvdXQgdGhlc2U/ IEFueSBtb3JlIGlkZWFzPwoKCj4gQWxzbywgd2UgYWxyZWFkeSBrbm93IHRoZSBtYXBwaW5nIGJl Y2F1c2UgdGhpcyBpcyB3aGF0IHRoZSBpbmIvb3V0Ygo+IHdvcmthcm91bmQgaXMgbG9va2luZyBh dCwgc28gdGhlcmUgaXMgYWJzb2x1dGVseSBubyByZWFzb24gdG8gY2FsbCBpdAo+IGVpdGhlci4K PiAKPj4gSWYgd2UgZG9uJ3QsIGl0IHNlZW1zIHRoZSBMUEMgc3BlY2lmaWMgSU8gYWRkcmVzcyB3 aWxsIGNvbmZsaWN0IHdpdGggUENJIAo+PiBob3N0IGJyaWRnZXMnIGxvZ2ljYWwgSU8uCj4+Cj4+ IFN1cHBvc2VkIG91ciBMUEMgcG9wdWxhdGVkIHRoZSBJTyByYW5nZSBmcm9tIDB4MTAwIHRvIDB4 M0ZGKCB0aGlzIGlzIAo+PiBub3JtYWwgZm9yIElTQSBzaW1pbGFyCj4+IGRldmljZXMpLCBhZnRl ciBhcmNoX29mX2FkZHJlc3NfdG9fcGlvKCksIHRoZSByLT5zdGFydCB3aWxsIGJlIHNldCBhcyAK Pj4gMHgxMDAsIHItPmVuZCB3aWxsIGJlIHNldCBhcwo+PiAweDNGRi4gIEFuZCBpZiB0aGVyZSBp cyBvbmUgUENJIGhvc3QgYnJpZGdlIHdobyByZXF1ZXN0IGEgSU8gd2luZG93IHNpemUgCj4+IG92 ZXIgMHg0MDAgYXQgdGhlIHNhbWUKPj4gdGltZSwgdGhlICBjb3JyZXNwb25kaW5nIHItPnN0YXJ0 IGFuZCByLT5lbmQgd2lsbCBiZSBzZXQgYXMgMHgwLCAweDNGRiAKPj4gYWZ0ZXIgb2ZfYWRkcmVz c190b19yZXNvdXJjZQo+PiBmb3IgdGhpcyBob3N0IGJyaWRnZS4gIFRoZW4gdGhlIElPIGNvbmZs aWN0IGhhcHBlbnMuCj4gCj4gWW91IHdvdWxkIHN0aWxsIG5lZWQgdG8gcmVzZXJ2ZSBzb21lIHNw YWNlIGluIHRoZSBpb19yYW5nZV9saXN0Cj4gdG8gYXZvaWQgcG9zc2libGUgY29uZmxpY3RzLCB3 aGljaCBpcyBhIGJpdCB1Z2x5IHdpdGggdGhlIGN1cnJlbnQKPiBkZWZpbml0aW9uIG9mIHBjaV9y ZWdpc3Rlcl9pb19yYW5nZSwgYnV0IEknbSBzdXJlIGNhbiBiZSBkb25lLgo+IAoKTm90ZSAxKSBE byB5b3UgcmVtZW1iZXIgcGF0Y2ggVjI/IFRoZXJlLCBJIG1vZGlmaWVkIHRoZSBwY2kuYyBsaWtl IHRoYXQgdG8KcmVzZXJ2ZSAwIC0gUENJQklPU19NSU5fSU8gKGl0IGlzIDB4MTAwMCkgOgoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3BjaS5jIGIvZHJpdmVycy9wY2kvcGNpLmMKaW5kZXggYWFi OWQ1MS4uYWMyZTU2OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvcGNpLmMKKysrIGIvZHJpdmVy cy9wY2kvcGNpLmMKQEAgLTMyMjEsNyArMzIyMSw3IEBAIGludCBfX3dlYWsgcGNpX3JlZ2lzdGVy X2lvX3JhbmdlKHBoeXNfYWRkcl90IGFkZHIsIHJlc291cmMKCiAjaWZkZWYgUENJX0lPQkFTRQog ICAgICAgIHN0cnVjdCBpb19yYW5nZSAqcmFuZ2U7Ci0gICAgICAgcmVzb3VyY2Vfc2l6ZV90IGFs bG9jYXRlZF9zaXplID0gMDsKKyAgICAgICByZXNvdXJjZV9zaXplX3QgYWxsb2NhdGVkX3NpemUg PSBQQ0lCSU9TX01JTl9JTzsKCiAgICAgICAgLyogY2hlY2sgaWYgdGhlIHJhbmdlIGhhc24ndCBi ZWVuIHByZXZpb3VzbHkgcmVjb3JkZWQgKi8KICAgICAgICBzcGluX2xvY2soJmlvX3JhbmdlX2xv Y2spOwpAQCAtMzI3MCw3ICszMjcwLDcgQEAgcGh5c19hZGRyX3QgcGNpX3Bpb190b19hZGRyZXNz KHVuc2lnbmVkIGxvbmcgcGlvKQoKICNpZmRlZiBQQ0lfSU9CQVNFCiAgICAgICAgc3RydWN0IGlv X3JhbmdlICpyYW5nZTsKLSAgICAgICByZXNvdXJjZV9zaXplX3QgYWxsb2NhdGVkX3NpemUgPSAw OworICAgICAgIHJlc291cmNlX3NpemVfdCBhbGxvY2F0ZWRfc2l6ZSA9IFBDSUJJT1NfTUlOX0lP OwoKICAgICAgICBpZiAocGlvID4gSU9fU1BBQ0VfTElNSVQpCiAgICAgICAgICAgICAgICByZXR1 cm4gYWRkcmVzczsKQEAgLTMyOTMsNyArMzI5Myw3IEBAIHVuc2lnbmVkIGxvbmcgX193ZWFrIHBj aV9hZGRyZXNzX3RvX3BpbyhwaHlzX2FkZHJfdCBhZGRyZXMKIHsKICNpZmRlZiBQQ0lfSU9CQVNF CiAgICAgICAgc3RydWN0IGlvX3JhbmdlICpyZXM7Ci0gICAgICAgcmVzb3VyY2Vfc2l6ZV90IG9m ZnNldCA9IDA7CisgICAgICAgcmVzb3VyY2Vfc2l6ZV90IG9mZnNldCA9IFBDSUJJT1NfTUlOX0lP OwogICAgICAgIHVuc2lnbmVkIGxvbmcgYWRkciA9IC0xOwoKICAgICAgICBzcGluX2xvY2soJmlv X3JhbmdlX2xvY2spOwoKQmFzZWQgb24gdGhpcywgYSBleGNsdXNpdmUgbG9naWNhbCBJTyBzdWJy YW5nZSBpcyBmb3IgTFBDIG5vdy4gVGhlbiB3ZSBjZXJ0YWlubHkKY2FuIGFkZCBzb21lIHNwZWNp YWwgaGFuZGxpbmcgaW4gX19vZl9hZGRyZXNzX3RvX3Jlc291cmNlIG9yCl9fb2ZfdHJhbnNsYXRl X2FkZHJlc3MgLS0+IG9mX3RyYW5zbGF0ZV9vbmUgdG8gcmV0dXJuIHRoZSB1bnRyYW5zbGF0ZWQg TFBDL0lTQQpJTyBhZGRyZXNzLiBCdXQgdG8gYmUgaG9uZXN0LCBJIHRoaW5rIHdlIGRvbid0IG5l ZWQgdGhpcyBzcGVjaWFsIGhhbmRsaW5nIGluCmFkZHJlc3MuYyBhbnltb3JlLiBXZSBoYWQga25v d24gdGhlIExQQy9JU0EgSU8gaXMgMToxIHRvIGxvZ2ljYWwgSU8sIGp1c3QgdGhpbmsKYW55IGxv Z2ljYWwgSU8gcG9ydCBhbW9uZyAwIC0gMHgxMDAwIHNob3VsZCBjYWxsIHRoZSBMUEMgcmVnaXN0 ZXJlZCBJL08gaG9va3MgaW4KdGhlIG5ldyBpbi9vdXQoKS4KCkZ1cnRoZXJtb3JlLCB3ZSBjYW4g bWFrZSB0aGUgcmVzZXJ2YXRpb24gaXMgbm90IGZpeGVkIGFzIFBDSUJJT1NfTUlOX0lPLiBJZiB0 aGUKTFBDL0lTQSBwcm9iaW5nIGlzIHJ1biBiZWZvcmUgUENJIGhvc3QgYnJpZGdlIHByb2Jpbmcs IHdlIGNhbiByZXNlcnZlIGEKbm9uLWZpeGVkIGxvZ2NpYWwgSU8gc3VicmFuZ2Ugd2hhdCBMUEMv SVNBIGFzayBmb3IuCgpUaGlzIHNvbHV0aW9uIGlzIGJhc2VkIG9uIGFuIGFzc3VtcHRpb24gdGhh dCBubyBhbnkgb3RoZXIgZGV2aWNlcyBoYXZlIHRvCnJlcXVlc3QgdGhlIHNwZWNpZmljIGxvZ2lj YWwgSU8gc3VicmFuZ2UgZm9yIExQQy9JU0EuIFByb2JhYmx5IHRoaXMgYXNzdW1wdGlvbgppcyBv ayBvbiBhcm02NCwgeW91IGtub3duLCB0aGVyZSBpcyBubyByZWFsIElPIHNwYWNlIGFzIFg4Ni4g QnV0IGFueXdheSwgdGhpcwpyZXNlcnZhdGlvbiBpcyBub3Qgc28gZ2VuZXJpYywgZGVwZW5kZWQg b24gc29tZSBzcGVjaWFsIGhhbmRsaW5nLgoKRG9lcyB0aGlzIGlkZWEgbWF0Y2ggeW91ciBjb21t ZW50cz8/CgoKPiBPbmUgd2F5IEkgY2FuIHRoaW5rIG9mIHdvdWxkIGJlIHRvIGNoYW5nZSBwY2lf cmVnaXN0ZXJfaW9fcmFuZ2UoKQo+IHRvIGp1c3QgcmV0dXJuIHRoZSBsb2dpY2FsIHBvcnQgbnVt YmVyIGRpcmVjdGx5IChpdCBhbHJlYWR5Cj4ga25vd3MgaXQhKSwgYW5kIHBhc3MgYW4gaW52YWxp ZCBwaHlzaWNhbCBhZGRyZXNzIChlLmcuIAo+ICNkZWZpbmUgSVNBX1dPUktBUk9VTkRfSU9fUE9S VF9XSU5ET1cgLTB4MTAwMDApIGludG8gaXQgZm9yCj4gaW52YWxpZCB0cmFuc2xhdGlvbnMuCj4g CgpJIGFtIG5vdCBzbyBjbGVhciBrbm93IHlvdXIgaWRlYSBoZXJlLiAgRG8geW91IHdhbnQgdG8g c2VsZWN0IGFuIHVucG9wdWxhdGVkIENQVQphZGRyZXNzIGFzIHRoZSBwYXJlbnQgYWRkcmVzcyBp biByYW5nZSBwcm9wZXJ0eT8/IG9yIGFueXRoaW5nIGVsc2U/Pz8KCgo+IEFub3RoZXIgYWx0ZXJu YXRpdmUgdGhhdCBqdXN0IG9jY3VycmVkIHRvIG1lIHdvdWxkIGJlIHRvIG1vdmUKPiB0aGUgcGNp X2FkZHJlc3NfdG9fcGlvKCkgY2FsbCBmcm9tIF9fb2ZfYWRkcmVzc190b19yZXNvdXJjZSgpCj4g aW50byBvZl9idXNfcGNpX3RyYW5zbGF0ZSgpIGFuZCB0aGVuIGRvIHRoZSBzcGVjaWFsIGhhbmRs aW5nCj4gZm9yIHRoZSBJU0EvTFBDIGJ1cyBpbiBvZl9idXNfaXNhX3RyYW5zbGF0ZSgpLgoKQXMg Zm9yIHRoaXMgaWRlYSwgZG8geW91IG1lYW4gdGhhdCBvZl90cmFuc2xhdGVfYWRkcmVzcyB3aWxs IGRpcmVjdGx5IHJldHVybiB0aGUKZmluYWwgbG9naWNhbCBJTyBzdGFydCBhZGRyZXNzPz8gSXQg c2VlbXMgdG8gZXh0ZW5kIHRoZSBkZWZpbml0aW9uIG9mCm9mX3RyYW5zbGF0ZV9hZGRyZXNzLgoK ClRoYW5rcywKWmhpY2hhbmcKCj4gCj4gCUFybmQKPiAKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0Cmxp bnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK