ZGlmZiAtLWdpdCBhL2RvYy9zdGQvY29ycHNlIGIvZG9jL3N0ZC9jb3Jwc2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDRlMmQ0NwotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zdGQvY29ycHNlCkBAIC0wLDAgKzEsNzYgQEAKK09CSkVLVDoKKyAgICAgIGNvcnBzZQorCisKK1NZTk9QU0lTOgorICAgICAgaW5oZXJpdCAic3RkL2NvcnBzZSI7CisKKworQkVTQ0hSRUlCVU5HOgorICAgICAgRGllIFN0YW5kYXJkbGVpY2hlIGlzdCBlaW4gc3BlemllbGxlciBDb250YWluZXIuIEVyIGJlaW5oYWx0ZXQgZGllCisgICAgICB6dXJ1ZWNrZ2VsYXNzZW5lIEF1c3J1ZXN0dW5nIGdlc3RvcmJlbmVyIE5QQ3MgdW5kIFNwaWVsZXIuCisgICAgICBEaWUgU3RhbmRhcmRsZWljaGUgdmVyZmF1bHQgbWl0IGRlciBaZWl0IHVuZCBzdGVsbHQgZWluIHBhYXIKKyAgICAgIEZ1bmt0aW9uYWxpdGFldGVuIHp1ciBWZXJmdWVndW5nLCBuYWVtbGljaCBkYXMgRXNzZW4gZGVyIExlaWNoZQorICAgICAgdW5kIGRhcyBWZXJzcG90dGVuIGF1ZiBkZW0gTW9lcmRlcmthbmFsLgorICAgICAgRGllIEZ1bmt0aW9uCisgICAgICAgIHZvaWQgSWRlbnRpZnkoIG9iamVjdCBvYiApOworICAgICAgd2lyZCBpbSBkaWUoKSBlaW5lcyBMaXZpbmdzIGF1ZmdlcnVmZW4sIGRhbWl0IGRpZSBMZWljaGUgSW5mb3JtYXRpb25lbgorICAgICAgYXVzIGRlbSBMaXZpbmcgYXVzbGVzZW4ga2FubiwgZWhlIGRpZXNlciBlbmRndWVsdGlnIHN0aXJidC4gU2NocmVpYnQKKyAgICAgIG1hbiBlaW5lIGVpZ2VuZSBMZWljaGUsIGRhbm4gaXN0IGRpZXMgZGllIGdlZWlnbmV0ZSBNb2VnbGljaGtlaXQsIGRlcgorICAgICAgTGVpY2hlIEluZm9ybWF0aW9uZW4genVrb21tZW4genUgbGFzc2VuLgorCisKK0JFSVNQSUVMRToKKyAgICAgIC8vIEVpbmUgZWlnZW5lIExlaWNoZS4KKyAgICAgICNpbmhlcml0ICJzdGQvY29ycHNlIjsKKworICAgICAgdm9pZCBjcmVhdGUoKQorICAgICAgeworICAgICAgICA6OmNyZWF0ZSgpOworICAgICAgICAvLyBJcmdlbmR3YXMgZWlnZW5lcy4uLgorICAgICAgfQorCisgICAgICAvKgorICAgICAgICogRGllc2VyIEZ1bmt0aW9uIHdpcmQgZGVyIGdldG9ldGV0ZSBMaXZpbmcgdWViZXJnZWJlbi4KKyAgICAgICAqLworICAgICAgdm9pZCBJZGVudGlmeShvYmplY3Qgb2IpCisgICAgICB7CisgICAgICAgIDo6SWRlbnRpZnkob2IpOworICAgICAgICBpZiAob2IpCisgICAgICAgIHsKKyAgICAgICAgICBvYi0+UXVlcnlQcm9wKCJtZWluZV90b2xsZV9wcm9wZXJ0eSIpOworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIC8qCisgICAgICAgKiBEYXMgaXN0IGRpZSBm/HIgImlzcyBsZWljaGUiIGF1ZmdlcnVmZW5lIEZ1bmt0aW9uLgorICAgICAgICovCisgICAgICBpbnQgbWFtcGYoIHN0cmluZyBzdHIgKQorICAgICAgeworICAgICAgICBub3RpZnlfZmFpbCgiV2FzIHdpbGxzdCBEdSBlc3Nlbj9cbiIpOworICAgICAgICBpZiAoIXN0ciB8fCAhaWQoc3RyKSApIHJldHVybiAwOworICAgICAgICB0ZWxsX29iamVjdCh0aGlzX3BsYXllcigpLCAiRGllc2UgTGVpY2hlIGthbm4gbWFuIG5pY2h0IGVzc2VuLlxuIik7CisgICAgICAgIHJldHVybiAxOworICAgICAgfQorCisKKworQkVNRVJLVU5HOgorICAgICAgTWFuIGthbm4gZWlnZW5lIExlaWNoZW4gc2NocmVpYmVuLCBkaWUgdm9uIGRlciBTdGFuZGFyZGxlaWNoZSBlcmJlbgorICAgICAgb2RlciBhdWNoIG5pY2h0LiBNYW4gc29sbHRlIGRhbm4gYWJlciBkaWUgaW0gZGllKCkgYXVmZ2VydWZlbmVuCisgICAgICBGdW5rdGlvbmVuIGltcGxlbWVudGllcmVuOgorICAgICAgICBjb3Jwc2UtPklkZW50aWZ5KG9iamVjdCBvYik7CisJY29ycHNlLT5TZXRQcm9wKCoqKik7IC8vIEZ1ZXIgUF9IRUFMCisJY29ycHNlLT5tb3ZlKCoqKik7IC8vIFVtIHNpZSBpbnMgZW52aXJvbm1lbnQoKSBkZXMgVG90ZW4genUgYmVrb21tZW4uCisgICAgICBEaWUgTGVpY2hlIHNvbGx0ZSwgbXVzcyBhYmVyIGtlaW4gQ29udGFpbmVyIHNlaW4sIGRhbWl0IGRpZSBBdXNydWVzdHVuZworICAgICAgaGluZWluYmV3ZWd0IHdlcmRlbiBrYW5uLgorICAgICAgV2VubiBtYW4gbmljaHQgdm9uIGRlciBTdGFuZGFyZGxlaWNoZSBlcmJ0LCBrb21tdCBzaWUgbmljaHQgYXVmIC1Nb2VyZGVyCisgICAgICB1bmQgbWFuIGthbm4gc2llIG5pY2h0IHZlcnNwb3R0ZW4uIERhbWl0IGRpZXMgZ2VodCwgbXVzcyAoISkgbWFuIHZvbiBkZXIKKyAgICAgIFN0YW5kYXJkbGVpY2hlIGVyYmVuLgorCitTSUVIRSBBVUNIOgorICAgICAgUF9OT0NPUlBTRSwgUF9DT1JQU0UsIFBfSEVBTCwgUXVlcnlIZWFsSW5mbygpCisKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGV0enRlIEFlbmRlcnVuZzogMzEuMDMuMjAwOCwgQXJhdGhvcm4K