New GNU ELPA package: denote-journal - Convenience functions for daily journaling with Denote
Sacha Chua <[email protected]> Mon, 17 Mar 2025 10:02:29 -0400
| Newsgroups | gmane.emacs.announce |
|---|---|
| Message-ID | <[email protected]> |
ICAgIFN1bW1hcnk6IENvbnZlbmllbmNlIGZ1bmN0aW9ucyBmb3IgZGFpbHkgam91cm5hbGluZyB3 aXRoIERlbm90ZQ0KICAgUmVxdWlyZXM6IGVtYWNzLTI4LjEsIGRlbm90ZS0zLjEuMA0KICAgIFdl YnNpdGU6IGh0dHBzOi8vZ2l0aHViLmNvbS9wcm90ZXNpbGFvcy9kZW5vdGUtam91cm5hbA0KIE1h aW50YWluZXI6IFByb3Rlc2lsYW9zIFN0YXZyb3UgPGluZm9AcHJvdGVzaWxhb3MuY29tPg0KICAg ICBBdXRob3I6IFByb3Rlc2lsYW9zIFN0YXZyb3UgPGluZm9AcHJvdGVzaWxhb3MuY29tPg0KDQog ICAgICAgICAgIOKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgQ0KICAgICAgICAg ICAgREVOT1RFLUpPVVJOQUw6IENPTlZFTklFTkNFIEZVTkNUSU9OUyBGT1IgREFJTFkNCiAgICAg ICAgICAgICAgICAgICAgICAgICBKT1VSTkFMSU5HIFdJVEggREVOT1RFDQoNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgUHJvdGVzaWxhb3MgU3RhdnJvdQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICBpbmZvQHByb3Rlc2lsYW9zLmNvbQ0KICAgICAgICAgICDilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIENCg0KDQpUaGlzIG1hbnVhbCwgd3JpdHRlbiBieSBQcm90ZXNpbGFv cyBTdGF2cm91LCBkZXNjcmliZXMgdGhlIGN1c3RvbWl6YXRpb24NCm9wdGlvbnMgZm9yIHRoZSBF bWFjcyBwYWNrYWdlIGNhbGxlZCBgZGVub3RlJyAob3IgYGRlbm90ZS5lbCcpLCBhbmQNCnByb3Zp ZGVzIGV2ZXJ5IG90aGVyIHBpZWNlIG9mIGluZm9ybWF0aW9uIHBlcnRpbmVudCB0byBpdC4NCg0K VGhlIGRvY3VtZW50YXRpb24gZnVybmlzaGVkIGhlcmVpbiBjb3JyZXNwb25kcyB0byBzdGFibGUg dmVyc2lvbiAwLjAuMCwNCnJlbGVhc2VkIG9uIE4vQS4gIEFueSByZWZlcmVuY2UgdG8gYSBuZXdl ciBmZWF0dXJlIHdoaWNoIGRvZXMgbm90IHlldA0KZm9ybSBwYXJ0IG9mIHRoZSBsYXRlc3QgdGFn Z2VkIGNvbW1pdCwgaXMgZXhwbGljaXRseSBtYXJrZWQgYXMgc3VjaC4NCg0KQ3VycmVudCBkZXZl bG9wbWVudCB0YXJnZXQgaXMgMC4xLjAtZGV2Lg0KDQrigYMgUGFja2FnZSBuYW1lIChHTlUgRUxQ QSk6IGBkZW5vdGUtam91cm5hbCcgKOKaoO+4jyBOb3QgYXZhaWxhYmxlIHlldCkNCuKBgyBPZmZp Y2lhbCBtYW51YWw6IDxodHRwczovL3Byb3Rlc2lsYW9zLmNvbS9lbWFjcy9kZW5vdGUtam91cm5h bD4NCuKBgyBHaXQgcmVwb3NpdG9yeTogPGh0dHBzOi8vZ2l0aHViLmNvbS9wcm90ZXNpbGFvcy9k ZW5vdGUtam91cm5hbD4NCuKBgyBCYWNrcm9ueW06IERlbm90ZeKApiBKb3VybmFsaW5nIE9idmlv dXNseSBVdGlsaXNlcyBSZWFzb25hYmxlbmVzcw0KICBOb3R3aXRoc3RhbmRpbmcgQWZmZWN0aW9u YXRlIExvbmdpbmcuDQoNCklmIHlvdSBhcmUgdmlld2luZyB0aGUgUkVBRE1FLm9yZyB2ZXJzaW9u IG9mIHRoaXMgZmlsZSwgcGxlYXNlIG5vdGUgdGhhdA0KdGhlIEdOVSBFTFBBIG1hY2hpbmVyeSBh dXRvbWF0aWNhbGx5IGdlbmVyYXRlcyBhbiBJbmZvIG1hbnVhbCBvdXQgb2YgaXQuDQoNClRhYmxl IG9mIENvbnRlbnRzDQrilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIANCg0KMS4gQ09QWUlORw0KMi4gT3ZlcnZpZXcNCi4uIDEuIENyZWF0ZSBuZXcgam91 cm5hbCBlbnRyeQ0KLi4gMi4gQ3JlYXRlIGEgbmV3IGpvdXJuYWwgZW50cnkgb3IgdXNlIGFuIGV4 aXN0aW5nIG9uZQ0KLi4gMy4gTGluayB0byBhIGpvdXJuYWwgZW50cnkgb3IgY3JlYXRlIGl0IGlm IG1pc3NpbmcNCi4uIDQuIFRoZSBgZGVub3RlLWpvdXJuYWwtZGlyZWN0b3J5Jw0KLi4gNS4gVGl0 bGUgZm9ybWF0IG9mIG5ldyBqb3VybmFsIGVudHJpZXMNCi4uIDYuIENyZWF0ZSBhIGpvdXJuYWwg ZW50cnkgdXNpbmcgT3JnIGNhcHR1cmUNCi4uIDcuIFRoZSBgZGVub3RlLWpvdXJuYWwtaG9vaycN Ci4uIDguIEpvdXJuYWxpbmcgd2l0aCBhIHRpbWVyDQozLiBJbnN0YWxsYXRpb24NCi4uIDEuIEdO VSBFTFBBIHBhY2thZ2UNCi4uIDIuIE1hbnVhbCBpbnN0YWxsYXRpb24NCjQuIFNhbXBsZSBjb25m aWd1cmF0aW9uDQo1LiBBY2tub3dsZWRnZW1lbnRzDQo2LiBHTlUgRnJlZSBEb2N1bWVudGF0aW9u IExpY2Vuc2UNCjcuIEluZGljZXMNCi4uIDEuIEZ1bmN0aW9uIGluZGV4DQouLiAyLiBWYXJpYWJs ZSBpbmRleA0KLi4gMy4gQ29uY2VwdCBpbmRleA0KDQoNCjEgQ09QWUlORw0K4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQDQoNCiAgQ29weXJpZ2h0IChDKSAyMDIyLTIwMjUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuDQoNCiAgICAgICAgUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNv cHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeQ0KICAgICAgICB0aGlzIGRvY3VtZW50IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEZyZWUNCiAgICAgICAgRG9jdW1lbnRhdGlvbiBMaWNlbnNl LCBWZXJzaW9uIDEuMyBvciBhbnkgbGF0ZXIgdmVyc2lvbg0KICAgICAgICBwdWJsaXNoZWQgYnkg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgd2l0aCBubw0KICAgICAgICBJbnZhcmlhbnQg U2VjdGlvbnMsIHdpdGggdGhlIEZyb250LUNvdmVyIFRleHRzIGJlaW5nIOKAnEENCiAgICAgICAg R05VIE1hbnVhbCzigJ0gYW5kIHdpdGggdGhlIEJhY2stQ292ZXIgVGV4dHMgYXMgaW4gKGEpDQog ICAgICAgIGJlbG93LiAgQSBjb3B5IG9mIHRoZSBsaWNlbnNlIGlzIGluY2x1ZGVkIGluIHRoZSBz ZWN0aW9uDQogICAgICAgIGVudGl0bGVkIOKAnEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5z ZS7igJ0NCg0KICAgICAgICAoYSkgVGhlIEZTRuKAmXMgQmFjay1Db3ZlciBUZXh0IGlzOiDigJxZ b3UgaGF2ZSB0aGUgZnJlZWRvbSB0bw0KICAgICAgICBjb3B5IGFuZCBtb2RpZnkgdGhpcyBHTlUg bWFudWFsLuKAnQ0KDQoNCjIgT3ZlcnZpZXcNCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kA0KDQogIFRoZSBgZGVub3RlLWpvdXJuYWwnIHBhY2thZ2UgbWFrZXMgaXQgZWFzaWVyIHRvIHVz ZSBEZW5vdGUgZm9yDQogIGpvdXJuYWxpbmcuIFdoaWxlIGl0IGlzIHBvc3NpYmxlIHRvIHVzZSB0 aGUgZ2VuZXJpYyBgZGVub3RlJyBjb21tYW5kDQogIChhbmQgcmVsYXRlZCkgdG8gbWFpbnRhaW4g YSBqb3VybmFsLCB0aGlzIHBhY2thZ2UgZGVmaW5lcyBleHRyYQ0KICBmdW5jdGlvbmFsaXR5IHRv IHN0cmVhbWxpbmUgdGhlIGpvdXJuYWxpbmcgd29ya2Zsb3cuDQoNCiAgVGhlIGNvZGUgb2YgYGRl bm90ZS1qb3VybmFsJyB1c2VkIHRvIGJlIGJ1bmRsZWQgdXAgd2l0aCB0aGUgYGRlbm90ZScNCiAg cGFja2FnZSBiZWZvcmUgdmVyc2lvbiBgNC4wLjAnIG9mIHRoZSBsYXR0ZXIgYW5kIHdhcyBhdmFp bGFibGUgaW4gdGhlDQogIGZpbGUgYGRlbm90ZS1qb3VybmFsLWV4dHJhcy5lbCcuIFVzZXJzIG9m IHRoZSBvbGQgY29kZSB3aWxsIG5lZWQgdG8NCiAgYWRhcHQgdGhlaXIgc2V0dXAgdG8gdXNlIHRo ZSBgZGVub3RlLWpvdXJuYWwnIHBhY2thZ2UuIFRoaXMgY2FuIGJlDQogIGRvbmUgYnkgcmVwbGFj aW5nIGFsbCBpbnN0YW5jZXMgb2YgYGRlbm90ZS1qb3VybmFsLWV4dHJhcycgd2l0aA0KICBgZGVu b3RlLWpvdXJuYWwnIGFjcm9zcyB0aGVpciBjb25maWd1cmF0aW9uLg0KDQoNCjIuMSBDcmVhdGUg bmV3IGpvdXJuYWwgZW50cnkNCuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgA0KDQogIFRoZSBj b21tYW5kIGBkZW5vdGUtam91cm5hbC1uZXctZW50cnknIGNyZWF0ZXMgYSBuZXcgZW50cnkgaW4g dGhlDQogIGpvdXJuYWwuIFN1Y2ggYSBmaWxlIGhhcyB0aGUgYGRlbm90ZS1qb3VybmFsLWtleXdv cmQnLCB3aGljaCBpcyB0aGUNCiAgc3RyaW5nIGBqb3VybmFsJyBieSBkZWZhdWx0IChyZWFkIHRo ZSBEZW5vdGUgbWFudWFsIGFib3V0IHRoZQ0KICBmaWxlLW5hbWluZyBzY2hlbWUpLiBUaGUgdXNl ciBjYW4gc2V0IHRoaXMga2V5d29yZCB0byBhbiBhcmJpdHJhcnkNCiAgc3RyaW5nIChzaW5nbGUg d29yZCBpcyBwcmVmZXJyZWQpIG9yIGEgbGlzdCBvZiBzdHJpbmdzLg0KDQogIE5ldyBqb3VybmFs IGVudHJpZXMgYXJlIHN0b3JlZCBpbiB0aGUgYGRlbm90ZS1qb3VybmFsLWRpcmVjdG9yeScsDQog IHdoaWxlIGFueSBjb21tYW5kIHRoYXQgZ2VuZXJhdGVzIGEgbmV3IGpvdXJuYWwgZW50cnkgY2Fs bHMgdGhlDQogIGBkZW5vdGUtam91cm5hbC1ob29rJzoNCg0KICDigKIgW1RoZSBgZGVub3RlLWpv dXJuYWwtaG9vayddLg0KICDigKIgW1RoZSBgZGVub3RlLWpvdXJuYWwtZGlyZWN0b3J5J10uDQoN CiAgVGhlIGNvbW1hbmQgYGRlbm90ZS1qb3VybmFsLW5ldy1lbnRyeScgY3JlYXRlcyBhIG5ldyBl bnRyeQ0KICB1bmNvbmRpdGlvbmFsbHkuIFRoaXMgbWVhbnMgdGhhdCBpdCB3aWxsIG5vdCBjaGVj ayBpZiB0aGUgcHJlc2VudCBkYXkNCiAgYWxyZWFkeSBoYXMgYSBub3RlIGZvciBpdC4gVXNlcnMg d2hvIHdpc2ggdG8gb25seSBldmVyIGhhdmUgb25lIGVudHJ5DQogIHBlciBkYXkgc2hvdWxkIHVz ZSBgZGVub3RlLWpvdXJuYWwtbmV3LW9yLWV4aXN0aW5nLWVudHJ5JyBpbnN0ZWFkDQogIChbQ3Jl YXRlIGEgbmV3IGpvdXJuYWwgZW50cnkgb3IgdXNlIGFuIGV4aXN0aW5nIG9uZV0pLg0KDQoNCltU aGUgYGRlbm90ZS1qb3VybmFsLWhvb2snXSBTZWUgc2VjdGlvbiAyLjcNCg0KW1RoZSBgZGVub3Rl LWpvdXJuYWwtZGlyZWN0b3J5J10gU2VlIHNlY3Rpb24gMi40DQoNCltDcmVhdGUgYSBuZXcgam91 cm5hbCBlbnRyeSBvciB1c2UgYW4gZXhpc3Rpbmcgb25lXSBTZWUgc2VjdGlvbiAyLjINCg0KDQoy LjIgQ3JlYXRlIGEgbmV3IGpvdXJuYWwgZW50cnkgb3IgdXNlIGFuIGV4aXN0aW5nIG9uZQ0K4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCiAgVGhlIGNvbW1h bmQgYGRlbm90ZS1qb3VybmFsLW5ldy1vci1leGlzdGluZy1lbnRyeScgbG9jYXRlcyBhbiBleGlz dGluZw0KICBqb3VybmFsIGVudHJ5IGFuZCBvcGVucyBpdCBmb3IgZWRpdGluZyBvciBjcmVhdGVz IGEgbmV3IG9uZS4NCg0KICBBIGpvdXJuYWwgZW50cnkgaXMgYW4gZWRpdGFibGUgZmlsZSB0aGF0 IGhhcyBgZGVub3RlLWpvdXJuYWwta2V5d29yZCcNCiAgYXMgcGFydCBvZiBpdHMgZmlsZSBuYW1l LiBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgam91cm5hbCBlbnRyaWVzIGZvcg0KICB0aGUgY3VycmVu dCBkYXRlLCBgZGVub3RlLWpvdXJuYWwtbmV3LW9yLWV4aXN0aW5nLWVudHJ5JyBwcm9tcHRzIHRv DQogIHNlbGVjdCBvbmUgYW1vbmcgdGhlbSB1c2luZyBtaW5pYnVmZmVyIGNvbXBsZXRpb24uIElm IHRoZXJlIGlzIG9ubHkNCiAgb25lIG1hdGNoaW5nIGZpbGUsIGl0IHZpc2l0cyBpdCBvdXRyaWdo dC4gSWYgdGhlcmUgaXMgbm8gam91cm5hbA0KICBlbnRyeSwgaXQgY3JlYXRlcyBhIG5ldyBvbmUg YnkgY2FsbGluZyBgZGVub3RlLWpvdXJuYWwtbmV3LWVudHJ5Jw0KICAoW0NyZWF0ZSBuZXcgam91 cm5hbCBlbnRyeV0pLiBEZXBlbmRpbmcgb24gb25l4oCZcyB3b3JrZmxvdywgdGhpcyBjYW4NCiAg YWxzbyBiZSBkb25lIHZpYSBgb3JnLWNhcHR1cmUnIChbQ3JlYXRlIGEgam91cm5hbCBlbnRyeSB1 c2luZyBPcmcNCiAgY2FwdHVyZV0pLg0KDQogIFdoZW4gY2FsbGVkIHdpdGggYSBwcmVmaXggYXJn dW1lbnQgKGBDLXUnIHdpdGggZGVmYXVsdCBrZXkgYmluZGluZ3MpLA0KICB0aGUgY29tbWFuZCBg ZGVub3RlLWpvdXJuYWwtbmV3LW9yLWV4aXN0aW5nLWVudHJ5JyBwcm9tcHRzIGZvciBhIGRhdGUu DQogIEl0IHRoZW4gZGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHZpc2l0IGFuIGV4aXN0aW5nIGZpbGUg b3IgY3JlYXRlIGEgbmV3DQogIG9uZSwgYXMgZGVzY3JpYmVkIGFib3ZlLiBUaGUgZGF0ZSBzZWxl Y3Rpb24gaW50ZXJmYWNlIGlzIGNvbnRyb2xsZWQgYnkNCiAgdGhlIHVzZXIgb3B0aW9uIGBkZW5v dGUtZGF0ZS1wcm9tcHQtdXNlLW9yZy1yZWFkLWRhdGUnLCB3aGljaCBpcyBwYXJ0DQogIG9mIHRo ZSBtYWluIGBkZW5vdGUnIHBhY2thZ2UuIEJ5IGRlZmF1bHQsIHRoaXMgaXMgYSBzaW1wbGUgbWlu aWJ1ZmZlcg0KICBwcm9tcHQsIHRob3VnaCB1c2VycyBjYW4gb3B0IGluIHRvIHRoZSBtb3JlIGFk dmFuY2VkDQogIG1pbmlidWZmZXIrY2FsZW5kYXIgZGF0ZSBwaWNrZXIgdGhhdCBPcmcgdXNlcyBm b3IgaXRzIG93biBkYXRlDQogIHNlbGVjdGlvbiBvcGVyYXRpb25zLg0KDQoNCltDcmVhdGUgbmV3 IGpvdXJuYWwgZW50cnldIFNlZSBzZWN0aW9uIDIuMQ0KDQpbQ3JlYXRlIGEgam91cm5hbCBlbnRy eSB1c2luZyBPcmcgY2FwdHVyZV0gU2VlIHNlY3Rpb24gMi42DQoNCg0KMi4zIExpbmsgdG8gYSBq b3VybmFsIGVudHJ5IG9yIGNyZWF0ZSBpdCBpZiBtaXNzaW5nDQrilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIANCg0KICBUaGUgY29tbWFuZCBgZGVub3RlLWpvdXJuYWwtbGlu ay1vci1jcmVhdGUtZW50cnknIGxpbmtzIHRvIHRoZSBqb3VybmFsDQogIGVudHJ5IGZvciB0b2Rh eSBvciBjcmVhdGVzIGl0IGluIHRoZSBiYWNrZ3JvdW5kLCBpZiBtaXNzaW5nLCBhbmQgdGhlbg0K ICBsaW5rcyB0byBpdCBmcm9tIHRoZSBjdXJyZW50IGZpbGUuIElmIHRoZXJlIGFyZSBtdWx0aXBs ZSBqb3VybmFsDQogIGVudHJpZXMgZm9yIHRoZSBzYW1lIGRheSwgaXQgcHJvbXB0cyB0byBzZWxl Y3Qgb25lIGFtb25nIHRoZW0gYW5kIHRoZW4NCiAgbGlua3MgdG8gaXQuIFdoZW4gY2FsbGVkIHdp dGggYW4gb3B0aW9uYWwgcHJlZml4IGFyZ3VtZW50IChzdWNoIGFzDQogIGBDLXUnIHdpdGggZGVm YXVsdCBrZXkgYmluZGluZ3MpLCB0aGUgY29tbWFuZCBwcm9tcHRzIGZvciBhIGRhdGUgYW5kDQog IHRoZW4gcGVyZm9ybXMgdGhlIGFmb3JlbWVudGlvbmVkLiBXaXRoIGEgZG91YmxlIHByZWZpeCBh cmd1bWVudCAoYEMtdQ0KICBDLXUnKSwgaXQgYWxzbyBwcm9kdWNlcyBhIGxpbmsgd2hvc2UgZGVz Y3JpcHRpb24gaW5jbHVkZXMganVzdCB0aGUNCiAgZmlsZeKAmXMgaWRlbnRpZmllci4NCg0KDQoy LjQgVGhlIGBkZW5vdGUtam91cm5hbC1kaXJlY3RvcnknDQrilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIANCg0KICBOZXcgam91cm5hbCBlbnRyaWVzIGFyZSBwbGFj ZWQgaW4gdGhlIGBkZW5vdGUtam91cm5hbC1kaXJlY3RvcnknLA0KICB3aGljaCBkZWZhdWx0cyB0 byBhIHN1YmRpcmVjdG9yeSBvZiBgZGVub3RlLWRpcmVjdG9yeScgY2FsbGVkDQogIGBqb3VybmFs Jy4NCg0KICBJZiBgZGVub3RlLWpvdXJuYWwtZGlyZWN0b3J5JyBpcyBuaWwsIHRoZSBgZGVub3Rl LWRpcmVjdG9yeScgaXMgdXNlZC4NCiAgSm91cm5hbCBlbnRyaWVzIHdpbGwgdGh1cyBiZSBpbiBh IGZsYXQgbGlzdGluZyB0b2dldGhlciB3aXRoIGFsbCBvdGhlcg0KICBub3Rlcy4gVGhleSBjYW4g c3RpbGwgYmUgcmV0cmlldmVkIGVhc2lseSBieSBzZWFyY2hpbmcgZm9yIHRoZQ0KICBgZGVub3Rl LWpvdXJuYWwta2V5d29yZCcgKHJlYWQgdGhlIERlbm90ZSBtYW51YWwgYWJvdXQg4oCcRmVhdHVy ZXMgb2YNCiAgdGhlIGZpbGUtbmFtaW5nIHNjaGVtZSBmb3Igc2VhcmNoaW5nIG9yIGZpbHRlcmlu Z+KAnSkuDQoNCg0KMi41IFRpdGxlIGZvcm1hdCBvZiBuZXcgam91cm5hbCBlbnRyaWVzDQrilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAN Cg0KICBOZXcgam91cm5hbCBlbnRyaWVzIHdpbGwgdXNlIHRoZSBjdXJyZW50IGRhdGUgYXMgdGhl IHRpdGxlIG9mIHRoZSBuZXcNCiAgZW50cnkuIFRoZSBleGFjdCBmb3JtYXQgaXMgY29udHJvbGxl ZCBieSB0aGUgdXNlciBvcHRpb24NCiAgYGRlbm90ZS1qb3VybmFsLXRpdGxlLWZvcm1hdCcuIEFj Y2VwdGFibGUgdmFsdWVzIGZvciB0aGlzIHVzZXIgb3B0aW9uDQogIGFuZCB0aGVpciBjb3JyZXNw b25kaW5nIHN0eWxlcyBhcmU6DQoNCiAg4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSBDQogICBTeW1ib2wgICAgICAgICAgICAg ICAgICAgU3R5bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIANCiAg IGRheSAgICAgICAgICAgICAgICAgICAgICBNb25kYXkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgDQogICBkYXktZGF0ZS1tb250aC15ZWFyICAgICAgTW9uZGF5IDE5IFNlcHRlbWJlciAyMDIz ICAgICAgICAgIA0KICAgZGF5LWRhdGUtbW9udGgteWVhci0yNGggIE1vbmRheSAxOSBTZXB0ZW1i ZXIgMjAyMyAyMDo0OSAgICANCiAgIGRheS1kYXRlLW1vbnRoLXllYXItMTJoICBNb25kYXkgMTkg U2VwdGVtYmVyIDIwMjMgMDg6NDkgUE0gDQogIOKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgQ0KDQogIEZvciBleGFtcGxlOg0K DQogIOKUjOKUgOKUgOKUgOKUgA0KICDilIIgKHNldHEgZGVub3RlLWpvdXJuYWwtdGl0bGUtZm9y bWF0ICdkYXktZGF0ZS1tb250aC15ZWFyKQ0KICDilJTilIDilIDilIDilIANCg0KICBJZiB0aGUg dmFsdWUgb2YgdGhpcyB1c2VyIG9wdGlvbiBpcyBgbmlsJywgdGhlbiB0aGUgY29tbWFuZA0KICBg ZGVub3RlLWpvdXJuYWwtbmV3LWVudHJ5JyB3aWxsIHByb21wdCBmb3IgYSB0aXRsZS4gSW4gdGVy bXMgb2YNCiAgd29ya2Zsb3csIHVzaW5nIHRoZSBjdXJyZW50IGRhdGUgYXMgdGhlIHRpdGxlIGlz IGJldHRlciBmb3INCiAgbWFpbnRhaW5pbmcgYSBkYWlseSBqb3VybmFsLiBBIHByb21wdCBmb3Ig YW4gYXJiaXRyYXJ5IHRpdGxlIGlzIG1vcmUNCiAgc3VpdGFibGUgZm9yIHRob3NlIHdobyBsaWtl IHRvIGtlZXAgYSByZWNvcmQgb2Ygc29tZXRoaW5nIGxpa2UgYQ0KICB0aG91Z2h0IG9yIGV2ZW50 ICh0aG91Z2ggdGhpcyBjYW4gYWxzbyBiZSBhY2hpZXZlZCB3aXRoIHRoZSByZWd1bGFyDQogIGBk ZW5vdGUnIGNvbW1hbmQgb3IgYSB2YXJpYW50IHRoZXJlb2YgbGlrZSBgZGVub3RlLXN1YmRpcmVj dG9yeScpLg0KDQoNCjIuNiBDcmVhdGUgYSBqb3VybmFsIGVudHJ5IHVzaW5nIE9yZyBjYXB0dXJl DQrilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIANCg0KICBVc2VycyB3aG8gcHJlZmVyIHRvIGNvbnNvbGlkYXRl IGFsbCB0aGVpciBub3RlLWNyZWF0aW5nIG9yIHRvZG8tbWFraW5nDQogIGNvbW1hbmRzIGluIHRo ZSBgb3JnLWNhcHR1cmUnIGludGVyZmFjZSB3aWxsIHdhbnQgdG8gdXNlIGEgdmFyaWFudCBvZg0K ICBgZGVub3RlLWpvdXJuYWwtbmV3LW9yLWV4aXN0aW5nLWVudHJ5JyAoW0NyZWF0ZSBhIG5ldyBq b3VybmFsIGVudHJ5IG9yDQogIHVzZSBhbiBleGlzdGluZyBvbmVdKToNCg0KICDilIzilIDilIDi lIDilIANCiAg4pSCICh3aXRoLWV2YWwtYWZ0ZXItbG9hZCAnb3JnLWNhcHR1cmUNCiAg4pSCICAg KGFkZC10by1saXN0ICdvcmctY2FwdHVyZS10ZW1wbGF0ZXMNCiAg4pSCIAkgICAgICAgJygiaiIg IkpvdXJuYWwiIGVudHJ5DQogIOKUgiAJCSAoZmlsZSBkZW5vdGUtam91cm5hbC1wYXRoLXRvLW5l dy1vci1leGlzdGluZy1lbnRyeSkNCiAg4pSCIAkJICIqICVVICU/XG4laVxuJWEiDQogIOKUgiAJ CSA6a2lsbC1idWZmZXIgdA0KICDilIIgCQkgOmVtcHR5LWxpbmVzIDEpKSkNCiAg4pSU4pSA4pSA 4pSA4pSADQoNCiAgVXNpbmcgdGhlIGFib3ZlLCBpcyB0aGUgc2FtZSBhcyBjYWxsaW5nIHRoZSBj b21tYW5kDQogIGBkZW5vdGUtam91cm5hbC1uZXctb3ItZXhpc3RpbmctZW50cnknIGFuZCB0aGVu IG1hbnVhbGx5IGFwcGVuZGluZyBhDQogIGhlYWRpbmcgd2l0aCBhIHRpbWVzdGFtcCBhZnRlciB0 aGUgZmlsZeKAmXMgZnJvbnQgbWF0dGVyLiBUaGUgdGVtcGxhdGUNCiAgc2hvd24gYWJvdmUgY2Fu IGJlIG1vZGlmaWVkIGFjY29yZGluZ2x5LCBpbiBhY2NvcmRhbmNlIHdpdGggdGhlDQogIGRvY3Vt ZW50YXRpb24gb2YgYG9yZy1jYXB0dXJlLXRlbXBsYXRlcycuDQoNCg0KW0NyZWF0ZSBhIG5ldyBq b3VybmFsIGVudHJ5IG9yIHVzZSBhbiBleGlzdGluZyBvbmVdIFNlZSBzZWN0aW9uIDIuMg0KDQoN CjIuNyBUaGUgYGRlbm90ZS1qb3VybmFsLWhvb2snDQrilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIANCg0KICBBbGwgY29tbWFuZHMgdGhhdCBjcmVhdGUgYSBuZXcgam91cm5hbCBlbnRyeSBj YWxsIHRoZSBub3JtYWwgaG9vaw0KICBgZGVub3RlLWpvdXJuYWwtaG9vaycgYXMgYSBmaW5hbCBz dGVwLiBUaGUgdXNlciBjYW4gbGV2ZXJhZ2UgdGhpcyB0bw0KICBwcm9kdWNlIGNvbnNlcXVlbmNl cyB0aGVyZWZyb20sIHN1Y2ggYXMgdG8gc2V0IGEgdGltZXIgd2l0aCB0aGUgYHRtcicNCiAgcGFj a2FnZSBmcm9tIEdOVSBFTFBBIChbSm91cm5hbGluZyB3aXRoIGEgdGltZXJdKS4NCg0KDQpbSm91 cm5hbGluZyB3aXRoIGEgdGltZXJdIFNlZSBzZWN0aW9uIDIuOA0KDQoNCjIuOCBKb3VybmFsaW5n IHdpdGggYSB0aW1lcg0K4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCiAgU29tZXRpbWVzIGpv dXJuYWxpbmcgaXMgZG9uZSB3aXRoIHRoZSBpbnRlbnQgdG8gaG9uZSBvbmXigJlzIHdyaXRpbmcN CiAgc2tpbGxzLiBQZXJoYXBzIHlvdSBhcmUgbGVhcm5pbmcgYSBuZXcgbGFuZ3VhZ2Ugb3Igd2lz aCB0byBjb21tdW5pY2F0ZQ0KICB5b3VyIGlkZWFzIHdpdGggZ3JlYXRlciBjbGFyaXR5IGFuZCBw cmVjaXNpb24uIEFzIHdpdGggZXZlcnl0aGluZyB0aGF0DQogIHJlcXVpcmVzIGEgZGVncmVlIG9m IHNvcGhpc3RpY2F0aW9uLCB5b3UgaGF2ZSB0byB3b3JrIGZvciBpdOKAlHdyaXRlLA0KICB3cml0 ZSwgd3JpdGUhDQoNCiAgT25lIHdheSB0byB0ZXN0IHlvdXIgcHJvZ3Jlc3MgaXMgdG8gc2V0IGEg dGltZXIuIEl0IGhlbHBzIHlvdSBnYXVnZQ0KICB5b3VyIG91dHB1dCBhbmQgaXRzIHF1YWxpdHku IFRvIHVzZSBhIHRpbWVyIHdpdGggRW1hY3MsIGNvbnNpZGVyIHRoZQ0KICBgdG1yJyBwYWNrYWdl IChQcm90ZXNpbGFvcyBpcyB0aGUgb3JpZ2luYWwgYXV0aG9yIGFuZCBtYWludGFpbmVyKS4gQQ0K ICBuZXcgdGltZXIgY2FuIGJlIHNldCB3aXRoIHNvbWV0aGluZyBsaWtlIHRoaXM6DQoNCiAg4pSM 4pSA4pSA4pSA4pSADQogIOKUgiA7OyBTZXQgMTAgbWludXRlIHRpbWVyIHdpdGggdGhlIGdpdmVu IGRlc2NyaXB0aW9uDQogIOKUgiAodG1yICIxMCIgIlByYWN0aWNlIHdyaXRpbmcgaW4gbXkgam91 cm5hbCIpDQogIOKUlOKUgOKUgOKUgOKUgA0KDQogIFRvIG1ha2UgdGhpcyB0aW1lciBzdGFydCBh cyBzb29uIGFzIGEgbmV3IGpvdXJuYWwgZW50cnkgaXMgY3JlYXRlZCBhZGQNCiAgYSBmdW5jdGlv biB0byB0aGUgYGRlbm90ZS1qb3VybmFsLWhvb2snIChbVGhlIGBkZW5vdGUtam91cm5hbC1ob29r J10pLg0KICBGb3IgZXhhbXBsZToNCg0KICDilIzilIDilIDilIDilIANCiAg4pSCIDs7IEFkZCBh biBhbm9ueW1vdXMgZnVuY3Rpb24sIHdoaWNoIGlzIG1vcmUgZGlmZmljdWx0IHRvIG1vZGlmeSBh ZnRlcg0KICDilIIgOzsgdGhlIGZhY3Q6DQogIOKUgiAoYWRkLWhvb2sgJ2Rlbm90ZS1qb3VybmFs LWhvb2sgKGxhbWJkYSAoKSAodG1yICIxMCIgIlByYWN0aWNlIHdyaXRpbmcgaW4gbXkgam91cm5h bCIpKSkNCiAg4pSCIA0KICDilIIgOzsgT3Igd3JpdGUgYSBzbWFsbCBmdW5jdGlvbiB0aGF0IHlv dSBjYW4gdGhlbiBtb2RpZnkgd2l0aG91dA0KICDilIIgOzsgcmV2YWx1YXRpbmcgdGhlIGhvb2s6 DQogIOKUgiAoZGVmdW4gbXktZGVub3RlLXRtciAoKQ0KICDilIIgICAodG1yICIxMCIgIlByYWN0 aWNlIHdyaXRpbmcgaW4gbXkgam91cm5hbCIpKQ0KICDilIIgDQogIOKUgiA7OyBOb3cgYWRkIHlv dXIgbmFtZWQgZnVuY3Rpb24gdG8gdGhlIGhvb2s6DQogIOKUgiAoYWRkLWhvb2sgJ2Rlbm90ZS1q b3VybmFsLWhvb2sgIydteS1kZW5vdGUtdG1yKQ0KICDilIIgDQogIOKUgiA7OyBPciB0byBtYWtl IGl0IGZ1bGx5IGZlYXR1cmVkISAgRGVmaW5lIHZhcmlhYmxlcyBmb3IgdGhlIGR1cmF0aW9uDQog IOKUgiA7OyBhbmQgdGhlIGRlc2NyaXB0aW9uIGFuZCBzZXQgaXQgdXAgc28gdGhhdCB5b3Ugb25s eSBuZWVkIHRvIG1vZGlmeQ0KICDilIIgOzsgdGhvc2UgaW5zdGVhZCBvZiB0aGUgZnVuY3Rpb246 DQogIOKUgiAoZGVmdmFyIG15LWRlbm90ZS10bXItZHVyYXRpb24gIjEwIikNCiAg4pSCIA0KICDi lIIgKGRlZnZhciBteS1kZW5vdGUtdG1yLWRlc2NyaXB0aW9uICJQcmFjdGljZSB3cml0aW5nIGlu IG15IGpvdXJuYWwiKQ0KICDilIIgDQogIOKUgiAoZGVmdW4gbXktZGVub3RlLXRtciAoKQ0KICDi lIIgICAodG1yIG15LWRlbm90ZS10bXItZHVyYXRpb24gbXktZGVub3RlLXRtci1kZXNjcmlwdGlv bikpDQogIOKUgiANCiAg4pSCIChhZGQtaG9vayAnZGVub3RlLWpvdXJuYWwtaG9vayAjJ215LWRl bm90ZS10bXIpDQogIOKUlOKUgOKUgOKUgOKUgA0KDQogIE9uY2UgdGhlIHRpbWVyIGVsYXBzZXMs IHN0b3Agd3JpdGluZyBhbmQgcmV2aWV3IHlvdXIgcGVyZm9ybWFuY2UuDQogIFByYWN0aWNlIG1h a2VzIHBlcmZlY3QhDQoNCiAgU291cmNlcyBmb3IgYHRtcic6DQoNCiAg4oGDIFBhY2thZ2UgbmFt ZSAoR05VIEVMUEEpOiBgdG1yJw0KICDigYMgT2ZmaWNpYWwgbWFudWFsOiA8aHR0cHM6Ly9wcm90 ZXNpbGFvcy5jb20vZW1hY3MvdG1yPg0KICDigYMgQ2hhbmdlIGxvZzogPGh0dHBzOi8vcHJvdGVz aWxhb3MuY29tL2VtYWNzL3Rtci1jaGFuZ2Vsb2c+DQogIOKBgyBHaXQgcmVwb3NpdG9yaWVzOg0K ICAgIOKBgyBHaXRIdWI6IDxodHRwczovL2dpdGh1Yi5jb20vcHJvdGVzaWxhb3MvdG1yPg0KICAg IOKBgyBHaXRMYWI6IDxodHRwczovL2dpdGxhYi5jb20vcHJvdGVzaWxhb3MvdG1yPg0KICDigYMg QmFja3JvbnltOiBUTVIgTWF5IFJpbmc7IFRpbWVyIE11c3QgUnVuLg0KDQoNCltUaGUgYGRlbm90 ZS1qb3VybmFsLWhvb2snXSBTZWUgc2VjdGlvbiAyLjcNCg0KDQozIEluc3RhbGxhdGlvbg0K4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQDQoNCg0KDQoNCjMuMSBHTlUg RUxQQSBwYWNrYWdlDQrilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIANCg0KICBUaGUgcGFja2FnZSBpcyBhdmFpbGFibGUgYXMgYGRlbm90 ZS1qb3VybmFsJy4gIFNpbXBseSBkbzoNCg0KICDilIzilIDilIDilIDilIANCiAg4pSCIE0teCBw YWNrYWdlLXJlZnJlc2gtY29udGVudHMNCiAg4pSCIE0teCBwYWNrYWdlLWluc3RhbGwNCiAg4pSU 4pSA4pSA4pSA4pSADQoNCg0KICBBbmQgc2VhcmNoIGZvciBpdC4NCg0KICBHTlUgRUxQQSBwcm92 aWRlcyB0aGUgbGF0ZXN0IHN0YWJsZSByZWxlYXNlLiAgVGhvc2Ugd2hvIHByZWZlciB0bw0KICBm b2xsb3cgdGhlIGRldmVsb3BtZW50IHByb2Nlc3MgaW4gb3JkZXIgdG8gcmVwb3J0IGJ1Z3Mgb3Ig c3VnZ2VzdA0KICBjaGFuZ2VzLCBjYW4gdXNlIHRoZSB2ZXJzaW9uIG9mIHRoZSBwYWNrYWdlIGZy b20gdGhlIEdOVS1kZXZlbCBFTFBBDQogIGFyY2hpdmUuICBSZWFkOg0KICA8aHR0cHM6Ly9wcm90 ZXNpbGFvcy5jb20vY29kZWxvZy8yMDIyLTA1LTEzLWVtYWNzLWVscGEtZGV2ZWwvPi4NCg0KDQoz LjIgTWFudWFsIGluc3RhbGxhdGlvbg0K4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCiAgQXNzdW1pbmcgeW91ciBF bWFjcyBmaWxlcyBhcmUgZm91bmQgaW4gYH4vLmVtYWNzLmQvJywgZXhlY3V0ZSB0aGUNCiAgZm9s bG93aW5nIGNvbW1hbmRzIGluIGEgc2hlbGwgcHJvbXB0Og0KDQogIOKUjOKUgOKUgOKUgOKUgA0K ICDilIIgY2Qgfi8uZW1hY3MuZA0KICDilIIgDQogIOKUgiAjIENyZWF0ZSBhIGRpcmVjdG9yeSBm b3IgbWFudWFsbHktaW5zdGFsbGVkIHBhY2thZ2VzDQogIOKUgiBta2RpciBtYW51YWwtcGFja2Fn ZXMNCiAg4pSCIA0KICDilIIgIyBHbyB0byB0aGUgbmV3IGRpcmVjdG9yeQ0KICDilIIgY2QgbWFu dWFsLXBhY2thZ2VzDQogIOKUgiANCiAg4pSCICMgQ2xvbmUgdGhpcyByZXBvLCBuYW1pbmcgaXQg ImRlbm90ZS1qb3VybmFsIg0KICDilIIgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9wcm90 ZXNpbGFvcy9kZW5vdGUtam91cm5hbCBkZW5vdGUtam91cm5hbA0KICDilJTilIDilIDilIDilIAN Cg0KICBGaW5hbGx5LCBpbiB5b3VyIGBpbml0LmVsJyAob3IgZXF1aXZhbGVudCkgZXZhbHVhdGUg dGhpczoNCg0KICDilIzilIDilIDilIDilIANCiAg4pSCIDs7IE1ha2UgRWxpc3AgZmlsZXMgaW4g dGhhdCBkaXJlY3RvcnkgYXZhaWxhYmxlIHRvIHRoZSB1c2VyLg0KICDilIIgKGFkZC10by1saXN0 ICdsb2FkLXBhdGggIn4vLmVtYWNzLmQvbWFudWFsLXBhY2thZ2VzL2Rlbm90ZS1qb3VybmFsIikN CiAg4pSU4pSA4pSA4pSA4pSADQoNCiAgRXZlcnl0aGluZyBpcyBpbiBwbGFjZSB0byBzZXQgdXAg dGhlIHBhY2thZ2UuDQoNCg0KNCBTYW1wbGUgY29uZmlndXJhdGlvbg0K4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQDQoNCiAg 4pSM4pSA4pSA4pSA4pSADQogIOKUgiAodXNlLXBhY2thZ2UgZGVub3RlLWpvdXJuYWwNCiAg4pSC ICAgOmVuc3VyZSB0DQogIOKUgiAgIDs7IEJpbmQgdGhvc2UgdG8gc29tZSBrZXkgZm9yIHlvdXIg Y29udmVuaWVuY2UuDQogIOKUgiAgIDpjb21tYW5kcyAoIGRlbm90ZS1qb3VybmFsLW5ldy1lbnRy eQ0KICDilIIgCSAgICAgIGRlbm90ZS1qb3VybmFsLW5ldy1vci1leGlzdGluZy1lbnRyeQ0KICDi lIIgCSAgICAgIGRlbm90ZS1qb3VybmFsLWxpbmstb3ItY3JlYXRlLWVudHJ5ICkNCiAg4pSCICAg OmNvbmZpZw0KICDilIIgICA7OyBVc2UgdGhlICJqb3VybmFsIiBzdWJkaXJlY3Rvcnkgb2YgdGhl IGBkZW5vdGUtZGlyZWN0b3J5Jy4gIFNldCB0aGlzDQogIOKUgiAgIDs7IHRvIG5pbCB0byB1c2Ug dGhlIGBkZW5vdGUtZGlyZWN0b3J5JyBpbnN0ZWFkLg0KICDilIIgICAoc2V0cSBkZW5vdGUtam91 cm5hbC1kaXJlY3RvcnkNCiAg4pSCIAkoZXhwYW5kLWZpbGUtbmFtZSAiam91cm5hbCIgZGVub3Rl LWRpcmVjdG9yeSkpDQogIOKUgiAgIDs7IERlZmF1bHQga2V5d29yZCBmb3IgbmV3IGpvdXJuYWwg ZW50cmllcy4gSXQgY2FuIGFsc28gYmUgYSBsaXN0IG9mDQogIOKUgiAgIDs7IHN0cmluZ3MuDQog IOKUgiAgIChzZXRxIGRlbm90ZS1qb3VybmFsLWtleXdvcmQgImpvdXJuYWwiKQ0KICDilIIgICA7 OyBSZWFkIHRoZSBkb2Mgc3RyaW5nIG9mIGBkZW5vdGUtam91cm5hbC10aXRsZS1mb3JtYXQnLg0K ICDilIIgICAoc2V0cSBkZW5vdGUtam91cm5hbC10aXRsZS1mb3JtYXQgJ2RheS1kYXRlLW1vbnRo LXllYXIpKQ0KICDilJTilIDilIDilIDilIANCg0KDQo1IEFja25vd2xlZGdlbWVudHMNCuKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIERl bm90ZSBKb3VybmFsIGlzIG1lYW50IHRvIGJlIGEgY29sbGVjdGl2ZSBlZmZvcnQuICBFdmVyeSBi aXQgb2YgaGVscA0KICBtYXR0ZXJzLg0KDQogIEF1dGhvci9tYWludGFpbmVyDQogICAgICAgIFBy b3Rlc2lsYW9zIFN0YXZyb3UuDQoNCg0KNiBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UN CuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQoNCjcgSW5kaWNlcw0K 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQDQoNCjcuMSBGdW5jdGlvbiBpbmRleA0K4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCg0KNy4y IFZhcmlhYmxlIGluZGV4DQrilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIANCg0KDQo3LjMgQ29uY2VwdCBpbmRleA0K4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQo=