Return-Path: Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: (qmail 2951 invoked from network); 24 Mar 2011 11:18:01 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 24 Mar 2011 11:18:01 -0000 Received: (qmail 29654 invoked by uid 500); 24 Mar 2011 11:17:59 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 29630 invoked by uid 500); 24 Mar 2011 11:17:59 -0000 Mailing-List: contact user-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@cassandra.apache.org Delivered-To: mailing list user@cassandra.apache.org Received: (qmail 29622 invoked by uid 99); 24 Mar 2011 11:17:59 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 24 Mar 2011 11:17:59 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of adam.briffett@gmail.com designates 209.85.213.172 as permitted sender) Received: from [209.85.213.172] (HELO mail-yx0-f172.google.com) (209.85.213.172) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 24 Mar 2011 11:17:51 +0000 Received: by yxk30 with SMTP id 30so4445617yxk.31 for ; Thu, 24 Mar 2011 04:17:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:date:message-id:subject:from:to :content-type; bh=1HY9BM4td7/vUEGlKsdr4VS87oZ4Cxpdwd5RyuDOptY=; b=gCQ34LlrxRB4/64zFjAqCTv0KtHIQ+TR36RIgupOG8/xW1BpZWecMreICOYsfUHYQy YlVKnaI1cQ6XpNCfJ79Y77zjTrkzU0pJv36A4C9eTgXsnz1eqK6btV6wFNf/71Zw6wOP +K/FXW+ArsVTCiIi0fAyjmdjVm0Z/Bclj9PYI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=LMpRN9IvUCm/gqPqOkvEfXY9mD7r0jue6ZrWiVD7BvVZGepRLwCeB04bX1G3p5DHuL WCKOsVVAfwav7VdZusXEwsEffzy0VEJBe8cOW6Qngh0s0Rr+CN6M4wqRFAkEi4AQDra1 zWy4oPRFragbgkHmUOg72kQBCGeanlM3KrWVs= MIME-Version: 1.0 Received: by 10.90.247.28 with SMTP id u28mr3187882agh.117.1300965450329; Thu, 24 Mar 2011 04:17:30 -0700 (PDT) Received: by 10.91.168.6 with HTTP; Thu, 24 Mar 2011 04:17:30 -0700 (PDT) Date: Thu, 24 Mar 2011 11:17:30 +0000 Message-ID: Subject: Configuration for large number of inserts From: Adam Briffett To: user@cassandra.apache.org Content-Type: multipart/mixed; boundary=0016363b8796882d6d049f389fb5 X-Virus-Checked: Checked by ClamAV on apache.org --0016363b8796882d6d049f389fb5 Content-Type: text/plain; charset=ISO-8859-1 Hi, When doing bulk inserts of data using Pelops (~1000 million rows, column counts varying from 1 - 100,000 but more skewed towards fewer columns), we're ultimately getting a server OOME using 0.7.4. I've attempted to follow other pointers on this issue (reducing threshold before memtables flushed to disk, increasing heap space), turned off compaction (although it seems to still be happening), and also tried reducing the value of index_interval to avoid using up space. We're using a single box for this test with attached .yaml and a heap size of 2GB, we're also using a single keyspace and column family, the settings for which are below (we're creating it using Pelops rather than in the .yaml): cf.column_type = "Standard"; cf.comparator_type = "UTF8Type"; cf.key_cache_size = 200d; cf.row_cache_size = 16d; cf.memtable_throughput_in_mb = 128; cf.memtable_operations_in_millions = 0.3; cf.min_compaction_threshold = 0; cf.max_compaction_threshold = 0; One issue is that compaction still appears to be happening, as if I check using nodetool compactionstats there are minor compactions piling up (also these get into the thousands, it seems they're being created faster than they can be addressed) Can anyone suggest anywhere we might be going wrong? As I say, at the present we're just looking to do a bulk insert, no read activity until the writes have completed. Thanks in advance, Adam --0016363b8796882d6d049f389fb5 Content-Type: application/octet-stream; name="cassandra.yaml" Content-Disposition: attachment; filename="cassandra.yaml" Content-Transfer-Encoding: base64 X-Attachment-Id: f_glnl5kg80 IyBDYXNzYW5kcmEgc3RvcmFnZSBjb25maWcgWUFNTCANCg0KIyBOT1RFOg0KIyAgIFNlZSBodHRw Oi8vd2lraS5hcGFjaGUub3JnL2Nhc3NhbmRyYS9TdG9yYWdlQ29uZmlndXJhdGlvbiBmb3INCiMg ICBmdWxsIGV4cGxhbmF0aW9ucyBvZiBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMNCiMgL05PVEUN Cg0KIyBUaGUgbmFtZSBvZiB0aGUgY2x1c3Rlci4gVGhpcyBpcyBtYWlubHkgdXNlZCB0byBwcmV2 ZW50IG1hY2hpbmVzIGluDQojIG9uZSBsb2dpY2FsIGNsdXN0ZXIgZnJvbSBqb2luaW5nIGFub3Ro ZXIuDQpjbHVzdGVyX25hbWU6ICdUZXN0IENsdXN0ZXInDQoNCiMgWW91IHNob3VsZCBhbHdheXMg c3BlY2lmeSBJbml0aWFsVG9rZW4gd2hlbiBzZXR0aW5nIHVwIGEgcHJvZHVjdGlvbg0KIyBjbHVz dGVyIGZvciB0aGUgZmlyc3QgdGltZSwgYW5kIG9mdGVuIHdoZW4gYWRkaW5nIGNhcGFjaXR5IGxh dGVyLg0KIyBUaGUgcHJpbmNpcGxlIGlzIHRoYXQgZWFjaCBub2RlIHNob3VsZCBiZSBnaXZlbiBh biBlcXVhbCBzbGljZSBvZg0KIyB0aGUgdG9rZW4gcmluZzsgc2VlIGh0dHA6Ly93aWtpLmFwYWNo ZS5vcmcvY2Fzc2FuZHJhL09wZXJhdGlvbnMNCiMgZm9yIG1vcmUgZGV0YWlscy4NCiMNCiMgSWYg YmxhbmssIENhc3NhbmRyYSB3aWxsIHJlcXVlc3QgYSB0b2tlbiBiaXNlY3RpbmcgdGhlIHJhbmdl IG9mDQojIHRoZSBoZWF2aWVzdC1sb2FkZWQgZXhpc3Rpbmcgbm9kZS4gIElmIHRoZXJlIGlzIG5v IGxvYWQgaW5mb3JtYXRpb24NCiMgYXZhaWxhYmxlLCBzdWNoIGFzIGlzIHRoZSBjYXNlIHdpdGgg YSBuZXcgY2x1c3RlciwgaXQgd2lsbCBwaWNrDQojIGEgcmFuZG9tIHRva2VuLCB3aGljaCB3aWxs IGxlYWQgdG8gaG90IHNwb3RzLg0KaW5pdGlhbF90b2tlbjoNCg0KIyBTZXQgdG8gdHJ1ZSB0byBt YWtlIG5ldyBbbm9uLXNlZWRdIG5vZGVzIGF1dG9tYXRpY2FsbHkgbWlncmF0ZSBkYXRhDQojIHRv IHRoZW1zZWx2ZXMgZnJvbSB0aGUgcHJlLWV4aXN0aW5nIG5vZGVzIGluIHRoZSBjbHVzdGVyLiAg RGVmYXVsdHMNCiMgdG8gZmFsc2UgYmVjYXVzZSB5b3UgY2FuIG9ubHkgYm9vdHN0cmFwIE4gbWFj aGluZXMgYXQgYSB0aW1lIGZyb20NCiMgYW4gZXhpc3RpbmcgY2x1c3RlciBvZiBOLCBzbyBpZiB5 b3UgYXJlIGJyaW5naW5nIHVwIGEgY2x1c3RlciBvZg0KIyAxMCBtYWNoaW5lcyB3aXRoIDMgc2Vl ZHMgeW91IHdvdWxkIGhhdmUgdG8gZG8gaXQgaW4gc3RhZ2VzLiAgTGVhdmluZw0KIyB0aGlzIG9m ZiBmb3IgdGhlIGluaXRpYWwgc3RhcnQgc2ltcGxpZmllcyB0aGF0Lg0KYXV0b19ib290c3RyYXA6 IGZhbHNlDQoNCiMgU2VlIGh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvY2Fzc2FuZHJhL0hpbnRlZEhh bmRvZmYNCmhpbnRlZF9oYW5kb2ZmX2VuYWJsZWQ6IHRydWUNCiMgdGhpcyBkZWZpbmVzIHRoZSBt YXhpbXVtIGFtb3VudCBvZiB0aW1lIGEgZGVhZCBob3N0IHdpbGwgaGF2ZSBoaW50cw0KIyBnZW5l cmF0ZWQuICBBZnRlciBpdCBoYXMgYmVlbiBkZWFkIHRoaXMgbG9uZywgaGludHMgd2lsbCBiZSBk cm9wcGVkLg0KbWF4X2hpbnRfd2luZG93X2luX21zOiAzNjAwMDAwICMgb25lIGhvdXINCiMgU2xl ZXAgdGhpcyBsb25nIGFmdGVyIGRlbGl2ZXJpbmcgZWFjaCByb3cgb3Igcm93IGZyYWdtZW50DQpo aW50ZWRfaGFuZG9mZl90aHJvdHRsZV9kZWxheV9pbl9tczogNTANCg0KIyBhdXRoZW50aWNhdGlv biBiYWNrZW5kLCBpbXBsZW1lbnRpbmcgSUF1dGhlbnRpY2F0b3I7IHVzZWQgdG8gaWRlbnRpZnkg dXNlcnMNCmF1dGhlbnRpY2F0b3I6IG9yZy5hcGFjaGUuY2Fzc2FuZHJhLmF1dGguQWxsb3dBbGxB dXRoZW50aWNhdG9yDQoNCiMgYXV0aG9yaXphdGlvbiBiYWNrZW5kLCBpbXBsZW1lbnRpbmcgSUF1 dGhvcml0eTsgdXNlZCB0byBsaW1pdCBhY2Nlc3MvcHJvdmlkZSBwZXJtaXNzaW9ucw0KYXV0aG9y aXR5OiBvcmcuYXBhY2hlLmNhc3NhbmRyYS5hdXRoLkFsbG93QWxsQXV0aG9yaXR5DQoNCiMgVGhl IHBhcnRpdGlvbmVyIGlzIHJlc3BvbnNpYmxlIGZvciBkaXN0cmlidXRpbmcgcm93cyAoYnkga2V5 KSBhY3Jvc3MNCiMgbm9kZXMgaW4gdGhlIGNsdXN0ZXIuICBBbnkgSVBhcnRpdGlvbmVyIG1heSBi ZSB1c2VkLCBpbmNsdWRpbmcgeW91cg0KIyBvd24gYXMgbG9uZyBhcyBpdCBpcyBvbiB0aGUgY2xh c3NwYXRoLiAgT3V0IG9mIHRoZSBib3gsIENhc3NhbmRyYQ0KIyBwcm92aWRlcyBvcmcuYXBhY2hl LmNhc3NhbmRyYS5kaHQuUmFuZG9tUGFydGl0aW9uZXINCiMgb3JnLmFwYWNoZS5jYXNzYW5kcmEu ZGh0LkJ5dGVPcmRlcmVkUGFydGl0aW9uZXIsDQojIG9yZy5hcGFjaGUuY2Fzc2FuZHJhLmRodC5P cmRlclByZXNlcnZpbmdQYXJ0aXRpb25lciAoZGVwcmVjYXRlZCksDQojIGFuZCBvcmcuYXBhY2hl LmNhc3NhbmRyYS5kaHQuQ29sbGF0aW5nT3JkZXJQcmVzZXJ2aW5nUGFydGl0aW9uZXINCiMgKGRl cHJlY2F0ZWQpLg0KIyANCiMgLSBSYW5kb21QYXJ0aXRpb25lciBkaXN0cmlidXRlcyByb3dzIGFj cm9zcyB0aGUgY2x1c3RlciBldmVubHkgYnkgbWQ1Lg0KIyAgIFdoZW4gaW4gZG91YnQsIHRoaXMg aXMgdGhlIGJlc3Qgb3B0aW9uLg0KIyAtIEJ5dGVPcmRlcmVkUGFydGl0aW9uZXIgb3JkZXJzIHJv d3MgbGV4aWNhbGx5IGJ5IGtleSBieXRlcy4gIEJPUCBhbGxvd3MNCiMgICBzY2FubmluZyByb3dz IGluIGtleSBvcmRlciwgYnV0IHRoZSBvcmRlcmluZyBjYW4gZ2VuZXJhdGUgaG90IHNwb3RzDQoj ICAgZm9yIHNlcXVlbnRpYWwgaW5zZXJ0aW9uIHdvcmtsb2Fkcy4NCiMgLSBPcmRlclByZXNlcnZp bmdQYXJ0aXRpb25lciBpcyBhbiBvYnNvbGV0ZSBmb3JtIG9mIEJPUCwgdGhhdCBzdG9yZXMNCiMg LSBrZXlzIGluIGEgbGVzcy1lZmZpY2llbnQgZm9ybWF0IGFuZCBvbmx5IHdvcmtzIHdpdGgga2V5 cyB0aGF0IGFyZQ0KIyAgIFVURjgtZW5jb2RlZCBTdHJpbmdzLg0KIyAtIENvbGxhdGluZ09QUCBj b2xhdGVzIGFjY29yZGluZyB0byBFTixVUyBydWxlcyByYXRoZXIgdGhhbiBsZXhpY2FsIGJ5dGUN CiMgICBvcmRlcmluZy4gIFVzZSB0aGlzIGFzIGFuIGV4YW1wbGUgaWYgeW91IG5lZWQgY3VzdG9t IGNvbGxhdGlvbi4NCiMNCiMgU2VlIGh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvY2Fzc2FuZHJhL09w ZXJhdGlvbnMgZm9yIG1vcmUgb24NCiMgcGFydGl0aW9uZXJzIGFuZCB0b2tlbiBzZWxlY3Rpb24u DQpwYXJ0aXRpb25lcjogb3JnLmFwYWNoZS5jYXNzYW5kcmEuZGh0LlJhbmRvbVBhcnRpdGlvbmVy DQoNCiMgZGlyZWN0b3JpZXMgd2hlcmUgQ2Fzc2FuZHJhIHNob3VsZCBzdG9yZSBkYXRhIG9uIGRp c2suDQpkYXRhX2ZpbGVfZGlyZWN0b3JpZXM6DQogICAgLSAvdmFyL2xpYi9jYXNzYW5kcmEvZGF0 YQ0KDQojIGNvbW1pdCBsb2cNCmNvbW1pdGxvZ19kaXJlY3Rvcnk6IC92YXIvbGliL2Nhc3NhbmRy YS9jb21taXRsb2cNCg0KIyBzYXZlZCBjYWNoZXMNCnNhdmVkX2NhY2hlc19kaXJlY3Rvcnk6IC92 YXIvbGliL2Nhc3NhbmRyYS9zYXZlZF9jYWNoZXMNCg0KIyBTaXplIHRvIGFsbG93IGNvbW1pdGxv ZyB0byBncm93IHRvIGJlZm9yZSBjcmVhdGluZyBhIG5ldyBzZWdtZW50IA0KY29tbWl0bG9nX3Jv dGF0aW9uX3RocmVzaG9sZF9pbl9tYjogMjU2DQoNCiMgY29tbWl0bG9nX3N5bmMgbWF5IGJlIGVp dGhlciAicGVyaW9kaWMiIG9yICJiYXRjaC4iIA0KIyBXaGVuIGluIGJhdGNoIG1vZGUsIENhc3Nh bmRyYSB3b24ndCBhY2sgd3JpdGVzIHVudGlsIHRoZSBjb21taXQgbG9nDQojIGhhcyBiZWVuIGZz eW5jZWQgdG8gZGlzay4gIEl0IHdpbGwgd2FpdCB1cCB0bw0KIyBDb21taXRMb2dTeW5jQmF0Y2hX aW5kb3dJbk1TIG1pbGxpc2Vjb25kcyBmb3Igb3RoZXIgd3JpdGVzLCBiZWZvcmUNCiMgcGVyZm9y bWluZyB0aGUgc3luYy4NCmNvbW1pdGxvZ19zeW5jOiBwZXJpb2RpYw0KDQojIHRoZSBvdGhlciBv cHRpb24gaXMgInBlcmlvZGljIiB3aGVyZSB3cml0ZXMgbWF5IGJlIGFja2VkIGltbWVkaWF0ZWx5 DQojIGFuZCB0aGUgQ29tbWl0TG9nIGlzIHNpbXBseSBzeW5jZWQgZXZlcnkgY29tbWl0bG9nX3N5 bmNfcGVyaW9kX2luX21zDQojIG1pbGxpc2Vjb25kcy4NCmNvbW1pdGxvZ19zeW5jX3BlcmlvZF9p bl9tczogMTAwMDANCg0KIyBlbWVyZ2VuY3kgcHJlc3N1cmUgdmFsdmU6IGVhY2ggdGltZSBoZWFw IHVzYWdlIGFmdGVyIGEgZnVsbCAoQ01TKQ0KIyBnYXJiYWdlIGNvbGxlY3Rpb24gaXMgYWJvdmUg dGhpcyBmcmFjdGlvbiBvZiB0aGUgbWF4LCBDYXNzYW5kcmEgd2lsbA0KIyBmbHVzaCB0aGUgbGFy Z2VzdCBtZW10YWJsZXMuICANCiMNCiMgU2V0IHRvIDEuMCB0byBkaXNhYmxlLiAgU2V0dGluZyB0 aGlzIGxvd2VyIHRoYW4NCiMgQ01TSW5pdGlhdGluZ09jY3VwYW5jeUZyYWN0aW9uIGlzIG5vdCBs aWtlbHkgdG8gYmUgdXNlZnVsLg0KIw0KIyBSRUxZSU5HIE9OIFRISVMgQVMgWU9VUiBQUklNQVJZ IFRVTklORyBNRUNIQU5JU00gV0lMTCBXT1JLIFBPT1JMWToNCiMgaXQgaXMgbW9zdCBlZmZlY3Rp dmUgdW5kZXIgbGlnaHQgdG8gbW9kZXJhdGUgbG9hZCwgb3IgcmVhZC1oZWF2eQ0KIyB3b3JrbG9h ZHM7IHVuZGVyIHRydWx5IG1hc3NpdmUgd3JpdGUgbG9hZCwgaXQgd2lsbCBvZnRlbiBiZSB0b28N CiMgbGl0dGxlLCB0b28gbGF0ZS4NCmZsdXNoX2xhcmdlc3RfbWVtdGFibGVzX2F0OiAwLjc1DQoN CiMgZW1lcmdlbmN5IHByZXNzdXJlIHZhbHZlICMyOiB0aGUgZmlyc3QgdGltZSBoZWFwIHVzYWdl IGFmdGVyIGEgZnVsbA0KIyAoQ01TKSBnYXJiYWdlIGNvbGxlY3Rpb24gaXMgYWJvdmUgdGhpcyBm cmFjdGlvbiBvZiB0aGUgbWF4LA0KIyBDYXNzYW5kcmEgd2lsbCByZWR1Y2UgY2FjaGUgbWF4aW11 bSBfY2FwYWNpdHlfIHRvIHRoZSBnaXZlbiBmcmFjdGlvbg0KIyBvZiB0aGUgY3VycmVudCBfc2l6 ZV8uICBTaG91bGQgdXN1YWxseSBiZSBzZXQgc3Vic3RhbnRpYWxseSBhYm92ZQ0KIyBmbHVzaF9s YXJnZXN0X21lbXRhYmxlc19hdCwgc2luY2UgdGhhdCB3aWxsIGhhdmUgbGVzcyBsb25nLXRlcm0N CiMgaW1wYWN0IG9uIHRoZSBzeXN0ZW0uICANCiMgDQojIFNldCB0byAxLjAgdG8gZGlzYWJsZS4g IFNldHRpbmcgdGhpcyBsb3dlciB0aGFuDQojIENNU0luaXRpYXRpbmdPY2N1cGFuY3lGcmFjdGlv biBpcyBub3QgbGlrZWx5IHRvIGJlIHVzZWZ1bC4NCnJlZHVjZV9jYWNoZV9zaXplc19hdDogMC44 NQ0KcmVkdWNlX2NhY2hlX2NhcGFjaXR5X3RvOiAwLjYNCg0KIyBBZGRyZXNzZXMgb2YgaG9zdHMg dGhhdCBhcmUgZGVlbWVkIGNvbnRhY3QgcG9pbnRzLg0KIyBDYXNzYW5kcmEgbm9kZXMgdXNlIHRo aXMgbGlzdCBvZiBob3N0cyB0byBmaW5kIGVhY2ggb3RoZXIgYW5kIGxlYXJuDQojIHRoZSB0b3Bv bG9neSBvZiB0aGUgcmluZy4gIFlvdSBtdXN0IGNoYW5nZSB0aGlzIGlmIHlvdSBhcmUgcnVubmlu Zw0KIyBtdWx0aXBsZSBub2RlcyENCnNlZWRzOg0KICAgIC0gMTI3LjAuMC4xDQoNCiMgQWNjZXNz IG1vZGUuICBtbWFwcGVkIGkvbyBpcyBzdWJzdGFudGlhbGx5IGZhc3RlciwgYnV0IG9ubHkgcHJh Y3RpY2FsIG9uDQojIGEgNjRiaXQgbWFjaGluZSAod2hpY2ggbm90YWJseSBkb2VzIG5vdCBpbmNs dWRlIEVDMiAic21hbGwiIGluc3RhbmNlcykNCiMgb3IgcmVsYXRpdmVseSBzbWFsbCBkYXRhc2V0 cy4gICJhdXRvIiwgdGhlIHNhZmUgY2hvaWNlLCB3aWxsIGVuYWJsZQ0KIyBtbWFwcGluZyBvbiBh IDY0Yml0IEpWTS4gIE90aGVyIHZhbHVlcyBhcmUgIm1tYXAiLCAibW1hcF9pbmRleF9vbmx5Ig0K IyAod2hpY2ggbWF5IGFsbG93IHlvdSB0byBnZXQgcGFydCBvZiB0aGUgYmVuZWZpdHMgb2YgbW1h cCBvbiBhIDMyYml0DQojIG1hY2hpbmUgYnkgbW1hcHBpbmcgb25seSBpbmRleCBmaWxlcykgYW5k ICJzdGFuZGFyZCIuDQojIChUaGUgYnVmZmVyIHNpemUgc2V0dGluZ3MgdGhhdCBmb2xsb3cgb25s eSBhcHBseSB0byBzdGFuZGFyZCwNCiMgbm9uLW1tYXBwZWQgaS9vLikNCmRpc2tfYWNjZXNzX21v ZGU6IGF1dG8NCg0KIyBGb3Igd29ya2xvYWRzIHdpdGggbW9yZSBkYXRhIHRoYW4gY2FuIGZpdCBp biBtZW1vcnksIENhc3NhbmRyYSdzDQojIGJvdHRsZW5lY2sgd2lsbCBiZSByZWFkcyB0aGF0IG5l ZWQgdG8gZmV0Y2ggZGF0YSBmcm9tDQojIGRpc2suICJjb25jdXJyZW50X3JlYWRzIiBzaG91bGQg YmUgc2V0IHRvICgxNiAqIG51bWJlcl9vZl9kcml2ZXMpIGluDQojIG9yZGVyIHRvIGFsbG93IHRo ZSBvcGVyYXRpb25zIHRvIGVucXVldWUgbG93IGVub3VnaCBpbiB0aGUgc3RhY2sNCiMgdGhhdCB0 aGUgT1MgYW5kIGRyaXZlcyBjYW4gcmVvcmRlciB0aGVtLg0KIw0KIyBPbiB0aGUgb3RoZXIgaGFu ZCwgc2luY2Ugd3JpdGVzIGFyZSBhbG1vc3QgbmV2ZXIgSU8gYm91bmQsIHRoZSBpZGVhbA0KIyBu dW1iZXIgb2YgImNvbmN1cnJlbnRfd3JpdGVzIiBpcyBkZXBlbmRlbnQgb24gdGhlIG51bWJlciBv ZiBjb3JlcyBpbg0KIyB5b3VyIHN5c3RlbTsgKDggKiBudW1iZXJfb2ZfY29yZXMpIGlzIGEgZ29v ZCBydWxlIG9mIHRodW1iLg0KY29uY3VycmVudF9yZWFkczogMzINCmNvbmN1cnJlbnRfd3JpdGVz OiAzMg0KDQojIFRoaXMgc2V0cyB0aGUgYW1vdW50IG9mIG1lbXRhYmxlIGZsdXNoIHdyaXRlciB0 aHJlYWRzLiAgVGhlc2Ugd2lsbA0KIyBiZSBibG9ja2VkIGJ5IGRpc2sgaW8sIGFuZCBlYWNoIG9u ZSB3aWxsIGhvbGQgYSBtZW10YWJsZSBpbiBtZW1vcnkNCiMgd2hpbGUgYmxvY2tlZC4gSWYgeW91 IGhhdmUgYSBsYXJnZSBoZWFwIGFuZCBtYW55IGRhdGEgZGlyZWN0b3JpZXMsDQojIHlvdSBjYW4g aW5jcmVhc2UgdGhpcyB2YWx1ZSBmb3IgYmV0dGVyIGZsdXNoIHBlcmZvcm1hbmNlLg0KIyBCeSBk ZWZhdWx0IHRoaXMgd2lsbCBiZSBzZXQgdG8gdGhlIGFtb3VudCBvZiBkYXRhIGRpcmVjdG9yaWVz IGRlZmluZWQuDQojbWVtdGFibGVfZmx1c2hfd3JpdGVyczogMQ0KDQojIEJ1ZmZlciBzaXplIHRv IHVzZSB3aGVuIHBlcmZvcm1pbmcgY29udGlndW91cyBjb2x1bW4gc2xpY2VzLiANCiMgSW5jcmVh c2UgdGhpcyB0byB0aGUgc2l6ZSBvZiB0aGUgY29sdW1uIHNsaWNlcyB5b3UgdHlwaWNhbGx5IHBl cmZvcm0NCnNsaWNlZF9idWZmZXJfc2l6ZV9pbl9rYjogNjQNCg0KIyBUQ1AgcG9ydCwgZm9yIGNv bW1hbmRzIGFuZCBkYXRhDQpzdG9yYWdlX3BvcnQ6IDcwMDANCg0KIyBBZGRyZXNzIHRvIGJpbmQg dG8gYW5kIHRlbGwgb3RoZXIgQ2Fzc2FuZHJhIG5vZGVzIHRvIGNvbm5lY3QgdG8uIFlvdQ0KIyBf bXVzdF8gY2hhbmdlIHRoaXMgaWYgeW91IHdhbnQgbXVsdGlwbGUgbm9kZXMgdG8gYmUgYWJsZSB0 bw0KIyBjb21tdW5pY2F0ZSENCiMgDQojIExlYXZpbmcgaXQgYmxhbmsgbGVhdmVzIGl0IHVwIHRv IEluZXRBZGRyZXNzLmdldExvY2FsSG9zdCgpLiBUaGlzDQojIHdpbGwgYWx3YXlzIGRvIHRoZSBS aWdodCBUaGluZyAqaWYqIHRoZSBub2RlIGlzIHByb3Blcmx5IGNvbmZpZ3VyZWQNCiMgKGhvc3Ru YW1lLCBuYW1lIHJlc29sdXRpb24sIGV0YyksIGFuZCB0aGUgUmlnaHQgVGhpbmcgaXMgdG8gdXNl IHRoZQ0KIyBhZGRyZXNzIGFzc29jaWF0ZWQgd2l0aCB0aGUgaG9zdG5hbWUgKGl0IG1pZ2h0IG5v dCBiZSkuDQojDQojIFNldHRpbmcgdGhpcyB0byAwLjAuMC4wIGlzIGFsd2F5cyB3cm9uZy4NCmxp c3Rlbl9hZGRyZXNzOiB4LngueC54DQoNCiMgVGhlIGFkZHJlc3MgdG8gYmluZCB0aGUgVGhyaWZ0 IFJQQyBzZXJ2aWNlIHRvIC0tIGNsaWVudHMgY29ubmVjdA0KIyBoZXJlLiBVbmxpa2UgTGlzdGVu QWRkcmVzcyBhYm92ZSwgeW91ICpjYW4qIHNwZWNpZnkgMC4wLjAuMCBoZXJlIGlmDQojIHlvdSB3 YW50IFRocmlmdCB0byBsaXN0ZW4gb24gYWxsIGludGVyZmFjZXMuDQojIA0KIyBMZWF2aW5nIHRo aXMgYmxhbmsgaGFzIHRoZSBzYW1lIGVmZmVjdCBpdCBkb2VzIGZvciBMaXN0ZW5BZGRyZXNzLA0K IyAoaS5lLiBpdCB3aWxsIGJlIGJhc2VkIG9uIHRoZSBjb25maWd1cmVkIGhvc3RuYW1lIG9mIHRo ZSBub2RlKS4NCnJwY19hZGRyZXNzOiB4LngueC54DQojIHBvcnQgZm9yIFRocmlmdCB0byBsaXN0 ZW4gZm9yIGNsaWVudHMgb24NCnJwY19wb3J0OiA5MTYwDQoNCiMgZW5hYmxlIG9yIGRpc2FibGUg a2VlcGFsaXZlIG9uIHJwYyBjb25uZWN0aW9ucw0KcnBjX2tlZXBhbGl2ZTogdHJ1ZQ0KDQojIENh c3NhbmRyYSB1c2VzIHRocmVhZC1wZXItY2xpZW50IGZvciBjbGllbnQgUlBDLiAgVGhpcyBjYW4N CiMgYmUgZXhwZW5zaXZlIGluIG1lbW9yeSB1c2VkIGZvciB0aHJlYWQgc3RhY2sgZm9yIGEgbGFy Z2UNCiMgZW5vdWdoIG51bWJlciBvZiBjbGllbnRzLiAgKEhlbmNlLCBjb25uZWN0aW9uIHBvb2xp bmcgaXMNCiMgdmVyeSwgdmVyeSBzdHJvbmdseSByZWNvbW1lbmRlZC4pDQojIA0KIyBVbmNvbW1l bnQgcnBjX21pbnxtYXh8dGhyZWFkIHRvIHNldCByZXF1ZXN0IHBvb2wgc2l6ZS4NCiMgWW91IHdv dWxkIHByaW1hcmlseSBzZXQgbWF4IGFzIGEgc2FmZWd1YXJkIGFnYWluc3QgbWlzYmVoYXZlZA0K IyBjbGllbnRzOyBpZiB5b3UgZG8gaGl0IHRoZSBtYXgsIENhc3NhbmRyYSB3aWxsIGJsb2NrIHVu dGlsDQojIG9uZSBkaXNjb25uZWN0cyBiZWZvcmUgYWNjZXB0aW5nIG1vcmUuICBUaGUgZGVmYXVs dHMgYXJlDQojIG1pbiBvZiAxNiBhbmQgbWF4IHVubGltaXRlZC4NCiMNCiMgcnBjX21pbl90aHJl YWRzOiAxNg0KIyBycGNfbWF4X3RocmVhZHM6IDIwNDgNCg0KIyB1bmNvbW1lbnQgdG8gc2V0IHNv Y2tldCBidWZmZXIgc2l6ZXMgb24gcnBjIGNvbm5lY3Rpb25zDQojIHJwY19zZW5kX2J1ZmZfc2l6 ZV9pbl9ieXRlczoNCiMgcnBjX3JlY3ZfYnVmZl9zaXplX2luX2J5dGVzOg0KDQojIEZyYW1lIHNp emUgZm9yIHRocmlmdCAobWF4aW11bSBmaWVsZCBsZW5ndGgpLg0KIyAwIGRpc2FibGVzIFRGcmFt ZWRUcmFuc3BvcnQgaW4gZmF2b3Igb2YgVFNvY2tldC4gVGhpcyBvcHRpb24NCiMgaXMgZGVwcmVj YXRlZDsgd2Ugc3Ryb25nbHkgcmVjb21tZW5kIHVzaW5nIEZyYW1lZCBtb2RlLg0KdGhyaWZ0X2Zy YW1lZF90cmFuc3BvcnRfc2l6ZV9pbl9tYjogMTUNCg0KIyBUaGUgbWF4IGxlbmd0aCBvZiBhIHRo cmlmdCBtZXNzYWdlLCBpbmNsdWRpbmcgYWxsIGZpZWxkcyBhbmQNCiMgaW50ZXJuYWwgdGhyaWZ0 IG92ZXJoZWFkLg0KdGhyaWZ0X21heF9tZXNzYWdlX2xlbmd0aF9pbl9tYjogMTYNCg0KIyBTZXQg dG8gdHJ1ZSB0byBoYXZlIENhc3NhbmRyYSBjcmVhdGUgYSBoYXJkIGxpbmsgdG8gZWFjaCBzc3Rh YmxlDQojIGZsdXNoZWQgb3Igc3RyZWFtZWQgbG9jYWxseSBpbiBhIGJhY2t1cHMvIHN1YmRpcmVj dG9yeSBvZiB0aGUNCiMgS2V5c3BhY2UgZGF0YS4gIFJlbW92aW5nIHRoZXNlIGxpbmtzIGlzIHRo ZSBvcGVyYXRvcidzDQojIHJlc3BvbnNpYmlsaXR5Lg0KaW5jcmVtZW50YWxfYmFja3VwczogZmFs c2UNCg0KIyBXaGV0aGVyIG9yIG5vdCB0byB0YWtlIGEgc25hcHNob3QgYmVmb3JlIGVhY2ggY29t cGFjdGlvbi4gIEJlDQojIGNhcmVmdWwgdXNpbmcgdGhpcyBvcHRpb24sIHNpbmNlIENhc3NhbmRy YSB3b24ndCBjbGVhbiB1cCB0aGUNCiMgc25hcHNob3RzIGZvciB5b3UuICBNb3N0bHkgdXNlZnVs IGlmIHlvdSdyZSBwYXJhbm9pZCB3aGVuIHRoZXJlDQojIGlzIGEgZGF0YSBmb3JtYXQgY2hhbmdl Lg0Kc25hcHNob3RfYmVmb3JlX2NvbXBhY3Rpb246IGZhbHNlDQoNCiMgY2hhbmdlIHRoaXMgdG8g aW5jcmVhc2UgdGhlIGNvbXBhY3Rpb24gdGhyZWFkJ3MgcHJpb3JpdHkuICBJbiBqYXZhLCAxIGlz IHRoZQ0KIyBsb3dlc3QgcHJpb3JpdHkgYW5kIHRoYXQgaXMgb3VyIGRlZmF1bHQuDQojIGNvbXBh Y3Rpb25fdGhyZWFkX3ByaW9yaXR5OiAxDQoNCiMgQWRkIGNvbHVtbiBpbmRleGVzIHRvIGEgcm93 IGFmdGVyIGl0cyBjb250ZW50cyByZWFjaCB0aGlzIHNpemUuDQojIEluY3JlYXNlIGlmIHlvdXIg Y29sdW1uIHZhbHVlcyBhcmUgbGFyZ2UsIG9yIGlmIHlvdSBoYXZlIGEgdmVyeSBsYXJnZQ0KIyBu dW1iZXIgb2YgY29sdW1ucy4gIFRoZSBjb21wZXRpbmcgY2F1c2VzIGFyZSwgQ2Fzc2FuZHJhIGhh cyB0bw0KIyBkZXNlcmlhbGl6ZSB0aGlzIG11Y2ggb2YgdGhlIHJvdyB0byByZWFkIGEgc2luZ2xl IGNvbHVtbiwgc28geW91IHdhbnQNCiMgaXQgdG8gYmUgc21hbGwgLSBhdCBsZWFzdCBpZiB5b3Ug ZG8gbWFueSBwYXJ0aWFsLXJvdyByZWFkcyAtIGJ1dCBhbGwNCiMgdGhlIGluZGV4IGRhdGEgaXMg cmVhZCBmb3IgZWFjaCBhY2Nlc3MsIHNvIHlvdSBkb24ndCB3YW50IHRvIGdlbmVyYXRlDQojIHRo YXQgd2FzdGVmdWxseSBlaXRoZXIuDQpjb2x1bW5faW5kZXhfc2l6ZV9pbl9rYjogNjQNCg0KIyBT aXplIGxpbWl0IGZvciByb3dzIGJlaW5nIGNvbXBhY3RlZCBpbiBtZW1vcnkuICBMYXJnZXIgcm93 cyB3aWxsIHNwaWxsDQojIG92ZXIgdG8gZGlzayBhbmQgdXNlIGEgc2xvd2VyIHR3by1wYXNzIGNv bXBhY3Rpb24gcHJvY2Vzcy4gIEEgbWVzc2FnZQ0KIyB3aWxsIGJlIGxvZ2dlZCBzcGVjaWZ5aW5n IHRoZSByb3cga2V5Lg0KaW5fbWVtb3J5X2NvbXBhY3Rpb25fbGltaXRfaW5fbWI6IDY0DQoNCiMg VHJhY2sgY2FjaGVkIHJvdyBrZXlzIGR1cmluZyBjb21wYWN0aW9uLCBhbmQgcmUtY2FjaGUgdGhl aXIgbmV3DQojIHBvc2l0aW9ucyBpbiB0aGUgY29tcGFjdGVkIHNzdGFibGUuICBEaXNhYmxlIGlm IHlvdSB1c2UgcmVhbGx5IGxhcmdlDQojIGtleSBjYWNoZXMuDQpjb21wYWN0aW9uX3ByZWhlYXRf a2V5X2NhY2hlOiB0cnVlDQoNCiMgVGltZSB0byB3YWl0IGZvciBhIHJlcGx5IGZyb20gb3RoZXIg bm9kZXMgYmVmb3JlIGZhaWxpbmcgdGhlIGNvbW1hbmQgDQpycGNfdGltZW91dF9pbl9tczogMTAw MDANCg0KIyBwaGkgdmFsdWUgdGhhdCBtdXN0IGJlIHJlYWNoZWQgZm9yIGEgaG9zdCB0byBiZSBt YXJrZWQgZG93bi4NCiMgbW9zdCB1c2VycyBzaG91bGQgbmV2ZXIgbmVlZCB0byBhZGp1c3QgdGhp cy4NCiMgcGhpX2NvbnZpY3RfdGhyZXNob2xkOiA4DQoNCiMgZW5kcG9pbnRfc25pdGNoIC0tIFNl dCB0aGlzIHRvIGEgY2xhc3MgdGhhdCBpbXBsZW1lbnRzDQojIElFbmRwb2ludFNuaXRjaCwgd2hp Y2ggd2lsbCBsZXQgQ2Fzc2FuZHJhIGtub3cgZW5vdWdoDQojIGFib3V0IHlvdXIgbmV0d29yayB0 b3BvbG9neSB0byByb3V0ZSByZXF1ZXN0cyBlZmZpY2llbnRseS4NCiMgT3V0IG9mIHRoZSBib3gs IENhc3NhbmRyYSBwcm92aWRlcw0KIyAgLSBvcmcuYXBhY2hlLmNhc3NhbmRyYS5sb2NhdG9yLlNp bXBsZVNuaXRjaDoNCiMgICAgVHJlYXRzIFN0cmF0ZWd5IG9yZGVyIGFzIHByb3hpbWl0eS4gVGhp cyBpbXByb3ZlcyBjYWNoZSBsb2NhbGl0eQ0KIyAgICB3aGVuIGRpc2FibGluZyByZWFkIHJlcGFp ciwgd2hpY2ggY2FuIGZ1cnRoZXIgaW1wcm92ZSB0aHJvdWdocHV0Lg0KIyAgLSBvcmcuYXBhY2hl LmNhc3NhbmRyYS5sb2NhdG9yLlJhY2tJbmZlcnJpbmdTbml0Y2g6DQojICAgIFByb3hpbWl0eSBp cyBkZXRlcm1pbmVkIGJ5IHJhY2sgYW5kIGRhdGEgY2VudGVyLCB3aGljaCBhcmUNCiMgICAgYXNz dW1lZCB0byBjb3JyZXNwb25kIHRvIHRoZSAzcmQgYW5kIDJuZCBvY3RldCBvZiBlYWNoIG5vZGUn cw0KIyAgICBJUCBhZGRyZXNzLCByZXNwZWN0aXZlbHkNCiMgb3JnLmFwYWNoZS5jYXNzYW5kcmEu bG9jYXRvci5Qcm9wZXJ0eUZpbGVTbml0Y2g6DQojICAtIFByb3hpbWl0eSBpcyBkZXRlcm1pbmVk IGJ5IHJhY2sgYW5kIGRhdGEgY2VudGVyLCB3aGljaCBhcmUNCiMgICAgZXhwbGljaXRseSBjb25m aWd1cmVkIGluIGNhc3NhbmRyYS10b3BvbG9neS5wcm9wZXJ0aWVzLg0KZW5kcG9pbnRfc25pdGNo OiBvcmcuYXBhY2hlLmNhc3NhbmRyYS5sb2NhdG9yLlNpbXBsZVNuaXRjaA0KDQojIGR5bmFtaWNf c25pdGNoIC0tIFRoaXMgYm9vbGVhbiBjb250cm9scyB3aGV0aGVyIHRoZSBhYm92ZSBzbml0Y2gg aXMNCiMgd3JhcHBlZCB3aXRoIGEgZHluYW1pYyBzbml0Y2gsIHdoaWNoIHdpbGwgbW9uaXRvciBy ZWFkIGxhdGVuY2llcw0KIyBhbmQgYXZvaWQgcmVhZGluZyBmcm9tIGhvc3RzIHRoYXQgaGF2ZSBz bG93ZWQgKGR1ZSB0byBjb21wYWN0aW9uLA0KIyBmb3IgaW5zdGFuY2UpDQpkeW5hbWljX3NuaXRj aDogdHJ1ZQ0KIyBjb250cm9scyBob3cgb2Z0ZW4gdG8gcGVyZm9ybSB0aGUgbW9yZSBleHBlbnNp dmUgcGFydCBvZiBob3N0IHNjb3JlDQojIGNhbGN1bGF0aW9uDQpkeW5hbWljX3NuaXRjaF91cGRh dGVfaW50ZXJ2YWxfaW5fbXM6IDEwMCANCiMgY29udHJvbHMgaG93IG9mdGVuIHRvIHJlc2V0IGFs bCBob3N0IHNjb3JlcywgYWxsb3dpbmcgYSBiYWQgaG9zdCB0bw0KIyBwb3NzaWJseSByZWNvdmVy DQpkeW5hbWljX3NuaXRjaF9yZXNldF9pbnRlcnZhbF9pbl9tczogNjAwMDAwDQojIGlmIHNldCBn cmVhdGVyIHRoYW4gemVybyBhbmQgcmVhZF9yZXBhaXJfY2hhbmNlIGlzIDwgMS4wLCB0aGlzIHdp bGwgYWxsb3cNCiMgJ3Bpbm5pbmcnIG9mIHJlcGxpY2FzIHRvIGhvc3RzIGluIG9yZGVyIHRvIGlu Y3JlYXNlIGNhY2hlIGNhcGFjaXR5Lg0KIyBUaGUgYmFkbmVzcyB0aHJlc2hvbGQgd2lsbCBjb250 cm9sIGhvdyBtdWNoIHdvcnNlIHRoZSBwaW5uZWQgaG9zdCBoYXMgdG8gYmUNCiMgYmVmb3JlIHRo ZSBkeW5hbWljIHNuaXRjaCB3aWxsIHByZWZlciBvdGhlciByZXBsaWNhcyBvdmVyIGl0LiAgVGhp cyBpcw0KIyBleHByZXNzZWQgYXMgYSBkb3VibGUgd2hpY2ggcmVwcmVzZW50cyBhIHBlcmNlbnRh Z2UuICBUaHVzLCBhIHZhbHVlIG9mDQojIDAuMiBtZWFucyBDYXNzYW5kcmEgd291bGQgY29udGlu dWUgdG8gcHJlZmVyIHRoZSBzdGF0aWMgc25pdGNoIHZhbHVlcw0KIyB1bnRpbCB0aGUgcGlubmVk IGhvc3Qgd2FzIDIwJSB3b3JzZSB0aGFuIHRoZSBmYXN0ZXN0Lg0KZHluYW1pY19zbml0Y2hfYmFk bmVzc190aHJlc2hvbGQ6IDAuMA0KDQojIHJlcXVlc3Rfc2NoZWR1bGVyIC0tIFNldCB0aGlzIHRv IGEgY2xhc3MgdGhhdCBpbXBsZW1lbnRzDQojIFJlcXVlc3RTY2hlZHVsZXIsIHdoaWNoIHdpbGwg c2NoZWR1bGUgaW5jb21pbmcgY2xpZW50IHJlcXVlc3RzDQojIGFjY29yZGluZyB0byB0aGUgc3Bl Y2lmaWMgcG9saWN5LiBUaGlzIGlzIHVzZWZ1bCBmb3IgbXVsdGktdGVuYW5jeQ0KIyB3aXRoIGEg c2luZ2xlIENhc3NhbmRyYSBjbHVzdGVyLg0KIyBOT1RFOiBUaGlzIGlzIHNwZWNpZmljYWxseSBm b3IgcmVxdWVzdHMgZnJvbSB0aGUgY2xpZW50IGFuZCBkb2VzDQojIG5vdCBhZmZlY3QgaW50ZXIg bm9kZSBjb21tdW5pY2F0aW9uLg0KIyBvcmcuYXBhY2hlLmNhc3NhbmRyYS5zY2hlZHVsZXIuTm9T Y2hlZHVsZXIgLSBObyBzY2hlZHVsaW5nIHRha2VzIHBsYWNlDQojIG9yZy5hcGFjaGUuY2Fzc2Fu ZHJhLnNjaGVkdWxlci5Sb3VuZFJvYmluU2NoZWR1bGVyIC0gUm91bmQgcm9iaW4gb2YNCiMgY2xp ZW50IHJlcXVlc3RzIHRvIGEgbm9kZSB3aXRoIGEgc2VwYXJhdGUgcXVldWUgZm9yIGVhY2gNCiMg cmVxdWVzdF9zY2hlZHVsZXJfaWQuIFRoZSBzY2hlZHVsZXIgaXMgZnVydGhlciBjdXN0b21pemVk IGJ5DQojIHJlcXVlc3Rfc2NoZWR1bGVyX29wdGlvbnMgYXMgZGVzY3JpYmVkIGJlbG93Lg0KcmVx dWVzdF9zY2hlZHVsZXI6IG9yZy5hcGFjaGUuY2Fzc2FuZHJhLnNjaGVkdWxlci5Ob1NjaGVkdWxl cg0KDQojIFNjaGVkdWxlciBPcHRpb25zIHZhcnkgYmFzZWQgb24gdGhlIHR5cGUgb2Ygc2NoZWR1 bGVyDQojIE5vU2NoZWR1bGVyIC0gSGFzIG5vIG9wdGlvbnMNCiMgUm91bmRSb2Jpbg0KIyAgLSB0 aHJvdHRsZV9saW1pdCAtLSBUaGUgdGhyb3R0bGVfbGltaXQgaXMgdGhlIG51bWJlciBvZiBpbi1m bGlnaHQNCiMgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdHMgcGVyIGNsaWVudC4gIFJlcXVl c3RzIGJleW9uZCANCiMgICAgICAgICAgICAgICAgICAgICAgdGhhdCBsaW1pdCBhcmUgcXVldWVk IHVwIHVudGlsDQojICAgICAgICAgICAgICAgICAgICAgIHJ1bm5pbmcgcmVxdWVzdHMgY2FuIGNv bXBsZXRlLg0KIyAgICAgICAgICAgICAgICAgICAgICBUaGUgdmFsdWUgb2YgODAgaGVyZSBpcyB0 d2ljZSB0aGUgbnVtYmVyIG9mDQojICAgICAgICAgICAgICAgICAgICAgIGNvbmN1cnJlbnRfcmVh ZHMgKyBjb25jdXJyZW50X3dyaXRlcy4NCiMgIC0gZGVmYXVsdF93ZWlnaHQgLS0gZGVmYXVsdF93 ZWlnaHQgaXMgb3B0aW9uYWwgYW5kIGFsbG93cyBmb3INCiMgICAgICAgICAgICAgICAgICAgICAg b3ZlcnJpZGluZyB0aGUgZGVmYXVsdCB3aGljaCBpcyAxLg0KIyAgLSB3ZWlnaHRzIC0tIFdlaWdo dHMgYXJlIG9wdGlvbmFsIGFuZCB3aWxsIGRlZmF1bHQgdG8gMSBvciB0aGUNCiMgICAgICAgICAg ICAgICBvdmVycmlkZGVuIGRlZmF1bHRfd2VpZ2h0LiBUaGUgd2VpZ2h0IHRyYW5zbGF0ZXMgaW50 byBob3cNCiMgICAgICAgICAgICAgICBtYW55IHJlcXVlc3RzIGFyZSBoYW5kbGVkIGR1cmluZyBl YWNoIHR1cm4gb2YgdGhlDQojICAgICAgICAgICAgICAgUm91bmRSb2JpbiwgYmFzZWQgb24gdGhl IHNjaGVkdWxlciBpZC4NCiMNCiMgcmVxdWVzdF9zY2hlZHVsZXJfb3B0aW9uczoNCiMgICAgdGhy b3R0bGVfbGltaXQ6IDgwDQojICAgIGRlZmF1bHRfd2VpZ2h0OiA1DQojICAgIHdlaWdodHM6DQoj ICAgICAgS2V5c3BhY2UxOiAxDQojICAgICAgS2V5c3BhY2UyOiA1DQoNCiMgcmVxdWVzdF9zY2hl ZHVsZXJfaWQgLS0gQW4gaWRlbnRpZmVyIGJhc2VkIG9uIHdoaWNoIHRvIHBlcmZvcm0NCiMgdGhl IHJlcXVlc3Qgc2NoZWR1bGluZy4gQ3VycmVudGx5IHRoZSBvbmx5IHZhbGlkIG9wdGlvbiBpcyBr ZXlzcGFjZS4NCiMgcmVxdWVzdF9zY2hlZHVsZXJfaWQ6IGtleXNwYWNlDQoNCiMgVGhlIEluZGV4 IEludGVydmFsIGRldGVybWluZXMgaG93IGxhcmdlIHRoZSBzYW1wbGluZyBvZiByb3cga2V5cw0K IyAgaXMgZm9yIGEgZ2l2ZW4gU1NUYWJsZS4gVGhlIGxhcmdlciB0aGUgc2FtcGxpbmcsIHRoZSBt b3JlIGVmZmVjdGl2ZQ0KIyAgdGhlIGluZGV4IGlzIGF0IHRoZSBjb3N0IG9mIHNwYWNlLg0KaW5k ZXhfaW50ZXJ2YWw6IDEyOA0K --0016363b8796882d6d049f389fb5--