<?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>196715</bug_id>
          
          <creation_ts>2019-04-08 16:13:42 -0700</creation_ts>
          <short_desc>No longer make CheckInBounds a child of the things that rely on being dominated by it</short_desc>
          <delta_ts>2024-04-08 13:37:41 -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>CONFIGURATION CHANGED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>157534</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Justin Michaud">justin_michaud</assigned_to>
          <cc>benjamin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>guijemont</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>tzagallo</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1525445</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-08 16:13:42 -0700</bug_when>
    <thetext>Instead, we can use SSALowering to help us here. We can run SSALowering after LICM. We can also make this work with GetStack by having some kind of CheckedGetStack that gets lowered in SSALowering.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564219</commentid>
    <comment_count>1</comment_count>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2019-08-22 14:16:45 -0700</bug_when>
    <thetext>Looks like we should revert https://trac.webkit.org/changeset/241228/webkit, move ssalowering and ignore CheckedGetStack for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564221</commentid>
    <comment_count>2</comment_count>
      <attachid>377044</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2019-08-22 14:22:53 -0700</bug_when>
    <thetext>Created attachment 377044
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564235</commentid>
    <comment_count>3</comment_count>
      <attachid>377044</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-08-22 14:41:18 -0700</bug_when>
    <thetext>Comment on attachment 377044
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGArgumentsEliminationPhase.cpp:828
&gt;                              result = insertionSet.insertNode(
&gt; -                                nodeIndex, node-&gt;prediction(), GetStack, node-&gt;origin, OpInfo(data), Edge(check, UntypedUse));
&gt; +                                nodeIndex, node-&gt;prediction(), GetStack, node-&gt;origin, OpInfo(data));

Oh, this is what I meant by GetStack. Is this right?

&gt; Source/JavaScriptCore/dfg/DFGSSALoweringPhase.cpp:39
&gt; +template &lt;bool LowerNonEffectful&gt;

this should start with a lower case letter</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564591</commentid>
    <comment_count>4</comment_count>
      <attachid>377152</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2019-08-23 14:08:46 -0700</bug_when>
    <thetext>Created attachment 377152
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564593</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-23 14:11:16 -0700</bug_when>
    <thetext>Attachment 377152 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGPutStackSinkingPhase.cpp:240:  An else if statement should be written as an if statement when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 27 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>1564628</commentid>
    <comment_count>6</comment_count>
      <attachid>377162</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2019-08-23 15:10:16 -0700</bug_when>
    <thetext>Created attachment 377162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564629</commentid>
    <comment_count>7</comment_count>
      <attachid>377162</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2019-08-23 15:11:19 -0700</bug_when>
    <thetext>Comment on attachment 377162
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGPutStackSinkingPhase.cpp:479
&gt; +                    node-&gt;child2() = Edge();

This will remove the check. Can you make sure this is fine?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564630</commentid>
    <comment_count>8</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-23 15:12:07 -0700</bug_when>
    <thetext>Attachment 377162 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGPutStackSinkingPhase.cpp:240:  An else if statement should be written as an if statement when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 27 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>1564724</commentid>
    <comment_count>9</comment_count>
      <attachid>377162</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-08-23 17:38:13 -0700</bug_when>
    <thetext>Comment on attachment 377162
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        Move ssa lowering of non-effectful nodes to after licm, this way we can never hoist a node above its check.
&gt; +        We also add a new CheckedGetStack node that gets lowered in ssa lowering, for the same reason.

You should actually explain this in some detail. I think examples will help understand what&apos;s going on.

&gt; Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:-419
&gt; +                m_insertionSet.insertNode(
&gt;                      indexInBlock, SpecNone, CheckInBounds, node-&gt;origin,
&gt;                      node-&gt;child2(), Edge(length, Int32Use));
&gt;                  node-&gt;convertToGetStack(data);
&gt; -                node-&gt;child1() = Edge(check, UntypedUse);

This needs to be CheckedGetStack. It&apos;s identical to code in the arguments elimination phase

&gt; Source/JavaScriptCore/dfg/DFGPlan.cpp:411
&gt; +        // We can safely lower anything could not be hoisted.

Should be: &quot;We can safely lower anything which will never be hoisted&quot; maybe even add a &quot;like PutByVal&quot;

&gt; Source/JavaScriptCore/dfg/DFGPlan.cpp:450
&gt; +        RUN_PHASE(performSSALowering);

probably the really nice way to do this is ensure that a GetByVal is never &quot;safe to execute&quot; after this lowering takes place. Not sure it&apos;s worth doing, but that&apos;s how we typically convey if it&apos;s ok to run one node in a different part oof the program

&gt; Source/JavaScriptCore/dfg/DFGPlan.cpp:452
&gt; +        // Clean up after ssa lowering for integer range optimization.

Comment not needed

&gt;&gt; Source/JavaScriptCore/dfg/DFGPutStackSinkingPhase.cpp:479
&gt;&gt; +                    node-&gt;child2() = Edge();
&gt; 
&gt; This will remove the check. Can you make sure this is fine?

it&apos;s not fine

&gt; Source/JavaScriptCore/dfg/DFGSSALoweringPhase.cpp:39
&gt; +template &lt;bool lowerNonEffectful&gt;

it&apos;s simpler to follow this if there were not a negative and the conditions inside here were inverted.

&gt; Source/JavaScriptCore/dfg/DFGSSALoweringPhase.cpp:83
&gt; +            if (lowerNonEffectful)
&gt; +                lowerBoundsCheck(m_graph.child(m_node, 0), m_graph.child(m_node, 1), m_graph.child(m_node, 2));

this is wrong. All the atomics are effectful. Only HasIndexedProperty shouldn&apos;t be effectful. You can verify what I&apos;m saying by looking in Clobberize</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2026885</commentid>
    <comment_count>10</comment_count>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2024-04-08 13:37:24 -0700</bug_when>
    <thetext>Closing old bugs assigned to me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2026920</commentid>
    <comment_count>11</comment_count>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2024-04-08 13:37:41 -0700</bug_when>
    <thetext>Closing old bugs assigned to me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377044</attachid>
            <date>2019-08-22 14:22:53 -0700</date>
            <delta_ts>2019-08-23 14:08:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196715-20190822142253.patch</filename>
            <type>text/plain</type>
            <size>28198</size>
            <attacher name="Justin Michaud">justin_michaud</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
