<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>183543</bug_id>
          
          <creation_ts>2018-03-10 09:22:28 -0800</creation_ts>
          <short_desc>[B3] Above/Below should be strength-reduced for comparison with 0</short_desc>
          <delta_ts>2018-03-12 17:25:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>150958</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>lforschler</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1405478</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-10 09:22:28 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405482</commentid>
    <comment_count>1</comment_count>
      <attachid>335516</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-10 09:42:33 -0800</bug_when>
    <thetext>Created attachment 335516
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405483</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-03-10 09:43:55 -0800</bug_when>
    <thetext>Attachment 335516 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/B3Const32Value.cpp:251:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/b3/B3Const32Value.cpp:274:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/b3/B3Const64Value.cpp:251:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/b3/B3Const64Value.cpp:274:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 4 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405485</commentid>
    <comment_count>3</comment_count>
      <attachid>335516</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-10 09:57:10 -0800</bug_when>
    <thetext>Comment on attachment 335516
Patch

I would like to sort operands too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405495</commentid>
    <comment_count>4</comment_count>
      <attachid>335516</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-10 12:21:34 -0800</bug_when>
    <thetext>Comment on attachment 335516
Patch

operand sorting is done in bug 150948. So set r?.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405509</commentid>
    <comment_count>5</comment_count>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2018-03-10 16:07:35 -0800</bug_when>
    <thetext>It is just considering unsigned values, right? If yes, LGTM. It should be good have some benchmark report.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405553</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-11 08:27:15 -0700</bug_when>
    <thetext>I&apos;ll a bit extend this patch to support arbitrary comparisons.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405554</commentid>
    <comment_count>7</comment_count>
      <attachid>335535</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-11 08:30:30 -0700</bug_when>
    <thetext>Created attachment 335535
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405555</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-11 08:50:32 -0700</bug_when>
    <thetext>(In reply to Caio Lima from comment #5)
&gt; It is just considering unsigned values, right? If yes, LGTM. It should be
&gt; good have some benchmark report.

I don&apos;t think it directly improves performance so much. Rather it reduces code size for ArraySlice since some of B3 Values &amp; branches are removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405556</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-11 08:57:41 -0700</bug_when>
    <thetext>Before
          Int32 @65 = Load(@62, offset = -8, ControlDependent|Reads:4, DFG:@65)
              Move32 -8(%r9), %rax, @65
                  0x7fb645720ca5: mov -0x8(%r9), %eax
          Int32 @0 = Const32(0)
              Move $0, %rsi, $0(@0)
                  0x7fb645720ca9: xor %rsi, %rsi
          Int32 @71 = Above($0(@0), @65, DFG:@65)
          Int32 @72 = Select(@71, @65, $0(@0), DFG:@65)
              MoveConditionally32 Below, %rax, $0, %rax, %rsi, %rdi, @72
                  0x7fb645720cac: cmp $0x0, %eax
                  0x7fb645720caf: mov %rsi, %rdi
                  0x7fb645720cb2: cmovb %rax, %rdi
          Int32 @74 = Sub(@65, @72, DFG:@65)
              Move32 %rax, %rcx, @74
                  0x7fb645720cb6: mov %eax, %ecx
              Sub32 %rdi, %rcx, @74
                  0x7fb645720cb8: sub %edi, %ecx
          Int32 @75 = Below(@72, @65, DFG:@65)
          Int32 @76 = Select(@75, @74, $0(@0), DFG:@65)
              MoveConditionally32 Below, %rdi, %rax, %rcx, %rsi, %rsi, @76
                  0x7fb645720cba: cmp %eax, %edi
                  0x7fb645720cbc: cmovb %rcx, %rsi
          Int32 @79 = Load8Z(@51, offset = 4, ControlDependent|Reads:19, DFG:@65)
              Load8 4(%rdx), %rcx, @79
                  0x7fb645720cc0: movzx 0x4(%rdx), %ecx
          Int32 @80 = Const32(31, DFG:@65)
          Int32 @81 = BitAnd(@79, $31(@80), DFG:@65)
              And32 $31, %rcx, @81
                  0x7fb645720cc4: and $0x1f, %ecx
          Int64 @83 = Const64(140420816250832, DFG:@65)
              Move $0x7fb644df27d0, %rdx, $140420816250832(@83)
                  0x7fb645720cc7: mov $0x7fb644df27d0, %rdx
          Int64 @82 = Const64(140420816250720, DFG:@65)
              Add64 $-112, %rdx, %r10, $140420816250720(@82)
                  0x7fb645720cd1: lea -0x70(%rdx), %r10
          Int32 @84 = Const32(9, DFG:@65)
          Int32 @85 = Equal(@81, $9(@84), DFG:@65)
          Int64 @86 = Select(@85, $140420816250832(@83), $140420816250720(@82), DFG:@65)
              MoveConditionally32 Equal, %rcx, $9, %rdx, %r10, %r10, @86
                  0x7fb645720cd5: cmp $0x9, %ecx
                  0x7fb645720cd8: cmovz %rdx, %r10
          Int64 @87 = Const64(140420816250608, DFG:@65)
              Add64 $-224, %rdx, %rax, $140420816250608(@87)
                  0x7fb645720cdc: lea -0xe0(%rdx), %rax
          Int32 @88 = Const32(5, DFG:@65)
          Int32 @89 = Equal(@81, $5(@88), DFG:@65)
          Int64 @90 = Select(@89, $140420816250608(@87), @86, DFG:@65)
              MoveConditionally32 Equal, %rcx, $5, %rax, %r10, %r10, @90
                  0x7fb645720ce3: cmp $0x5, %ecx
                  0x7fb645720ce6: cmovz %rax, %r10
          Int64 @2 = Const64(0)

After:
          Int32 @65 = Load(@62, offset = -8, ControlDependent|Reads:4, DFG:@65)
              Move32 -8(%r8), %rcx, @65
                  0x7f0fc0020c84: mov -0x8(%r8), %ecx
          Int32 @0 = Const32(0)
              Move $0, %rsi, $0(@0)
                  0x7f0fc0020c88: xor %rsi, %rsi
          Int32 @637 = Above(@65, $0(@0), DFG:@65)
          Int32 @74 = Select(@637, @65, $0(@0), DFG:@65)
              MoveConditionally32 Above, %rcx, $0, %rcx, %rsi, %rsi, @74
                  0x7f0fc0020c8b: cmp $0x0, %ecx
                  0x7f0fc0020c8e: cmova %rcx, %rsi
          Int32 @77 = Load8Z(@51, offset = 4, ControlDependent|Reads:19, DFG:@65)
              Load8 4(%rax), %rcx, @77
                  0x7f0fc0020c92: movzx 0x4(%rax), %ecx
          Int32 @78 = Const32(31, DFG:@65)
          Int32 @79 = BitAnd(@77, $31(@78), DFG:@65)
              And32 $31, %rcx, @79
                  0x7f0fc0020c96: and $0x1f, %ecx
          Int64 @81 = Const64(139827205842896, DFG:@65)
              Add64 $785968, %rdx, %rax, $139827205842896(@81)
                  0x7f0fc0020c99: lea 0xbfe30(%rdx), %rax
          Int64 @80 = Const64(139827205842784, DFG:@65)
              Add64 $785856, %rdx, %r9, $139827205842784(@80)
                  0x7f0fc0020ca0: lea 0xbfdc0(%rdx), %r9
          Int32 @82 = Const32(9, DFG:@65)
          Int32 @83 = Equal(@79, $9(@82), DFG:@65)
          Int64 @84 = Select(@83, $139827205842896(@81), $139827205842784(@80), DFG:@65)
              MoveConditionally32 Equal, %rcx, $9, %rax, %r9, %r9, @84
                  0x7f0fc0020ca7: cmp $0x9, %ecx
                  0x7f0fc0020caa: cmovz %rax, %r9
          Int64 @85 = Const64(139827205842672, DFG:@65)
              Add64 $785744, %rdx, %rax, $139827205842672(@85)
                  0x7f0fc0020cae: lea 0xbfd50(%rdx), %rax
          Int32 @86 = Const32(5, DFG:@65)
          Int32 @87 = Equal(@79, $5(@86), DFG:@65)
          Int64 @88 = Select(@87, $139827205842672(@85), @84, DFG:@65)
              MoveConditionally32 Equal, %rcx, $5, %rax, %r9, %r9, @88
                  0x7f0fc0020cb5: cmp $0x5, %ecx
                  0x7f0fc0020cb8: cmovz %rax, %r9
          Int64 @2 = Const64(0)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405557</commentid>
    <comment_count>10</comment_count>
      <attachid>335536</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-11 09:37:54 -0700</bug_when>
    <thetext>Created attachment 335536
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405559</commentid>
    <comment_count>11</comment_count>
      <attachid>335537</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-11 10:06:27 -0700</bug_when>
    <thetext>Created attachment 335537
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405562</commentid>
    <comment_count>12</comment_count>
      <attachid>335539</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-11 10:17:30 -0700</bug_when>
    <thetext>Created attachment 335539
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405566</commentid>
    <comment_count>13</comment_count>
      <attachid>335539</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-03-11 10:31:10 -0700</bug_when>
    <thetext>Comment on attachment 335539
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=335539&amp;action=review

Nice!

&gt; Source/JavaScriptCore/b3/B3ReduceStrength.cpp:1676
&gt; -            auto* value = newComparisonVaueIfNecessary();
&gt; +            CanonicalizedComparison comparison = canonicalizeComparison(m_value);

I know the auto* is in the red, but I sure hope we don&apos;t have more cases of auto being used as an alias for Value.  It&apos;s important for the compiler to be self-documenting, and that means having types explicitly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405569</commentid>
    <comment_count>14</comment_count>
      <attachid>335539</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-11 12:27:14 -0700</bug_when>
    <thetext>Comment on attachment 335539
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=335539&amp;action=review

Thanks

&gt;&gt; Source/JavaScriptCore/b3/B3ReduceStrength.cpp:1676
&gt;&gt; +            CanonicalizedComparison comparison = canonicalizeComparison(m_value);
&gt; 
&gt; I know the auto* is in the red, but I sure hope we don&apos;t have more cases of auto being used as an alias for Value.  It&apos;s important for the compiler to be self-documenting, and that means having types explicitly.

Yeah, it sounds reasonable to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405572</commentid>
    <comment_count>15</comment_count>
      <attachid>335539</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-11 12:52:28 -0700</bug_when>
    <thetext>Comment on attachment 335539
Patch

Clearing flags on attachment: 335539

Committed r229517: &lt;https://trac.webkit.org/changeset/229517&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405573</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-11 12:52:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406005</commentid>
    <comment_count>17</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-03-12 17:25:09 -0700</bug_when>
    <thetext>&lt;rdar://problem/38397886&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335516</attachid>
            <date>2018-03-10 09:42:33 -0800</date>
            <delta_ts>2018-03-11 08:30:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183543-20180311024232.patch</filename>
            <type>text/plain</type>
            <size>3437</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
Yjc3YWExZjAxNzkwM2QzNDZjYjM0ODJhNjMyMjAxZWMyZjM1ZWM0Li43NGYzN2JjNmQxMWQ5YTU3
NDkzNDNkNmQ1NzhkMmMyZWQ1OWEzZDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxOC0wMy0xMCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbQjNdIEFib3ZlL0JlbG93IHNob3VsZCBiZSBzdHJlbmd0aC1yZWR1
Y2VkIGZvciBjb21wYXJpc29uIHdpdGggMAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWJvdmUoMCwgeCkgYW5kIEJlbG93RXF1YWwoMCwgeCkgY2FuIGJl
IGNvbnZlcnRlZCB0byBjb25zdGFudHMgZmFsc2UgYW5kIHRydWUgcmVzcGVjdGl2ZWx5LgorICAg
ICAgICBUaGlzIGNhbiBiZSBzZWVuIGluIEFycmF5U2xpY2UoMCkgY2FzZTogYFNlbGVjdChBYm92
ZSgwLCBsZW5ndGgpLCBsZW5ndGgsIDApYCB0aGlzIHNob3VsZAorICAgICAgICBiZSBjb252ZXJ0
ZWQgdG8gYDBgLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGlzIGFscmVhZHkgY292ZXJ0ZWQgYnkg
dGVzdGIzJ3MgY29tcGFyZSB0ZXN0cy4KKworICAgICAgICAqIGIzL0IzQ29uc3QzMlZhbHVlLmNw
cDoKKyAgICAgICAgKEpTQzo6QjM6OkNvbnN0MzJWYWx1ZTo6YWJvdmVDb25zdGFudCBjb25zdCk6
CisgICAgICAgIChKU0M6OkIzOjpDb25zdDMyVmFsdWU6OmJlbG93RXF1YWxDb25zdGFudCBjb25z
dCk6CisgICAgICAgICogYjMvQjNDb25zdDY0VmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6
Q29uc3Q2NFZhbHVlOjphYm92ZUNvbnN0YW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkNv
bnN0NjRWYWx1ZTo6YmVsb3dFcXVhbENvbnN0YW50IGNvbnN0KToKKwogMjAxOC0wMy0wOSAgQnJp
YW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiB0aGVy
ZSBzaG91bGQgb25seSBiZSBvbmUgd2F5IGZvciBhc3luYyBiYWNrZW5kIGNvbW1hbmRzIHRvIHNl
bmQgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3Qz
MlZhbHVlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0MzJWYWx1ZS5jcHAK
aW5kZXggNDlhNzQ1M2E0OWE1OWM4OGYzYzZiYmZkYTI2NmFmYjY5ODViNzMxNy4uYWNlMTc1MTRk
M2E2ZjdkZGViMGJiY2NkZmU1OWRhZDgwOGVmMmVhYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzQ29uc3QzMlZhbHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDb25zdDMyVmFsdWUuY3BwCkBAIC0yNDgsNiArMjQ4LDggQEAgVHJpU3RhdGUgQ29u
c3QzMlZhbHVlOjpncmVhdGVyRXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0
CiAKIFRyaVN0YXRlIENvbnN0MzJWYWx1ZTo6YWJvdmVDb25zdGFudChjb25zdCBWYWx1ZSogb3Ro
ZXIpIGNvbnN0CiB7CisgICAgaWYgKHN0YXRpY19jYXN0PHVpbnQzMl90PihtX3ZhbHVlKSA9PSAw
KQorICAgICAgICByZXR1cm4gRmFsc2VUcmlTdGF0ZTsKICAgICBpZiAoIW90aGVyLT5oYXNJbnQz
MigpKQogICAgICAgICByZXR1cm4gTWl4ZWRUcmlTdGF0ZTsKICAgICByZXR1cm4gdHJpU3RhdGUo
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1fdmFsdWUpID4gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG90
aGVyLT5hc0ludDMyKCkpKTsKQEAgLTI2OSw2ICsyNzEsOCBAQCBUcmlTdGF0ZSBDb25zdDMyVmFs
dWU6OmFib3ZlRXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiAKIFRyaVN0
YXRlIENvbnN0MzJWYWx1ZTo6YmVsb3dFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikg
Y29uc3QKIHsKKyAgICBpZiAoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1fdmFsdWUpID09IDApCisg
ICAgICAgIHJldHVybiBUcnVlVHJpU3RhdGU7CiAgICAgaWYgKCFvdGhlci0+aGFzSW50MzIoKSkK
ICAgICAgICAgcmV0dXJuIE1peGVkVHJpU3RhdGU7CiAgICAgcmV0dXJuIHRyaVN0YXRlKHN0YXRp
Y19jYXN0PHVpbnQzMl90PihtX3ZhbHVlKSA8PSBzdGF0aWNfY2FzdDx1aW50MzJfdD4ob3RoZXIt
PmFzSW50MzIoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29u
c3Q2NFZhbHVlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0NjRWYWx1ZS5j
cHAKaW5kZXggNGY3Yjg2YjJlOWQ0ZGU2MTU1ZDQzMzY1YTBmZTExMDRiOWI1ZDA1Yi4uZTQ1ZjQy
OTU2OTEyYjc0NjU1Mjc1YTQ1ZmQwMmE1YTYzZDVlNzNmYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQ29uc3Q2NFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNDb25zdDY0VmFsdWUuY3BwCkBAIC0yNDgsNiArMjQ4LDggQEAgVHJpU3RhdGUg
Q29uc3Q2NFZhbHVlOjpncmVhdGVyRXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNv
bnN0CiAKIFRyaVN0YXRlIENvbnN0NjRWYWx1ZTo6YWJvdmVDb25zdGFudChjb25zdCBWYWx1ZSog
b3RoZXIpIGNvbnN0CiB7CisgICAgaWYgKHN0YXRpY19jYXN0PHVpbnQ2NF90PihtX3ZhbHVlKSA9
PSAwKQorICAgICAgICByZXR1cm4gRmFsc2VUcmlTdGF0ZTsKICAgICBpZiAoIW90aGVyLT5oYXNJ
bnQ2NCgpKQogICAgICAgICByZXR1cm4gTWl4ZWRUcmlTdGF0ZTsKICAgICByZXR1cm4gdHJpU3Rh
dGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fdmFsdWUpID4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KG90aGVyLT5hc0ludDY0KCkpKTsKQEAgLTI2OSw2ICsyNzEsOCBAQCBUcmlTdGF0ZSBDb25zdDY0
VmFsdWU6OmFib3ZlRXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiAKIFRy
aVN0YXRlIENvbnN0NjRWYWx1ZTo6YmVsb3dFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhl
cikgY29uc3QKIHsKKyAgICBpZiAoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fdmFsdWUpID09IDAp
CisgICAgICAgIHJldHVybiBUcnVlVHJpU3RhdGU7CiAgICAgaWYgKCFvdGhlci0+aGFzSW50NjQo
KSkKICAgICAgICAgcmV0dXJuIE1peGVkVHJpU3RhdGU7CiAgICAgcmV0dXJuIHRyaVN0YXRlKHN0
YXRpY19jYXN0PHVpbnQ2NF90PihtX3ZhbHVlKSA8PSBzdGF0aWNfY2FzdDx1aW50NjRfdD4ob3Ro
ZXItPmFzSW50NjQoKSkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335535</attachid>
            <date>2018-03-11 08:30:30 -0700</date>
            <delta_ts>2018-03-11 09:37:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183543-20180312003029.patch</filename>
            <type>text/plain</type>
            <size>11220</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
MTg4ZjFiZmYwMThlODk1ZTcwYWQzZTQ3NWIzYjQxNGFlYjIxZDhlLi5jMTNjMWIzNDU4NGQ5MjMy
NzkyZGMwOTFmNTA1Yzk2Zjg1YmJjNzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxOC0wMy0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbQjNdIEFib3ZlL0JlbG93IHNob3VsZCBiZSBzdHJlbmd0aC1yZWR1
Y2VkIGZvciBjb21wYXJpc29uIHdpdGggMAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWJvdmUoMCwgeCkgYW5kIEJlbG93RXF1YWwoMCwgeCkgY2FuIGJl
IGNvbnZlcnRlZCB0byBjb25zdGFudHMgZmFsc2UgYW5kIHRydWUgcmVzcGVjdGl2ZWx5LgorICAg
ICAgICBUaGlzIGNhbiBiZSBzZWVuIGluIEFycmF5U2xpY2UoMCkgY2FzZTogYFNlbGVjdChBYm92
ZSgwLCBsZW5ndGgpLCBsZW5ndGgsIDApYCB0aGlzIHNob3VsZAorICAgICAgICBiZSBjb252ZXJ0
ZWQgdG8gYDBgLiBUaGlzIHBhdGNoIGFkZHMgc3VjaCBhIGZvbGRpbmcgdG8gY29tcGFyaXNvbnMu
CisKKyAgICAgICAgKiBiMy9CM0NvbnN0MzJWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkIzOjpD
b25zdDMyVmFsdWU6Omxlc3NUaGFuQ29uc3RhbnQgY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6
Q29uc3QzMlZhbHVlOjpncmVhdGVyVGhhbkNvbnN0YW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6
QjM6OkNvbnN0MzJWYWx1ZTo6bGVzc0VxdWFsQ29uc3RhbnQgY29uc3QpOgorICAgICAgICAoSlND
OjpCMzo6Q29uc3QzMlZhbHVlOjpncmVhdGVyRXF1YWxDb25zdGFudCBjb25zdCk6CisgICAgICAg
IChKU0M6OkIzOjpDb25zdDMyVmFsdWU6OmFib3ZlQ29uc3RhbnQgY29uc3QpOgorICAgICAgICAo
SlNDOjpCMzo6Q29uc3QzMlZhbHVlOjpiZWxvd0NvbnN0YW50IGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6QjM6OkNvbnN0MzJWYWx1ZTo6YWJvdmVFcXVhbENvbnN0YW50IGNvbnN0KToKKyAgICAgICAg
KEpTQzo6QjM6OkNvbnN0MzJWYWx1ZTo6YmVsb3dFcXVhbENvbnN0YW50IGNvbnN0KToKKyAgICAg
ICAgKiBiMy9CM0NvbnN0NjRWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkIzOjpDb25zdDY0VmFs
dWU6Omxlc3NUaGFuQ29uc3RhbnQgY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6Q29uc3Q2NFZh
bHVlOjpncmVhdGVyVGhhbkNvbnN0YW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkNvbnN0
NjRWYWx1ZTo6bGVzc0VxdWFsQ29uc3RhbnQgY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6Q29u
c3Q2NFZhbHVlOjpncmVhdGVyRXF1YWxDb25zdGFudCBjb25zdCk6CisgICAgICAgIChKU0M6OkIz
OjpDb25zdDY0VmFsdWU6OmFib3ZlQ29uc3RhbnQgY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6
Q29uc3Q2NFZhbHVlOjpiZWxvd0NvbnN0YW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkNv
bnN0NjRWYWx1ZTo6YWJvdmVFcXVhbENvbnN0YW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6
OkNvbnN0NjRWYWx1ZTo6YmVsb3dFcXVhbENvbnN0YW50IGNvbnN0KToKKyAgICAgICAgKiBiMy90
ZXN0YjMuY3BwOgorICAgICAgICAoSlNDOjpCMzo6aW50NjRPcGVyYW5kcyk6CisgICAgICAgIChK
U0M6OkIzOjppbnQzMk9wZXJhbmRzKToKKwogMjAxOC0wMy0xMCAgWXVzdWtlIFN1enVraSAgPHV0
YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBbRlRMXSBEcm9wIE5ld1JlZ2V4cCBmb3Ig
U3RyaW5nLnByb3RvdHlwZS5tYXRjaCB3aXRoIFJlZ0V4cCArIGdsb2JhbCBmbGFnCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdDMyVmFsdWUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3QzMlZhbHVlLmNwcAppbmRleCA0OWE3NDUzYTQ5YTU5
Yzg4ZjNjNmJiZmRhMjY2YWZiNjk4NWI3MzE3Li41MTJiZTg4Yzk5ZDRiNTMwNWMwZTkyMzRjZTFh
YTJmNzBmNmU2NjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25z
dDMyVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0MzJWYWx1
ZS5jcHAKQEAgLTIyMCw2ICsyMjAsOSBAQCBUcmlTdGF0ZSBDb25zdDMyVmFsdWU6Om5vdEVxdWFs
Q29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAogCiBUcmlTdGF0ZSBDb25zdDMyVmFs
dWU6Omxlc3NUaGFuQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAogeworICAgIC8v
IElOVDMyX01BWCA8IHggaXMgYWx3YXlzIGZhbHNlLgorICAgIGlmIChzdGF0aWNfY2FzdDxpbnQz
Ml90PihtX3ZhbHVlKSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSkKKyAg
ICAgICAgcmV0dXJuIEZhbHNlVHJpU3RhdGU7CiAgICAgaWYgKCFvdGhlci0+aGFzSW50MzIoKSkK
ICAgICAgICAgcmV0dXJuIE1peGVkVHJpU3RhdGU7CiAgICAgcmV0dXJuIHRyaVN0YXRlKG1fdmFs
dWUgPCBvdGhlci0+YXNJbnQzMigpKTsKQEAgLTIyNyw2ICsyMzAsOSBAQCBUcmlTdGF0ZSBDb25z
dDMyVmFsdWU6Omxlc3NUaGFuQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAogCiBU
cmlTdGF0ZSBDb25zdDMyVmFsdWU6OmdyZWF0ZXJUaGFuQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90
aGVyKSBjb25zdAogeworICAgIC8vIElOVDMyX01JTiA+IHggaXMgYWx3YXlzIGZhbHNlLgorICAg
IGlmIChzdGF0aWNfY2FzdDxpbnQzMl90PihtX3ZhbHVlKSA9PSBzdGQ6Om51bWVyaWNfbGltaXRz
PGludDMyX3Q+OjptaW4oKSkKKyAgICAgICAgcmV0dXJuIEZhbHNlVHJpU3RhdGU7CiAgICAgaWYg
KCFvdGhlci0+aGFzSW50MzIoKSkKICAgICAgICAgcmV0dXJuIE1peGVkVHJpU3RhdGU7CiAgICAg
cmV0dXJuIHRyaVN0YXRlKG1fdmFsdWUgPiBvdGhlci0+YXNJbnQzMigpKTsKQEAgLTIzNCw2ICsy
NDAsOSBAQCBUcmlTdGF0ZSBDb25zdDMyVmFsdWU6OmdyZWF0ZXJUaGFuQ29uc3RhbnQoY29uc3Qg
VmFsdWUqIG90aGVyKSBjb25zdAogCiBUcmlTdGF0ZSBDb25zdDMyVmFsdWU6Omxlc3NFcXVhbENv
bnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIHsKKyAgICAvLyBJTlQzMl9NSU4gPD0g
eCBpcyBhbHdheXMgdHJ1ZS4KKyAgICBpZiAoc3RhdGljX2Nhc3Q8aW50MzJfdD4obV92YWx1ZSkg
PT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWluKCkpCisgICAgICAgIHJldHVybiBU
cnVlVHJpU3RhdGU7CiAgICAgaWYgKCFvdGhlci0+aGFzSW50MzIoKSkKICAgICAgICAgcmV0dXJu
IE1peGVkVHJpU3RhdGU7CiAgICAgcmV0dXJuIHRyaVN0YXRlKG1fdmFsdWUgPD0gb3RoZXItPmFz
SW50MzIoKSk7CkBAIC0yNDEsNiArMjUwLDkgQEAgVHJpU3RhdGUgQ29uc3QzMlZhbHVlOjpsZXNz
RXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiAKIFRyaVN0YXRlIENvbnN0
MzJWYWx1ZTo6Z3JlYXRlckVxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAog
eworICAgIC8vIElOVDMyX01BWCA+PSB4IGlzIGFsd2F5cyB0cnVlLgorICAgIGlmIChzdGF0aWNf
Y2FzdDxpbnQzMl90PihtX3ZhbHVlKSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+Ojpt
YXgoKSkKKyAgICAgICAgcmV0dXJuIFRydWVUcmlTdGF0ZTsKICAgICBpZiAoIW90aGVyLT5oYXNJ
bnQzMigpKQogICAgICAgICByZXR1cm4gTWl4ZWRUcmlTdGF0ZTsKICAgICByZXR1cm4gdHJpU3Rh
dGUobV92YWx1ZSA+PSBvdGhlci0+YXNJbnQzMigpKTsKQEAgLTI0OCw2ICsyNjAsOSBAQCBUcmlT
dGF0ZSBDb25zdDMyVmFsdWU6OmdyZWF0ZXJFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhl
cikgY29uc3QKIAogVHJpU3RhdGUgQ29uc3QzMlZhbHVlOjphYm92ZUNvbnN0YW50KGNvbnN0IFZh
bHVlKiBvdGhlcikgY29uc3QKIHsKKyAgICAvLyBVSU5UMzJfTUlOID4geCBpcyBhbHdheXMgZmFs
c2UuCisgICAgaWYgKHN0YXRpY19jYXN0PHVpbnQzMl90PihtX3ZhbHVlKSA9PSBzdGQ6Om51bWVy
aWNfbGltaXRzPHVpbnQzMl90Pjo6bWluKCkpCisgICAgICAgIHJldHVybiBGYWxzZVRyaVN0YXRl
OwogICAgIGlmICghb3RoZXItPmhhc0ludDMyKCkpCiAgICAgICAgIHJldHVybiBNaXhlZFRyaVN0
YXRlOwogICAgIHJldHVybiB0cmlTdGF0ZShzdGF0aWNfY2FzdDx1aW50MzJfdD4obV92YWx1ZSkg
PiBzdGF0aWNfY2FzdDx1aW50MzJfdD4ob3RoZXItPmFzSW50MzIoKSkpOwpAQCAtMjU1LDYgKzI3
MCw5IEBAIFRyaVN0YXRlIENvbnN0MzJWYWx1ZTo6YWJvdmVDb25zdGFudChjb25zdCBWYWx1ZSog
b3RoZXIpIGNvbnN0CiAKIFRyaVN0YXRlIENvbnN0MzJWYWx1ZTo6YmVsb3dDb25zdGFudChjb25z
dCBWYWx1ZSogb3RoZXIpIGNvbnN0CiB7CisgICAgLy8gVUlOVDMyX01BWCA8IHggaXMgYWx3YXlz
IGZhbHNlLgorICAgIGlmIChzdGF0aWNfY2FzdDx1aW50MzJfdD4obV92YWx1ZSkgPT0gc3RkOjpu
dW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKQorICAgICAgICByZXR1cm4gRmFsc2VUcmlT
dGF0ZTsKICAgICBpZiAoIW90aGVyLT5oYXNJbnQzMigpKQogICAgICAgICByZXR1cm4gTWl4ZWRU
cmlTdGF0ZTsKICAgICByZXR1cm4gdHJpU3RhdGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1fdmFs
dWUpIDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG90aGVyLT5hc0ludDMyKCkpKTsKQEAgLTI2Miw2
ICsyODAsOSBAQCBUcmlTdGF0ZSBDb25zdDMyVmFsdWU6OmJlbG93Q29uc3RhbnQoY29uc3QgVmFs
dWUqIG90aGVyKSBjb25zdAogCiBUcmlTdGF0ZSBDb25zdDMyVmFsdWU6OmFib3ZlRXF1YWxDb25z
dGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiB7CisgICAgLy8gVUlOVDMyX01BWCA+PSB4
IGlzIGFsd2F5cyB0cnVlLgorICAgIGlmIChzdGF0aWNfY2FzdDx1aW50MzJfdD4obV92YWx1ZSkg
PT0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKQorICAgICAgICByZXR1cm4g
VHJ1ZVRyaVN0YXRlOwogICAgIGlmICghb3RoZXItPmhhc0ludDMyKCkpCiAgICAgICAgIHJldHVy
biBNaXhlZFRyaVN0YXRlOwogICAgIHJldHVybiB0cmlTdGF0ZShzdGF0aWNfY2FzdDx1aW50MzJf
dD4obV92YWx1ZSkgPj0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG90aGVyLT5hc0ludDMyKCkpKTsK
QEAgLTI2OSw2ICsyOTAsOSBAQCBUcmlTdGF0ZSBDb25zdDMyVmFsdWU6OmFib3ZlRXF1YWxDb25z
dGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiAKIFRyaVN0YXRlIENvbnN0MzJWYWx1ZTo6
YmVsb3dFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIHsKKyAgICAvLyBV
SU5UMzJfTUlOIDw9IHggaXMgYWx3YXlzIHRydWUuCisgICAgaWYgKHN0YXRpY19jYXN0PHVpbnQz
Ml90PihtX3ZhbHVlKSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWluKCkpCisg
ICAgICAgIHJldHVybiBUcnVlVHJpU3RhdGU7CiAgICAgaWYgKCFvdGhlci0+aGFzSW50MzIoKSkK
ICAgICAgICAgcmV0dXJuIE1peGVkVHJpU3RhdGU7CiAgICAgcmV0dXJuIHRyaVN0YXRlKHN0YXRp
Y19jYXN0PHVpbnQzMl90PihtX3ZhbHVlKSA8PSBzdGF0aWNfY2FzdDx1aW50MzJfdD4ob3RoZXIt
PmFzSW50MzIoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29u
c3Q2NFZhbHVlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0NjRWYWx1ZS5j
cHAKaW5kZXggNGY3Yjg2YjJlOWQ0ZGU2MTU1ZDQzMzY1YTBmZTExMDRiOWI1ZDA1Yi4uNzNhNGNl
Y2M1M2U1YmY0OTRkYzdhNjg5ZGRlN2E0M2Q1ODczNzcxMSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQ29uc3Q2NFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNDb25zdDY0VmFsdWUuY3BwCkBAIC0yMjAsNiArMjIwLDkgQEAgVHJpU3RhdGUg
Q29uc3Q2NFZhbHVlOjpub3RFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QK
IAogVHJpU3RhdGUgQ29uc3Q2NFZhbHVlOjpsZXNzVGhhbkNvbnN0YW50KGNvbnN0IFZhbHVlKiBv
dGhlcikgY29uc3QKIHsKKyAgICAvLyBJTlQ2NF9NQVggPCB4IGlzIGFsd2F5cyBmYWxzZS4KKyAg
ICBpZiAoc3RhdGljX2Nhc3Q8aW50NjRfdD4obV92YWx1ZSkgPT0gc3RkOjpudW1lcmljX2xpbWl0
czxpbnQ2NF90Pjo6bWF4KCkpCisgICAgICAgIHJldHVybiBGYWxzZVRyaVN0YXRlOwogICAgIGlm
ICghb3RoZXItPmhhc0ludDY0KCkpCiAgICAgICAgIHJldHVybiBNaXhlZFRyaVN0YXRlOwogICAg
IHJldHVybiB0cmlTdGF0ZShtX3ZhbHVlIDwgb3RoZXItPmFzSW50NjQoKSk7CkBAIC0yMjcsNiAr
MjMwLDkgQEAgVHJpU3RhdGUgQ29uc3Q2NFZhbHVlOjpsZXNzVGhhbkNvbnN0YW50KGNvbnN0IFZh
bHVlKiBvdGhlcikgY29uc3QKIAogVHJpU3RhdGUgQ29uc3Q2NFZhbHVlOjpncmVhdGVyVGhhbkNv
bnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIHsKKyAgICAvLyBJTlQ2NF9NSU4gPiB4
IGlzIGFsd2F5cyBmYWxzZS4KKyAgICBpZiAoc3RhdGljX2Nhc3Q8aW50NjRfdD4obV92YWx1ZSkg
PT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ2NF90Pjo6bWluKCkpCisgICAgICAgIHJldHVybiBG
YWxzZVRyaVN0YXRlOwogICAgIGlmICghb3RoZXItPmhhc0ludDY0KCkpCiAgICAgICAgIHJldHVy
biBNaXhlZFRyaVN0YXRlOwogICAgIHJldHVybiB0cmlTdGF0ZShtX3ZhbHVlID4gb3RoZXItPmFz
SW50NjQoKSk7CkBAIC0yMzQsNiArMjQwLDkgQEAgVHJpU3RhdGUgQ29uc3Q2NFZhbHVlOjpncmVh
dGVyVGhhbkNvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIAogVHJpU3RhdGUgQ29u
c3Q2NFZhbHVlOjpsZXNzRXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiB7
CisgICAgLy8gSU5UNjRfTUlOIDw9IHggaXMgYWx3YXlzIHRydWUuCisgICAgaWYgKHN0YXRpY19j
YXN0PGludDY0X3Q+KG1fdmFsdWUpID09IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50NjRfdD46Om1p
bigpKQorICAgICAgICByZXR1cm4gVHJ1ZVRyaVN0YXRlOwogICAgIGlmICghb3RoZXItPmhhc0lu
dDY0KCkpCiAgICAgICAgIHJldHVybiBNaXhlZFRyaVN0YXRlOwogICAgIHJldHVybiB0cmlTdGF0
ZShtX3ZhbHVlIDw9IG90aGVyLT5hc0ludDY0KCkpOwpAQCAtMjQxLDYgKzI1MCw5IEBAIFRyaVN0
YXRlIENvbnN0NjRWYWx1ZTo6bGVzc0VxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBj
b25zdAogCiBUcmlTdGF0ZSBDb25zdDY0VmFsdWU6OmdyZWF0ZXJFcXVhbENvbnN0YW50KGNvbnN0
IFZhbHVlKiBvdGhlcikgY29uc3QKIHsKKyAgICAvLyBJTlQ2NF9NQVggPj0geCBpcyBhbHdheXMg
dHJ1ZS4KKyAgICBpZiAoc3RhdGljX2Nhc3Q8aW50NjRfdD4obV92YWx1ZSkgPT0gc3RkOjpudW1l
cmljX2xpbWl0czxpbnQ2NF90Pjo6bWF4KCkpCisgICAgICAgIHJldHVybiBUcnVlVHJpU3RhdGU7
CiAgICAgaWYgKCFvdGhlci0+aGFzSW50NjQoKSkKICAgICAgICAgcmV0dXJuIE1peGVkVHJpU3Rh
dGU7CiAgICAgcmV0dXJuIHRyaVN0YXRlKG1fdmFsdWUgPj0gb3RoZXItPmFzSW50NjQoKSk7CkBA
IC0yNDgsNiArMjYwLDkgQEAgVHJpU3RhdGUgQ29uc3Q2NFZhbHVlOjpncmVhdGVyRXF1YWxDb25z
dGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiAKIFRyaVN0YXRlIENvbnN0NjRWYWx1ZTo6
YWJvdmVDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiB7CisgICAgLy8gVUlOVDY0
X01JTiA+IHggaXMgYWx3YXlzIGZhbHNlLgorICAgIGlmIChzdGF0aWNfY2FzdDx1aW50NjRfdD4o
bV92YWx1ZSkgPT0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1pbigpKQorICAgICAg
ICByZXR1cm4gRmFsc2VUcmlTdGF0ZTsKICAgICBpZiAoIW90aGVyLT5oYXNJbnQ2NCgpKQogICAg
ICAgICByZXR1cm4gTWl4ZWRUcmlTdGF0ZTsKICAgICByZXR1cm4gdHJpU3RhdGUoc3RhdGljX2Nh
c3Q8dWludDY0X3Q+KG1fdmFsdWUpID4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG90aGVyLT5hc0lu
dDY0KCkpKTsKQEAgLTI1NSw2ICsyNzAsOSBAQCBUcmlTdGF0ZSBDb25zdDY0VmFsdWU6OmFib3Zl
Q29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAogCiBUcmlTdGF0ZSBDb25zdDY0VmFs
dWU6OmJlbG93Q29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAogeworICAgIC8vIFVJ
TlQ2NF9NQVggPCB4IGlzIGFsd2F5cyBmYWxzZS4KKyAgICBpZiAoc3RhdGljX2Nhc3Q8dWludDY0
X3Q+KG1fdmFsdWUpID09IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKSkKKyAg
ICAgICAgcmV0dXJuIEZhbHNlVHJpU3RhdGU7CiAgICAgaWYgKCFvdGhlci0+aGFzSW50NjQoKSkK
ICAgICAgICAgcmV0dXJuIE1peGVkVHJpU3RhdGU7CiAgICAgcmV0dXJuIHRyaVN0YXRlKHN0YXRp
Y19jYXN0PHVpbnQ2NF90PihtX3ZhbHVlKSA8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihvdGhlci0+
YXNJbnQ2NCgpKSk7CkBAIC0yNjIsNiArMjgwLDkgQEAgVHJpU3RhdGUgQ29uc3Q2NFZhbHVlOjpi
ZWxvd0NvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIAogVHJpU3RhdGUgQ29uc3Q2
NFZhbHVlOjphYm92ZUVxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAogewor
ICAgIC8vIFVJTlQ2NF9NQVggPj0geCBpcyBhbHdheXMgdHJ1ZS4KKyAgICBpZiAoc3RhdGljX2Nh
c3Q8dWludDY0X3Q+KG1fdmFsdWUpID09IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+Ojpt
YXgoKSkKKyAgICAgICAgcmV0dXJuIFRydWVUcmlTdGF0ZTsKICAgICBpZiAoIW90aGVyLT5oYXNJ
bnQ2NCgpKQogICAgICAgICByZXR1cm4gTWl4ZWRUcmlTdGF0ZTsKICAgICByZXR1cm4gdHJpU3Rh
dGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fdmFsdWUpID49IHN0YXRpY19jYXN0PHVpbnQ2NF90
PihvdGhlci0+YXNJbnQ2NCgpKSk7CkBAIC0yNjksNiArMjkwLDkgQEAgVHJpU3RhdGUgQ29uc3Q2
NFZhbHVlOjphYm92ZUVxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAogCiBU
cmlTdGF0ZSBDb25zdDY0VmFsdWU6OmJlbG93RXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3Ro
ZXIpIGNvbnN0CiB7CisgICAgLy8gVUlOVDY0X01JTiA8PSB4IGlzIGFsd2F5cyB0cnVlLgorICAg
IGlmIChzdGF0aWNfY2FzdDx1aW50NjRfdD4obV92YWx1ZSkgPT0gc3RkOjpudW1lcmljX2xpbWl0
czx1aW50NjRfdD46Om1pbigpKQorICAgICAgICByZXR1cm4gVHJ1ZVRyaVN0YXRlOwogICAgIGlm
ICghb3RoZXItPmhhc0ludDY0KCkpCiAgICAgICAgIHJldHVybiBNaXhlZFRyaVN0YXRlOwogICAg
IHJldHVybiB0cmlTdGF0ZShzdGF0aWNfY2FzdDx1aW50NjRfdD4obV92YWx1ZSkgPD0gc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KG90aGVyLT5hc0ludDY0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rl
c3RiMy5jcHAKaW5kZXggNWYyOGMyMTllMDU4NTQ2MDY0ZGQ3N2M3NDQ5NmY1NGYzNGYzMTU3Zi4u
ZTk0NTFlNDg2NTNjODg4YTEyZGNjNzQzNjFkOGU5YjgxOTFiNTA3MSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL3Rlc3RiMy5jcHAKQEAgLTI0Nyw2ICsyNDcsMTAgQEAgc3RhdGljIFZlY3RvcjxJbnQ2
NE9wZXJhbmQ+IGludDY0T3BlcmFuZHMoKQogICAgIG9wZXJhbmRzLmFwcGVuZCh7ICJpbnQ2NC1t
aW4iLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludDY0X3Q+OjptaW4oKSB9KTsKICAgICBvcGVyYW5k
cy5hcHBlbmQoeyAiaW50MzItbWF4Iiwgc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4
KCkgfSk7CiAgICAgb3BlcmFuZHMuYXBwZW5kKHsgImludDMyLW1pbiIsIHN0ZDo6bnVtZXJpY19s
aW1pdHM8aW50MzJfdD46Om1pbigpIH0pOworICAgIG9wZXJhbmRzLmFwcGVuZCh7ICJ1aW50NjQt
bWF4Iiwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46
Om1heCgpKSB9KTsKKyAgICBvcGVyYW5kcy5hcHBlbmQoeyAidWludDY0LW1pbiIsIHN0YXRpY19j
YXN0PGludDY0X3Q+KHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptaW4oKSkgfSk7Cisg
ICAgb3BlcmFuZHMuYXBwZW5kKHsgInVpbnQzMi1tYXgiLCBzdGF0aWNfY2FzdDxpbnQ2NF90Pihz
dGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkpIH0pOworICAgIG9wZXJhbmRzLmFw
cGVuZCh7ICJ1aW50MzItbWluIiwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oc3RkOjpudW1lcmljX2xp
bWl0czx1aW50MzJfdD46Om1pbigpKSB9KTsKIAogICAgIHJldHVybiBvcGVyYW5kczsKIH0KQEAg
LTI2MCw3ICsyNjQsOSBAQCBzdGF0aWMgVmVjdG9yPEludDMyT3BlcmFuZD4gaW50MzJPcGVyYW5k
cygpCiAgICAgICAgIHsgIjQyIiwgNDIgfSwKICAgICAgICAgeyAiLTQyIiwgLTQyIH0sCiAgICAg
ICAgIHsgImludDMyLW1heCIsIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpIH0s
Ci0gICAgICAgIHsgImludDMyLW1pbiIsIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1p
bigpIH0KKyAgICAgICAgeyAiaW50MzItbWluIiwgc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90
Pjo6bWluKCkgfSwKKyAgICAgICAgeyAidWludDMyLW1heCIsIHN0YXRpY19jYXN0PGludDMyX3Q+
KHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSkgfSwKKyAgICAgICAgeyAidWlu
dDMyLW1pbiIsIHN0YXRpY19jYXN0PGludDMyX3Q+KHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMy
X3Q+OjptaW4oKSkgfQogICAgIH0pOwogICAgIHJldHVybiBvcGVyYW5kczsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335536</attachid>
            <date>2018-03-11 09:37:54 -0700</date>
            <delta_ts>2018-03-11 10:06:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183543-20180312013753.patch</filename>
            <type>text/plain</type>
            <size>15448</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
MTg4ZjFiZmYwMThlODk1ZTcwYWQzZTQ3NWIzYjQxNGFlYjIxZDhlLi42ZGY1NjQwOGY1MDM1Yzdm
MjU0ZGM4MzI1OWFiMzIwOTI2OGQwMjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAxOC0wMy0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbQjNdIEFib3ZlL0JlbG93IHNob3VsZCBiZSBzdHJlbmd0aC1yZWR1
Y2VkIGZvciBjb21wYXJpc29uIHdpdGggMAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWJvdmUoMCwgeCkgYW5kIEJlbG93RXF1YWwoMCwgeCkgY2FuIGJl
IGNvbnZlcnRlZCB0byBjb25zdGFudHMgZmFsc2UgYW5kIHRydWUgcmVzcGVjdGl2ZWx5LgorICAg
ICAgICBUaGlzIGNhbiBiZSBzZWVuIGluIEFycmF5U2xpY2UoMCkgY2FzZTogYFNlbGVjdChBYm92
ZSgwLCBsZW5ndGgpLCBsZW5ndGgsIDApYCB0aGlzIHNob3VsZAorICAgICAgICBiZSBjb252ZXJ0
ZWQgdG8gYDBgLiBUaGlzIHBhdGNoIGFkZHMgc3VjaCBhIGZvbGRpbmcgdG8gY29tcGFyaXNvbnMu
CisKKyAgICAgICAgV2UgYWxzbyBmaXggQjNSZWR1Y2VTdHJlbmd0aCBpc3N1ZSBjcmVhdGluZyBh
biBvcnBoYW4gdmFsdWUuIFRoaXMgaXNzdWUgY2F1c2VzIEpTQyB0ZXN0IGZhaWx1cmUKKyAgICAg
ICAgd2l0aCB0aGlzIEIzQ29uc3QzMi82NFZhbHVlIGNoYW5nZS4gV2UgY2FyZWZ1bGx5IGNoYW5n
ZSB0aGUgb3Bjb2RlIG9mIG1fdmFsdWUgdG8gZml4IHRoaXMgaXNzdWUuCisKKyAgICAgICAgKiBi
My9CM0NvbnN0MzJWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkIzOjpDb25zdDMyVmFsdWU6Omxl
c3NUaGFuQ29uc3RhbnQgY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6Q29uc3QzMlZhbHVlOjpn
cmVhdGVyVGhhbkNvbnN0YW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkNvbnN0MzJWYWx1
ZTo6bGVzc0VxdWFsQ29uc3RhbnQgY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6Q29uc3QzMlZh
bHVlOjpncmVhdGVyRXF1YWxDb25zdGFudCBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpDb25z
dDMyVmFsdWU6OmFib3ZlQ29uc3RhbnQgY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6Q29uc3Qz
MlZhbHVlOjpiZWxvd0NvbnN0YW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkNvbnN0MzJW
YWx1ZTo6YWJvdmVFcXVhbENvbnN0YW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkNvbnN0
MzJWYWx1ZTo6YmVsb3dFcXVhbENvbnN0YW50IGNvbnN0KToKKyAgICAgICAgKiBiMy9CM0NvbnN0
NjRWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkIzOjpDb25zdDY0VmFsdWU6Omxlc3NUaGFuQ29u
c3RhbnQgY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6Q29uc3Q2NFZhbHVlOjpncmVhdGVyVGhh
bkNvbnN0YW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkNvbnN0NjRWYWx1ZTo6bGVzc0Vx
dWFsQ29uc3RhbnQgY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6Q29uc3Q2NFZhbHVlOjpncmVh
dGVyRXF1YWxDb25zdGFudCBjb25zdCk6CisgICAgICAgIChKU0M6OkIzOjpDb25zdDY0VmFsdWU6
OmFib3ZlQ29uc3RhbnQgY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6Q29uc3Q2NFZhbHVlOjpi
ZWxvd0NvbnN0YW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkNvbnN0NjRWYWx1ZTo6YWJv
dmVFcXVhbENvbnN0YW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OkNvbnN0NjRWYWx1ZTo6
YmVsb3dFcXVhbENvbnN0YW50IGNvbnN0KToKKyAgICAgICAgKiBiMy9CM1JlZHVjZVN0cmVuZ3Ro
LmNwcDoKKyAgICAgICAgKiBiMy90ZXN0YjMuY3BwOgorICAgICAgICAoSlNDOjpCMzo6aW50NjRP
cGVyYW5kcyk6CisgICAgICAgIChKU0M6OkIzOjppbnQzMk9wZXJhbmRzKToKKwogMjAxOC0wMy0x
MCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBbRlRM
XSBEcm9wIE5ld1JlZ2V4cCBmb3IgU3RyaW5nLnByb3RvdHlwZS5tYXRjaCB3aXRoIFJlZ0V4cCAr
IGdsb2JhbCBmbGFnCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25z
dDMyVmFsdWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3QzMlZhbHVlLmNw
cAppbmRleCA0OWE3NDUzYTQ5YTU5Yzg4ZjNjNmJiZmRhMjY2YWZiNjk4NWI3MzE3Li41MTJiZTg4
Yzk5ZDRiNTMwNWMwZTkyMzRjZTFhYTJmNzBmNmU2NjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDb25zdDMyVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0NvbnN0MzJWYWx1ZS5jcHAKQEAgLTIyMCw2ICsyMjAsOSBAQCBUcmlTdGF0ZSBD
b25zdDMyVmFsdWU6Om5vdEVxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAog
CiBUcmlTdGF0ZSBDb25zdDMyVmFsdWU6Omxlc3NUaGFuQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90
aGVyKSBjb25zdAogeworICAgIC8vIElOVDMyX01BWCA8IHggaXMgYWx3YXlzIGZhbHNlLgorICAg
IGlmIChzdGF0aWNfY2FzdDxpbnQzMl90PihtX3ZhbHVlKSA9PSBzdGQ6Om51bWVyaWNfbGltaXRz
PGludDMyX3Q+OjptYXgoKSkKKyAgICAgICAgcmV0dXJuIEZhbHNlVHJpU3RhdGU7CiAgICAgaWYg
KCFvdGhlci0+aGFzSW50MzIoKSkKICAgICAgICAgcmV0dXJuIE1peGVkVHJpU3RhdGU7CiAgICAg
cmV0dXJuIHRyaVN0YXRlKG1fdmFsdWUgPCBvdGhlci0+YXNJbnQzMigpKTsKQEAgLTIyNyw2ICsy
MzAsOSBAQCBUcmlTdGF0ZSBDb25zdDMyVmFsdWU6Omxlc3NUaGFuQ29uc3RhbnQoY29uc3QgVmFs
dWUqIG90aGVyKSBjb25zdAogCiBUcmlTdGF0ZSBDb25zdDMyVmFsdWU6OmdyZWF0ZXJUaGFuQ29u
c3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAogeworICAgIC8vIElOVDMyX01JTiA+IHgg
aXMgYWx3YXlzIGZhbHNlLgorICAgIGlmIChzdGF0aWNfY2FzdDxpbnQzMl90PihtX3ZhbHVlKSA9
PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptaW4oKSkKKyAgICAgICAgcmV0dXJuIEZh
bHNlVHJpU3RhdGU7CiAgICAgaWYgKCFvdGhlci0+aGFzSW50MzIoKSkKICAgICAgICAgcmV0dXJu
IE1peGVkVHJpU3RhdGU7CiAgICAgcmV0dXJuIHRyaVN0YXRlKG1fdmFsdWUgPiBvdGhlci0+YXNJ
bnQzMigpKTsKQEAgLTIzNCw2ICsyNDAsOSBAQCBUcmlTdGF0ZSBDb25zdDMyVmFsdWU6OmdyZWF0
ZXJUaGFuQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAogCiBUcmlTdGF0ZSBDb25z
dDMyVmFsdWU6Omxlc3NFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIHsK
KyAgICAvLyBJTlQzMl9NSU4gPD0geCBpcyBhbHdheXMgdHJ1ZS4KKyAgICBpZiAoc3RhdGljX2Nh
c3Q8aW50MzJfdD4obV92YWx1ZSkgPT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWlu
KCkpCisgICAgICAgIHJldHVybiBUcnVlVHJpU3RhdGU7CiAgICAgaWYgKCFvdGhlci0+aGFzSW50
MzIoKSkKICAgICAgICAgcmV0dXJuIE1peGVkVHJpU3RhdGU7CiAgICAgcmV0dXJuIHRyaVN0YXRl
KG1fdmFsdWUgPD0gb3RoZXItPmFzSW50MzIoKSk7CkBAIC0yNDEsNiArMjUwLDkgQEAgVHJpU3Rh
dGUgQ29uc3QzMlZhbHVlOjpsZXNzRXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNv
bnN0CiAKIFRyaVN0YXRlIENvbnN0MzJWYWx1ZTo6Z3JlYXRlckVxdWFsQ29uc3RhbnQoY29uc3Qg
VmFsdWUqIG90aGVyKSBjb25zdAogeworICAgIC8vIElOVDMyX01BWCA+PSB4IGlzIGFsd2F5cyB0
cnVlLgorICAgIGlmIChzdGF0aWNfY2FzdDxpbnQzMl90PihtX3ZhbHVlKSA9PSBzdGQ6Om51bWVy
aWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSkKKyAgICAgICAgcmV0dXJuIFRydWVUcmlTdGF0ZTsK
ICAgICBpZiAoIW90aGVyLT5oYXNJbnQzMigpKQogICAgICAgICByZXR1cm4gTWl4ZWRUcmlTdGF0
ZTsKICAgICByZXR1cm4gdHJpU3RhdGUobV92YWx1ZSA+PSBvdGhlci0+YXNJbnQzMigpKTsKQEAg
LTI0OCw2ICsyNjAsOSBAQCBUcmlTdGF0ZSBDb25zdDMyVmFsdWU6OmdyZWF0ZXJFcXVhbENvbnN0
YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIAogVHJpU3RhdGUgQ29uc3QzMlZhbHVlOjph
Ym92ZUNvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIHsKKyAgICAvLyBVSU5UMzJf
TUlOID4geCBpcyBhbHdheXMgZmFsc2UuCisgICAgaWYgKHN0YXRpY19jYXN0PHVpbnQzMl90Piht
X3ZhbHVlKSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWluKCkpCisgICAgICAg
IHJldHVybiBGYWxzZVRyaVN0YXRlOwogICAgIGlmICghb3RoZXItPmhhc0ludDMyKCkpCiAgICAg
ICAgIHJldHVybiBNaXhlZFRyaVN0YXRlOwogICAgIHJldHVybiB0cmlTdGF0ZShzdGF0aWNfY2Fz
dDx1aW50MzJfdD4obV92YWx1ZSkgPiBzdGF0aWNfY2FzdDx1aW50MzJfdD4ob3RoZXItPmFzSW50
MzIoKSkpOwpAQCAtMjU1LDYgKzI3MCw5IEBAIFRyaVN0YXRlIENvbnN0MzJWYWx1ZTo6YWJvdmVD
b25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiAKIFRyaVN0YXRlIENvbnN0MzJWYWx1
ZTo6YmVsb3dDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiB7CisgICAgLy8gVUlO
VDMyX01BWCA8IHggaXMgYWx3YXlzIGZhbHNlLgorICAgIGlmIChzdGF0aWNfY2FzdDx1aW50MzJf
dD4obV92YWx1ZSkgPT0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKQorICAg
ICAgICByZXR1cm4gRmFsc2VUcmlTdGF0ZTsKICAgICBpZiAoIW90aGVyLT5oYXNJbnQzMigpKQog
ICAgICAgICByZXR1cm4gTWl4ZWRUcmlTdGF0ZTsKICAgICByZXR1cm4gdHJpU3RhdGUoc3RhdGlj
X2Nhc3Q8dWludDMyX3Q+KG1fdmFsdWUpIDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG90aGVyLT5h
c0ludDMyKCkpKTsKQEAgLTI2Miw2ICsyODAsOSBAQCBUcmlTdGF0ZSBDb25zdDMyVmFsdWU6OmJl
bG93Q29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAogCiBUcmlTdGF0ZSBDb25zdDMy
VmFsdWU6OmFib3ZlRXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiB7Cisg
ICAgLy8gVUlOVDMyX01BWCA+PSB4IGlzIGFsd2F5cyB0cnVlLgorICAgIGlmIChzdGF0aWNfY2Fz
dDx1aW50MzJfdD4obV92YWx1ZSkgPT0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1h
eCgpKQorICAgICAgICByZXR1cm4gVHJ1ZVRyaVN0YXRlOwogICAgIGlmICghb3RoZXItPmhhc0lu
dDMyKCkpCiAgICAgICAgIHJldHVybiBNaXhlZFRyaVN0YXRlOwogICAgIHJldHVybiB0cmlTdGF0
ZShzdGF0aWNfY2FzdDx1aW50MzJfdD4obV92YWx1ZSkgPj0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KG90aGVyLT5hc0ludDMyKCkpKTsKQEAgLTI2OSw2ICsyOTAsOSBAQCBUcmlTdGF0ZSBDb25zdDMy
VmFsdWU6OmFib3ZlRXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiAKIFRy
aVN0YXRlIENvbnN0MzJWYWx1ZTo6YmVsb3dFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhl
cikgY29uc3QKIHsKKyAgICAvLyBVSU5UMzJfTUlOIDw9IHggaXMgYWx3YXlzIHRydWUuCisgICAg
aWYgKHN0YXRpY19jYXN0PHVpbnQzMl90PihtX3ZhbHVlKSA9PSBzdGQ6Om51bWVyaWNfbGltaXRz
PHVpbnQzMl90Pjo6bWluKCkpCisgICAgICAgIHJldHVybiBUcnVlVHJpU3RhdGU7CiAgICAgaWYg
KCFvdGhlci0+aGFzSW50MzIoKSkKICAgICAgICAgcmV0dXJuIE1peGVkVHJpU3RhdGU7CiAgICAg
cmV0dXJuIHRyaVN0YXRlKHN0YXRpY19jYXN0PHVpbnQzMl90PihtX3ZhbHVlKSA8PSBzdGF0aWNf
Y2FzdDx1aW50MzJfdD4ob3RoZXItPmFzSW50MzIoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQ29uc3Q2NFZhbHVlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0NvbnN0NjRWYWx1ZS5jcHAKaW5kZXggNGY3Yjg2YjJlOWQ0ZGU2MTU1ZDQzMzY1YTBm
ZTExMDRiOWI1ZDA1Yi4uNzNhNGNlY2M1M2U1YmY0OTRkYzdhNjg5ZGRlN2E0M2Q1ODczNzcxMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3Q2NFZhbHVlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdDY0VmFsdWUuY3BwCkBAIC0yMjAs
NiArMjIwLDkgQEAgVHJpU3RhdGUgQ29uc3Q2NFZhbHVlOjpub3RFcXVhbENvbnN0YW50KGNvbnN0
IFZhbHVlKiBvdGhlcikgY29uc3QKIAogVHJpU3RhdGUgQ29uc3Q2NFZhbHVlOjpsZXNzVGhhbkNv
bnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIHsKKyAgICAvLyBJTlQ2NF9NQVggPCB4
IGlzIGFsd2F5cyBmYWxzZS4KKyAgICBpZiAoc3RhdGljX2Nhc3Q8aW50NjRfdD4obV92YWx1ZSkg
PT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ2NF90Pjo6bWF4KCkpCisgICAgICAgIHJldHVybiBG
YWxzZVRyaVN0YXRlOwogICAgIGlmICghb3RoZXItPmhhc0ludDY0KCkpCiAgICAgICAgIHJldHVy
biBNaXhlZFRyaVN0YXRlOwogICAgIHJldHVybiB0cmlTdGF0ZShtX3ZhbHVlIDwgb3RoZXItPmFz
SW50NjQoKSk7CkBAIC0yMjcsNiArMjMwLDkgQEAgVHJpU3RhdGUgQ29uc3Q2NFZhbHVlOjpsZXNz
VGhhbkNvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIAogVHJpU3RhdGUgQ29uc3Q2
NFZhbHVlOjpncmVhdGVyVGhhbkNvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIHsK
KyAgICAvLyBJTlQ2NF9NSU4gPiB4IGlzIGFsd2F5cyBmYWxzZS4KKyAgICBpZiAoc3RhdGljX2Nh
c3Q8aW50NjRfdD4obV92YWx1ZSkgPT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ2NF90Pjo6bWlu
KCkpCisgICAgICAgIHJldHVybiBGYWxzZVRyaVN0YXRlOwogICAgIGlmICghb3RoZXItPmhhc0lu
dDY0KCkpCiAgICAgICAgIHJldHVybiBNaXhlZFRyaVN0YXRlOwogICAgIHJldHVybiB0cmlTdGF0
ZShtX3ZhbHVlID4gb3RoZXItPmFzSW50NjQoKSk7CkBAIC0yMzQsNiArMjQwLDkgQEAgVHJpU3Rh
dGUgQ29uc3Q2NFZhbHVlOjpncmVhdGVyVGhhbkNvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikg
Y29uc3QKIAogVHJpU3RhdGUgQ29uc3Q2NFZhbHVlOjpsZXNzRXF1YWxDb25zdGFudChjb25zdCBW
YWx1ZSogb3RoZXIpIGNvbnN0CiB7CisgICAgLy8gSU5UNjRfTUlOIDw9IHggaXMgYWx3YXlzIHRy
dWUuCisgICAgaWYgKHN0YXRpY19jYXN0PGludDY0X3Q+KG1fdmFsdWUpID09IHN0ZDo6bnVtZXJp
Y19saW1pdHM8aW50NjRfdD46Om1pbigpKQorICAgICAgICByZXR1cm4gVHJ1ZVRyaVN0YXRlOwog
ICAgIGlmICghb3RoZXItPmhhc0ludDY0KCkpCiAgICAgICAgIHJldHVybiBNaXhlZFRyaVN0YXRl
OwogICAgIHJldHVybiB0cmlTdGF0ZShtX3ZhbHVlIDw9IG90aGVyLT5hc0ludDY0KCkpOwpAQCAt
MjQxLDYgKzI1MCw5IEBAIFRyaVN0YXRlIENvbnN0NjRWYWx1ZTo6bGVzc0VxdWFsQ29uc3RhbnQo
Y29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAogCiBUcmlTdGF0ZSBDb25zdDY0VmFsdWU6OmdyZWF0
ZXJFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIHsKKyAgICAvLyBJTlQ2
NF9NQVggPj0geCBpcyBhbHdheXMgdHJ1ZS4KKyAgICBpZiAoc3RhdGljX2Nhc3Q8aW50NjRfdD4o
bV92YWx1ZSkgPT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ2NF90Pjo6bWF4KCkpCisgICAgICAg
IHJldHVybiBUcnVlVHJpU3RhdGU7CiAgICAgaWYgKCFvdGhlci0+aGFzSW50NjQoKSkKICAgICAg
ICAgcmV0dXJuIE1peGVkVHJpU3RhdGU7CiAgICAgcmV0dXJuIHRyaVN0YXRlKG1fdmFsdWUgPj0g
b3RoZXItPmFzSW50NjQoKSk7CkBAIC0yNDgsNiArMjYwLDkgQEAgVHJpU3RhdGUgQ29uc3Q2NFZh
bHVlOjpncmVhdGVyRXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiAKIFRy
aVN0YXRlIENvbnN0NjRWYWx1ZTo6YWJvdmVDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNv
bnN0CiB7CisgICAgLy8gVUlOVDY0X01JTiA+IHggaXMgYWx3YXlzIGZhbHNlLgorICAgIGlmIChz
dGF0aWNfY2FzdDx1aW50NjRfdD4obV92YWx1ZSkgPT0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50
NjRfdD46Om1pbigpKQorICAgICAgICByZXR1cm4gRmFsc2VUcmlTdGF0ZTsKICAgICBpZiAoIW90
aGVyLT5oYXNJbnQ2NCgpKQogICAgICAgICByZXR1cm4gTWl4ZWRUcmlTdGF0ZTsKICAgICByZXR1
cm4gdHJpU3RhdGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fdmFsdWUpID4gc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KG90aGVyLT5hc0ludDY0KCkpKTsKQEAgLTI1NSw2ICsyNzAsOSBAQCBUcmlTdGF0
ZSBDb25zdDY0VmFsdWU6OmFib3ZlQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAog
CiBUcmlTdGF0ZSBDb25zdDY0VmFsdWU6OmJlbG93Q29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVy
KSBjb25zdAogeworICAgIC8vIFVJTlQ2NF9NQVggPCB4IGlzIGFsd2F5cyBmYWxzZS4KKyAgICBp
ZiAoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fdmFsdWUpID09IHN0ZDo6bnVtZXJpY19saW1pdHM8
dWludDY0X3Q+OjptYXgoKSkKKyAgICAgICAgcmV0dXJuIEZhbHNlVHJpU3RhdGU7CiAgICAgaWYg
KCFvdGhlci0+aGFzSW50NjQoKSkKICAgICAgICAgcmV0dXJuIE1peGVkVHJpU3RhdGU7CiAgICAg
cmV0dXJuIHRyaVN0YXRlKHN0YXRpY19jYXN0PHVpbnQ2NF90PihtX3ZhbHVlKSA8IHN0YXRpY19j
YXN0PHVpbnQ2NF90PihvdGhlci0+YXNJbnQ2NCgpKSk7CkBAIC0yNjIsNiArMjgwLDkgQEAgVHJp
U3RhdGUgQ29uc3Q2NFZhbHVlOjpiZWxvd0NvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29u
c3QKIAogVHJpU3RhdGUgQ29uc3Q2NFZhbHVlOjphYm92ZUVxdWFsQ29uc3RhbnQoY29uc3QgVmFs
dWUqIG90aGVyKSBjb25zdAogeworICAgIC8vIFVJTlQ2NF9NQVggPj0geCBpcyBhbHdheXMgdHJ1
ZS4KKyAgICBpZiAoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fdmFsdWUpID09IHN0ZDo6bnVtZXJp
Y19saW1pdHM8dWludDY0X3Q+OjptYXgoKSkKKyAgICAgICAgcmV0dXJuIFRydWVUcmlTdGF0ZTsK
ICAgICBpZiAoIW90aGVyLT5oYXNJbnQ2NCgpKQogICAgICAgICByZXR1cm4gTWl4ZWRUcmlTdGF0
ZTsKICAgICByZXR1cm4gdHJpU3RhdGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fdmFsdWUpID49
IHN0YXRpY19jYXN0PHVpbnQ2NF90PihvdGhlci0+YXNJbnQ2NCgpKSk7CkBAIC0yNjksNiArMjkw
LDkgQEAgVHJpU3RhdGUgQ29uc3Q2NFZhbHVlOjphYm92ZUVxdWFsQ29uc3RhbnQoY29uc3QgVmFs
dWUqIG90aGVyKSBjb25zdAogCiBUcmlTdGF0ZSBDb25zdDY0VmFsdWU6OmJlbG93RXF1YWxDb25z
dGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiB7CisgICAgLy8gVUlOVDY0X01JTiA8PSB4
IGlzIGFsd2F5cyB0cnVlLgorICAgIGlmIChzdGF0aWNfY2FzdDx1aW50NjRfdD4obV92YWx1ZSkg
PT0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1pbigpKQorICAgICAgICByZXR1cm4g
VHJ1ZVRyaVN0YXRlOwogICAgIGlmICghb3RoZXItPmhhc0ludDY0KCkpCiAgICAgICAgIHJldHVy
biBNaXhlZFRyaVN0YXRlOwogICAgIHJldHVybiB0cmlTdGF0ZShzdGF0aWNfY2FzdDx1aW50NjRf
dD4obV92YWx1ZSkgPD0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG90aGVyLT5hc0ludDY0KCkpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAppbmRleCBh
YzcwZDIzZGRjNWQ5NWUzM2U5YTg5MzliM2ZjYzAyOTg0Y2U5MWQ4Li4yZjNhNWRhNTFkNjk3MjQ5
MzY1NTZiMGFkOGJhMjA0ZjRmZTNiYzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzUmVkdWNlU3RyZW5ndGguY3BwCkBAIC0xNjczLDQ2ICsxNjczLDQwIEBAIGNsYXNzIFJlZHVj
ZVN0cmVuZ3RoIHsKICAgICAgICAgY2FzZSBCZWxvdzoKICAgICAgICAgY2FzZSBBYm92ZUVxdWFs
OgogICAgICAgICBjYXNlIEJlbG93RXF1YWw6IHsKLSAgICAgICAgICAgIGF1dG8qIHZhbHVlID0g
bmV3Q29tcGFyaXNvblZhdWVJZk5lY2Vzc2FyeSgpOworICAgICAgICAgICAgaGFuZGxlQ29tcGFy
aXNvbkNvbW11dGF0aXZpdHkoKTsKKwogICAgICAgICAgICAgVHJpU3RhdGUgcmVzdWx0ID0gTWl4
ZWRUcmlTdGF0ZTsKLSAgICAgICAgICAgIHN3aXRjaCAodmFsdWUtPm9wY29kZSgpKSB7CisgICAg
ICAgICAgICBzd2l0Y2ggKG1fdmFsdWUtPm9wY29kZSgpKSB7CiAgICAgICAgICAgICBjYXNlIExl
c3NUaGFuOgotICAgICAgICAgICAgICAgIHJlc3VsdCA9IHZhbHVlLT5jaGlsZCgxKS0+Z3JlYXRl
clRoYW5Db25zdGFudCh2YWx1ZS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9
IG1fdmFsdWUtPmNoaWxkKDEpLT5ncmVhdGVyVGhhbkNvbnN0YW50KG1fdmFsdWUtPmNoaWxkKDAp
KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgR3JlYXRlclRoYW46
Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gdmFsdWUtPmNoaWxkKDEpLT5sZXNzVGhhbkNvbnN0
YW50KHZhbHVlLT5jaGlsZCgwKSk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV92YWx1ZS0+
Y2hpbGQoMSktPmxlc3NUaGFuQ29uc3RhbnQobV92YWx1ZS0+Y2hpbGQoMCkpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBMZXNzRXF1YWw6Ci0gICAgICAgICAgICAg
ICAgcmVzdWx0ID0gdmFsdWUtPmNoaWxkKDEpLT5ncmVhdGVyRXF1YWxDb25zdGFudCh2YWx1ZS0+
Y2hpbGQoMCkpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fdmFsdWUtPmNoaWxkKDEpLT5n
cmVhdGVyRXF1YWxDb25zdGFudChtX3ZhbHVlLT5jaGlsZCgwKSk7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICBjYXNlIEdyZWF0ZXJFcXVhbDoKLSAgICAgICAgICAgICAgICBy
ZXN1bHQgPSB2YWx1ZS0+Y2hpbGQoMSktPmxlc3NFcXVhbENvbnN0YW50KHZhbHVlLT5jaGlsZCgw
KSk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV92YWx1ZS0+Y2hpbGQoMSktPmxlc3NFcXVh
bENvbnN0YW50KG1fdmFsdWUtPmNoaWxkKDApKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIGNhc2UgQWJvdmU6Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gdmFsdWUtPmNo
aWxkKDEpLT5iZWxvd0NvbnN0YW50KHZhbHVlLT5jaGlsZCgwKSk7CisgICAgICAgICAgICAgICAg
cmVzdWx0ID0gbV92YWx1ZS0+Y2hpbGQoMSktPmJlbG93Q29uc3RhbnQobV92YWx1ZS0+Y2hpbGQo
MCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBCZWxvdzoKLSAg
ICAgICAgICAgICAgICByZXN1bHQgPSB2YWx1ZS0+Y2hpbGQoMSktPmFib3ZlQ29uc3RhbnQodmFs
dWUtPmNoaWxkKDApKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3ZhbHVlLT5jaGlsZCgx
KS0+YWJvdmVDb25zdGFudChtX3ZhbHVlLT5jaGlsZCgwKSk7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICBjYXNlIEFib3ZlRXF1YWw6Ci0gICAgICAgICAgICAgICAgcmVzdWx0
ID0gdmFsdWUtPmNoaWxkKDEpLT5iZWxvd0VxdWFsQ29uc3RhbnQodmFsdWUtPmNoaWxkKDApKTsK
KyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3ZhbHVlLT5jaGlsZCgxKS0+YmVsb3dFcXVhbENv
bnN0YW50KG1fdmFsdWUtPmNoaWxkKDApKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIGNhc2UgQmVsb3dFcXVhbDoKLSAgICAgICAgICAgICAgICByZXN1bHQgPSB2YWx1ZS0+
Y2hpbGQoMSktPmFib3ZlRXF1YWxDb25zdGFudCh2YWx1ZS0+Y2hpbGQoMCkpOworICAgICAgICAg
ICAgICAgIHJlc3VsdCA9IG1fdmFsdWUtPmNoaWxkKDEpLT5hYm92ZUVxdWFsQ29uc3RhbnQobV92
YWx1ZS0+Y2hpbGQoMCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAoYXV0
byogY29uc3RhbnQgPSBtX3Byb2MuYWRkQm9vbENvbnN0YW50KHZhbHVlLT5vcmlnaW4oKSwgcmVz
dWx0KSkgewotICAgICAgICAgICAgICAgIHJlcGxhY2VXaXRoTmV3VmFsdWUoY29uc3RhbnQpOwot
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBS
ZXBsYWNlIHdpdGggbmV3bHkgY3JlYXRlZCAidmFsdWUiLiBJdHMgb3Bjb2RlIGlzIGZsaXBwZWQg
YW5kIG9wZXJhbmRzIGFyZSBzd2FwcGVkIGZyb20gbV92YWx1ZS4KLSAgICAgICAgICAgIGlmICht
X3ZhbHVlICE9IHZhbHVlKQotICAgICAgICAgICAgICAgIHJlcGxhY2VXaXRoTmV3VmFsdWUodmFs
dWUpOworICAgICAgICAgICAgcmVwbGFjZVdpdGhOZXdWYWx1ZShtX3Byb2MuYWRkQm9vbENvbnN0
YW50KG1fdmFsdWUtPm9yaWdpbigpLCByZXN1bHQpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAKQEAgLTIxNjYsNyArMjE2MCw3IEBAIGNsYXNzIFJlZHVjZVN0cmVuZ3RoIHsKICAg
ICAgICAgfQogICAgIH0KIAotICAgIFZhbHVlKiBuZXdDb21wYXJpc29uVmF1ZUlmTmVjZXNzYXJ5
KCkKKyAgICB2b2lkIGhhbmRsZUNvbXBhcmlzb25Db21tdXRhdGl2aXR5KCkKICAgICB7CiAgICAg
ICAgIGF1dG8gZmxpcCA9IFtdIChPcGNvZGUgb3Bjb2RlKSB7CiAgICAgICAgICAgICBzd2l0Y2gg
KG9wY29kZSkgewpAQCAtMjE5Miw5ICsyMTg2LDExIEBAIGNsYXNzIFJlZHVjZVN0cmVuZ3RoIHsK
ICAgICAgICAgfTsKICAgICAgICAgaWYgKHNob3VsZFN3YXBCaW5hcnlPcGVyYW5kcyhtX3ZhbHVl
KSkgewogICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBt
X3Byb2MuYWRkPFZhbHVlPihmbGlwKG1fdmFsdWUtPm9wY29kZSgpKSwgbV92YWx1ZS0+b3JpZ2lu
KCksIG1fdmFsdWUtPmNoaWxkKDEpLCBtX3ZhbHVlLT5jaGlsZCgwKSk7CisgICAgICAgICAgICBz
dGQ6OnN3YXAobV92YWx1ZS0+Y2hpbGQoMCksIG1fdmFsdWUtPmNoaWxkKDEpKTsKKyAgICAgICAg
ICAgIC8vIERvIHRoaXMgcmVhbGx5IGNhcmVmdWxseS4gSGVyZSwgd2UgYXJlIGFsbG93ZWQgdG8g
Y29udmVydCBtX3ZhbHVlIHRvIHNvbWUgb3RoZXIgb25lcyAoYXMgd2UgY29udmVydCBpdCB0byBJ
ZGVudGl0eSkuCisgICAgICAgICAgICAvLyBBbmQgYWxsIHRoZSBjb21wYXJpc29uIG5vZGVzIHNo
b3VsZCBoYXZlIHRoZSBzYW1lIEMrKyBjbGFzc2VzLiBDaGFuZ2luZyBvcGNvZGUgaGVyZSBpcyBz
YWZlLgorICAgICAgICAgICAgbV92YWx1ZS0+c2V0T3Bjb2RlVW5zYWZlbHkoZmxpcChtX3ZhbHVl
LT5vcGNvZGUoKSkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBtX3ZhbHVlOwogICAgIH0K
IAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCByZWFsbHkgYmUgYSBmb3J3YXJkIGFuYWx5c2lz
LiBJbnN0ZWFkLCB3ZSB1c2VzIGEgYm91bmRlZC1zZWFyY2ggYmFja3dhcmRzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy90ZXN0YjMuY3BwCmluZGV4IDVmMjhjMjE5ZTA1ODU0NjA2NGRkNzdjNzQ0OTZmNTRm
MzRmMzE1N2YuLmU5NDUxZTQ4NjUzYzg4OGExMmRjYzc0MzYxZDhlOWI4MTkxYjUwNzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCkBAIC0yNDcsNiArMjQ3LDEwIEBAIHN0YXRpYyBW
ZWN0b3I8SW50NjRPcGVyYW5kPiBpbnQ2NE9wZXJhbmRzKCkKICAgICBvcGVyYW5kcy5hcHBlbmQo
eyAiaW50NjQtbWluIiwgc3RkOjpudW1lcmljX2xpbWl0czxpbnQ2NF90Pjo6bWluKCkgfSk7CiAg
ICAgb3BlcmFuZHMuYXBwZW5kKHsgImludDMyLW1heCIsIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50
MzJfdD46Om1heCgpIH0pOwogICAgIG9wZXJhbmRzLmFwcGVuZCh7ICJpbnQzMi1taW4iLCBzdGQ6
Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptaW4oKSB9KTsKKyAgICBvcGVyYW5kcy5hcHBlbmQo
eyAidWludDY0LW1heCIsIHN0YXRpY19jYXN0PGludDY0X3Q+KHN0ZDo6bnVtZXJpY19saW1pdHM8
dWludDY0X3Q+OjptYXgoKSkgfSk7CisgICAgb3BlcmFuZHMuYXBwZW5kKHsgInVpbnQ2NC1taW4i
LCBzdGF0aWNfY2FzdDxpbnQ2NF90PihzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWlu
KCkpIH0pOworICAgIG9wZXJhbmRzLmFwcGVuZCh7ICJ1aW50MzItbWF4Iiwgc3RhdGljX2Nhc3Q8
aW50NjRfdD4oc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKSB9KTsKKyAgICBv
cGVyYW5kcy5hcHBlbmQoeyAidWludDMyLW1pbiIsIHN0YXRpY19jYXN0PGludDY0X3Q+KHN0ZDo6
bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptaW4oKSkgfSk7CiAKICAgICByZXR1cm4gb3BlcmFu
ZHM7CiB9CkBAIC0yNjAsNyArMjY0LDkgQEAgc3RhdGljIFZlY3RvcjxJbnQzMk9wZXJhbmQ+IGlu
dDMyT3BlcmFuZHMoKQogICAgICAgICB7ICI0MiIsIDQyIH0sCiAgICAgICAgIHsgIi00MiIsIC00
MiB9LAogICAgICAgICB7ICJpbnQzMi1tYXgiLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+
OjptYXgoKSB9LAotICAgICAgICB7ICJpbnQzMi1taW4iLCBzdGQ6Om51bWVyaWNfbGltaXRzPGlu
dDMyX3Q+OjptaW4oKSB9CisgICAgICAgIHsgImludDMyLW1pbiIsIHN0ZDo6bnVtZXJpY19saW1p
dHM8aW50MzJfdD46Om1pbigpIH0sCisgICAgICAgIHsgInVpbnQzMi1tYXgiLCBzdGF0aWNfY2Fz
dDxpbnQzMl90PihzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkpIH0sCisgICAg
ICAgIHsgInVpbnQzMi1taW4iLCBzdGF0aWNfY2FzdDxpbnQzMl90PihzdGQ6Om51bWVyaWNfbGlt
aXRzPHVpbnQzMl90Pjo6bWluKCkpIH0KICAgICB9KTsKICAgICByZXR1cm4gb3BlcmFuZHM7CiB9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335537</attachid>
            <date>2018-03-11 10:06:27 -0700</date>
            <delta_ts>2018-03-11 10:17:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183543-20180312020626.patch</filename>
            <type>text/plain</type>
            <size>15937</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
MTg4ZjFiZmYwMThlODk1ZTcwYWQzZTQ3NWIzYjQxNGFlYjIxZDhlLi5hMmIxZWJkODg0YTRkYzA3
YjM3NjFmZWE3NDQ5MzhiYTEyYWM1MTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MiBAQAorMjAxOC0wMy0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbQjNdIEFib3ZlL0JlbG93IHNob3VsZCBiZSBzdHJlbmd0aC1yZWR1
Y2VkIGZvciBjb21wYXJpc29uIHdpdGggMAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWJvdmUoMCwgeCkgYW5kIEJlbG93RXF1YWwoMCwgeCkgY2FuIGJl
IGNvbnZlcnRlZCB0byBjb25zdGFudHMgZmFsc2UgYW5kIHRydWUgcmVzcGVjdGl2ZWx5LgorICAg
ICAgICBUaGlzIGNhbiBiZSBzZWVuIGluIEFycmF5U2xpY2UoMCkgY2FzZTogYFNlbGVjdChBYm92
ZSgwLCBsZW5ndGgpLCBsZW5ndGgsIDApYCB0aGlzIHNob3VsZAorICAgICAgICBiZSBjb252ZXJ0
ZWQgdG8gYDBgLiBUaGlzIHBhdGNoIGFkZHMgc3VjaCBhIGZvbGRpbmcgdG8gY29tcGFyaXNvbnMu
CisKKyAgICAgICAgV2UgYWxzbyBmaXggQjNSZWR1Y2VTdHJlbmd0aCBpc3N1ZSBjcmVhdGluZyBh
biBvcnBoYW4gdmFsdWUuIElmIGEgZmxpcHBlZCB2YWx1ZSBpcyBmb2xkZWQgdG8KKyAgICAgICAg
YSBjb25zdGFudCwgd2UgZG8gbm90IGluc2VydCBmbGlwcGVkIHZhbHVlIGFuZCBtYWtlIGl0IGFu
IG9ycGhhbi4gVGhpcyBpc3N1ZSBjYXVzZXMgSlNDIHRlc3QKKyAgICAgICAgZmFpbHVyZSB3aXRo
IHRoaXMgQjNDb25zdDMyLzY0VmFsdWUgY2hhbmdlLiBXaXRoIHRoaXMgcGF0Y2gsIHdlIGNyZWF0
ZSBhIGZsaXBwZWQgdmFsdWUgb25seQorICAgICAgICB3aGVuIHdlIGZhaWwgdG8gZm9sZCBpdCB0
byBhIGNvbnN0YW50LgorCisgICAgICAgICogYjMvQjNDb25zdDMyVmFsdWUuY3BwOgorICAgICAg
ICAoSlNDOjpCMzo6Q29uc3QzMlZhbHVlOjpsZXNzVGhhbkNvbnN0YW50IGNvbnN0KToKKyAgICAg
ICAgKEpTQzo6QjM6OkNvbnN0MzJWYWx1ZTo6Z3JlYXRlclRoYW5Db25zdGFudCBjb25zdCk6Cisg
ICAgICAgIChKU0M6OkIzOjpDb25zdDMyVmFsdWU6Omxlc3NFcXVhbENvbnN0YW50IGNvbnN0KToK
KyAgICAgICAgKEpTQzo6QjM6OkNvbnN0MzJWYWx1ZTo6Z3JlYXRlckVxdWFsQ29uc3RhbnQgY29u
c3QpOgorICAgICAgICAoSlNDOjpCMzo6Q29uc3QzMlZhbHVlOjphYm92ZUNvbnN0YW50IGNvbnN0
KToKKyAgICAgICAgKEpTQzo6QjM6OkNvbnN0MzJWYWx1ZTo6YmVsb3dDb25zdGFudCBjb25zdCk6
CisgICAgICAgIChKU0M6OkIzOjpDb25zdDMyVmFsdWU6OmFib3ZlRXF1YWxDb25zdGFudCBjb25z
dCk6CisgICAgICAgIChKU0M6OkIzOjpDb25zdDMyVmFsdWU6OmJlbG93RXF1YWxDb25zdGFudCBj
b25zdCk6CisgICAgICAgICogYjMvQjNDb25zdDY0VmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpC
Mzo6Q29uc3Q2NFZhbHVlOjpsZXNzVGhhbkNvbnN0YW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6
QjM6OkNvbnN0NjRWYWx1ZTo6Z3JlYXRlclRoYW5Db25zdGFudCBjb25zdCk6CisgICAgICAgIChK
U0M6OkIzOjpDb25zdDY0VmFsdWU6Omxlc3NFcXVhbENvbnN0YW50IGNvbnN0KToKKyAgICAgICAg
KEpTQzo6QjM6OkNvbnN0NjRWYWx1ZTo6Z3JlYXRlckVxdWFsQ29uc3RhbnQgY29uc3QpOgorICAg
ICAgICAoSlNDOjpCMzo6Q29uc3Q2NFZhbHVlOjphYm92ZUNvbnN0YW50IGNvbnN0KToKKyAgICAg
ICAgKEpTQzo6QjM6OkNvbnN0NjRWYWx1ZTo6YmVsb3dDb25zdGFudCBjb25zdCk6CisgICAgICAg
IChKU0M6OkIzOjpDb25zdDY0VmFsdWU6OmFib3ZlRXF1YWxDb25zdGFudCBjb25zdCk6CisgICAg
ICAgIChKU0M6OkIzOjpDb25zdDY0VmFsdWU6OmJlbG93RXF1YWxDb25zdGFudCBjb25zdCk6Cisg
ICAgICAgICogYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHA6CisgICAgICAgICogYjMvdGVzdGIzLmNw
cDoKKyAgICAgICAgKEpTQzo6QjM6OmludDY0T3BlcmFuZHMpOgorICAgICAgICAoSlNDOjpCMzo6
aW50MzJPcGVyYW5kcyk6CisKIDIwMTgtMDMtMTAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRl
YUBnbWFpbC5jb20+CiAKICAgICAgICAgW0ZUTF0gRHJvcCBOZXdSZWdleHAgZm9yIFN0cmluZy5w
cm90b3R5cGUubWF0Y2ggd2l0aCBSZWdFeHAgKyBnbG9iYWwgZmxhZwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3QzMlZhbHVlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0NvbnN0MzJWYWx1ZS5jcHAKaW5kZXggNDlhNzQ1M2E0OWE1OWM4OGYzYzZi
YmZkYTI2NmFmYjY5ODViNzMxNy4uNTEyYmU4OGM5OWQ0YjUzMDVjMGU5MjM0Y2UxYWEyZjcwZjZl
NjYxNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3QzMlZhbHVl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdDMyVmFsdWUuY3BwCkBA
IC0yMjAsNiArMjIwLDkgQEAgVHJpU3RhdGUgQ29uc3QzMlZhbHVlOjpub3RFcXVhbENvbnN0YW50
KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIAogVHJpU3RhdGUgQ29uc3QzMlZhbHVlOjpsZXNz
VGhhbkNvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIHsKKyAgICAvLyBJTlQzMl9N
QVggPCB4IGlzIGFsd2F5cyBmYWxzZS4KKyAgICBpZiAoc3RhdGljX2Nhc3Q8aW50MzJfdD4obV92
YWx1ZSkgPT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpCisgICAgICAgIHJl
dHVybiBGYWxzZVRyaVN0YXRlOwogICAgIGlmICghb3RoZXItPmhhc0ludDMyKCkpCiAgICAgICAg
IHJldHVybiBNaXhlZFRyaVN0YXRlOwogICAgIHJldHVybiB0cmlTdGF0ZShtX3ZhbHVlIDwgb3Ro
ZXItPmFzSW50MzIoKSk7CkBAIC0yMjcsNiArMjMwLDkgQEAgVHJpU3RhdGUgQ29uc3QzMlZhbHVl
OjpsZXNzVGhhbkNvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIAogVHJpU3RhdGUg
Q29uc3QzMlZhbHVlOjpncmVhdGVyVGhhbkNvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29u
c3QKIHsKKyAgICAvLyBJTlQzMl9NSU4gPiB4IGlzIGFsd2F5cyBmYWxzZS4KKyAgICBpZiAoc3Rh
dGljX2Nhc3Q8aW50MzJfdD4obV92YWx1ZSkgPT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90
Pjo6bWluKCkpCisgICAgICAgIHJldHVybiBGYWxzZVRyaVN0YXRlOwogICAgIGlmICghb3RoZXIt
Pmhhc0ludDMyKCkpCiAgICAgICAgIHJldHVybiBNaXhlZFRyaVN0YXRlOwogICAgIHJldHVybiB0
cmlTdGF0ZShtX3ZhbHVlID4gb3RoZXItPmFzSW50MzIoKSk7CkBAIC0yMzQsNiArMjQwLDkgQEAg
VHJpU3RhdGUgQ29uc3QzMlZhbHVlOjpncmVhdGVyVGhhbkNvbnN0YW50KGNvbnN0IFZhbHVlKiBv
dGhlcikgY29uc3QKIAogVHJpU3RhdGUgQ29uc3QzMlZhbHVlOjpsZXNzRXF1YWxDb25zdGFudChj
b25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiB7CisgICAgLy8gSU5UMzJfTUlOIDw9IHggaXMgYWx3
YXlzIHRydWUuCisgICAgaWYgKHN0YXRpY19jYXN0PGludDMyX3Q+KG1fdmFsdWUpID09IHN0ZDo6
bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1pbigpKQorICAgICAgICByZXR1cm4gVHJ1ZVRyaVN0
YXRlOwogICAgIGlmICghb3RoZXItPmhhc0ludDMyKCkpCiAgICAgICAgIHJldHVybiBNaXhlZFRy
aVN0YXRlOwogICAgIHJldHVybiB0cmlTdGF0ZShtX3ZhbHVlIDw9IG90aGVyLT5hc0ludDMyKCkp
OwpAQCAtMjQxLDYgKzI1MCw5IEBAIFRyaVN0YXRlIENvbnN0MzJWYWx1ZTo6bGVzc0VxdWFsQ29u
c3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAogCiBUcmlTdGF0ZSBDb25zdDMyVmFsdWU6
OmdyZWF0ZXJFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIHsKKyAgICAv
LyBJTlQzMl9NQVggPj0geCBpcyBhbHdheXMgdHJ1ZS4KKyAgICBpZiAoc3RhdGljX2Nhc3Q8aW50
MzJfdD4obV92YWx1ZSkgPT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpCisg
ICAgICAgIHJldHVybiBUcnVlVHJpU3RhdGU7CiAgICAgaWYgKCFvdGhlci0+aGFzSW50MzIoKSkK
ICAgICAgICAgcmV0dXJuIE1peGVkVHJpU3RhdGU7CiAgICAgcmV0dXJuIHRyaVN0YXRlKG1fdmFs
dWUgPj0gb3RoZXItPmFzSW50MzIoKSk7CkBAIC0yNDgsNiArMjYwLDkgQEAgVHJpU3RhdGUgQ29u
c3QzMlZhbHVlOjpncmVhdGVyRXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0
CiAKIFRyaVN0YXRlIENvbnN0MzJWYWx1ZTo6YWJvdmVDb25zdGFudChjb25zdCBWYWx1ZSogb3Ro
ZXIpIGNvbnN0CiB7CisgICAgLy8gVUlOVDMyX01JTiA+IHggaXMgYWx3YXlzIGZhbHNlLgorICAg
IGlmIChzdGF0aWNfY2FzdDx1aW50MzJfdD4obV92YWx1ZSkgPT0gc3RkOjpudW1lcmljX2xpbWl0
czx1aW50MzJfdD46Om1pbigpKQorICAgICAgICByZXR1cm4gRmFsc2VUcmlTdGF0ZTsKICAgICBp
ZiAoIW90aGVyLT5oYXNJbnQzMigpKQogICAgICAgICByZXR1cm4gTWl4ZWRUcmlTdGF0ZTsKICAg
ICByZXR1cm4gdHJpU3RhdGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1fdmFsdWUpID4gc3RhdGlj
X2Nhc3Q8dWludDMyX3Q+KG90aGVyLT5hc0ludDMyKCkpKTsKQEAgLTI1NSw2ICsyNzAsOSBAQCBU
cmlTdGF0ZSBDb25zdDMyVmFsdWU6OmFib3ZlQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBj
b25zdAogCiBUcmlTdGF0ZSBDb25zdDMyVmFsdWU6OmJlbG93Q29uc3RhbnQoY29uc3QgVmFsdWUq
IG90aGVyKSBjb25zdAogeworICAgIC8vIFVJTlQzMl9NQVggPCB4IGlzIGFsd2F5cyBmYWxzZS4K
KyAgICBpZiAoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1fdmFsdWUpID09IHN0ZDo6bnVtZXJpY19s
aW1pdHM8dWludDMyX3Q+OjptYXgoKSkKKyAgICAgICAgcmV0dXJuIEZhbHNlVHJpU3RhdGU7CiAg
ICAgaWYgKCFvdGhlci0+aGFzSW50MzIoKSkKICAgICAgICAgcmV0dXJuIE1peGVkVHJpU3RhdGU7
CiAgICAgcmV0dXJuIHRyaVN0YXRlKHN0YXRpY19jYXN0PHVpbnQzMl90PihtX3ZhbHVlKSA8IHN0
YXRpY19jYXN0PHVpbnQzMl90PihvdGhlci0+YXNJbnQzMigpKSk7CkBAIC0yNjIsNiArMjgwLDkg
QEAgVHJpU3RhdGUgQ29uc3QzMlZhbHVlOjpiZWxvd0NvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhl
cikgY29uc3QKIAogVHJpU3RhdGUgQ29uc3QzMlZhbHVlOjphYm92ZUVxdWFsQ29uc3RhbnQoY29u
c3QgVmFsdWUqIG90aGVyKSBjb25zdAogeworICAgIC8vIFVJTlQzMl9NQVggPj0geCBpcyBhbHdh
eXMgdHJ1ZS4KKyAgICBpZiAoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1fdmFsdWUpID09IHN0ZDo6
bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSkKKyAgICAgICAgcmV0dXJuIFRydWVUcmlT
dGF0ZTsKICAgICBpZiAoIW90aGVyLT5oYXNJbnQzMigpKQogICAgICAgICByZXR1cm4gTWl4ZWRU
cmlTdGF0ZTsKICAgICByZXR1cm4gdHJpU3RhdGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1fdmFs
dWUpID49IHN0YXRpY19jYXN0PHVpbnQzMl90PihvdGhlci0+YXNJbnQzMigpKSk7CkBAIC0yNjks
NiArMjkwLDkgQEAgVHJpU3RhdGUgQ29uc3QzMlZhbHVlOjphYm92ZUVxdWFsQ29uc3RhbnQoY29u
c3QgVmFsdWUqIG90aGVyKSBjb25zdAogCiBUcmlTdGF0ZSBDb25zdDMyVmFsdWU6OmJlbG93RXF1
YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiB7CisgICAgLy8gVUlOVDMyX01J
TiA8PSB4IGlzIGFsd2F5cyB0cnVlLgorICAgIGlmIChzdGF0aWNfY2FzdDx1aW50MzJfdD4obV92
YWx1ZSkgPT0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1pbigpKQorICAgICAgICBy
ZXR1cm4gVHJ1ZVRyaVN0YXRlOwogICAgIGlmICghb3RoZXItPmhhc0ludDMyKCkpCiAgICAgICAg
IHJldHVybiBNaXhlZFRyaVN0YXRlOwogICAgIHJldHVybiB0cmlTdGF0ZShzdGF0aWNfY2FzdDx1
aW50MzJfdD4obV92YWx1ZSkgPD0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG90aGVyLT5hc0ludDMy
KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0NjRWYWx1
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdDY0VmFsdWUuY3BwCmluZGV4
IDRmN2I4NmIyZTlkNGRlNjE1NWQ0MzM2NWEwZmUxMTA0YjliNWQwNWIuLjczYTRjZWNjNTNlNWJm
NDk0ZGM3YTY4OWRkZTdhNDNkNTg3Mzc3MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0NvbnN0NjRWYWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzQ29uc3Q2NFZhbHVlLmNwcApAQCAtMjIwLDYgKzIyMCw5IEBAIFRyaVN0YXRlIENvbnN0NjRW
YWx1ZTo6bm90RXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiAKIFRyaVN0
YXRlIENvbnN0NjRWYWx1ZTo6bGVzc1RoYW5Db25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNv
bnN0CiB7CisgICAgLy8gSU5UNjRfTUFYIDwgeCBpcyBhbHdheXMgZmFsc2UuCisgICAgaWYgKHN0
YXRpY19jYXN0PGludDY0X3Q+KG1fdmFsdWUpID09IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50NjRf
dD46Om1heCgpKQorICAgICAgICByZXR1cm4gRmFsc2VUcmlTdGF0ZTsKICAgICBpZiAoIW90aGVy
LT5oYXNJbnQ2NCgpKQogICAgICAgICByZXR1cm4gTWl4ZWRUcmlTdGF0ZTsKICAgICByZXR1cm4g
dHJpU3RhdGUobV92YWx1ZSA8IG90aGVyLT5hc0ludDY0KCkpOwpAQCAtMjI3LDYgKzIzMCw5IEBA
IFRyaVN0YXRlIENvbnN0NjRWYWx1ZTo6bGVzc1RoYW5Db25zdGFudChjb25zdCBWYWx1ZSogb3Ro
ZXIpIGNvbnN0CiAKIFRyaVN0YXRlIENvbnN0NjRWYWx1ZTo6Z3JlYXRlclRoYW5Db25zdGFudChj
b25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiB7CisgICAgLy8gSU5UNjRfTUlOID4geCBpcyBhbHdh
eXMgZmFsc2UuCisgICAgaWYgKHN0YXRpY19jYXN0PGludDY0X3Q+KG1fdmFsdWUpID09IHN0ZDo6
bnVtZXJpY19saW1pdHM8aW50NjRfdD46Om1pbigpKQorICAgICAgICByZXR1cm4gRmFsc2VUcmlT
dGF0ZTsKICAgICBpZiAoIW90aGVyLT5oYXNJbnQ2NCgpKQogICAgICAgICByZXR1cm4gTWl4ZWRU
cmlTdGF0ZTsKICAgICByZXR1cm4gdHJpU3RhdGUobV92YWx1ZSA+IG90aGVyLT5hc0ludDY0KCkp
OwpAQCAtMjM0LDYgKzI0MCw5IEBAIFRyaVN0YXRlIENvbnN0NjRWYWx1ZTo6Z3JlYXRlclRoYW5D
b25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiAKIFRyaVN0YXRlIENvbnN0NjRWYWx1
ZTo6bGVzc0VxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAogeworICAgIC8v
IElOVDY0X01JTiA8PSB4IGlzIGFsd2F5cyB0cnVlLgorICAgIGlmIChzdGF0aWNfY2FzdDxpbnQ2
NF90PihtX3ZhbHVlKSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludDY0X3Q+OjptaW4oKSkKKyAg
ICAgICAgcmV0dXJuIFRydWVUcmlTdGF0ZTsKICAgICBpZiAoIW90aGVyLT5oYXNJbnQ2NCgpKQog
ICAgICAgICByZXR1cm4gTWl4ZWRUcmlTdGF0ZTsKICAgICByZXR1cm4gdHJpU3RhdGUobV92YWx1
ZSA8PSBvdGhlci0+YXNJbnQ2NCgpKTsKQEAgLTI0MSw2ICsyNTAsOSBAQCBUcmlTdGF0ZSBDb25z
dDY0VmFsdWU6Omxlc3NFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIAog
VHJpU3RhdGUgQ29uc3Q2NFZhbHVlOjpncmVhdGVyRXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSog
b3RoZXIpIGNvbnN0CiB7CisgICAgLy8gSU5UNjRfTUFYID49IHggaXMgYWx3YXlzIHRydWUuCisg
ICAgaWYgKHN0YXRpY19jYXN0PGludDY0X3Q+KG1fdmFsdWUpID09IHN0ZDo6bnVtZXJpY19saW1p
dHM8aW50NjRfdD46Om1heCgpKQorICAgICAgICByZXR1cm4gVHJ1ZVRyaVN0YXRlOwogICAgIGlm
ICghb3RoZXItPmhhc0ludDY0KCkpCiAgICAgICAgIHJldHVybiBNaXhlZFRyaVN0YXRlOwogICAg
IHJldHVybiB0cmlTdGF0ZShtX3ZhbHVlID49IG90aGVyLT5hc0ludDY0KCkpOwpAQCAtMjQ4LDYg
KzI2MCw5IEBAIFRyaVN0YXRlIENvbnN0NjRWYWx1ZTo6Z3JlYXRlckVxdWFsQ29uc3RhbnQoY29u
c3QgVmFsdWUqIG90aGVyKSBjb25zdAogCiBUcmlTdGF0ZSBDb25zdDY0VmFsdWU6OmFib3ZlQ29u
c3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAogeworICAgIC8vIFVJTlQ2NF9NSU4gPiB4
IGlzIGFsd2F5cyBmYWxzZS4KKyAgICBpZiAoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fdmFsdWUp
ID09IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptaW4oKSkKKyAgICAgICAgcmV0dXJu
IEZhbHNlVHJpU3RhdGU7CiAgICAgaWYgKCFvdGhlci0+aGFzSW50NjQoKSkKICAgICAgICAgcmV0
dXJuIE1peGVkVHJpU3RhdGU7CiAgICAgcmV0dXJuIHRyaVN0YXRlKHN0YXRpY19jYXN0PHVpbnQ2
NF90PihtX3ZhbHVlKSA+IHN0YXRpY19jYXN0PHVpbnQ2NF90PihvdGhlci0+YXNJbnQ2NCgpKSk7
CkBAIC0yNTUsNiArMjcwLDkgQEAgVHJpU3RhdGUgQ29uc3Q2NFZhbHVlOjphYm92ZUNvbnN0YW50
KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIAogVHJpU3RhdGUgQ29uc3Q2NFZhbHVlOjpiZWxv
d0NvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIHsKKyAgICAvLyBVSU5UNjRfTUFY
IDwgeCBpcyBhbHdheXMgZmFsc2UuCisgICAgaWYgKHN0YXRpY19jYXN0PHVpbnQ2NF90PihtX3Zh
bHVlKSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCkpCisgICAgICAgIHJl
dHVybiBGYWxzZVRyaVN0YXRlOwogICAgIGlmICghb3RoZXItPmhhc0ludDY0KCkpCiAgICAgICAg
IHJldHVybiBNaXhlZFRyaVN0YXRlOwogICAgIHJldHVybiB0cmlTdGF0ZShzdGF0aWNfY2FzdDx1
aW50NjRfdD4obV92YWx1ZSkgPCBzdGF0aWNfY2FzdDx1aW50NjRfdD4ob3RoZXItPmFzSW50NjQo
KSkpOwpAQCAtMjYyLDYgKzI4MCw5IEBAIFRyaVN0YXRlIENvbnN0NjRWYWx1ZTo6YmVsb3dDb25z
dGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiAKIFRyaVN0YXRlIENvbnN0NjRWYWx1ZTo6
YWJvdmVFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIHsKKyAgICAvLyBV
SU5UNjRfTUFYID49IHggaXMgYWx3YXlzIHRydWUuCisgICAgaWYgKHN0YXRpY19jYXN0PHVpbnQ2
NF90PihtX3ZhbHVlKSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCkpCisg
ICAgICAgIHJldHVybiBUcnVlVHJpU3RhdGU7CiAgICAgaWYgKCFvdGhlci0+aGFzSW50NjQoKSkK
ICAgICAgICAgcmV0dXJuIE1peGVkVHJpU3RhdGU7CiAgICAgcmV0dXJuIHRyaVN0YXRlKHN0YXRp
Y19jYXN0PHVpbnQ2NF90PihtX3ZhbHVlKSA+PSBzdGF0aWNfY2FzdDx1aW50NjRfdD4ob3RoZXIt
PmFzSW50NjQoKSkpOwpAQCAtMjY5LDYgKzI5MCw5IEBAIFRyaVN0YXRlIENvbnN0NjRWYWx1ZTo6
YWJvdmVFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIAogVHJpU3RhdGUg
Q29uc3Q2NFZhbHVlOjpiZWxvd0VxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25z
dAogeworICAgIC8vIFVJTlQ2NF9NSU4gPD0geCBpcyBhbHdheXMgdHJ1ZS4KKyAgICBpZiAoc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KG1fdmFsdWUpID09IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0
X3Q+OjptaW4oKSkKKyAgICAgICAgcmV0dXJuIFRydWVUcmlTdGF0ZTsKICAgICBpZiAoIW90aGVy
LT5oYXNJbnQ2NCgpKQogICAgICAgICByZXR1cm4gTWl4ZWRUcmlTdGF0ZTsKICAgICByZXR1cm4g
dHJpU3RhdGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fdmFsdWUpIDw9IHN0YXRpY19jYXN0PHVp
bnQ2NF90PihvdGhlci0+YXNJbnQ2NCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNSZWR1Y2VTdHJlbmd0aC5jcHAKaW5kZXggYWM3MGQyM2RkYzVkOTVlMzNlOWE4OTM5YjNmY2Mw
Mjk4NGNlOTFkOC4uMjIwZTNmMTkzOWM4ZDk0MDgyZGNhZjUzNWMzOGVjNWQ1YzUzZDczYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcApAQCAtMTY3
Myw0NiArMTY3Myw0NiBAQCBjbGFzcyBSZWR1Y2VTdHJlbmd0aCB7CiAgICAgICAgIGNhc2UgQmVs
b3c6CiAgICAgICAgIGNhc2UgQWJvdmVFcXVhbDoKICAgICAgICAgY2FzZSBCZWxvd0VxdWFsOiB7
Ci0gICAgICAgICAgICBhdXRvKiB2YWx1ZSA9IG5ld0NvbXBhcmlzb25WYXVlSWZOZWNlc3Nhcnko
KTsKKyAgICAgICAgICAgIENhbm9uaWNhbGl6ZWRDb21wYXJpc29uIGNvbXBhcmlzb24gPSBjYW5v
bmljYWxpemVDb21wYXJpc29uKG1fdmFsdWUpOwogICAgICAgICAgICAgVHJpU3RhdGUgcmVzdWx0
ID0gTWl4ZWRUcmlTdGF0ZTsKLSAgICAgICAgICAgIHN3aXRjaCAodmFsdWUtPm9wY29kZSgpKSB7
CisgICAgICAgICAgICBzd2l0Y2ggKGNvbXBhcmlzb24ub3Bjb2RlKSB7CiAgICAgICAgICAgICBj
YXNlIExlc3NUaGFuOgotICAgICAgICAgICAgICAgIHJlc3VsdCA9IHZhbHVlLT5jaGlsZCgxKS0+
Z3JlYXRlclRoYW5Db25zdGFudCh2YWx1ZS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgICAgIHJl
c3VsdCA9IGNvbXBhcmlzb24ub3BlcmFuZHNbMV0tPmdyZWF0ZXJUaGFuQ29uc3RhbnQoY29tcGFy
aXNvbi5vcGVyYW5kc1swXSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBj
YXNlIEdyZWF0ZXJUaGFuOgotICAgICAgICAgICAgICAgIHJlc3VsdCA9IHZhbHVlLT5jaGlsZCgx
KS0+bGVzc1RoYW5Db25zdGFudCh2YWx1ZS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgICAgIHJl
c3VsdCA9IGNvbXBhcmlzb24ub3BlcmFuZHNbMV0tPmxlc3NUaGFuQ29uc3RhbnQoY29tcGFyaXNv
bi5vcGVyYW5kc1swXSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNl
IExlc3NFcXVhbDoKLSAgICAgICAgICAgICAgICByZXN1bHQgPSB2YWx1ZS0+Y2hpbGQoMSktPmdy
ZWF0ZXJFcXVhbENvbnN0YW50KHZhbHVlLT5jaGlsZCgwKSk7CisgICAgICAgICAgICAgICAgcmVz
dWx0ID0gY29tcGFyaXNvbi5vcGVyYW5kc1sxXS0+Z3JlYXRlckVxdWFsQ29uc3RhbnQoY29tcGFy
aXNvbi5vcGVyYW5kc1swXSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBj
YXNlIEdyZWF0ZXJFcXVhbDoKLSAgICAgICAgICAgICAgICByZXN1bHQgPSB2YWx1ZS0+Y2hpbGQo
MSktPmxlc3NFcXVhbENvbnN0YW50KHZhbHVlLT5jaGlsZCgwKSk7CisgICAgICAgICAgICAgICAg
cmVzdWx0ID0gY29tcGFyaXNvbi5vcGVyYW5kc1sxXS0+bGVzc0VxdWFsQ29uc3RhbnQoY29tcGFy
aXNvbi5vcGVyYW5kc1swXSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBj
YXNlIEFib3ZlOgotICAgICAgICAgICAgICAgIHJlc3VsdCA9IHZhbHVlLT5jaGlsZCgxKS0+YmVs
b3dDb25zdGFudCh2YWx1ZS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNv
bXBhcmlzb24ub3BlcmFuZHNbMV0tPmJlbG93Q29uc3RhbnQoY29tcGFyaXNvbi5vcGVyYW5kc1sw
XSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEJlbG93OgotICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IHZhbHVlLT5jaGlsZCgxKS0+YWJvdmVDb25zdGFudCh2YWx1
ZS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNvbXBhcmlzb24ub3BlcmFu
ZHNbMV0tPmFib3ZlQ29uc3RhbnQoY29tcGFyaXNvbi5vcGVyYW5kc1swXSk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEFib3ZlRXF1YWw6Ci0gICAgICAgICAgICAg
ICAgcmVzdWx0ID0gdmFsdWUtPmNoaWxkKDEpLT5iZWxvd0VxdWFsQ29uc3RhbnQodmFsdWUtPmNo
aWxkKDApKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBjb21wYXJpc29uLm9wZXJhbmRzWzFd
LT5iZWxvd0VxdWFsQ29uc3RhbnQoY29tcGFyaXNvbi5vcGVyYW5kc1swXSk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEJlbG93RXF1YWw6Ci0gICAgICAgICAgICAg
ICAgcmVzdWx0ID0gdmFsdWUtPmNoaWxkKDEpLT5hYm92ZUVxdWFsQ29uc3RhbnQodmFsdWUtPmNo
aWxkKDApKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBjb21wYXJpc29uLm9wZXJhbmRzWzFd
LT5hYm92ZUVxdWFsQ29uc3RhbnQoY29tcGFyaXNvbi5vcGVyYW5kc1swXSk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgIGlmIChhdXRvKiBjb25zdGFudCA9IG1fcHJvYy5hZGRCb29s
Q29uc3RhbnQodmFsdWUtPm9yaWdpbigpLCByZXN1bHQpKSB7CisgICAgICAgICAgICBpZiAoYXV0
byogY29uc3RhbnQgPSBtX3Byb2MuYWRkQm9vbENvbnN0YW50KG1fdmFsdWUtPm9yaWdpbigpLCBy
ZXN1bHQpKSB7CiAgICAgICAgICAgICAgICAgcmVwbGFjZVdpdGhOZXdWYWx1ZShjb25zdGFudCk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8v
IFJlcGxhY2Ugd2l0aCBuZXdseSBjcmVhdGVkICJ2YWx1ZSIuIEl0cyBvcGNvZGUgaXMgZmxpcHBl
ZCBhbmQgb3BlcmFuZHMgYXJlIHN3YXBwZWQgZnJvbSBtX3ZhbHVlLgotICAgICAgICAgICAgaWYg
KG1fdmFsdWUgIT0gdmFsdWUpCi0gICAgICAgICAgICAgICAgcmVwbGFjZVdpdGhOZXdWYWx1ZSh2
YWx1ZSk7CisgICAgICAgICAgICBpZiAoY29tcGFyaXNvbi5vcGNvZGUgIT0gbV92YWx1ZS0+b3Bj
b2RlKCkpIHsKKyAgICAgICAgICAgICAgICByZXBsYWNlV2l0aE5ldzxWYWx1ZT4oY29tcGFyaXNv
bi5vcGNvZGUsIG1fdmFsdWUtPm9yaWdpbigpLCBjb21wYXJpc29uLm9wZXJhbmRzWzBdLCBjb21w
YXJpc29uLm9wZXJhbmRzWzFdKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTIxNjYsNyArMjE2NiwxMSBA
QCBjbGFzcyBSZWR1Y2VTdHJlbmd0aCB7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBWYWx1ZSog
bmV3Q29tcGFyaXNvblZhdWVJZk5lY2Vzc2FyeSgpCisgICAgc3RydWN0IENhbm9uaWNhbGl6ZWRD
b21wYXJpc29uIHsKKyAgICAgICAgT3Bjb2RlIG9wY29kZTsKKyAgICAgICAgVmFsdWUqIG9wZXJh
bmRzWzJdOworICAgIH07CisgICAgc3RhdGljIENhbm9uaWNhbGl6ZWRDb21wYXJpc29uIGNhbm9u
aWNhbGl6ZUNvbXBhcmlzb24oVmFsdWUqIHZhbHVlKQogICAgIHsKICAgICAgICAgYXV0byBmbGlw
ID0gW10gKE9wY29kZSBvcGNvZGUpIHsKICAgICAgICAgICAgIHN3aXRjaCAob3Bjb2RlKSB7CkBA
IC0yMTkwLDExICsyMTk0LDkgQEAgY2xhc3MgUmVkdWNlU3RyZW5ndGggewogICAgICAgICAgICAg
ICAgIHJldHVybiBvcGNvZGU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH07Ci0gICAgICAgIGlm
IChzaG91bGRTd2FwQmluYXJ5T3BlcmFuZHMobV92YWx1ZSkpIHsKLSAgICAgICAgICAgIG1fY2hh
bmdlZCA9IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gbV9wcm9jLmFkZDxWYWx1ZT4oZmxpcCht
X3ZhbHVlLT5vcGNvZGUoKSksIG1fdmFsdWUtPm9yaWdpbigpLCBtX3ZhbHVlLT5jaGlsZCgxKSwg
bV92YWx1ZS0+Y2hpbGQoMCkpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBtX3ZhbHVlOwor
ICAgICAgICBpZiAoc2hvdWxkU3dhcEJpbmFyeU9wZXJhbmRzKHZhbHVlKSkKKyAgICAgICAgICAg
IHJldHVybiB7IGZsaXAodmFsdWUtPm9wY29kZSgpKSwgdmFsdWUtPmNoaWxkKDEpLCB2YWx1ZS0+
Y2hpbGQoMCkgfTsKKyAgICAgICAgcmV0dXJuIHsgdmFsdWUtPm9wY29kZSgpLCB2YWx1ZS0+Y2hp
bGQoMCksIHZhbHVlLT5jaGlsZCgxKSB9OwogICAgIH0KIAogICAgIC8vIEZJWE1FOiBUaGlzIHNo
b3VsZCByZWFsbHkgYmUgYSBmb3J3YXJkIGFuYWx5c2lzLiBJbnN0ZWFkLCB3ZSB1c2VzIGEgYm91
bmRlZC1zZWFyY2ggYmFja3dhcmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvdGVzdGIzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCmluZGV4
IDVmMjhjMjE5ZTA1ODU0NjA2NGRkNzdjNzQ0OTZmNTRmMzRmMzE1N2YuLmU5NDUxZTQ4NjUzYzg4
OGExMmRjYzc0MzYxZDhlOWI4MTkxYjUwNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy90ZXN0YjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMu
Y3BwCkBAIC0yNDcsNiArMjQ3LDEwIEBAIHN0YXRpYyBWZWN0b3I8SW50NjRPcGVyYW5kPiBpbnQ2
NE9wZXJhbmRzKCkKICAgICBvcGVyYW5kcy5hcHBlbmQoeyAiaW50NjQtbWluIiwgc3RkOjpudW1l
cmljX2xpbWl0czxpbnQ2NF90Pjo6bWluKCkgfSk7CiAgICAgb3BlcmFuZHMuYXBwZW5kKHsgImlu
dDMyLW1heCIsIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpIH0pOwogICAgIG9w
ZXJhbmRzLmFwcGVuZCh7ICJpbnQzMi1taW4iLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+
OjptaW4oKSB9KTsKKyAgICBvcGVyYW5kcy5hcHBlbmQoeyAidWludDY0LW1heCIsIHN0YXRpY19j
YXN0PGludDY0X3Q+KHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKSkgfSk7Cisg
ICAgb3BlcmFuZHMuYXBwZW5kKHsgInVpbnQ2NC1taW4iLCBzdGF0aWNfY2FzdDxpbnQ2NF90Pihz
dGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWluKCkpIH0pOworICAgIG9wZXJhbmRzLmFw
cGVuZCh7ICJ1aW50MzItbWF4Iiwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oc3RkOjpudW1lcmljX2xp
bWl0czx1aW50MzJfdD46Om1heCgpKSB9KTsKKyAgICBvcGVyYW5kcy5hcHBlbmQoeyAidWludDMy
LW1pbiIsIHN0YXRpY19jYXN0PGludDY0X3Q+KHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+
OjptaW4oKSkgfSk7CiAKICAgICByZXR1cm4gb3BlcmFuZHM7CiB9CkBAIC0yNjAsNyArMjY0LDkg
QEAgc3RhdGljIFZlY3RvcjxJbnQzMk9wZXJhbmQ+IGludDMyT3BlcmFuZHMoKQogICAgICAgICB7
ICI0MiIsIDQyIH0sCiAgICAgICAgIHsgIi00MiIsIC00MiB9LAogICAgICAgICB7ICJpbnQzMi1t
YXgiLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSB9LAotICAgICAgICB7ICJp
bnQzMi1taW4iLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptaW4oKSB9CisgICAgICAg
IHsgImludDMyLW1pbiIsIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1pbigpIH0sCisg
ICAgICAgIHsgInVpbnQzMi1tYXgiLCBzdGF0aWNfY2FzdDxpbnQzMl90PihzdGQ6Om51bWVyaWNf
bGltaXRzPHVpbnQzMl90Pjo6bWF4KCkpIH0sCisgICAgICAgIHsgInVpbnQzMi1taW4iLCBzdGF0
aWNfY2FzdDxpbnQzMl90PihzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWluKCkpIH0K
ICAgICB9KTsKICAgICByZXR1cm4gb3BlcmFuZHM7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335539</attachid>
            <date>2018-03-11 10:17:30 -0700</date>
            <delta_ts>2018-03-11 12:52:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183543-20180312021729.patch</filename>
            <type>text/plain</type>
            <size>15945</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
MTg4ZjFiZmYwMThlODk1ZTcwYWQzZTQ3NWIzYjQxNGFlYjIxZDhlLi5hMmIxZWJkODg0YTRkYzA3
YjM3NjFmZWE3NDQ5MzhiYTEyYWM1MTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MiBAQAorMjAxOC0wMy0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbQjNdIEFib3ZlL0JlbG93IHNob3VsZCBiZSBzdHJlbmd0aC1yZWR1
Y2VkIGZvciBjb21wYXJpc29uIHdpdGggMAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWJvdmUoMCwgeCkgYW5kIEJlbG93RXF1YWwoMCwgeCkgY2FuIGJl
IGNvbnZlcnRlZCB0byBjb25zdGFudHMgZmFsc2UgYW5kIHRydWUgcmVzcGVjdGl2ZWx5LgorICAg
ICAgICBUaGlzIGNhbiBiZSBzZWVuIGluIEFycmF5U2xpY2UoMCkgY2FzZTogYFNlbGVjdChBYm92
ZSgwLCBsZW5ndGgpLCBsZW5ndGgsIDApYCB0aGlzIHNob3VsZAorICAgICAgICBiZSBjb252ZXJ0
ZWQgdG8gYDBgLiBUaGlzIHBhdGNoIGFkZHMgc3VjaCBhIGZvbGRpbmcgdG8gY29tcGFyaXNvbnMu
CisKKyAgICAgICAgV2UgYWxzbyBmaXggQjNSZWR1Y2VTdHJlbmd0aCBpc3N1ZSBjcmVhdGluZyBh
biBvcnBoYW4gdmFsdWUuIElmIGEgZmxpcHBlZCB2YWx1ZSBpcyBmb2xkZWQgdG8KKyAgICAgICAg
YSBjb25zdGFudCwgd2UgZG8gbm90IGluc2VydCBmbGlwcGVkIHZhbHVlIGFuZCBtYWtlIGl0IGFu
IG9ycGhhbi4gVGhpcyBpc3N1ZSBjYXVzZXMgSlNDIHRlc3QKKyAgICAgICAgZmFpbHVyZSB3aXRo
IHRoaXMgQjNDb25zdDMyLzY0VmFsdWUgY2hhbmdlLiBXaXRoIHRoaXMgcGF0Y2gsIHdlIGNyZWF0
ZSBhIGZsaXBwZWQgdmFsdWUgb25seQorICAgICAgICB3aGVuIHdlIGZhaWwgdG8gZm9sZCBpdCB0
byBhIGNvbnN0YW50LgorCisgICAgICAgICogYjMvQjNDb25zdDMyVmFsdWUuY3BwOgorICAgICAg
ICAoSlNDOjpCMzo6Q29uc3QzMlZhbHVlOjpsZXNzVGhhbkNvbnN0YW50IGNvbnN0KToKKyAgICAg
ICAgKEpTQzo6QjM6OkNvbnN0MzJWYWx1ZTo6Z3JlYXRlclRoYW5Db25zdGFudCBjb25zdCk6Cisg
ICAgICAgIChKU0M6OkIzOjpDb25zdDMyVmFsdWU6Omxlc3NFcXVhbENvbnN0YW50IGNvbnN0KToK
KyAgICAgICAgKEpTQzo6QjM6OkNvbnN0MzJWYWx1ZTo6Z3JlYXRlckVxdWFsQ29uc3RhbnQgY29u
c3QpOgorICAgICAgICAoSlNDOjpCMzo6Q29uc3QzMlZhbHVlOjphYm92ZUNvbnN0YW50IGNvbnN0
KToKKyAgICAgICAgKEpTQzo6QjM6OkNvbnN0MzJWYWx1ZTo6YmVsb3dDb25zdGFudCBjb25zdCk6
CisgICAgICAgIChKU0M6OkIzOjpDb25zdDMyVmFsdWU6OmFib3ZlRXF1YWxDb25zdGFudCBjb25z
dCk6CisgICAgICAgIChKU0M6OkIzOjpDb25zdDMyVmFsdWU6OmJlbG93RXF1YWxDb25zdGFudCBj
b25zdCk6CisgICAgICAgICogYjMvQjNDb25zdDY0VmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpC
Mzo6Q29uc3Q2NFZhbHVlOjpsZXNzVGhhbkNvbnN0YW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6
QjM6OkNvbnN0NjRWYWx1ZTo6Z3JlYXRlclRoYW5Db25zdGFudCBjb25zdCk6CisgICAgICAgIChK
U0M6OkIzOjpDb25zdDY0VmFsdWU6Omxlc3NFcXVhbENvbnN0YW50IGNvbnN0KToKKyAgICAgICAg
KEpTQzo6QjM6OkNvbnN0NjRWYWx1ZTo6Z3JlYXRlckVxdWFsQ29uc3RhbnQgY29uc3QpOgorICAg
ICAgICAoSlNDOjpCMzo6Q29uc3Q2NFZhbHVlOjphYm92ZUNvbnN0YW50IGNvbnN0KToKKyAgICAg
ICAgKEpTQzo6QjM6OkNvbnN0NjRWYWx1ZTo6YmVsb3dDb25zdGFudCBjb25zdCk6CisgICAgICAg
IChKU0M6OkIzOjpDb25zdDY0VmFsdWU6OmFib3ZlRXF1YWxDb25zdGFudCBjb25zdCk6CisgICAg
ICAgIChKU0M6OkIzOjpDb25zdDY0VmFsdWU6OmJlbG93RXF1YWxDb25zdGFudCBjb25zdCk6Cisg
ICAgICAgICogYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHA6CisgICAgICAgICogYjMvdGVzdGIzLmNw
cDoKKyAgICAgICAgKEpTQzo6QjM6OmludDY0T3BlcmFuZHMpOgorICAgICAgICAoSlNDOjpCMzo6
aW50MzJPcGVyYW5kcyk6CisKIDIwMTgtMDMtMTAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRl
YUBnbWFpbC5jb20+CiAKICAgICAgICAgW0ZUTF0gRHJvcCBOZXdSZWdleHAgZm9yIFN0cmluZy5w
cm90b3R5cGUubWF0Y2ggd2l0aCBSZWdFeHAgKyBnbG9iYWwgZmxhZwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3QzMlZhbHVlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0NvbnN0MzJWYWx1ZS5jcHAKaW5kZXggNDlhNzQ1M2E0OWE1OWM4OGYzYzZi
YmZkYTI2NmFmYjY5ODViNzMxNy4uNTEyYmU4OGM5OWQ0YjUzMDVjMGU5MjM0Y2UxYWEyZjcwZjZl
NjYxNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3QzMlZhbHVl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdDMyVmFsdWUuY3BwCkBA
IC0yMjAsNiArMjIwLDkgQEAgVHJpU3RhdGUgQ29uc3QzMlZhbHVlOjpub3RFcXVhbENvbnN0YW50
KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIAogVHJpU3RhdGUgQ29uc3QzMlZhbHVlOjpsZXNz
VGhhbkNvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIHsKKyAgICAvLyBJTlQzMl9N
QVggPCB4IGlzIGFsd2F5cyBmYWxzZS4KKyAgICBpZiAoc3RhdGljX2Nhc3Q8aW50MzJfdD4obV92
YWx1ZSkgPT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpCisgICAgICAgIHJl
dHVybiBGYWxzZVRyaVN0YXRlOwogICAgIGlmICghb3RoZXItPmhhc0ludDMyKCkpCiAgICAgICAg
IHJldHVybiBNaXhlZFRyaVN0YXRlOwogICAgIHJldHVybiB0cmlTdGF0ZShtX3ZhbHVlIDwgb3Ro
ZXItPmFzSW50MzIoKSk7CkBAIC0yMjcsNiArMjMwLDkgQEAgVHJpU3RhdGUgQ29uc3QzMlZhbHVl
OjpsZXNzVGhhbkNvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIAogVHJpU3RhdGUg
Q29uc3QzMlZhbHVlOjpncmVhdGVyVGhhbkNvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29u
c3QKIHsKKyAgICAvLyBJTlQzMl9NSU4gPiB4IGlzIGFsd2F5cyBmYWxzZS4KKyAgICBpZiAoc3Rh
dGljX2Nhc3Q8aW50MzJfdD4obV92YWx1ZSkgPT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90
Pjo6bWluKCkpCisgICAgICAgIHJldHVybiBGYWxzZVRyaVN0YXRlOwogICAgIGlmICghb3RoZXIt
Pmhhc0ludDMyKCkpCiAgICAgICAgIHJldHVybiBNaXhlZFRyaVN0YXRlOwogICAgIHJldHVybiB0
cmlTdGF0ZShtX3ZhbHVlID4gb3RoZXItPmFzSW50MzIoKSk7CkBAIC0yMzQsNiArMjQwLDkgQEAg
VHJpU3RhdGUgQ29uc3QzMlZhbHVlOjpncmVhdGVyVGhhbkNvbnN0YW50KGNvbnN0IFZhbHVlKiBv
dGhlcikgY29uc3QKIAogVHJpU3RhdGUgQ29uc3QzMlZhbHVlOjpsZXNzRXF1YWxDb25zdGFudChj
b25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiB7CisgICAgLy8gSU5UMzJfTUlOIDw9IHggaXMgYWx3
YXlzIHRydWUuCisgICAgaWYgKHN0YXRpY19jYXN0PGludDMyX3Q+KG1fdmFsdWUpID09IHN0ZDo6
bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1pbigpKQorICAgICAgICByZXR1cm4gVHJ1ZVRyaVN0
YXRlOwogICAgIGlmICghb3RoZXItPmhhc0ludDMyKCkpCiAgICAgICAgIHJldHVybiBNaXhlZFRy
aVN0YXRlOwogICAgIHJldHVybiB0cmlTdGF0ZShtX3ZhbHVlIDw9IG90aGVyLT5hc0ludDMyKCkp
OwpAQCAtMjQxLDYgKzI1MCw5IEBAIFRyaVN0YXRlIENvbnN0MzJWYWx1ZTo6bGVzc0VxdWFsQ29u
c3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAogCiBUcmlTdGF0ZSBDb25zdDMyVmFsdWU6
OmdyZWF0ZXJFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIHsKKyAgICAv
LyBJTlQzMl9NQVggPj0geCBpcyBhbHdheXMgdHJ1ZS4KKyAgICBpZiAoc3RhdGljX2Nhc3Q8aW50
MzJfdD4obV92YWx1ZSkgPT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpCisg
ICAgICAgIHJldHVybiBUcnVlVHJpU3RhdGU7CiAgICAgaWYgKCFvdGhlci0+aGFzSW50MzIoKSkK
ICAgICAgICAgcmV0dXJuIE1peGVkVHJpU3RhdGU7CiAgICAgcmV0dXJuIHRyaVN0YXRlKG1fdmFs
dWUgPj0gb3RoZXItPmFzSW50MzIoKSk7CkBAIC0yNDgsNiArMjYwLDkgQEAgVHJpU3RhdGUgQ29u
c3QzMlZhbHVlOjpncmVhdGVyRXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0
CiAKIFRyaVN0YXRlIENvbnN0MzJWYWx1ZTo6YWJvdmVDb25zdGFudChjb25zdCBWYWx1ZSogb3Ro
ZXIpIGNvbnN0CiB7CisgICAgLy8gVUlOVDMyX01JTiA+IHggaXMgYWx3YXlzIGZhbHNlLgorICAg
IGlmIChzdGF0aWNfY2FzdDx1aW50MzJfdD4obV92YWx1ZSkgPT0gc3RkOjpudW1lcmljX2xpbWl0
czx1aW50MzJfdD46Om1pbigpKQorICAgICAgICByZXR1cm4gRmFsc2VUcmlTdGF0ZTsKICAgICBp
ZiAoIW90aGVyLT5oYXNJbnQzMigpKQogICAgICAgICByZXR1cm4gTWl4ZWRUcmlTdGF0ZTsKICAg
ICByZXR1cm4gdHJpU3RhdGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1fdmFsdWUpID4gc3RhdGlj
X2Nhc3Q8dWludDMyX3Q+KG90aGVyLT5hc0ludDMyKCkpKTsKQEAgLTI1NSw2ICsyNzAsOSBAQCBU
cmlTdGF0ZSBDb25zdDMyVmFsdWU6OmFib3ZlQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBj
b25zdAogCiBUcmlTdGF0ZSBDb25zdDMyVmFsdWU6OmJlbG93Q29uc3RhbnQoY29uc3QgVmFsdWUq
IG90aGVyKSBjb25zdAogeworICAgIC8vIFVJTlQzMl9NQVggPCB4IGlzIGFsd2F5cyBmYWxzZS4K
KyAgICBpZiAoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1fdmFsdWUpID09IHN0ZDo6bnVtZXJpY19s
aW1pdHM8dWludDMyX3Q+OjptYXgoKSkKKyAgICAgICAgcmV0dXJuIEZhbHNlVHJpU3RhdGU7CiAg
ICAgaWYgKCFvdGhlci0+aGFzSW50MzIoKSkKICAgICAgICAgcmV0dXJuIE1peGVkVHJpU3RhdGU7
CiAgICAgcmV0dXJuIHRyaVN0YXRlKHN0YXRpY19jYXN0PHVpbnQzMl90PihtX3ZhbHVlKSA8IHN0
YXRpY19jYXN0PHVpbnQzMl90PihvdGhlci0+YXNJbnQzMigpKSk7CkBAIC0yNjIsNiArMjgwLDkg
QEAgVHJpU3RhdGUgQ29uc3QzMlZhbHVlOjpiZWxvd0NvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhl
cikgY29uc3QKIAogVHJpU3RhdGUgQ29uc3QzMlZhbHVlOjphYm92ZUVxdWFsQ29uc3RhbnQoY29u
c3QgVmFsdWUqIG90aGVyKSBjb25zdAogeworICAgIC8vIFVJTlQzMl9NQVggPj0geCBpcyBhbHdh
eXMgdHJ1ZS4KKyAgICBpZiAoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1fdmFsdWUpID09IHN0ZDo6
bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSkKKyAgICAgICAgcmV0dXJuIFRydWVUcmlT
dGF0ZTsKICAgICBpZiAoIW90aGVyLT5oYXNJbnQzMigpKQogICAgICAgICByZXR1cm4gTWl4ZWRU
cmlTdGF0ZTsKICAgICByZXR1cm4gdHJpU3RhdGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1fdmFs
dWUpID49IHN0YXRpY19jYXN0PHVpbnQzMl90PihvdGhlci0+YXNJbnQzMigpKSk7CkBAIC0yNjks
NiArMjkwLDkgQEAgVHJpU3RhdGUgQ29uc3QzMlZhbHVlOjphYm92ZUVxdWFsQ29uc3RhbnQoY29u
c3QgVmFsdWUqIG90aGVyKSBjb25zdAogCiBUcmlTdGF0ZSBDb25zdDMyVmFsdWU6OmJlbG93RXF1
YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiB7CisgICAgLy8gVUlOVDMyX01J
TiA8PSB4IGlzIGFsd2F5cyB0cnVlLgorICAgIGlmIChzdGF0aWNfY2FzdDx1aW50MzJfdD4obV92
YWx1ZSkgPT0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1pbigpKQorICAgICAgICBy
ZXR1cm4gVHJ1ZVRyaVN0YXRlOwogICAgIGlmICghb3RoZXItPmhhc0ludDMyKCkpCiAgICAgICAg
IHJldHVybiBNaXhlZFRyaVN0YXRlOwogICAgIHJldHVybiB0cmlTdGF0ZShzdGF0aWNfY2FzdDx1
aW50MzJfdD4obV92YWx1ZSkgPD0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG90aGVyLT5hc0ludDMy
KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0NjRWYWx1
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdDY0VmFsdWUuY3BwCmluZGV4
IDRmN2I4NmIyZTlkNGRlNjE1NWQ0MzM2NWEwZmUxMTA0YjliNWQwNWIuLjczYTRjZWNjNTNlNWJm
NDk0ZGM3YTY4OWRkZTdhNDNkNTg3Mzc3MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0NvbnN0NjRWYWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzQ29uc3Q2NFZhbHVlLmNwcApAQCAtMjIwLDYgKzIyMCw5IEBAIFRyaVN0YXRlIENvbnN0NjRW
YWx1ZTo6bm90RXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiAKIFRyaVN0
YXRlIENvbnN0NjRWYWx1ZTo6bGVzc1RoYW5Db25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNv
bnN0CiB7CisgICAgLy8gSU5UNjRfTUFYIDwgeCBpcyBhbHdheXMgZmFsc2UuCisgICAgaWYgKHN0
YXRpY19jYXN0PGludDY0X3Q+KG1fdmFsdWUpID09IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50NjRf
dD46Om1heCgpKQorICAgICAgICByZXR1cm4gRmFsc2VUcmlTdGF0ZTsKICAgICBpZiAoIW90aGVy
LT5oYXNJbnQ2NCgpKQogICAgICAgICByZXR1cm4gTWl4ZWRUcmlTdGF0ZTsKICAgICByZXR1cm4g
dHJpU3RhdGUobV92YWx1ZSA8IG90aGVyLT5hc0ludDY0KCkpOwpAQCAtMjI3LDYgKzIzMCw5IEBA
IFRyaVN0YXRlIENvbnN0NjRWYWx1ZTo6bGVzc1RoYW5Db25zdGFudChjb25zdCBWYWx1ZSogb3Ro
ZXIpIGNvbnN0CiAKIFRyaVN0YXRlIENvbnN0NjRWYWx1ZTo6Z3JlYXRlclRoYW5Db25zdGFudChj
b25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiB7CisgICAgLy8gSU5UNjRfTUlOID4geCBpcyBhbHdh
eXMgZmFsc2UuCisgICAgaWYgKHN0YXRpY19jYXN0PGludDY0X3Q+KG1fdmFsdWUpID09IHN0ZDo6
bnVtZXJpY19saW1pdHM8aW50NjRfdD46Om1pbigpKQorICAgICAgICByZXR1cm4gRmFsc2VUcmlT
dGF0ZTsKICAgICBpZiAoIW90aGVyLT5oYXNJbnQ2NCgpKQogICAgICAgICByZXR1cm4gTWl4ZWRU
cmlTdGF0ZTsKICAgICByZXR1cm4gdHJpU3RhdGUobV92YWx1ZSA+IG90aGVyLT5hc0ludDY0KCkp
OwpAQCAtMjM0LDYgKzI0MCw5IEBAIFRyaVN0YXRlIENvbnN0NjRWYWx1ZTo6Z3JlYXRlclRoYW5D
b25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiAKIFRyaVN0YXRlIENvbnN0NjRWYWx1
ZTo6bGVzc0VxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAogeworICAgIC8v
IElOVDY0X01JTiA8PSB4IGlzIGFsd2F5cyB0cnVlLgorICAgIGlmIChzdGF0aWNfY2FzdDxpbnQ2
NF90PihtX3ZhbHVlKSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludDY0X3Q+OjptaW4oKSkKKyAg
ICAgICAgcmV0dXJuIFRydWVUcmlTdGF0ZTsKICAgICBpZiAoIW90aGVyLT5oYXNJbnQ2NCgpKQog
ICAgICAgICByZXR1cm4gTWl4ZWRUcmlTdGF0ZTsKICAgICByZXR1cm4gdHJpU3RhdGUobV92YWx1
ZSA8PSBvdGhlci0+YXNJbnQ2NCgpKTsKQEAgLTI0MSw2ICsyNTAsOSBAQCBUcmlTdGF0ZSBDb25z
dDY0VmFsdWU6Omxlc3NFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIAog
VHJpU3RhdGUgQ29uc3Q2NFZhbHVlOjpncmVhdGVyRXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSog
b3RoZXIpIGNvbnN0CiB7CisgICAgLy8gSU5UNjRfTUFYID49IHggaXMgYWx3YXlzIHRydWUuCisg
ICAgaWYgKHN0YXRpY19jYXN0PGludDY0X3Q+KG1fdmFsdWUpID09IHN0ZDo6bnVtZXJpY19saW1p
dHM8aW50NjRfdD46Om1heCgpKQorICAgICAgICByZXR1cm4gVHJ1ZVRyaVN0YXRlOwogICAgIGlm
ICghb3RoZXItPmhhc0ludDY0KCkpCiAgICAgICAgIHJldHVybiBNaXhlZFRyaVN0YXRlOwogICAg
IHJldHVybiB0cmlTdGF0ZShtX3ZhbHVlID49IG90aGVyLT5hc0ludDY0KCkpOwpAQCAtMjQ4LDYg
KzI2MCw5IEBAIFRyaVN0YXRlIENvbnN0NjRWYWx1ZTo6Z3JlYXRlckVxdWFsQ29uc3RhbnQoY29u
c3QgVmFsdWUqIG90aGVyKSBjb25zdAogCiBUcmlTdGF0ZSBDb25zdDY0VmFsdWU6OmFib3ZlQ29u
c3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdAogeworICAgIC8vIFVJTlQ2NF9NSU4gPiB4
IGlzIGFsd2F5cyBmYWxzZS4KKyAgICBpZiAoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fdmFsdWUp
ID09IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptaW4oKSkKKyAgICAgICAgcmV0dXJu
IEZhbHNlVHJpU3RhdGU7CiAgICAgaWYgKCFvdGhlci0+aGFzSW50NjQoKSkKICAgICAgICAgcmV0
dXJuIE1peGVkVHJpU3RhdGU7CiAgICAgcmV0dXJuIHRyaVN0YXRlKHN0YXRpY19jYXN0PHVpbnQ2
NF90PihtX3ZhbHVlKSA+IHN0YXRpY19jYXN0PHVpbnQ2NF90PihvdGhlci0+YXNJbnQ2NCgpKSk7
CkBAIC0yNTUsNiArMjcwLDkgQEAgVHJpU3RhdGUgQ29uc3Q2NFZhbHVlOjphYm92ZUNvbnN0YW50
KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIAogVHJpU3RhdGUgQ29uc3Q2NFZhbHVlOjpiZWxv
d0NvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIHsKKyAgICAvLyBVSU5UNjRfTUFY
IDwgeCBpcyBhbHdheXMgZmFsc2UuCisgICAgaWYgKHN0YXRpY19jYXN0PHVpbnQ2NF90PihtX3Zh
bHVlKSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCkpCisgICAgICAgIHJl
dHVybiBGYWxzZVRyaVN0YXRlOwogICAgIGlmICghb3RoZXItPmhhc0ludDY0KCkpCiAgICAgICAg
IHJldHVybiBNaXhlZFRyaVN0YXRlOwogICAgIHJldHVybiB0cmlTdGF0ZShzdGF0aWNfY2FzdDx1
aW50NjRfdD4obV92YWx1ZSkgPCBzdGF0aWNfY2FzdDx1aW50NjRfdD4ob3RoZXItPmFzSW50NjQo
KSkpOwpAQCAtMjYyLDYgKzI4MCw5IEBAIFRyaVN0YXRlIENvbnN0NjRWYWx1ZTo6YmVsb3dDb25z
dGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0CiAKIFRyaVN0YXRlIENvbnN0NjRWYWx1ZTo6
YWJvdmVFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIHsKKyAgICAvLyBV
SU5UNjRfTUFYID49IHggaXMgYWx3YXlzIHRydWUuCisgICAgaWYgKHN0YXRpY19jYXN0PHVpbnQ2
NF90PihtX3ZhbHVlKSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCkpCisg
ICAgICAgIHJldHVybiBUcnVlVHJpU3RhdGU7CiAgICAgaWYgKCFvdGhlci0+aGFzSW50NjQoKSkK
ICAgICAgICAgcmV0dXJuIE1peGVkVHJpU3RhdGU7CiAgICAgcmV0dXJuIHRyaVN0YXRlKHN0YXRp
Y19jYXN0PHVpbnQ2NF90PihtX3ZhbHVlKSA+PSBzdGF0aWNfY2FzdDx1aW50NjRfdD4ob3RoZXIt
PmFzSW50NjQoKSkpOwpAQCAtMjY5LDYgKzI5MCw5IEBAIFRyaVN0YXRlIENvbnN0NjRWYWx1ZTo6
YWJvdmVFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QKIAogVHJpU3RhdGUg
Q29uc3Q2NFZhbHVlOjpiZWxvd0VxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25z
dAogeworICAgIC8vIFVJTlQ2NF9NSU4gPD0geCBpcyBhbHdheXMgdHJ1ZS4KKyAgICBpZiAoc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KG1fdmFsdWUpID09IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0
X3Q+OjptaW4oKSkKKyAgICAgICAgcmV0dXJuIFRydWVUcmlTdGF0ZTsKICAgICBpZiAoIW90aGVy
LT5oYXNJbnQ2NCgpKQogICAgICAgICByZXR1cm4gTWl4ZWRUcmlTdGF0ZTsKICAgICByZXR1cm4g
dHJpU3RhdGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fdmFsdWUpIDw9IHN0YXRpY19jYXN0PHVp
bnQ2NF90PihvdGhlci0+YXNJbnQ2NCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNSZWR1Y2VTdHJlbmd0aC5jcHAKaW5kZXggYWM3MGQyM2RkYzVkOTVlMzNlOWE4OTM5YjNmY2Mw
Mjk4NGNlOTFkOC4uMWFjNGFiMDRiMWQ5ZjRjMzk1M2Q4NmY2ZDJmYzEwZjdkMGVjYmZiYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcApAQCAtMTY3
Myw0NiArMTY3Myw0NiBAQCBjbGFzcyBSZWR1Y2VTdHJlbmd0aCB7CiAgICAgICAgIGNhc2UgQmVs
b3c6CiAgICAgICAgIGNhc2UgQWJvdmVFcXVhbDoKICAgICAgICAgY2FzZSBCZWxvd0VxdWFsOiB7
Ci0gICAgICAgICAgICBhdXRvKiB2YWx1ZSA9IG5ld0NvbXBhcmlzb25WYXVlSWZOZWNlc3Nhcnko
KTsKKyAgICAgICAgICAgIENhbm9uaWNhbGl6ZWRDb21wYXJpc29uIGNvbXBhcmlzb24gPSBjYW5v
bmljYWxpemVDb21wYXJpc29uKG1fdmFsdWUpOwogICAgICAgICAgICAgVHJpU3RhdGUgcmVzdWx0
ID0gTWl4ZWRUcmlTdGF0ZTsKLSAgICAgICAgICAgIHN3aXRjaCAodmFsdWUtPm9wY29kZSgpKSB7
CisgICAgICAgICAgICBzd2l0Y2ggKGNvbXBhcmlzb24ub3Bjb2RlKSB7CiAgICAgICAgICAgICBj
YXNlIExlc3NUaGFuOgotICAgICAgICAgICAgICAgIHJlc3VsdCA9IHZhbHVlLT5jaGlsZCgxKS0+
Z3JlYXRlclRoYW5Db25zdGFudCh2YWx1ZS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgICAgIHJl
c3VsdCA9IGNvbXBhcmlzb24ub3BlcmFuZHNbMV0tPmdyZWF0ZXJUaGFuQ29uc3RhbnQoY29tcGFy
aXNvbi5vcGVyYW5kc1swXSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBj
YXNlIEdyZWF0ZXJUaGFuOgotICAgICAgICAgICAgICAgIHJlc3VsdCA9IHZhbHVlLT5jaGlsZCgx
KS0+bGVzc1RoYW5Db25zdGFudCh2YWx1ZS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgICAgIHJl
c3VsdCA9IGNvbXBhcmlzb24ub3BlcmFuZHNbMV0tPmxlc3NUaGFuQ29uc3RhbnQoY29tcGFyaXNv
bi5vcGVyYW5kc1swXSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNl
IExlc3NFcXVhbDoKLSAgICAgICAgICAgICAgICByZXN1bHQgPSB2YWx1ZS0+Y2hpbGQoMSktPmdy
ZWF0ZXJFcXVhbENvbnN0YW50KHZhbHVlLT5jaGlsZCgwKSk7CisgICAgICAgICAgICAgICAgcmVz
dWx0ID0gY29tcGFyaXNvbi5vcGVyYW5kc1sxXS0+Z3JlYXRlckVxdWFsQ29uc3RhbnQoY29tcGFy
aXNvbi5vcGVyYW5kc1swXSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBj
YXNlIEdyZWF0ZXJFcXVhbDoKLSAgICAgICAgICAgICAgICByZXN1bHQgPSB2YWx1ZS0+Y2hpbGQo
MSktPmxlc3NFcXVhbENvbnN0YW50KHZhbHVlLT5jaGlsZCgwKSk7CisgICAgICAgICAgICAgICAg
cmVzdWx0ID0gY29tcGFyaXNvbi5vcGVyYW5kc1sxXS0+bGVzc0VxdWFsQ29uc3RhbnQoY29tcGFy
aXNvbi5vcGVyYW5kc1swXSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBj
YXNlIEFib3ZlOgotICAgICAgICAgICAgICAgIHJlc3VsdCA9IHZhbHVlLT5jaGlsZCgxKS0+YmVs
b3dDb25zdGFudCh2YWx1ZS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNv
bXBhcmlzb24ub3BlcmFuZHNbMV0tPmJlbG93Q29uc3RhbnQoY29tcGFyaXNvbi5vcGVyYW5kc1sw
XSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEJlbG93OgotICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IHZhbHVlLT5jaGlsZCgxKS0+YWJvdmVDb25zdGFudCh2YWx1
ZS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNvbXBhcmlzb24ub3BlcmFu
ZHNbMV0tPmFib3ZlQ29uc3RhbnQoY29tcGFyaXNvbi5vcGVyYW5kc1swXSk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEFib3ZlRXF1YWw6Ci0gICAgICAgICAgICAg
ICAgcmVzdWx0ID0gdmFsdWUtPmNoaWxkKDEpLT5iZWxvd0VxdWFsQ29uc3RhbnQodmFsdWUtPmNo
aWxkKDApKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBjb21wYXJpc29uLm9wZXJhbmRzWzFd
LT5iZWxvd0VxdWFsQ29uc3RhbnQoY29tcGFyaXNvbi5vcGVyYW5kc1swXSk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEJlbG93RXF1YWw6Ci0gICAgICAgICAgICAg
ICAgcmVzdWx0ID0gdmFsdWUtPmNoaWxkKDEpLT5hYm92ZUVxdWFsQ29uc3RhbnQodmFsdWUtPmNo
aWxkKDApKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBjb21wYXJpc29uLm9wZXJhbmRzWzFd
LT5hYm92ZUVxdWFsQ29uc3RhbnQoY29tcGFyaXNvbi5vcGVyYW5kc1swXSk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgIGlmIChhdXRvKiBjb25zdGFudCA9IG1fcHJvYy5hZGRCb29s
Q29uc3RhbnQodmFsdWUtPm9yaWdpbigpLCByZXN1bHQpKSB7CisgICAgICAgICAgICBpZiAoYXV0
byogY29uc3RhbnQgPSBtX3Byb2MuYWRkQm9vbENvbnN0YW50KG1fdmFsdWUtPm9yaWdpbigpLCBy
ZXN1bHQpKSB7CiAgICAgICAgICAgICAgICAgcmVwbGFjZVdpdGhOZXdWYWx1ZShjb25zdGFudCk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8v
IFJlcGxhY2Ugd2l0aCBuZXdseSBjcmVhdGVkICJ2YWx1ZSIuIEl0cyBvcGNvZGUgaXMgZmxpcHBl
ZCBhbmQgb3BlcmFuZHMgYXJlIHN3YXBwZWQgZnJvbSBtX3ZhbHVlLgotICAgICAgICAgICAgaWYg
KG1fdmFsdWUgIT0gdmFsdWUpCi0gICAgICAgICAgICAgICAgcmVwbGFjZVdpdGhOZXdWYWx1ZSh2
YWx1ZSk7CisgICAgICAgICAgICBpZiAoY29tcGFyaXNvbi5vcGNvZGUgIT0gbV92YWx1ZS0+b3Bj
b2RlKCkpIHsKKyAgICAgICAgICAgICAgICByZXBsYWNlV2l0aE5ldzxWYWx1ZT4oY29tcGFyaXNv
bi5vcGNvZGUsIG1fdmFsdWUtPm9yaWdpbigpLCBjb21wYXJpc29uLm9wZXJhbmRzWzBdLCBjb21w
YXJpc29uLm9wZXJhbmRzWzFdKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTIxNjYsNyArMjE2NiwxMSBA
QCBjbGFzcyBSZWR1Y2VTdHJlbmd0aCB7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBWYWx1ZSog
bmV3Q29tcGFyaXNvblZhdWVJZk5lY2Vzc2FyeSgpCisgICAgc3RydWN0IENhbm9uaWNhbGl6ZWRD
b21wYXJpc29uIHsKKyAgICAgICAgT3Bjb2RlIG9wY29kZTsKKyAgICAgICAgVmFsdWUqIG9wZXJh
bmRzWzJdOworICAgIH07CisgICAgc3RhdGljIENhbm9uaWNhbGl6ZWRDb21wYXJpc29uIGNhbm9u
aWNhbGl6ZUNvbXBhcmlzb24oVmFsdWUqIHZhbHVlKQogICAgIHsKICAgICAgICAgYXV0byBmbGlw
ID0gW10gKE9wY29kZSBvcGNvZGUpIHsKICAgICAgICAgICAgIHN3aXRjaCAob3Bjb2RlKSB7CkBA
IC0yMTkwLDExICsyMTk0LDkgQEAgY2xhc3MgUmVkdWNlU3RyZW5ndGggewogICAgICAgICAgICAg
ICAgIHJldHVybiBvcGNvZGU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH07Ci0gICAgICAgIGlm
IChzaG91bGRTd2FwQmluYXJ5T3BlcmFuZHMobV92YWx1ZSkpIHsKLSAgICAgICAgICAgIG1fY2hh
bmdlZCA9IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gbV9wcm9jLmFkZDxWYWx1ZT4oZmxpcCht
X3ZhbHVlLT5vcGNvZGUoKSksIG1fdmFsdWUtPm9yaWdpbigpLCBtX3ZhbHVlLT5jaGlsZCgxKSwg
bV92YWx1ZS0+Y2hpbGQoMCkpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBtX3ZhbHVlOwor
ICAgICAgICBpZiAoc2hvdWxkU3dhcEJpbmFyeU9wZXJhbmRzKHZhbHVlKSkKKyAgICAgICAgICAg
IHJldHVybiB7IGZsaXAodmFsdWUtPm9wY29kZSgpKSwgeyB2YWx1ZS0+Y2hpbGQoMSksIHZhbHVl
LT5jaGlsZCgwKSB9IH07CisgICAgICAgIHJldHVybiB7IHZhbHVlLT5vcGNvZGUoKSwgeyB2YWx1
ZS0+Y2hpbGQoMCksIHZhbHVlLT5jaGlsZCgxKSB9IH07CiAgICAgfQogCiAgICAgLy8gRklYTUU6
IFRoaXMgc2hvdWxkIHJlYWxseSBiZSBhIGZvcndhcmQgYW5hbHlzaXMuIEluc3RlYWQsIHdlIHVz
ZXMgYSBib3VuZGVkLXNlYXJjaCBiYWNrd2FyZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy90ZXN0YjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5j
cHAKaW5kZXggNWYyOGMyMTllMDU4NTQ2MDY0ZGQ3N2M3NDQ5NmY1NGYzNGYzMTU3Zi4uZTk0NTFl
NDg2NTNjODg4YTEyZGNjNzQzNjFkOGU5YjgxOTFiNTA3MSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L3Rlc3RiMy5jcHAKQEAgLTI0Nyw2ICsyNDcsMTAgQEAgc3RhdGljIFZlY3RvcjxJbnQ2NE9wZXJh
bmQ+IGludDY0T3BlcmFuZHMoKQogICAgIG9wZXJhbmRzLmFwcGVuZCh7ICJpbnQ2NC1taW4iLCBz
dGQ6Om51bWVyaWNfbGltaXRzPGludDY0X3Q+OjptaW4oKSB9KTsKICAgICBvcGVyYW5kcy5hcHBl
bmQoeyAiaW50MzItbWF4Iiwgc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkgfSk7
CiAgICAgb3BlcmFuZHMuYXBwZW5kKHsgImludDMyLW1pbiIsIHN0ZDo6bnVtZXJpY19saW1pdHM8
aW50MzJfdD46Om1pbigpIH0pOworICAgIG9wZXJhbmRzLmFwcGVuZCh7ICJ1aW50NjQtbWF4Iiwg
c3RhdGljX2Nhc3Q8aW50NjRfdD4oc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgp
KSB9KTsKKyAgICBvcGVyYW5kcy5hcHBlbmQoeyAidWludDY0LW1pbiIsIHN0YXRpY19jYXN0PGlu
dDY0X3Q+KHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptaW4oKSkgfSk7CisgICAgb3Bl
cmFuZHMuYXBwZW5kKHsgInVpbnQzMi1tYXgiLCBzdGF0aWNfY2FzdDxpbnQ2NF90PihzdGQ6Om51
bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkpIH0pOworICAgIG9wZXJhbmRzLmFwcGVuZCh7
ICJ1aW50MzItbWluIiwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oc3RkOjpudW1lcmljX2xpbWl0czx1
aW50MzJfdD46Om1pbigpKSB9KTsKIAogICAgIHJldHVybiBvcGVyYW5kczsKIH0KQEAgLTI2MCw3
ICsyNjQsOSBAQCBzdGF0aWMgVmVjdG9yPEludDMyT3BlcmFuZD4gaW50MzJPcGVyYW5kcygpCiAg
ICAgICAgIHsgIjQyIiwgNDIgfSwKICAgICAgICAgeyAiLTQyIiwgLTQyIH0sCiAgICAgICAgIHsg
ImludDMyLW1heCIsIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpIH0sCi0gICAg
ICAgIHsgImludDMyLW1pbiIsIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1pbigpIH0K
KyAgICAgICAgeyAiaW50MzItbWluIiwgc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWlu
KCkgfSwKKyAgICAgICAgeyAidWludDMyLW1heCIsIHN0YXRpY19jYXN0PGludDMyX3Q+KHN0ZDo6
bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSkgfSwKKyAgICAgICAgeyAidWludDMyLW1p
biIsIHN0YXRpY19jYXN0PGludDMyX3Q+KHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+Ojpt
aW4oKSkgfQogICAgIH0pOwogICAgIHJldHVybiBvcGVyYW5kczsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>