From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Antipov Newsgroups: gmane.emacs.devel Subject: Re: Deleting overlays from killed buffer Date: Fri, 12 Oct 2012 10:39:35 +0400 Message-ID: <5077BB27.3020807@yandex.ru> References: <5076CD83.6080400@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------080109090701040003090005" X-Trace: ger.gmane.org 1350023985 7668 80.91.229.3 (12 Oct 2012 06:39:45 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 12 Oct 2012 06:39:45 +0000 (UTC) Cc: Emacs development discussions To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Oct 12 08:39:52 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1TMYuV-0000Df-Gf for ged-emacs-devel@m.gmane.org; Fri, 12 Oct 2012 08:39:51 +0200 Original-Received: from localhost ([::1]:59951 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TMYuP-0005AF-3n for ged-emacs-devel@m.gmane.org; Fri, 12 Oct 2012 02:39:45 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:37044) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TMYuL-00059u-S3 for emacs-devel@gnu.org; Fri, 12 Oct 2012 02:39:43 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TMYuK-0001eC-EI for emacs-devel@gnu.org; Fri, 12 Oct 2012 02:39:41 -0400 Original-Received: from forward1.mail.yandex.net ([77.88.46.6]:46123) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TMYuJ-0001dp-NQ for emacs-devel@gnu.org; Fri, 12 Oct 2012 02:39:40 -0400 Original-Received: from smtp3.mail.yandex.net (smtp3.mail.yandex.net [77.88.46.103]) by forward1.mail.yandex.net (Yandex) with ESMTP id 0E5F41240661; Fri, 12 Oct 2012 10:39:37 +0400 (MSK) Original-Received: from smtp3.mail.yandex.net (localhost [127.0.0.1]) by smtp3.mail.yandex.net (Yandex) with ESMTP id DE4E21BA03D6; Fri, 12 Oct 2012 10:39:36 +0400 (MSK) Original-Received: from unknown (unknown [37.139.80.10]) by smtp3.mail.yandex.net (nwsmtp/Yandex) with ESMTP id danCZOxx-danaZaCO; Fri, 12 Oct 2012 10:39:36 +0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1350023976; bh=yFE7qs8wgs8oY9mgfOzFstSc3v9BUKRig++M4+1Qtjc=; h=Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject: References:In-Reply-To:Content-Type; b=j0zLVnXri6c6IZowCTuHk/IgAOcAHMTEQ1N/QSSKdNGL0j9OYTH/21mTcESt+knhk 2rT1PI3gk2w9BiehDiBVMnvBjmHMKDO2a6xYBjeIvcBj7V7lLqnDN1nLYZHPGOd6Gg TBTJFewZyfEVf3TNPvLsyHWG5NAiJw38igi1YNSQ= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20121005 Thunderbird/16.0 In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 77.88.46.6 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:154292 Archived-At: This is a multi-part message in MIME format. --------------080109090701040003090005 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 10/12/2012 12:37 AM, Stefan Monnier wrote: > Should be fixed now, thanks As for the O(N^2) loop in delete_all_overlays, what do you think about the fix attached? Dmitry --------------080109090701040003090005 Content-Type: text/plain; charset=UTF-8; name="marker_overlay_boundary.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="marker_overlay_boundary.patch" PT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9hbGxvYy5jJwotLS0gc3JjL2FsbG9jLmMJMjAxMi0x MC0xMCAxNTozMToyMSArMDAwMAorKysgc3JjL2FsbG9jLmMJMjAxMi0xMC0xMiAwNjoyMToz NyArMDAwMApAQCAtMzMyNCw4ICszMzI0LDEwIEBACiAgIHJlZ2lzdGVyIExpc3BfT2JqZWN0 IG92ZXJsYXk7CiAKICAgb3ZlcmxheSA9IGFsbG9jYXRlX21pc2MgKExpc3BfTWlzY19PdmVy bGF5KTsKLSAgT1ZFUkxBWV9TVEFSVCAob3ZlcmxheSkgPSBzdGFydDsKLSAgT1ZFUkxBWV9F TkQgKG92ZXJsYXkpID0gZW5kOworICBYT1ZFUkxBWSAob3ZlcmxheSktPnN0YXJ0ID0gc3Rh cnQ7CisgIFhNQVJLRVIgKHN0YXJ0KS0+b3ZlcmxheV9ib3VuZGFyeSA9IDE7CisgIFhPVkVS TEFZIChvdmVybGF5KS0+ZW5kID0gZW5kOworICBYTUFSS0VSIChlbmQpLT5vdmVybGF5X2Jv dW5kYXJ5ID0gMTsKICAgc2V0X292ZXJsYXlfcGxpc3QgKG92ZXJsYXksIHBsaXN0KTsKICAg WE9WRVJMQVkgKG92ZXJsYXkpLT5uZXh0ID0gTlVMTDsKICAgcmV0dXJuIG92ZXJsYXk7CkBA IC0zMzQ1LDYgKzMzNDcsNyBAQAogICBwLT5jaGFycG9zID0gMDsKICAgcC0+bmV4dCA9IE5V TEw7CiAgIHAtPmluc2VydGlvbl90eXBlID0gMDsKKyAgcC0+b3ZlcmxheV9ib3VuZGFyeSA9 IDA7CiAgIHJldHVybiB2YWw7CiB9CiAKQEAgLTMzNjksNiArMzM3Miw3IEBACiAgIG0tPmNo YXJwb3MgPSBjaGFycG9zOwogICBtLT5ieXRlcG9zID0gYnl0ZXBvczsKICAgbS0+aW5zZXJ0 aW9uX3R5cGUgPSAwOworICBtLT5vdmVybGF5X2JvdW5kYXJ5ID0gMDsKICAgbS0+bmV4dCA9 IEJVRl9NQVJLRVJTIChidWYpOwogICBCVUZfTUFSS0VSUyAoYnVmKSA9IG07CiAgIHJldHVy biBvYmo7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL2J1ZmZlci5jJwotLS0gc3JjL2J1ZmZl ci5jCTIwMTItMTAtMTIgMDE6NDc6NDAgKzAwMDAKKysrIHNyYy9idWZmZXIuYwkyMDEyLTEw LTEyIDA2OjExOjQ3ICswMDAwCkBAIC0xNDYsOSArMTQ2LDE3IEBACiBzdGF0aWMgdm9pZCBh bGxvY19idWZmZXJfdGV4dCAoc3RydWN0IGJ1ZmZlciAqLCBwdHJkaWZmX3QpOwogc3RhdGlj IHZvaWQgZnJlZV9idWZmZXJfdGV4dCAoc3RydWN0IGJ1ZmZlciAqYik7CiBzdGF0aWMgc3Ry dWN0IExpc3BfT3ZlcmxheSAqIGNvcHlfb3ZlcmxheXMgKHN0cnVjdCBidWZmZXIgKiwgc3Ry dWN0IExpc3BfT3ZlcmxheSAqKTsKLXN0YXRpYyB2b2lkIG1vZGlmeV9vdmVybGF5IChzdHJ1 Y3QgYnVmZmVyICosIHB0cmRpZmZfdCwgcHRyZGlmZl90KTsKK3N0YXRpYyB2b2lkIG1vZGlm eV9yYW5nZSAoc3RydWN0IGJ1ZmZlciAqLCBwdHJkaWZmX3QsIHB0cmRpZmZfdCk7CiBzdGF0 aWMgTGlzcF9PYmplY3QgYnVmZmVyX2xpc3BfbG9jYWxfdmFyaWFibGVzIChzdHJ1Y3QgYnVm ZmVyICosIGJvb2wpOwogCitzdGF0aWMgdm9pZAorbW9kaWZ5X292ZXJsYXkgKHN0cnVjdCBi dWZmZXIgKmIsIHN0cnVjdCBMaXNwX092ZXJsYXkgKm92KQoreworICBlYXNzZXJ0IChiID09 IFhCVUZGRVIgKEZtYXJrZXJfYnVmZmVyIChvdi0+c3RhcnQpKSk7CisgIGVhc3NlcnQgKGIg PT0gWEJVRkZFUiAoRm1hcmtlcl9idWZmZXIgKG92LT5lbmQpKSk7CisgIG1vZGlmeV9yYW5n ZSAoYiwgbWFya2VyX3Bvc2l0aW9uIChvdi0+c3RhcnQpLCBtYXJrZXJfcG9zaXRpb24gKG92 LT5lbmQpKTsKK30KKwogLyogVGhlc2Ugc2V0dGVycyBhcmUgdXNlZCBvbmx5IGluIHRoaXMg ZmlsZSwgc28gdGhleSBjYW4gYmUgcHJpdmF0ZS4gICovCiBzdGF0aWMgdm9pZAogYnNldF9h YmJyZXZfbW9kZSAoc3RydWN0IGJ1ZmZlciAqYiwgTGlzcF9PYmplY3QgdmFsKQpAQCAtODgy LDEyICs4OTAsOSBAQAogc3RhdGljIHZvaWQKIGRyb3Bfb3ZlcmxheSAoc3RydWN0IGJ1ZmZl ciAqYiwgc3RydWN0IExpc3BfT3ZlcmxheSAqb3YpCiB7Ci0gIGVhc3NlcnQgKGIgPT0gWEJV RkZFUiAoRm1hcmtlcl9idWZmZXIgKG92LT5zdGFydCkpKTsKLSAgbW9kaWZ5X292ZXJsYXkg KGIsIG1hcmtlcl9wb3NpdGlvbiAob3YtPnN0YXJ0KSwKLQkJICBtYXJrZXJfcG9zaXRpb24g KG92LT5lbmQpKTsKLSAgRnNldF9tYXJrZXIgKG92LT5zdGFydCwgUW5pbCwgUW5pbCk7Ci0g IEZzZXRfbWFya2VyIChvdi0+ZW5kLCBRbmlsLCBRbmlsKTsKLQorICBtb2RpZnlfb3Zlcmxh eSAoYiwgb3YpOworICB1bmNoYWluX21hcmtlciAoWE1BUktFUiAob3YtPnN0YXJ0KSk7Cisg IHVuY2hhaW5fbWFya2VyIChYTUFSS0VSIChvdi0+ZW5kKSk7CiB9CiAKIC8qIERlbGV0ZSBh bGwgb3ZlcmxheXMgb2YgQiBhbmQgcmVzZXQgaXQncyBvdmVybGF5IGxpc3RzLiAgKi8KQEAg LTg5NSwyNCArOTAwLDM3IEBACiB2b2lkCiBkZWxldGVfYWxsX292ZXJsYXlzIChzdHJ1Y3Qg YnVmZmVyICpiKQogeworICBzdHJ1Y3QgTGlzcF9NYXJrZXIgKm0sICoqbXA7CiAgIHN0cnVj dCBMaXNwX092ZXJsYXkgKm92LCAqbmV4dDsKIAotICAvKiBGSVhNRTogU2luY2UgZWFjaCBk cm9wX292ZXJsYXkgd2lsbCBzY2FuIEJVRl9NQVJLRVJTIHRvIHVubGluayBpdHMKLSAgICAg bWFya2Vycywgd2UgaGF2ZSBhbiB1bm5lZWRlZCBPKE5eMikgYmVoYXZpb3IgaGVyZS4gICov CiAgIGZvciAob3YgPSBiLT5vdmVybGF5c19iZWZvcmU7IG92OyBvdiA9IG5leHQpCiAgICAg ewotICAgICAgZHJvcF9vdmVybGF5IChiLCBvdik7CisgICAgICBtb2RpZnlfb3ZlcmxheSAo Yiwgb3YpOwogICAgICAgbmV4dCA9IG92LT5uZXh0OwogICAgICAgb3YtPm5leHQgPSBOVUxM OwogICAgIH0KIAogICBmb3IgKG92ID0gYi0+b3ZlcmxheXNfYWZ0ZXI7IG92OyBvdiA9IG5l eHQpCiAgICAgewotICAgICAgZHJvcF9vdmVybGF5IChiLCBvdik7CisgICAgICBtb2RpZnlf b3ZlcmxheSAoYiwgb3YpOwogICAgICAgbmV4dCA9IG92LT5uZXh0OwogICAgICAgb3YtPm5l eHQgPSBOVUxMOwogICAgIH0KIAorICAvKiBVbmNoYWluIGFsbCBvdmVybGF5IGJvdW5kYXJ5 IG1hcmtlcnMgYXQgb25jZS4gICovCisgIGZvciAobXAgPSAmQlVGX01BUktFUlMgKGIpOyAq bXA7ICkKKyAgICB7CisgICAgICBtID0gKm1wOworICAgICAgZWFzc2VydCAobS0+YnVmZmVy ID09IGIpOworICAgICAgaWYgKG0tPm92ZXJsYXlfYm91bmRhcnkpCisJeworCSAgbS0+YnVm ZmVyID0gTlVMTDsKKwkgICptcCA9IG0tPm5leHQ7CisJfQorICAgICAgZWxzZQorCW1wID0g Jm0tPm5leHQ7CisgICAgfQorCiAgIHNldF9idWZmZXJfb3ZlcmxheXNfYmVmb3JlIChiLCBO VUxMKTsKICAgc2V0X2J1ZmZlcl9vdmVybGF5c19hZnRlciAoYiwgTlVMTCk7CiB9CkBAIC0z ODc0LDEwICszODkyLDExIEBACiAgIHJldHVybiBvdmVybGF5OwogfQogDAotLyogTWFyayBh IHNlY3Rpb24gb2YgQlVGIGFzIG5lZWRpbmcgcmVkaXNwbGF5IGJlY2F1c2Ugb2Ygb3Zlcmxh eXMgY2hhbmdlcy4gICovCisvKiBNYXJrIGEgc2VjdGlvbiBvZiBCVUYgYXMgbmVlZGluZyBy ZWRpc3BsYXkgYmVjYXVzZSBvZiBvdmVybGF5cyBjaGFuZ2VzCisgICBpbiBbU1RBUlQuLkVO RF0uICAqLwogCiBzdGF0aWMgdm9pZAotbW9kaWZ5X292ZXJsYXkgKHN0cnVjdCBidWZmZXIg KmJ1ZiwgcHRyZGlmZl90IHN0YXJ0LCBwdHJkaWZmX3QgZW5kKQorbW9kaWZ5X3JhbmdlIChz dHJ1Y3QgYnVmZmVyICpidWYsIHB0cmRpZmZfdCBzdGFydCwgcHRyZGlmZl90IGVuZCkKIHsK ICAgaWYgKHN0YXJ0ID4gZW5kKQogICAgIHsKQEAgLTM5OTcsMjAgKzQwMTYsMjAgQEAKICAg ICB7CiAgICAgICAvKiBSZWRpc3BsYXkgd2hlcmUgdGhlIG92ZXJsYXkgd2FzLiAgKi8KICAg ICAgIGlmIChvYikKLSAgICAgICAgbW9kaWZ5X292ZXJsYXkgKG9iLCBvX2JlZywgb19lbmQp OworICAgICAgICBtb2RpZnlfcmFuZ2UgKG9iLCBvX2JlZywgb19lbmQpOwogCiAgICAgICAv KiBSZWRpc3BsYXkgd2hlcmUgdGhlIG92ZXJsYXkgaXMgZ29pbmcgdG8gYmUuICAqLwotICAg ICAgbW9kaWZ5X292ZXJsYXkgKGIsIG5fYmVnLCBuX2VuZCk7CisgICAgICBtb2RpZnlfcmFu Z2UgKGIsIG5fYmVnLCBuX2VuZCk7CiAgICAgfQogICBlbHNlCiAgICAgLyogUmVkaXNwbGF5 IHRoZSBhcmVhIHRoZSBvdmVybGF5IGhhcyBqdXN0IGxlZnQsIG9yIGp1c3QgZW5jbG9zZWQu ICAqLwogICAgIHsKICAgICAgIGlmIChvX2JlZyA9PSBuX2JlZykKLQltb2RpZnlfb3Zlcmxh eSAoYiwgb19lbmQsIG5fZW5kKTsKKwltb2RpZnlfcmFuZ2UgKGIsIG9fZW5kLCBuX2VuZCk7 CiAgICAgICBlbHNlIGlmIChvX2VuZCA9PSBuX2VuZCkKLQltb2RpZnlfb3ZlcmxheSAoYiwg b19iZWcsIG5fYmVnKTsKKwltb2RpZnlfcmFuZ2UgKGIsIG9fYmVnLCBuX2JlZyk7CiAgICAg ICBlbHNlCi0JbW9kaWZ5X292ZXJsYXkgKGIsIG1pbiAob19iZWcsIG5fYmVnKSwgbWF4IChv X2VuZCwgbl9lbmQpKTsKKwltb2RpZnlfcmFuZ2UgKGIsIG1pbiAob19iZWcsIG5fYmVnKSwg bWF4IChvX2VuZCwgbl9lbmQpKTsKICAgICB9CiAKICAgLyogRGVsZXRlIHRoZSBvdmVybGF5 IGlmIGl0IGlzIGVtcHR5IGFmdGVyIGNsaXBwaW5nIGFuZCBoYXMgdGhlCkBAIC00MzM3LDkg KzQzNTYsNyBAQAogICBpZiAoISBOSUxQIChidWZmZXIpKQogICAgIHsKICAgICAgIGlmIChj aGFuZ2VkKQotCW1vZGlmeV9vdmVybGF5IChYQlVGRkVSIChidWZmZXIpLAotCQkJbWFya2Vy X3Bvc2l0aW9uIChPVkVSTEFZX1NUQVJUIChvdmVybGF5KSksCi0JCQltYXJrZXJfcG9zaXRp b24gKE9WRVJMQVlfRU5EICAgKG92ZXJsYXkpKSk7CisJbW9kaWZ5X292ZXJsYXkgKFhCVUZG RVIgKGJ1ZmZlciksIFhPVkVSTEFZIChvdmVybGF5KSk7CiAgICAgICBpZiAoRVEgKHByb3As IFFldmFwb3JhdGUpICYmICEgTklMUCAodmFsdWUpCiAJICAmJiAoT1ZFUkxBWV9QT1NJVElP TiAoT1ZFUkxBWV9TVEFSVCAob3ZlcmxheSkpCiAJICAgICAgPT0gT1ZFUkxBWV9QT1NJVElP TiAoT1ZFUkxBWV9FTkQgKG92ZXJsYXkpKSkpCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL2J1 ZmZlci5oJwotLS0gc3JjL2J1ZmZlci5oCTIwMTItMDktMTEgMDQ6MjI6MDMgKzAwMDAKKysr IHNyYy9idWZmZXIuaAkyMDEyLTEwLTEyIDA2OjI0OjI0ICswMDAwCkBAIC0xMTM4LDExICsx MTM4LDE1IEBACiAKIC8qIFJldHVybiB0aGUgbWFya2VyIHRoYXQgc3RhbmRzIGZvciB3aGVy ZSBPViBzdGFydHMgaW4gdGhlIGJ1ZmZlci4gICovCiAKLSNkZWZpbmUgT1ZFUkxBWV9TVEFS VChPVikgWE9WRVJMQVkgKE9WKS0+c3RhcnQKKyNkZWZpbmUgT1ZFUkxBWV9TVEFSVChPVikJ CQkJCVwKKyAgKGVhc3NlcnQgKFhNQVJLRVIgKFhPVkVSTEFZIChPViktPnN0YXJ0KS0+b3Zl cmxheV9ib3VuZGFyeSksCVwKKyAgIFhPVkVSTEFZIChPViktPnN0YXJ0KQogCiAvKiBSZXR1 cm4gdGhlIG1hcmtlciB0aGF0IHN0YW5kcyBmb3Igd2hlcmUgT1YgZW5kcyBpbiB0aGUgYnVm ZmVyLiAgKi8KIAotI2RlZmluZSBPVkVSTEFZX0VORChPVikgWE9WRVJMQVkgKE9WKS0+ZW5k CisjZGVmaW5lIE9WRVJMQVlfRU5EKE9WKQkJCQkJCVwKKyAgKGVhc3NlcnQgKFhNQVJLRVIg KFhPVkVSTEFZIChPViktPmVuZCktPm92ZXJsYXlfYm91bmRhcnkpLAlcCisgICBYT1ZFUkxB WSAoT1YpLT5lbmQpCiAKIC8qIFJldHVybiB0aGUgcGxpc3Qgb2Ygb3ZlcmxheSBPVi4gICov CiAKCj09PSBtb2RpZmllZCBmaWxlICdzcmMvbGlzcC5oJwotLS0gc3JjL2xpc3AuaAkyMDEy LTEwLTExIDE2OjIzOjM3ICswMDAwCisrKyBzcmMvbGlzcC5oCTIwMTItMTAtMTIgMDY6MTE6 NDggKzAwMDAKQEAgLTEyNjgsNyArMTI2OCw3IEBACiB7CiAgIEVOVU1fQkYgKExpc3BfTWlz Y19UeXBlKSB0eXBlIDogMTY7CQkvKiA9IExpc3BfTWlzY19NYXJrZXIgKi8KICAgdW5zaWdu ZWQgZ2NtYXJrYml0IDogMTsKLSAgaW50IHNwYWNlciA6IDEzOworICBpbnQgc3BhY2VyIDog MTI7CiAgIC8qIFRoaXMgZmxhZyBpcyB0ZW1wb3JhcmlseSB1c2VkIGluIHRoZSBmdW5jdGlv bnMKICAgICAgZGVjb2RlL2VuY29kZV9jb2Rpbmdfb2JqZWN0IHRvIHJlY29yZCB0aGF0IHRo ZSBtYXJrZXIgcG9zaXRpb24KICAgICAgbXVzdCBiZSBhZGp1c3RlZCBhZnRlciB0aGUgY29u dmVyc2lvbi4gICovCkBAIC0xMjc2LDYgKzEyNzYsOCBAQAogICAvKiAxIG1lYW5zIG5vcm1h bCBpbnNlcnRpb24gYXQgdGhlIG1hcmtlcidzIHBvc2l0aW9uCiAgICAgIGxlYXZlcyB0aGUg bWFya2VyIGFmdGVyIHRoZSBpbnNlcnRlZCB0ZXh0LiAgKi8KICAgdW5zaWduZWQgaW50IGlu c2VydGlvbl90eXBlIDogMTsKKyAgLyogMSBtZWFucyB0aGlzIG1hcmtlciBpcyB1c2VkIGFz IGFuIG92ZXJsYXkgYm91bmRhcnkuICAqLworICB1bnNpZ25lZCBpbnQgb3ZlcmxheV9ib3Vu ZGFyeSA6IDE7CiAgIC8qIFRoaXMgaXMgdGhlIGJ1ZmZlciB0aGF0IHRoZSBtYXJrZXIgcG9p bnRzIGludG8sIG9yIDAgaWYgaXQgcG9pbnRzIG5vd2hlcmUuCiAgICAgIE5vdGU6IGEgY2hh aW4gb2YgbWFya2VycyBjYW4gY29udGFpbiBtYXJrZXJzIHBvaW50aW5nIGludG8gZGlmZmVy ZW50CiAgICAgIGJ1ZmZlcnMgKHRoZSBjaGFpbiBpcyBwZXIgYnVmZmVyX3RleHQgcmF0aGVy IHRoYW4gcGVyIGJ1ZmZlciwgc28gaXQncwoK --------------080109090701040003090005--