YzY2NjRmMDQ1NGNmZjc5ZmQ2NGEwMTczMWZkOWM2MTczNDJhMTc0Li5lN2E3NGY3MGY3NWMyNWY5
ODM1MzdiZTkyNjQwYjdmNTkyYWU0MTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MiBAQAorMjAxOS0wOC0yMiAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBh
cHBsZS5jb20+CisKKyAgICAgICAgTm8gbG9uZ2VyIG1ha2UgQ2hlY2tJbkJvdW5kcyBhIGNoaWxk
IG9mIHRoZSB0aGluZ3MgdGhhdCByZWx5IG9uIGJlaW5nIGRvbWluYXRlZCBieSBpdAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NzE1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBzc2EgbG93ZXJp
bmcgb2Ygbm9uLWVmZmVjdGZ1bCBub2RlcyB0byBhZnRlciBsaWNtLCB0aGlzIHdheSB3ZSBjYW4g
bmV2ZXIgaG9pc3QgYSBub2RlIGFib3ZlIGl0cyBjaGVjay4KKworICAgICAgICAqIGRmZy9ERkdB
YnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0
SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAg
ICogZGZnL0RGR0FyZ3VtZW50c0VsaW1pbmF0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6
OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChK
U0M6OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1Bo
YXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFzZTo6Zm9sZENv
bnN0YW50cyk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlND
OjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQ
aGFzZTo6Y29udmVydFRvSGFzSW5kZXhlZFByb3BlcnR5KToKKyAgICAgICAgKiBkZmcvREZHSW50
ZWdlckNoZWNrQ29tYmluaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkludGVnZXJD
aGVja0NvbWJpbmluZ1BoYXNlOjpoYW5kbGVCbG9jayk6CisgICAgICAgICogZGZnL0RGR0ludGVn
ZXJSYW5nZU9wdGltaXphdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUu
aDoKKyAgICAgICAgKiBkZmcvREZHUGxhbi5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UGxhbjo6
Y29tcGlsZUluVGhyZWFkSW1wbCk6CisgICAgICAgICogZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2Uu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OlNTQUxvd2VyaW5nUGhhc2U6OmhhbmRsZU5vZGUpOgor
ICAgICAgICAoSlNDOjpERkc6OlNTQUxvd2VyaW5nUGhhc2U6Omxvd2VyQm91bmRzQ2hlY2spOgor
ICAgICAgICAoSlNDOjpERkc6OnBlcmZvcm1TU0FMb3dlcmluZyk6CisgICAgICAgIChKU0M6OkRG
Rzo6cGVyZm9ybUVmZmVjdGZ1bFNTQUxvd2VyaW5nKToKKyAgICAgICAgKiBkZmcvREZHU1NBTG93
ZXJpbmdQaGFzZS5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVIYXNJbmRleGVkUHJvcGVydHkp
OgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6
OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlQ2hlY2tJbkJvdW5kcyk6CisgICAgICAgIChKU0M6
OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVIYXNJbmRleGVkUHJvcGVydHkpOgorCiAy
MDE5LTA4LTIyICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dUS11bV1BFXSBGaXhlcyBmb3Igbm9uLXVuaWZpZWQgYnVpbGRzIGFmdGVyIHIy
NDg1NDcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJ
bnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJh
Y3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCAyNzY1NjkyNmE4ZDI5ZDI3ZWJlZWFhOWZmZGNh
MjAzY2MyNWZhMGY3Li5hOGJlYmJiNmY1MjFmMDQ3MjNjNzIyYjVjZmIyYTlmMTMxMDAwM2ExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0
ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdElu
dGVycHJldGVySW5saW5lcy5oCkBAIC0zNTE2LDE2ICszNTE2LDExIEBAIGJvb2wgQWJzdHJhY3RJ
bnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNs
b2JiZXJMaW1pCiAgICAgY2FzZSBDaGVja0luQm91bmRzOiB7CiAgICAgICAgIEpTVmFsdWUgbGVm
dCA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7CiAgICAgICAgIEpTVmFsdWUgcmln
aHQgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMigpKS52YWx1ZSgpOwotICAgICAgICBpZiAobGVmdCAm
JiByaWdodCAmJiBsZWZ0LmlzSW50MzIoKSAmJiByaWdodC5pc0ludDMyKCkgJiYgc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KGxlZnQuYXNJbnQzMigpKSA8IHN0YXRpY19jYXN0PHVpbnQzMl90PihyaWdo
dC5hc0ludDMyKCkpKQorICAgICAgICBpZiAobGVmdCAmJiByaWdodCAmJiBsZWZ0LmlzSW50MzIo
KSAmJiByaWdodC5pc0ludDMyKCkKKyAgICAgICAgICAgICYmIHN0YXRpY19jYXN0PHVpbnQzMl90
PihsZWZ0LmFzSW50MzIoKSkgPCBzdGF0aWNfY2FzdDx1aW50MzJfdD4ocmlnaHQuYXNJbnQzMigp
KSkgewogICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKLQotICAg
ICAgICAvLyBXZSBjbGFpbSB3ZSByZXN1bHQgaW4gSW50MzIuIEl0J3Mgbm90IHJlYWxseSBpbXBv
cnRhbnQgd2hhdCBvdXIgcmVzdWx0IGlzICh0aG91Z2ggd2UKLSAgICAgICAgLy8gZG9uJ3Qgd2Fu
dCB0byBjbGFpbSB3ZSBtYXkgcmVzdWx0IGluIHRoZSBlbXB0eSB2YWx1ZSksIG90aGVyIG5vZGVz
IHdpdGggZGF0YSBmbG93IGVkZ2VzCi0gICAgICAgIC8vIHRvIHVzIGp1c3QgZG8gdGhhdCB0byBt
YWludGFpbiB0aGUgaW52YXJpYW50IHRoYXQgdGhleSBjYW4ndCBiZSBob2lzdGVkIGhpZ2hlciB0
aGFuIHVzLgotICAgICAgICAvLyBTbyB3ZSBqdXN0IGFyYml0cmFyaWx5IHBpY2sgSW50MzIuIElu
IHNvbWUgd2F5cywgU3RvcmFnZVJlc3VsdCBtYXkgYmUgdGhlIG1vcmUgY29ycmVjdAotICAgICAg
ICAvLyB0aGluZyB0byBkbyBoZXJlLiBXZSBwaWNrIE5vZGVSZXN1bHRKUyBiZWNhdXNlIGl0IG1h
a2VzIGNvbnZlcnRpbmcgdGhpcyB0byBhbiBpZGVudGl0eQotICAgICAgICAvLyBlYXNpZXIuCi0g
ICAgICAgIHNldE5vbkNlbGxUeXBlRm9yTm9kZShub2RlLCBTcGVjSW50MzJPbmx5KTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c0VsaW1p
bmF0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcmd1bWVudHNF
bGltaW5hdGlvblBoYXNlLmNwcAppbmRleCAzNmIxZTQ1MjU5MGE5MzBkM2U5MmNlMjVmNWViNDMy
MmNjZjA5YTFhLi40YzM3NjFiOTc3MmZiNTY5YjRlOGY1MGVkMWY4MmEyMmE2YTNiYzdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c0VsaW1pbmF0aW9u
UGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzRWxp
bWluYXRpb25QaGFzZS5jcHAKQEAgLTgxOCwxNSArODE4LDE0IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFyZyArPSBpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zm
c2V0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBtX2dyYXBoLm1fc3RhY2tB
Y2Nlc3NEYXRhLmFkZChhcmcsIEZsdXNoZWRKU1ZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb2RlKiBjaGVjayA9IG51bGxw
dHI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUgfHwg
aW5saW5lQ2FsbEZyYW1lLT5pc1ZhcmFyZ3MoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjaGVjayA9IGluc2VydGlvblNldC5pbnNlcnROb2RlKAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG5vZGVJbmRleCwgU3BlY05vbmUsIENoZWNrSW5Cb3VuZHMs
IG5vZGUtPm9yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3Jh
cGgudmFyQXJnQ2hpbGQobm9kZSwgMSksIEVkZ2UoZ2V0QXJyYXlMZW5ndGgoY2FuZGlkYXRlKSwg
SW50MzJVc2UpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gaW5z
ZXJ0aW9uU2V0Lmluc2VydE5vZGUoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5v
ZGVJbmRleCwgbm9kZS0+cHJlZGljdGlvbigpLCBHZXRTdGFjaywgbm9kZS0+b3JpZ2luLCBPcElu
Zm8oZGF0YSksIEVkZ2UoY2hlY2ssIFVudHlwZWRVc2UpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbm9kZUluZGV4LCBub2RlLT5wcmVkaWN0aW9uKCksIEdldFN0YWNrLCBub2Rl
LT5vcmlnaW4sIE9wSW5mbyhkYXRhKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDEzNzQ5MTliZTllMjEz
NDU2ZjkyN2Y3YzM2MDJkNTdiYzI2Y2ZkMGYuLjkyYWQ4NjZjYzY5NmQ5ZTY3MzdjZmI1ZjJmNjZj
YWZlZTNhODNjOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCkBAIC02OTIwLDEwICs2OTIwLDcgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6
cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAgICAgIE5vZGUqIGJhc2UgPSBnZXQo
Ynl0ZWNvZGUubV9iYXNlKTsKICAgICAgICAgICAgIEFycmF5TW9kZSBhcnJheU1vZGUgPSBnZXRB
cnJheU1vZGUoYnl0ZWNvZGUubWV0YWRhdGEoY29kZUJsb2NrKS5tX2FycmF5UHJvZmlsZSwgQXJy
YXk6OlJlYWQpOwogICAgICAgICAgICAgTm9kZSogcHJvcGVydHkgPSBnZXQoYnl0ZWNvZGUubV9w
cm9wZXJ0eSk7Ci0gICAgICAgICAgICBhZGRWYXJBcmdDaGlsZChiYXNlKTsKLSAgICAgICAgICAg
IGFkZFZhckFyZ0NoaWxkKHByb3BlcnR5KTsKLSAgICAgICAgICAgIGFkZFZhckFyZ0NoaWxkKG51
bGxwdHIpOwotICAgICAgICAgICAgTm9kZSogaGFzSXRlcmFibGVQcm9wZXJ0eSA9IGFkZFRvR3Jh
cGgoTm9kZTo6VmFyQXJnLCBIYXNJbmRleGVkUHJvcGVydHksIE9wSW5mbyhhcnJheU1vZGUuYXNX
b3JkKCkpLCBPcEluZm8oc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFByb3BlcnR5U2xvdDo6SW50ZXJu
YWxNZXRob2RUeXBlOjpHZXRPd25Qcm9wZXJ0eSkpKTsKKyAgICAgICAgICAgIE5vZGUqIGhhc0l0
ZXJhYmxlUHJvcGVydHkgPSBhZGRUb0dyYXBoKEhhc0luZGV4ZWRQcm9wZXJ0eSwgT3BJbmZvKGFy
cmF5TW9kZS5hc1dvcmQoKSksIE9wSW5mbyhzdGF0aWNfY2FzdDx1aW50MzJfdD4oUHJvcGVydHlT
bG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OkdldE93blByb3BlcnR5KSksIGJhc2UsIHByb3BlcnR5
KTsKICAgICAgICAgICAgIG1fZXhpdE9LID0gZmFsc2U7IC8vIEhhc0luZGV4ZWRQcm9wZXJ0eSBt
dXN0IGJlIHRyZWF0ZWQgYXMgaWYgaXQgY2xvYmJlcnMgZXhpdCBzdGF0ZSwgc2luY2UgRml4dXBQ
aGFzZSBtYXkgbWFrZSBpdCBnZW5lcmljLgogICAgICAgICAgICAgc2V0KGJ5dGVjb2RlLm1fZHN0
LCBoYXNJdGVyYWJsZVByb3BlcnR5KTsKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2hhc19p
bmRleGVkX3Byb3BlcnR5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXpl
LmgKaW5kZXggNWEwZjExNzlmOWNiMDAwMjA2Njc4MmU4ZjUzNjFlZTYzODdkOWYwYS4uMzcyZWZj
YjlkMjY2ZmU4ZTlkOTJmYjI4NGM5MmI2ZTI5OWUxN2E0MSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTMyMSw3ICszMjEsNyBAQCB2b2lkIGNsb2JiZXJp
emUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29u
c3QgV3JpdGVGdQogICAgICAgICAgICAgaWYgKG1vZGUuaXNJbkJvdW5kcygpKSB7CiAgICAgICAg
ICAgICAgICAgcmVhZChCdXR0ZXJmbHlfcHVibGljTGVuZ3RoKTsKICAgICAgICAgICAgICAgICBy
ZWFkKEluZGV4ZWRJbnQzMlByb3BlcnRpZXMpOwotICAgICAgICAgICAgICAgIGRlZihIZWFwTG9j
YXRpb24oSGFzSW5kZXhlZFByb3BlcnR5TG9jLCBJbmRleGVkSW50MzJQcm9wZXJ0aWVzLCBncmFw
aC52YXJBcmdDaGlsZChub2RlLCAwKSwgZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkpLCBMYXp5
Tm9kZShub2RlKSk7CisgICAgICAgICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihIYXNJbmRleGVk
UHJvcGVydHlMb2MsIEluZGV4ZWRJbnQzMlByb3BlcnRpZXMsIG5vZGUtPmNoaWxkMSgpLCBub2Rl
LT5jaGlsZDIoKSksIExhenlOb2RlKG5vZGUpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICByZWFkKEhlYXApOwpAQCAtMzMyLDcgKzMzMiw3IEBA
IHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5j
dG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgICAgICBpZiAobW9kZS5pc0luQm91bmRz
KCkpIHsKICAgICAgICAgICAgICAgICByZWFkKEJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpOwogICAg
ICAgICAgICAgICAgIHJlYWQoSW5kZXhlZERvdWJsZVByb3BlcnRpZXMpOwotICAgICAgICAgICAg
ICAgIGRlZihIZWFwTG9jYXRpb24oSGFzSW5kZXhlZFByb3BlcnR5TG9jLCBJbmRleGVkRG91Ymxl
UHJvcGVydGllcywgZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCksIGdyYXBoLnZhckFyZ0NoaWxk
KG5vZGUsIDEpKSwgTGF6eU5vZGUobm9kZSkpOworICAgICAgICAgICAgICAgIGRlZihIZWFwTG9j
YXRpb24oSGFzSW5kZXhlZFByb3BlcnR5TG9jLCBJbmRleGVkRG91YmxlUHJvcGVydGllcywgbm9k
ZS0+Y2hpbGQxKCksIG5vZGUtPmNoaWxkMigpKSwgTGF6eU5vZGUobm9kZSkpOwogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJlYWQoSGVhcCk7CkBA
IC0zNDMsNyArMzQzLDcgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9k
ZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgICAgIGlm
IChtb2RlLmlzSW5Cb3VuZHMoKSkgewogICAgICAgICAgICAgICAgIHJlYWQoQnV0dGVyZmx5X3B1
YmxpY0xlbmd0aCk7CiAgICAgICAgICAgICAgICAgcmVhZChJbmRleGVkQ29udGlndW91c1Byb3Bl
cnRpZXMpOwotICAgICAgICAgICAgICAgIGRlZihIZWFwTG9jYXRpb24oSGFzSW5kZXhlZFByb3Bl
cnR5TG9jLCBJbmRleGVkQ29udGlndW91c1Byb3BlcnRpZXMsIGdyYXBoLnZhckFyZ0NoaWxkKG5v
ZGUsIDApLCBncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKSksIExhenlOb2RlKG5vZGUpKTsKKyAg
ICAgICAgICAgICAgICBkZWYoSGVhcExvY2F0aW9uKEhhc0luZGV4ZWRQcm9wZXJ0eUxvYywgSW5k
ZXhlZENvbnRpZ3VvdXNQcm9wZXJ0aWVzLCBub2RlLT5jaGlsZDEoKSwgbm9kZS0+Y2hpbGQyKCkp
LCBMYXp5Tm9kZShub2RlKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgcmVhZChIZWFwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggNjJiNzlmZmFiMzg0M2M2
ZGRjNjhmMDg4MDMzN2ZhOWJlMjViMDkxZS4uMjZmODViZTM3MjllMTA0M2JmNjYzNzM1MWY4YzIy
NGQ5YzY2YmE4NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25z
dGFudEZvbGRpbmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
b25zdGFudEZvbGRpbmdQaGFzZS5jcHAKQEAgLTM0MSw5ICszNDEsNyBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgICAgIEpTVmFsdWUgcmlnaHQgPSBtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQy
KCkpLnZhbHVlKCk7CiAgICAgICAgICAgICAgICAgaWYgKGxlZnQgJiYgcmlnaHQgJiYgbGVmdC5p
c0ludDMyKCkgJiYgcmlnaHQuaXNJbnQzMigpCiAgICAgICAgICAgICAgICAgICAgICYmIHN0YXRp
Y19jYXN0PHVpbnQzMl90PihsZWZ0LmFzSW50MzIoKSkgPCBzdGF0aWNfY2FzdDx1aW50MzJfdD4o
cmlnaHQuYXNJbnQzMigpKSkgewotCi0gICAgICAgICAgICAgICAgICAgIE5vZGUqIHplcm8gPSBt
X2luc2VydGlvblNldC5pbnNlcnRDb25zdGFudChpbmRleEluQmxvY2ssIG5vZGUtPm9yaWdpbiwg
anNOdW1iZXIoMCkpOwotICAgICAgICAgICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9JZGVudGl0
eU9uKHplcm8pOworICAgICAgICAgICAgICAgICAgICBub2RlLT5yZW1vdmUobV9ncmFwaCk7CiAg
ICAgICAgICAgICAgICAgICAgIGVsaW1pbmF0ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICB9CkBAIC00MTIsMTEgKzQxMCwxMCBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIE5vZGUqIGxlbmd0aCA9IGVtaXRD
b2RlVG9HZXRBcmd1bWVudHNBcnJheUxlbmd0aCgKICAgICAgICAgICAgICAgICAgICAgbV9pbnNl
cnRpb25TZXQsIGFyZ3VtZW50cywgaW5kZXhJbkJsb2NrLCBub2RlLT5vcmlnaW4pOwotICAgICAg
ICAgICAgICAgIE5vZGUqIGNoZWNrID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKKyAgICAg
ICAgICAgICAgICBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKAogICAgICAgICAgICAgICAgICAg
ICBpbmRleEluQmxvY2ssIFNwZWNOb25lLCBDaGVja0luQm91bmRzLCBub2RlLT5vcmlnaW4sCiAg
ICAgICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkMigpLCBFZGdlKGxlbmd0aCwgSW50MzJVc2Up
KTsKICAgICAgICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9HZXRTdGFjayhkYXRhKTsKLSAgICAg
ICAgICAgICAgICBub2RlLT5jaGlsZDEoKSA9IEVkZ2UoY2hlY2ssIFVudHlwZWRVc2UpOwogICAg
ICAgICAgICAgICAgIGVsaW1pbmF0ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5j
cHAKaW5kZXggZmJjOWFjMjg1M2JkM2VmZTlkMjAyYWE5YjI2YWE4NjE0MzU1MjE1NC4uZTY3MWVl
M2VhYTE0ZWRhMWE4OThiODNjMjk1YTYxNmE1MzRlYTEyNiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xOTA0LDEzICsxOTA0LDEzIEBAIHByaXZh
dGU6CiAgICAgICAgICAgICBub2RlLT5zZXRBcnJheU1vZGUoCiAgICAgICAgICAgICAgICAgbm9k
ZS0+YXJyYXlNb2RlKCkucmVmaW5lKAogICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLCBub2Rl
LAotICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApLT5wcmVk
aWN0aW9uKCksCi0gICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwg
MSktPnByZWRpY3Rpb24oKSwKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGQxKCktPnBy
ZWRpY3Rpb24oKSwKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGQyKCktPnByZWRpY3Rp
b24oKSwKICAgICAgICAgICAgICAgICAgICAgU3BlY05vbmUpKTsKLSAgICAgICAgICAgIAotICAg
ICAgICAgICAgYmxlc3NBcnJheU9wZXJhdGlvbihtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDAp
LCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUs
IDIpKTsKLSAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obV9ncmFwaC52YXJBcmdDaGlsZChu
b2RlLCAwKSk7Ci0gICAgICAgICAgICBmaXhFZGdlPEludDMyVXNlPihtX2dyYXBoLnZhckFyZ0No
aWxkKG5vZGUsIDEpKTsKKworICAgICAgICAgICAgYmxlc3NBcnJheU9wZXJhdGlvbihub2RlLT5j
aGlsZDEoKSwgbm9kZS0+Y2hpbGQyKCksIG5vZGUtPmNoaWxkMygpKTsKKyAgICAgICAgICAgIGZp
eEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgZml4RWRnZTxJbnQz
MlVzZT4obm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSBHZXREaXJlY3RQbmFtZTogewpAQCAtMzU0OSwyOSArMzU0OSwxOCBAQCBwcml2
YXRlOgogICAgIHsKICAgICAgICAgbm9kZS0+c2V0T3AoSGFzSW5kZXhlZFByb3BlcnR5KTsKICAg
ICAgICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRlKTsKLQotICAgICAgICB7Ci0g
ICAgICAgICAgICB1bnNpZ25lZCBmaXJzdENoaWxkID0gbV9ncmFwaC5tX3ZhckFyZ0NoaWxkcmVu
LnNpemUoKTsKLSAgICAgICAgICAgIHVuc2lnbmVkIG51bUNoaWxkcmVuID0gMzsKLSAgICAgICAg
ICAgIG1fZ3JhcGgubV92YXJBcmdDaGlsZHJlbi5hcHBlbmQobm9kZS0+Y2hpbGQxKCkpOwotICAg
ICAgICAgICAgbV9ncmFwaC5tX3ZhckFyZ0NoaWxkcmVuLmFwcGVuZChub2RlLT5jaGlsZDIoKSk7
Ci0gICAgICAgICAgICBtX2dyYXBoLm1fdmFyQXJnQ2hpbGRyZW4uYXBwZW5kKEVkZ2UoKSk7Ci0g
ICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVIYXNWYXJBcmdzKTsKLSAgICAgICAgICAg
IG5vZGUtPmNoaWxkcmVuID0gQWRqYWNlbmN5TGlzdChBZGphY2VuY3lMaXN0OjpWYXJpYWJsZSwg
Zmlyc3RDaGlsZCwgbnVtQ2hpbGRyZW4pOwotICAgICAgICB9Ci0KICAgICAgICAgbm9kZS0+c2V0
QXJyYXlNb2RlKAogICAgICAgICAgICAgbm9kZS0+YXJyYXlNb2RlKCkucmVmaW5lKAogICAgICAg
ICAgICAgICAgIG1fZ3JhcGgsIG5vZGUsCi0gICAgICAgICAgICAgICAgbV9ncmFwaC52YXJBcmdD
aGlsZChub2RlLCAwKS0+cHJlZGljdGlvbigpLAotICAgICAgICAgICAgICAgIG1fZ3JhcGgudmFy
QXJnQ2hpbGQobm9kZSwgMSktPnByZWRpY3Rpb24oKSwKKyAgICAgICAgICAgICAgICBub2RlLT5j
aGlsZDEoKS0+cHJlZGljdGlvbigpLAorICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkMigpLT5w
cmVkaWN0aW9uKCksCiAgICAgICAgICAgICAgICAgU3BlY05vbmUpKTsKICAgICAgICAgbm9kZS0+
c2V0SW50ZXJuYWxNZXRob2RUeXBlKFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpI
YXNQcm9wZXJ0eSk7CiAKLSAgICAgICAgYmxlc3NBcnJheU9wZXJhdGlvbihtX2dyYXBoLnZhckFy
Z0NoaWxkKG5vZGUsIDApLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpLCBtX2dyYXBoLnZh
ckFyZ0NoaWxkKG5vZGUsIDIpKTsKKyAgICAgICAgYmxlc3NBcnJheU9wZXJhdGlvbihub2RlLT5j
aGlsZDEoKSwgbm9kZS0+Y2hpbGQyKCksIG5vZGUtPmNoaWxkMygpKTsKIAotICAgICAgICBmaXhF
ZGdlPENlbGxVc2U+KG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCkpOwotICAgICAgICBmaXhF
ZGdlPEludDMyVXNlPihtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKKyAgICAgICAgZml4
RWRnZTxDZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIGZpeEVkZ2U8SW50MzJVc2U+
KG5vZGUtPmNoaWxkMigpKTsKICAgICB9CiAKICAgICB2b2lkIGZpeHVwTm9ybWFsaXplTWFwS2V5
KE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0lu
dGVnZXJDaGVja0NvbWJpbmluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHSW50ZWdlckNoZWNrQ29tYmluaW5nUGhhc2UuY3BwCmluZGV4IDVmN2Y4ZjE2OTA0ODMyMWVi
OThlYzBiM2Q1ZTJlZmIyZWQyNjk5MTMuLjI0ZTAzZmZiNzVmNzJkZDZmYzkwZDdkMzAwZjg3YTJk
YzgwNjdhOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW50ZWdl
ckNoZWNrQ29tYmluaW5nUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHSW50ZWdlckNoZWNrQ29tYmluaW5nUGhhc2UuY3BwCkBAIC0xNTAsNyArMTUwLDYgQEAgcHVi
bGljOgogICAgICAgICBDb2RlT3JpZ2luIG1fbWF4T3JpZ2luOwogICAgICAgICB1bnNpZ25lZCBt
X2NvdW50IHsgMCB9OyAvLyBJZiB0aGlzIGlzIHplcm8gdGhlbiB0aGUgYm91bmRzIHdvbid0IG5l
Y2Vzc2FyaWx5IG1ha2Ugc2Vuc2UuCiAgICAgICAgIGJvb2wgbV9ob2lzdGVkIHsgZmFsc2UgfTsK
LSAgICAgICAgTm9kZSogbV9kZXBlbmRlbmN5IHsgbnVsbHB0ciB9OwogICAgIH07CiAKICAgICBJ
bnRlZ2VyQ2hlY2tDb21iaW5pbmdQaGFzZShHcmFwaCYgZ3JhcGgpCkBAIC0yNTgsMTUgKzI1Nywx
NCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFyaXRoOjpVbmNoZWNr
ZWQpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgICAgICBOb2RlKiBtaW5DaGVjayA9IG51bGxwdHI7CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChtaW5Ob2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtaW5DaGVjayA9IG1f
aW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCisgICAgICAgICAgICAgICAgICAgICAgICBtX2luc2Vy
dGlvblNldC5pbnNlcnROb2RlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVJbmRl
eCwgU3BlY05vbmUsIENoZWNrSW5Cb3VuZHMsIG5vZGUtPm9yaWdpbiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBFZGdlKG1pbk5vZGUsIEludDMyVXNlKSwgRWRnZShkYXRhLm1fa2V5Lm1f
a2V5LCBJbnQzMlVzZSkpOwogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
ICAgIG1fbWFwW2RhdGEubV9rZXldLm1fZGVwZW5kZW5jeSA9IG1faW5zZXJ0aW9uU2V0Lmluc2Vy
dE5vZGUoCisgICAgICAgICAgICAgICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCiAg
ICAgICAgICAgICAgICAgICAgICAgICBub2RlSW5kZXgsIFNwZWNOb25lLCBDaGVja0luQm91bmRz
LCBub2RlLT5vcmlnaW4sCi0gICAgICAgICAgICAgICAgICAgICAgICBFZGdlKG1heE5vZGUsIElu
dDMyVXNlKSwgRWRnZShkYXRhLm1fa2V5Lm1fa2V5LCBJbnQzMlVzZSksIEVkZ2UobWluQ2hlY2ss
IFVudHlwZWRVc2UpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEVkZ2UobWF4Tm9kZSwgSW50
MzJVc2UpLCBFZGdlKGRhdGEubV9rZXkubV9rZXksIEludDMyVXNlKSk7CiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAKQEAgLTI4
Niw3ICsyODQsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgY2FzZSBBcnJheUJvdW5kczoKLSAgICAgICAgICAgICAgICBu
b2RlLT5jb252ZXJ0VG9JZGVudGl0eU9uKG1fbWFwW2RhdGEubV9rZXldLm1fZGVwZW5kZW5jeSk7
CisgICAgICAgICAgICAgICAgbm9kZS0+cmVtb3ZlKG1fZ3JhcGgpOwogICAgICAgICAgICAgICAg
IG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg
ICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ludGVnZXJSYW5n
ZU9wdGltaXphdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW50
ZWdlclJhbmdlT3B0aW1pemF0aW9uUGhhc2UuY3BwCmluZGV4IDgxMTgxZWIwYjRiM2U5Y2NkOGE0
ZWFjY2VjNDQ2Y2ZmNjE1MTM1OGQuLjZiNzE5Y2RiYzMxZmZiODgyY2VlNmQwNDc3M2I2MmNjMWNj
YTJmYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW50ZWdlclJh
bmdlT3B0aW1pemF0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHSW50ZWdlclJhbmdlT3B0aW1pemF0aW9uUGhhc2UuY3BwCkBAIC0xMzM3LDggKzEzMzcsNyBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBpZiAo
bm9uTmVnYXRpdmUgJiYgbGVzc1RoYW5MZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IGV4ZWN1dGVOb2RlKGJsb2NrLT5hdChub2RlSW5kZXgpKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIFdlIGp1c3QgbmVlZCB0byBtYWtlIHN1cmUgd2UgYXJlIGEgdmFsdWUtcHJvZHVjaW5n
IG5vZGUuCi0gICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9JZGVudGl0eU9u
KG5vZGUtPmNoaWxkMSgpLm5vZGUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5y
ZW1vdmUobV9ncmFwaCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsK
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRleCBjMDlhMTc2NjJhOGI5ZDAwNjA0
OTNmZmY0ODQyYzllODhiZTE4ZGQyLi4zNzZlZmJlMmM0Yjk0MzUxN2Y4MjYxYzU2NDJkNGMwMTZm
ZTkyM2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCkBAIC0yNjQs
NyArMjY0LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKENo
ZWNrTm90RW1wdHksIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhBc3NlcnROb3RFbXB0
eSwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrQmFkQ2VsbCwgTm9kZU11c3RH
ZW5lcmF0ZSkgXAotICAgIG1hY3JvKENoZWNrSW5Cb3VuZHMsIE5vZGVNdXN0R2VuZXJhdGUgfCBO
b2RlUmVzdWx0SlMpIFwKKyAgICBtYWNybyhDaGVja0luQm91bmRzLCBOb2RlTXVzdEdlbmVyYXRl
KSBcCiAgICAgbWFjcm8oQ2hlY2tTdHJpbmdJZGVudCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAg
IG1hY3JvKENoZWNrVHlwZUluZm9GbGFncywgTm9kZU11c3RHZW5lcmF0ZSkgLyogVGFrZXMgYW4g
T3BJbmZvIHdpdGggdGhlIGZsYWdzIHlvdSB3YW50IHRvIHRlc3QgYXJlIHNldCAqL1wKICAgICBt
YWNybyhDaGVja1N1YkNsYXNzLCBOb2RlTXVzdEdlbmVyYXRlKSBcCkBAIC00NTgsNyArNDU4LDcg
QEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIFwKICAgICAvKiBGb3ItaW4g
ZW51bWVyYXRpb24gb3Bjb2RlcyAqL1wKICAgICBtYWNybyhHZXRFbnVtZXJhYmxlTGVuZ3RoLCBO
b2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdEpTKSBcCi0gICAgbWFjcm8oSGFzSW5kZXhlZFBy
b3BlcnR5LCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVIYXNWYXJBcmdzKSBcCisgICAgbWFjcm8o
SGFzSW5kZXhlZFByb3BlcnR5LCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKEhhc1N0
cnVjdHVyZVByb3BlcnR5LCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKEhhc0dlbmVy
aWNQcm9wZXJ0eSwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKICAgICBtYWNybyhHZXREaXJlY3RQbmFt
ZSwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdzIHwgTm9kZVJlc3VsdEpTKSBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAppbmRleCBiNjk0OWFhMDM1YzEyZmE3NDlk
NTgwY2M3YzJhZWNjYThkOTJjMTY4Li4zOWQxYmM0MWVkYTc1NDkzNjI5YmM3MzlhNmVlMDEyNTE4
YzczNDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAKQEAgLTQwOCw3ICs0
MDgsOCBAQCBQbGFuOjpDb21waWxhdGlvblBhdGggUGxhbjo6Y29tcGlsZUluVGhyZWFkSW1wbCgp
CiAgICAgICAgICAgICBSVU5fUEhBU0UocGVyZm9ybUxvb3BQcmVIZWFkZXJDcmVhdGlvbik7CiAg
ICAgICAgIFJVTl9QSEFTRShwZXJmb3JtQ1BTUmV0aHJlYWRpbmcpOwogICAgICAgICBSVU5fUEhB
U0UocGVyZm9ybVNTQUNvbnZlcnNpb24pOwotICAgICAgICBSVU5fUEhBU0UocGVyZm9ybVNTQUxv
d2VyaW5nKTsKKyAgICAgICAgLy8gV2UgY2FuIHNhZmVseSBsb3dlciBhbnl0aGluZyBjb3VsZCBu
b3QgYmUgaG9pc3RlZC4KKyAgICAgICAgUlVOX1BIQVNFKHBlcmZvcm1FZmZlY3RmdWxTU0FMb3dl
cmluZyk7CiAgICAgICAgIAogICAgICAgICAvLyBJZGVhbGx5LCB0aGVzZSB3b3VsZCBiZSBydW4g
dG8gZml4cG9pbnQgd2l0aCB0aGUgb2JqZWN0IGFsbG9jYXRpb24gc2lua2luZyBwaGFzZS4KICAg
ICAgICAgUlVOX1BIQVNFKHBlcmZvcm1Bcmd1bWVudHNFbGltaW5hdGlvbik7CkBAIC00NDUsMTEg
KzQ0NiwxMyBAQCBQbGFuOjpDb21waWxhdGlvblBhdGggUGxhbjo6Y29tcGlsZUluVGhyZWFkSW1w
bCgpCiAgICAgICAgIFJVTl9QSEFTRShwZXJmb3JtTGl2ZW5lc3NBbmFseXNpcyk7CiAgICAgICAg
IFJVTl9QSEFTRShwZXJmb3JtQ0ZBKTsKICAgICAgICAgUlVOX1BIQVNFKHBlcmZvcm1MSUNNKTsK
KyAgICAgICAgLy8gVGhpcyBtdXN0IHJ1biBhZnRlciBMSUNNIHRvIHByZXZlbnQgR2V0QnlWYWxz
IGZyb20gYmVpbmcgaG9pc3RlZCBhYm92ZSB0aGVpciBDaGVja0luQm91bmRzLgorICAgICAgICBS
VU5fUEhBU0UocGVyZm9ybVNTQUxvd2VyaW5nKTsKIAogICAgICAgICAvLyBGSVhNRTogQ3VycmVu
dGx5OiBJbnRlZ2VyUmFuZ2VPcHRpbWl6YXRpb24gKm11c3QqIGJlIHJ1biBhZnRlciBMSUNNLgog
ICAgICAgICAvLwogICAgICAgICAvLyBJbnRlZ2VyUmFuZ2VPcHRpbWl6YXRpb24gbWFrZXMgY2hh
bmdlcyBvbiBub2RlcyBiYXNlZCBvbiBwcmVjZWRpbmcgYmxvY2tzCi0gICAgICAgIC8vIGFuZCBu
b2Rlcy4gTElDTSBtb3ZlcyBub2RlcyB3aGljaCBjYW4gaW52YWxpZGF0ZXMgYXNzdW1wdGlvbnMg
dXNlZAorICAgICAgICAvLyBhbmQgbm9kZXMuIExJQ00gbW92ZXMgbm9kZXMgd2hpY2ggY2FuIGlu
dmFsaWRhdGUgYXNzdW1wdGlvbnMgdXNlZAogICAgICAgICAvLyBieSBJbnRlZ2VyUmFuZ2VPcHRp
bWl6YXRpb24uCiAgICAgICAgIC8vCiAgICAgICAgIC8vIElkZWFsbHksIHRoZSBkZXBlbmRlbmNp
ZXMgc2hvdWxkIGJlIGV4cGxpY2l0LiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1NzUzNC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU1NBTG93ZXJpbmdQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NT
QUxvd2VyaW5nUGhhc2UuY3BwCmluZGV4IGQxZmU5OTY5MzIxNDBmYTA3MjljZGNmMDlkMGZkZjcy
MzM2ZWJhZTMuLjE5MjNhYWQ2MzFhMTExNmMwMmM2NWY0MzYxOTQwMDYxYTlmZDRlOTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FMb3dlcmluZ1BoYXNlLmNwcApA
QCAtMzYsNiArMzYsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKK3Rl
bXBsYXRlIDxib29sIExvd2VyTm9uRWZmZWN0ZnVsPgogY2xhc3MgU1NBTG93ZXJpbmdQaGFzZSA6
IHB1YmxpYyBQaGFzZSB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwog
ICAgIApAQCAtNzgsMTEgKzc5LDEzIEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQXRvbWljc1N1
YjoKICAgICAgICAgY2FzZSBBdG9taWNzWG9yOgogICAgICAgICBjYXNlIEhhc0luZGV4ZWRQcm9w
ZXJ0eToKLSAgICAgICAgICAgIGxvd2VyQm91bmRzQ2hlY2sobV9ncmFwaC5jaGlsZChtX25vZGUs
IDApLCBtX2dyYXBoLmNoaWxkKG1fbm9kZSwgMSksIG1fZ3JhcGguY2hpbGQobV9ub2RlLCAyKSk7
CisgICAgICAgICAgICBpZiAoTG93ZXJOb25FZmZlY3RmdWwpCisgICAgICAgICAgICAgICAgbG93
ZXJCb3VuZHNDaGVjayhtX2dyYXBoLmNoaWxkKG1fbm9kZSwgMCksIG1fZ3JhcGguY2hpbGQobV9u
b2RlLCAxKSwgbV9ncmFwaC5jaGlsZChtX25vZGUsIDIpKTsKICAgICAgICAgICAgIGJyZWFrOwog
CiAgICAgICAgIGNhc2UgR2V0QnlWYWw6IHsKLSAgICAgICAgICAgIGxvd2VyQm91bmRzQ2hlY2so
bV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDApLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9k
ZSwgMSksIG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAyKSk7CisgICAgICAgICAgICBpZiAo
TG93ZXJOb25FZmZlY3RmdWwpCisgICAgICAgICAgICAgICAgbG93ZXJCb3VuZHNDaGVjayhtX2dy
YXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMCksIG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAx
KSwgbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDIpKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgICAgICAKQEAgLTEzNSwxNCArMTM4LDkgQEAgcHJpdmF0ZToKICAg
ICAgICAgTm9kZSogbGVuZ3RoID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKICAgICAgICAg
ICAgIG1fbm9kZUluZGV4LCBTcGVjSW50MzJPbmx5LCBvcCwgbV9ub2RlLT5vcmlnaW4sCiAgICAg
ICAgICAgICBPcEluZm8obV9ub2RlLT5hcnJheU1vZGUoKS5hc1dvcmQoKSksIEVkZ2UoYmFzZS5u
b2RlKCksIEtub3duQ2VsbFVzZSksIHN0b3JhZ2UpOwotICAgICAgICBOb2RlKiBjaGVja0luQm91
bmRzID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKKyAgICAgICAgbV9pbnNlcnRpb25TZXQu
aW5zZXJ0Tm9kZSgKICAgICAgICAgICAgIG1fbm9kZUluZGV4LCBTcGVjSW50MzJPbmx5LCBDaGVj
a0luQm91bmRzLCBtX25vZGUtPm9yaWdpbiwKICAgICAgICAgICAgIGluZGV4LCBFZGdlKGxlbmd0
aCwgS25vd25JbnQzMlVzZSkpOwotCi0gICAgICAgIEFkamFjZW5jeUxpc3QgYWRqYWNlbmN5TGlz
dCA9IG1fZ3JhcGguY29weVZhcmFyZ0NoaWxkcmVuKG1fbm9kZSk7Ci0gICAgICAgIG1fZ3JhcGgu
bV92YXJBcmdDaGlsZHJlbi5hcHBlbmQoRWRnZShjaGVja0luQm91bmRzLCBVbnR5cGVkVXNlKSk7
Ci0gICAgICAgIGFkamFjZW5jeUxpc3Quc2V0TnVtQ2hpbGRyZW4oYWRqYWNlbmN5TGlzdC5udW1D
aGlsZHJlbigpICsgMSk7Ci0gICAgICAgIG1fbm9kZS0+Y2hpbGRyZW4gPSBhZGphY2VuY3lMaXN0
OwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCkBAIC0xNTQsNyArMTUyLDEyIEBA
IHByaXZhdGU6CiAKIGJvb2wgcGVyZm9ybVNTQUxvd2VyaW5nKEdyYXBoJiBncmFwaCkKIHsKLSAg
ICByZXR1cm4gcnVuUGhhc2U8U1NBTG93ZXJpbmdQaGFzZT4oZ3JhcGgpOworICAgIHJldHVybiBy
dW5QaGFzZTxTU0FMb3dlcmluZ1BoYXNlPHRydWU+PihncmFwaCk7Cit9CisKK2Jvb2wgcGVyZm9y
bUVmZmVjdGZ1bFNTQUxvd2VyaW5nKEdyYXBoJiBncmFwaCkKK3sKKyAgICByZXR1cm4gcnVuUGhh
c2U8U1NBTG93ZXJpbmdQaGFzZTxmYWxzZT4+KGdyYXBoKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6OkRGRwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FM
b3dlcmluZ1BoYXNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUxvd2VyaW5n
UGhhc2UuaAppbmRleCBlMWY0M2M4MTdlZjczNDMzZDZjM2NlNzQ1MTUwZTg3MTExZjE5NDM2Li41
MzdhZTJkYjA4NmU3YTg5YmM1ZTU1MDhiNDUwZTllNDM3ZGY3YjA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2UuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2UuaApAQCAtMzUsNiArMzUsNyBA
QCBjbGFzcyBHcmFwaDsKIC8vIGJhY2tlbmQuIFRoaXMgaXMgaW50ZW5kZWQgdG8gYmUgcnVuIGFm
dGVyIFNTQUNvbnZlcnNpb25QaGFzZS4KIAogYm9vbCBwZXJmb3JtU1NBTG93ZXJpbmcoR3JhcGgm
KTsKK2Jvb2wgcGVyZm9ybUVmZmVjdGZ1bFNTQUxvd2VyaW5nKEdyYXBoJik7CiAKIH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpERkcKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcAppbmRleCA3MGU3MDVkNzg0OTMyZDlkM2ZjMjcyNDkxMzJlZmQzZTNl
NWQ2NTI0Li41NWQ0MzA5MzE0Njk1Njc4ZTFiZDI0N2QyZWM3N2U5M2RiNGQwOGE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMTMx
ODUsOCArMTMxODUsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQWxsb2NhdGVOZXdB
cnJheVdpdGhTaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogCiB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlSGFzSW5kZXhlZFByb3BlcnR5KE5vZGUqIG5vZGUpCiB7Ci0gICAgU3Bl
Y3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDAp
KTsKLSAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgaW5kZXgodGhpcywgbV9ncmFwaC52
YXJBcmdDaGlsZChub2RlLCAxKSk7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlz
LCBub2RlLT5jaGlsZDEoKSk7CisgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIGluZGV4
KHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwog
CiAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOwpAQCAtMTMxOTgsOCArMTMxOTgsOCBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSGFzSW5kZXhlZFByb3BlcnR5KE5vZGUqIG5v
ZGUpCiAgICAgc3dpdGNoIChtb2RlLnR5cGUoKSkgewogICAgIGNhc2UgQXJyYXk6OkludDMyOgog
ICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6IHsKLSAgICAgICAgQVNTRVJUKCEhbV9ncmFwaC52
YXJBcmdDaGlsZChub2RlLCAyKSk7Ci0gICAgICAgIFN0b3JhZ2VPcGVyYW5kIHN0b3JhZ2UodGhp
cywgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAyKSk7CisgICAgICAgIEFTU0VSVCghIW5vZGUt
PmNoaWxkMygpKTsKKyAgICAgICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBub2RlLT5j
aGlsZDMoKSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoKHRoaXMpOwogCiAgICAgICAg
IEdQUlJlZyBzdG9yYWdlR1BSID0gc3RvcmFnZS5ncHIoKTsKQEAgLTEzMjIyLDggKzEzMjIyLDgg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUhhc0luZGV4ZWRQcm9wZXJ0eShOb2RlKiBu
b2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBBcnJheTo6RG91YmxlOiB7Ci0g
ICAgICAgIEFTU0VSVCghIW1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMikpOwotICAgICAgICBT
dG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMikp
OworICAgICAgICBBU1NFUlQoISFub2RlLT5jaGlsZDMoKSk7CisgICAgICAgIFN0b3JhZ2VPcGVy
YW5kIHN0b3JhZ2UodGhpcywgbm9kZS0+Y2hpbGQzKCkpOwogICAgICAgICBGUFJUZW1wb3Jhcnkg
c2NyYXRjaCh0aGlzKTsKICAgICAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBzY3JhdGNoLmZwcigp
OwogICAgICAgICBHUFJSZWcgc3RvcmFnZUdQUiA9IHN0b3JhZ2UuZ3ByKCk7CkBAIC0xMzI0MCw4
ICsxMzI0MCw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVIYXNJbmRleGVkUHJvcGVy
dHkoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgQXJyYXk6OkFy
cmF5U3RvcmFnZTogewotICAgICAgICBBU1NFUlQoISFtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUs
IDIpKTsKLSAgICAgICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBtX2dyYXBoLnZhckFy
Z0NoaWxkKG5vZGUsIDIpKTsKKyAgICAgICAgQVNTRVJUKCEhbm9kZS0+Y2hpbGQzKCkpOworICAg
ICAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIG5vZGUtPmNoaWxkMygpKTsKICAgICAg
ICAgR1BSVGVtcG9yYXJ5IHNjcmF0Y2godGhpcyk7CiAKICAgICAgICAgR1BSUmVnIHN0b3JhZ2VH
UFIgPSBzdG9yYWdlLmdwcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwCmluZGV4IDA5YjM0MjczY2JiN2NhYjQ0Y2Q4NjNlOTliMjg1OTBlODdjOTRi
MTIuLjNhOTgzNDkzOGEwZDNjMmJjNzI3MWFmYWIwOTY4NjNhNGQyZTU2NTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTQxMjEsMTAgKzQx
MjEsNiBAQCBwcml2YXRlOgogICAgICAgICBzcGVjdWxhdGUoCiAgICAgICAgICAgICBPdXRPZkJv
dW5kcywgbm9WYWx1ZSgpLCAwLAogICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVxdWFsKGxvd0lu
dDMyKG1fbm9kZS0+Y2hpbGQxKCkpLCBsb3dJbnQzMihtX25vZGUtPmNoaWxkMigpKSkpOwotCi0g
ICAgICAgIC8vIEV2ZW4gdGhvdWdoIHdlIGNsYWltIHRvIGhhdmUgSlNWYWx1ZSByZXN1bHQsIG5v
IHVzZXIgb2YgdXMgc2hvdWxkCi0gICAgICAgIC8vIGRlcGVuZCBvbiBvdXIgdmFsdWUuIFVzZXJz
IG9mIHRoaXMgbm9kZSBqdXN0IG5lZWQgdG8gbWFpbnRhaW4gdGhhdAotICAgICAgICAvLyB3ZSBk
b21pbmF0ZSB0aGVtLgogICAgIH0KICAgICAKICAgICB2b2lkIGNvbXBpbGVHZXRCeVZhbCgpCkBA
IC0xMDc2MCwxMyArMTA3NTYsMTIgQEAgcHJpdmF0ZToKICAgICAKICAgICB2b2lkIGNvbXBpbGVI
YXNJbmRleGVkUHJvcGVydHkoKQogICAgIHsKLSAgICAgICAgTFZhbHVlIGJhc2UgPSBsb3dDZWxs
KG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAwKSk7Ci0gICAgICAgIExWYWx1ZSBpbmRleCA9
IGxvd0ludDMyKG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxKSk7Ci0KICAgICAgICAgc3dp
dGNoIChtX25vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkgewogICAgICAgICBjYXNlIEFycmF5OjpJ
bnQzMjoKICAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czogewotICAgICAgICAgICAgTFZh
bHVlIHN0b3JhZ2UgPSBsb3dTdG9yYWdlKG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAyKSk7
CisgICAgICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7Cisg
ICAgICAgICAgICBMVmFsdWUgaW5kZXggPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMigpKTsKKyAg
ICAgICAgICAgIExWYWx1ZSBzdG9yYWdlID0gbG93U3RvcmFnZShtX25vZGUtPmNoaWxkMygpKTsK
ICAgICAgICAgICAgIExWYWx1ZSBpbnRlcm5hbE1ldGhvZFR5cGUgPSBtX291dC5jb25zdEludDMy
KHN0YXRpY19jYXN0PGludDMyX3Q+KG1fbm9kZS0+aW50ZXJuYWxNZXRob2RUeXBlKCkpKTsKIAog
ICAgICAgICAgICAgSW5kZXhlZEFic3RyYWN0SGVhcCYgaGVhcCA9IG1fbm9kZS0+YXJyYXlNb2Rl
KCkudHlwZSgpID09IEFycmF5OjpJbnQzMiA/CkBAIC0xMDc4Nyw3ICsxMDc4Miw3IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICAgICAgbGFzdE5leHQgPSBtX291dC5pbnNlcnROZXdCbG9ja3NCZWZv
cmUoc2xvd0Nhc2UpOwogCiAgICAgICAgICAgICBMVmFsdWUgY2hlY2tIb2xlUmVzdWx0VmFsdWUg
PQotICAgICAgICAgICAgICAgIG1fb3V0Lm5vdFplcm82NChtX291dC5sb2FkNjQoYmFzZUluZGV4
KGhlYXAsIHN0b3JhZ2UsIGluZGV4LCBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSkpKSk7
CisgICAgICAgICAgICAgICAgbV9vdXQubm90WmVybzY0KG1fb3V0LmxvYWQ2NChiYXNlSW5kZXgo
aGVhcCwgc3RvcmFnZSwgaW5kZXgsIG1fbm9kZS0+Y2hpbGQyKCkpKSk7CiAgICAgICAgICAgICBW
YWx1ZUZyb21CbG9jayBjaGVja0hvbGVSZXN1bHQgPSBtX291dC5hbmNob3IoY2hlY2tIb2xlUmVz
dWx0VmFsdWUpOwogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGNoZWNrSG9sZVJlc3VsdFZhbHVl
LCB1c3VhbGx5KGNvbnRpbnVhdGlvbiksIHJhcmVseShzbG93Q2FzZSkpOwogCkBAIC0xMDgwMSw3
ICsxMDc5Niw5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSBBcnJheTo6RG91YmxlOiB7Ci0gICAgICAgICAgICBMVmFsdWUgc3RvcmFnZSA9
IGxvd1N0b3JhZ2UobV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDIpKTsKKyAgICAgICAgICAg
IExWYWx1ZSBiYXNlID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIExW
YWx1ZSBpbmRleCA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgTFZh
bHVlIHN0b3JhZ2UgPSBsb3dTdG9yYWdlKG1fbm9kZS0+Y2hpbGQzKCkpOwogICAgICAgICAgICAg
TFZhbHVlIGludGVybmFsTWV0aG9kVHlwZSA9IG1fb3V0LmNvbnN0SW50MzIoc3RhdGljX2Nhc3Q8
aW50MzJfdD4obV9ub2RlLT5pbnRlcm5hbE1ldGhvZFR5cGUoKSkpOwogICAgICAgICAgICAgCiAg
ICAgICAgICAgICBJbmRleGVkQWJzdHJhY3RIZWFwJiBoZWFwID0gbV9oZWFwcy5pbmRleGVkRG91
YmxlUHJvcGVydGllczsKQEAgLTEwODIwLDcgKzEwODE3LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGxhc3ROZXh0ID0gbV9vdXQuaW5zZXJ0TmV3Qmxv
Y2tzQmVmb3JlKHNsb3dDYXNlKTsKIAotICAgICAgICAgICAgTFZhbHVlIGRvdWJsZVZhbHVlID0g
bV9vdXQubG9hZERvdWJsZShiYXNlSW5kZXgoaGVhcCwgc3RvcmFnZSwgaW5kZXgsIG1fZ3JhcGgu
dmFyQXJnQ2hpbGQobV9ub2RlLCAxKSkpOworICAgICAgICAgICAgTFZhbHVlIGRvdWJsZVZhbHVl
ID0gbV9vdXQubG9hZERvdWJsZShiYXNlSW5kZXgoaGVhcCwgc3RvcmFnZSwgaW5kZXgsIG1fbm9k
ZS0+Y2hpbGQyKCkpKTsKICAgICAgICAgICAgIExWYWx1ZSBjaGVja0hvbGVSZXN1bHRWYWx1ZSA9
IG1fb3V0LmRvdWJsZUVxdWFsKGRvdWJsZVZhbHVlLCBkb3VibGVWYWx1ZSk7CiAgICAgICAgICAg
ICBWYWx1ZUZyb21CbG9jayBjaGVja0hvbGVSZXN1bHQgPSBtX291dC5hbmNob3IoY2hlY2tIb2xl
UmVzdWx0VmFsdWUpOwogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGNoZWNrSG9sZVJlc3VsdFZh
bHVlLCB1c3VhbGx5KGNvbnRpbnVhdGlvbiksIHJhcmVseShzbG93Q2FzZSkpOwpAQCAtMTA4MzYs
NyArMTA4MzMsOSBAQCBwcml2YXRlOgogICAgICAgICB9CiAKICAgICAgICAgY2FzZSBBcnJheTo6
QXJyYXlTdG9yYWdlOiB7Ci0gICAgICAgICAgICBMVmFsdWUgc3RvcmFnZSA9IGxvd1N0b3JhZ2Uo
bV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDIpKTsKKyAgICAgICAgICAgIExWYWx1ZSBiYXNl
ID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIExWYWx1ZSBpbmRleCA9
IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgTFZhbHVlIHN0b3JhZ2Ug
PSBsb3dTdG9yYWdlKG1fbm9kZS0+Y2hpbGQzKCkpOwogICAgICAgICAgICAgTFZhbHVlIGludGVy
bmFsTWV0aG9kVHlwZSA9IG1fb3V0LmNvbnN0SW50MzIoc3RhdGljX2Nhc3Q8aW50MzJfdD4obV9u
b2RlLT5pbnRlcm5hbE1ldGhvZFR5cGUoKSkpOwogCiAgICAgICAgICAgICBMQmFzaWNCbG9jayBz
bG93Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CkBAIC0xMDg1NCw3ICsxMDg1Myw3IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICAgICAgbGFzdE5leHQgPSBtX291dC5pbnNlcnROZXdCbG9ja3NCZWZv
cmUoc2xvd0Nhc2UpOwogCiAgICAgICAgICAgICBMVmFsdWUgY2hlY2tIb2xlUmVzdWx0VmFsdWUg
PQotICAgICAgICAgICAgICAgIG1fb3V0Lm5vdFplcm82NChtX291dC5sb2FkNjQoYmFzZUluZGV4
KG1faGVhcHMuQXJyYXlTdG9yYWdlX3ZlY3Rvciwgc3RvcmFnZSwgaW5kZXgsIG1fZ3JhcGgudmFy
QXJnQ2hpbGQobV9ub2RlLCAxKSkpKTsKKyAgICAgICAgICAgICAgICBtX291dC5ub3RaZXJvNjQo
bV9vdXQubG9hZDY0KGJhc2VJbmRleChtX2hlYXBzLkFycmF5U3RvcmFnZV92ZWN0b3IsIHN0b3Jh
Z2UsIGluZGV4LCBtX25vZGUtPmNoaWxkMigpKSkpOwogICAgICAgICAgICAgVmFsdWVGcm9tQmxv
Y2sgY2hlY2tIb2xlUmVzdWx0ID0gbV9vdXQuYW5jaG9yKGNoZWNrSG9sZVJlc3VsdFZhbHVlKTsK
ICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChjaGVja0hvbGVSZXN1bHRWYWx1ZSwgdXN1YWxseShj
b250aW51YXRpb24pLCByYXJlbHkoc2xvd0Nhc2UpKTsKIApAQCAtMTA4NjksNiArMTA4NjgsOCBA
QCBwcml2YXRlOgogICAgICAgICB9CiAKICAgICAgICAgZGVmYXVsdDogeworICAgICAgICAgICAg
TFZhbHVlIGJhc2UgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZh
bHVlIGluZGV4ID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBMVmFs
dWUgaW50ZXJuYWxNZXRob2RUeXBlID0gbV9vdXQuY29uc3RJbnQzMihzdGF0aWNfY2FzdDxpbnQz
Ml90PihtX25vZGUtPmludGVybmFsTWV0aG9kVHlwZSgpKSk7CiAgICAgICAgICAgICBzZXRCb29s
ZWFuKG1fb3V0Lm5vdFplcm82NCh2bUNhbGwoSW50NjQsIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRp
b25IYXNJbmRleGVkUHJvcGVydHlCeUludCksIG1fY2FsbEZyYW1lLCBiYXNlLCBpbmRleCwgaW50
ZXJuYWxNZXRob2RUeXBlKSkpOwogICAgICAgICAgICAgYnJlYWs7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377152</attachid>
            <date>2019-08-23 14:08:46 -0700</date>
            <delta_ts>2019-08-23 15:10:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196715-20190823140845.patch</filename>
            <type>text/plain</type>
            <size>40268</size>
            <attacher name="Justin Michaud">justin_michaud</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
