From user-return-302-archive-asf-public=cust-asf.ponee.io@arrow.apache.org Wed Jan 29 15:55:34 2020 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [207.244.88.153]) by mx-eu-01.ponee.io (Postfix) with SMTP id F3F69180643 for ; Wed, 29 Jan 2020 16:55:33 +0100 (CET) Received: (qmail 38997 invoked by uid 500); 29 Jan 2020 15:55:33 -0000 Mailing-List: contact user-help@arrow.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@arrow.apache.org Delivered-To: mailing list user@arrow.apache.org Received: (qmail 38986 invoked by uid 99); 29 Jan 2020 15:55:33 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 29 Jan 2020 15:55:33 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 8BF08C0A72 for ; Wed, 29 Jan 2020 15:55:32 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.297 X-Spam-Level: X-Spam-Status: No, score=0.297 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_BTC_ID=0.499, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled Authentication-Results: spamd1-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=xbktrading.com Received: from mx1-ec2-va.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id YEq5ik4sWa3W for ; Wed, 29 Jan 2020 15:55:31 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=67.219.246.215; helo=mail1.bemta23.messagelabs.com; envelope-from=mcalder@xbktrading.com; receiver= Received: from mail1.bemta23.messagelabs.com (mail1.bemta23.messagelabs.com [67.219.246.215]) by mx1-ec2-va.apache.org (ASF Mail Server at mx1-ec2-va.apache.org) with ESMTPS id 298E4BC569 for ; Wed, 29 Jan 2020 15:55:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xbktrading.com; s=BNY061818; t=1580313324; i=@xbktrading.com; bh=9pwlbqb4mZRgESg4I3ujjO4rWyh9yxAbzLhJI4lPGU0=; h=From:To:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:Content-Transfer-Encoding:MIME-Version; b=kOoQIIAR7YbATcgeoVvoQsyvKPBYqu/gxe0b57iuq/xobtUqh2QYpOMLDY0Gnv9OP d4YmFWkGJjn/sXHv1NuTz/iI25maI2jgGWhawoipJx2UHTxvyW5Sm4pDcLwcvj0ZFT fWjERD5PYgZBWUKNwAeU5cFVTWRLax5SKHnWFKTZnF0nlMmcEiTt+QgXMRzNMHYSMY C7f0IL0xweJ5VlALzL4hf92uQeo9WjhDHuBZu8yOsituknnvtRvaQZtl41dpSJk9zs 4BuPG0XfwLQbLH/zbHdwevGSDBApwItvdgzvfFVnDK8IGSsLAoJ4M8Z296x1IbAn0f Eix4Px8vqmBpg== Received: from [100.112.7.129] (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits)) by server-3.bemta.az-c.us-east-1.aws.symcld.net id 67/18-11818-CEAA13E5; Wed, 29 Jan 2020 15:55:24 +0000 Authentication-Results: mx.messagelabs.com; dkim=none (message not signed); dmarc=fail (p=reject adkim=r aspf=r) header.from=xbktrading.com X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrKKsWRWlGSWpSXmKPExsWyynZto+6bVYZ xBsuO81r8/buIyYHRo+PGDvYAxijWzLyk/IoE1ozja+ULVltXTGr+xtrAeMKqi5GTQ0LARGLz z7+sXYxcHEICF5gkrv9bAeX8YZRYd3QDI0gVmLP+UTpEYhOjxI3zp5hBEmwCBhLb3q0GKxIRM Jb41/KaCcQWFrCQeL/oDVsXIwdQ3FLi+RtJiBI3iRknu1hBbBYBVYnD/zeDlfMK2EqsXjARan E/k8TRSVvAEpwCgRKt11eBzWcUEJP4fmoNWJxZQFzi1pP5TBAvCEgs2XOeGcIWlXj5+B8rhK0 s8f3ke7AbmAU0Jdbv0odoVZSY0v2QHWKvoMTJmU9YIH5Ulmi79pkRolVOYu36j2D3SAhcYZN4 um0S2wRGyVlIVs9CGDsLydhZSMYuYGRZxWiWVJSZnlGSm5iZo2toYKBraGika65raGyhl1ilm 6xXWqybmlhcomuol1herFdcmZuck6KXl1qyiREYqykF7F07GA8vf693iFGSg0lJlNco0zBOiC 8pP6UyI7E4I76oNCe1+BCjDAeHkgSvFzD6hQSLUtNTK9Iyc4BpAyYtwcGjJMKrDpLmLS5IzC3 OTIdInWK05Dh4dN4iZo7Nc5cCySMgUoglLz8vVUqc9+xKoAYBkIaM0jy4cbDUdolRVkqYl5GB gUGIpyC1KDezBFX+FaM4B6OSMO98kCk8mXklcFtfAR3EBHTQt0QDkINKEhFSUg1M/SIcOmsnP PKZGLpGLnureqNsumZv7oSjE3j3pDC91/ANmPP6+L3965dnNuvMW6pnzXamNVTGI/tvxe4XsQ 7tInaf5qvXOSyYpcex4Yy+6bZI0+XvJrx1sK1lvKLULrk/5viDUpXuVf5T5z9b2PyvodDnKte XB8keLGLfuoPF719mY+y98+Qsz+sn8le/nNvLtfPypnezeOMf/vS7EHJ1mqS8lYRI9t3swEtP p05iN/wg3yZ2zGJGgvsi65q06n8bLm0WC2bkY6k4qpQp6jDnFveKdVdZZVtYd74seDNDTnP6q Scde/92H71UNz/X4DrTnAMHXb7vYp3insuyIHSNtgzjIXPrjBsas3YxXbzwRImlOCPRUIu5qD gRAJlbOOHoAwAA X-Env-Sender: mcalder@xbktrading.com X-Msg-Ref: server-9.tower-406.messagelabs.com!1580313196!27753!122 X-Originating-IP: [170.61.173.129] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.44.25; banners=xbktrading.com,-,- X-VirusChecked: Checked Received: (qmail 871 invoked from network); 29 Jan 2020 15:55:24 -0000 Received: from znpcpapbrg01o.bnymellon.com (HELO znpcpapbrg01i.bnymellon.com) (170.61.173.129) by server-9.tower-406.messagelabs.com with ECDHE-RSA-AES256-GCM-SHA384 encrypted SMTP; 29 Jan 2020 15:55:24 -0000 X-AuditID: 0aa06eb7-c51ff70000007af3-a4-5e31aaeb2fbf Received: from WTPCPEXMEM17.ams.bnymellon.net (wtpcpexmem17.ams.bnymellon.net [10.88.250.138]) (using TLS with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by znpcpapbrg01i.bnymellon.com (Symantec Messaging Gateway) with SMTP id BC.E0.31475.BEAA13E5; Wed, 29 Jan 2020 10:55:23 -0500 (EST) Received: from WTPCPEXMEM38.ams.bnymellon.net (10.88.250.159) by WTPCPEXMEM17.ams.bnymellon.net (10.88.250.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1847.3; Wed, 29 Jan 2020 10:55:22 -0500 Received: from WTPCPEXMEM36.ams.bnymellon.net (10.88.250.157) by WTPCPEXMEM38.ams.bnymellon.net (10.88.250.159) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1847.3; Wed, 29 Jan 2020 10:55:22 -0500 Received: from WTPCPEXMEM36.ams.bnymellon.net ([10.88.250.157]) by WTPCPEXMEM36.ams.bnymellon.net ([10.88.250.157]) with mapi id 15.01.1847.003; Wed, 29 Jan 2020 10:55:22 -0500 From: "Calder, Matthew" To: "user@arrow.apache.org" Subject: RE: Converting clickhouse column to arrow array Thread-Topic: Converting clickhouse column to arrow array Thread-Index: AdXRKfSL8jIujzseTF65muM1yxlnEAAPrWsAAAGW9IAAACkggAFS3IJw Date: Wed, 29 Jan 2020 15:55:22 +0000 Message-ID: <52ef95685f3848d2ab5452e372f11398@xbktrading.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [160.254.211.241] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected NPC6 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprNIsWRmVeSWpSXmKPExsXCtSBvs+6bVYZxBtu/s1j8/buIyYHRo+PG DvYAxigum5TUnMyy1CJ9uwSujI0Tt7EV9NlUTGr+xtrAeMKqi5GTQ0LARGLzz7+sILaQwGUm iT9XPLoYuYDs/4wSB5fvZYdzbrxbwQThbGGUOLrrFyNIC5uAgcS2d6vBbBEBY4l/La+ZQGxh AQuJ94vesHUxcgDFLSWev5GEKHGTmHGyC2wbi4CqxOH/m8HKeQVsJVYvmMgKMX8Sk0RD0xt2 kASnQKBE6/VVYPMZBcQkvp9aA9bALCAucevJfCaIFwQkluw5zwxhi0q8fPyPFcJWlvh+8j3Y DcwCmhLrd+lDtCpKTOl+yA6xV1Di5MwnLBDfK0u0XfvMCNEqJ7F2/UfWCYwSs5Bsm4UwaRaS SbOQTFrAyLKKUaoqryC5ILEgqSjdwFAvKa8yNzUnJz9PLzk/dxMjJMq272B8ON3pEKMAB6MS D++JKsM4IdbEsuLK3EOMEhzMSiK8oq5AId6UxMqq1KL8+KLSnNTiQ4zSHCxK4rxTswzihATS E0tSs1NTC1KLYLJMHJxSDYyMxcefigpfXBU30d9BI2PiV+k7L4I6NS7Xzly/+c/jLRqf13Gf Oz/pyS6BOLejjZ9jG2T0v314njX9umVD/rE0voPiez7HT1HynjClfH7VGzbfkMNcjU6hp94d N0y/YfN616T7f+4+y2C7XdzN8eKY/K8f2sluGZPvztq4um/PN4cXNTfFprN3KrEUZyQaajEX FScCAL9JHCKuAgAA SSBtYW5hZ2VkIHRvIGdldCBjb252ZXJzaW9uIGZyb20gQ0ggdG8gYXJyb3cgdXNpbmcgYSBDSFRv QXJyb3dUeXBlPD4gaW50ZXItdHlwZSB0cmFpdHMgY29uY2VwdC4gSG93ZXZlciwgSSBhbSBzdGls bCB0cnlpbmcgdG8gY3JhY2sgdGhlIHVzZSBvZjoKCiBhcnJvdzo6VmlzaXRBcnJheUlubGluZQoK YW5kIAoKYXJyb3c6OkFycmF5RGF0YVZpc2l0b3IKCgpJIGhhdmUgYSBzdHJ1Y3Q6CgpTdHJ1Y3Qg QW5BcnJheVVzZXIKewogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBhcnJvdzo6U3RhdHVzIFZp c2l0KGNvbnN0IFQgJmEpCiAgICAgewogICAgICAgICAgIC8vIEhvdyB0byBpbnZva2UgQXJyYXlE YXRhVmlzaXRvcj8KICAgICB9CgogICAgIHZvaWQgVXNlKGNvbnN0IGFycm93OjpBcnJheSAmYSkg e2Fycm93OjpWaXNpdEFycmF5SW5saW5lKGEsIHRoaXMpO30KCgogICAgIGFycm93OjpTdGF0dXMg VmlzaXROdWxsKCkge3JldHVybiBhcnJvdzo6U3RhdHVzOjpPSygpO30KICAgICB0ZW1wbGF0ZSA8 Y2xhc3MgVD4gYXJyb3c6OlN0YXR1cyBWaXNpdFZhbHVlKFQgdmFsKSB7cmV0dXJuIGFycm93OjpT dGF0dXM6Ok9LKCk7fQp9OwoKV2hpY2ggYXBwZWFycyB0byBoYXZlIGl0J3MgIlVzZSIgbWV0aG9k IGNhbGxlZCBhcHByb3ByaWF0ZWx5LiBCdXQgaW5zaWRlIG9mIHRoZSBWaXNpdCBtZXRob2QgSSBo YXZlIHNvIGZhciBiZWVuIHVuYWJsZSB0byBmaW5kIHRoZSBpbmNhbnRhdGlvbiB0byBtYWtlIGEg Y2FsbCB0aHJvdWdoIHRoZSBBcnJheURhdGFWaXNpdG9yLiBJJ3ZlIHRyaWVkIHNldmVyYWwgdmFy aWF0aW9ucyBvZjoKCmFycm93OjpBcnJheURhdGFWaXNpdG9yPHR5cGVuYW1lIFQ6OlR5cGVDbGFz cz46OlZpc2l0KCooYXJyYXkuZGF0YSgpKSwgdGhpcyk7CgphdCB0aGUgLy8gSG93IHRvIC4uIGxp bmUgYWJvdmUgYnV0IGNhbid0IHNlZW0gdG8gZ2V0IGl0IHRvIHdvcmsuIEknbSBzdXJlIEkganVz dCBoYXZlIHNvbWUgZnVuZGFtZW50YWwgbWlzdW5kZXJzdGFuZGluZyBvZiBob3cgdGhpcyBpcyBz dXBwb3NlZCB0byB3b3JrLiBDYW4gc29tZW9uZSBnaXZlIG1lIHNvbWUgZ3VpZGFuY2U/CgpNYXR0 CgogICAKCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCkZyb206IFdlcyBNY0tpbm5leSA8d2Vz bWNraW5uQGdtYWlsLmNvbT4gClNlbnQ6IFdlZG5lc2RheSwgSmFudWFyeSAyMiwgMjAyMCAxMjow MyBQTQpUbzogdXNlckBhcnJvdy5hcGFjaGUub3JnClN1YmplY3Q6IFJlOiBDb252ZXJ0aW5nIGNs aWNraG91c2UgY29sdW1uIHRvIGFycm93IGFycmF5CgpJZiB5b3Ugc2VhcmNoIGZvciAiVmlzaXRU eXBlSW5saW5lIiBvciAiVmlzaXRBcnJheUlubGluZSIgaW4gdGhlIEMrKyBjb2RlYmFzZSB5b3Ug Y2FuIGZpbmQgbnVtZXJvdXMgZXhhbXBsZXMgb2Ygd2hlcmUgdGhpcyBpcyB1c2VkCgpPbiBXZWQs IEphbiAyMiwgMjAyMCBhdCAxMDo1OCBBTSBUaG9tYXMgQnVocm1hbm4gPHRob21hcy5idWVocm1h bm5AZ21haWwuY29tPiB3cm90ZToKPgo+IEhpLAo+IEkgd2FzIGxvb2tpbmcgZm9yIHNvbWV0aGlu ZyBzaW1pbGFyLCBidXQgZGlkbid0IGZpbmQgYSBnb29kIGV4YW1wbGUgaW4gdGhlIGRvY3Mgb3Ig dGhlIHNvdXJjZSBjb2RlIHNob3dpbmcgaG93IHRvIHVzZSB0aGUgdmlzaXRvciBwYXR0ZXJuLiBJ dCB3b3VsZCBiZSBncmVhdCwgZS5nLiwgdG8gaGF2ZSBhbiBleGFtcGxlIHNpbWlsYXIgdG8gdGhl ICJSb3cgdG8gY29sdW1uYXIgY29udmVyc2lvbiIsIHNob3dpbmcgYSB0ZW1wbGF0ZWQgd2F5IHRv IHJlYWQgYXJyb3cgY29sdW1ucyBpbnRvIEMrKyB2ZWN0b3JzIHVzaW5nIHRoZSB2aXNpdG9yIHBh dHRlcm4sIGFuZCB3aXRob3V0IGltcGxlbWVudGluZyBhIHNlcGFyYXRlIHJlYWRlciBmdW5jdGlv biBmb3IgZWFjaCBhcnJvdyB0eXBlLiBXb3VsZCB0aGF0IGJlIHBvc3NpYmxlPwo+Cj4gTWFueSB0 aGFua3MsCj4gVGhvbWFzCj4KPiBPbiBXZWQsIDIyIEphbiAyMDIwIGF0IDE3OjEzLCBXZXMgTWNL aW5uZXkgPHdlc21ja2lubkBnbWFpbC5jb20+IHdyb3RlOgo+Pgo+PiBoaSBNYXR0LAo+Pgo+PiBJ IHJlY29tbWVuZCB5b3UgdXNlIHRoZSB2aXNpdG9yIHBhdHRlcm4gY29tYmluZWQgd2l0aCB0aGUg Cj4+IGFycm93OjpUeXBlVHJhaXRzIHRoYXQgd2UgcHJvdmlkZQo+Pgo+PiBodHRwczovL2NsaWNr dGltZS5zeW1hbnRlYy5jb20vMzhKRUZVVEdCeUp6cnhiQ3MxYU0yTW43VmM/dT1odHRwcyUzQSUK Pj4gMkYlMkZnaXRodWIuY29tJTJGYXBhY2hlJTJGYXJyb3clMkZibG9iJTJGbWFzdGVyJTJGY3Bw JTJGc3JjJTJGYXJyb3clCj4+IDJGdHlwZV90cmFpdHMuaAo+Pgo+PiBZb3UnbGwgbmVlZCB0byBw cm92aWRlIGEgY29tcGlsZS10aW1lIG1hcHBpbmcgZnJvbSBDbGlja2hvdXNlIHR5cGVzIAo+PiB0 byBBcnJvdyB0eXBlcywgYnV0IHRoZW4geW91IGNhbiBzdGF0aWNhbGx5IGFjY2VzcyB0aGUgY29y cmVjdCAKPj4gYnVpbGRlciB0eXBlIGF0IGNvbXBpbGUgdGltZQo+Pgo+PiB1c2luZyBBcnJvd1R5 cGUgPSB0eXBlbmFtZSBDSFRvQXJyb3dUeXBlPENIVHlwZT46OkFycm93VHlwZTsgdXNpbmcgCj4+ IEJ1aWxkZXJUeXBlID0gdHlwZW5hbWUgVHlwZVRyYWl0czxBcnJvd1R5cGU+OjpCdWlsZGVyVHlw ZTsKPj4KPj4gLi4uCj4+Cj4+IG9yIHNpbWlsYXIuIEluIGNhc2VzIHdoZXJlIHRoZSBleHBvcnRl ZCBDbGlja2hvdXNlIGRhdGEgZG9lcyBub3QgaGF2ZSAKPj4gYW4gYXNzb2NpYXRlZCBBcHBlbmRW YWx1ZXMgbWV0aG9kIGluIEFycm93IHlvdSBtYXkgaGF2ZSB0byB3cml0ZSBhIAo+PiBzcGVjaWFs IGNhc2UgKHBsZWFzZSBvcGVuIEpJUkEgaXNzdWVzIGlmIHlvdSB0aGluayB0aGVyZSBzaG91bGQg YmUgCj4+IG1vcmUgQXBwZW5kVmFsdWVzIG1ldGhvZHMpCj4+Cj4+IFRoYW5rcwo+Pgo+PiBPbiBX ZWQsIEphbiAyMiwgMjAyMCBhdCA3OjQ0IEFNIENhbGRlciwgTWF0dGhldyA8bWNhbGRlckB4Ymt0 cmFkaW5nLmNvbT4gd3JvdGU6Cj4+ID4KPj4gPiBIaSwKPj4gPgo+PiA+Cj4+ID4KPj4gPiBJIGFt IGludGVyZmFjaW5nIGFycm93IHRvIGEgQ2xpY2tob3VzZSBkYXRhYmFzZSB1c2luZyB0aGVpciBj KysgY2xpZW50LiBCb3RoIGFycm93IGFuZCBDSCBoYXZlIGdlbmVyaWMgYXJyYXktbGlrZSBjbGFz c2VzIHdpdGggdGhlIGVsZW1lbnQgZGF0YSB0eXBlIGludGVybmFsaXplZC4gSWRlYWxseSwgSSB3 b3VsZCBsaWtlIHRvIGJlIGFibGUgdG8gd3JpdGUgc29tZXRoaW5nIGxpa2U6Cj4+ID4KPj4gPgo+ PiA+Cj4+ID4gYXJyb3c6OkFycmF5IGEgPSBTb21lQ29udmVyc2lvbkludm9jYXRpb24oY2xpY2to b3VzZTo6Q29sdW1uIGMpOwo+PiA+Cj4+ID4KPj4gPgo+PiA+IFdoZXJlIHRoZSBhcnJheSBhbmQg Y29sdW1uIGhhdmUgdGhlIHNhbWUgZWxlbWVudCB0eXBlIChpbnQsIGRvdWJsZSwgc3RyaW5nLCDi gKYpIGJ1dCB0aGUgY29kZSBpcyBnZW5lcmljIHRvIHRoZSBzcGVjaWZpYyB0eXBlLgo+PiA+Cj4+ ID4KPj4gPgo+PiA+IEkgY2FuIGRvIHRoaXMgYnkgZXhwbGljaXRseSBoYW5kbGluZyBzcGVjaWZp YyB0eXBlcyB0aHJvdWdoIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9uIGJ1dCBJIHRob3VnaHQgdGhh dCBzaW5jZSBhcnJvdyBhbHJlYWR5IGhhcyBwcmV0dHkgZ2VuZXJpYyB0eXBlIGhhbmRsaW5nIHRo cm91Z2ggaXRzIHRlbXBsYXRlcywgYW5kIGNsaWNraG91c2UgYWxzbyBoYXMgc2ltaWxhciBjYXBh YmlsaXR5IHRoZXJlIG91Z2h0IHRvIGJlIGEgbW9yZSBzZWFtbGVzcyB3YXkgdG8gZG8gdGhlIGNv bnZlcnNpb24uIFplcm8gY29weSB3b3VsZCBwcm9iYWJseSBiZSBhIGxvdCB0byBhc2ssIGJ1dCBz b21ldGhpbmcgc2hvcnQgb2YgdGVtcGxhdGUgc3BlY2lhbGl6YXRpb25zIGZvciBldmVyeSB0eXBl IGlzIHdoYXQgSSBhbSBhaW1pbmcgZm9yLgo+PiA+Cj4+ID4KPj4gPgo+PiA+IEkgY3VycmVudGx5 IGRvIGV4cGxpY2l0IHR5cGUgc3BlY2lhbGl6YXRpb24uIEZvciBleGFtcGxlIEkgaGF2ZSBmdW5j dGlvbnMgbGlrZToKPj4gPgo+PiA+Cj4+ID4KPj4gPiBpbmxpbmUgc3RkOjpzaGFyZWRfcHRyPGFy cm93OjpBcnJheT4gbWFrZUFycmF5KGNvbnN0IAo+PiA+IHN0ZDo6dmVjdG9yPGRvdWJsZT4gJnYp Cj4+ID4KPj4gPiB7Cj4+ID4KPj4gPiAgICAgYXJyb3c6OkRvdWJsZUJ1aWxkZXIgYnVpbGRlcjsK Pj4gPgo+PiA+ICAgICBidWlsZGVyLkFwcGVuZFZhbHVlcyh2KTsKPj4gPgo+PiA+ICAgICBzdGQ6 OnNoYXJlZF9wdHI8YXJyb3c6OkFycmF5PiBhcnJheTsKPj4gPgo+PiA+ICAgICBidWlsZGVyLkZp bmlzaCgmYXJyYXkpOwo+PiA+Cj4+ID4gICAgIHJldHVybiBhcnJheTsKPj4gPgo+PiA+IH0KPj4g Pgo+PiA+Cj4+ID4KPj4gPiBpbmxpbmUgc3RkOjpzaGFyZWRfcHRyPGFycm93OjpBcnJheT4gbWFr ZUFycmF5KGNvbnN0IAo+PiA+IHN0ZDo6dmVjdG9yPGludD4gJnYpCj4+ID4KPj4gPiB7Cj4+ID4K Pj4gPiAgICAgYXJyb3c6OkludDMyQnVpbGRlciBidWlsZGVyOwo+PiA+Cj4+ID4gICAgIGJ1aWxk ZXIuQXBwZW5kVmFsdWVzKHYpOwo+PiA+Cj4+ID4gICAgIHN0ZDo6c2hhcmVkX3B0cjxhcnJvdzo6 QXJyYXk+IGFycmF5Owo+PiA+Cj4+ID4gICAgIGJ1aWxkZXIuRmluaXNoKCZhcnJheSk7Cj4+ID4K Pj4gPiAgICAgcmV0dXJuIGFycmF5Owo+PiA+Cj4+ID4gfQo+PiA+Cj4+ID4KPj4gPgo+PiA+IFdo aWNoIEkgc3VzcGVjdCBpcyB1bm5lY2Vzc2FyaWx5IGV4cGxpY2l0LiBJcyB0aGVyZSBhIG1vcmUg Z2VuZXJpYyB3YXkgb2YgaGFuZGxpbmcgdGhlIHZhcmlldHkgb2YgdW5kZXJseWluZyBhcnJheSBl bGVtZW50IGRhdGEgdHlwZXMgd2hlbiBjb25zdHJ1Y3RpbmcgYXJyb3c6OkFycmF5IG9iamVjdHM/ IEFuZCBjYW4gc29tZW9uZSBwb2ludCBtZSB0byBleGFtcGxlcyB0aGF0IGludGVyZmFjZSBhcnJv dyB0byBhbm90aGVyIHNpbWlsYXJseSBnZW5lcmljYWxseSB0eXBlZCBsaWJyYXJ5IChkb2VzbuKA mXQgaGF2ZSB0byBiZSBjbGlja2hvdXNlKS4gVGhhbmtzIGZvciBhbnkgZ3VpZGFuY2UuCj4+ID4K Pj4gPgo+PiA+Cj4+ID4gTWF0dAo+PiA+Cj4+ID4KPj4gPgo+PiA+Cj4+ID4gVGhlIGluZm9ybWF0 aW9uIGNvbnRhaW5lZCBpbiB0aGlzIGUtbWFpbCBtYXkgYmUgY29uZmlkZW50aWFsIGFuZCBpcyBp bnRlbmRlZCBzb2xlbHkgZm9yIHRoZSB1c2Ugb2YgdGhlIG5hbWVkIGFkZHJlc3NlZS4KPj4gPgo+ PiA+IEFjY2VzcywgY29weWluZyBvciByZS11c2Ugb2YgdGhlIGUtbWFpbCBvciBhbnkgaW5mb3Jt YXRpb24gY29udGFpbmVkIHRoZXJlaW4gYnkgYW55IG90aGVyIHBlcnNvbiBpcyBub3QgYXV0aG9y aXplZC4KPj4gPgo+PiA+IElmIHlvdSBhcmUgbm90IHRoZSBpbnRlbmRlZCByZWNpcGllbnQgcGxl YXNlIG5vdGlmeSB1cyBpbW1lZGlhdGVseSBieSByZXR1cm5pbmcgdGhlIGUtbWFpbCB0byB0aGUg b3JpZ2luYXRvci4KPj4gPgo+PiA+IERpc2NsYWltZXIgVmVyc2lvbiBNQi5VUy4xCgpUaGUgaW5m b3JtYXRpb24gY29udGFpbmVkIGluIHRoaXMgZS1tYWlsIG1heSBiZSBjb25maWRlbnRpYWwgYW5k IGlzIGludGVuZGVkIHNvbGVseSBmb3IgdGhlIHVzZSBvZiB0aGUgbmFtZWQgYWRkcmVzc2VlLgoK QWNjZXNzLCBjb3B5aW5nIG9yIHJlLXVzZSBvZiB0aGUgZS1tYWlsIG9yIGFueSBpbmZvcm1hdGlv biBjb250YWluZWQgdGhlcmVpbiBieSBhbnkgb3RoZXIgcGVyc29uIGlzIG5vdCBhdXRob3JpemVk LgoKSWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCBwbGVhc2Ugbm90aWZ5IHVz IGltbWVkaWF0ZWx5IGJ5IHJldHVybmluZyB0aGUgZS1tYWlsIHRvIHRoZSBvcmlnaW5hdG9yLgoK RGlzY2xhaW1lciBWZXJzaW9uIE1CLlVTLjEK