From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS31976 209.132.180.0/23 X-Spam-Status: No, score=-3.9 required=3.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, SPF_HELO_PASS,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 8C68020248 for ; Sun, 7 Apr 2019 05:28:46 +0000 (UTC) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:date:to:from:reply-to:subject:message-id :mime-version:content-type; q=dns; s=default; b=qPA0kJ6f7kZZKp5y r7pbpZaumP/WRPTSfkgujMEgHOntVsqqK9ymy2TXU/1G3VNLw+juGO80XXdhUxZQ aGaIZiN1YBUO8bNrCUWfBDEcBvRaHggzrV/wBY9oUS+PBTaLqtzxV2n+m8frZ96k kDG0g9RXaLXMjK5Sggd0ar5QdsA= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:date:to:from:reply-to:subject:message-id :mime-version:content-type; s=default; bh=VCT/HUU6AAFo8LLgxXVYpD OUqvk=; b=E/zV0lfiAwB2qIKZwajrFLwfD8MumM19chU1eat6B9zgm/cgqZPmDz X0R6beKpAkRU0cR+7ALVEpUNOOsB9750mYB3wDmoHUh1FFJY32qlJ1AEwlVdcYuD DHoyUzABt6FvkAFvbdLeOrPmZBTxhGgwD84KbjRFaiECgYQh+RNok= Received: (qmail 60734 invoked by alias); 7 Apr 2019 05:28:43 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 60174 invoked by uid 89); 7 Apr 2019 05:28:42 -0000 Authentication-Results: sourceware.org; auth=none X-HELO: mail-40133.protonmail.ch Date: Sun, 07 Apr 2019 05:28:32 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=default; t=1554614915; bh=zJvGmdQYWpSw6vFcfOE8BO0G08TZeRlCkUqwe7h260g=; h=Date:To:From:Reply-To:Subject:Feedback-ID:From; b=eUKGq44EiE9G4Up+VDmBmCfa0pUttYAK5Pk4O+5UagFPRjmjXGm6FlQz84UUNJgF9 pDZdeWHYnxWgbU27Ph8HLrH3F2rv8+1NUZ0ke+HIkmjwvIzX7+LOTRjBmKzfldwGKw DFCtSx9xygKOBn7UFZC061CYeNQvLYRop1QqOLGs= To: "libc-alpha\\@sourceware.org" From: GT Reply-To: GT Subject: [PATCH v1 6/12] PPC64: Add libmvec SIMD single-precision sincosf function. Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_101a6227454cd366136443ec47d48c06" This is a multi-part message in MIME format. --b1_101a6227454cd366136443ec47d48c06 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable 1. This implementation is basically a combination of the single-precision c= osine and sine functions. Those are in, respectively, patches No. 2 and No. 4 in this sequ= ence. 2. As sincosf returns both a vector of sines and a vector of cosines, the A= BI used requires that: the caller of sincosf pass, as input arguments 2 and 3, pointers to v= ector floats in which the sine and cosine results will be stored. --b1_101a6227454cd366136443ec47d48c06 Content-Type: text/x-patch; name="0001-PPC64-Add-libmvec-SIMD-single-precision-sincosf-func.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0001-PPC64-Add-libmvec-SIMD-single-precision-sincosf-func.patch RnJvbSA1YTAzYzRkOGI3YmM2ZDY5ZDI4NmY3NDExMjgzZTM4OTJkZDRlZTI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJ0IFRlbmp5IDxiZXJ0LnRlbmp5QGdtYWlsLmNvbT4KRGF0 ZTogU3VuLCA3IEFwciAyMDE5IDA1OjEzOjQ3ICswMDAwClN1YmplY3Q6IFtQQVRDSCB2MSA2LzEy XSBQUEM2NDogQWRkIGxpYm12ZWMgU0lNRCBzaW5nbGUtcHJlY2lzaW9uIHNpbmNvc2YKIGZ1bmN0 aW9uLgoKW0JaICMyNDIwN10KCkltcGxlbWVudHMgc2luZ2xlLXByZWNpc2lvbiB2ZWN0b3Igc2lu Y29zZiBmdW5jdGlvbi4gVGhlIHBvbHlub21pYWwgYXBwcm94aW1hLQp0aW5nIGFsZ29yaXRobSBp cyBhZGFwdGVkIGZvciBQUEM2NCBmcm9tIHg4Nl82NCBbY29tbWl0ICNhNjMzNmNjNDQ2XS4KClRo ZSBwYXRjaCBoYXMgYmVlbiB0ZXN0ZWQgb24gUFBDNjQvUE9XRVI4IExpdHRsZSBFbmRpYW4gYW5k IEJpZyBFbmRpYW4uClRlc3RpbmcgdXNlcyB0aGUgZnJhbWV3b3JrIGNyZWF0ZWQgZm9yIGxpYm12 ZWMgb24geDg2XzY0IHdoaWNoIHJ1bnMgdGVzdHMgb24KaXNzdWluZyAnbWFrZSBjaGVjaycuIFRl c3RzIG9mIHRoZSBuZXcgdmVjdG9yIHNpbmNvc2YgZnVuY3Rpb24gYWxsIHBhc3MuCi0tLQogQ2hh bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE1ICsrCiBORVdT ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3lzZGVw cy9wb3dlcnBjL2JpdHMvbWF0aC12ZWN0b3IuaCAgICAgICAgICAgIHwgICAyICsKIHN5c2RlcHMv cG93ZXJwYy9mcHUvbGlibS10ZXN0LXVscHMgICAgICAgICAgICB8ICAgMyArCiBzeXNkZXBzL3Bv d2VycGMvcG93ZXJwYzY0L2ZwdS9WZXJzaW9ucyAgICAgICAgfCAgIDIgKy0KIC4uLi9wb3dlcnBj L3Bvd2VycGM2NC9mcHUvbXVsdGlhcmNoL01ha2VmaWxlICB8ICAgNSArLQogLi4uL2ZwdS9tdWx0 aWFyY2gvdGVzdC1mbG9hdC12bGVuNC13cmFwcGVycy5jIHwgICAyICsKIC4uLi9mcHUvbXVsdGlh cmNoL3ZlY19zX3NpbmNvc2Y0X3ZzeC5jICAgICAgICB8ICAzMyArKysKIC4uLi9mcHUvbXVsdGlh cmNoL3ZlY19zX3NpbmNvc2Y0X3ZzeC5oICAgICAgICB8IDIwMyArKysrKysrKysrKysrKysrKysK IC4uLi9saW51eC9wb3dlcnBjL3Bvd2VycGM2NC9saWJtdmVjLmFiaWxpc3QgICB8ICAgMSArCiAx MCBmaWxlcyBjaGFuZ2VkLCAyNjQgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3Bvd2VycGMvcG93ZXJwYzY0L2ZwdS9tdWx0aWFyY2gvdmVj X3Nfc2luY29zZjRfdnN4LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3Bvd2VycGMvcG93 ZXJwYzY0L2ZwdS9tdWx0aWFyY2gvdmVjX3Nfc2luY29zZjRfdnN4LmgKCmRpZmYgLS1naXQgYS9D aGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggZDU2ZDFmMmEyOC4uZWNmNzFjNmM2OSAxMDA2NDQK LS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTA0 LTA3ICBCZXJ0IFRlbmp5ICA8YmVydC50ZW5qeUBnbWFpbC5jb20+CisKKyAgICAgICBbQlogIzI0 MjA3XQorICAgICAgICogTkVXUzogTm90ZSB0aGUgYWRkaXRpb24gb2YgUFBDNjQgdmVjdG9yIHNp bmNvc2YuCisgICAgICAgKiBzeXNkZXBzL3Bvd2VycGMvYml0cy9tYXRoLXZlY3Rvci5oOiBBZGRl ZCBzaW5jb3NmIGVudHJ5LgorICAgICAgICogc3lzZGVwcy9wb3dlcnBjL2ZwdS9saWJtLXRlc3Qt dWxwczogUmVnZW5lcmF0ZWQuCisgICAgICAgKiBzeXNkZXBzL3Bvd2VycGMvcG93ZXJwYzY0L2Zw dS9WZXJzaW9uczogQWRkZWQgc2luY29zZiBlbnRyeS4KKyAgICAgICAqIHN5c2RlcHMvcG93ZXJw Yy9wb3dlcnBjNjQvZnB1L211bHRpYXJjaC9NYWtlZmlsZTogKGxpYm12ZWMtc3lzZGVwX3JvdXRp bmVzKQorICAgICAgIChDRkxBR1MtdmVjX3Nfc2luY29zZjRfdnN4LmMsIGZsb2F0LXZsZW40LWZ1 bmNzKTogQWRkZWQgYnVpbGQgb2YgVlNYIFNJTUQgc2luY29zZiBmdW5jdGlvbgorICAgICAgIGFu ZCBpdHMgdGVzdHMuCisgICAgICAgKiBzeXNkZXBzL3Bvd2VycGMvcG93ZXJwYzY0L2ZwdS9tdWx0 aWFyY2gvdGVzdC1mbG9hdC12bGVuNC13cmFwcGVycy5jOiBBZGRlZCBzaW5jb3NmIGVudHJ5Lgor ICAgICAgICogc3lzZGVwcy9wb3dlcnBjL3Bvd2VycGM2NC9mcHUvbXVsdGlhcmNoL3ZlY19zX3Np bmNvc2Y0X3ZzeC5jOiBOZXcgZmlsZS4KKyAgICAgICAqIHN5c2RlcHMvcG93ZXJwYy9wb3dlcnBj NjQvZnB1L211bHRpYXJjaC92ZWNfc19zaW5jb3NmNF92c3guaDogTGlrZXdpc2UuCisgICAgICAg KiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9wb3dlcnBjL3Bvd2VycGM2NC9saWJtdmVjLmFiaWxp c3Q6IFNJTUQgc2luY29zZiBhZGRlZC4KKwogMjAxOS0wNC0wNiAgQmVydCBUZW5qeSAgPGJlcnQu dGVuanlAZ21haWwuY29tPgogCiAgICAgICAgW0JaICMyNDIwN10KZGlmZiAtLWdpdCBhL05FV1Mg Yi9ORVdTCmluZGV4IGQ3MmI5YTdmNzAuLjgzOGJiYjk1NWIgMTAwNjQ0Ci0tLSBhL05FV1MKKysr IGIvTkVXUwpAQCAtMTgsNiArMTgsNyBAQCBNYWpvciBuZXcgZmVhdHVyZXM6CiAgIC0gZG91Ymxl LXByZWNpc2lvbiBzaW5lOiBzaW4KICAgLSBzaW5nbGUtcHJlY2lzaW9uIGNvc2luZTogc2luZgog ICAtIGRvdWJsZS1wcmVjaXNpb24gc2luY29zOiBzaW5jb3MKKyAgLSBzaW5nbGUtcHJlY2lzaW9u IHNpbmNvczogc2luY29zZgogCiAgIEdDQyBzdXBwb3J0IGZvciBhdXRvLXZlY3Rvcml6YXRpb24g b2YgZnVuY3Rpb25zIG9uIFBQQzY0IGlzIG5vdCB5ZXQKICAgYXZhaWxhYmxlLiBVbnRpbCB0aGF0 IGlzIGRvbmUsIHRoZSBuZXcgdmVjdG9yIG1hdGggZnVuY3Rpb25zIGFyZQpkaWZmIC0tZ2l0IGEv c3lzZGVwcy9wb3dlcnBjL2JpdHMvbWF0aC12ZWN0b3IuaCBiL3N5c2RlcHMvcG93ZXJwYy9iaXRz L21hdGgtdmVjdG9yLmgKaW5kZXggNTJiNGIwOTAyNC4uYWEyYzgwOTA5OCAxMDA2NDQKLS0tIGEv c3lzZGVwcy9wb3dlcnBjL2JpdHMvbWF0aC12ZWN0b3IuaAorKysgYi9zeXNkZXBzL3Bvd2VycGMv Yml0cy9tYXRoLXZlY3Rvci5oCkBAIC0zOCw2ICszOCw4IEBACiAjICBkZWZpbmUgX19ERUNMX1NJ TURfY29zIF9fREVDTF9TSU1EX1BQQzY0CiAjICB1bmRlZiBfX0RFQ0xfU0lNRF9zaW5jb3MKICMg IGRlZmluZSBfX0RFQ0xfU0lNRF9zaW5jb3MgX19ERUNMX1NJTURfUFBDNjQKKyMgIHVuZGVmIF9f REVDTF9TSU1EX3NpbmNvc2YKKyMgIGRlZmluZSBfX0RFQ0xfU0lNRF9zaW5jb3NmIF9fREVDTF9T SU1EX1BQQzY0CiAKICMgZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lzZGVwcy9wb3dlcnBj L2ZwdS9saWJtLXRlc3QtdWxwcyBiL3N5c2RlcHMvcG93ZXJwYy9mcHUvbGlibS10ZXN0LXVscHMK aW5kZXggMTRjODJlNDk5NS4uMDM4ZjI5MTJiOCAxMDA2NDQKLS0tIGEvc3lzZGVwcy9wb3dlcnBj L2ZwdS9saWJtLXRlc3QtdWxwcworKysgYi9zeXNkZXBzL3Bvd2VycGMvZnB1L2xpYm0tdGVzdC11 bHBzCkBAIC0yNjE5LDYgKzI2MTksOSBAQCBsZG91YmxlOiA3CiBGdW5jdGlvbjogInNpbmNvc192 bGVuMiI6CiBkb3VibGU6IDIKIAorRnVuY3Rpb246ICJzaW5jb3NfdmxlbjQiOgorZmxvYXQ6IDEK KwogRnVuY3Rpb246ICJzaW5oIjoKIGRvdWJsZTogMgogZmxvYXQ6IDIKZGlmZiAtLWdpdCBhL3N5 c2RlcHMvcG93ZXJwYy9wb3dlcnBjNjQvZnB1L1ZlcnNpb25zIGIvc3lzZGVwcy9wb3dlcnBjL3Bv d2VycGM2NC9mcHUvVmVyc2lvbnMKaW5kZXggOGFiMGYwMGYxOC4uMjJiZDdjYzUxYiAxMDA2NDQK LS0tIGEvc3lzZGVwcy9wb3dlcnBjL3Bvd2VycGM2NC9mcHUvVmVyc2lvbnMKKysrIGIvc3lzZGVw cy9wb3dlcnBjL3Bvd2VycGM2NC9mcHUvVmVyc2lvbnMKQEAgLTEsNiArMSw2IEBACiBsaWJtdmVj IHsKICAgR0xJQkNfMi4zMCB7CiAgICAgX1pHVmJOMnZfY29zOyBfWkdWYk40dl9jb3NmOyBfWkdW Yk4ydl9zaW47IF9aR1ZiTjR2X3NpbmY7Ci0gICAgX1pHVmJOMnZ2dl9zaW5jb3M7CisgICAgX1pH VmJOMnZ2dl9zaW5jb3M7IF9aR1ZiTjR2dnZfc2luY29zZjsKICAgfQogfQpkaWZmIC0tZ2l0IGEv c3lzZGVwcy9wb3dlcnBjL3Bvd2VycGM2NC9mcHUvbXVsdGlhcmNoL01ha2VmaWxlIGIvc3lzZGVw cy9wb3dlcnBjL3Bvd2VycGM2NC9mcHUvbXVsdGlhcmNoL01ha2VmaWxlCmluZGV4IDhmNGY4ZmFi ZWEuLjM3ZTg3NTUzOTIgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMvcG93ZXJwYy9wb3dlcnBjNjQvZnB1 L211bHRpYXJjaC9NYWtlZmlsZQorKysgYi9zeXNkZXBzL3Bvd2VycGMvcG93ZXJwYzY0L2ZwdS9t dWx0aWFyY2gvTWFrZWZpbGUKQEAgLTQ2LDEyICs0NiwxMyBAQCBlbmRpZgogaWZlcSAoJChzdWJk aXIpLG1hdGh2ZWMpCiBsaWJtdmVjLXN5c2RlcF9yb3V0aW5lcyArPSB2ZWNfZF9jb3MyX3ZzeCB2 ZWNfc19jb3NmNF92c3ggXAogCQkJICAgdmVjX2Rfc2luMl92c3ggdmVjX3Nfc2luZjRfdnN4IFwK LQkJCSAgIHZlY19kX3NpbmNvczJfdnN4CisJCQkgICB2ZWNfZF9zaW5jb3MyX3ZzeCB2ZWNfc19z aW5jb3NmNF92c3gKIENGTEFHUy12ZWNfZF9jb3MyX3ZzeC5jICs9IC1tYWJpPWFsdGl2ZWMgLW1h bHRpdmVjIC1tdnN4CiBDRkxBR1MtdmVjX3NfY29zZjRfdnN4LmMgKz0gLW1hYmk9YWx0aXZlYyAt bWFsdGl2ZWMgLW12c3gKIENGTEFHUy12ZWNfZF9zaW4yX3ZzeC5jICs9IC1tYWJpPWFsdGl2ZWMg LW1hbHRpdmVjIC1tdnN4CiBDRkxBR1MtdmVjX3Nfc2luZjRfdnN4LmMgKz0gLW1hYmk9YWx0aXZl YyAtbWFsdGl2ZWMgLW12c3gKIENGTEFHUy12ZWNfZF9zaW5jb3MyX3ZzeC5jICs9IC1tYWJpPWFs dGl2ZWMgLW1hbHRpdmVjIC1tdnN4CitDRkxBR1MtdmVjX3Nfc2luY29zZjRfdnN4LmMgKz0gLW1h Ymk9YWx0aXZlYyAtbWFsdGl2ZWMgLW12c3gKIGVuZGlmCiAKICMgVmFyaWFibGVzIGZvciBsaWJt dmVjIHRlc3RzLgpAQCAtNjAsNyArNjEsNyBAQCBpZmVxICgkKGJ1aWxkLW1hdGh2ZWMpLHllcykK IGxpYm12ZWMtdGVzdHMgKz0gZG91YmxlLXZsZW4yIGZsb2F0LXZsZW40CiAKIGRvdWJsZS12bGVu Mi1mdW5jcyA9IGNvcyBzaW4gc2luY29zCi1mbG9hdC12bGVuNC1mdW5jcyA9IGNvcyBzaW4KK2Zs b2F0LXZsZW40LWZ1bmNzID0gY29zIHNpbiBzaW5jb3MKIAogZG91YmxlLXZsZW4yLWFyY2gtZXh0 LWNmbGFncyA9IC1tYWJpPWFsdGl2ZWMgLW1hbHRpdmVjIC1tdnN4IC1EUkVRVUlSRV9WU1gKIGZs b2F0LXZsZW40LWFyY2gtZXh0LWNmbGFncyA9IC1tYWJpPWFsdGl2ZWMgLW1hbHRpdmVjIC1tdnN4 IC1EUkVRVUlSRV9WU1gKZGlmZiAtLWdpdCBhL3N5c2RlcHMvcG93ZXJwYy9wb3dlcnBjNjQvZnB1 L211bHRpYXJjaC90ZXN0LWZsb2F0LXZsZW40LXdyYXBwZXJzLmMgYi9zeXNkZXBzL3Bvd2VycGMv cG93ZXJwYzY0L2ZwdS9tdWx0aWFyY2gvdGVzdC1mbG9hdC12bGVuNC13cmFwcGVycy5jCmluZGV4 IDQ0Zjk0ZDFjNzAuLjg3YmU5ZGUwYmUgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMvcG93ZXJwYy9wb3dl cnBjNjQvZnB1L211bHRpYXJjaC90ZXN0LWZsb2F0LXZsZW40LXdyYXBwZXJzLmMKKysrIGIvc3lz ZGVwcy9wb3dlcnBjL3Bvd2VycGM2NC9mcHUvbXVsdGlhcmNoL3Rlc3QtZmxvYXQtdmxlbjQtd3Jh cHBlcnMuYwpAQCAtMjMsMyArMjMsNSBAQAogCiBWRUNUT1JfV1JBUFBFUiAoV1JBUFBFUl9OQU1F IChjb3NmKSwgX1pHVmJONHZfY29zZikKIFZFQ1RPUl9XUkFQUEVSIChXUkFQUEVSX05BTUUgKHNp bmYpLCBfWkdWYk40dl9zaW5mKQorCitWRUNUT1JfV1JBUFBFUl9mRkYgKFdSQVBQRVJfTkFNRSAo c2luY29zZiksIF9aR1ZiTjR2dnZfc2luY29zZikKZGlmZiAtLWdpdCBhL3N5c2RlcHMvcG93ZXJw Yy9wb3dlcnBjNjQvZnB1L211bHRpYXJjaC92ZWNfc19zaW5jb3NmNF92c3guYyBiL3N5c2RlcHMv cG93ZXJwYy9wb3dlcnBjNjQvZnB1L211bHRpYXJjaC92ZWNfc19zaW5jb3NmNF92c3guYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4xZjJkNDc4ZmJjCi0tLSAvZGV2L251 bGwKKysrIGIvc3lzZGVwcy9wb3dlcnBjL3Bvd2VycGM2NC9mcHUvbXVsdGlhcmNoL3ZlY19zX3Np bmNvc2Y0X3ZzeC5jCkBAIC0wLDAgKzEsMzMgQEAKKy8qIEZ1bmN0aW9uIHNpbmNvc2YgdmVjdG9y aXplZCB3aXRoIFZTWC4KKyAgIENvcHlyaWdodCAoQykgMjAxOSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5Lgor CisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vu c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUg QyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0 aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4gICovCisKKyNpbmNsdWRlIDxtYXRoLmg+CisjaW5jbHVkZSAidmVjX3NfdHJp Z19kYXRhLmgiCisjaW5jbHVkZSAidmVjX3Nfc2luY29zZjRfdnN4LmgiCisKK3ZvaWQKK19aR1Zi TjR2dnZfc2luY29zZiAodmVjdG9yIGZsb2F0IHgsIHZlY3RvciBmbG9hdCAqIHNpbmVzX3gsIHZl Y3RvciBmbG9hdCAqIGNvc2luZXNfeCkKK3sKKworICAvKiBDYWxsIHZlY3RvciBzaW5lIGV2YWx1 YXRvci4gICovCisgICpzaW5lc194ID0gX19zX3Npbl9wb2x5X2V2YWwoeCk7CisKKyAgLyogQ2Fs bCB2ZWN0b3IgY29zaW5lIGV2YWx1YXRvci4gICovCisgICpjb3NpbmVzX3ggPSBfX3NfY29zX3Bv bHlfZXZhbCh4KTsKKworfSAvKiBGdW5jdGlvbiBfWkdWYk40X3Z2dl9zaW5jb3NmLiAgKi8KZGlm ZiAtLWdpdCBhL3N5c2RlcHMvcG93ZXJwYy9wb3dlcnBjNjQvZnB1L211bHRpYXJjaC92ZWNfc19z aW5jb3NmNF92c3guaCBiL3N5c2RlcHMvcG93ZXJwYy9wb3dlcnBjNjQvZnB1L211bHRpYXJjaC92 ZWNfc19zaW5jb3NmNF92c3guaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw Li4zYmExZmZiOTMwCi0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy9wb3dlcnBjL3Bvd2VycGM2 NC9mcHUvbXVsdGlhcmNoL3ZlY19zX3NpbmNvc2Y0X3ZzeC5oCkBAIC0wLDAgKzEsMjAzIEBACisv KiBEZWZpbml0aW9ucyB0byBzaW1wbGlmeSBjb2RlIGJ5IGFsbG93aW5nIHJldXNlIG9mIHNpbmUg YW5kIGNvc2luZQorICAgZnVuY3Rpb24gaW1wbGVtZW50YXRpb25zLgorICAgQ29weXJpZ2h0IChD KSAyMDE5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBh cnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg ICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAg TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1 YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNl ZQorICAgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2luY2x1ZGUgPG1h dGguaD4KKyNpbmNsdWRlICJ2ZWNfc190cmlnX2RhdGEuaCIKKworc3RhdGljIGlubGluZSB2ZWN0 b3IgZmxvYXQKK19fc19jb3NfcG9seV9ldmFsICh2ZWN0b3IgZmxvYXQgeCkKK3sKKworICAvKgor ICAgQUxHT1JJVEhNIERFU0NSSVBUSU9OOgorCisgICAxKSBSYW5nZSByZWR1Y3Rpb24gdG8gWy1Q aS8yOyArUGkvMl0gaW50ZXJ2YWwKKyAgICAgYSkgV2UgcmVtb3ZlIHNpZ24gdXNpbmcgYWJzb2x1 dGUgdmFsdWUgb3BlcmF0aW9uCisgICAgIGIpIEFkZCBQaS8yIHZhbHVlIHRvIGFyZ3VtZW50IFgg Zm9yIENvcyB0byBTaW4gdHJhbnNmb3JtYXRpb24KKyAgICAgYykgR2V0dGluZyBvY3RhbnQgWSBi eSAxL1BpIG11bHRpcGxpY2F0aW9uCisgICAgIGQpIEFkZCAiUmlnaHQgU2hpZnRlciIgdmFsdWUK KyAgICAgZSkgVHJlYXQgb2J0YWluZWQgdmFsdWUgYXMgaW50ZWdlciBmb3IgZGVzdGluYXRpb24g c2lnbiBzZXR0aW5nLgorICAgICAgICBTaGlmdCBmaXJzdCBiaXQgb2YgdGhpcyB2YWx1ZSB0byB0 aGUgbGFzdCAoc2lnbikgcG9zaXRpb24KKyAgICAgZikgU3VidHJhY3QgIlJpZ2h0IFNoaWZ0ZXIi ICB2YWx1ZQorICAgICBnKSBTdWJ0cmFjdCAwLjUgZnJvbSByZXN1bHQgZm9yIG9jdGFudCBjb3Jy ZWN0aW9uCisgICAgIGgpIFN1YnRyYWN0IFkqUEkgZnJvbSBYIGFyZ3VtZW50LCB3aGVyZSBQSSBk aXZpZGVkIHRvIDQgcGFydHM6CisgICAgICAgICAgWCA9IFggLSBZKlBJMSAtIFkqUEkyIC0gWSpQ STMgLSBZKlBJNDsKKyAgIDIpIFBvbHlub21pYWwgKG1pbmltYXggZm9yIHNpbiB3aXRoaW4gWy1Q aS8yOyArUGkvMl0gaW50ZXJ2YWwpCisgICAgIGEpIENhbGN1bGF0ZSBYXjIgPSBYICogWAorICAg ICBiKSBDYWxjdWxhdGUgcG9seW5vbWlhbDoKKyAgICAgICAgIFIgPSBYICsgWCAqIFheMiAqIChB MyArIHheMiAqIChBNSArIC4uLi4uCisgICAzKSBEZXN0aW5hdGlvbiBzaWduIHNldHRpbmcKKyAg ICAgYSkgU2V0IHNoaWZ0ZWQgZGVzdGluYXRpb24gc2lnbiB1c2luZyBYT1Igb3BlcmF0aW9uOgor ICAgICAgICAgIFIgPSBYT1IoIFIsIFMgKS4gICovCisKKyAgLyoKKyAgIEFSR1VNRU5UIFJBTkdF IFJFRFVDVElPTjoKKyAgIEFkZCBQaS8yIHRvIGFyZ3VtZW50OiBYJyA9IFgrUGkvMi4gVHJhbnNm b3JtcyBjb3MgdG8gc2luLiAgKi8KKyAgdmVjdG9yIGZsb2F0IHhfcHJpbWUgPSBfX3NfaGFsZl9w aSArIHg7CisKKyAgLyogWSA9IFgnKkludlBpICsgUlMgOiByaWdodCBzaGlmdGVyIGFkZC4gICov CisgIHZlY3RvciBmbG9hdCB5ID0gKHhfcHJpbWUgKiBfX3NfaW52X3BpKSArIF9fc19yc2hpZnRl cjsKKworICAvKiBOID0gWSAtIFJTIDogcmlnaHQgc2hpZnRlciBzdWIuICAqLworICB2ZWN0b3Ig ZmxvYXQgbiA9IHkgLSBfX3NfcnNoaWZ0ZXI7CisKKyAgLyogU2lnblJlcyA9IFk8PDMxIDogc2hp ZnQgTFNCIHRvIE1TQiBwbGFjZSBmb3IgcmVzdWx0IHNpZ24uICAqLworICB2ZWN0b3IgZmxvYXQg c2lnbl9yZXMgPSAodmVjdG9yIGZsb2F0KQorICAgICAgdmVjX3NsICgodmVjdG9yIHNpZ25lZCBp bnQpIHksICh2ZWN0b3IgdW5zaWduZWQgaW50KSB2ZWNfc3BsYXRzICgzMSkpOworCisgIC8qIE4g PSBOIC0gMC41LiAgKi8KKyAgbiA9IG4gLSBfX3Nfb25lX2hhbGY7CisKKyAgLyogR2V0IGFic29s dXRlIGFyZ3VtZW50IHZhbHVlOiBYID0gfFh8LiAgKi8KKyAgdmVjdG9yIGZsb2F0IGFic194ID0g dmVjX2FicyAoeCk7CisKKyAgLyogQ2hlY2sgZm9yIGxhcmdlIGFyZ3VtZW50cyBwYXRoLiAgKi8K KyAgdmVjdG9yIGJvb2wgaW50IGxhcmdlX2luID0gdmVjX2NtcGd0IChhYnNfeCwgX19zX3Jhbmdl dmFsKTsKKworICAvKiBSID0gWCAtIE4qUGkxLiAqLworICB2ZWN0b3IgZmxvYXQgciA9IHggLSAo biAqIF9fc19waTFfZm1hKTsKKworICAvKiBSID0gUiAtIE4qUGkyLiAgKi8KKyAgciA9IHIgLSAo biAqIF9fc19waTJfZm1hKTsKKworICAvKiBSID0gUiAtIE4qUGkzLiAgKi8KKyAgciA9IHIgLSAo biAqIF9fc19waTNfZm1hKTsKKworICAvKiBSMiA9IFIqUi4gICovCisgIHZlY3RvciBmbG9hdCBy MiA9IHIgKiByOworCisgIC8qIFJFQ09OU1RSVUNUSU9OOgorICAgICBGaW5hbCBzaWduIHNldHRp bmc6IFJlcyA9IFBvbHleU2lnblJlcy4gICovCisgIHZlY3RvciBmbG9hdCByZXMgPSAodmVjdG9y IGZsb2F0KQorICAgICAgKCh2ZWN0b3Igc2lnbmVkIGludCkgciBeICh2ZWN0b3Igc2lnbmVkIGlu dCkgc2lnbl9yZXMpOworCisgIC8qIFBvbHkgPSBSICsgUiAqIFIyKihBMytSMiooQTUrUjIqKEE3 K1IyKkE5KSkpLiAqLworICB2ZWN0b3IgZmxvYXQgcG9seSA9IHIyICogX19zX2E5X2ZtYSArIF9f c19hN19mbWE7CisgIHBvbHkgPSBwb2x5ICogcjIgKyBfX3NfYTVfZm1hOworICBwb2x5ID0gcG9s eSAqIHIyICsgX19zX2EzOworICBwb2x5ID0gcG9seSAqIHIyICogcmVzICsgcmVzOworCisgIGlm IChsYXJnZV9pblswXSkKKyAgICBwb2x5WzBdID0gY29zZiAoeFswXSk7CisKKyAgaWYgKGxhcmdl X2luWzFdKQorICAgIHBvbHlbMV0gPSBjb3NmICh4WzFdKTsKKworICBpZiAobGFyZ2VfaW5bMl0p CisgICAgcG9seVsyXSA9IGNvc2YgKHhbMl0pOworCisgIGlmIChsYXJnZV9pblszXSkKKyAgICBw b2x5WzNdID0gY29zZiAoeFszXSk7CisKKyAgcmV0dXJuIHBvbHk7CisKK30gLyogRnVuY3Rpb24g X19zX2Nvc19wb2x5X2V2YWwuICAqLworCitzdGF0aWMgaW5saW5lIHZlY3RvciBmbG9hdAorX19z X3Npbl9wb2x5X2V2YWwgKHZlY3RvciBmbG9hdCB4KQoreworCisgIC8qCisgICAgQUxHT1JJVEhN IERFU0NSSVBUSU9OOgorCisgICAgMSkgUmFuZ2UgcmVkdWN0aW9uIHRvIFstUGkvMjsgK1BpLzJd IGludGVydmFsCisgICAgICAgYSkgR3JhYiBzaWduIGZyb20gc291cmNlIGFyZ3VtZW50IGFuZCBz YXZlIGl0LgorICAgICAgIGIpIFJlbW92ZSBzaWduIHVzaW5nIEFORCBvcGVyYXRpb24KKyAgICAg ICBjKSBHZXR0aW5nIG9jdGFudCBZIGJ5IDEvUGkgbXVsdGlwbGljYXRpb24KKyAgICAgICBkKSBB ZGQgIlJpZ2h0IFNoaWZ0ZXIiIHZhbHVlCisgICAgICAgZSkgVHJlYXQgb2J0YWluZWQgdmFsdWUg YXMgaW50ZWdlciBmb3IgZGVzdGluYXRpb24gc2lnbiBzZXR0aW5nLgorICAgICAgICAgIFNoaWZ0 IGZpcnN0IGJpdCBvZiB0aGlzIHZhbHVlIHRvIHRoZSBsYXN0IChzaWduKSBwb3NpdGlvbgorICAg ICAgIGYpIENoYW5nZSBkZXN0aW5hdGlvbiBzaWduIGlmIHNvdXJjZSBzaWduIGlzIG5lZ2F0aXZl CisgICAgICAgICAgdXNpbmcgWE9SIG9wZXJhdGlvbi4KKyAgICAgICBnKSBTdWJ0cmFjdCAiUmln aHQgU2hpZnRlciIgdmFsdWUKKyAgICAgICBoKSBTdWJ0cmFjdCBZKlBJIGZyb20gWCBhcmd1bWVu dCwgd2hlcmUgUEkgZGl2aWRlZCB0byA0IHBhcnRzOgorICAgICAgICAgIFggPSBYIC0gWSpQSTEg LSBZKlBJMiAtIFkqUEkzIC0gWSpQSTQ7CisgICAgMikgUG9seW5vbWlhbCAobWluaW1heCBmb3Ig c2luIHdpdGhpbiBbLVBpLzI7ICtQaS8yXSBpbnRlcnZhbCkKKyAgICAgICBhKSBDYWxjdWxhdGUg WF4yID0gWCAqIFgKKyAgICAgICBiKSBDYWxjdWxhdGUgcG9seW5vbWlhbDoKKyAgICAgICAgICBS ID0gWCArIFggKiBYXjIgKiAoQTMgKyB4XjIgKiAoQTUgKyAuLi4uLi4KKyAgICAzKSBEZXN0aW5h dGlvbiBzaWduIHNldHRpbmcKKyAgICAgICBhKSBTZXQgc2hpZnRlZCBkZXN0aW5hdGlvbiBzaWdu IHVzaW5nIFhPUiBvcGVyYXRpb246CisgICAgICAgICAgUiA9IFhPUiggUiwgUyApLiAgKi8KKwor CisgIC8qIFJlbW92ZSBzaWduIG9mIGlucHV0IGFyZ3VtZW50OiBYJz18WHwuICAqLworICB2ZWN0 b3IgZmxvYXQgYWJzX3ggPSB2ZWNfYWJzICh4KTsKKworICAvKiBHZXR0aW5nIG9jdGFudCBZIGJ5 IDEvUGkgbXVsdGlwbGljYXRpb24uIEFkZCAiUmlnaHQgU2hpZnRlciIgdmFsdWUuCisgICAgIFkg PSBYJypJbnZQaSArIFJTLiAgKi8KKyAgdmVjdG9yIGZsb2F0IHkgPSAoYWJzX3ggKiBfX3NfaW52 X3BpKSArIF9fc19yc2hpZnRlcjsKKworICAvKiBOID0gWSAtIFJTIDogcmlnaHQgc2hpZnRlciBz dWIuICAqLworICB2ZWN0b3IgZmxvYXQgbiA9IHkgLSBfX3NfcnNoaWZ0ZXI7CisKKyAgLyogU2ln blJlcyA9IFk8PDMxIDogc2hpZnQgTFNCIHRvIE1TQiBwbGFjZSBmb3IgcmVzdWx0IHNpZ24uICAq LworICB2ZWN0b3IgZmxvYXQgc2lnbl9yZXMgPSAodmVjdG9yIGZsb2F0KQorICAgICAgdmVjX3Ns ICgodmVjdG9yIHNpZ25lZCBpbnQpIHksICh2ZWN0b3IgdW5zaWduZWQgaW50KSB2ZWNfc3BsYXRz ICgzMSkpOworCisgIC8qIFN1YnRyYWN0IE4qUEkgZnJvbSBYIGFyZ3VtZW50LCB3aGVyZSBQSSBk aXZpZGVkIGludG8gMyBwYXJ0cy4gICovCisgIC8qIFIgPSBYIC0gTipQSTEgLSBOKlBJMiAtIE4q UEkzLiAgKi8KKyAgdmVjdG9yIGZsb2F0IHIgPSBhYnNfeCAtIChuICogX19zX3BpMV9mbWEpOwor CisgIC8qIFIgPSBSIC0gTipQaTIuICAqLworICByID0gciAtIChuICogX19zX3BpMl9mbWEpOwor CisgIC8qIFIgPSBSIC0gTipQaTMuICAqLworICByID0gciAtIChuICogX19zX3BpM19mbWEpOwor CisgIC8qIENoZWNrIGZvciBsYXJnZSBhcmd1bWVudHMgcGF0aC4gICovCisgIHZlY3RvciBib29s IGludCBsYXJnZV9pbiA9IHZlY19jbXBndCAoYWJzX3gsIF9fc19yYW5nZXZhbCk7CisKKyAgLyog UG9seW5vbWlhbCAobWluaW1heCBmb3Igc2luIHdpdGhpbiBbLVBpLzI7ICtQaS8yXSBpbnRlcnZh bCkuICAqLworCisgIC8qIFIyID0gUipSLiAgKi8KKyAgdmVjdG9yIGZsb2F0IHIyID0gciAqIHI7 CisKKyAgLyogQ2hhbmdlIGRlc3RpbmF0aW9uIHNpZ24gaWYgc291cmNlIHNpZ24gaXMgLXZlIHVz aW5nIFhPUiBvcGVyYXRpb24uICAqLworICB2ZWN0b3IgZmxvYXQgbmVnX3NpZ24gPSB2ZWNfYW5k YyAoeCwgX19zX2Fic19tYXNrKTsKKworICB2ZWN0b3IgZmxvYXQgcmVzID0gKHZlY3RvciBmbG9h dCkKKyAgICAgICgodmVjdG9yIHNpZ25lZCBpbnQpIHIgXiAodmVjdG9yIHNpZ25lZCBpbnQpIHNp Z25fcmVzKTsKKworICAvKiBQb2x5ID0gUiArIFIgKiBSMiooQTMrUjIqKEE1K1IyKihBNytSMipB OSkpKS4gKi8KKyAgdmVjdG9yIGZsb2F0IHBvbHkgPSByMiAqIF9fc19hOV9mbWEgKyBfX3NfYTdf Zm1hOworICBwb2x5ID0gcG9seSAqIHIyICsgX19zX2E1X2ZtYTsKKyAgcG9seSA9IHBvbHkgKiBy MiArIF9fc19hMzsKKyAgcG9seSA9IHBvbHkgKiByMiAqIHJlcyArIHJlczsKKworLyogRGVzdGlu YXRpb24gc2lnbiBzZXR0aW5nLgorICAgU2V0IHNoaWZ0ZWQgZGVzdGluYXRpb24gc2lnbiB1c2lu ZyBYT1Igb3BlcmF0aW9uOiBSID0gWE9SKCBSLCBTICkuICAqLworICB2ZWN0b3IgZmxvYXQgb3V0 CisgICAgICA9ICh2ZWN0b3IgZmxvYXQpICgodmVjdG9yIGludCkgcG9seSBeICh2ZWN0b3IgaW50 KSBuZWdfc2lnbik7CisKKyAgaWYgKGxhcmdlX2luWzBdKQorICAgIG91dFswXSA9IHNpbmYgKHhb MF0pOworCisgIGlmIChsYXJnZV9pblsxXSkKKyAgICBvdXRbMV0gPSBzaW5mICh4WzFdKTsKKwor ICBpZiAobGFyZ2VfaW5bMl0pCisgICAgb3V0WzJdID0gc2luZiAoeFsyXSk7CisKKyAgaWYgKGxh cmdlX2luWzNdKQorICAgIG91dFszXSA9IHNpbmYgKHhbM10pOworCisgIHJldHVybiBvdXQ7CisK K30gLyogRnVuY3Rpb24gX19zX3Npbl9wb2x5X2V2YWwuICAqLwpkaWZmIC0tZ2l0IGEvc3lzZGVw cy91bml4L3N5c3YvbGludXgvcG93ZXJwYy9wb3dlcnBjNjQvbGlibXZlYy5hYmlsaXN0IGIvc3lz ZGVwcy91bml4L3N5c3YvbGludXgvcG93ZXJwYy9wb3dlcnBjNjQvbGlibXZlYy5hYmlsaXN0Cmlu ZGV4IDAzMzdkM2FkYjUuLjlkMjk4YTc4OGMgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMvdW5peC9zeXN2 L2xpbnV4L3Bvd2VycGMvcG93ZXJwYzY0L2xpYm12ZWMuYWJpbGlzdAorKysgYi9zeXNkZXBzL3Vu aXgvc3lzdi9saW51eC9wb3dlcnBjL3Bvd2VycGM2NC9saWJtdmVjLmFiaWxpc3QKQEAgLTMsMyAr Myw0IEBAIEdMSUJDXzIuMzAgX1pHVmJOMnZfc2luIEYKIEdMSUJDXzIuMzAgX1pHVmJOMnZ2dl9z aW5jb3MgRgogR0xJQkNfMi4zMCBfWkdWYk40dl9jb3NmIEYKIEdMSUJDXzIuMzAgX1pHVmJONHZf c2luZiBGCitHTElCQ18yLjMwIF9aR1ZiTjR2dnZfc2luY29zZiBGCi0tIAoyLjIwLjEKCg== --b1_101a6227454cd366136443ec47d48c06--