YzY2NjRmMDQ1NGNmZjc5ZmQ2NGEwMTczMWZkOWM2MTczNDJhMTc0Li4zNjU0NTQ0NjkyYWExNDIy
YTA3MTlmMzVmOGU1ODllM2YyMDFjYzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NSBAQAorMjAxOS0wOC0yMyAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBh
cHBsZS5jb20+CisKKyAgICAgICAgTm8gbG9uZ2VyIG1ha2UgQ2hlY2tJbkJvdW5kcyBhIGNoaWxk
IG9mIHRoZSB0aGluZ3MgdGhhdCByZWx5IG9uIGJlaW5nIGRvbWluYXRlZCBieSBpdAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NzE1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBzc2EgbG93ZXJp
bmcgb2Ygbm9uLWVmZmVjdGZ1bCBub2RlcyB0byBhZnRlciBsaWNtLCB0aGlzIHdheSB3ZSBjYW4g
bmV2ZXIgaG9pc3QgYSBub2RlIGFib3ZlIGl0cyBjaGVjay4KKyAgICAgICAgV2UgYWxzbyBhZGQg
YSBuZXcgQ2hlY2tlZEdldFN0YWNrIG5vZGUgdGhhdCBnZXRzIGxvd2VyZWQgaW4gc3NhIGxvd2Vy
aW5nLCBmb3IgdGhlIHNhbWUgcmVhc29uLgorCisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRl
cjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZH
QXJndW1lbnRzRWxpbWluYXRpb25QaGFzZS5jcHA6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9j
ayk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpj
bG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkNvbnN0YW50Rm9sZGluZ1BoYXNlOjpmb2xkQ29uc3RhbnRzKToK
KyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0Mp
OgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpG
aXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmNv
bnZlcnRUb0hhc0luZGV4ZWRQcm9wZXJ0eSk6CisgICAgICAgICogZGZnL0RGR0ludGVnZXJDaGVj
a0NvbWJpbmluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpJbnRlZ2VyQ2hlY2tDb21i
aW5pbmdQaGFzZTo6aGFuZGxlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdJbnRlZ2VyUmFuZ2VP
cHRpbWl6YXRpb25QaGFzZS5jcHA6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAg
KEpTQzo6REZHOjpOb2RlOjpoYXNTdGFja0FjY2Vzc0RhdGEpOgorICAgICAgICAqIGRmZy9ERkdO
b2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNl
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpMb2NhbE9TUkF2YWlsYWJpbGl0eUNhbGN1bGF0b3I6
OmV4ZWN1dGVOb2RlKToKKyAgICAgICAgKiBkZmcvREZHUGxhbi5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6UGxhbjo6Y29tcGlsZUluVGhyZWFkSW1wbCk6CisgICAgICAgICogZGZnL0RGR1ByZWRp
Y3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHUHV0U3RhY2tTaW5r
aW5nUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdTU0FDb252ZXJzaW9uUGhhc2UuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OlNTQUNvbnZlcnNpb25QaGFzZTo6cnVuKToKKyAgICAgICAgKiBk
ZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U1NBTG93ZXJp
bmdQaGFzZTo6aGFuZGxlTm9kZSk6CisgICAgICAgIChKU0M6OkRGRzo6U1NBTG93ZXJpbmdQaGFz
ZTo6bG93ZXJCb3VuZHNDaGVjayk6CisgICAgICAgIChKU0M6OkRGRzo6cGVyZm9ybVNTQUxvd2Vy
aW5nKToKKyAgICAgICAgKEpTQzo6REZHOjpwZXJmb3JtRWZmZWN0ZnVsU1NBTG93ZXJpbmcpOgor
ICAgICAgICAqIGRmZy9ERkdTU0FMb3dlcmluZ1BoYXNlLmg6CisgICAgICAgICogZGZnL0RGR1Nh
ZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVjdXRlKToKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlSGFzSW5kZXhlZFByb3BlcnR5KToKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZn
L0RGR1N0YWNrTGF5b3V0UGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlN0YWNrTGF5b3V0
UGhhc2U6OnJ1bik6CisgICAgICAgICogZGZnL0RGR1ZhbGlkYXRlLmNwcDoKKyAgICAgICAgKiBm
dGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToK
KyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpE
Rkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0IzOjpjb21waWxlQ2hlY2tJbkJvdW5kcyk6CisgICAgICAgIChKU0M6OkZUTDo6
REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVIYXNJbmRleGVkUHJvcGVydHkpOgorCiAyMDE5LTA4
LTIyICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS11bV1BFXSBGaXhlcyBmb3Igbm9uLXVuaWZpZWQgYnVpbGRzIGFmdGVyIHIyNDg1NDcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnBy
ZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaAppbmRleCAyNzY1NjkyNmE4ZDI5ZDI3ZWJlZWFhOWZmZGNhMjAzY2My
NWZhMGY3Li5jZTRhMDQ2NDViNGU5MDRjYjFiZmE1YjVlNzY3N2U0NmE2NzAwZGIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxp
bmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJl
dGVySW5saW5lcy5oCkBAIC0zODMsNyArMzgzLDggQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVy
PEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkK
ICAgICAgICAgc2V0Rm9yTm9kZShub2RlLCB2YWx1ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
LSAgICAgICAgCisKKyAgICBjYXNlIENoZWNrZWRHZXRTdGFjazoKICAgICBjYXNlIEdldFN0YWNr
OiB7CiAgICAgICAgIFN0YWNrQWNjZXNzRGF0YSogZGF0YSA9IG5vZGUtPnN0YWNrQWNjZXNzRGF0
YSgpOwogICAgICAgICBBYnN0cmFjdFZhbHVlIHZhbHVlID0gbV9zdGF0ZS5vcGVyYW5kKGRhdGEt
PmxvY2FsKTsKQEAgLTM1MTYsMTYgKzM1MTcsMTEgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVy
PEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkK
ICAgICBjYXNlIENoZWNrSW5Cb3VuZHM6IHsKICAgICAgICAgSlNWYWx1ZSBsZWZ0ID0gZm9yTm9k
ZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAgSlNWYWx1ZSByaWdodCA9IGZvck5v
ZGUobm9kZS0+Y2hpbGQyKCkpLnZhbHVlKCk7Ci0gICAgICAgIGlmIChsZWZ0ICYmIHJpZ2h0ICYm
IGxlZnQuaXNJbnQzMigpICYmIHJpZ2h0LmlzSW50MzIoKSAmJiBzdGF0aWNfY2FzdDx1aW50MzJf
dD4obGVmdC5hc0ludDMyKCkpIDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHJpZ2h0LmFzSW50MzIo
KSkpCisgICAgICAgIGlmIChsZWZ0ICYmIHJpZ2h0ICYmIGxlZnQuaXNJbnQzMigpICYmIHJpZ2h0
LmlzSW50MzIoKQorICAgICAgICAgICAgJiYgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGxlZnQuYXNJ
bnQzMigpKSA8IHN0YXRpY19jYXN0PHVpbnQzMl90PihyaWdodC5hc0ludDMyKCkpKSB7CiAgICAg
ICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOwotCi0gICAgICAgIC8vIFdl
IGNsYWltIHdlIHJlc3VsdCBpbiBJbnQzMi4gSXQncyBub3QgcmVhbGx5IGltcG9ydGFudCB3aGF0
IG91ciByZXN1bHQgaXMgKHRob3VnaCB3ZQotICAgICAgICAvLyBkb24ndCB3YW50IHRvIGNsYWlt
IHdlIG1heSByZXN1bHQgaW4gdGhlIGVtcHR5IHZhbHVlKSwgb3RoZXIgbm9kZXMgd2l0aCBkYXRh
IGZsb3cgZWRnZXMKLSAgICAgICAgLy8gdG8gdXMganVzdCBkbyB0aGF0IHRvIG1haW50YWluIHRo
ZSBpbnZhcmlhbnQgdGhhdCB0aGV5IGNhbid0IGJlIGhvaXN0ZWQgaGlnaGVyIHRoYW4gdXMuCi0g
ICAgICAgIC8vIFNvIHdlIGp1c3QgYXJiaXRyYXJpbHkgcGljayBJbnQzMi4gSW4gc29tZSB3YXlz
LCBTdG9yYWdlUmVzdWx0IG1heSBiZSB0aGUgbW9yZSBjb3JyZWN0Ci0gICAgICAgIC8vIHRoaW5n
IHRvIGRvIGhlcmUuIFdlIHBpY2sgTm9kZVJlc3VsdEpTIGJlY2F1c2UgaXQgbWFrZXMgY29udmVy
dGluZyB0aGlzIHRvIGFuIGlkZW50aXR5Ci0gICAgICAgIC8vIGVhc2llci4KLSAgICAgICAgc2V0
Tm9uQ2VsbFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNJbnQzMk9ubHkpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzRWxpbWluYXRpb25QaGFz
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c0VsaW1pbmF0aW9u
UGhhc2UuY3BwCmluZGV4IDM2YjFlNDUyNTkwYTkzMGQzZTkyY2UyNWY1ZWI0MzIyY2NmMDlhMWEu
Ljk4MzE4ODEyOWZhNjgyYWIwMTdmNjQ0YjQxYzU3MGQ2ZjBjYTdjMjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzRWxpbWluYXRpb25QaGFzZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcmd1bWVudHNFbGltaW5hdGlvblBo
YXNlLmNwcApAQCAtODE4LDE1ICs4MTgsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXJnICs9IGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQ7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IG1fZ3JhcGgubV9zdGFja0FjY2Vzc0RhdGEu
YWRkKGFyZywgRmx1c2hlZEpTVmFsdWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vZGUqIGNoZWNrID0gbnVsbHB0cjsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlubGluZUNhbGxGcmFtZSB8fCBpbmxpbmVDYWxs
RnJhbWUtPmlzVmFyYXJncygpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNo
ZWNrID0gaW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBub2RlSW5kZXgsIFNwZWNOb25lLCBDaGVja0luQm91bmRzLCBub2RlLT5vcmln
aW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLnZhckFyZ0No
aWxkKG5vZGUsIDEpLCBFZGdlKGdldEFycmF5TGVuZ3RoKGNhbmRpZGF0ZSksIEludDMyVXNlKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGluc2VydGlvblNldC5p
bnNlcnROb2RlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUluZGV4
LCBub2RlLT5wcmVkaWN0aW9uKCksIENoZWNrZWRHZXRTdGFjaywgbm9kZS0+b3JpZ2luLCBPcElu
Zm8oZGF0YSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLmNo
aWxkKG5vZGUsIDEpLCBFZGdlKGdldEFycmF5TGVuZ3RoKGNhbmRpZGF0ZSksIEludDMyVXNlKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gaW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlSW5kZXgsIG5vZGUtPnByZWRpY3Rpb24o
KSwgR2V0U3RhY2ssIG5vZGUtPm9yaWdpbiwgT3BJbmZvKGRhdGEpKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gaW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVJbmRleCwgbm9kZS0+cHJlZGljdGlvbigp
LCBHZXRTdGFjaywgbm9kZS0+b3JpZ2luLCBPcEluZm8oZGF0YSksIEVkZ2UoY2hlY2ssIFVudHlw
ZWRVc2UpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggMTM3NDkxOWJlOWUyMTM0NTZmOTI3ZjdjMzYwMmQ1
N2JjMjZjZmQwZi4uOTJhZDg2NmNjNjk2ZDllNjczN2NmYjVmMmY2NmNhZmVlM2E4M2M5ZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAg
LTY5MjAsMTAgKzY5MjAsNyBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2ln
bmVkIGxpbWl0KQogICAgICAgICAgICAgTm9kZSogYmFzZSA9IGdldChieXRlY29kZS5tX2Jhc2Up
OwogICAgICAgICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IGdldEFycmF5TW9kZShieXRlY29k
ZS5tZXRhZGF0YShjb2RlQmxvY2spLm1fYXJyYXlQcm9maWxlLCBBcnJheTo6UmVhZCk7CiAgICAg
ICAgICAgICBOb2RlKiBwcm9wZXJ0eSA9IGdldChieXRlY29kZS5tX3Byb3BlcnR5KTsKLSAgICAg
ICAgICAgIGFkZFZhckFyZ0NoaWxkKGJhc2UpOwotICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQo
cHJvcGVydHkpOwotICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQobnVsbHB0cik7Ci0gICAgICAg
ICAgICBOb2RlKiBoYXNJdGVyYWJsZVByb3BlcnR5ID0gYWRkVG9HcmFwaChOb2RlOjpWYXJBcmcs
IEhhc0luZGV4ZWRQcm9wZXJ0eSwgT3BJbmZvKGFycmF5TW9kZS5hc1dvcmQoKSksIE9wSW5mbyhz
dGF0aWNfY2FzdDx1aW50MzJfdD4oUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6Okdl
dE93blByb3BlcnR5KSkpOworICAgICAgICAgICAgTm9kZSogaGFzSXRlcmFibGVQcm9wZXJ0eSA9
IGFkZFRvR3JhcGgoSGFzSW5kZXhlZFByb3BlcnR5LCBPcEluZm8oYXJyYXlNb2RlLmFzV29yZCgp
KSwgT3BJbmZvKHN0YXRpY19jYXN0PHVpbnQzMl90PihQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0
aG9kVHlwZTo6R2V0T3duUHJvcGVydHkpKSwgYmFzZSwgcHJvcGVydHkpOwogICAgICAgICAgICAg
bV9leGl0T0sgPSBmYWxzZTsgLy8gSGFzSW5kZXhlZFByb3BlcnR5IG11c3QgYmUgdHJlYXRlZCBh
cyBpZiBpdCBjbG9iYmVycyBleGl0IHN0YXRlLCBzaW5jZSBGaXh1cFBoYXNlIG1heSBtYWtlIGl0
IGdlbmVyaWMuCiAgICAgICAgICAgICBzZXQoYnl0ZWNvZGUubV9kc3QsIGhhc0l0ZXJhYmxlUHJv
cGVydHkpOwogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfaGFzX2luZGV4ZWRfcHJvcGVydHkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCA1YTBmMTE3
OWY5Y2IwMDAyMDY2NzgyZThmNTM2MWVlNjM4N2Q5ZjBhLi41OTkxZTZiYTU3YmUxYmYwNzMwNTkx
NDg2NWZjZmIxOTc5NzU0NTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2Ji
ZXJpemUuaApAQCAtMzIxLDcgKzMyMSw3IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgs
IE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAg
ICAgICAgICBpZiAobW9kZS5pc0luQm91bmRzKCkpIHsKICAgICAgICAgICAgICAgICByZWFkKEJ1
dHRlcmZseV9wdWJsaWNMZW5ndGgpOwogICAgICAgICAgICAgICAgIHJlYWQoSW5kZXhlZEludDMy
UHJvcGVydGllcyk7Ci0gICAgICAgICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihIYXNJbmRleGVk
UHJvcGVydHlMb2MsIEluZGV4ZWRJbnQzMlByb3BlcnRpZXMsIGdyYXBoLnZhckFyZ0NoaWxkKG5v
ZGUsIDApLCBncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKSksIExhenlOb2RlKG5vZGUpKTsKKyAg
ICAgICAgICAgICAgICBkZWYoSGVhcExvY2F0aW9uKEhhc0luZGV4ZWRQcm9wZXJ0eUxvYywgSW5k
ZXhlZEludDMyUHJvcGVydGllcywgbm9kZS0+Y2hpbGQxKCksIG5vZGUtPmNoaWxkMigpKSwgTGF6
eU5vZGUobm9kZSkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIHJlYWQoSGVhcCk7CkBAIC0zMzIsNyArMzMyLDcgQEAgdm9pZCBjbG9iYmVyaXpl
KEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0
IFdyaXRlRnUKICAgICAgICAgICAgIGlmIChtb2RlLmlzSW5Cb3VuZHMoKSkgewogICAgICAgICAg
ICAgICAgIHJlYWQoQnV0dGVyZmx5X3B1YmxpY0xlbmd0aCk7CiAgICAgICAgICAgICAgICAgcmVh
ZChJbmRleGVkRG91YmxlUHJvcGVydGllcyk7Ci0gICAgICAgICAgICAgICAgZGVmKEhlYXBMb2Nh
dGlvbihIYXNJbmRleGVkUHJvcGVydHlMb2MsIEluZGV4ZWREb3VibGVQcm9wZXJ0aWVzLCBncmFw
aC52YXJBcmdDaGlsZChub2RlLCAwKSwgZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkpLCBMYXp5
Tm9kZShub2RlKSk7CisgICAgICAgICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihIYXNJbmRleGVk
UHJvcGVydHlMb2MsIEluZGV4ZWREb3VibGVQcm9wZXJ0aWVzLCBub2RlLT5jaGlsZDEoKSwgbm9k
ZS0+Y2hpbGQyKCkpLCBMYXp5Tm9kZShub2RlKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgcmVhZChIZWFwKTsKQEAgLTM0Myw3ICszNDMsNyBA
QCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVu
Y3RvciYgcmVhZCwgY29uc3QgV3JpdGVGdQogICAgICAgICAgICAgaWYgKG1vZGUuaXNJbkJvdW5k
cygpKSB7CiAgICAgICAgICAgICAgICAgcmVhZChCdXR0ZXJmbHlfcHVibGljTGVuZ3RoKTsKICAg
ICAgICAgICAgICAgICByZWFkKEluZGV4ZWRDb250aWd1b3VzUHJvcGVydGllcyk7Ci0gICAgICAg
ICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihIYXNJbmRleGVkUHJvcGVydHlMb2MsIEluZGV4ZWRD
b250aWd1b3VzUHJvcGVydGllcywgZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCksIGdyYXBoLnZh
ckFyZ0NoaWxkKG5vZGUsIDEpKSwgTGF6eU5vZGUobm9kZSkpOworICAgICAgICAgICAgICAgIGRl
ZihIZWFwTG9jYXRpb24oSGFzSW5kZXhlZFByb3BlcnR5TG9jLCBJbmRleGVkQ29udGlndW91c1By
b3BlcnRpZXMsIG5vZGUtPmNoaWxkMSgpLCBub2RlLT5jaGlsZDIoKSksIExhenlOb2RlKG5vZGUp
KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBy
ZWFkKEhlYXApOwpAQCAtNzc0LDcgKzc3NCw4IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3Jh
cGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAg
ICAgICAgIHdyaXRlKEFic3RyYWN0SGVhcChTdGFjaywgbm9kZS0+bG9jYWwoKSkpOwogICAgICAg
ICBkZWYoSGVhcExvY2F0aW9uKFN0YWNrTG9jLCBBYnN0cmFjdEhlYXAoU3RhY2ssIG5vZGUtPmxv
Y2FsKCkpKSwgTGF6eU5vZGUobm9kZS0+Y2hpbGQxKCkubm9kZSgpKSk7CiAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgCisKKyAgICBjYXNlIENoZWNrZWRHZXRTdGFjazoKICAgICBjYXNlIEdldFN0
YWNrOiB7CiAgICAgICAgIEFic3RyYWN0SGVhcCBoZWFwKFN0YWNrLCBub2RlLT5zdGFja0FjY2Vz
c0RhdGEoKS0+bG9jYWwpOwogICAgICAgICByZWFkKGhlYXApOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAppbmRleCA2MmI3
OWZmYWIzODQzYzZkZGM2OGYwODgwMzM3ZmE5YmUyNWIwOTFlLi4yNmY4NWJlMzcyOWUxMDQzYmY2
NjM3MzUxZjhjMjI0ZDljNjZiYTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcApAQCAtMzQxLDkgKzM0MSw3IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSByaWdodCA9IG1fc3RhdGUuZm9yTm9kZShu
b2RlLT5jaGlsZDIoKSkudmFsdWUoKTsKICAgICAgICAgICAgICAgICBpZiAobGVmdCAmJiByaWdo
dCAmJiBsZWZ0LmlzSW50MzIoKSAmJiByaWdodC5pc0ludDMyKCkKICAgICAgICAgICAgICAgICAg
ICAgJiYgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGxlZnQuYXNJbnQzMigpKSA8IHN0YXRpY19jYXN0
PHVpbnQzMl90PihyaWdodC5hc0ludDMyKCkpKSB7Ci0KLSAgICAgICAgICAgICAgICAgICAgTm9k
ZSogemVybyA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydENvbnN0YW50KGluZGV4SW5CbG9jaywgbm9k
ZS0+b3JpZ2luLCBqc051bWJlcigwKSk7Ci0gICAgICAgICAgICAgICAgICAgIG5vZGUtPmNvbnZl
cnRUb0lkZW50aXR5T24oemVybyk7CisgICAgICAgICAgICAgICAgICAgIG5vZGUtPnJlbW92ZSht
X2dyYXBoKTsKICAgICAgICAgICAgICAgICAgICAgZWxpbWluYXRlZCA9IHRydWU7CiAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KQEAgLTQxMiwxMSArNDEwLDEw
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgTm9kZSogbGVu
Z3RoID0gZW1pdENvZGVUb0dldEFyZ3VtZW50c0FycmF5TGVuZ3RoKAogICAgICAgICAgICAgICAg
ICAgICBtX2luc2VydGlvblNldCwgYXJndW1lbnRzLCBpbmRleEluQmxvY2ssIG5vZGUtPm9yaWdp
bik7Ci0gICAgICAgICAgICAgICAgTm9kZSogY2hlY2sgPSBtX2luc2VydGlvblNldC5pbnNlcnRO
b2RlKAorICAgICAgICAgICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCiAgICAgICAg
ICAgICAgICAgICAgIGluZGV4SW5CbG9jaywgU3BlY05vbmUsIENoZWNrSW5Cb3VuZHMsIG5vZGUt
Pm9yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGQyKCksIEVkZ2UobGVuZ3Ro
LCBJbnQzMlVzZSkpOwogICAgICAgICAgICAgICAgIG5vZGUtPmNvbnZlcnRUb0dldFN0YWNrKGRh
dGEpOwotICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpID0gRWRnZShjaGVjaywgVW50eXBl
ZFVzZSk7CiAgICAgICAgICAgICAgICAgZWxpbWluYXRlZCA9IHRydWU7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNH
Qy5jcHAKaW5kZXggNmU4OTU3ZTRkOTBjMDY3YzE5M2FkMGRmZTc0NDVkZGVlNTlkOWVjMi4uZjFk
YTY2MWFlNDE3M2E0MzAzN2M0OTc4ODBhMDczZTEyNjAyNWRlMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMjE4LDYgKzIxOCw3IEBAIGJvb2wgZG9lc0dDKEdy
YXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIEZvcndhcmRWYXJhcmdzOgogICAgIGNh
c2UgUHV0SGludDoKICAgICBjYXNlIEtpbGxTdGFjazoKKyAgICBjYXNlIENoZWNrZWRHZXRTdGFj
azoKICAgICBjYXNlIEdldFN0YWNrOgogICAgIGNhc2UgR2V0RnJvbUFyZ3VtZW50czoKICAgICBj
YXNlIEdldEFyZ3VtZW50OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFz
ZS5jcHAKaW5kZXggZmJjOWFjMjg1M2JkM2VmZTlkMjAyYWE5YjI2YWE4NjE0MzU1MjE1NC4uNjIz
ZTQ3ZjQ4OTIxMTg4YjVjNjMyMjkxZTU1MGQ5NjM4OThiZjZmMiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xODUyLDYgKzE4NTIsNyBAQCBwcml2
YXRlOgogICAgICAgICBjYXNlIE1hdGVyaWFsaXplQ3JlYXRlQWN0aXZhdGlvbjoKICAgICAgICAg
Y2FzZSBQdXRTdGFjazoKICAgICAgICAgY2FzZSBLaWxsU3RhY2s6CisgICAgICAgIGNhc2UgQ2hl
Y2tlZEdldFN0YWNrOgogICAgICAgICBjYXNlIEdldFN0YWNrOgogICAgICAgICBjYXNlIFN0b3Jl
QmFycmllcjoKICAgICAgICAgY2FzZSBGZW5jZWRTdG9yZUJhcnJpZXI6CkBAIC0xOTA0LDEzICsx
OTA1LDEzIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBub2RlLT5zZXRBcnJheU1vZGUoCiAgICAg
ICAgICAgICAgICAgbm9kZS0+YXJyYXlNb2RlKCkucmVmaW5lKAogICAgICAgICAgICAgICAgICAg
ICBtX2dyYXBoLCBub2RlLAotICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLnZhckFyZ0NoaWxk
KG5vZGUsIDApLT5wcmVkaWN0aW9uKCksCi0gICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgudmFy
QXJnQ2hpbGQobm9kZSwgMSktPnByZWRpY3Rpb24oKSwKKyAgICAgICAgICAgICAgICAgICAgbm9k
ZS0+Y2hpbGQxKCktPnByZWRpY3Rpb24oKSwKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y2hp
bGQyKCktPnByZWRpY3Rpb24oKSwKICAgICAgICAgICAgICAgICAgICAgU3BlY05vbmUpKTsKLSAg
ICAgICAgICAgIAotICAgICAgICAgICAgYmxlc3NBcnJheU9wZXJhdGlvbihtX2dyYXBoLnZhckFy
Z0NoaWxkKG5vZGUsIDApLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpLCBtX2dyYXBoLnZh
ckFyZ0NoaWxkKG5vZGUsIDIpKTsKLSAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obV9ncmFw
aC52YXJBcmdDaGlsZChub2RlLCAwKSk7Ci0gICAgICAgICAgICBmaXhFZGdlPEludDMyVXNlPiht
X2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKKworICAgICAgICAgICAgYmxlc3NBcnJheU9w
ZXJhdGlvbihub2RlLT5jaGlsZDEoKSwgbm9kZS0+Y2hpbGQyKCksIG5vZGUtPmNoaWxkMygpKTsK
KyAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAg
ICAgZml4RWRnZTxJbnQzMlVzZT4obm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBHZXREaXJlY3RQbmFtZTogewpAQCAtMzU0OSwyOSAr
MzU1MCwxOCBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgbm9kZS0+c2V0T3AoSGFzSW5kZXhl
ZFByb3BlcnR5KTsKICAgICAgICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRlKTsK
LQotICAgICAgICB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBmaXJzdENoaWxkID0gbV9ncmFwaC5t
X3ZhckFyZ0NoaWxkcmVuLnNpemUoKTsKLSAgICAgICAgICAgIHVuc2lnbmVkIG51bUNoaWxkcmVu
ID0gMzsKLSAgICAgICAgICAgIG1fZ3JhcGgubV92YXJBcmdDaGlsZHJlbi5hcHBlbmQobm9kZS0+
Y2hpbGQxKCkpOwotICAgICAgICAgICAgbV9ncmFwaC5tX3ZhckFyZ0NoaWxkcmVuLmFwcGVuZChu
b2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgICAgICBtX2dyYXBoLm1fdmFyQXJnQ2hpbGRyZW4uYXBw
ZW5kKEVkZ2UoKSk7Ci0gICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVIYXNWYXJBcmdz
KTsKLSAgICAgICAgICAgIG5vZGUtPmNoaWxkcmVuID0gQWRqYWNlbmN5TGlzdChBZGphY2VuY3lM
aXN0OjpWYXJpYWJsZSwgZmlyc3RDaGlsZCwgbnVtQ2hpbGRyZW4pOwotICAgICAgICB9Ci0KICAg
ICAgICAgbm9kZS0+c2V0QXJyYXlNb2RlKAogICAgICAgICAgICAgbm9kZS0+YXJyYXlNb2RlKCku
cmVmaW5lKAogICAgICAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUsCi0gICAgICAgICAgICAgICAg
bV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAwKS0+cHJlZGljdGlvbigpLAotICAgICAgICAgICAg
ICAgIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSktPnByZWRpY3Rpb24oKSwKKyAgICAgICAg
ICAgICAgICBub2RlLT5jaGlsZDEoKS0+cHJlZGljdGlvbigpLAorICAgICAgICAgICAgICAgIG5v
ZGUtPmNoaWxkMigpLT5wcmVkaWN0aW9uKCksCiAgICAgICAgICAgICAgICAgU3BlY05vbmUpKTsK
ICAgICAgICAgbm9kZS0+c2V0SW50ZXJuYWxNZXRob2RUeXBlKFByb3BlcnR5U2xvdDo6SW50ZXJu
YWxNZXRob2RUeXBlOjpIYXNQcm9wZXJ0eSk7CiAKLSAgICAgICAgYmxlc3NBcnJheU9wZXJhdGlv
bihtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUs
IDEpLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDIpKTsKKyAgICAgICAgYmxlc3NBcnJheU9w
ZXJhdGlvbihub2RlLT5jaGlsZDEoKSwgbm9kZS0+Y2hpbGQyKCksIG5vZGUtPmNoaWxkMygpKTsK
IAotICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCkp
OwotICAgICAgICBmaXhFZGdlPEludDMyVXNlPihtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEp
KTsKKyAgICAgICAgZml4RWRnZTxDZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIGZp
eEVkZ2U8SW50MzJVc2U+KG5vZGUtPmNoaWxkMigpKTsKICAgICB9CiAKICAgICB2b2lkIGZpeHVw
Tm9ybWFsaXplTWFwS2V5KE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0ludGVnZXJDaGVja0NvbWJpbmluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSW50ZWdlckNoZWNrQ29tYmluaW5nUGhhc2UuY3BwCmluZGV4IDVm
N2Y4ZjE2OTA0ODMyMWViOThlYzBiM2Q1ZTJlZmIyZWQyNjk5MTMuLjI0ZTAzZmZiNzVmNzJkZDZm
YzkwZDdkMzAwZjg3YTJkYzgwNjdhOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSW50ZWdlckNoZWNrQ29tYmluaW5nUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSW50ZWdlckNoZWNrQ29tYmluaW5nUGhhc2UuY3BwCkBAIC0xNTAs
NyArMTUwLDYgQEAgcHVibGljOgogICAgICAgICBDb2RlT3JpZ2luIG1fbWF4T3JpZ2luOwogICAg
ICAgICB1bnNpZ25lZCBtX2NvdW50IHsgMCB9OyAvLyBJZiB0aGlzIGlzIHplcm8gdGhlbiB0aGUg
Ym91bmRzIHdvbid0IG5lY2Vzc2FyaWx5IG1ha2Ugc2Vuc2UuCiAgICAgICAgIGJvb2wgbV9ob2lz
dGVkIHsgZmFsc2UgfTsKLSAgICAgICAgTm9kZSogbV9kZXBlbmRlbmN5IHsgbnVsbHB0ciB9Owog
ICAgIH07CiAKICAgICBJbnRlZ2VyQ2hlY2tDb21iaW5pbmdQaGFzZShHcmFwaCYgZ3JhcGgpCkBA
IC0yNTgsMTUgKzI1NywxNCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEFyaXRoOjpVbmNoZWNrZWQpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgICAgICBOb2RlKiBtaW5DaGVjayA9IG51bGxwdHI7CiAg
ICAgICAgICAgICAgICAgICAgIGlmIChtaW5Ob2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBtaW5DaGVjayA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCisgICAgICAgICAgICAgICAg
ICAgICAgICBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG5vZGVJbmRleCwgU3BlY05vbmUsIENoZWNrSW5Cb3VuZHMsIG5vZGUtPm9yaWdpbiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZGdlKG1pbk5vZGUsIEludDMyVXNlKSwgRWRn
ZShkYXRhLm1fa2V5Lm1fa2V5LCBJbnQzMlVzZSkpOwogICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgIG1fbWFwW2RhdGEubV9rZXldLm1fZGVwZW5kZW5jeSA9IG1faW5z
ZXJ0aW9uU2V0Lmluc2VydE5vZGUoCisgICAgICAgICAgICAgICAgICAgIG1faW5zZXJ0aW9uU2V0
Lmluc2VydE5vZGUoCiAgICAgICAgICAgICAgICAgICAgICAgICBub2RlSW5kZXgsIFNwZWNOb25l
LCBDaGVja0luQm91bmRzLCBub2RlLT5vcmlnaW4sCi0gICAgICAgICAgICAgICAgICAgICAgICBF
ZGdlKG1heE5vZGUsIEludDMyVXNlKSwgRWRnZShkYXRhLm1fa2V5Lm1fa2V5LCBJbnQzMlVzZSks
IEVkZ2UobWluQ2hlY2ssIFVudHlwZWRVc2UpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEVk
Z2UobWF4Tm9kZSwgSW50MzJVc2UpLCBFZGdlKGRhdGEubV9rZXkubV9rZXksIEludDMyVXNlKSk7
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAKQEAgLTI4Niw3ICsyODQsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgY2FzZSBBcnJheUJvdW5kczoKLSAg
ICAgICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9JZGVudGl0eU9uKG1fbWFwW2RhdGEubV9rZXld
Lm1fZGVwZW5kZW5jeSk7CisgICAgICAgICAgICAgICAgbm9kZS0+cmVtb3ZlKG1fZ3JhcGgpOwog
ICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0ludGVnZXJSYW5nZU9wdGltaXphdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSW50ZWdlclJhbmdlT3B0aW1pemF0aW9uUGhhc2UuY3BwCmluZGV4IDgxMTgx
ZWIwYjRiM2U5Y2NkOGE0ZWFjY2VjNDQ2Y2ZmNjE1MTM1OGQuLjZiNzE5Y2RiYzMxZmZiODgyY2Vl
NmQwNDc3M2I2MmNjMWNjYTJmYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHSW50ZWdlclJhbmdlT3B0aW1pemF0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSW50ZWdlclJhbmdlT3B0aW1pemF0aW9uUGhhc2UuY3BwCkBAIC0x
MzM3LDggKzEzMzcsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICBpZiAobm9uTmVnYXRpdmUgJiYgbGVzc1RoYW5MZW5ndGgpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGV4ZWN1dGVOb2RlKGJsb2NrLT5hdChub2RlSW5kZXgpKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIFdlIGp1c3QgbmVlZCB0byBtYWtlIHN1cmUgd2UgYXJlIGEg
dmFsdWUtcHJvZHVjaW5nIG5vZGUuCi0gICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5jb252
ZXJ0VG9JZGVudGl0eU9uKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBub2RlLT5yZW1vdmUobV9ncmFwaCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBj
aGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggMzQxZjRkYWJmZGVm
MjA0ZjZiZTQ2MGJjNTExYzk3NDJkZTU0OTZhYi4uNzkxZGExMGNiZDBlMGUxNzM2MzQ1MmRhY2Rl
NjM3NmVkNzE0YzFhYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdO
b2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTk4Nyw2
ICs5ODcsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBzd2l0Y2ggKG9wKCkpIHsKICAgICAg
ICAgY2FzZSBQdXRTdGFjazoKKyAgICAgICAgY2FzZSBDaGVja2VkR2V0U3RhY2s6CiAgICAgICAg
IGNhc2UgR2V0U3RhY2s6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVs
dDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRleCBjMDlhMTc2NjJh
OGI5ZDAwNjA0OTNmZmY0ODQyYzllODhiZTE4ZGQyLi5mMWFkYTZiMTQ5YTA1YjY5Y2QxN2JmODFh
YWUwODBiOTZjZDcyY2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5o
CkBAIC03NCw2ICs3NCw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBt
YWNybyhQdXRTdGFjaywgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEtpbGxTdGFjaywg
Tm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEdldFN0YWNrLCBOb2RlUmVzdWx0SlMpIFwK
KyAgICBtYWNybyhDaGVja2VkR2V0U3RhY2ssIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlUmVzdWx0
SlMpIFwKICAgICBcCiAgICAgbWFjcm8oTW92SGludCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAg
IG1hY3JvKFpvbWJpZUhpbnQsIE5vZGVNdXN0R2VuZXJhdGUpIFwKQEAgLTI2NCw3ICsyNjUsNyBA
QCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oQ2hlY2tOb3RFbXB0
eSwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEFzc2VydE5vdEVtcHR5LCBOb2RlTXVz
dEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oQ2hlY2tCYWRDZWxsLCBOb2RlTXVzdEdlbmVyYXRlKSBc
Ci0gICAgbWFjcm8oQ2hlY2tJbkJvdW5kcywgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1bHRK
UykgXAorICAgIG1hY3JvKENoZWNrSW5Cb3VuZHMsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBt
YWNybyhDaGVja1N0cmluZ0lkZW50LCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oQ2hl
Y2tUeXBlSW5mb0ZsYWdzLCBOb2RlTXVzdEdlbmVyYXRlKSAvKiBUYWtlcyBhbiBPcEluZm8gd2l0
aCB0aGUgZmxhZ3MgeW91IHdhbnQgdG8gdGVzdCBhcmUgc2V0ICovXAogICAgIG1hY3JvKENoZWNr
U3ViQ2xhc3MsIE5vZGVNdXN0R2VuZXJhdGUpIFwKQEAgLTQ1OCw3ICs0NTksNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgXAogICAgIC8qIEZvci1pbiBlbnVtZXJhdGlv
biBvcGNvZGVzICovXAogICAgIG1hY3JvKEdldEVudW1lcmFibGVMZW5ndGgsIE5vZGVNdXN0R2Vu
ZXJhdGUgfCBOb2RlUmVzdWx0SlMpIFwKLSAgICBtYWNybyhIYXNJbmRleGVkUHJvcGVydHksIE5v
ZGVSZXN1bHRCb29sZWFuIHwgTm9kZUhhc1ZhckFyZ3MpIFwKKyAgICBtYWNybyhIYXNJbmRleGVk
UHJvcGVydHksIE5vZGVSZXN1bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oSGFzU3RydWN0dXJlUHJv
cGVydHksIE5vZGVSZXN1bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oSGFzR2VuZXJpY1Byb3BlcnR5
LCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKEdldERpcmVjdFBuYW1lLCBOb2RlTXVz
dEdlbmVyYXRlIHwgTm9kZUhhc1ZhckFyZ3MgfCBOb2RlUmVzdWx0SlMpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFz
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkF2YWlsYWJpbGl0eUFuYWx5
c2lzUGhhc2UuY3BwCmluZGV4IDMyODBmODdhNjI2N2RmMDM0Yzg0ZTMzMTg1MzBjNzQxOWU1NWU5
N2UuLmE0M2NkYmM2ZTk1NjRlZjE5Y2Y3N2Y2YjU2OThjMjM1YWQ4NzBlZTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFz
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JBdmFpbGFiaWxpdHlB
bmFseXNpc1BoYXNlLmNwcApAQCAtMjE3LDYgKzIxNyw3IEBAIHZvaWQgTG9jYWxPU1JBdmFpbGFi
aWxpdHlDYWxjdWxhdG9yOjpleGVjdXRlTm9kZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsK
ICAgICB9CiAKKyAgICBjYXNlIENoZWNrZWRHZXRTdGFjazoKICAgICBjYXNlIEdldFN0YWNrOiB7
CiAgICAgICAgIFN0YWNrQWNjZXNzRGF0YSogZGF0YSA9IG5vZGUtPnN0YWNrQWNjZXNzRGF0YSgp
OwogICAgICAgICBtX2F2YWlsYWJpbGl0eS5tX2xvY2Fscy5vcGVyYW5kKGRhdGEtPmxvY2FsKSA9
IEF2YWlsYWJpbGl0eShub2RlLCBkYXRhLT5mbHVzaGVkQXQoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdQbGFuLmNwcAppbmRleCBiNjk0OWFhMDM1YzEyZmE3NDlkNTgwY2M3YzJhZWNjYThk
OTJjMTY4Li5mMmMyZmQ0OWUxZTFjYWRhN2UzYmUxNWJmMzQxOTk3NDhjZWI4MzZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAKQEAgLTQwOCw3ICs0MDgsOCBAQCBQbGFuOjpD
b21waWxhdGlvblBhdGggUGxhbjo6Y29tcGlsZUluVGhyZWFkSW1wbCgpCiAgICAgICAgICAgICBS
VU5fUEhBU0UocGVyZm9ybUxvb3BQcmVIZWFkZXJDcmVhdGlvbik7CiAgICAgICAgIFJVTl9QSEFT
RShwZXJmb3JtQ1BTUmV0aHJlYWRpbmcpOwogICAgICAgICBSVU5fUEhBU0UocGVyZm9ybVNTQUNv
bnZlcnNpb24pOwotICAgICAgICBSVU5fUEhBU0UocGVyZm9ybVNTQUxvd2VyaW5nKTsKKyAgICAg
ICAgLy8gV2UgY2FuIHNhZmVseSBsb3dlciBhbnl0aGluZyBjb3VsZCBub3QgYmUgaG9pc3RlZC4K
KyAgICAgICAgUlVOX1BIQVNFKHBlcmZvcm1FZmZlY3RmdWxTU0FMb3dlcmluZyk7CiAgICAgICAg
IAogICAgICAgICAvLyBJZGVhbGx5LCB0aGVzZSB3b3VsZCBiZSBydW4gdG8gZml4cG9pbnQgd2l0
aCB0aGUgb2JqZWN0IGFsbG9jYXRpb24gc2lua2luZyBwaGFzZS4KICAgICAgICAgUlVOX1BIQVNF
KHBlcmZvcm1Bcmd1bWVudHNFbGltaW5hdGlvbik7CkBAIC00NDUsMTUgKzQ0NiwyMSBAQCBQbGFu
OjpDb21waWxhdGlvblBhdGggUGxhbjo6Y29tcGlsZUluVGhyZWFkSW1wbCgpCiAgICAgICAgIFJV
Tl9QSEFTRShwZXJmb3JtTGl2ZW5lc3NBbmFseXNpcyk7CiAgICAgICAgIFJVTl9QSEFTRShwZXJm
b3JtQ0ZBKTsKICAgICAgICAgUlVOX1BIQVNFKHBlcmZvcm1MSUNNKTsKKyAgICAgICAgLy8gVGhp
cyBtdXN0IHJ1biBhZnRlciBMSUNNIHRvIHByZXZlbnQgR2V0QnlWYWxzIGZyb20gYmVpbmcgaG9p
c3RlZCBhYm92ZSB0aGVpciBDaGVja0luQm91bmRzLgorICAgICAgICBSVU5fUEhBU0UocGVyZm9y
bVNTQUxvd2VyaW5nKTsKKworICAgICAgICAvLyBDbGVhbiB1cCBhZnRlciBzc2EgbG93ZXJpbmcg
Zm9yIGludGVnZXIgcmFuZ2Ugb3B0aW1pemF0aW9uLgorICAgICAgICBSVU5fUEhBU0UocGVyZm9y
bUNvbnN0YW50SG9pc3RpbmcpOworICAgICAgICBSVU5fUEhBU0UocGVyZm9ybUdsb2JhbENTRSk7
CisgICAgICAgIFJVTl9QSEFTRShwZXJmb3JtTGl2ZW5lc3NBbmFseXNpcyk7CiAKICAgICAgICAg
Ly8gRklYTUU6IEN1cnJlbnRseTogSW50ZWdlclJhbmdlT3B0aW1pemF0aW9uICptdXN0KiBiZSBy
dW4gYWZ0ZXIgTElDTS4KICAgICAgICAgLy8KICAgICAgICAgLy8gSW50ZWdlclJhbmdlT3B0aW1p
emF0aW9uIG1ha2VzIGNoYW5nZXMgb24gbm9kZXMgYmFzZWQgb24gcHJlY2VkaW5nIGJsb2Nrcwot
ICAgICAgICAvLyBhbmQgbm9kZXMuIExJQ00gbW92ZXMgbm9kZXMgd2hpY2ggY2FuIGludmFsaWRh
dGVzIGFzc3VtcHRpb25zIHVzZWQKKyAgICAgICAgLy8gYW5kIG5vZGVzLiBMSUNNIG1vdmVzIG5v
ZGVzIHdoaWNoIGNhbiBpbnZhbGlkYXRlIGFzc3VtcHRpb25zIHVzZWQKICAgICAgICAgLy8gYnkg
SW50ZWdlclJhbmdlT3B0aW1pemF0aW9uLgogICAgICAgICAvLwogICAgICAgICAvLyBJZGVhbGx5
LCB0aGUgZGVwZW5kZW5jaWVzIHNob3VsZCBiZSBleHBsaWNpdC4gU2VlIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc1MzQuCi0gICAgICAgIFJVTl9QSEFTRShwZXJm
b3JtTGl2ZW5lc3NBbmFseXNpcyk7CiAgICAgICAgIFJVTl9QSEFTRShwZXJmb3JtSW50ZWdlclJh
bmdlT3B0aW1pemF0aW9uKTsKICAgICAgICAgCiAgICAgICAgIFJVTl9QSEFTRShwZXJmb3JtQ2xl
YW5VcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rp
b25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJl
ZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IGU3NWRlNjIyNGQxNzgyYzk3ZGNlM2Q2
YTE2NjQ2ZDcwNjFhNWY1ZjIuLmQ4MDE1MTg2YTY5MzM2MjY1MTNjNWJiYmY4MTQ2ZTkyYzhlYzcy
YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblBy
b3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJl
ZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC0xMjM0LDYgKzEyMzQsNyBAQCBwcml2YXRl
OgogICAgICAgICBjYXNlIEtpbGxTdGFjazoKICAgICAgICAgY2FzZSBTdG9yZUJhcnJpZXI6CiAg
ICAgICAgIGNhc2UgRmVuY2VkU3RvcmVCYXJyaWVyOgorICAgICAgICBjYXNlIENoZWNrZWRHZXRT
dGFjazoKICAgICAgICAgY2FzZSBHZXRTdGFjazoKICAgICAgICAgY2FzZSBHZXRSZWdFeHBPYmpl
Y3RMYXN0SW5kZXg6CiAgICAgICAgIGNhc2UgU2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4OgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQdXRTdGFja1NpbmtpbmdQaGFz
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1B1dFN0YWNrU2lua2luZ1BoYXNl
LmNwcAppbmRleCBhNTllN2YxNjViOTg1ODA5YmVjZjllOTA3MDlhNzU5ZGM5NDY5MTZhLi5mYzgy
NDcyZGU0OGViYzFmMmExMmVmYTU4NTY2NzRjYmUyM2I5ZDlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1B1dFN0YWNrU2lua2luZ1BoYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1B1dFN0YWNrU2lua2luZ1BoYXNlLmNwcApAQCAtMjM3
LDcgKzIzNyw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgaWYgKERGR1B1dFN0YWNr
U2lua2luZ1BoYXNlSW50ZXJuYWw6OnZlcmJvc2UpCiAgICAgICAgICAgICAgICAgICAgICAgICBk
YXRhTG9nKCJEZWZlcnJlZCBhdCAiLCBub2RlLCAiOiIsIGRlZmVycmVkLCAiXG4iKTsKICAgICAg
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IEdl
dFN0YWNrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IEdldFN0YWNr
IHx8IG5vZGUtPm9wKCkgPT0gQ2hlY2tlZEdldFN0YWNrKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBIYW5kbGUgdGhlIGNhc2UgdGhhdCB0aGUgaW5wdXQgZG9lc24ndCBtYXRjaCBvdXIg
cmVxdWlyZW1lbnRzLiBUaGlzIGlzCiAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWFsbHkg
YSBidWcsIGJ1dCBpdCdzIGEgYmVuaWduIG9uZSBpZiB3ZSBzaW1wbHkgZG9uJ3QgcnVuIHRoaXMg
cGhhc2UuCiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJdCB1c3VhbGx5IGFyaXNlcyBiZWNh
dXNlIG9mIHBhdHRlcm5zIGxpa2U6CkBAIC0zNzQsNiArMzc0LDcgQEAgcHVibGljOgogICAgICAg
ICAgICAgICAgICAgICAgICAgYmxvY2ssIG5vZGUtPmNoaWxkMSgpLm5vZGUoKSk7CiAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgR2V0U3RhY2s6CisgICAg
ICAgICAgICAgICAgY2FzZSBDaGVja2VkR2V0U3RhY2s6CiAgICAgICAgICAgICAgICAgICAgIHNz
YUNhbGN1bGF0b3IubmV3RGVmKAogICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmFuZFRvVmFy
aWFibGUub3BlcmFuZChub2RlLT5zdGFja0FjY2Vzc0RhdGEoKS0+bG9jYWwpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgYmxvY2ssIG5vZGUpOwpAQCAtNDUwLDcgKzQ1MSw4IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgICAgICAgICAgbWFwcGluZy5vcGVyYW5kKG9wZXJhbmQpID0gbm9kZS0+Y2hp
bGQxKCkubm9kZSgpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgIAorCisgICAgICAgICAgICAgICAgY2FzZSBDaGVja2Vk
R2V0U3RhY2s6CiAgICAgICAgICAgICAgICAgY2FzZSBHZXRTdGFjazogewogICAgICAgICAgICAg
ICAgICAgICBTdGFja0FjY2Vzc0RhdGEqIGRhdGEgPSBub2RlLT5zdGFja0FjY2Vzc0RhdGEoKTsK
ICAgICAgICAgICAgICAgICAgICAgRmx1c2hGb3JtYXQgZm9ybWF0ID0gZGVmZXJyZWQub3BlcmFu
ZChkYXRhLT5sb2NhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NTQUNvbnZlcnNpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NT
QUNvbnZlcnNpb25QaGFzZS5jcHAKaW5kZXggNTM0ZDY0YjUzOGZhMTgwYWY0OGU4OWQ0ZjgyNjAy
ZmI0NWM5MjFjZS4uNTI1ZmVjNjYwZWE2MDJlYTNiNTA1MDhhZTg3M2IxOWMzOTI3ZmNlZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FDb252ZXJzaW9uUGhhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU1NBQ29udmVyc2lvblBoYXNl
LmNwcApAQCAtMzU4LDYgKzM1OCwxMCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgIHZh
bHVlRm9yT3BlcmFuZC5vcGVyYW5kKHZhcmlhYmxlLT5sb2NhbCgpKSA9IGNoaWxkOwogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
ICBjYXNlIENoZWNrZWRHZXRTdGFjazoKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgIGNhc2UgR2V0U3RhY2s6IHsKICAgICAgICAgICAg
ICAgICAgICAgQVNTRVJUKG1fYXJndW1lbnRHZXR0ZXJzLmNvbnRhaW5zKG5vZGUpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2UuY3BwCmluZGV4
IGQxZmU5OTY5MzIxNDBmYTA3MjljZGNmMDlkMGZkZjcyMzM2ZWJhZTMuLjA3OGE5MWZmYWQyODQ4
YWUxMTg4OTI0N2UwNDFkNTAzZGZkMzRmNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTU0FMb3dlcmluZ1BoYXNlLmNwcApAQCAtMzYsNiArMzYsNyBAQAogCiBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKK3RlbXBsYXRlIDxib29sIGxvd2VyTm9uRWZm
ZWN0ZnVsPgogY2xhc3MgU1NBTG93ZXJpbmdQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgc3Rh
dGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIApAQCAtNzgsMTEgKzc5LDI1IEBA
IHByaXZhdGU6CiAgICAgICAgIGNhc2UgQXRvbWljc1N1YjoKICAgICAgICAgY2FzZSBBdG9taWNz
WG9yOgogICAgICAgICBjYXNlIEhhc0luZGV4ZWRQcm9wZXJ0eToKLSAgICAgICAgICAgIGxvd2Vy
Qm91bmRzQ2hlY2sobV9ncmFwaC5jaGlsZChtX25vZGUsIDApLCBtX2dyYXBoLmNoaWxkKG1fbm9k
ZSwgMSksIG1fZ3JhcGguY2hpbGQobV9ub2RlLCAyKSk7CisgICAgICAgICAgICBpZiAobG93ZXJO
b25FZmZlY3RmdWwpCisgICAgICAgICAgICAgICAgbG93ZXJCb3VuZHNDaGVjayhtX2dyYXBoLmNo
aWxkKG1fbm9kZSwgMCksIG1fZ3JhcGguY2hpbGQobV9ub2RlLCAxKSwgbV9ncmFwaC5jaGlsZCht
X25vZGUsIDIpKTsKICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgIGNhc2UgQ2hlY2tlZEdl
dFN0YWNrOiB7CisgICAgICAgICAgICBpZiAoIWxvd2VyTm9uRWZmZWN0ZnVsKQorICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKKyAg
ICAgICAgICAgICAgICBtX25vZGVJbmRleCwgU3BlY05vbmUsIENoZWNrSW5Cb3VuZHMsIG1fbm9k
ZS0+b3JpZ2luLAorICAgICAgICAgICAgICAgIG1fZ3JhcGguY2hpbGQobV9ub2RlLCAwKSwgbV9n
cmFwaC5jaGlsZChtX25vZGUsIDEpKTsKKyAgICAgICAgICAgIGF1dG8qIGdldFN0YWNrID0gIG1f
aW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCisgICAgICAgICAgICAgICAgbV9ub2RlSW5kZXgsIG1f
bm9kZS0+cHJlZGljdGlvbigpLCBHZXRTdGFjaywgbV9ub2RlLT5vcmlnaW4sIE9wSW5mbyhtX25v
ZGUtPnN0YWNrQWNjZXNzRGF0YSgpKSk7CisgICAgICAgICAgICBtX25vZGUtPmNvbnZlcnRUb0lk
ZW50aXR5T24oZ2V0U3RhY2spOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwogICAg
ICAgICBjYXNlIEdldEJ5VmFsOiB7Ci0gICAgICAgICAgICBsb3dlckJvdW5kc0NoZWNrKG1fZ3Jh
cGgudmFyQXJnQ2hpbGQobV9ub2RlLCAwKSwgbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDEp
LCBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMikpOworICAgICAgICAgICAgaWYgKGxvd2Vy
Tm9uRWZmZWN0ZnVsKQorICAgICAgICAgICAgICAgIGxvd2VyQm91bmRzQ2hlY2sobV9ncmFwaC52
YXJBcmdDaGlsZChtX25vZGUsIDApLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSksIG1f
Z3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAyKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICAgICAgCkBAIC0xMzUsMTQgKzE1MCw5IEBAIHByaXZhdGU6CiAgICAgICAg
IE5vZGUqIGxlbmd0aCA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCiAgICAgICAgICAgICBt
X25vZGVJbmRleCwgU3BlY0ludDMyT25seSwgb3AsIG1fbm9kZS0+b3JpZ2luLAogICAgICAgICAg
ICAgT3BJbmZvKG1fbm9kZS0+YXJyYXlNb2RlKCkuYXNXb3JkKCkpLCBFZGdlKGJhc2Uubm9kZSgp
LCBLbm93bkNlbGxVc2UpLCBzdG9yYWdlKTsKLSAgICAgICAgTm9kZSogY2hlY2tJbkJvdW5kcyA9
IG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCisgICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2Vy
dE5vZGUoCiAgICAgICAgICAgICBtX25vZGVJbmRleCwgU3BlY0ludDMyT25seSwgQ2hlY2tJbkJv
dW5kcywgbV9ub2RlLT5vcmlnaW4sCiAgICAgICAgICAgICBpbmRleCwgRWRnZShsZW5ndGgsIEtu
b3duSW50MzJVc2UpKTsKLQotICAgICAgICBBZGphY2VuY3lMaXN0IGFkamFjZW5jeUxpc3QgPSBt
X2dyYXBoLmNvcHlWYXJhcmdDaGlsZHJlbihtX25vZGUpOwotICAgICAgICBtX2dyYXBoLm1fdmFy
QXJnQ2hpbGRyZW4uYXBwZW5kKEVkZ2UoY2hlY2tJbkJvdW5kcywgVW50eXBlZFVzZSkpOwotICAg
ICAgICBhZGphY2VuY3lMaXN0LnNldE51bUNoaWxkcmVuKGFkamFjZW5jeUxpc3QubnVtQ2hpbGRy
ZW4oKSArIDEpOwotICAgICAgICBtX25vZGUtPmNoaWxkcmVuID0gYWRqYWNlbmN5TGlzdDsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIApAQCAtMTU0LDcgKzE2NCwxMiBAQCBwcml2
YXRlOgogCiBib29sIHBlcmZvcm1TU0FMb3dlcmluZyhHcmFwaCYgZ3JhcGgpCiB7Ci0gICAgcmV0
dXJuIHJ1blBoYXNlPFNTQUxvd2VyaW5nUGhhc2U+KGdyYXBoKTsKKyAgICByZXR1cm4gcnVuUGhh
c2U8U1NBTG93ZXJpbmdQaGFzZTx0cnVlPj4oZ3JhcGgpOworfQorCitib29sIHBlcmZvcm1FZmZl
Y3RmdWxTU0FMb3dlcmluZyhHcmFwaCYgZ3JhcGgpCit7CisgICAgcmV0dXJuIHJ1blBoYXNlPFNT
QUxvd2VyaW5nUGhhc2U8ZmFsc2U+PihncmFwaCk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlND
OjpERkcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU1NBTG93ZXJp
bmdQaGFzZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FMb3dlcmluZ1BoYXNl
LmgKaW5kZXggZTFmNDNjODE3ZWY3MzQzM2Q2YzNjZTc0NTE1MGU4NzExMWYxOTQzNi4uNTM3YWUy
ZGIwODZlN2E4OWJjNWU1NTA4YjQ1MGU5ZTQzN2RmN2IwNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FMb3dlcmluZ1BoYXNlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTU0FMb3dlcmluZ1BoYXNlLmgKQEAgLTM1LDYgKzM1LDcgQEAgY2xh
c3MgR3JhcGg7CiAvLyBiYWNrZW5kLiBUaGlzIGlzIGludGVuZGVkIHRvIGJlIHJ1biBhZnRlciBT
U0FDb252ZXJzaW9uUGhhc2UuCiAKIGJvb2wgcGVyZm9ybVNTQUxvd2VyaW5nKEdyYXBoJik7Citi
b29sIHBlcmZvcm1FZmZlY3RmdWxTU0FMb3dlcmluZyhHcmFwaCYpOwogCiB9IH0gLy8gbmFtZXNw
YWNlIEpTQzo6REZHCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2FmZVRvRXhlY3V0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVj
dXRlLmgKaW5kZXggMzhjMjllZGM3M2MxZWQyOTE0NTkxNzY3ZTYwMjYzMGQ3NTk4ODVlMS4uMjg3
MDUwYjMzMjVhMDQwZWVlMTA0Y2NmYWViODAyMjgwMjhlMDJjMiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAgLTE4OCw2ICsxODgsNyBAQCBib29s
IHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5v
ZGUqIG5vZGUsIGJvb2wgaWdubwogICAgIGNhc2UgU2V0TG9jYWw6CiAgICAgY2FzZSBQdXRTdGFj
azoKICAgICBjYXNlIEtpbGxTdGFjazoKKyAgICBjYXNlIENoZWNrZWRHZXRTdGFjazoKICAgICBj
YXNlIEdldFN0YWNrOgogICAgIGNhc2UgTW92SGludDoKICAgICBjYXNlIFpvbWJpZUhpbnQ6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4
IDcwZTcwNWQ3ODQ5MzJkOWQzZmMyNzI0OTEzMmVmZDNlM2U1ZDY1MjQuLjU1ZDQzMDkzMTQ2OTU2
NzhlMWJkMjQ3ZDJlYzc3ZTkzZGI0ZDA4YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0xMzE4NSw4ICsxMzE4NSw4IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBbGxvY2F0ZU5ld0FycmF5V2l0aFNpemUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjCiAKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVIYXNJbmRl
eGVkUHJvcGVydHkoTm9kZSogbm9kZSkKIHsKLSAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNl
KHRoaXMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCkpOwotICAgIFNwZWN1bGF0ZVN0cmlj
dEludDMyT3BlcmFuZCBpbmRleCh0aGlzLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsK
KyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAg
ICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgaW5kZXgodGhpcywgbm9kZS0+Y2hpbGQyKCkp
OwogICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CiAKICAgICBHUFJSZWcgYmFzZUdQUiA9
IGJhc2UuZ3ByKCk7CkBAIC0xMzE5OCw4ICsxMzE5OCw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVIYXNJbmRleGVkUHJvcGVydHkoTm9kZSogbm9kZSkKICAgICBzd2l0Y2ggKG1vZGUu
dHlwZSgpKSB7CiAgICAgY2FzZSBBcnJheTo6SW50MzI6CiAgICAgY2FzZSBBcnJheTo6Q29udGln
dW91czogewotICAgICAgICBBU1NFUlQoISFtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDIpKTsK
LSAgICAgICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBtX2dyYXBoLnZhckFyZ0NoaWxk
KG5vZGUsIDIpKTsKKyAgICAgICAgQVNTRVJUKCEhbm9kZS0+Y2hpbGQzKCkpOworICAgICAgICBT
dG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIG5vZGUtPmNoaWxkMygpKTsKICAgICAgICAgR1BS
VGVtcG9yYXJ5IHNjcmF0Y2godGhpcyk7CiAKICAgICAgICAgR1BSUmVnIHN0b3JhZ2VHUFIgPSBz
dG9yYWdlLmdwcigpOwpAQCAtMTMyMjIsOCArMTMyMjIsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlSGFzSW5kZXhlZFByb3BlcnR5KE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwog
ICAgIH0KICAgICBjYXNlIEFycmF5OjpEb3VibGU6IHsKLSAgICAgICAgQVNTRVJUKCEhbV9ncmFw
aC52YXJBcmdDaGlsZChub2RlLCAyKSk7Ci0gICAgICAgIFN0b3JhZ2VPcGVyYW5kIHN0b3JhZ2Uo
dGhpcywgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAyKSk7CisgICAgICAgIEFTU0VSVCghIW5v
ZGUtPmNoaWxkMygpKTsKKyAgICAgICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBub2Rl
LT5jaGlsZDMoKSk7CiAgICAgICAgIEZQUlRlbXBvcmFyeSBzY3JhdGNoKHRoaXMpOwogICAgICAg
ICBGUFJSZWcgc2NyYXRjaEZQUiA9IHNjcmF0Y2guZnByKCk7CiAgICAgICAgIEdQUlJlZyBzdG9y
YWdlR1BSID0gc3RvcmFnZS5ncHIoKTsKQEAgLTEzMjQwLDggKzEzMjQwLDggQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUhhc0luZGV4ZWRQcm9wZXJ0eShOb2RlKiBub2RlKQogICAgICAg
ICBicmVhazsKICAgICB9CiAgICAgY2FzZSBBcnJheTo6QXJyYXlTdG9yYWdlOiB7Ci0gICAgICAg
IEFTU0VSVCghIW1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMikpOwotICAgICAgICBTdG9yYWdl
T3BlcmFuZCBzdG9yYWdlKHRoaXMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMikpOworICAg
ICAgICBBU1NFUlQoISFub2RlLT5jaGlsZDMoKSk7CisgICAgICAgIFN0b3JhZ2VPcGVyYW5kIHN0
b3JhZ2UodGhpcywgbm9kZS0+Y2hpbGQzKCkpOwogICAgICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRj
aCh0aGlzKTsKIAogICAgICAgICBHUFJSZWcgc3RvcmFnZUdQUiA9IHN0b3JhZ2UuZ3ByKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJf
NjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcAppbmRleCBkYzVhM2I0ZDYwMTRkZGM4ZDNjOThmNzk5Mjg3YmU4ODIzNDFmOWZiLi5iYTQ0
MjIxYjc2MTI1YzkzNDUzZjRlZmQyNmVlNmZlNTE4M2UxYTE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTQxNTMs
NiArNDE1Myw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAg
ICBjYXNlIFB1dFN0YWNrOgogICAgIGNhc2UgS2lsbFN0YWNrOgogICAgIGNhc2UgR2V0U3RhY2s6
CisgICAgY2FzZSBDaGVja2VkR2V0U3RhY2s6CiAgICAgY2FzZSBHZXRNeUFyZ3VtZW50QnlWYWw6
CiAgICAgY2FzZSBHZXRNeUFyZ3VtZW50QnlWYWxPdXRPZkJvdW5kczoKICAgICBjYXNlIEdldFZl
Y3Rvckxlbmd0aDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCmluZGV4IDc5NGFkMDJjNTZhNWQ1M2ExMmQxODEwZDczZGNlZDdmOTE2ZmEw
OTYuLjA4YzkwOGYyYjVmNGFkMGJkMjgzNWYwMGM0ZGZmNjEzYWI2ZTQ3ZmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtNTE0
Niw2ICs1MTQ2LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQog
ICAgIGNhc2UgTWF0ZXJpYWxpemVDcmVhdGVBY3RpdmF0aW9uOgogICAgIGNhc2UgUHV0U3RhY2s6
CiAgICAgY2FzZSBLaWxsU3RhY2s6CisgICAgY2FzZSBDaGVja2VkR2V0U3RhY2s6CiAgICAgY2Fz
ZSBHZXRTdGFjazoKICAgICBjYXNlIFBoYW50b21DcmVhdGVSZXN0OgogICAgIGNhc2UgUGhhbnRv
bVNwcmVhZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RhY2tM
YXlvdXRQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0YWNrTGF5b3V0
UGhhc2UuY3BwCmluZGV4IGU4NjRkNDUwZTFmMWU4MjUzNjM2YzE3NTczY2YyODdjZTlhOTBhNTQu
LmZkNWNjYzA0ZDAyNGU2NTMxYzhhOTRjZDRhMTJlY2VmNGM2ZGMyMTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdGFja0xheW91dFBoYXNlLmNwcApAQCAtOTcsNiAr
OTcsMTAgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICB1c2VkTG9jYWxzLnNldChzdGFj
ay0+bG9jYWwudG9Mb2NhbCgpKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgY2FzZSBDaGVja2VkR2V0U3RhY2s6CisgICAg
ICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBk
ZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVmFsaWRhdGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdWYWxpZGF0ZS5jcHAKaW5kZXggZTMxNDFlNjlmN2Y1YWI4MjFiMTQ3OTQ1OWM2NTUy
NjRmNDdiOTViZC4uNDliYTM1NzE1OTVmZjZjMjc4Y2UxZjNiYjNkNWVhNGM5YWJjYWRiOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYWxpZGF0ZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYWxpZGF0ZS5jcHAKQEAgLTYxNyw2ICs2MTcs
NyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGNhc2UgUHV0U3RhY2s6CiAgICAgICAgICAg
ICAgICAgY2FzZSBLaWxsU3RhY2s6CiAgICAgICAgICAgICAgICAgY2FzZSBHZXRTdGFjazoKKyAg
ICAgICAgICAgICAgICBjYXNlIENoZWNrZWRHZXRTdGFjazoKICAgICAgICAgICAgICAgICBjYXNl
IEVudHJ5U3dpdGNoOgogICAgICAgICAgICAgICAgIGNhc2UgSW5pdGlhbGl6ZUVudHJ5cG9pbnRB
cmd1bWVudHM6CiAgICAgICAgICAgICAgICAgICAgIFZBTElEQVRFKChub2RlKSwgISJ1bmV4cGVj
dGVkIG5vZGUgdHlwZSBpbiBDUFMiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
Q2FwYWJpbGl0aWVzLmNwcAppbmRleCBlM2FiOGUyYWI3ODFiZWFkOTFkMzM4Zjk4ZTc2OWE2NmVi
ZDZiMzczLi42ZjZjZWQxZjEwMTUyOTY5MjYyZWEyZWNiOGZhZmM4MzlmZTM3NmQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0zOTgsNiAr
Mzk4LDEwIEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2RlKQog
ICAgIGNhc2UgUHJvZmlsZUNvbnRyb2xGbG93OgogICAgIGNhc2UgTGFzdE5vZGVUeXBlOgogICAg
ICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKKworICAgIGNhc2UgQ2hlY2tlZEdldFN0YWNrOgor
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gQ2Fu
bm90Q29tcGlsZTsKICAgICB9CiAgICAgcmV0dXJuIENhbkNvbXBpbGVBbmRPU1JFbnRlcjsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCAw
OWIzNDI3M2NiYjdjYWI0NGNkODYzZTk5YjI4NTkwZTg3Yzk0YjEyLi42NDA0NTdhZDAxNGUwNmM0
NWE4YWU4ZGE5Zjc2YWM0ZTI3MzQ4MTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC03MzIsNiArNzMyLDkgQEAgcHJpdmF0ZToKICAgICAg
ICAgY2FzZSBDbGVhckNhdGNoTG9jYWxzOgogICAgICAgICAgICAgY29tcGlsZUNsZWFyQ2F0Y2hM
b2NhbHMoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENoZWNrZWRHZXRTdGFj
azoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBHZXRTdGFjazoKICAgICAgICAgICAgIGNvbXBpbGVHZXRT
dGFjaygpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC00MTIxLDEwICs0MTI0LDYgQEAgcHJpdmF0
ZToKICAgICAgICAgc3BlY3VsYXRlKAogICAgICAgICAgICAgT3V0T2ZCb3VuZHMsIG5vVmFsdWUo
KSwgMCwKICAgICAgICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbChsb3dJbnQzMihtX25vZGUtPmNo
aWxkMSgpKSwgbG93SW50MzIobV9ub2RlLT5jaGlsZDIoKSkpKTsKLQotICAgICAgICAvLyBFdmVu
IHRob3VnaCB3ZSBjbGFpbSB0byBoYXZlIEpTVmFsdWUgcmVzdWx0LCBubyB1c2VyIG9mIHVzIHNo
b3VsZAotICAgICAgICAvLyBkZXBlbmQgb24gb3VyIHZhbHVlLiBVc2VycyBvZiB0aGlzIG5vZGUg
anVzdCBuZWVkIHRvIG1haW50YWluIHRoYXQKLSAgICAgICAgLy8gd2UgZG9taW5hdGUgdGhlbS4K
ICAgICB9CiAgICAgCiAgICAgdm9pZCBjb21waWxlR2V0QnlWYWwoKQpAQCAtMTA3NjAsMTMgKzEw
NzU5LDEyIEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCBjb21waWxlSGFzSW5kZXhlZFByb3Bl
cnR5KCkKICAgICB7Ci0gICAgICAgIExWYWx1ZSBiYXNlID0gbG93Q2VsbChtX2dyYXBoLnZhckFy
Z0NoaWxkKG1fbm9kZSwgMCkpOwotICAgICAgICBMVmFsdWUgaW5kZXggPSBsb3dJbnQzMihtX2dy
YXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSkpOwotCiAgICAgICAgIHN3aXRjaCAobV9ub2RlLT5h
cnJheU1vZGUoKS50eXBlKCkpIHsKICAgICAgICAgY2FzZSBBcnJheTo6SW50MzI6CiAgICAgICAg
IGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6IHsKLSAgICAgICAgICAgIExWYWx1ZSBzdG9yYWdlID0g
bG93U3RvcmFnZShtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMikpOworICAgICAgICAgICAg
TFZhbHVlIGJhc2UgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZh
bHVlIGluZGV4ID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAgICBMVmFs
dWUgc3RvcmFnZSA9IGxvd1N0b3JhZ2UobV9ub2RlLT5jaGlsZDMoKSk7CiAgICAgICAgICAgICBM
VmFsdWUgaW50ZXJuYWxNZXRob2RUeXBlID0gbV9vdXQuY29uc3RJbnQzMihzdGF0aWNfY2FzdDxp
bnQzMl90PihtX25vZGUtPmludGVybmFsTWV0aG9kVHlwZSgpKSk7CiAKICAgICAgICAgICAgIElu
ZGV4ZWRBYnN0cmFjdEhlYXAmIGhlYXAgPSBtX25vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSA9PSBB
cnJheTo6SW50MzIgPwpAQCAtMTA3ODcsNyArMTA3ODUsNyBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgICAgIGxhc3ROZXh0ID0gbV9vdXQuaW5zZXJ0TmV3QmxvY2tzQmVmb3JlKHNsb3dDYXNlKTsK
IAogICAgICAgICAgICAgTFZhbHVlIGNoZWNrSG9sZVJlc3VsdFZhbHVlID0KLSAgICAgICAgICAg
ICAgICBtX291dC5ub3RaZXJvNjQobV9vdXQubG9hZDY0KGJhc2VJbmRleChoZWFwLCBzdG9yYWdl
LCBpbmRleCwgbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDEpKSkpOworICAgICAgICAgICAg
ICAgIG1fb3V0Lm5vdFplcm82NChtX291dC5sb2FkNjQoYmFzZUluZGV4KGhlYXAsIHN0b3JhZ2Us
IGluZGV4LCBtX25vZGUtPmNoaWxkMigpKSkpOwogICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sg
Y2hlY2tIb2xlUmVzdWx0ID0gbV9vdXQuYW5jaG9yKGNoZWNrSG9sZVJlc3VsdFZhbHVlKTsKICAg
ICAgICAgICAgIG1fb3V0LmJyYW5jaChjaGVja0hvbGVSZXN1bHRWYWx1ZSwgdXN1YWxseShjb250
aW51YXRpb24pLCByYXJlbHkoc2xvd0Nhc2UpKTsKIApAQCAtMTA4MDEsNyArMTA3OTksOSBAQCBw
cml2YXRlOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQXJy
YXk6OkRvdWJsZTogewotICAgICAgICAgICAgTFZhbHVlIHN0b3JhZ2UgPSBsb3dTdG9yYWdlKG1f
Z3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAyKSk7CisgICAgICAgICAgICBMVmFsdWUgYmFzZSA9
IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBMVmFsdWUgaW5kZXggPSBs
b3dJbnQzMihtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgIExWYWx1ZSBzdG9yYWdlID0g
bG93U3RvcmFnZShtX25vZGUtPmNoaWxkMygpKTsKICAgICAgICAgICAgIExWYWx1ZSBpbnRlcm5h
bE1ldGhvZFR5cGUgPSBtX291dC5jb25zdEludDMyKHN0YXRpY19jYXN0PGludDMyX3Q+KG1fbm9k
ZS0+aW50ZXJuYWxNZXRob2RUeXBlKCkpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgSW5k
ZXhlZEFic3RyYWN0SGVhcCYgaGVhcCA9IG1faGVhcHMuaW5kZXhlZERvdWJsZVByb3BlcnRpZXM7
CkBAIC0xMDgyMCw3ICsxMDgyMCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB9IGVsc2UKICAg
ICAgICAgICAgICAgICBsYXN0TmV4dCA9IG1fb3V0Lmluc2VydE5ld0Jsb2Nrc0JlZm9yZShzbG93
Q2FzZSk7CiAKLSAgICAgICAgICAgIExWYWx1ZSBkb3VibGVWYWx1ZSA9IG1fb3V0LmxvYWREb3Vi
bGUoYmFzZUluZGV4KGhlYXAsIHN0b3JhZ2UsIGluZGV4LCBtX2dyYXBoLnZhckFyZ0NoaWxkKG1f
bm9kZSwgMSkpKTsKKyAgICAgICAgICAgIExWYWx1ZSBkb3VibGVWYWx1ZSA9IG1fb3V0LmxvYWRE
b3VibGUoYmFzZUluZGV4KGhlYXAsIHN0b3JhZ2UsIGluZGV4LCBtX25vZGUtPmNoaWxkMigpKSk7
CiAgICAgICAgICAgICBMVmFsdWUgY2hlY2tIb2xlUmVzdWx0VmFsdWUgPSBtX291dC5kb3VibGVF
cXVhbChkb3VibGVWYWx1ZSwgZG91YmxlVmFsdWUpOwogICAgICAgICAgICAgVmFsdWVGcm9tQmxv
Y2sgY2hlY2tIb2xlUmVzdWx0ID0gbV9vdXQuYW5jaG9yKGNoZWNrSG9sZVJlc3VsdFZhbHVlKTsK
ICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChjaGVja0hvbGVSZXN1bHRWYWx1ZSwgdXN1YWxseShj
b250aW51YXRpb24pLCByYXJlbHkoc2xvd0Nhc2UpKTsKQEAgLTEwODM2LDcgKzEwODM2LDkgQEAg
cHJpdmF0ZToKICAgICAgICAgfQogCiAgICAgICAgIGNhc2UgQXJyYXk6OkFycmF5U3RvcmFnZTog
ewotICAgICAgICAgICAgTFZhbHVlIHN0b3JhZ2UgPSBsb3dTdG9yYWdlKG1fZ3JhcGgudmFyQXJn
Q2hpbGQobV9ub2RlLCAyKSk7CisgICAgICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobV9u
b2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBMVmFsdWUgaW5kZXggPSBsb3dJbnQzMihtX25v
ZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgIExWYWx1ZSBzdG9yYWdlID0gbG93U3RvcmFnZSht
X25vZGUtPmNoaWxkMygpKTsKICAgICAgICAgICAgIExWYWx1ZSBpbnRlcm5hbE1ldGhvZFR5cGUg
PSBtX291dC5jb25zdEludDMyKHN0YXRpY19jYXN0PGludDMyX3Q+KG1fbm9kZS0+aW50ZXJuYWxN
ZXRob2RUeXBlKCkpKTsKIAogICAgICAgICAgICAgTEJhc2ljQmxvY2sgc2xvd0Nhc2UgPSBtX291
dC5uZXdCbG9jaygpOwpAQCAtMTA4NTQsNyArMTA4NTYsNyBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgICAgIGxhc3ROZXh0ID0gbV9vdXQuaW5zZXJ0TmV3QmxvY2tzQmVmb3JlKHNsb3dDYXNlKTsK
IAogICAgICAgICAgICAgTFZhbHVlIGNoZWNrSG9sZVJlc3VsdFZhbHVlID0KLSAgICAgICAgICAg
ICAgICBtX291dC5ub3RaZXJvNjQobV9vdXQubG9hZDY0KGJhc2VJbmRleChtX2hlYXBzLkFycmF5
U3RvcmFnZV92ZWN0b3IsIHN0b3JhZ2UsIGluZGV4LCBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9k
ZSwgMSkpKSk7CisgICAgICAgICAgICAgICAgbV9vdXQubm90WmVybzY0KG1fb3V0LmxvYWQ2NChi
YXNlSW5kZXgobV9oZWFwcy5BcnJheVN0b3JhZ2VfdmVjdG9yLCBzdG9yYWdlLCBpbmRleCwgbV9u
b2RlLT5jaGlsZDIoKSkpKTsKICAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGNoZWNrSG9sZVJl
c3VsdCA9IG1fb3V0LmFuY2hvcihjaGVja0hvbGVSZXN1bHRWYWx1ZSk7CiAgICAgICAgICAgICBt
X291dC5icmFuY2goY2hlY2tIb2xlUmVzdWx0VmFsdWUsIHVzdWFsbHkoY29udGludWF0aW9uKSwg
cmFyZWx5KHNsb3dDYXNlKSk7CiAKQEAgLTEwODY5LDYgKzEwODcxLDggQEAgcHJpdmF0ZToKICAg
ICAgICAgfQogCiAgICAgICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgICAgIExWYWx1ZSBiYXNlID0g
bG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIExWYWx1ZSBpbmRleCA9IGxv
d0ludDMyKG1fbm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgTFZhbHVlIGludGVybmFsTWV0
aG9kVHlwZSA9IG1fb3V0LmNvbnN0SW50MzIoc3RhdGljX2Nhc3Q8aW50MzJfdD4obV9ub2RlLT5p
bnRlcm5hbE1ldGhvZFR5cGUoKSkpOwogICAgICAgICAgICAgc2V0Qm9vbGVhbihtX291dC5ub3Ra
ZXJvNjQodm1DYWxsKEludDY0LCBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uSGFzSW5kZXhlZFBy
b3BlcnR5QnlJbnQpLCBtX2NhbGxGcmFtZSwgYmFzZSwgaW5kZXgsIGludGVybmFsTWV0aG9kVHlw
ZSkpKTsKICAgICAgICAgICAgIGJyZWFrOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377162</attachid>
            <date>2019-08-23 15:10:16 -0700</date>
            <delta_ts>2019-08-23 17:38:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196715-20190823151015.patch</filename>
            <type>text/plain</type>
            <size>40590</size>
            <attacher name="Justin Michaud">justin_michaud</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
