From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 5622245301 for ; Sat, 18 Nov 2023 02:07:52 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2F46768CD8C; Sat, 18 Nov 2023 04:07:20 +0200 (EET) Received: from smtp-my3-01p7.yunyou.top (smtp-my3-01p7.yunyou.top [60.247.169.7]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2158168C96C for ; Sat, 18 Nov 2023 04:07:14 +0200 (EET) Received: from [192.168.15.105] (unknown [122.233.146.151]) by smtp-my-01.yunyou.top (WestCloudMail) with ESMTPA id 657B2141F2B; Sat, 18 Nov 2023 10:07:09 +0800 (CST) Content-Type: multipart/mixed; boundary="------------X4PuCZLoQ1g00lAm3Svtn2u5" Message-ID: <406b8110-558e-497c-823e-0598fa954c4e@myais.com.cn> Date: Sat, 18 Nov 2023 10:07:09 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: "Logan.Lyu" To: ffmpeg-devel@ffmpeg.org Organization: myais Subject: [FFmpeg-devel] [PATCH 6/6] lavc/aarch64: new optimization for 8-bit hevc_qpel_bi_hv X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: jdek@itanimul.li Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: This is a multi-part message in MIME format. --------------X4PuCZLoQ1g00lAm3Svtn2u5 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit put_hevc_qpel_bi_hv4_8_c: 433.7 put_hevc_qpel_bi_hv4_8_i8mm: 117.9 put_hevc_qpel_bi_hv6_8_c: 803.9 put_hevc_qpel_bi_hv6_8_i8mm: 252.7 put_hevc_qpel_bi_hv8_8_c: 1296.4 put_hevc_qpel_bi_hv8_8_i8mm: 316.2 put_hevc_qpel_bi_hv12_8_c: 2867.4 put_hevc_qpel_bi_hv12_8_i8mm: 669.2 put_hevc_qpel_bi_hv16_8_c: 4709.4 put_hevc_qpel_bi_hv16_8_i8mm: 929.9 put_hevc_qpel_bi_hv24_8_c: 9639.7 put_hevc_qpel_bi_hv24_8_i8mm: 2072.4 put_hevc_qpel_bi_hv32_8_c: 16663.7 put_hevc_qpel_bi_hv32_8_i8mm: 3391.4 put_hevc_qpel_bi_hv48_8_c: 36972.9 put_hevc_qpel_bi_hv48_8_i8mm: 7505.7 put_hevc_qpel_bi_hv64_8_c: 64106.4 put_hevc_qpel_bi_hv64_8_i8mm: 13145.2 Co-Authored-By: J. Dekker Signed-off-by: Logan Lyu --- libavcodec/aarch64/hevcdsp_init_aarch64.c | 5 + libavcodec/aarch64/hevcdsp_qpel_neon.S | 299 ++++++++++++++++++++++ 2 files changed, 304 insertions(+) diff --git a/libavcodec/aarch64/hevcdsp_init_aarch64.c b/libavcodec/aarch64/hevcdsp_init_aarch64.c index f2cce3d221..cfc2f39a6b 100644 --- a/libavcodec/aarch64/hevcdsp_init_aarch64.c +++ b/libavcodec/aarch64/hevcdsp_init_aarch64.c @@ -255,6 +255,10 @@ NEON8_FNPROTO(qpel_bi_v, (uint8_t *dst, ptrdiff_t dststride, const uint8_t *src, ptrdiff_t srcstride, const int16_t *src2, int height, intptr_t mx, intptr_t my, int width),); +NEON8_FNPROTO(qpel_bi_hv, (uint8_t *dst, ptrdiff_t dststride, + const uint8_t *src, ptrdiff_t srcstride, const int16_t *src2, + int height, intptr_t mx, intptr_t my, int width), _i8mm); + #define NEON8_FNASSIGN(member, v, h, fn, ext) \ member[1][v][h] = ff_hevc_put_hevc_##fn##4_8_neon##ext; \ member[2][v][h] = ff_hevc_put_hevc_##fn##6_8_neon##ext; \ @@ -370,6 +374,7 @@ av_cold void ff_hevc_dsp_init_aarch64(HEVCDSPContext *c, const int bit_depth) NEON8_FNASSIGN(c->put_hevc_qpel_uni_w, 0, 1, qpel_uni_w_h, _i8mm); NEON8_FNASSIGN(c->put_hevc_epel_uni_w, 1, 1, epel_uni_w_hv, _i8mm); NEON8_FNASSIGN_PARTIAL_5(c->put_hevc_qpel_uni_w, 1, 1, qpel_uni_w_hv, _i8mm); + NEON8_FNASSIGN(c->put_hevc_qpel_bi, 1, 1, qpel_bi_hv, _i8mm); } } diff --git a/libavcodec/aarch64/hevcdsp_qpel_neon.S b/libavcodec/aarch64/hevcdsp_qpel_neon.S index f9422942d8..56bc352648 100644 --- a/libavcodec/aarch64/hevcdsp_qpel_neon.S +++ b/libavcodec/aarch64/hevcdsp_qpel_neon.S @@ -4210,5 +4210,304 @@ function ff_hevc_put_hevc_qpel_uni_w_hv64_8_neon_i8mm, export=1 ret endfunc +function ff_hevc_put_hevc_qpel_bi_hv4_8_neon_i8mm, export=1 + add w10, w5, #7 + lsl x10, x10, #7 + sub sp, sp, x10 // tmp_array + stp x7, x30, [sp, #-48]! + stp x4, x5, [sp, #16] + stp x0, x1, [sp, #32] + sub x1, x2, x3, lsl #1 + sub x1, x1, x3 + add x0, sp, #48 + mov x2, x3 + add w3, w5, #7 + mov x4, x6 + bl X(ff_hevc_put_hevc_qpel_h4_8_neon_i8mm) + ldp x4, x5, [sp, #16] + ldp x0, x1, [sp, #32] + ldp x7, x30, [sp], #48 + mov x9, #(MAX_PB_SIZE * 2) + load_qpel_filterh x7, x6 + ld1 {v16.4h}, [sp], x9 + ld1 {v17.4h}, [sp], x9 + ld1 {v18.4h}, [sp], x9 + ld1 {v19.4h}, [sp], x9 + ld1 {v20.4h}, [sp], x9 + ld1 {v21.4h}, [sp], x9 + ld1 {v22.4h}, [sp], x9 +.macro calc tmp, src0, src1, src2, src3, src4, src5, src6, src7 + ld1 {\tmp\().4h}, [sp], x9 + calc_qpelh v1, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7, sshr + ld1 {v5.4h}, [x4], x9 // src2 + saddw v1.4s, v1.4s, v5.4h + rshrn v1.4h, v1.4s, #7 + sqxtun v1.8b, v1.8h + subs w5, w5, #1 + st1 {v1.s}[0], [x0], x1 +.endm +1: calc_all +.purgem calc +2: ret +endfunc + +function ff_hevc_put_hevc_qpel_bi_hv6_8_neon_i8mm, export=1 + add w10, w5, #7 + lsl x10, x10, #7 + sub sp, sp, x10 // tmp_array + stp x7, x30, [sp, #-48]! + stp x4, x5, [sp, #16] + stp x0, x1, [sp, #32] + sub x1, x2, x3, lsl #1 + sub x1, x1, x3 + add x0, sp, #48 + mov x2, x3 + add x3, x5, #7 + mov x4, x6 + bl X(ff_hevc_put_hevc_qpel_h6_8_neon_i8mm) + ldp x4, x5, [sp, #16] + ldp x0, x1, [sp, #32] + ldp x7, x30, [sp], #48 + mov x9, #(MAX_PB_SIZE * 2) + load_qpel_filterh x7, x6 + sub x1, x1, #4 + ld1 {v16.8h}, [sp], x9 + ld1 {v17.8h}, [sp], x9 + ld1 {v18.8h}, [sp], x9 + ld1 {v19.8h}, [sp], x9 + ld1 {v20.8h}, [sp], x9 + ld1 {v21.8h}, [sp], x9 + ld1 {v22.8h}, [sp], x9 +.macro calc tmp, src0, src1, src2, src3, src4, src5, src6, src7 + ld1 {\tmp\().8h}, [sp], x9 + calc_qpelh v1, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7, sshr + calc_qpelh2 v2, v2, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7, sshr + ld1 {v5.8h}, [x4], x9 // src2 + saddw v1.4s, v1.4s, v5.4h + saddw2 v2.4s, v2.4s, v5.8h + rshrn v1.4h, v1.4s, #7 + rshrn2 v1.8h, v2.4s, #7 + sqxtun v1.8b, v1.8h + st1 {v1.s}[0], [x0], #4 + subs w5, w5, #1 + st1 {v1.h}[2], [x0], x1 +.endm +1: calc_all +.purgem calc +2: ret +endfunc + +function ff_hevc_put_hevc_qpel_bi_hv8_8_neon_i8mm, export=1 + add w10, w5, #7 + lsl x10, x10, #7 + sub sp, sp, x10 // tmp_array + stp x7, x30, [sp, #-48]! + stp x4, x5, [sp, #16] + stp x0, x1, [sp, #32] + sub x1, x2, x3, lsl #1 + sub x1, x1, x3 + add x0, sp, #48 + mov x2, x3 + add x3, x5, #7 + mov x4, x6 + bl X(ff_hevc_put_hevc_qpel_h8_8_neon_i8mm) + ldp x4, x5, [sp, #16] + ldp x0, x1, [sp, #32] + ldp x7, x30, [sp], #48 + mov x9, #(MAX_PB_SIZE * 2) + load_qpel_filterh x7, x6 + ld1 {v16.8h}, [sp], x9 + ld1 {v17.8h}, [sp], x9 + ld1 {v18.8h}, [sp], x9 + ld1 {v19.8h}, [sp], x9 + ld1 {v20.8h}, [sp], x9 + ld1 {v21.8h}, [sp], x9 + ld1 {v22.8h}, [sp], x9 +.macro calc tmp, src0, src1, src2, src3, src4, src5, src6, src7 + ld1 {\tmp\().8h}, [sp], x9 + calc_qpelh v1, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7, sshr + calc_qpelh2 v2, v2, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7, sshr + ld1 {v5.8h}, [x4], x9 // src2 + saddw v1.4s, v1.4s, v5.4h + saddw2 v2.4s, v2.4s, v5.8h + rshrn v1.4h, v1.4s, #7 + rshrn2 v1.8h, v2.4s, #7 + sqxtun v1.8b, v1.8h + subs w5, w5, #1 + st1 {v1.8b}, [x0], x1 +.endm +1: calc_all +.purgem calc +2: ret +endfunc + +function ff_hevc_put_hevc_qpel_bi_hv12_8_neon_i8mm, export=1 + stp x6, x7, [sp, #-80]! + stp x4, x5, [sp, #16] + stp x2, x3, [sp, #32] + stp x0, x1, [sp, #48] + str x30, [sp, #64] + bl X(ff_hevc_put_hevc_qpel_bi_hv8_8_neon_i8mm) + ldp x4, x5, [sp, #16] + ldp x2, x3, [sp, #32] + ldp x0, x1, [sp, #48] + ldp x6, x7, [sp], #64 + add x4, x4, #16 + add x2, x2, #8 + add x0, x0, #8 + bl X(ff_hevc_put_hevc_qpel_bi_hv4_8_neon_i8mm) + ldr x30, [sp], #16 + ret +endfunc + +function ff_hevc_put_hevc_qpel_bi_hv16_8_neon_i8mm, export=1 + add w10, w5, #7 + lsl x10, x10, #7 + sub sp, sp, x10 // tmp_array + stp x7, x30, [sp, #-48]! + stp x4, x5, [sp, #16] + stp x0, x1, [sp, #32] + add x0, sp, #48 + sub x1, x2, x3, lsl #1 + sub x1, x1, x3 + mov x2, x3 + add w3, w5, #7 + mov x4, x6 + bl X(ff_hevc_put_hevc_qpel_h16_8_neon_i8mm) + ldp x4, x5, [sp, #16] + ldp x0, x1, [sp, #32] + ldp x7, x30, [sp], #48 + mov x6, #16 // width +.Lqpel_bi_hv16_loop: + load_qpel_filterh x7, x8 + mov x9, #(MAX_PB_SIZE * 2) + mov x10, x6 +0: mov x8, sp // src + ld1 {v16.8h, v17.8h}, [x8], x9 + mov w11, w5 // height + ld1 {v18.8h, v19.8h}, [x8], x9 + mov x12, x4 // src2 + ld1 {v20.8h, v21.8h}, [x8], x9 + mov x7, x0 // dst + ld1 {v22.8h, v23.8h}, [x8], x9 + ld1 {v24.8h, v25.8h}, [x8], x9 + ld1 {v26.8h, v27.8h}, [x8], x9 + ld1 {v28.8h, v29.8h}, [x8], x9 +.macro calc tmp0, tmp1, src0, src1, src2, src3, src4, src5, src6, src7, src8, src9, src10, src11, src12, src13, src14, src15 + ld1 {\tmp0\().8h, \tmp1\().8h}, [x8], x9 + calc_qpelh v1, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7, sshr + calc_qpelh2 v2, v2, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7, sshr + calc_qpelh v3, \src8, \src9, \src10, \src11, \src12, \src13, \src14, \src15, sshr + calc_qpelh2 v4, v4, \src8, \src9, \src10, \src11, \src12, \src13, \src14, \src15, sshr + ld1 {v5.8h, v6.8h}, [x12], x9 // src2 + saddw v1.4s, v1.4s, v5.4h + saddw2 v2.4s, v2.4s, v5.8h + saddw v3.4s, v3.4s, v6.4h + saddw2 v4.4s, v4.4s, v6.8h + rshrn v1.4h, v1.4s, #7 + rshrn2 v1.8h, v2.4s, #7 + rshrn v2.4h, v3.4s, #7 + rshrn2 v2.8h, v4.4s, #7 + sqxtun v1.8b, v1.8h + sqxtun2 v1.16b, v2.8h + subs x11, x11, #1 + st1 {v1.16b}, [x7], x1 +.endm +1: calc_all2 +.purgem calc +2: add x0, x0, #16 + add sp, sp, #32 + subs x10, x10, #16 + add x4, x4, #32 + b.ne 0b + add w10, w5, #7 + lsl x10, x10, #7 + sub x10, x10, x6, lsl #1 // part of first line + add sp, sp, x10 // tmp_array without first line + ret +endfunc + +function ff_hevc_put_hevc_qpel_bi_hv24_8_neon_i8mm, export=1 + stp x6, x7, [sp, #-80]! + stp x4, x5, [sp, #16] + stp x2, x3, [sp, #32] + stp x0, x1, [sp, #48] + str x30, [sp, #64] + bl X(ff_hevc_put_hevc_qpel_bi_hv16_8_neon_i8mm) + ldp x4, x5, [sp, #16] + ldp x2, x3, [sp, #32] + ldp x0, x1, [sp, #48] + ldp x6, x7, [sp], #64 + add x4, x4, #32 + add x2, x2, #16 + add x0, x0, #16 + bl X(ff_hevc_put_hevc_qpel_bi_hv8_8_neon_i8mm) + ldr x30, [sp], #16 + ret +endfunc + +function ff_hevc_put_hevc_qpel_bi_hv32_8_neon_i8mm, export=1 + add w10, w5, #7 + lsl x10, x10, #7 + sub sp, sp, x10 // tmp_array + stp x7, x30, [sp, #-48]! + stp x4, x5, [sp, #16] + stp x0, x1, [sp, #32] + add x0, sp, #48 + sub x1, x2, x3, lsl #1 + mov x2, x3 + sub x1, x1, x3 + add w3, w5, #7 + mov x4, x6 + bl X(ff_hevc_put_hevc_qpel_h32_8_neon_i8mm) + ldp x4, x5, [sp, #16] + ldp x0, x1, [sp, #32] + ldp x7, x30, [sp], #48 + mov x6, #32 // width + b .Lqpel_bi_hv16_loop +endfunc + +function ff_hevc_put_hevc_qpel_bi_hv48_8_neon_i8mm, export=1 + add w10, w5, #7 + lsl x10, x10, #7 + sub sp, sp, x10 // tmp_array + stp x7, x30, [sp, #-48]! + stp x4, x5, [sp, #16] + stp x0, x1, [sp, #32] + add x0, sp, #48 + sub x1, x2, x3, lsl #1 + mov x2, x3 + sub x1, x1, x3 + add w3, w5, #7 + mov x4, x6 + bl X(ff_hevc_put_hevc_qpel_h48_8_neon_i8mm) + ldp x4, x5, [sp, #16] + ldp x0, x1, [sp, #32] + ldp x7, x30, [sp], #48 + mov x6, #48 // width + b .Lqpel_bi_hv16_loop +endfunc + +function ff_hevc_put_hevc_qpel_bi_hv64_8_neon_i8mm, export=1 + add w10, w5, #7 + lsl x10, x10, #7 + sub sp, sp, x10 // tmp_array + stp x7, x30, [sp, #-48]! + stp x4, x5, [sp, #16] + stp x0, x1, [sp, #32] + add x0, sp, #48 + sub x1, x2, x3, lsl #1 + mov x2, x3 + sub x1, x1, x3 + add w3, w5, #7 + mov x4, x6 + bl X(ff_hevc_put_hevc_qpel_h64_8_neon_i8mm) + ldp x4, x5, [sp, #16] + ldp x0, x1, [sp, #32] + ldp x7, x30, [sp], #48 + mov x6, #64 // width + b .Lqpel_bi_hv16_loop +endfunc + DISABLE_I8MM #endif // HAVE_I8MM -- 2.38.0.windows.1 --------------X4PuCZLoQ1g00lAm3Svtn2u5 Content-Type: text/plain; charset=UTF-8; name="0006-lavc-aarch64-new-optimization-for-8-bit-hevc_qpel_bi_hv.patch" Content-Disposition: attachment; filename*0="0006-lavc-aarch64-new-optimization-for-8-bit-hevc_qpel_bi_hv"; filename*1=".patch" Content-Transfer-Encoding: base64 RnJvbSA4MzcxMDNiZTY0NTQ5YjdiNmM5MTkxNzRmODgwZjU4YzA5OWRmOGI2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBMb2dhbiBMeXUgPExvZ2FuLkx5dUBteWFpcy5jb20u Y24+CkRhdGU6IFN1biwgMTIgTm92IDIwMjMgMDk6MDM6MjggKzA4MDAKU3ViamVjdDogW1BB VENIIDYvNl0gbGF2Yy9hYXJjaDY0OiBuZXcgb3B0aW1pemF0aW9uIGZvciA4LWJpdCBoZXZj X3FwZWxfYmlfaHYKCnB1dF9oZXZjX3FwZWxfYmlfaHY0XzhfYzogNDMzLjcKcHV0X2hldmNf cXBlbF9iaV9odjRfOF9pOG1tOiAxMTcuOQpwdXRfaGV2Y19xcGVsX2JpX2h2Nl84X2M6IDgw My45CnB1dF9oZXZjX3FwZWxfYmlfaHY2XzhfaThtbTogMjUyLjcKcHV0X2hldmNfcXBlbF9i aV9odjhfOF9jOiAxMjk2LjQKcHV0X2hldmNfcXBlbF9iaV9odjhfOF9pOG1tOiAzMTYuMgpw dXRfaGV2Y19xcGVsX2JpX2h2MTJfOF9jOiAyODY3LjQKcHV0X2hldmNfcXBlbF9iaV9odjEy XzhfaThtbTogNjY5LjIKcHV0X2hldmNfcXBlbF9iaV9odjE2XzhfYzogNDcwOS40CnB1dF9o ZXZjX3FwZWxfYmlfaHYxNl84X2k4bW06IDkyOS45CnB1dF9oZXZjX3FwZWxfYmlfaHYyNF84 X2M6IDk2MzkuNwpwdXRfaGV2Y19xcGVsX2JpX2h2MjRfOF9pOG1tOiAyMDcyLjQKcHV0X2hl dmNfcXBlbF9iaV9odjMyXzhfYzogMTY2NjMuNwpwdXRfaGV2Y19xcGVsX2JpX2h2MzJfOF9p OG1tOiAzMzkxLjQKcHV0X2hldmNfcXBlbF9iaV9odjQ4XzhfYzogMzY5NzIuOQpwdXRfaGV2 Y19xcGVsX2JpX2h2NDhfOF9pOG1tOiA3NTA1LjcKcHV0X2hldmNfcXBlbF9iaV9odjY0Xzhf YzogNjQxMDYuNApwdXRfaGV2Y19xcGVsX2JpX2h2NjRfOF9pOG1tOiAxMzE0NS4yCgpDby1B dXRob3JlZC1CeTogSi4gRGVra2VyIDxqZGVrQGl0YW5pbXVsLmxpPgotLS0KIGxpYmF2Y29k ZWMvYWFyY2g2NC9oZXZjZHNwX2luaXRfYWFyY2g2NC5jIHwgICA1ICsKIGxpYmF2Y29kZWMv YWFyY2g2NC9oZXZjZHNwX3FwZWxfbmVvbi5TICAgIHwgMjk5ICsrKysrKysrKysrKysrKysr KysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMzA0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQg YS9saWJhdmNvZGVjL2FhcmNoNjQvaGV2Y2RzcF9pbml0X2FhcmNoNjQuYyBiL2xpYmF2Y29k ZWMvYWFyY2g2NC9oZXZjZHNwX2luaXRfYWFyY2g2NC5jCmluZGV4IGYyY2NlM2QyMjEuLmNm YzJmMzlhNmIgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvYWFyY2g2NC9oZXZjZHNwX2luaXRf YWFyY2g2NC5jCisrKyBiL2xpYmF2Y29kZWMvYWFyY2g2NC9oZXZjZHNwX2luaXRfYWFyY2g2 NC5jCkBAIC0yNTUsNiArMjU1LDEwIEBAIE5FT044X0ZOUFJPVE8ocXBlbF9iaV92LCAodWlu dDhfdCAqZHN0LCBwdHJkaWZmX3QgZHN0c3RyaWRlLAogICAgICAgICBjb25zdCB1aW50OF90 ICpzcmMsIHB0cmRpZmZfdCBzcmNzdHJpZGUsIGNvbnN0IGludDE2X3QgKnNyYzIsCiAgICAg ICAgIGludCBoZWlnaHQsIGludHB0cl90IG14LCBpbnRwdHJfdCBteSwgaW50IHdpZHRoKSwp OwogCitORU9OOF9GTlBST1RPKHFwZWxfYmlfaHYsICh1aW50OF90ICpkc3QsIHB0cmRpZmZf dCBkc3RzdHJpZGUsCisgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnNyYywgcHRyZGlmZl90IHNy Y3N0cmlkZSwgY29uc3QgaW50MTZfdCAqc3JjMiwKKyAgICAgICAgaW50IGhlaWdodCwgaW50 cHRyX3QgbXgsIGludHB0cl90IG15LCBpbnQgd2lkdGgpLCBfaThtbSk7CisKICNkZWZpbmUg TkVPTjhfRk5BU1NJR04obWVtYmVyLCB2LCBoLCBmbiwgZXh0KSBcCiAgICAgICAgIG1lbWJl clsxXVt2XVtoXSA9IGZmX2hldmNfcHV0X2hldmNfIyNmbiMjNF84X25lb24jI2V4dDsgIFwK ICAgICAgICAgbWVtYmVyWzJdW3ZdW2hdID0gZmZfaGV2Y19wdXRfaGV2Y18jI2ZuIyM2Xzhf bmVvbiMjZXh0OyAgXApAQCAtMzcwLDYgKzM3NCw3IEBAIGF2X2NvbGQgdm9pZCBmZl9oZXZj X2RzcF9pbml0X2FhcmNoNjQoSEVWQ0RTUENvbnRleHQgKmMsIGNvbnN0IGludCBiaXRfZGVw dGgpCiAgICAgICAgICAgICBORU9OOF9GTkFTU0lHTihjLT5wdXRfaGV2Y19xcGVsX3VuaV93 LCAwLCAxLCBxcGVsX3VuaV93X2gsIF9pOG1tKTsKICAgICAgICAgICAgIE5FT044X0ZOQVNT SUdOKGMtPnB1dF9oZXZjX2VwZWxfdW5pX3csIDEsIDEsIGVwZWxfdW5pX3dfaHYsIF9pOG1t KTsKICAgICAgICAgICAgIE5FT044X0ZOQVNTSUdOX1BBUlRJQUxfNShjLT5wdXRfaGV2Y19x cGVsX3VuaV93LCAxLCAxLCBxcGVsX3VuaV93X2h2LCBfaThtbSk7CisgICAgICAgICAgICBO RU9OOF9GTkFTU0lHTihjLT5wdXRfaGV2Y19xcGVsX2JpLCAxLCAxLCBxcGVsX2JpX2h2LCBf aThtbSk7CiAgICAgICAgIH0KIAogICAgIH0KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYWFy Y2g2NC9oZXZjZHNwX3FwZWxfbmVvbi5TIGIvbGliYXZjb2RlYy9hYXJjaDY0L2hldmNkc3Bf cXBlbF9uZW9uLlMKaW5kZXggZjk0MjI5NDJkOC4uNTZiYzM1MjY0OCAxMDA2NDQKLS0tIGEv bGliYXZjb2RlYy9hYXJjaDY0L2hldmNkc3BfcXBlbF9uZW9uLlMKKysrIGIvbGliYXZjb2Rl Yy9hYXJjaDY0L2hldmNkc3BfcXBlbF9uZW9uLlMKQEAgLTQyMTAsNSArNDIxMCwzMDQgQEAg ZnVuY3Rpb24gZmZfaGV2Y19wdXRfaGV2Y19xcGVsX3VuaV93X2h2NjRfOF9uZW9uX2k4bW0s IGV4cG9ydD0xCiAgICAgICAgIHJldAogZW5kZnVuYwogCitmdW5jdGlvbiBmZl9oZXZjX3B1 dF9oZXZjX3FwZWxfYmlfaHY0XzhfbmVvbl9pOG1tLCBleHBvcnQ9MQorICAgICAgICBhZGQg ICAgICAgICAgICAgdzEwLCB3NSwgIzcKKyAgICAgICAgbHNsICAgICAgICAgICAgIHgxMCwg eDEwLCAjNworICAgICAgICBzdWIgICAgICAgICAgICAgc3AsIHNwLCB4MTAgLy8gdG1wX2Fy cmF5CisgICAgICAgIHN0cCAgICAgICAgICAgICB4NywgeDMwLCBbc3AsICMtNDhdIQorICAg ICAgICBzdHAgICAgICAgICAgICAgeDQsIHg1LCBbc3AsICMxNl0KKyAgICAgICAgc3RwICAg ICAgICAgICAgIHgwLCB4MSwgW3NwLCAjMzJdCisgICAgICAgIHN1YiAgICAgICAgICAgICB4 MSwgeDIsIHgzLCBsc2wgIzEKKyAgICAgICAgc3ViICAgICAgICAgICAgIHgxLCB4MSwgeDMK KyAgICAgICAgYWRkICAgICAgICAgICAgIHgwLCBzcCwgIzQ4CisgICAgICAgIG1vdiAgICAg ICAgICAgICB4MiwgeDMKKyAgICAgICAgYWRkICAgICAgICAgICAgIHczLCB3NSwgIzcKKyAg ICAgICAgbW92ICAgICAgICAgICAgIHg0LCB4NgorICAgICAgICBibCAgICAgICAgICAgICAg WChmZl9oZXZjX3B1dF9oZXZjX3FwZWxfaDRfOF9uZW9uX2k4bW0pCisgICAgICAgIGxkcCAg ICAgICAgICAgICB4NCwgeDUsIFtzcCwgIzE2XQorICAgICAgICBsZHAgICAgICAgICAgICAg eDAsIHgxLCBbc3AsICMzMl0KKyAgICAgICAgbGRwICAgICAgICAgICAgIHg3LCB4MzAsIFtz cF0sICM0OAorICAgICAgICBtb3YgICAgICAgICAgICAgeDksICMoTUFYX1BCX1NJWkUgKiAy KQorICAgICAgICBsb2FkX3FwZWxfZmlsdGVyaCB4NywgeDYKKyAgICAgICAgbGQxICAgICAg ICAgICAgIHt2MTYuNGh9LCBbc3BdLCB4OQorICAgICAgICBsZDEgICAgICAgICAgICAge3Yx Ny40aH0sIFtzcF0sIHg5CisgICAgICAgIGxkMSAgICAgICAgICAgICB7djE4LjRofSwgW3Nw XSwgeDkKKyAgICAgICAgbGQxICAgICAgICAgICAgIHt2MTkuNGh9LCBbc3BdLCB4OQorICAg ICAgICBsZDEgICAgICAgICAgICAge3YyMC40aH0sIFtzcF0sIHg5CisgICAgICAgIGxkMSAg ICAgICAgICAgICB7djIxLjRofSwgW3NwXSwgeDkKKyAgICAgICAgbGQxICAgICAgICAgICAg IHt2MjIuNGh9LCBbc3BdLCB4OQorLm1hY3JvIGNhbGMgdG1wLCBzcmMwLCBzcmMxLCBzcmMy LCBzcmMzLCBzcmM0LCBzcmM1LCBzcmM2LCBzcmM3CisgICAgICAgIGxkMSAgICAgICAgICAg ICB7XHRtcFwoKS40aH0sIFtzcF0sIHg5CisgICAgICAgIGNhbGNfcXBlbGggICAgICB2MSwg XHNyYzAsIFxzcmMxLCBcc3JjMiwgXHNyYzMsIFxzcmM0LCBcc3JjNSwgXHNyYzYsIFxzcmM3 LCBzc2hyCisgICAgICAgIGxkMSAgICAgICAgICAgICB7djUuNGh9LCBbeDRdLCB4OSAvLyBz cmMyCisgICAgICAgIHNhZGR3ICAgICAgICAgICB2MS40cywgdjEuNHMsIHY1LjRoCisgICAg ICAgIHJzaHJuICAgICAgICAgICB2MS40aCwgdjEuNHMsICM3CisgICAgICAgIHNxeHR1biAg ICAgICAgICB2MS44YiwgdjEuOGgKKyAgICAgICAgc3VicyAgICAgICAgICAgIHc1LCB3NSwg IzEKKyAgICAgICAgc3QxICAgICAgICAgICAgIHt2MS5zfVswXSwgW3gwXSwgeDEKKy5lbmRt CisxOiAgICAgIGNhbGNfYWxsCisucHVyZ2VtIGNhbGMKKzI6ICAgICAgcmV0CitlbmRmdW5j CisKK2Z1bmN0aW9uIGZmX2hldmNfcHV0X2hldmNfcXBlbF9iaV9odjZfOF9uZW9uX2k4bW0s IGV4cG9ydD0xCisgICAgICAgIGFkZCAgICAgICAgICAgICB3MTAsIHc1LCAjNworICAgICAg ICBsc2wgICAgICAgICAgICAgeDEwLCB4MTAsICM3CisgICAgICAgIHN1YiAgICAgICAgICAg ICBzcCwgc3AsIHgxMCAgICAgICAgIC8vIHRtcF9hcnJheQorICAgICAgICBzdHAgICAgICAg ICAgICAgeDcsIHgzMCwgW3NwLCAjLTQ4XSEKKyAgICAgICAgc3RwICAgICAgICAgICAgIHg0 LCB4NSwgW3NwLCAjMTZdCisgICAgICAgIHN0cCAgICAgICAgICAgICB4MCwgeDEsIFtzcCwg IzMyXQorICAgICAgICBzdWIgICAgICAgICAgICAgeDEsIHgyLCB4MywgbHNsICMxCisgICAg ICAgIHN1YiAgICAgICAgICAgICB4MSwgeDEsIHgzCisgICAgICAgIGFkZCAgICAgICAgICAg ICB4MCwgc3AsICM0OAorICAgICAgICBtb3YgICAgICAgICAgICAgeDIsIHgzCisgICAgICAg IGFkZCAgICAgICAgICAgICB4MywgeDUsICM3CisgICAgICAgIG1vdiAgICAgICAgICAgICB4 NCwgeDYKKyAgICAgICAgYmwgICAgICAgICAgICAgIFgoZmZfaGV2Y19wdXRfaGV2Y19xcGVs X2g2XzhfbmVvbl9pOG1tKQorICAgICAgICBsZHAgICAgICAgICAgICAgeDQsIHg1LCBbc3As ICMxNl0KKyAgICAgICAgbGRwICAgICAgICAgICAgIHgwLCB4MSwgW3NwLCAjMzJdCisgICAg ICAgIGxkcCAgICAgICAgICAgICB4NywgeDMwLCBbc3BdLCAjNDgKKyAgICAgICAgbW92ICAg ICAgICAgICAgIHg5LCAjKE1BWF9QQl9TSVpFICogMikKKyAgICAgICAgbG9hZF9xcGVsX2Zp bHRlcmggeDcsIHg2CisgICAgICAgIHN1YiAgICAgICAgICAgICB4MSwgeDEsICM0CisgICAg ICAgIGxkMSAgICAgICAgICAgICB7djE2LjhofSwgW3NwXSwgeDkKKyAgICAgICAgbGQxICAg ICAgICAgICAgIHt2MTcuOGh9LCBbc3BdLCB4OQorICAgICAgICBsZDEgICAgICAgICAgICAg e3YxOC44aH0sIFtzcF0sIHg5CisgICAgICAgIGxkMSAgICAgICAgICAgICB7djE5LjhofSwg W3NwXSwgeDkKKyAgICAgICAgbGQxICAgICAgICAgICAgIHt2MjAuOGh9LCBbc3BdLCB4OQor ICAgICAgICBsZDEgICAgICAgICAgICAge3YyMS44aH0sIFtzcF0sIHg5CisgICAgICAgIGxk MSAgICAgICAgICAgICB7djIyLjhofSwgW3NwXSwgeDkKKy5tYWNybyBjYWxjIHRtcCwgc3Jj MCwgc3JjMSwgc3JjMiwgc3JjMywgc3JjNCwgc3JjNSwgc3JjNiwgc3JjNworICAgICAgICBs ZDEgICAgICAgICAgICAge1x0bXBcKCkuOGh9LCBbc3BdLCB4OQorICAgICAgICBjYWxjX3Fw ZWxoICAgICAgdjEsIFxzcmMwLCBcc3JjMSwgXHNyYzIsIFxzcmMzLCBcc3JjNCwgXHNyYzUs IFxzcmM2LCBcc3JjNywgc3NocgorICAgICAgICBjYWxjX3FwZWxoMiAgICAgdjIsIHYyLCBc c3JjMCwgXHNyYzEsIFxzcmMyLCBcc3JjMywgXHNyYzQsIFxzcmM1LCBcc3JjNiwgXHNyYzcs IHNzaHIKKyAgICAgICAgbGQxICAgICAgICAgICAgIHt2NS44aH0sIFt4NF0sIHg5IC8vIHNy YzIKKyAgICAgICAgc2FkZHcgICAgICAgICAgIHYxLjRzLCB2MS40cywgdjUuNGgKKyAgICAg ICAgc2FkZHcyICAgICAgICAgIHYyLjRzLCB2Mi40cywgdjUuOGgKKyAgICAgICAgcnNocm4g ICAgICAgICAgIHYxLjRoLCB2MS40cywgIzcKKyAgICAgICAgcnNocm4yICAgICAgICAgIHYx LjhoLCB2Mi40cywgIzcKKyAgICAgICAgc3F4dHVuICAgICAgICAgIHYxLjhiLCB2MS44aAor ICAgICAgICBzdDEgICAgICAgICAgICAge3YxLnN9WzBdLCBbeDBdLCAjNAorICAgICAgICBz dWJzICAgICAgICAgICAgdzUsIHc1LCAjMQorICAgICAgICBzdDEgICAgICAgICAgICAge3Yx Lmh9WzJdLCBbeDBdLCB4MQorLmVuZG0KKzE6ICAgICAgY2FsY19hbGwKKy5wdXJnZW0gY2Fs YworMjogICAgICByZXQKK2VuZGZ1bmMKKworZnVuY3Rpb24gZmZfaGV2Y19wdXRfaGV2Y19x cGVsX2JpX2h2OF84X25lb25faThtbSwgZXhwb3J0PTEKKyAgICAgICAgYWRkICAgICAgICAg ICAgIHcxMCwgdzUsICM3CisgICAgICAgIGxzbCAgICAgICAgICAgICB4MTAsIHgxMCwgIzcK KyAgICAgICAgc3ViICAgICAgICAgICAgIHNwLCBzcCwgeDEwICAgICAgICAgLy8gdG1wX2Fy cmF5CisgICAgICAgIHN0cCAgICAgICAgICAgICB4NywgeDMwLCBbc3AsICMtNDhdIQorICAg ICAgICBzdHAgICAgICAgICAgICAgeDQsIHg1LCBbc3AsICMxNl0KKyAgICAgICAgc3RwICAg ICAgICAgICAgIHgwLCB4MSwgW3NwLCAjMzJdCisgICAgICAgIHN1YiAgICAgICAgICAgICB4 MSwgeDIsIHgzLCBsc2wgIzEKKyAgICAgICAgc3ViICAgICAgICAgICAgIHgxLCB4MSwgeDMK KyAgICAgICAgYWRkICAgICAgICAgICAgIHgwLCBzcCwgIzQ4CisgICAgICAgIG1vdiAgICAg ICAgICAgICB4MiwgeDMKKyAgICAgICAgYWRkICAgICAgICAgICAgIHgzLCB4NSwgIzcKKyAg ICAgICAgbW92ICAgICAgICAgICAgIHg0LCB4NgorICAgICAgICBibCAgICAgICAgICAgICAg WChmZl9oZXZjX3B1dF9oZXZjX3FwZWxfaDhfOF9uZW9uX2k4bW0pCisgICAgICAgIGxkcCAg ICAgICAgICAgICB4NCwgeDUsIFtzcCwgIzE2XQorICAgICAgICBsZHAgICAgICAgICAgICAg eDAsIHgxLCBbc3AsICMzMl0KKyAgICAgICAgbGRwICAgICAgICAgICAgIHg3LCB4MzAsIFtz cF0sICM0OAorICAgICAgICBtb3YgICAgICAgICAgICAgeDksICMoTUFYX1BCX1NJWkUgKiAy KQorICAgICAgICBsb2FkX3FwZWxfZmlsdGVyaCB4NywgeDYKKyAgICAgICAgbGQxICAgICAg ICAgICAgIHt2MTYuOGh9LCBbc3BdLCB4OQorICAgICAgICBsZDEgICAgICAgICAgICAge3Yx Ny44aH0sIFtzcF0sIHg5CisgICAgICAgIGxkMSAgICAgICAgICAgICB7djE4LjhofSwgW3Nw XSwgeDkKKyAgICAgICAgbGQxICAgICAgICAgICAgIHt2MTkuOGh9LCBbc3BdLCB4OQorICAg ICAgICBsZDEgICAgICAgICAgICAge3YyMC44aH0sIFtzcF0sIHg5CisgICAgICAgIGxkMSAg ICAgICAgICAgICB7djIxLjhofSwgW3NwXSwgeDkKKyAgICAgICAgbGQxICAgICAgICAgICAg IHt2MjIuOGh9LCBbc3BdLCB4OQorLm1hY3JvIGNhbGMgdG1wLCBzcmMwLCBzcmMxLCBzcmMy LCBzcmMzLCBzcmM0LCBzcmM1LCBzcmM2LCBzcmM3CisgICAgICAgIGxkMSAgICAgICAgICAg ICB7XHRtcFwoKS44aH0sIFtzcF0sIHg5CisgICAgICAgIGNhbGNfcXBlbGggICAgICB2MSwg XHNyYzAsIFxzcmMxLCBcc3JjMiwgXHNyYzMsIFxzcmM0LCBcc3JjNSwgXHNyYzYsIFxzcmM3 LCBzc2hyCisgICAgICAgIGNhbGNfcXBlbGgyICAgICB2MiwgdjIsIFxzcmMwLCBcc3JjMSwg XHNyYzIsIFxzcmMzLCBcc3JjNCwgXHNyYzUsIFxzcmM2LCBcc3JjNywgc3NocgorICAgICAg ICBsZDEgICAgICAgICAgICAge3Y1LjhofSwgW3g0XSwgeDkgLy8gc3JjMgorICAgICAgICBz YWRkdyAgICAgICAgICAgdjEuNHMsIHYxLjRzLCB2NS40aAorICAgICAgICBzYWRkdzIgICAg ICAgICAgdjIuNHMsIHYyLjRzLCB2NS44aAorICAgICAgICByc2hybiAgICAgICAgICAgdjEu NGgsIHYxLjRzLCAjNworICAgICAgICByc2hybjIgICAgICAgICAgdjEuOGgsIHYyLjRzLCAj NworICAgICAgICBzcXh0dW4gICAgICAgICAgdjEuOGIsIHYxLjhoCisgICAgICAgIHN1YnMg ICAgICAgICAgICB3NSwgdzUsICMxCisgICAgICAgIHN0MSAgICAgICAgICAgICB7djEuOGJ9 LCBbeDBdLCB4MQorLmVuZG0KKzE6ICAgICAgY2FsY19hbGwKKy5wdXJnZW0gY2FsYworMjog ICAgICByZXQKK2VuZGZ1bmMKKworZnVuY3Rpb24gZmZfaGV2Y19wdXRfaGV2Y19xcGVsX2Jp X2h2MTJfOF9uZW9uX2k4bW0sIGV4cG9ydD0xCisgICAgICAgIHN0cCAgICAgICAgICAgICB4 NiwgeDcsIFtzcCwgIy04MF0hCisgICAgICAgIHN0cCAgICAgICAgICAgICB4NCwgeDUsIFtz cCwgIzE2XQorICAgICAgICBzdHAgICAgICAgICAgICAgeDIsIHgzLCBbc3AsICMzMl0KKyAg ICAgICAgc3RwICAgICAgICAgICAgIHgwLCB4MSwgW3NwLCAjNDhdCisgICAgICAgIHN0ciAg ICAgICAgICAgICB4MzAsIFtzcCwgIzY0XQorICAgICAgICBibCAgICAgICAgICAgICAgWChm Zl9oZXZjX3B1dF9oZXZjX3FwZWxfYmlfaHY4XzhfbmVvbl9pOG1tKQorICAgICAgICBsZHAg ICAgICAgICAgICAgeDQsIHg1LCBbc3AsICMxNl0KKyAgICAgICAgbGRwICAgICAgICAgICAg IHgyLCB4MywgW3NwLCAjMzJdCisgICAgICAgIGxkcCAgICAgICAgICAgICB4MCwgeDEsIFtz cCwgIzQ4XQorICAgICAgICBsZHAgICAgICAgICAgICAgeDYsIHg3LCBbc3BdLCAjNjQKKyAg ICAgICAgYWRkICAgICAgICAgICAgIHg0LCB4NCwgIzE2CisgICAgICAgIGFkZCAgICAgICAg ICAgICB4MiwgeDIsICM4CisgICAgICAgIGFkZCAgICAgICAgICAgICB4MCwgeDAsICM4Cisg ICAgICAgIGJsICAgICAgICAgICAgICBYKGZmX2hldmNfcHV0X2hldmNfcXBlbF9iaV9odjRf OF9uZW9uX2k4bW0pCisgICAgICAgIGxkciAgICAgICAgICAgICB4MzAsIFtzcF0sICMxNgor ICAgICAgICByZXQKK2VuZGZ1bmMKKworZnVuY3Rpb24gZmZfaGV2Y19wdXRfaGV2Y19xcGVs X2JpX2h2MTZfOF9uZW9uX2k4bW0sIGV4cG9ydD0xCisgICAgICAgIGFkZCAgICAgICAgICAg ICB3MTAsIHc1LCAjNworICAgICAgICBsc2wgICAgICAgICAgICAgeDEwLCB4MTAsICM3Cisg ICAgICAgIHN1YiAgICAgICAgICAgICBzcCwgc3AsIHgxMCAgICAgICAgIC8vIHRtcF9hcnJh eQorICAgICAgICBzdHAgICAgICAgICAgICAgeDcsIHgzMCwgW3NwLCAjLTQ4XSEKKyAgICAg ICAgc3RwICAgICAgICAgICAgIHg0LCB4NSwgW3NwLCAjMTZdCisgICAgICAgIHN0cCAgICAg ICAgICAgICB4MCwgeDEsIFtzcCwgIzMyXQorICAgICAgICBhZGQgICAgICAgICAgICAgeDAs IHNwLCAjNDgKKyAgICAgICAgc3ViICAgICAgICAgICAgIHgxLCB4MiwgeDMsIGxzbCAjMQor ICAgICAgICBzdWIgICAgICAgICAgICAgeDEsIHgxLCB4MworICAgICAgICBtb3YgICAgICAg ICAgICAgeDIsIHgzCisgICAgICAgIGFkZCAgICAgICAgICAgICB3MywgdzUsICM3CisgICAg ICAgIG1vdiAgICAgICAgICAgICB4NCwgeDYKKyAgICAgICAgYmwgICAgICAgICAgICAgIFgo ZmZfaGV2Y19wdXRfaGV2Y19xcGVsX2gxNl84X25lb25faThtbSkKKyAgICAgICAgbGRwICAg ICAgICAgICAgIHg0LCB4NSwgW3NwLCAjMTZdCisgICAgICAgIGxkcCAgICAgICAgICAgICB4 MCwgeDEsIFtzcCwgIzMyXQorICAgICAgICBsZHAgICAgICAgICAgICAgeDcsIHgzMCwgW3Nw XSwgIzQ4CisgICAgICAgIG1vdiAgICAgICAgICAgICB4NiwgIzE2ICAgICAgICAgIC8vIHdp ZHRoCisuTHFwZWxfYmlfaHYxNl9sb29wOgorICAgICAgICBsb2FkX3FwZWxfZmlsdGVyaCB4 NywgeDgKKyAgICAgICAgbW92ICAgICAgICAgICAgIHg5LCAjKE1BWF9QQl9TSVpFICogMikK KyAgICAgICAgbW92ICAgICAgICAgICAgIHgxMCwgeDYKKzA6ICAgICAgbW92ICAgICAgICAg ICAgIHg4LCBzcCAgICAgICAgICAvLyBzcmMKKyAgICAgICAgbGQxICAgICAgICAgICAgIHt2 MTYuOGgsIHYxNy44aH0sIFt4OF0sIHg5CisgICAgICAgIG1vdiAgICAgICAgICAgICB3MTEs IHc1ICAgICAgICAgLy8gaGVpZ2h0CisgICAgICAgIGxkMSAgICAgICAgICAgICB7djE4Ljho LCB2MTkuOGh9LCBbeDhdLCB4OQorICAgICAgICBtb3YgICAgICAgICAgICAgeDEyLCB4NCAg ICAgICAgIC8vIHNyYzIKKyAgICAgICAgbGQxICAgICAgICAgICAgIHt2MjAuOGgsIHYyMS44 aH0sIFt4OF0sIHg5CisgICAgICAgIG1vdiAgICAgICAgICAgICB4NywgeDAgICAgICAgICAg Ly8gZHN0CisgICAgICAgIGxkMSAgICAgICAgICAgICB7djIyLjhoLCB2MjMuOGh9LCBbeDhd LCB4OQorICAgICAgICBsZDEgICAgICAgICAgICAge3YyNC44aCwgdjI1LjhofSwgW3g4XSwg eDkKKyAgICAgICAgbGQxICAgICAgICAgICAgIHt2MjYuOGgsIHYyNy44aH0sIFt4OF0sIHg5 CisgICAgICAgIGxkMSAgICAgICAgICAgICB7djI4LjhoLCB2MjkuOGh9LCBbeDhdLCB4OQor Lm1hY3JvIGNhbGMgdG1wMCwgdG1wMSwgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMywgc3JjNCwg c3JjNSwgc3JjNiwgc3JjNywgc3JjOCwgc3JjOSwgc3JjMTAsIHNyYzExLCBzcmMxMiwgc3Jj MTMsIHNyYzE0LCBzcmMxNQorICAgICAgICBsZDEgICAgICAgICAgICAge1x0bXAwXCgpLjho LCBcdG1wMVwoKS44aH0sIFt4OF0sIHg5CisgICAgICAgIGNhbGNfcXBlbGggICAgICB2MSwg ICAgIFxzcmMwLCAgXHNyYzEsIFxzcmMyLCAgXHNyYzMsICBcc3JjNCwgIFxzcmM1LCAgXHNy YzYsICBcc3JjNywgc3NocgorICAgICAgICBjYWxjX3FwZWxoMiAgICAgdjIsIHYyLCBcc3Jj MCwgXHNyYzEsICBcc3JjMiwgIFxzcmMzLCAgXHNyYzQsICBcc3JjNSwgIFxzcmM2LCAgXHNy YzcsIHNzaHIKKyAgICAgICAgY2FsY19xcGVsaCAgICAgIHYzLCAgICAgXHNyYzgsIFxzcmM5 LCBcc3JjMTAsIFxzcmMxMSwgXHNyYzEyLCBcc3JjMTMsIFxzcmMxNCwgXHNyYzE1LCBzc2hy CisgICAgICAgIGNhbGNfcXBlbGgyICAgICB2NCwgdjQsIFxzcmM4LCBcc3JjOSwgXHNyYzEw LCBcc3JjMTEsIFxzcmMxMiwgXHNyYzEzLCBcc3JjMTQsIFxzcmMxNSwgc3NocgorICAgICAg ICBsZDEgICAgICAgICAgICAge3Y1LjhoLCB2Ni44aH0sIFt4MTJdLCB4OSAvLyBzcmMyCisg ICAgICAgIHNhZGR3ICAgICAgICAgICB2MS40cywgdjEuNHMsIHY1LjRoCisgICAgICAgIHNh ZGR3MiAgICAgICAgICB2Mi40cywgdjIuNHMsIHY1LjhoCisgICAgICAgIHNhZGR3ICAgICAg ICAgICB2My40cywgdjMuNHMsIHY2LjRoCisgICAgICAgIHNhZGR3MiAgICAgICAgICB2NC40 cywgdjQuNHMsIHY2LjhoCisgICAgICAgIHJzaHJuICAgICAgICAgICB2MS40aCwgdjEuNHMs ICM3CisgICAgICAgIHJzaHJuMiAgICAgICAgICB2MS44aCwgdjIuNHMsICM3CisgICAgICAg IHJzaHJuICAgICAgICAgICB2Mi40aCwgdjMuNHMsICM3CisgICAgICAgIHJzaHJuMiAgICAg ICAgICB2Mi44aCwgdjQuNHMsICM3CisgICAgICAgIHNxeHR1biAgICAgICAgICB2MS44Yiwg djEuOGgKKyAgICAgICAgc3F4dHVuMiAgICAgICAgIHYxLjE2YiwgdjIuOGgKKyAgICAgICAg c3VicyAgICAgICAgICAgIHgxMSwgeDExLCAjMQorICAgICAgICBzdDEgICAgICAgICAgICAg e3YxLjE2Yn0sIFt4N10sIHgxCisuZW5kbQorMTogICAgICBjYWxjX2FsbDIKKy5wdXJnZW0g Y2FsYworMjogICAgICBhZGQgICAgICAgICAgICAgeDAsIHgwLCAjMTYKKyAgICAgICAgYWRk ICAgICAgICAgICAgIHNwLCBzcCwgIzMyCisgICAgICAgIHN1YnMgICAgICAgICAgICB4MTAs IHgxMCwgIzE2CisgICAgICAgIGFkZCAgICAgICAgICAgICB4NCwgeDQsICMzMgorICAgICAg ICBiLm5lICAgICAgICAgICAgMGIKKyAgICAgICAgYWRkICAgICAgICAgICAgIHcxMCwgdzUs ICM3CisgICAgICAgIGxzbCAgICAgICAgICAgICB4MTAsIHgxMCwgIzcKKyAgICAgICAgc3Vi ICAgICAgICAgICAgIHgxMCwgeDEwLCB4NiwgbHNsICMxIC8vIHBhcnQgb2YgZmlyc3QgbGlu ZQorICAgICAgICBhZGQgICAgICAgICAgICAgc3AsIHNwLCB4MTAgICAgICAgICAvLyB0bXBf YXJyYXkgd2l0aG91dCBmaXJzdCBsaW5lCisgICAgICAgIHJldAorZW5kZnVuYworCitmdW5j dGlvbiBmZl9oZXZjX3B1dF9oZXZjX3FwZWxfYmlfaHYyNF84X25lb25faThtbSwgZXhwb3J0 PTEKKyAgICAgICAgc3RwICAgICAgICAgICAgIHg2LCB4NywgW3NwLCAjLTgwXSEKKyAgICAg ICAgc3RwICAgICAgICAgICAgIHg0LCB4NSwgW3NwLCAjMTZdCisgICAgICAgIHN0cCAgICAg ICAgICAgICB4MiwgeDMsIFtzcCwgIzMyXQorICAgICAgICBzdHAgICAgICAgICAgICAgeDAs IHgxLCBbc3AsICM0OF0KKyAgICAgICAgc3RyICAgICAgICAgICAgIHgzMCwgW3NwLCAjNjRd CisgICAgICAgIGJsICAgICAgICAgICAgICBYKGZmX2hldmNfcHV0X2hldmNfcXBlbF9iaV9o djE2XzhfbmVvbl9pOG1tKQorICAgICAgICBsZHAgICAgICAgICAgICAgeDQsIHg1LCBbc3As ICMxNl0KKyAgICAgICAgbGRwICAgICAgICAgICAgIHgyLCB4MywgW3NwLCAjMzJdCisgICAg ICAgIGxkcCAgICAgICAgICAgICB4MCwgeDEsIFtzcCwgIzQ4XQorICAgICAgICBsZHAgICAg ICAgICAgICAgeDYsIHg3LCBbc3BdLCAjNjQKKyAgICAgICAgYWRkICAgICAgICAgICAgIHg0 LCB4NCwgIzMyCisgICAgICAgIGFkZCAgICAgICAgICAgICB4MiwgeDIsICMxNgorICAgICAg ICBhZGQgICAgICAgICAgICAgeDAsIHgwLCAjMTYKKyAgICAgICAgYmwgICAgICAgICAgICAg IFgoZmZfaGV2Y19wdXRfaGV2Y19xcGVsX2JpX2h2OF84X25lb25faThtbSkKKyAgICAgICAg bGRyICAgICAgICAgICAgIHgzMCwgW3NwXSwgIzE2CisgICAgICAgIHJldAorZW5kZnVuYwor CitmdW5jdGlvbiBmZl9oZXZjX3B1dF9oZXZjX3FwZWxfYmlfaHYzMl84X25lb25faThtbSwg ZXhwb3J0PTEKKyAgICAgICAgYWRkICAgICAgICAgICAgIHcxMCwgdzUsICM3CisgICAgICAg IGxzbCAgICAgICAgICAgICB4MTAsIHgxMCwgIzcKKyAgICAgICAgc3ViICAgICAgICAgICAg IHNwLCBzcCwgeDEwICAgICAgICAgLy8gdG1wX2FycmF5CisgICAgICAgIHN0cCAgICAgICAg ICAgICB4NywgeDMwLCBbc3AsICMtNDhdIQorICAgICAgICBzdHAgICAgICAgICAgICAgeDQs IHg1LCBbc3AsICMxNl0KKyAgICAgICAgc3RwICAgICAgICAgICAgIHgwLCB4MSwgW3NwLCAj MzJdCisgICAgICAgIGFkZCAgICAgICAgICAgICB4MCwgc3AsICM0OAorICAgICAgICBzdWIg ICAgICAgICAgICAgeDEsIHgyLCB4MywgbHNsICMxCisgICAgICAgIG1vdiAgICAgICAgICAg ICB4MiwgeDMKKyAgICAgICAgc3ViICAgICAgICAgICAgIHgxLCB4MSwgeDMKKyAgICAgICAg YWRkICAgICAgICAgICAgIHczLCB3NSwgIzcKKyAgICAgICAgbW92ICAgICAgICAgICAgIHg0 LCB4NgorICAgICAgICBibCAgICAgICAgICAgICAgWChmZl9oZXZjX3B1dF9oZXZjX3FwZWxf aDMyXzhfbmVvbl9pOG1tKQorICAgICAgICBsZHAgICAgICAgICAgICAgeDQsIHg1LCBbc3As ICMxNl0KKyAgICAgICAgbGRwICAgICAgICAgICAgIHgwLCB4MSwgW3NwLCAjMzJdCisgICAg ICAgIGxkcCAgICAgICAgICAgICB4NywgeDMwLCBbc3BdLCAjNDgKKyAgICAgICAgbW92ICAg ICAgICAgICAgIHg2LCAjMzIgLy8gd2lkdGgKKyAgICAgICAgYiAgICAgICAgICAgICAgIC5M cXBlbF9iaV9odjE2X2xvb3AKK2VuZGZ1bmMKKworZnVuY3Rpb24gZmZfaGV2Y19wdXRfaGV2 Y19xcGVsX2JpX2h2NDhfOF9uZW9uX2k4bW0sIGV4cG9ydD0xCisgICAgICAgIGFkZCAgICAg ICAgICAgICB3MTAsIHc1LCAjNworICAgICAgICBsc2wgICAgICAgICAgICAgeDEwLCB4MTAs ICM3CisgICAgICAgIHN1YiAgICAgICAgICAgICBzcCwgc3AsIHgxMCAvLyB0bXBfYXJyYXkK KyAgICAgICAgc3RwICAgICAgICAgICAgIHg3LCB4MzAsIFtzcCwgIy00OF0hCisgICAgICAg IHN0cCAgICAgICAgICAgICB4NCwgeDUsIFtzcCwgIzE2XQorICAgICAgICBzdHAgICAgICAg ICAgICAgeDAsIHgxLCBbc3AsICMzMl0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHgwLCBz cCwgIzQ4CisgICAgICAgIHN1YiAgICAgICAgICAgICB4MSwgeDIsIHgzLCBsc2wgIzEKKyAg ICAgICAgbW92ICAgICAgICAgICAgIHgyLCB4MworICAgICAgICBzdWIgICAgICAgICAgICAg eDEsIHgxLCB4MworICAgICAgICBhZGQgICAgICAgICAgICAgdzMsIHc1LCAjNworICAgICAg ICBtb3YgICAgICAgICAgICAgeDQsIHg2CisgICAgICAgIGJsICAgICAgICAgICAgICBYKGZm X2hldmNfcHV0X2hldmNfcXBlbF9oNDhfOF9uZW9uX2k4bW0pCisgICAgICAgIGxkcCAgICAg ICAgICAgICB4NCwgeDUsIFtzcCwgIzE2XQorICAgICAgICBsZHAgICAgICAgICAgICAgeDAs IHgxLCBbc3AsICMzMl0KKyAgICAgICAgbGRwICAgICAgICAgICAgIHg3LCB4MzAsIFtzcF0s ICM0OAorICAgICAgICBtb3YgICAgICAgICAgICAgeDYsICM0OCAvLyB3aWR0aAorICAgICAg ICBiICAgICAgICAgICAgICAgLkxxcGVsX2JpX2h2MTZfbG9vcAorZW5kZnVuYworCitmdW5j dGlvbiBmZl9oZXZjX3B1dF9oZXZjX3FwZWxfYmlfaHY2NF84X25lb25faThtbSwgZXhwb3J0 PTEKKyAgICAgICAgYWRkICAgICAgICAgICAgIHcxMCwgdzUsICM3CisgICAgICAgIGxzbCAg ICAgICAgICAgICB4MTAsIHgxMCwgIzcKKyAgICAgICAgc3ViICAgICAgICAgICAgIHNwLCBz cCwgeDEwIC8vIHRtcF9hcnJheQorICAgICAgICBzdHAgICAgICAgICAgICAgeDcsIHgzMCwg W3NwLCAjLTQ4XSEKKyAgICAgICAgc3RwICAgICAgICAgICAgIHg0LCB4NSwgW3NwLCAjMTZd CisgICAgICAgIHN0cCAgICAgICAgICAgICB4MCwgeDEsIFtzcCwgIzMyXQorICAgICAgICBh ZGQgICAgICAgICAgICAgeDAsIHNwLCAjNDgKKyAgICAgICAgc3ViICAgICAgICAgICAgIHgx LCB4MiwgeDMsIGxzbCAjMQorICAgICAgICBtb3YgICAgICAgICAgICAgeDIsIHgzCisgICAg ICAgIHN1YiAgICAgICAgICAgICB4MSwgeDEsIHgzCisgICAgICAgIGFkZCAgICAgICAgICAg ICB3MywgdzUsICM3CisgICAgICAgIG1vdiAgICAgICAgICAgICB4NCwgeDYKKyAgICAgICAg YmwgICAgICAgICAgICAgIFgoZmZfaGV2Y19wdXRfaGV2Y19xcGVsX2g2NF84X25lb25faTht bSkKKyAgICAgICAgbGRwICAgICAgICAgICAgIHg0LCB4NSwgW3NwLCAjMTZdCisgICAgICAg IGxkcCAgICAgICAgICAgICB4MCwgeDEsIFtzcCwgIzMyXQorICAgICAgICBsZHAgICAgICAg ICAgICAgeDcsIHgzMCwgW3NwXSwgIzQ4CisgICAgICAgIG1vdiAgICAgICAgICAgICB4Niwg IzY0ICAgICAgICAgIC8vIHdpZHRoCisgICAgICAgIGIgICAgICAgICAgICAgICAuTHFwZWxf YmlfaHYxNl9sb29wCitlbmRmdW5jCisKIERJU0FCTEVfSThNTQogI2VuZGlmIC8vIEhBVkVf SThNTQotLSAKMi4zOC4wLndpbmRvd3MuMQoK --------------X4PuCZLoQ1g00lAm3Svtn2u5 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". --------------X4PuCZLoQ1g00lAm3Svtn2u5--