[ruby-core:115099] [Ruby master Feature#19541] Proposal: Generate frame unwinding info for YJIT code
From:
"kjtsanaktsidis (KJ Tsanaktsidis) via ruby-core" <ruby-core@...>
Date:
2023-10-18 23:03:37 UTC
List:
ruby-core #115099
SXNzdWUgIzE5NTQxIGhhcyBiZWVuIHVwZGF0ZWQgYnkga2p0c2FuYWt0c2lkaXMgKEtKIFRzYW5h a3RzaWRpcykuDQ0KDQ0KDQ0KVGhhdCdzIGF3ZXNvbWUgYW5kIEknbSBzdXBlciBsb29raW5nIGZv cndhcmQgdG8gdHJ5aW5nIHRvIHByb2ZpbGUgb3VyIGFwcHMgd2l0aCBgcGVyZmAgb25jZSBJIGZp bmFsbHkgZ2V0IFlKSVQgZW5hYmxlZCEgQXNzdW1pbmcgbW9zdCBvZiB0aGUgaG90IGNvZGUgdHVy bnMgb3V0IHRvIGJlIEpJVCdkLCB0aGlzIHNob3VsZCBkZWZpbml0ZWx5IGdpdmUgYSBmYWlybHkg Z29vZCBwaWN0dXJlIG9mIHRoZSBSdWJ5IHN0YWNrLg0NCg0NCk9uZSBxdWVzdGlvbiAtIHRoZSBw ZXJmIG1hcCBmaWxlIGlzIGdvaW5nIHRvIGdyb3cgd2l0aG91dCBib3VuZCBmb3IgYSBsb25nLXJ1 bm5pbmcgcHJvY2VzcywgcmlnaHQ/IEkgZ3Vlc3MgdGhlcmUncyBubyByZWFsIHdheSBhcm91bmQg dGhpcyBiYXNlZCBvbiBob3cgdGhlIGZpbGUgaXMgc3BlY2lmaWVkIHRob3VnaC4uLiBJJ2xsIGhh dmUgYSBsb29rIGF0IHRoYXQgcHJvYmxlbSB3aGVuIEkgYWN0dWFsbHkgcnVuIGludG8gaXQgYW55 d2F5Lg0NCg0NClRoaXMgYWxzbyBkb2Vzbid0IGFkZHJlc3MgZGVidWdnZXIgc3VwcG9ydCwgYnV0 IG1heWJlIGZvciB0aGF0IEkgbWlnaHQgZ28gcG9rZSBhdCBHREIgKGljaykgYW5kIHNlZSBpZiBp dCBjYW4gYSkgYmUgbWFkZSB0byB0cnkgZnJhbWUgcG9pbnRlciB1bndpbmRpbmcgdW5jb25kaXRp b25hbGx5LCBhbmQgYikgdXNlIHRoZSBwZXJmIG1hcCBmaWxlIGFzIGEgc291cmNlIG9mIHN5bWJv bHMuDQ0KDQ0KQW55d2F5IHRoYW5rcyBzbyBtdWNoIGZvciB3b3JraW5nIG9uIHRoaXMsIGl0J3Mg Z29pbmcgdG8gYmUgcmVhbGx5IHVzZWZ1bCBJIHRoaW5rLg0NCg0NCg0NCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NDQpGZWF0dXJlICMxOTU0MTogUHJvcG9zYWw6IEdl bmVyYXRlIGZyYW1lIHVud2luZGluZyBpbmZvIGZvciBZSklUIGNvZGUNDQpodHRwczovL2J1Z3Mu cnVieS1sYW5nLm9yZy9pc3N1ZXMvMTk1NDEjY2hhbmdlLTEwNTAwMw0NCg0NCiogQXV0aG9yOiBr anRzYW5ha3RzaWRpcyAoS0ogVHNhbmFrdHNpZGlzKQ0NCiogU3RhdHVzOiBGZWVkYmFjaw0NCiog UHJpb3JpdHk6IE5vcm1hbA0NCiogQXNzaWduZWU6IHlqaXQNDQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQ0KIyMgV2hhdCBpcyBiZWluZyBwcm9wc2VkPw0NCg0NCkN1 cnJlbnRseSwgd2hlbiBSdWJ5IGNyYXNoZXMgd2l0aCB5aml0IGdlbmVyYXRlZCBjb2RlIG9uIHRo ZSBzdGFjaywgYHJiX3ByaW50X2JhY2t0cmFjZSgpYCBpcyB1bmFibGUgdG8gYWN0dWFsbHkgc2hv dyBhbnkgZnJhbWVzIHVuZGVybmVhdGggdGhlIHlqaXQgY29kZS4gRm9yIGV4YW1wbGUsIGlmIHlv dSBzZW5kIFNJR1NFR1YgdG8gYSBSdWJ5IHByb2Nlc3MgcnVubmluZyB5aml0LCB0aGlzIGlzIHdo YXQgeW91IHNlZToNDQoNDQpgYGANDQovcnVieS9taW5pcnVieShyYl9wcmludF9iYWNrdHJhY2Ur MHhjKSBbMHhhYWFhZDAyNzY4ODRdIC9ydWJ5L3ZtX2R1bXAuYzo3ODUNDQovcnVieS9taW5pcnVi eShyYl92bV9idWdyZXBvcnQpIC9ydWJ5L3ZtX2R1bXAuYzoxMDkzDQ0KL3J1YnkvbWluaXJ1Ynko cmJfYnVnX2Zvcl9mYXRhbF9zaWduYWwrMHhkMCkgWzB4YWFhYWQwMDc1NTgwXSAvcnVieS9lcnJv ci5jOjgxMw0NCi9ydWJ5L21pbmlydWJ5KHNpZ3NlZ3YrMHg1YykgWzB4YWFhYWQwMWJlZGFjXSAv cnVieS9zaWduYWwuYzo5MTkNDQpsaW51eC12ZHNvLnNvLjEoX19rZXJuZWxfcnRfc2lncmV0dXJu KzB4MCkgWzB4ZmZmZjkxYTNlOGJjXQ0NCi9ydWJ5L21pbmlydWJ5KG1hcDwodXNpemUsIHlqaXQ6 OmJhY2tlbmQ6OmlyOjpJbnNuKSwgKHVzaXplLCB5aml0OjpiYWNrZW5kOjppcjo6SW5zbiksIHlq aXQ6OmJhY2tlbmQ6OmlyOjp7aW1wbCMxN306Om5leHRfbWFwcGVkOjp7Y2xvc3VyZV9lbnYjMH0+ KzB4OGMpIFsweGFhYWFkMDNiOGIwMF0gL3J1c3RjLzg5N2UzNzU1M2JiYThiNDI3NTFjNjc2NTg5 Njc4ODlkMTFlY2QxMjAvbGlicmFyeS9jb3JlL3NyYy9vcHRpb24ucnM6OTI5DQ0KL3J1YnkvbWlu aXJ1YnkobmV4dF9tYXBwZWQrMHgzYykgWzB4YWFhYWQwMjkxZGMwXSBzcmMvYmFja2VuZC9pci5y czoxMjI1DQ0KL3J1YnkvbWluaXJ1YnkoYXJtNjRfc3BsaXQrMHgxMTQpIFsweGFhYWFkMDI4Nzc0 NF0gc3JjL2JhY2tlbmQvYXJtNjQvbW9kLnJzOjM1OQ0NCi9ydWJ5L21pbmlydWJ5KGNvbXBpbGVf d2l0aF9yZWdzKzB4ODApIFsweGFhYWFkMDI4YmY4NF0gc3JjL2JhY2tlbmQvYXJtNjQvbW9kLnJz OjExMDYNDQovcnVieS9taW5pcnVieShjb21waWxlKzB4YzQpIFsweGFhYWFkMDI5MWFlMF0gc3Jj L2JhY2tlbmQvaXIucnM6MTE1OA0NCi9ydWJ5L21pbmlydWJ5KGdlbl9zaW5nbGVfYmxvY2srMHhl NDQpIFsweGFhYWFkMDJiMWY4OF0gc3JjL2NvZGVnZW4ucnM6ODU0DQ0KL3J1YnkvbWluaXJ1Ynko Z2VuX2Jsb2NrX3Nlcmllc19ib2R5KzB4OWMpIFsweGFhYWFkMDNiMDI1MF0gc3JjL2NvcmUucnM6 MTY5OA0NCi9ydWJ5L21pbmlydWJ5KGdlbl9ibG9ja19zZXJpZXMrMHg1MCkgWzB4YWFhYWQwM2Iw MTAwXSBzcmMvY29yZS5yczoxNjc2DQ0KL3J1YnkvbWluaXJ1YnkoYnJhbmNoX3N0dWJfaGl0X2Jv ZHkrMHg4MGMpIFsweGFhYWFkMDNiMWY2OF0gc3JjL2NvcmUucnM6MjAyMQ0NCi9ydWJ5L21pbmly dWJ5KHtjbG9zdXJlIzB9KzB4MjgpIFsweGFhYWFkMDJlYjg2Y10gc3JjL2NvcmUucnM6MTkyNA0N Ci9ydWJ5L21pbmlydWJ5KGRvX2NhbGw8eWppdDo6Y29yZTo6YnJhbmNoX3N0dWJfaGl0Ojp7Y2xv c3VyZV9lbnYjMH0sICpjb25zdCB1OD4rMHg5OCkgWzB4YWFhYWQwMzViYTNjXSAvcnVzdGMvODk3 ZTM3NTUzYmJhOGI0Mjc1MWM2NzY1ODk2Nzg4OWQxMWVjZDEyMC9saWJyYXJ5L3N0ZC9zcmMvcGFu aWNraW5nLnJzOjQ5Mg0NClsweGFhYWFkMDM1YzliNF0NDQpgYGANDQoNDQoobi5iLiAtIEkgY29t cGlsZWQgUnVieSB3aXRoIGAtZmFzeW5jaHJvbm91cy11bndpbmQtdGFibGVzIOKAk3JkeW5hbWlj IOKAk2dgIGluIGNmbGFncyB0byBtYWtlIHN1cmUgZ2NjIGdlbmVyYXRlcyBhcHByb3ByaWF0ZSB1 bndpbmQgaW5mbyAmIGtlZXBzIHRoZSBzeW1ib2wgdGFibGVzKS4NDQoNDQpMaWtld2lzZSwgaWYg eW91IGF0dGFjaCBnZGIgdG8gYSBSdWJ5IHByb2Nlc3Mgd2l0aCB5aml0IGVuYWJsZWQsIGdkYiBj YW4ndCBzaG93IHRocmVhZCBiYWNrdHJhY2VzIHRocm91Z2ggeWppdC1nZW5lcmF0ZWQgY29kZSBl aXRoZXIuDQ0KDQ0KTXkgcHJvcG9zYWwgaXMgdGhhdCBZSklUIGdlbmVyYXRlIHN1ZmZpY2llbnQg dW53aW5kaW5nIGFuZCBkZWJ1ZyBpbmZvcm1hdGlvbiBvbiBhbGwgcGxhdGZvcm1zIHRvIGFsbG93 IGJvdGggYHJiX3ByaW50X2JhY2t0cmFjZSgpYCBhbmQgdGhlIHBsYXRmb3JtJ3MgZGVidWdnZXIg KGdkYi9sbGRiL1dpbkRiZykgdG8gc2hvdzoNDQoNDQoqIEZ1bGwgc3RhY2sgdHJhY2VzIGFsbCB0 aGUgd2F5IGJhY2sgdG8gYG1haW5gLiBUaGF0IGlzLCBpdCBzaG91bGQgYmUgcG9zc2libGUgdG8g c2VlIGZyYW1lcyBfdW5kZXJuZWF0aF8gYFsweGFhYWFkMDM1YzliNF1gIGZyb20gdGhlIGJhY2t0 cmFjZSBhYm92ZS4NDQoqIE5hbWVzIGZvciB0aGUgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIHlqaXQg YmxvY2tzIChlLmcuIGluc3RlYWQgb2YgYFsweGFhYWFkMDM1YzliNF1gLCB3ZSBzaG91bGQgc2Vl IHNvbWV0aGluZyBsaWtlIGB5aml0JCRuYW1lX29mX3J1YnlfbWV0aG9kYCwgd2hlcmUgYG5hbWVf b2ZfcnVieV9tZXRob2RgIGlzIHRoZSBgbGFiZWxgIGZvciB0aGUgaXNlcSB0aGlzIGlzIEpJVCdk IGNvZGUgZm9yKS4NDQoNDQojIyBNb3RpdmF0aW9uDQ0KDQ0KSSBoYXZlIGEgZmV3IG1vdGl2YXRp b25zIGZvciB3YW50aW5nIHRoaXMuIEZpcnN0bHksIEkgZmVlbCB0aGlzIGZ1bmN0aW9uYWxpdHkg aXMgaW5kZXBlbmRlbnRseSB1c2VmdWwuIFdoZW4gUnVieSBjcmFzaGVzLCB0aGUgbW9yZSBpbmZv cm1hdGlvbiB3ZSBjYW4gZ2V0LCB0aGUgbW9yZSBsaWtlbHkgd2UgYXJlIHRvIGZpbmQgdGhlIHJv b3QgY2F1c2UuIExpa2V3aXNlLCB0aGUgc2FtZSBwcmluY2lwbGUgYXBwbGllcyB0byBkZWJ1Z2dp bmcgd2l0aCBnZGIgLSB5b3UgY2FuIGdldCBhIGZ1bGxlciB1bmRlcnN0YW5kaW5nIG9mIHdoYXQg dGhlIHByb2Nlc3MgaXMgZG9pbmcgaWYgeW91IHNlZSB0aGUgd2hvbGUgc3RhY2suDQ0KDQ0KSSBo YXZlIG9mdGVuIGZvdW5kIGF0dGFjaGluZyBnZGIgdG8gdGhlIFJ1YnkgaW50ZXJwcmV0ZXIgaGVs cHMgaW4gdW5kZXJzdGFuZGluZyBwcm9ibGVtcyBpbiBSdWJ5IGNvZGUgb3IgQyBleHRlbnNpb25z IGFuZCBpcyBzb21ldGhpbmcgSSBkbyByZWxhdGl2ZWx5IGZyZXF1ZW50bHk7IHlqaXQgYnJlYWtp bmcgdGhhdCB3aWxsIGRlZmluaXRlbHkgYmUgaW5jb252ZW5pZW50IGZvciBtZSENDQoNDQojIyBJ bXBsZW1lbnRhdGlvbg0NCg0NCkkgaGF2ZSBhIGRyYWZ0IGltcGxlbWVudGF0aW9uIGhlcmUgb24g aG93IEknZCBpbXBsZW1lbnQgdGhpczogaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9wdWxs Lzc1NjcuIEl0J3MgY3VycmVudGx5IG1pc3NpbmcgdGVzdHMgJiBwbGF0Zm9ybSBzdXBwb3J0IChp dCBvbmx5IHdvcmtzIG9uIExpbnV4IGFhcmNoNjQpLiBBbHNvLCBpdCBpbXBsZW1lbnRzIHVud2lu ZCBpbmZvIGdlbmVyYXRpb24sIHNvIHVud2luZGluZyBjYW4gd29yayBfdGhyb3VnaF8geWppdCBj b2RlLCBidXQgaXQgZG9lcyBub3QgY3VycmVudGx5IGVtaXQgc3ltYm9scyB0byBnaXZlIF9uYW1l c18gdG8gdGhvc2UgeWppdCBmcmFtZXMuDQ0KDQ0KTXkgUFIgY29udGFpbnMgYSBkb2N1bWVudCB3 aGljaCBleHBsYWlucyBob3cgdGhlIExpbnV4IGludGVyZmFjZXMgZm9yIHJlZ2lzdGVyaW5nIHVu d2luZCBpbmZvIGZvciBKSVQnZCBjb2RlIHdvcmssIHNvIEkgd29uJ3QgZHVwbGljYXRlIHRoYXQg aW5mb3JtYXRpb24gaGVyZS4NDQoNDQpUaGUgYmlnZ2VzdCBpbXBsZW1lbnRhdGlvbiBxdWVzdGlv biBJIGhhZCBpcyBhcm91bmQgdGhlIHVzZSBvZiBSdXN0IGNyYXRlcy4gQ3VycmVudGx5LCBJIHBy b3RvdHlwZWQgbXkgaW1wbGVtZW50YXRpb24gdXNpbmcgdGhlIGdpbWxpICYgb2JqZWN0IGNyYXRl cywgZm9yIGdlbmVyYXRpbmcgRFdBUkYgaW5mbyBhbmQgRUxGIGJpbmFyaWVzLiBIb3dldmVyLCB0 aGUgeWppdCBidWlsZCBkb2VzIHB1cnBvc2VmdWxseSBkb2VzIG5vdCB1c2UgY2FyZ28gJiBleHRl cm5hbCBjcmF0ZXMgZm9yIHJlbGVhc2UgYnVpbGRzLiBUaGVyZSBhcmUgYSBmZXcgZGlmZmVyZW50 IHdheXMgd2UgY291bGQgZ28gaGVyZToNDQoNDQoqIERvbid0IHVzZSB0aGUgZ2ltbGkgJiBvYmpl Y3QgY3JhdGVzOyBpbnN0ZWFkLCByZS1pbXBsZW1lbnQgYWxsIGRlYnVnIGluZm8gJiBvYmplY3Qg ZmlsZSBnZW5lcmF0aW9uIGNvZGUgaW4geWppdC4NDQoqIERvbid0IHVzZSB0aGUgY3JhdGVzOyBp bnN0ZWFkLCBsaW5rIGFnYWludCBDIGxpYnJhcmllcyB0byBwcm92aWRlIHRoaXMgZnVuY3Rpb25h bGl0eSAmIGNhbGwgdGhlbSBmcm9tIFJ1c3QgKHBlcmhhcHMgc29tZSBjb21iaW5hdGlvbiBvZiBs aWJlbGYsIGxpYmR3LCBsaWJiZmQsIG9yIGxsdm0gbWlnaHQgZG8gd2hhdCB3ZSBuZWVkKQ0NCiog VXNlIGNhcmdvIGFmdGVyIGFsbCBmb3IgdGhlIHJlbGVhc2UgYnVpbGQgJiBkb3dubG9hZCB0aGUg Y3JhdGVzIGF0IGJ1aWxkLXRpbWUNDQoqIFVzZSBjYXJnbyBmb3IgdGhlIHJlbGVhc2UgYnVpbGQs IGJ1dCB2ZW5kb3IgZXZlcnl0aGluZywgc28gdGhlIGJ1aWxkIGRvZXNuJ3QgbmVlZCB0byBkb3du bG9hZCBhbnl0aGluZw0NCiogT25seSBtYWtlIHVud2luZCBpbmZvIGdlbmVyYXRpb24gYXZhaWxh YmxlIGluIGRldiBtb2RlIHdoZXJlIGNhcmdvIGlzIHVzZWQsIGFuZCBzbyBtYXJrIHRoZSBnaW1s aS9vYmplY3QgZGVwZW5kZW5jaWVzIGFzIG9wdGlvbmFsIGluIENhcmdvLnRvbWwuDQ0KDQ0KV2Un ZCBuZWVkIHRvIGRlY2lkZSBvbiBvbmUgb2YgdGhlc2UgYXBwcm9hY2hlcyBmb3IgdGhpcyBwcm9w b3NhbCB0byB3b3JrLiBJIGRvbid0IHJlYWxseSBoYXZlIGEgc3Ryb25nIHNlbnNlIG9mIHRoZSBw cm9zL2NvbnMgb2YgZWFjaC4NDQoNDQooU2lkZSBub3RlIC0gbXkgUFIgYWN0dWFsbHkgZGVwZW5k cyBvbiBhIF9mb3JrXyBvZiBnaW1saSAtIEkndmUgYmVlbiBkaXNjdXNzaW5nIGFkZGluZyB0aGUg bmVlZGVkIGludGVyZmFjZXMgdXBzdHJlYW0gaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2dpbWxp LXJzL2dpbWxpL2lzc3Vlcy82NDgpLg0NCg0NCiMjIEJlbmNobWFya3MNDQoNDQpJIHJhbiB0aGUg eWl0LWJlbmNoIHN1aXRlIG9uIG15IGJyYW5jaCBhbmQgY29tcGFyZWQgaXQgdG8gUnVieSBtYXN0 ZXI6DQ0KDQ0KKiBNeSBicmFuY2g6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL0tKVHNhbmFrdHNp ZGlzLzU3NDFhOWY2NGU1Y2Q3NWNkZjVmZWRkODQ2MDkxYTRmDQ0KKiBSdWJ5IG1hc3RlcjogaHR0 cHM6Ly9naXN0LmdpdGh1Yi5jb20vS0pUc2FuYWt0c2lkaXMvNTkyZDNlYmNmOThmNjc0NWRmYTNl ZmJkMzBhMjVhY2YNDQoNDQpUaGlzIGlzIGEgKHZlcnkgc2ltcGxlKSBjb21wYXJpc29uOg0NCg0N CmBgYA0NCi0tLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0gLS0tLS0tLS0t LS0tLS0tDQ0KYmVuY2ggICAgICAgICAgeWppdCAobXMpICAgIGJyYW5jaCAobXMpICBicmFuY2gv eWppdCAoJSkNDQphY3RpdmVyZWNvcmQgICA5Ny41ICAgICAgICAgOTguNSAgICAgICAgIDEwMS4w MyUNDQpoZXhhcGRmICAgICAgICAyNDE1LjMgICAgICAgMjQ1OC4yICAgICAgIDEwMS43OCUNDQps aXF1aWQtYyAgICAgICA2MS45ICAgICAgICAgNjMuMSAgICAgICAgIDEwMS45NCUNDQpsaXF1aWQt cmVuZGVyICAxMzUuMyAgICAgICAgMTM1LjAgICAgICAgIDk5Ljc4JQ0NCm1haWwgICAgICAgICAg IDEwNC42ICAgICAgICAxMDUuNSAgICAgICAgMTAwLjg2JQ0NCnBzeWNoLWxvYWQgICAgIDE4ODcu MSAgICAgICAxOTIyLjAgICAgICAgMTAxLjg1JQ0NCnJhaWxzYmVuY2ggICAgIDE1NDQuNCAgICAg ICAxNTU2LjAgICAgICAgMTAwLjc1JQ0NCnJ1YnktbHNwICAgICAgIDg4LjQgICAgICAgICA4OS41 ICAgICAgICAgMTAxLjI0JQ0NCnNlcXVlbCAgICAgICAgIDE0Ny41ICAgICAgICAxNTEuMSAgICAg ICAgMTAyLjQ0JQ0NCmJpbmFyeXRyZWVzICAgIDMwMyAgICAgICAgICAzMDUuNiAgICAgICAgMTAw Ljg2JQ0NCmNodW5reV9wbmcgICAgIDEwNzUuOCAgICAgICAxMDc5LjQgICAgICAgMTAwLjMzJQ0N CmVydWJpICAgICAgICAgIDM5Mi45ICAgICAgICAzOTIuMyAgICAgICAgOTkuODUlDQ0KZXJ1Ymlf cmFpbHMgICAgMTQuNyAgICAgICAgIDE0LjcgICAgICAgICAxMDAuMDAlDQ0KZXRhbm5pICAgICAg ICAgNzkyLjMgICAgICAgIDc5MS40ICAgICAgICA5OS44OSUNDQpmYW5ua3VjaHJlZHV4ICAzODE1 LjkgICAgICAgMzgxMy42ICAgICAgIDk5Ljk0JQ0NCmxlZSAgICAgICAgICAgIDEwMzAuMiAgICAg ICAxMDM5LjIgICAgICAgMTAwLjg3JQ0NCm5ib2R5ICAgICAgICAgIDQ5LjIgICAgICAgICA0OS4z ICAgICAgICAgMTAwLjIwJQ0NCm9wdGNhcnJvdCAgICAgIDQxNDIgICAgICAgICA0MTQzLjMgICAg ICAgMTAwLjAzJQ0NCnJ1YnktanNvbiAgICAgIDI4NjAuNyAgICAgICAyODc0LjAgICAgICAgMTAw LjQ2JQ0NCnJ1Ynlrb24gICAgICAgIDc5MDYuNiAgICAgICA3OTA0LjIgICAgICAgOTkuOTclDQ0K MzBrX2lmZWxzZSAgICAgMzQ4LjcgICAgICAgIDM0NS40ICAgICAgICA5OS4wNSUNDQozMGtfbWV0 aG9kcyAgICA4MjguNiAgICAgICAgODMxLjggICAgICAgIDEwMC4zOSUNDQpjZnVuY19pdHNlbGYg ICAyOC44ICAgICAgICAgMjguOSAgICAgICAgIDEwMC4zNSUNDQpmaWIgICAgICAgICAgICAzNC40 ICAgICAgICAgMzQuNSAgICAgICAgIDEwMC4yOSUNDQpnZXRpdmFyICAgICAgICAxMTUuNSAgICAg ICAgMTA5LjcgICAgICAgIDk0Ljk4JQ0NCmtleXdvcmRfYXJncyAgIDM3LjcgICAgICAgICAzOC4w ICAgICAgICAgMTAwLjgwJQ0NCnJlc3BvbmRfdG8gICAgIDI2ICAgICAgICAgICAyNi4xICAgICAg ICAgMTAwLjM4JQ0NCnNldGl2YXIgICAgICAgIDMzLjggICAgICAgICAzMy41ICAgICAgICAgOTku MTElDQ0Kc2V0aXZhcl9vYmplY3QgMjA4LjcgICAgICAgIDE5NC4zICAgICAgICA5My4xMCUNDQpz dHJfY29uY2F0ICAgICA1Mi42ICAgICAgICAgNTIuMiAgICAgICAgIDk5LjI0JQ0NCnRocm93ICAg ICAgICAgIDIzLjggICAgICAgICAyNC4xICAgICAgICAgMTAxLjI2JQ0NCi0tLS0tLS0tLS0tLS0t IC0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tDQ0KYGBgDQ0KDQ0KSXQg c2VlbXMgbGlrZSB0aGUgcGVyZm9ybWFuY2UgaW1wYWN0IG9mIGdlbmVyYXRpbmcgYW5kIHJlZ2lz dGVyaW5nIHRoZSBkZWJ1ZyBpbmZvIGlzIG1hcmdpbmFsLg0NCg0NCg0NCg0NCi0tIA0NCmh0dHBz Oi8vYnVncy5ydWJ5LWxhbmcub3JnLw0NCiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCiBydWJ5LWNvcmUgbWFpbGluZyBsaXN0IC0tIHJ1YnktY29yZUBtbC5y dWJ5LWxhbmcub3JnCiBUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIHJ1YnktY29yZS1s ZWF2ZUBtbC5ydWJ5LWxhbmcub3JnCiBydWJ5LWNvcmUgaW5mbyAtLSBodHRwczovL21sLnJ1Ynkt bGFuZy5vcmcvbWFpbG1hbjMvcG9zdG9yaXVzL2xpc3RzL3J1YnktY29yZS5tbC5ydWJ5LWxhbmcu b3JnLw==