YzY2NjRmMDQ1NGNmZjc5ZmQ2NGEwMTczMWZkOWM2MTczNDJhMTc0Li4zNjU0NTQ0NjkyYWExNDIy
YTA3MTlmMzVmOGU1ODllM2YyMDFjYzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NSBAQAorMjAxOS0wOC0yMyAgSnVzdGluIE1pY2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBh
cHBsZS5jb20+CisKKyAgICAgICAgTm8gbG9uZ2VyIG1ha2UgQ2hlY2tJbkJvdW5kcyBhIGNoaWxk
IG9mIHRoZSB0aGluZ3MgdGhhdCByZWx5IG9uIGJlaW5nIGRvbWluYXRlZCBieSBpdAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NzE1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBzc2EgbG93ZXJp
bmcgb2Ygbm9uLWVmZmVjdGZ1bCBub2RlcyB0byBhZnRlciBsaWNtLCB0aGlzIHdheSB3ZSBjYW4g
bmV2ZXIgaG9pc3QgYSBub2RlIGFib3ZlIGl0cyBjaGVjay4KKyAgICAgICAgV2UgYWxzbyBhZGQg
YSBuZXcgQ2hlY2tlZEdldFN0YWNrIG5vZGUgdGhhdCBnZXRzIGxvd2VyZWQgaW4gc3NhIGxvd2Vy
aW5nLCBmb3IgdGhlIHNhbWUgcmVhc29uLgorCisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRl
cjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZH
QXJndW1lbnRzRWxpbWluYXRpb25QaGFzZS5jcHA6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9j
ayk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpj
bG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkNvbnN0YW50Rm9sZGluZ1BoYXNlOjpmb2xkQ29uc3RhbnRzKToK
KyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0Mp
OgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpG
aXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmNv
bnZlcnRUb0hhc0luZGV4ZWRQcm9wZXJ0eSk6CisgICAgICAgICogZGZnL0RGR0ludGVnZXJDaGVj
a0NvbWJpbmluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpJbnRlZ2VyQ2hlY2tDb21i
aW5pbmdQaGFzZTo6aGFuZGxlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdJbnRlZ2VyUmFuZ2VP
cHRpbWl6YXRpb25QaGFzZS5jcHA6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAg
KEpTQzo6REZHOjpOb2RlOjpoYXNTdGFja0FjY2Vzc0RhdGEpOgorICAgICAgICAqIGRmZy9ERkdO
b2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNl
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpMb2NhbE9TUkF2YWlsYWJpbGl0eUNhbGN1bGF0b3I6
OmV4ZWN1dGVOb2RlKToKKyAgICAgICAgKiBkZmcvREZHUGxhbi5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6UGxhbjo6Y29tcGlsZUluVGhyZWFkSW1wbCk6CisgICAgICAgICogZGZnL0RGR1ByZWRp
Y3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHUHV0U3RhY2tTaW5r
aW5nUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdTU0FDb252ZXJzaW9uUGhhc2UuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OlNTQUNvbnZlcnNpb25QaGFzZTo6cnVuKToKKyAgICAgICAgKiBk
ZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U1NBTG93ZXJp
bmdQaGFzZTo6aGFuZGxlTm9kZSk6CisgICAgICAgIChKU0M6OkRGRzo6U1NBTG93ZXJpbmdQaGFz
ZTo6bG93ZXJCb3VuZHNDaGVjayk6CisgICAgICAgIChKU0M6OkRGRzo6cGVyZm9ybVNTQUxvd2Vy
aW5nKToKKyAgICAgICAgKEpTQzo6REZHOjpwZXJmb3JtRWZmZWN0ZnVsU1NBTG93ZXJpbmcpOgor
ICAgICAgICAqIGRmZy9ERkdTU0FMb3dlcmluZ1BoYXNlLmg6CisgICAgICAgICogZGZnL0RGR1Nh
ZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVjdXRlKToKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlSGFzSW5kZXhlZFByb3BlcnR5KToKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZn
L0RGR1N0YWNrTGF5b3V0UGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlN0YWNrTGF5b3V0
UGhhc2U6OnJ1bik6CisgICAgICAgICogZGZnL0RGR1ZhbGlkYXRlLmNwcDoKKyAgICAgICAgKiBm
dGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToK
KyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpE
Rkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0IzOjpjb21waWxlQ2hlY2tJbkJvdW5kcyk6CisgICAgICAgIChKU0M6OkZUTDo6
REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVIYXNJbmRleGVkUHJvcGVydHkpOgorCiAyMDE5LTA4
LTIyICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS11bV1BFXSBGaXhlcyBmb3Igbm9uLXVuaWZpZWQgYnVpbGRzIGFmdGVyIHIyNDg1NDcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnBy
ZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaAppbmRleCAyNzY1NjkyNmE4ZDI5ZDI3ZWJlZWFhOWZmZGNhMjAzY2My
NWZhMGY3Li5jZTRhMDQ2NDViNGU5MDRjYjFiZmE1YjVlNzY3N2U0NmE2NzAwZGIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxp
bmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJl
dGVySW5saW5lcy5oCkBAIC0zODMsNyArMzgzLDggQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVy
PEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkK
ICAgICAgICAgc2V0Rm9yTm9kZShub2RlLCB2YWx1ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
LSAgICAgICAgCisKKyAgICBjYXNlIENoZWNrZWRHZXRTdGFjazoKICAgICBjYXNlIEdldFN0YWNr
OiB7CiAgICAgICAgIFN0YWNrQWNjZXNzRGF0YSogZGF0YSA9IG5vZGUtPnN0YWNrQWNjZXNzRGF0
YSgpOwogICAgICAgICBBYnN0cmFjdFZhbHVlIHZhbHVlID0gbV9zdGF0ZS5vcGVyYW5kKGRhdGEt
PmxvY2FsKTsKQEAgLTM1MTYsMTYgKzM1MTcsMTEgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVy
PEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkK
ICAgICBjYXNlIENoZWNrSW5Cb3VuZHM6IHsKICAgICAgICAgSlNWYWx1ZSBsZWZ0ID0gZm9yTm9k
ZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAgSlNWYWx1ZSByaWdodCA9IGZvck5v
ZGUobm9kZS0+Y2hpbGQyKCkpLnZhbHVlKCk7Ci0gICAgICAgIGlmIChsZWZ0ICYmIHJpZ2h0ICYm
IGxlZnQuaXNJbnQzMigpICYmIHJpZ2h0LmlzSW50MzIoKSAmJiBzdGF0aWNfY2FzdDx1aW50MzJf
dD4obGVmdC5hc0ludDMyKCkpIDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHJpZ2h0LmFzSW50MzIo
KSkpCisgICAgICAgIGlmIChsZWZ0ICYmIHJpZ2h0ICYmIGxlZnQuaXNJbnQzMigpICYmIHJpZ2h0
LmlzSW50MzIoKQorICAgICAgICAgICAgJiYgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGxlZnQuYXNJ
bnQzMigpKSA8IHN0YXRpY19jYXN0PHVpbnQzMl90PihyaWdodC5hc0ludDMyKCkpKSB7CiAgICAg
ICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOwotCi0gICAgICAgIC8vIFdl
IGNsYWltIHdlIHJlc3VsdCBpbiBJbnQzMi4gSXQncyBub3QgcmVhbGx5IGltcG9ydGFudCB3aGF0
IG91ciByZXN1bHQgaXMgKHRob3VnaCB3ZQotICAgICAgICAvLyBkb24ndCB3YW50IHRvIGNsYWlt
IHdlIG1heSByZXN1bHQgaW4gdGhlIGVtcHR5IHZhbHVlKSwgb3RoZXIgbm9kZXMgd2l0aCBkYXRh
IGZsb3cgZWRnZXMKLSAgICAgICAgLy8gdG8gdXMganVzdCBkbyB0aGF0IHRvIG1haW50YWluIHRo
ZSBpbnZhcmlhbnQgdGhhdCB0aGV5IGNhbid0IGJlIGhvaXN0ZWQgaGlnaGVyIHRoYW4gdXMuCi0g
ICAgICAgIC8vIFNvIHdlIGp1c3QgYXJiaXRyYXJpbHkgcGljayBJbnQzMi4gSW4gc29tZSB3YXlz
LCBTdG9yYWdlUmVzdWx0IG1heSBiZSB0aGUgbW9yZSBjb3JyZWN0Ci0gICAgICAgIC8vIHRoaW5n
IHRvIGRvIGhlcmUuIFdlIHBpY2sgTm9kZVJlc3VsdEpTIGJlY2F1c2UgaXQgbWFrZXMgY29udmVy
dGluZyB0aGlzIHRvIGFuIGlkZW50aXR5Ci0gICAgICAgIC8vIGVhc2llci4KLSAgICAgICAgc2V0
Tm9uQ2VsbFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNJbnQzMk9ubHkpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzRWxpbWluYXRpb25QaGFz
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c0VsaW1pbmF0aW9u
UGhhc2UuY3BwCmluZGV4IDM2YjFlNDUyNTkwYTkzMGQzZTkyY2UyNWY1ZWI0MzIyY2NmMDlhMWEu
Ljk4MzE4ODEyOWZhNjgyYWIwMTdmNjQ0YjQxYzU3MGQ2ZjBjYTdjMjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzRWxpbWluYXRpb25QaGFzZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcmd1bWVudHNFbGltaW5hdGlvblBo
YXNlLmNwcApAQCAtODE4LDE1ICs4MTgsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXJnICs9IGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQ7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IG1fZ3JhcGgubV9zdGFja0FjY2Vzc0RhdGEu
YWRkKGFyZywgRmx1c2hlZEpTVmFsdWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vZGUqIGNoZWNrID0gbnVsbHB0cjsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlubGluZUNhbGxGcmFtZSB8fCBpbmxpbmVDYWxs
RnJhbWUtPmlzVmFyYXJncygpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNo
ZWNrID0gaW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBub2RlSW5kZXgsIFNwZWNOb25lLCBDaGVja0luQm91bmRzLCBub2RlLT5vcmln
aW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLnZhckFyZ0No
aWxkKG5vZGUsIDEpLCBFZGdlKGdldEFycmF5TGVuZ3RoKGNhbmRpZGF0ZSksIEludDMyVXNlKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGluc2VydGlvblNldC5p
bnNlcnROb2RlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUluZGV4
LCBub2RlLT5wcmVkaWN0aW9uKCksIENoZWNrZWRHZXRTdGFjaywgbm9kZS0+b3JpZ2luLCBPcElu
Zm8oZGF0YSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLmNo
aWxkKG5vZGUsIDEpLCBFZGdlKGdldEFycmF5TGVuZ3RoKGNhbmRpZGF0ZSksIEludDMyVXNlKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gaW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlSW5kZXgsIG5vZGUtPnByZWRpY3Rpb24o
KSwgR2V0U3RhY2ssIG5vZGUtPm9yaWdpbiwgT3BJbmZvKGRhdGEpKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gaW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVJbmRleCwgbm9kZS0+cHJlZGljdGlvbigp
LCBHZXRTdGFjaywgbm9kZS0+b3JpZ2luLCBPcEluZm8oZGF0YSksIEVkZ2UoY2hlY2ssIFVudHlw
ZWRVc2UpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggMTM3NDkxOWJlOWUyMTM0NTZmOTI3ZjdjMzYwMmQ1
N2JjMjZjZmQwZi4uOTJhZDg2NmNjNjk2ZDllNjczN2NmYjVmMmY2NmNhZmVlM2E4M2M5ZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAg
LTY5MjAsMTAgKzY5MjAsNyBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2ln
bmVkIGxpbWl0KQogICAgICAgICAgICAgTm9kZSogYmFzZSA9IGdldChieXRlY29kZS5tX2Jhc2Up
OwogICAgICAgICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IGdldEFycmF5TW9kZShieXRlY29k
ZS5tZXRhZGF0YShjb2RlQmxvY2spLm1fYXJyYXlQcm9maWxlLCBBcnJheTo6UmVhZCk7CiAgICAg
ICAgICAgICBOb2RlKiBwcm9wZXJ0eSA9IGdldChieXRlY29kZS5tX3Byb3BlcnR5KTsKLSAgICAg
ICAgICAgIGFkZFZhckFyZ0NoaWxkKGJhc2UpOwotICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQo
cHJvcGVydHkpOwotICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQobnVsbHB0cik7Ci0gICAgICAg
ICAgICBOb2RlKiBoYXNJdGVyYWJsZVByb3BlcnR5ID0gYWRkVG9HcmFwaChOb2RlOjpWYXJBcmcs
IEhhc0luZGV4ZWRQcm9wZXJ0eSwgT3BJbmZvKGFycmF5TW9kZS5hc1dvcmQoKSksIE9wSW5mbyhz
dGF0aWNfY2FzdDx1aW50MzJfdD4oUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6Okdl
dE93blByb3BlcnR5KSkpOworICAgICAgICAgICAgTm9kZSogaGFzSXRlcmFibGVQcm9wZXJ0eSA9
IGFkZFRvR3JhcGgoSGFzSW5kZXhlZFByb3BlcnR5LCBPcEluZm8oYXJyYXlNb2RlLmFzV29yZCgp
KSwgT3BJbmZvKHN0YXRpY19jYXN0PHVpbnQzMl90PihQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0
aG9kVHlwZTo6R2V0T3duUHJvcGVydHkpKSwgYmFzZSwgcHJvcGVydHkpOwogICAgICAgICAgICAg
bV9leGl0T0sgPSBmYWxzZTsgLy8gSGFzSW5kZXhlZFByb3BlcnR5IG11c3QgYmUgdHJlYXRlZCBh
cyBpZiBpdCBjbG9iYmVycyBleGl0IHN0YXRlLCBzaW5jZSBGaXh1cFBoYXNlIG1heSBtYWtlIGl0
IGdlbmVyaWMuCiAgICAgICAgICAgICBzZXQoYnl0ZWNvZGUubV9kc3QsIGhhc0l0ZXJhYmxlUHJv
cGVydHkpOwogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfaGFzX2luZGV4ZWRfcHJvcGVydHkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCA1YTBmMTE3
OWY5Y2IwMDAyMDY2NzgyZThmNTM2MWVlNjM4N2Q5ZjBhLi41OTkxZTZiYTU3YmUxYmYwNzMwNTkx
NDg2NWZjZmIxOTc5NzU0NTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2Ji
ZXJpemUuaApAQCAtMzIxLDcgKzMyMSw3IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgs
IE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAg
ICAgICAgICBpZiAobW9kZS5pc0luQm91bmRzKCkpIHsKICAgICAgICAgICAgICAgICByZWFkKEJ1
dHRlcmZseV9wdWJsaWNMZW5ndGgpOwogICAgICAgICAgICAgICAgIHJlYWQoSW5kZXhlZEludDMy
UHJvcGVydGllcyk7Ci0gICAgICAgICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihIYXNJbmRleGVk
UHJvcGVydHlMb2MsIEluZGV4ZWRJbnQzMlByb3BlcnRpZXMsIGdyYXBoLnZhckFyZ0NoaWxkKG5v
ZGUsIDApLCBncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKSksIExhenlOb2RlKG5vZGUpKTsKKyAg
ICAgICAgICAgICAgICBkZWYoSGVhcExvY2F0aW9uKEhhc0luZGV4ZWRQcm9wZXJ0eUxvYywgSW5k
ZXhlZEludDMyUHJvcGVydGllcywgbm9kZS0+Y2hpbGQxKCksIG5vZGUtPmNoaWxkMigpKSwgTGF6
eU5vZGUobm9kZSkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIHJlYWQoSGVhcCk7CkBAIC0zMzIsNyArMzMyLDcgQEAgdm9pZCBjbG9iYmVyaXpl
KEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0
IFdyaXRlRnUKICAgICAgICAgICAgIGlmIChtb2RlLmlzSW5Cb3VuZHMoKSkgewogICAgICAgICAg
ICAgICAgIHJlYWQoQnV0dGVyZmx5X3B1YmxpY0xlbmd0aCk7CiAgICAgICAgICAgICAgICAgcmVh
ZChJbmRleGVkRG91YmxlUHJvcGVydGllcyk7Ci0gICAgICAgICAgICAgICAgZGVmKEhlYXBMb2Nh
dGlvbihIYXNJbmRleGVkUHJvcGVydHlMb2MsIEluZGV4ZWREb3VibGVQcm9wZXJ0aWVzLCBncmFw
aC52YXJBcmdDaGlsZChub2RlLCAwKSwgZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkpLCBMYXp5
Tm9kZShub2RlKSk7CisgICAgICAgICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihIYXNJbmRleGVk
UHJvcGVydHlMb2MsIEluZGV4ZWREb3VibGVQcm9wZXJ0aWVzLCBub2RlLT5jaGlsZDEoKSwgbm9k
ZS0+Y2hpbGQyKCkpLCBMYXp5Tm9kZShub2RlKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgcmVhZChIZWFwKTsKQEAgLTM0Myw3ICszNDMsNyBA
QCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVu
Y3RvciYgcmVhZCwgY29uc3QgV3JpdGVGdQogICAgICAgICAgICAgaWYgKG1vZGUuaXNJbkJvdW5k
cygpKSB7CiAgICAgICAgICAgICAgICAgcmVhZChCdXR0ZXJmbHlfcHVibGljTGVuZ3RoKTsKICAg
ICAgICAgICAgICAgICByZWFkKEluZGV4ZWRDb250aWd1b3VzUHJvcGVydGllcyk7Ci0gICAgICAg
ICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihIYXNJbmRleGVkUHJvcGVydHlMb2MsIEluZGV4ZWRD
b250aWd1b3VzUHJvcGVydGllcywgZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCksIGdyYXBoLnZh
ckFyZ0NoaWxkKG5vZGUsIDEpKSwgTGF6eU5vZGUobm9kZSkpOworICAgICAgICAgICAgICAgIGRl
ZihIZWFwTG9jYXRpb24oSGFzSW5kZXhlZFByb3BlcnR5TG9jLCBJbmRleGVkQ29udGlndW91c1By
b3BlcnRpZXMsIG5vZGUtPmNoaWxkMSgpLCBub2RlLT5jaGlsZDIoKSksIExhenlOb2RlKG5vZGUp
KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBy
ZWFkKEhlYXApOwpAQCAtNzc0LDcgKzc3NCw4IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3Jh
cGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAg
ICAgICAgIHdyaXRlKEFic3RyYWN0SGVhcChTdGFjaywgbm9kZS0+bG9jYWwoKSkpOwogICAgICAg
ICBkZWYoSGVhcExvY2F0aW9uKFN0YWNrTG9jLCBBYnN0cmFjdEhlYXAoU3RhY2ssIG5vZGUtPmxv
Y2FsKCkpKSwgTGF6eU5vZGUobm9kZS0+Y2hpbGQxKCkubm9kZSgpKSk7CiAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgCisKKyAgICBjYXNlIENoZWNrZWRHZXRTdGFjazoKICAgICBjYXNlIEdldFN0
YWNrOiB7CiAgICAgICAgIEFic3RyYWN0SGVhcCBoZWFwKFN0YWNrLCBub2RlLT5zdGFja0FjY2Vz
c0RhdGEoKS0+bG9jYWwpOwogICAgICAgICByZWFkKGhlYXApOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAppbmRleCA2MmI3
OWZmYWIzODQzYzZkZGM2OGYwODgwMzM3ZmE5YmUyNWIwOTFlLi4yNmY4NWJlMzcyOWUxMDQzYmY2
NjM3MzUxZjhjMjI0ZDljNjZiYTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcApAQCAtMzQxLDkgKzM0MSw3IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSByaWdodCA9IG1fc3RhdGUuZm9yTm9kZShu
b2RlLT5jaGlsZDIoKSkudmFsdWUoKTsKICAgICAgICAgICAgICAgICBpZiAobGVmdCAmJiByaWdo
dCAmJiBsZWZ0LmlzSW50MzIoKSAmJiByaWdodC5pc0ludDMyKCkKICAgICAgICAgICAgICAgICAg
ICAgJiYgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGxlZnQuYXNJbnQzMigpKSA8IHN0YXRpY19jYXN0
PHVpbnQzMl90PihyaWdodC5hc0ludDMyKCkpKSB7Ci0KLSAgICAgICAgICAgICAgICAgICAgTm9k
ZSogemVybyA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydENvbnN0YW50KGluZGV4SW5CbG9jaywgbm9k
ZS0+b3JpZ2luLCBqc051bWJlcigwKSk7Ci0gICAgICAgICAgICAgICAgICAgIG5vZGUtPmNvbnZl
cnRUb0lkZW50aXR5T24oemVybyk7CisgICAgICAgICAgICAgICAgICAgIG5vZGUtPnJlbW92ZSht
X2dyYXBoKTsKICAgICAgICAgICAgICAgICAgICAgZWxpbWluYXRlZCA9IHRydWU7CiAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KQEAgLTQxMiwxMSArNDEwLDEw
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgTm9kZSogbGVu
Z3RoID0gZW1pdENvZGVUb0dldEFyZ3VtZW50c0FycmF5TGVuZ3RoKAogICAgICAgICAgICAgICAg
ICAgICBtX2luc2VydGlvblNldCwgYXJndW1lbnRzLCBpbmRleEluQmxvY2ssIG5vZGUtPm9yaWdp
bik7Ci0gICAgICAgICAgICAgICAgTm9kZSogY2hlY2sgPSBtX2luc2VydGlvblNldC5pbnNlcnRO
b2RlKAorICAgICAgICAgICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCiAgICAgICAg
ICAgICAgICAgICAgIGluZGV4SW5CbG9jaywgU3BlY05vbmUsIENoZWNrSW5Cb3VuZHMsIG5vZGUt
Pm9yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGQyKCksIEVkZ2UobGVuZ3Ro
LCBJbnQzMlVzZSkpOwogICAgICAgICAgICAgICAgIG5vZGUtPmNvbnZlcnRUb0dldFN0YWNrKGRh
dGEpOwotICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpID0gRWRnZShjaGVjaywgVW50eXBl
ZFVzZSk7CiAgICAgICAgICAgICAgICAgZWxpbWluYXRlZCA9IHRydWU7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNH
Qy5jcHAKaW5kZXggNmU4OTU3ZTRkOTBjMDY3YzE5M2FkMGRmZTc0NDVkZGVlNTlkOWVjMi4uZjFk
YTY2MWFlNDE3M2E0MzAzN2M0OTc4ODBhMDczZTEyNjAyNWRlMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMjE4LDYgKzIxOCw3IEBAIGJvb2wgZG9lc0dDKEdy
YXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIEZvcndhcmRWYXJhcmdzOgogICAgIGNh
c2UgUHV0SGludDoKICAgICBjYXNlIEtpbGxTdGFjazoKKyAgICBjYXNlIENoZWNrZWRHZXRTdGFj
azoKICAgICBjYXNlIEdldFN0YWNrOgogICAgIGNhc2UgR2V0RnJvbUFyZ3VtZW50czoKICAgICBj
YXNlIEdldEFyZ3VtZW50OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFz
ZS5jcHAKaW5kZXggZmJjOWFjMjg1M2JkM2VmZTlkMjAyYWE5YjI2YWE4NjE0MzU1MjE1NC4uNjIz
ZTQ3ZjQ4OTIxMTg4YjVjNjMyMjkxZTU1MGQ5NjM4OThiZjZmMiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xODUyLDYgKzE4NTIsNyBAQCBwcml2
YXRlOgogICAgICAgICBjYXNlIE1hdGVyaWFsaXplQ3JlYXRlQWN0aXZhdGlvbjoKICAgICAgICAg
Y2FzZSBQdXRTdGFjazoKICAgICAgICAgY2FzZSBLaWxsU3RhY2s6CisgICAgICAgIGNhc2UgQ2hl
Y2tlZEdldFN0YWNrOgogICAgICAgICBjYXNlIEdldFN0YWNrOgogICAgICAgICBjYXNlIFN0b3Jl
QmFycmllcjoKICAgICAgICAgY2FzZSBGZW5jZWRTdG9yZUJhcnJpZXI6CkBAIC0xOTA0LDEzICsx
OTA1LDEzIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBub2RlLT5zZXRBcnJheU1vZGUoCiAgICAg
ICAgICAgICAgICAgbm9kZS0+YXJyYXlNb2RlKCkucmVmaW5lKAogICAgICAgICAgICAgICAgICAg
ICBtX2dyYXBoLCBub2RlLAotICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLnZhckFyZ0NoaWxk
KG5vZGUsIDApLT5wcmVkaWN0aW9uKCksCi0gICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgudmFy
QXJnQ2hpbGQobm9kZSwgMSktPnByZWRpY3Rpb24oKSwKKyAgICAgICAgICAgICAgICAgICAgbm9k
ZS0+Y2hpbGQxKCktPnByZWRpY3Rpb24oKSwKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y2hp
bGQyKCktPnByZWRpY3Rpb24oKSwKICAgICAgICAgICAgICAgICAgICAgU3BlY05vbmUpKTsKLSAg
ICAgICAgICAgIAotICAgICAgICAgICAgYmxlc3NBcnJheU9wZXJhdGlvbihtX2dyYXBoLnZhckFy
Z0NoaWxkKG5vZGUsIDApLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpLCBtX2dyYXBoLnZh
ckFyZ0NoaWxkKG5vZGUsIDIpKTsKLSAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obV9ncmFw
aC52YXJBcmdDaGlsZChub2RlLCAwKSk7Ci0gICAgICAgICAgICBmaXhFZGdlPEludDMyVXNlPiht
X2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKKworICAgICAgICAgICAgYmxlc3NBcnJheU9w
ZXJhdGlvbihub2RlLT5jaGlsZDEoKSwgbm9kZS0+Y2hpbGQyKCksIG5vZGUtPmNoaWxkMygpKTsK
KyAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAg
ICAgZml4RWRnZTxJbnQzMlVzZT4obm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBHZXREaXJlY3RQbmFtZTogewpAQCAtMzU0OSwyOSAr
MzU1MCwxOCBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgbm9kZS0+c2V0T3AoSGFzSW5kZXhl
ZFByb3BlcnR5KTsKICAgICAgICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRlKTsK
LQotICAgICAgICB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBmaXJzdENoaWxkID0gbV9ncmFwaC5t
X3ZhckFyZ0NoaWxkcmVuLnNpemUoKTsKLSAgICAgICAgICAgIHVuc2lnbmVkIG51bUNoaWxkcmVu
ID0gMzsKLSAgICAgICAgICAgIG1fZ3JhcGgubV92YXJBcmdDaGlsZHJlbi5hcHBlbmQobm9kZS0+
Y2hpbGQxKCkpOwotICAgICAgICAgICAgbV9ncmFwaC5tX3ZhckFyZ0NoaWxkcmVuLmFwcGVuZChu
b2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgICAgICBtX2dyYXBoLm1fdmFyQXJnQ2hpbGRyZW4uYXBw
ZW5kKEVkZ2UoKSk7Ci0gICAgICAgICAgICBub2RlLT5tZXJnZUZsYWdzKE5vZGVIYXNWYXJBcmdz
KTsKLSAgICAgICAgICAgIG5vZGUtPmNoaWxkcmVuID0gQWRqYWNlbmN5TGlzdChBZGphY2VuY3lM
aXN0OjpWYXJpYWJsZSwgZmlyc3RDaGlsZCwgbnVtQ2hpbGRyZW4pOwotICAgICAgICB9Ci0KICAg
ICAgICAgbm9kZS0+c2V0QXJyYXlNb2RlKAogICAgICAgICAgICAgbm9kZS0+YXJyYXlNb2RlKCku
cmVmaW5lKAogICAgICAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUsCi0gICAgICAgICAgICAgICAg
bV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAwKS0+cHJlZGljdGlvbigpLAotICAgICAgICAgICAg
ICAgIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSktPnByZWRpY3Rpb24oKSwKKyAgICAgICAg
ICAgICAgICBub2RlLT5jaGlsZDEoKS0+cHJlZGljdGlvbigpLAorICAgICAgICAgICAgICAgIG5v
ZGUtPmNoaWxkMigpLT5wcmVkaWN0aW9uKCksCiAgICAgICAgICAgICAgICAgU3BlY05vbmUpKTsK
ICAgICAgICAgbm9kZS0+c2V0SW50ZXJuYWxNZXRob2RUeXBlKFByb3BlcnR5U2xvdDo6SW50ZXJu
YWxNZXRob2RUeXBlOjpIYXNQcm9wZXJ0eSk7CiAKLSAgICAgICAgYmxlc3NBcnJheU9wZXJhdGlv
bihtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUs
IDEpLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDIpKTsKKyAgICAgICAgYmxlc3NBcnJheU9w
ZXJhdGlvbihub2RlLT5jaGlsZDEoKSwgbm9kZS0+Y2hpbGQyKCksIG5vZGUtPmNoaWxkMygpKTsK
IAotICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCkp
OwotICAgICAgICBmaXhFZGdlPEludDMyVXNlPihtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEp
KTsKKyAgICAgICAgZml4RWRnZTxDZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIGZp
eEVkZ2U8SW50MzJVc2U+KG5vZGUtPmNoaWxkMigpKTsKICAgICB9CiAKICAgICB2b2lkIGZpeHVw
Tm9ybWFsaXplTWFwS2V5KE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0ludGVnZXJDaGVja0NvbWJpbmluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSW50ZWdlckNoZWNrQ29tYmluaW5nUGhhc2UuY3BwCmluZGV4IDVm
N2Y4ZjE2OTA0ODMyMWViOThlYzBiM2Q1ZTJlZmIyZWQyNjk5MTMuLjI0ZTAzZmZiNzVmNzJkZDZm
YzkwZDdkMzAwZjg3YTJkYzgwNjdhOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSW50ZWdlckNoZWNrQ29tYmluaW5nUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSW50ZWdlckNoZWNrQ29tYmluaW5nUGhhc2UuY3BwCkBAIC0xNTAs
NyArMTUwLDYgQEAgcHVibGljOgogICAgICAgICBDb2RlT3JpZ2luIG1fbWF4T3JpZ2luOwogICAg
ICAgICB1bnNpZ25lZCBtX2NvdW50IHsgMCB9OyAvLyBJZiB0aGlzIGlzIHplcm8gdGhlbiB0aGUg
Ym91bmRzIHdvbid0IG5lY2Vzc2FyaWx5IG1ha2Ugc2Vuc2UuCiAgICAgICAgIGJvb2wgbV9ob2lz
dGVkIHsgZmFsc2UgfTsKLSAgICAgICAgTm9kZSogbV9kZXBlbmRlbmN5IHsgbnVsbHB0ciB9Owog
ICAgIH07CiAKICAgICBJbnRlZ2VyQ2hlY2tDb21iaW5pbmdQaGFzZShHcmFwaCYgZ3JhcGgpCkBA
IC0yNTgsMTUgKzI1NywxNCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEFyaXRoOjpVbmNoZWNrZWQpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgICAgICBOb2RlKiBtaW5DaGVjayA9IG51bGxwdHI7CiAg
ICAgICAgICAgICAgICAgICAgIGlmIChtaW5Ob2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBtaW5DaGVjayA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCisgICAgICAgICAgICAgICAg
ICAgICAgICBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG5vZGVJbmRleCwgU3BlY05vbmUsIENoZWNrSW5Cb3VuZHMsIG5vZGUtPm9yaWdpbiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZGdlKG1pbk5vZGUsIEludDMyVXNlKSwgRWRn
ZShkYXRhLm1fa2V5Lm1fa2V5LCBJbnQzMlVzZSkpOwogICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgIG1fbWFwW2RhdGEubV9rZXldLm1fZGVwZW5kZW5jeSA9IG1faW5z
ZXJ0aW9uU2V0Lmluc2VydE5vZGUoCisgICAgICAgICAgICAgICAgICAgIG1faW5zZXJ0aW9uU2V0
Lmluc2VydE5vZGUoCiAgICAgICAgICAgICAgICAgICAgICAgICBub2RlSW5kZXgsIFNwZWNOb25l
LCBDaGVja0luQm91bmRzLCBub2RlLT5vcmlnaW4sCi0gICAgICAgICAgICAgICAgICAgICAgICBF
ZGdlKG1heE5vZGUsIEludDMyVXNlKSwgRWRnZShkYXRhLm1fa2V5Lm1fa2V5LCBJbnQzMlVzZSks
IEVkZ2UobWluQ2hlY2ssIFVudHlwZWRVc2UpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEVk
Z2UobWF4Tm9kZSwgSW50MzJVc2UpLCBFZGdlKGRhdGEubV9rZXkubV9rZXksIEludDMyVXNlKSk7
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAKQEAgLTI4Niw3ICsyODQsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgY2FzZSBBcnJheUJvdW5kczoKLSAg
ICAgICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9JZGVudGl0eU9uKG1fbWFwW2RhdGEubV9rZXld
Lm1fZGVwZW5kZW5jeSk7CisgICAgICAgICAgICAgICAgbm9kZS0+cmVtb3ZlKG1fZ3JhcGgpOwog
ICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0ludGVnZXJSYW5nZU9wdGltaXphdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSW50ZWdlclJhbmdlT3B0aW1pemF0aW9uUGhhc2UuY3BwCmluZGV4IDgxMTgx
ZWIwYjRiM2U5Y2NkOGE0ZWFjY2VjNDQ2Y2ZmNjE1MTM1OGQuLjZiNzE5Y2RiYzMxZmZiODgyY2Vl
NmQwNDc3M2I2MmNjMWNjYTJmYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHSW50ZWdlclJhbmdlT3B0aW1pemF0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSW50ZWdlclJhbmdlT3B0aW1pemF0aW9uUGhhc2UuY3BwCkBAIC0x
MzM3LDggKzEzMzcsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICBpZiAobm9uTmVnYXRpdmUgJiYgbGVzc1RoYW5MZW5ndGgpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGV4ZWN1dGVOb2RlKGJsb2NrLT5hdChub2RlSW5kZXgpKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIFdlIGp1c3QgbmVlZCB0byBtYWtlIHN1cmUgd2UgYXJlIGEg
dmFsdWUtcHJvZHVjaW5nIG5vZGUuCi0gICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5jb252
ZXJ0VG9JZGVudGl0eU9uKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBub2RlLT5yZW1vdmUobV9ncmFwaCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBj
aGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggMzQxZjRkYWJmZGVm
MjA0ZjZiZTQ2MGJjNTExYzk3NDJkZTU0OTZhYi4uNzkxZGExMGNiZDBlMGUxNzM2MzQ1MmRhY2Rl
NjM3NmVkNzE0YzFhYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdO
b2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTk4Nyw2
ICs5ODcsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBzd2l0Y2ggKG9wKCkpIHsKICAgICAg
ICAgY2FzZSBQdXRTdGFjazoKKyAgICAgICAgY2FzZSBDaGVja2VkR2V0U3RhY2s6CiAgICAgICAg
IGNhc2UgR2V0U3RhY2s6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVs
dDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRleCBjMDlhMTc2NjJh
OGI5ZDAwNjA0OTNmZmY0ODQyYzllODhiZTE4ZGQyLi5mMWFkYTZiMTQ5YTA1YjY5Y2QxN2JmODFh
YWUwODBiOTZjZDcyY2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5o
CkBAIC03NCw2ICs3NCw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBt
YWNybyhQdXRTdGFjaywgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEtpbGxTdGFjaywg
Tm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEdldFN0YWNrLCBOb2RlUmVzdWx0SlMpIFwK
KyAgICBtYWNybyhDaGVja2VkR2V0U3RhY2ssIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlUmVzdWx0
SlMpIFwKICAgICBcCiAgICAgbWFjcm8oTW92SGludCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAg
IG1hY3JvKFpvbWJpZUhpbnQsIE5vZGVNdXN0R2VuZXJhdGUpIFwKQEAgLTI2NCw3ICsyNjUsNyBA
QCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oQ2hlY2tOb3RFbXB0
eSwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEFzc2VydE5vdEVtcHR5LCBOb2RlTXVz
dEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oQ2hlY2tCYWRDZWxsLCBOb2RlTXVzdEdlbmVyYXRlKSBc
Ci0gICAgbWFjcm8oQ2hlY2tJbkJvdW5kcywgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1bHRK
UykgXAorICAgIG1hY3JvKENoZWNrSW5Cb3VuZHMsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBt
YWNybyhDaGVja1N0cmluZ0lkZW50LCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oQ2hl
Y2tUeXBlSW5mb0ZsYWdzLCBOb2RlTXVzdEdlbmVyYXRlKSAvKiBUYWtlcyBhbiBPcEluZm8gd2l0
aCB0aGUgZmxhZ3MgeW91IHdhbnQgdG8gdGVzdCBhcmUgc2V0ICovXAogICAgIG1hY3JvKENoZWNr
U3ViQ2xhc3MsIE5vZGVNdXN0R2VuZXJhdGUpIFwKQEAgLTQ1OCw3ICs0NTksNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgXAogICAgIC8qIEZvci1pbiBlbnVtZXJhdGlv
biBvcGNvZGVzICovXAogICAgIG1hY3JvKEdldEVudW1lcmFibGVMZW5ndGgsIE5vZGVNdXN0R2Vu
ZXJhdGUgfCBOb2RlUmVzdWx0SlMpIFwKLSAgICBtYWNybyhIYXNJbmRleGVkUHJvcGVydHksIE5v
ZGVSZXN1bHRCb29sZWFuIHwgTm9kZUhhc1ZhckFyZ3MpIFwKKyAgICBtYWNybyhIYXNJbmRleGVk
UHJvcGVydHksIE5vZGVSZXN1bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oSGFzU3RydWN0dXJlUHJv
cGVydHksIE5vZGVSZXN1bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oSGFzR2VuZXJpY1Byb3BlcnR5
LCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKEdldERpcmVjdFBuYW1lLCBOb2RlTXVz
dEdlbmVyYXRlIHwgTm9kZUhhc1ZhckFyZ3MgfCBOb2RlUmVzdWx0SlMpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFz
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkF2YWlsYWJpbGl0eUFuYWx5
c2lzUGhhc2UuY3BwCmluZGV4IDMyODBmODdhNjI2N2RmMDM0Yzg0ZTMzMTg1MzBjNzQxOWU1NWU5
N2UuLmE0M2NkYmM2ZTk1NjRlZjE5Y2Y3N2Y2YjU2OThjMjM1YWQ4NzBlZTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFz
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JBdmFpbGFiaWxpdHlB
bmFseXNpc1BoYXNlLmNwcApAQCAtMjE3LDYgKzIxNyw3IEBAIHZvaWQgTG9jYWxPU1JBdmFpbGFi
aWxpdHlDYWxjdWxhdG9yOjpleGVjdXRlTm9kZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsK
ICAgICB9CiAKKyAgICBjYXNlIENoZWNrZWRHZXRTdGFjazoKICAgICBjYXNlIEdldFN0YWNrOiB7
CiAgICAgICAgIFN0YWNrQWNjZXNzRGF0YSogZGF0YSA9IG5vZGUtPnN0YWNrQWNjZXNzRGF0YSgp
OwogICAgICAgICBtX2F2YWlsYWJpbGl0eS5tX2xvY2Fscy5vcGVyYW5kKGRhdGEtPmxvY2FsKSA9
IEF2YWlsYWJpbGl0eShub2RlLCBkYXRhLT5mbHVzaGVkQXQoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdQbGFuLmNwcAppbmRleCBiNjk0OWFhMDM1YzEyZmE3NDlkNTgwY2M3YzJhZWNjYThk
OTJjMTY4Li5mMmMyZmQ0OWUxZTFjYWRhN2UzYmUxNWJmMzQxOTk3NDhjZWI4MzZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAKQEAgLTQwOCw3ICs0MDgsOCBAQCBQbGFuOjpD
b21waWxhdGlvblBhdGggUGxhbjo6Y29tcGlsZUluVGhyZWFkSW1wbCgpCiAgICAgICAgICAgICBS
VU5fUEhBU0UocGVyZm9ybUxvb3BQcmVIZWFkZXJDcmVhdGlvbik7CiAgICAgICAgIFJVTl9QSEFT
RShwZXJmb3JtQ1BTUmV0aHJlYWRpbmcpOwogICAgICAgICBSVU5fUEhBU0UocGVyZm9ybVNTQUNv
bnZlcnNpb24pOwotICAgICAgICBSVU5fUEhBU0UocGVyZm9ybVNTQUxvd2VyaW5nKTsKKyAgICAg
ICAgLy8gV2UgY2FuIHNhZmVseSBsb3dlciBhbnl0aGluZyBjb3VsZCBub3QgYmUgaG9pc3RlZC4K
KyAgICAgICAgUlVOX1BIQVNFKHBlcmZvcm1FZmZlY3RmdWxTU0FMb3dlcmluZyk7CiAgICAgICAg
IAogICAgICAgICAvLyBJZGVhbGx5LCB0aGVzZSB3b3VsZCBiZSBydW4gdG8gZml4cG9pbnQgd2l0
aCB0aGUgb2JqZWN0IGFsbG9jYXRpb24gc2lua2luZyBwaGFzZS4KICAgICAgICAgUlVOX1BIQVNF
KHBlcmZvcm1Bcmd1bWVudHNFbGltaW5hdGlvbik7CkBAIC00NDUsMTUgKzQ0NiwyMSBAQCBQbGFu
OjpDb21waWxhdGlvblBhdGggUGxhbjo6Y29tcGlsZUluVGhyZWFkSW1wbCgpCiAgICAgICAgIFJV
Tl9QSEFTRShwZXJmb3JtTGl2ZW5lc3NBbmFseXNpcyk7CiAgICAgICAgIFJVTl9QSEFTRShwZXJm
b3JtQ0ZBKTsKICAgICAgICAgUlVOX1BIQVNFKHBlcmZvcm1MSUNNKTsKKyAgICAgICAgLy8gVGhp
cyBtdXN0IHJ1biBhZnRlciBMSUNNIHRvIHByZXZlbnQgR2V0QnlWYWxzIGZyb20gYmVpbmcgaG9p
c3RlZCBhYm92ZSB0aGVpciBDaGVja0luQm91bmRzLgorICAgICAgICBSVU5fUEhBU0UocGVyZm9y
bVNTQUxvd2VyaW5nKTsKKworICAgICAgICAvLyBDbGVhbiB1cCBhZnRlciBzc2EgbG93ZXJpbmcg
Zm9yIGludGVnZXIgcmFuZ2Ugb3B0aW1pemF0aW9uLgorICAgICAgICBSVU5fUEhBU0UocGVyZm9y
bUNvbnN0YW50SG9pc3RpbmcpOworICAgICAgICBSVU5fUEhBU0UocGVyZm9ybUdsb2JhbENTRSk7
CisgICAgICAgIFJVTl9QSEFTRShwZXJmb3JtTGl2ZW5lc3NBbmFseXNpcyk7CiAKICAgICAgICAg
Ly8gRklYTUU6IEN1cnJlbnRseTogSW50ZWdlclJhbmdlT3B0aW1pemF0aW9uICptdXN0KiBiZSBy
dW4gYWZ0ZXIgTElDTS4KICAgICAgICAgLy8KICAgICAgICAgLy8gSW50ZWdlclJhbmdlT3B0aW1p
emF0aW9uIG1ha2VzIGNoYW5nZXMgb24gbm9kZXMgYmFzZWQgb24gcHJlY2VkaW5nIGJsb2Nrcwot
ICAgICAgICAvLyBhbmQgbm9kZXMuIExJQ00gbW92ZXMgbm9kZXMgd2hpY2ggY2FuIGludmFsaWRh
dGVzIGFzc3VtcHRpb25zIHVzZWQKKyAgICAgICAgLy8gYW5kIG5vZGVzLiBMSUNNIG1vdmVzIG5v
ZGVzIHdoaWNoIGNhbiBpbnZhbGlkYXRlIGFzc3VtcHRpb25zIHVzZWQKICAgICAgICAgLy8gYnkg
SW50ZWdlclJhbmdlT3B0aW1pemF0aW9uLgogICAgICAgICAvLwogICAgICAgICAvLyBJZGVhbGx5
LCB0aGUgZGVwZW5kZW5jaWVzIHNob3VsZCBiZSBleHBsaWNpdC4gU2VlIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc1MzQuCi0gICAgICAgIFJVTl9QSEFTRShwZXJm
b3JtTGl2ZW5lc3NBbmFseXNpcyk7CiAgICAgICAgIFJVTl9QSEFTRShwZXJmb3JtSW50ZWdlclJh
bmdlT3B0aW1pemF0aW9uKTsKICAgICAgICAgCiAgICAgICAgIFJVTl9QSEFTRShwZXJmb3JtQ2xl
YW5VcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rp
b25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJl
ZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IGU3NWRlNjIyNGQxNzgyYzk3ZGNlM2Q2
YTE2NjQ2ZDcwNjFhNWY1ZjIuLmQ4MDE1MTg2YTY5MzM2MjY1MTNjNWJiYmY4MTQ2ZTkyYzhlYzcy
YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblBy
b3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJl
ZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC0xMjM0LDYgKzEyMzQsNyBAQCBwcml2YXRl
OgogICAgICAgICBjYXNlIEtpbGxTdGFjazoKICAgICAgICAgY2FzZSBTdG9yZUJhcnJpZXI6CiAg
ICAgICAgIGNhc2UgRmVuY2VkU3RvcmVCYXJyaWVyOgorICAgICAgICBjYXNlIENoZWNrZWRHZXRT
dGFjazoKICAgICAgICAgY2FzZSBHZXRTdGFjazoKICAgICAgICAgY2FzZSBHZXRSZWdFeHBPYmpl
Y3RMYXN0SW5kZXg6CiAgICAgICAgIGNhc2UgU2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4OgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQdXRTdGFja1NpbmtpbmdQaGFz
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1B1dFN0YWNrU2lua2luZ1BoYXNl
LmNwcAppbmRleCBhNTllN2YxNjViOTg1ODA5YmVjZjllOTA3MDlhNzU5ZGM5NDY5MTZhLi5mNjcz
Zjk3ZjdiMDY2MTgwN2NlMjIzNGVjNDFmNzcyNmQ0MjZkOWRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1B1dFN0YWNrU2lua2luZ1BoYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1B1dFN0YWNrU2lua2luZ1BoYXNlLmNwcApAQCAtMjM3
LDcgKzIzNyw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgaWYgKERGR1B1dFN0YWNr
U2lua2luZ1BoYXNlSW50ZXJuYWw6OnZlcmJvc2UpCiAgICAgICAgICAgICAgICAgICAgICAgICBk
YXRhTG9nKCJEZWZlcnJlZCBhdCAiLCBub2RlLCAiOiIsIGRlZmVycmVkLCAiXG4iKTsKICAgICAg
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IEdl
dFN0YWNrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IEdldFN0YWNr
IHx8IG5vZGUtPm9wKCkgPT0gQ2hlY2tlZEdldFN0YWNrKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBIYW5kbGUgdGhlIGNhc2UgdGhhdCB0aGUgaW5wdXQgZG9lc24ndCBtYXRjaCBvdXIg
cmVxdWlyZW1lbnRzLiBUaGlzIGlzCiAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWFsbHkg
YSBidWcsIGJ1dCBpdCdzIGEgYmVuaWduIG9uZSBpZiB3ZSBzaW1wbHkgZG9uJ3QgcnVuIHRoaXMg
cGhhc2UuCiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJdCB1c3VhbGx5IGFyaXNlcyBiZWNh
dXNlIG9mIHBhdHRlcm5zIGxpa2U6CkBAIC0zNzQsNiArMzc0LDcgQEAgcHVibGljOgogICAgICAg
ICAgICAgICAgICAgICAgICAgYmxvY2ssIG5vZGUtPmNoaWxkMSgpLm5vZGUoKSk7CiAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgR2V0U3RhY2s6CisgICAg
ICAgICAgICAgICAgY2FzZSBDaGVja2VkR2V0U3RhY2s6CiAgICAgICAgICAgICAgICAgICAgIHNz
YUNhbGN1bGF0b3IubmV3RGVmKAogICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmFuZFRvVmFy
aWFibGUub3BlcmFuZChub2RlLT5zdGFja0FjY2Vzc0RhdGEoKS0+bG9jYWwpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgYmxvY2ssIG5vZGUpOwpAQCAtNDUwLDcgKzQ1MSw4IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgICAgICAgICAgbWFwcGluZy5vcGVyYW5kKG9wZXJhbmQpID0gbm9kZS0+Y2hp
bGQxKCkubm9kZSgpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgIAorCisgICAgICAgICAgICAgICAgY2FzZSBDaGVja2Vk
R2V0U3RhY2s6CiAgICAgICAgICAgICAgICAgY2FzZSBHZXRTdGFjazogewogICAgICAgICAgICAg
ICAgICAgICBTdGFja0FjY2Vzc0RhdGEqIGRhdGEgPSBub2RlLT5zdGFja0FjY2Vzc0RhdGEoKTsK
ICAgICAgICAgICAgICAgICAgICAgRmx1c2hGb3JtYXQgZm9ybWF0ID0gZGVmZXJyZWQub3BlcmFu
ZChkYXRhLT5sb2NhbCk7CkBAIC00NzQsNiArNDc2LDcgQEAgcHVibGljOgogICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgTm9kZSogaW5jb21pbmcgPSBtYXBwaW5nLm9w
ZXJhbmQoZGF0YS0+bG9jYWwpOwogICAgICAgICAgICAgICAgICAgICBub2RlLT5jaGlsZDEoKSA9
IGluY29taW5nLT5kZWZhdWx0RWRnZSgpOworICAgICAgICAgICAgICAgICAgICBub2RlLT5jaGls
ZDIoKSA9IEVkZ2UoKTsKICAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y29udmVydFRvSWRlbnRp
dHkoKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FDb252ZXJzaW9uUGhhc2Uu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FDb252ZXJzaW9uUGhhc2UuY3Bw
CmluZGV4IDUzNGQ2NGI1MzhmYTE4MGFmNDhlODlkNGY4MjYwMmZiNDVjOTIxY2UuLjUyNWZlYzY2
MGVhNjAyZWEzYjUwNTA4YWU4NzNiMTljMzkyN2ZjZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU1NBQ29udmVyc2lvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NTQUNvbnZlcnNpb25QaGFzZS5jcHAKQEAgLTM1OCw2ICszNTgs
MTAgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICB2YWx1ZUZvck9wZXJhbmQub3BlcmFu
ZCh2YXJpYWJsZS0+bG9jYWwoKSkgPSBjaGlsZDsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgY2FzZSBDaGVja2VkR2V0U3Rh
Y2s6CisgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICBjYXNlIEdldFN0YWNrOiB7CiAgICAgICAgICAgICAgICAgICAgIEFTU0VSVChtX2Fy
Z3VtZW50R2V0dGVycy5jb250YWlucyhub2RlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTU0FMb3dlcmluZ1BoYXNlLmNwcAppbmRleCBkMWZlOTk2OTMyMTQwZmEwNzI5
Y2RjZjA5ZDBmZGY3MjMzNmViYWUzLi4wNzhhOTFmZmFkMjg0OGFlMTE4ODkyNDdlMDQxZDUwM2Rm
ZDM0ZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUxvd2Vy
aW5nUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU1NBTG93ZXJp
bmdQaGFzZS5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBERkcgewogCit0ZW1wbGF0ZSA8Ym9vbCBsb3dlck5vbkVmZmVjdGZ1bD4KIGNsYXNzIFNTQUxv
d2VyaW5nUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJv
c2UgPSBmYWxzZTsKICAgICAKQEAgLTc4LDExICs3OSwyNSBAQCBwcml2YXRlOgogICAgICAgICBj
YXNlIEF0b21pY3NTdWI6CiAgICAgICAgIGNhc2UgQXRvbWljc1hvcjoKICAgICAgICAgY2FzZSBI
YXNJbmRleGVkUHJvcGVydHk6Ci0gICAgICAgICAgICBsb3dlckJvdW5kc0NoZWNrKG1fZ3JhcGgu
Y2hpbGQobV9ub2RlLCAwKSwgbV9ncmFwaC5jaGlsZChtX25vZGUsIDEpLCBtX2dyYXBoLmNoaWxk
KG1fbm9kZSwgMikpOworICAgICAgICAgICAgaWYgKGxvd2VyTm9uRWZmZWN0ZnVsKQorICAgICAg
ICAgICAgICAgIGxvd2VyQm91bmRzQ2hlY2sobV9ncmFwaC5jaGlsZChtX25vZGUsIDApLCBtX2dy
YXBoLmNoaWxkKG1fbm9kZSwgMSksIG1fZ3JhcGguY2hpbGQobV9ub2RlLCAyKSk7CiAgICAgICAg
ICAgICBicmVhazsKIAorICAgICAgICBjYXNlIENoZWNrZWRHZXRTdGFjazogeworICAgICAgICAg
ICAgaWYgKCFsb3dlck5vbkVmZmVjdGZ1bCkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCisgICAgICAgICAgICAgICAgbV9ub2Rl
SW5kZXgsIFNwZWNOb25lLCBDaGVja0luQm91bmRzLCBtX25vZGUtPm9yaWdpbiwKKyAgICAgICAg
ICAgICAgICBtX2dyYXBoLmNoaWxkKG1fbm9kZSwgMCksIG1fZ3JhcGguY2hpbGQobV9ub2RlLCAx
KSk7CisgICAgICAgICAgICBhdXRvKiBnZXRTdGFjayA9ICBtX2luc2VydGlvblNldC5pbnNlcnRO
b2RlKAorICAgICAgICAgICAgICAgIG1fbm9kZUluZGV4LCBtX25vZGUtPnByZWRpY3Rpb24oKSwg
R2V0U3RhY2ssIG1fbm9kZS0+b3JpZ2luLCBPcEluZm8obV9ub2RlLT5zdGFja0FjY2Vzc0RhdGEo
KSkpOworICAgICAgICAgICAgbV9ub2RlLT5jb252ZXJ0VG9JZGVudGl0eU9uKGdldFN0YWNrKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKICAgICAgICAgY2FzZSBHZXRCeVZhbDog
ewotICAgICAgICAgICAgbG93ZXJCb3VuZHNDaGVjayhtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9k
ZSwgMCksIG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxKSwgbV9ncmFwaC52YXJBcmdDaGls
ZChtX25vZGUsIDIpKTsKKyAgICAgICAgICAgIGlmIChsb3dlck5vbkVmZmVjdGZ1bCkKKyAgICAg
ICAgICAgICAgICBsb3dlckJvdW5kc0NoZWNrKG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAw
KSwgbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDEpLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG1f
bm9kZSwgMikpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIApA
QCAtMTM1LDE0ICsxNTAsOSBAQCBwcml2YXRlOgogICAgICAgICBOb2RlKiBsZW5ndGggPSBtX2lu
c2VydGlvblNldC5pbnNlcnROb2RlKAogICAgICAgICAgICAgbV9ub2RlSW5kZXgsIFNwZWNJbnQz
Mk9ubHksIG9wLCBtX25vZGUtPm9yaWdpbiwKICAgICAgICAgICAgIE9wSW5mbyhtX25vZGUtPmFy
cmF5TW9kZSgpLmFzV29yZCgpKSwgRWRnZShiYXNlLm5vZGUoKSwgS25vd25DZWxsVXNlKSwgc3Rv
cmFnZSk7Ci0gICAgICAgIE5vZGUqIGNoZWNrSW5Cb3VuZHMgPSBtX2luc2VydGlvblNldC5pbnNl
cnROb2RlKAorICAgICAgICBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKAogICAgICAgICAgICAg
bV9ub2RlSW5kZXgsIFNwZWNJbnQzMk9ubHksIENoZWNrSW5Cb3VuZHMsIG1fbm9kZS0+b3JpZ2lu
LAogICAgICAgICAgICAgaW5kZXgsIEVkZ2UobGVuZ3RoLCBLbm93bkludDMyVXNlKSk7Ci0KLSAg
ICAgICAgQWRqYWNlbmN5TGlzdCBhZGphY2VuY3lMaXN0ID0gbV9ncmFwaC5jb3B5VmFyYXJnQ2hp
bGRyZW4obV9ub2RlKTsKLSAgICAgICAgbV9ncmFwaC5tX3ZhckFyZ0NoaWxkcmVuLmFwcGVuZChF
ZGdlKGNoZWNrSW5Cb3VuZHMsIFVudHlwZWRVc2UpKTsKLSAgICAgICAgYWRqYWNlbmN5TGlzdC5z
ZXROdW1DaGlsZHJlbihhZGphY2VuY3lMaXN0Lm51bUNoaWxkcmVuKCkgKyAxKTsKLSAgICAgICAg
bV9ub2RlLT5jaGlsZHJlbiA9IGFkamFjZW5jeUxpc3Q7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KICAgICAKQEAgLTE1NCw3ICsxNjQsMTIgQEAgcHJpdmF0ZToKIAogYm9vbCBwZXJmb3Jt
U1NBTG93ZXJpbmcoR3JhcGgmIGdyYXBoKQogewotICAgIHJldHVybiBydW5QaGFzZTxTU0FMb3dl
cmluZ1BoYXNlPihncmFwaCk7CisgICAgcmV0dXJuIHJ1blBoYXNlPFNTQUxvd2VyaW5nUGhhc2U8
dHJ1ZT4+KGdyYXBoKTsKK30KKworYm9vbCBwZXJmb3JtRWZmZWN0ZnVsU1NBTG93ZXJpbmcoR3Jh
cGgmIGdyYXBoKQoreworICAgIHJldHVybiBydW5QaGFzZTxTU0FMb3dlcmluZ1BoYXNlPGZhbHNl
Pj4oZ3JhcGgpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2UuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5oCmluZGV4IGUxZjQzYzgxN2Vm
NzM0MzNkNmMzY2U3NDUxNTBlODcxMTFmMTk0MzYuLjUzN2FlMmRiMDg2ZTdhODliYzVlNTUwOGI0
NTBlOWU0MzdkZjdiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U1NBTG93ZXJpbmdQaGFzZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU1NB
TG93ZXJpbmdQaGFzZS5oCkBAIC0zNSw2ICszNSw3IEBAIGNsYXNzIEdyYXBoOwogLy8gYmFja2Vu
ZC4gVGhpcyBpcyBpbnRlbmRlZCB0byBiZSBydW4gYWZ0ZXIgU1NBQ29udmVyc2lvblBoYXNlLgog
CiBib29sIHBlcmZvcm1TU0FMb3dlcmluZyhHcmFwaCYpOworYm9vbCBwZXJmb3JtRWZmZWN0ZnVs
U1NBTG93ZXJpbmcoR3JhcGgmKTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IDM4YzI5ZWRj
NzNjMWVkMjkxNDU5MTc2N2U2MDI2MzBkNzU5ODg1ZTEuLjI4NzA1MGIzMzI1YTA0MGVlZTEwNGNj
ZmFlYjgwMjI4MDI4ZTAyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Fm
ZVRvRXhlY3V0ZS5oCkBAIC0xODgsNiArMTg4LDcgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3Ry
YWN0U3RhdGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBib29sIGlnbm8K
ICAgICBjYXNlIFNldExvY2FsOgogICAgIGNhc2UgUHV0U3RhY2s6CiAgICAgY2FzZSBLaWxsU3Rh
Y2s6CisgICAgY2FzZSBDaGVja2VkR2V0U3RhY2s6CiAgICAgY2FzZSBHZXRTdGFjazoKICAgICBj
YXNlIE1vdkhpbnQ6CiAgICAgY2FzZSBab21iaWVIaW50OgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCA3MGU3MDVkNzg0OTMyZDlkM2Zj
MjcyNDkxMzJlZmQzZTNlNWQ2NTI0Li41NWQ0MzA5MzE0Njk1Njc4ZTFiZDI0N2QyZWM3N2U5M2Ri
NGQwOGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcApAQCAtMTMxODUsOCArMTMxODUsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQWxsb2NhdGVOZXdBcnJheVdpdGhTaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwog
CiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSGFzSW5kZXhlZFByb3BlcnR5KE5vZGUqIG5v
ZGUpCiB7Ci0gICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBtX2dyYXBoLnZhckFy
Z0NoaWxkKG5vZGUsIDApKTsKLSAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgaW5kZXgo
dGhpcywgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKSk7CisgICAgU3BlY3VsYXRlQ2VsbE9w
ZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgU3BlY3VsYXRlU3RyaWN0SW50
MzJPcGVyYW5kIGluZGV4KHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKICAgICBHUFJUZW1wb3Jhcnkg
cmVzdWx0KHRoaXMpOwogCiAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOwpAQCAtMTMx
OTgsOCArMTMxOTgsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSGFzSW5kZXhlZFBy
b3BlcnR5KE5vZGUqIG5vZGUpCiAgICAgc3dpdGNoIChtb2RlLnR5cGUoKSkgewogICAgIGNhc2Ug
QXJyYXk6OkludDMyOgogICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6IHsKLSAgICAgICAgQVNT
RVJUKCEhbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAyKSk7Ci0gICAgICAgIFN0b3JhZ2VPcGVy
YW5kIHN0b3JhZ2UodGhpcywgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAyKSk7CisgICAgICAg
IEFTU0VSVCghIW5vZGUtPmNoaWxkMygpKTsKKyAgICAgICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFn
ZSh0aGlzLCBub2RlLT5jaGlsZDMoKSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoKHRo
aXMpOwogCiAgICAgICAgIEdQUlJlZyBzdG9yYWdlR1BSID0gc3RvcmFnZS5ncHIoKTsKQEAgLTEz
MjIyLDggKzEzMjIyLDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUhhc0luZGV4ZWRQ
cm9wZXJ0eShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBBcnJh
eTo6RG91YmxlOiB7Ci0gICAgICAgIEFTU0VSVCghIW1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwg
MikpOwotICAgICAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIG1fZ3JhcGgudmFyQXJn
Q2hpbGQobm9kZSwgMikpOworICAgICAgICBBU1NFUlQoISFub2RlLT5jaGlsZDMoKSk7CisgICAg
ICAgIFN0b3JhZ2VPcGVyYW5kIHN0b3JhZ2UodGhpcywgbm9kZS0+Y2hpbGQzKCkpOwogICAgICAg
ICBGUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKICAgICAgICAgRlBSUmVnIHNjcmF0Y2hGUFIg
PSBzY3JhdGNoLmZwcigpOwogICAgICAgICBHUFJSZWcgc3RvcmFnZUdQUiA9IHN0b3JhZ2UuZ3By
KCk7CkBAIC0xMzI0MCw4ICsxMzI0MCw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVI
YXNJbmRleGVkUHJvcGVydHkoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAg
IGNhc2UgQXJyYXk6OkFycmF5U3RvcmFnZTogewotICAgICAgICBBU1NFUlQoISFtX2dyYXBoLnZh
ckFyZ0NoaWxkKG5vZGUsIDIpKTsKLSAgICAgICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlz
LCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDIpKTsKKyAgICAgICAgQVNTRVJUKCEhbm9kZS0+
Y2hpbGQzKCkpOworICAgICAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIG5vZGUtPmNo
aWxkMygpKTsKICAgICAgICAgR1BSVGVtcG9yYXJ5IHNjcmF0Y2godGhpcyk7CiAKICAgICAgICAg
R1BSUmVnIHN0b3JhZ2VHUFIgPSBzdG9yYWdlLmdwcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggZGM1YTNiNGQ2
MDE0ZGRjOGQzYzk4Zjc5OTI4N2JlODgyMzQxZjlmYi4uYmE0NDIyMWI3NjEyNWM5MzQ1M2Y0ZWZk
MjZlZTZmZTUxODNlMWExNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC00MTUzLDYgKzQxNTMsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBQdXRTdGFjazoKICAg
ICBjYXNlIEtpbGxTdGFjazoKICAgICBjYXNlIEdldFN0YWNrOgorICAgIGNhc2UgQ2hlY2tlZEdl
dFN0YWNrOgogICAgIGNhc2UgR2V0TXlBcmd1bWVudEJ5VmFsOgogICAgIGNhc2UgR2V0TXlBcmd1
bWVudEJ5VmFsT3V0T2ZCb3VuZHM6CiAgICAgY2FzZSBHZXRWZWN0b3JMZW5ndGg6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCA3
OTRhZDAyYzU2YTVkNTNhMTJkMTgxMGQ3M2RjZWQ3ZjkxNmZhMDk2Li4wOGM5MDhmMmI1ZjRhZDBi
ZDI4MzVmMDBjNGRmZjYxM2FiNmU0N2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTUxNDYsNiArNTE0Niw3IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIE1hdGVyaWFsaXpl
Q3JlYXRlQWN0aXZhdGlvbjoKICAgICBjYXNlIFB1dFN0YWNrOgogICAgIGNhc2UgS2lsbFN0YWNr
OgorICAgIGNhc2UgQ2hlY2tlZEdldFN0YWNrOgogICAgIGNhc2UgR2V0U3RhY2s6CiAgICAgY2Fz
ZSBQaGFudG9tQ3JlYXRlUmVzdDoKICAgICBjYXNlIFBoYW50b21TcHJlYWQ6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0YWNrTGF5b3V0UGhhc2UuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdGFja0xheW91dFBoYXNlLmNwcAppbmRleCBlODY0
ZDQ1MGUxZjFlODI1MzYzNmMxNzU3M2NmMjg3Y2U5YTkwYTU0Li5mZDVjY2MwNGQwMjRlNjUzMWM4
YTk0Y2Q0YTEyZWNlZjRjNmRjMjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1N0YWNrTGF5b3V0UGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAKQEAgLTk3LDYgKzk3LDEwIEBAIHB1YmxpYzoKICAg
ICAgICAgICAgICAgICAgICAgdXNlZExvY2Fscy5zZXQoc3RhY2stPmxvY2FsLnRvTG9jYWwoKSk7
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgICAgIGNhc2UgQ2hlY2tlZEdldFN0YWNrOgorICAgICAgICAgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1ZhbGlkYXRlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFsaWRhdGUuY3Bw
CmluZGV4IGUzMTQxZTY5ZjdmNWFiODIxYjE0Nzk0NTljNjU1MjY0ZjQ3Yjk1YmQuLjQ5YmEzNTcx
NTk1ZmY2YzI3OGNlMWYzYmIzZDVlYTRjOWFiY2FkYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVmFsaWRhdGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHVmFsaWRhdGUuY3BwCkBAIC02MTcsNiArNjE3LDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICAgICBjYXNlIFB1dFN0YWNrOgogICAgICAgICAgICAgICAgIGNhc2UgS2lsbFN0YWNr
OgogICAgICAgICAgICAgICAgIGNhc2UgR2V0U3RhY2s6CisgICAgICAgICAgICAgICAgY2FzZSBD
aGVja2VkR2V0U3RhY2s6CiAgICAgICAgICAgICAgICAgY2FzZSBFbnRyeVN3aXRjaDoKICAgICAg
ICAgICAgICAgICBjYXNlIEluaXRpYWxpemVFbnRyeXBvaW50QXJndW1lbnRzOgogICAgICAgICAg
ICAgICAgICAgICBWQUxJREFURSgobm9kZSksICEidW5leHBlY3RlZCBub2RlIHR5cGUgaW4gQ1BT
Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGll
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5k
ZXggZTNhYjhlMmFiNzgxYmVhZDkxZDMzOGY5OGU3NjlhNjZlYmQ2YjM3My4uNmY2Y2VkMWYxMDE1
Mjk2OTI2MmVhMmVjYjhmYWZjODM5ZmUzNzZkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtMzk4LDYgKzM5OCwxMCBAQCBpbmxpbmUgQ2Fw
YWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIFByb2ZpbGVDb250
cm9sRmxvdzoKICAgICBjYXNlIExhc3ROb2RlVHlwZToKICAgICAgICAgcmV0dXJuIENhbm5vdENv
bXBpbGU7CisKKyAgICBjYXNlIENoZWNrZWRHZXRTdGFjazoKKyAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CiAgICAgfQog
ICAgIHJldHVybiBDYW5Db21waWxlQW5kT1NSRW50ZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggMDliMzQyNzNjYmI3Y2FiNDRjZDg2
M2U5OWIyODU5MGU4N2M5NGIxMi4uNjQwNDU3YWQwMTRlMDZjNDVhOGFlOGRhOWY3NmFjNGUyNzM0
ODEyNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
QjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cApAQCAtNzMyLDYgKzczMiw5IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQ2xlYXJDYXRjaExv
Y2FsczoKICAgICAgICAgICAgIGNvbXBpbGVDbGVhckNhdGNoTG9jYWxzKCk7CiAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBDaGVja2VkR2V0U3RhY2s6CisgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgR2V0U3RhY2s6CiAgICAgICAgICAgICBjb21waWxlR2V0U3RhY2soKTsKICAgICAgICAgICAg
IGJyZWFrOwpAQCAtNDEyMSwxMCArNDEyNCw2IEBAIHByaXZhdGU6CiAgICAgICAgIHNwZWN1bGF0
ZSgKICAgICAgICAgICAgIE91dE9mQm91bmRzLCBub1ZhbHVlKCksIDAsCiAgICAgICAgICAgICBt
X291dC5hYm92ZU9yRXF1YWwobG93SW50MzIobV9ub2RlLT5jaGlsZDEoKSksIGxvd0ludDMyKG1f
bm9kZS0+Y2hpbGQyKCkpKSk7Ci0KLSAgICAgICAgLy8gRXZlbiB0aG91Z2ggd2UgY2xhaW0gdG8g
aGF2ZSBKU1ZhbHVlIHJlc3VsdCwgbm8gdXNlciBvZiB1cyBzaG91bGQKLSAgICAgICAgLy8gZGVw
ZW5kIG9uIG91ciB2YWx1ZS4gVXNlcnMgb2YgdGhpcyBub2RlIGp1c3QgbmVlZCB0byBtYWludGFp
biB0aGF0Ci0gICAgICAgIC8vIHdlIGRvbWluYXRlIHRoZW0uCiAgICAgfQogICAgIAogICAgIHZv
aWQgY29tcGlsZUdldEJ5VmFsKCkKQEAgLTEwNzYwLDEzICsxMDc1OSwxMiBAQCBwcml2YXRlOgog
ICAgIAogICAgIHZvaWQgY29tcGlsZUhhc0luZGV4ZWRQcm9wZXJ0eSgpCiAgICAgewotICAgICAg
ICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDApKTsK
LSAgICAgICAgTFZhbHVlIGluZGV4ID0gbG93SW50MzIobV9ncmFwaC52YXJBcmdDaGlsZChtX25v
ZGUsIDEpKTsKLQogICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpKSB7
CiAgICAgICAgIGNhc2UgQXJyYXk6OkludDMyOgogICAgICAgICBjYXNlIEFycmF5OjpDb250aWd1
b3VzOiB7Ci0gICAgICAgICAgICBMVmFsdWUgc3RvcmFnZSA9IGxvd1N0b3JhZ2UobV9ncmFwaC52
YXJBcmdDaGlsZChtX25vZGUsIDIpKTsKKyAgICAgICAgICAgIExWYWx1ZSBiYXNlID0gbG93Q2Vs
bChtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIExWYWx1ZSBpbmRleCA9IGxvd0ludDMy
KG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgTFZhbHVlIHN0b3JhZ2UgPSBsb3dTdG9y
YWdlKG1fbm9kZS0+Y2hpbGQzKCkpOwogICAgICAgICAgICAgTFZhbHVlIGludGVybmFsTWV0aG9k
VHlwZSA9IG1fb3V0LmNvbnN0SW50MzIoc3RhdGljX2Nhc3Q8aW50MzJfdD4obV9ub2RlLT5pbnRl
cm5hbE1ldGhvZFR5cGUoKSkpOwogCiAgICAgICAgICAgICBJbmRleGVkQWJzdHJhY3RIZWFwJiBo
ZWFwID0gbV9ub2RlLT5hcnJheU1vZGUoKS50eXBlKCkgPT0gQXJyYXk6OkludDMyID8KQEAgLTEw
Nzg3LDcgKzEwNzg1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBsYXN0TmV4dCA9IG1f
b3V0Lmluc2VydE5ld0Jsb2Nrc0JlZm9yZShzbG93Q2FzZSk7CiAKICAgICAgICAgICAgIExWYWx1
ZSBjaGVja0hvbGVSZXN1bHRWYWx1ZSA9Ci0gICAgICAgICAgICAgICAgbV9vdXQubm90WmVybzY0
KG1fb3V0LmxvYWQ2NChiYXNlSW5kZXgoaGVhcCwgc3RvcmFnZSwgaW5kZXgsIG1fZ3JhcGgudmFy
QXJnQ2hpbGQobV9ub2RlLCAxKSkpKTsKKyAgICAgICAgICAgICAgICBtX291dC5ub3RaZXJvNjQo
bV9vdXQubG9hZDY0KGJhc2VJbmRleChoZWFwLCBzdG9yYWdlLCBpbmRleCwgbV9ub2RlLT5jaGls
ZDIoKSkpKTsKICAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGNoZWNrSG9sZVJlc3VsdCA9IG1f
b3V0LmFuY2hvcihjaGVja0hvbGVSZXN1bHRWYWx1ZSk7CiAgICAgICAgICAgICBtX291dC5icmFu
Y2goY2hlY2tIb2xlUmVzdWx0VmFsdWUsIHVzdWFsbHkoY29udGludWF0aW9uKSwgcmFyZWx5KHNs
b3dDYXNlKSk7CiAKQEAgLTEwODAxLDcgKzEwNzk5LDkgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFycmF5OjpEb3VibGU6IHsKLSAgICAg
ICAgICAgIExWYWx1ZSBzdG9yYWdlID0gbG93U3RvcmFnZShtX2dyYXBoLnZhckFyZ0NoaWxkKG1f
bm9kZSwgMikpOworICAgICAgICAgICAgTFZhbHVlIGJhc2UgPSBsb3dDZWxsKG1fbm9kZS0+Y2hp
bGQxKCkpOworICAgICAgICAgICAgTFZhbHVlIGluZGV4ID0gbG93SW50MzIobV9ub2RlLT5jaGls
ZDIoKSk7CisgICAgICAgICAgICBMVmFsdWUgc3RvcmFnZSA9IGxvd1N0b3JhZ2UobV9ub2RlLT5j
aGlsZDMoKSk7CiAgICAgICAgICAgICBMVmFsdWUgaW50ZXJuYWxNZXRob2RUeXBlID0gbV9vdXQu
Y29uc3RJbnQzMihzdGF0aWNfY2FzdDxpbnQzMl90PihtX25vZGUtPmludGVybmFsTWV0aG9kVHlw
ZSgpKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIEluZGV4ZWRBYnN0cmFjdEhlYXAmIGhl
YXAgPSBtX2hlYXBzLmluZGV4ZWREb3VibGVQcm9wZXJ0aWVzOwpAQCAtMTA4MjAsNyArMTA4MjAs
NyBAQCBwcml2YXRlOgogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgbGFzdE5l
eHQgPSBtX291dC5pbnNlcnROZXdCbG9ja3NCZWZvcmUoc2xvd0Nhc2UpOwogCi0gICAgICAgICAg
ICBMVmFsdWUgZG91YmxlVmFsdWUgPSBtX291dC5sb2FkRG91YmxlKGJhc2VJbmRleChoZWFwLCBz
dG9yYWdlLCBpbmRleCwgbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDEpKSk7CisgICAgICAg
ICAgICBMVmFsdWUgZG91YmxlVmFsdWUgPSBtX291dC5sb2FkRG91YmxlKGJhc2VJbmRleChoZWFw
LCBzdG9yYWdlLCBpbmRleCwgbV9ub2RlLT5jaGlsZDIoKSkpOwogICAgICAgICAgICAgTFZhbHVl
IGNoZWNrSG9sZVJlc3VsdFZhbHVlID0gbV9vdXQuZG91YmxlRXF1YWwoZG91YmxlVmFsdWUsIGRv
dWJsZVZhbHVlKTsKICAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGNoZWNrSG9sZVJlc3VsdCA9
IG1fb3V0LmFuY2hvcihjaGVja0hvbGVSZXN1bHRWYWx1ZSk7CiAgICAgICAgICAgICBtX291dC5i
cmFuY2goY2hlY2tIb2xlUmVzdWx0VmFsdWUsIHVzdWFsbHkoY29udGludWF0aW9uKSwgcmFyZWx5
KHNsb3dDYXNlKSk7CkBAIC0xMDgzNiw3ICsxMDgzNiw5IEBAIHByaXZhdGU6CiAgICAgICAgIH0K
IAogICAgICAgICBjYXNlIEFycmF5OjpBcnJheVN0b3JhZ2U6IHsKLSAgICAgICAgICAgIExWYWx1
ZSBzdG9yYWdlID0gbG93U3RvcmFnZShtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMikpOwor
ICAgICAgICAgICAgTFZhbHVlIGJhc2UgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAg
ICAgICAgICAgTFZhbHVlIGluZGV4ID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDIoKSk7CisgICAg
ICAgICAgICBMVmFsdWUgc3RvcmFnZSA9IGxvd1N0b3JhZ2UobV9ub2RlLT5jaGlsZDMoKSk7CiAg
ICAgICAgICAgICBMVmFsdWUgaW50ZXJuYWxNZXRob2RUeXBlID0gbV9vdXQuY29uc3RJbnQzMihz
dGF0aWNfY2FzdDxpbnQzMl90PihtX25vZGUtPmludGVybmFsTWV0aG9kVHlwZSgpKSk7CiAKICAg
ICAgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKQEAgLTEw
ODU0LDcgKzEwODU2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBsYXN0TmV4dCA9IG1f
b3V0Lmluc2VydE5ld0Jsb2Nrc0JlZm9yZShzbG93Q2FzZSk7CiAKICAgICAgICAgICAgIExWYWx1
ZSBjaGVja0hvbGVSZXN1bHRWYWx1ZSA9Ci0gICAgICAgICAgICAgICAgbV9vdXQubm90WmVybzY0
KG1fb3V0LmxvYWQ2NChiYXNlSW5kZXgobV9oZWFwcy5BcnJheVN0b3JhZ2VfdmVjdG9yLCBzdG9y
YWdlLCBpbmRleCwgbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDEpKSkpOworICAgICAgICAg
ICAgICAgIG1fb3V0Lm5vdFplcm82NChtX291dC5sb2FkNjQoYmFzZUluZGV4KG1faGVhcHMuQXJy
YXlTdG9yYWdlX3ZlY3Rvciwgc3RvcmFnZSwgaW5kZXgsIG1fbm9kZS0+Y2hpbGQyKCkpKSk7CiAg
ICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBjaGVja0hvbGVSZXN1bHQgPSBtX291dC5hbmNob3Io
Y2hlY2tIb2xlUmVzdWx0VmFsdWUpOwogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGNoZWNrSG9s
ZVJlc3VsdFZhbHVlLCB1c3VhbGx5KGNvbnRpbnVhdGlvbiksIHJhcmVseShzbG93Q2FzZSkpOwog
CkBAIC0xMDg2OSw2ICsxMDg3MSw4IEBAIHByaXZhdGU6CiAgICAgICAgIH0KIAogICAgICAgICBk
ZWZhdWx0OiB7CisgICAgICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobV9ub2RlLT5jaGls
ZDEoKSk7CisgICAgICAgICAgICBMVmFsdWUgaW5kZXggPSBsb3dJbnQzMihtX25vZGUtPmNoaWxk
MigpKTsKICAgICAgICAgICAgIExWYWx1ZSBpbnRlcm5hbE1ldGhvZFR5cGUgPSBtX291dC5jb25z
dEludDMyKHN0YXRpY19jYXN0PGludDMyX3Q+KG1fbm9kZS0+aW50ZXJuYWxNZXRob2RUeXBlKCkp
KTsKICAgICAgICAgICAgIHNldEJvb2xlYW4obV9vdXQubm90WmVybzY0KHZtQ2FsbChJbnQ2NCwg
bV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUJ5SW50KSwgbV9jYWxs
RnJhbWUsIGJhc2UsIGluZGV4LCBpbnRlcm5hbE1ldGhvZFR5cGUpKSk7CiAgICAgICAgICAgICBi
cmVhazsK
</data>
<flag name="review"
          id="392931"
          type_id="1"
          status="-"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>