<?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>117833</bug_id>
          
          <creation_ts>2013-06-20 06:50:43 -0700</creation_ts>
          <short_desc>Web Inspector: Integrate new regionOversetChange event into inspector</short_desc>
          <delta_ts>2022-03-01 02:59:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>117508</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Radu Stavila">stavila</reporter>
          <assigned_to name="Radu Stavila">stavila</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>mihnea</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>WebkitBugTracker</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>902135</commentid>
    <comment_count>0</comment_count>
    <who name="Radu Stavila">stavila</who>
    <bug_when>2013-06-20 06:50:43 -0700</bug_when>
    <thetext>Integrate new regionOversetChange event into inspector</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902137</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-06-20 06:51:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/14215914&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902188</commentid>
    <comment_count>2</comment_count>
      <attachid>205100</attachid>
    <who name="Radu Stavila">stavila</who>
    <bug_when>2013-06-20 09:54:31 -0700</bug_when>
    <thetext>Created attachment 205100
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902376</commentid>
    <comment_count>3</comment_count>
      <attachid>205100</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-06-20 18:16:26 -0700</bug_when>
    <thetext>Comment on attachment 205100
Patch

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

Change looks good to me, but could you explain the extra complexity in ChangeRegionOversetTask? That matches existing behavior, but seems unnecessary.

&gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:310
&gt; +: m_cssAgent(cssAgent)
&gt; +, m_timer(this, &amp;ChangeRegionOversetTask::onTimer)

Style: These lines should be indented.

&gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:352
&gt; +    Vector&lt;std::pair&lt;WebKitNamedFlow*, int&gt; &gt; namedFlows;
&gt; +    
&gt; +    for (HashMap&lt;WebKitNamedFlow*, int&gt;::iterator it = m_namedFlows.begin(), end = m_namedFlows.end(); it != end; ++it)
&gt; +        namedFlows.append(std::make_pair(it-&gt;key, it-&gt;value));
&gt; +    
&gt; +    for (unsigned i = 0, size = namedFlows.size(); i &lt; size; ++i) {
&gt; +        WebKitNamedFlow* namedFlow = namedFlows.at(i).first;
&gt; +        int documentNodeId = namedFlows.at(i).second;
&gt; +        
&gt; +        if (m_namedFlows.contains(namedFlow)) {
&gt; +            m_cssAgent-&gt;regionOversetChanged(namedFlow, documentNodeId);
&gt; +            m_namedFlows.remove(namedFlow);
&gt; +        }
&gt; +    }
&gt; +    
&gt; +    if (!m_namedFlows.isEmpty() &amp;&amp; !m_timer.isActive())
&gt; +        m_timer.startOneShot(0);

Why the extra copy to a vector first? Under what circumstances would m_namedFlow be non-empty at the end?

Could this be simplified to just the following, or is there something I&apos;m missing:

    for (HashMap&lt;WebKitNamedFlow*, int&gt;::iterator it = m_namedFlows.begin(), end = m_namedFlows.end(); it != end; ++it)
        m_cssAgent-&gt;regionOversetChanged(it-&gt;key, it-&gt;value);
    m_namedFlows.clear();

I see you are copying the style of UpdateRegionLayoutTest, but I&apos;d have the same question for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902539</commentid>
    <comment_count>4</comment_count>
      <attachid>205181</attachid>
    <who name="Radu Stavila">stavila</who>
    <bug_when>2013-06-21 07:00:26 -0700</bug_when>
    <thetext>Created attachment 205181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902541</commentid>
    <comment_count>5</comment_count>
      <attachid>205182</attachid>
    <who name="Radu Stavila">stavila</who>
    <bug_when>2013-06-21 07:08:11 -0700</bug_when>
    <thetext>Created attachment 205182
Patch (implemented changes requested by JoePeck)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902544</commentid>
    <comment_count>6</comment_count>
      <attachid>205182</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-21 07:31:52 -0700</bug_when>
    <thetext>Comment on attachment 205182
Patch (implemented changes requested by JoePeck)

Clearing flags on attachment: 205182

Committed r151835: &lt;http://trac.webkit.org/changeset/151835&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205100</attachid>
            <date>2013-06-20 09:54:31 -0700</date>
            <delta_ts>2022-03-01 02:59:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>117833.patch</filename>
            <type>text/plain</type>
            <size>21557</size>
            <attacher name="Radu Stavila">stavila</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MDgyNWI1Li5lNzI4ODU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTMtMDYt
MjAgIFJhZHUgU3RhdmlsYSAgPHN0YXZpbGFAYWRvYmUuY29tPgogCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IEludGVncmF0ZSBuZXcgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudCBpbnRvIGluc3Bl
Y3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3
ODMzCisKKyAgICAgICAgVGVzdHMgZm9yIHRoZSBuZXcgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVu
dC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGlu
c3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFu
ZHMuaHRtbDoKKworMjAxMy0wNi0yMCAgUmFkdSBTdGF2aWxhICA8c3RhdmlsYUBhZG9iZS5jb20+
CisKICAgICAgICAgW0NTUyBSZWdpb25zXSBBZGQgbmV3IHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZl
bnQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzUw
OAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNz
cy1yZWdpb25zLWNvbW1hbmRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
dHlsZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMtZXhwZWN0ZWQudHh0CmluZGV4IDlm
ZTljZjMuLmRkMTk5ZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
cHJvdG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMtZXhwZWN0
ZWQudHh0CkBAIC00LDcgKzQsNyBAQCBnZXROYW1lZEZsb3dDb2xsZWN0aW9uIEJ1ZyA5MTYwNwog
Z2V0Rmxvd0J5TmFtZSBCdWcgOTE4NTUKIG5hbWVkRmxvd0NyZWF0ZWQgQnVnIDkyNzM5CiBuYW1l
ZEZsb3dSZW1vdmVkIEJ1ZyA5MjczOQotcmVnaW9uTGF5b3V0VXBkYXRlZCBCdWcgOTM0NDMKK3Jl
Z2lvbk92ZXJzZXRDaGFuZ2VkIEJ1ZyAxMTc4MzMKIFRoaXMgdGV4dCBpcyBmcm9tIENTUyBOYW1l
ZCBGbG93ICJmbG93MyIuCiAKIApAQCAtMTgsNyArMTgsNyBAQCBDb250ZW50IEVsZW1lbnRzOiAx
CiBSZWdpb25zOiAyCiAqIE5hbWVkIEZsb3cgImZsb3czIgogQ29udGVudCBFbGVtZW50czogMQot
UmVnaW9uczogMQorUmVnaW9uczogMAogCiBSdW5uaW5nOiB0ZXN0R2V0TmFtZWRGbG93Q29sbGVj
dGlvbldpdGhJbnZhbGlkRG9jdW1lbnQKID09PSBDU1MgTmFtZWQgRmxvd3MgaW4gI2Zha2UtZG9j
dW1lbnQgPT09CkBAIC0zNyw4ICszNyw4IEBAIFRoZXJlIGlzIG5vIE5hbWVkIEZsb3cgImZsb3c0
IiBpbiB0aGUgbWFpbiBkb2N1bWVudAogUnVubmluZzogdGVzdE5hbWVkRmxvd0NyZWF0ZWQKIE5h
bWVkRmxvd0NyZWF0ZWQ6ICJ0bXBOYW1lZEZsb3ciCiAKLVJ1bm5pbmc6IHRlc3RSZWdpb25MYXlv
dXRVcGRhdGVkCi1SZWdpb25MYXlvdXRVcGRhdGVkOiAiZmxvdzMiCitSdW5uaW5nOiB0ZXN0UmVn
aW9uT3ZlcnNldENoYW5nZWQKK1JlZ2lvbk92ZXJzZXRDaGFuZ2VkOiAiZmxvdzMiCiAKIFJ1bm5p
bmc6IHRlc3ROYW1lZEZsb3dSZW1vdmVkCiBOYW1lZEZsb3dSZW1vdmVkOiAidG1wTmFtZWRGbG93
IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1jc3Mt
cmVnaW9ucy1jb21tYW5kcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90
b2NvbC1jc3MtcmVnaW9ucy1jb21tYW5kcy5odG1sCmluZGV4IDZmYzNmNTcuLmFlM2U3NjggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJlZ2lv
bnMtY29tbWFuZHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3Rv
Y29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLmh0bWwKQEAgLTE3NiwxOSArMTc2LDE5IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgICAgICAgICAgfQogICAgICAgICB9LAogCi0gICAgICAgIGZ1bmN0aW9u
IHRlc3RSZWdpb25MYXlvdXRVcGRhdGVkKG5leHQpCisgICAgICAgIGZ1bmN0aW9uIHRlc3RSZWdp
b25PdmVyc2V0Q2hhbmdlZChuZXh0KQogICAgICAgICB7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0
b3IuY3NzTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5F
dmVudHMuUmVnaW9uTGF5b3V0VXBkYXRlZCwgY2FsbGJhY2ssIHRoaXMpOwotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgid2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKFwicmVnaW9uM1wiKS5zdHlsZVtcIndpZHRoXCJdID0gXCIyMDBweFwiIik7CisgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
Q1NTU3R5bGVNb2RlbC5FdmVudHMuUmVnaW9uT3ZlcnNldENoYW5nZWQsIGNhbGxiYWNrLCB0aGlz
KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoIndpbmRvdy5kb2N1
bWVudC5nZXRFbGVtZW50QnlJZChcInJlZ2lvbjNcIikuc3R5bGUud2Via2l0Rmxvd0Zyb209XCJm
bG93M1wiIik7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGV2ZW50KQogICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLm5hbWUgIT09ICJmbG93MyIp
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5jc3NNb2RlbC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1v
ZGVsLkV2ZW50cy5SZWdpb25MYXlvdXRVcGRhdGVkLCBjYWxsYmFjaywgdGhpcyk7CisgICAgICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZlbnRzLlJlZ2lvbk92ZXJzZXRDaGFuZ2VkLCBjYWxsYmFj
aywgdGhpcyk7CiAKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVn
aW9uTGF5b3V0VXBkYXRlZDogXCJmbG93M1wiIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIlJlZ2lvbk92ZXJzZXRDaGFuZ2VkOiBcImZsb3czXCIiKTsKICAgICAg
ICAgICAgICAgICBuZXh0KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCkBAIC0yMjksNyAr
MjI5LDcgQEAgVGVzdHMgdGhlIGZvbGxvd2luZyBjb21tYW5kcyBhbmQgZXZlbnRzOgogICAgIDxs
aT5nZXRGbG93QnlOYW1lIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MTg1NSI+QnVnIDkxODU1PC9hPjwvbGk+CiAgICAgPGxpPm5hbWVkRmxvd0NyZWF0
ZWQgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNzM5
Ij5CdWcgOTI3Mzk8L2E+PC9saT4KICAgICA8bGk+bmFtZWRGbG93UmVtb3ZlZCA8YSBocmVmPSJo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI3MzkiPkJ1ZyA5MjczOTwv
YT48L2xpPgotICAgIDxsaT5yZWdpb25MYXlvdXRVcGRhdGVkIDxhIGhyZWY9Imh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzQ0MyI+QnVnIDkzNDQzPC9hPjwvbGk+Cisg
ICAgPGxpPnJlZ2lvbk92ZXJzZXRDaGFuZ2VkIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMTc4MzMiPkJ1ZyAxMTc4MzM8L2E+PC9saT4KIDwvdWw+CiA8
L3A+CiAKQEAgLTI0NSw3ICsyNDUsNyBAQCBUZXN0cyB0aGUgZm9sbG93aW5nIGNvbW1hbmRzIGFu
ZCBldmVudHM6CiA8YXJ0aWNsZSBzdHlsZT0iLXdlYmtpdC1mbG93LWludG86IGZsb3czIj4KICAg
ICBUaGlzIHRleHQgaXMgZnJvbSBDU1MgTmFtZWQgRmxvdyAiZmxvdzMiLgogPC9hcnRpY2xlPgot
PGRpdiBpZD0icmVnaW9uMyIgc3R5bGU9Ii13ZWJraXQtZmxvdy1mcm9tOiBmbG93MzsgaGVpZ2h0
OiAyMHB4OyB3aWR0aDogNXB4Ij48L2Rpdj4KKzxkaXYgaWQ9InJlZ2lvbjMiIHN0eWxlPSItd2Vi
a2l0LWZsb3ctZnJvbTogbm9uZTsgaGVpZ2h0OiAyMHB4OyB3aWR0aDogNXB4Ij48L2Rpdj4KIAog
PGRpdiBpZD0iZmFrZS1kb2N1bWVudCI+PC9kaXY+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMzczOTMxLi4x
OGYwZmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTMtMDYtMjAgIFJhZHUgU3Rh
dmlsYSAgPHN0YXZpbGFAYWRvYmUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEludGVn
cmF0ZSBuZXcgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudCBpbnRvIGluc3BlY3RvcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3ODMzCisKKyAgICAg
ICAgQWRkZWQgdGhlIG5ldyByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50IHRvIHRoZSBXZWJJbnNw
ZWN0b3IuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGVzdHM6ICBpbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLmh0
bWw6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNoYW5nZVJl
Z2lvbk92ZXJzZXRUYXNrOjpDaGFuZ2VSZWdpb25PdmVyc2V0VGFzayk6CisgICAgICAgIChXZWJD
b3JlOjpDaGFuZ2VSZWdpb25PdmVyc2V0VGFzazo6c2NoZWR1bGVGb3IpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s6OnVuc2NoZWR1bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrOjpvblRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckNTU0FnZW50OjpyZXNldE5vblBlcnNpc3RlbnREYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNTU0FnZW50Ojp3aWxsUmVtb3ZlTmFtZWRGbG93KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNTU0FnZW50OjpkaWRDaGFuZ2VSZWdpb25PdmVyc2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU0FnZW50OjpyZWdpb25PdmVyc2V0Q2hhbmdlZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVJlZ2lvbk92ZXJzZXRJbXBsKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVJlZ2lvbk92ZXJzZXQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ1NTTmFtZWRGbG93Q29sbGVjdGlvbnNWaWV3
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU05hbWVkRmxvd0NvbGxlY3Rpb25zVmlldy5w
cm90b3R5cGUuX3JlZ2lvbk92ZXJzZXRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5D
U1NOYW1lZEZsb3dDb2xsZWN0aW9uc1ZpZXcucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5DU1NOYW1lZEZsb3dDb2xsZWN0aW9uc1ZpZXcucHJvdG90eXBlLndpbGxI
aWRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuX3JlZ2lvbk92ZXJz
ZXRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NEaXNwYXRjaGVyLnByb3RvdHlw
ZS5yZWdpb25MYXlvdXRVcGRhdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NEaXNwYXRj
aGVyLnByb3RvdHlwZS5yZWdpb25PdmVyc2V0Q2hhbmdlZCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1l
ZEZsb3dUaHJlYWQ6OmRpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KToKKwogMjAxMy0w
Ni0xOSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDog
TGlzdCBJdGVtcyBzaG91bGQgc3VwcG9ydCBhIGRlZmF1bHQgYWN0aW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggYzA4MDU1ZS4uODkwNDQ0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMjU0Niw2ICsyNTQ2LDEzIEBACiAg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmFtZWRGbG93IiwgIiRyZWYiOiAiTmFtZWRG
bG93IiwgImRlc2NyaXB0aW9uIjogIlRoZSBOYW1lZCBGbG93IHdob3NlIGxheW91dCBtYXkgaGF2
ZSBjaGFuZ2VkLiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIkZpcmVzIHdoZW4gYSBOYW1lZCBGbG93J3MgbGF5b3V0IG1heSBoYXZlIGNoYW5n
ZWQuIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFt
ZSI6ICJyZWdpb25PdmVyc2V0Q2hhbmdlZCIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmFtZWRGbG93IiwgIiRyZWYiOiAi
TmFtZWRGbG93IiwgImRlc2NyaXB0aW9uIjogIlRoZSBOYW1lZCBGbG93IGNvbnRhaW5pbmcgdGhl
IHJlZ2lvbnMgd2hvc2UgcmVnaW9uT3ZlcnNldCB2YWx1ZXMgY2hhbmdlZC4iIH0KKyAgICAgICAg
ICAgICAgICBdLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlcyBpZiBhbnkg
b2YgdGhlIHJlZ2lvbk92ZXJzZXQgdmFsdWVzIGNoYW5nZWQgaW4gYSBOYW1lZCBGbG93J3MgcmVn
aW9uIGNoYWluLiIKICAgICAgICAgICAgIH0KICAgICAgICAgXQogICAgIH0sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAppbmRleCA0Yjc3NDcxLi5l
NmYzMGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NT
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2Vu
dC5jcHAKQEAgLTI5MCw2ICsyOTAsNjcgQEAgdm9pZCBVcGRhdGVSZWdpb25MYXlvdXRUYXNrOjpv
blRpbWVyKFRpbWVyPFVwZGF0ZVJlZ2lvbkxheW91dFRhc2s+KikKICAgICBpZiAoIW1fbmFtZWRG
bG93cy5pc0VtcHR5KCkgJiYgIW1fdGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV90aW1lci5z
dGFydE9uZVNob3QoMCk7CiB9CisgICAgCitjbGFzcyBDaGFuZ2VSZWdpb25PdmVyc2V0VGFzayB7
CitwdWJsaWM6CisgICAgQ2hhbmdlUmVnaW9uT3ZlcnNldFRhc2soSW5zcGVjdG9yQ1NTQWdlbnQq
KTsKKyAgICB2b2lkIHNjaGVkdWxlRm9yKFdlYktpdE5hbWVkRmxvdyosIGludCBkb2N1bWVudE5v
ZGVJZCk7CisgICAgdm9pZCB1bnNjaGVkdWxlKFdlYktpdE5hbWVkRmxvdyopOworICAgIHZvaWQg
cmVzZXQoKTsKKyAgICB2b2lkIG9uVGltZXIoVGltZXI8Q2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s+
Kik7CisgICAgCitwcml2YXRlOgorICAgIEluc3BlY3RvckNTU0FnZW50KiBtX2Nzc0FnZW50Owor
ICAgIFRpbWVyPENoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrPiBtX3RpbWVyOworICAgIEhhc2hNYXA8
V2ViS2l0TmFtZWRGbG93KiwgaW50PiBtX25hbWVkRmxvd3M7Cit9OworCitDaGFuZ2VSZWdpb25P
dmVyc2V0VGFzazo6Q2hhbmdlUmVnaW9uT3ZlcnNldFRhc2soSW5zcGVjdG9yQ1NTQWdlbnQqIGNz
c0FnZW50KQorOiBtX2Nzc0FnZW50KGNzc0FnZW50KQorLCBtX3RpbWVyKHRoaXMsICZDaGFuZ2VS
ZWdpb25PdmVyc2V0VGFzazo6b25UaW1lcikKK3sKK30KKwordm9pZCBDaGFuZ2VSZWdpb25PdmVy
c2V0VGFzazo6c2NoZWR1bGVGb3IoV2ViS2l0TmFtZWRGbG93KiBuYW1lZEZsb3csIGludCBkb2N1
bWVudE5vZGVJZCkKK3sKKyAgICBtX25hbWVkRmxvd3MuYWRkKG5hbWVkRmxvdywgZG9jdW1lbnRO
b2RlSWQpOworICAgIAorICAgIGlmICghbV90aW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX3Rp
bWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwordm9pZCBDaGFuZ2VSZWdpb25PdmVyc2V0VGFzazo6
dW5zY2hlZHVsZShXZWJLaXROYW1lZEZsb3cqIG5hbWVkRmxvdykKK3sKKyAgICBtX25hbWVkRmxv
d3MucmVtb3ZlKG5hbWVkRmxvdyk7Cit9CisKK3ZvaWQgQ2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s6
OnJlc2V0KCkKK3sKKyAgICBtX3RpbWVyLnN0b3AoKTsKKyAgICBtX25hbWVkRmxvd3MuY2xlYXIo
KTsKK30KKwordm9pZCBDaGFuZ2VSZWdpb25PdmVyc2V0VGFzazo6b25UaW1lcihUaW1lcjxDaGFu
Z2VSZWdpb25PdmVyc2V0VGFzaz4qKQoreworICAgIC8vIFRoZSB0aW1lciBpcyBzdG9wcGVkIG9u
IG1fY3NzQWdlbnQgZGVzdHJ1Y3Rpb24sIHNvIHRoaXMgbWV0aG9kIHdpbGwgbmV2ZXIgYmUgY2Fs
bGVkIGFmdGVyIG1fY3NzQWdlbnQgaGFzIGJlZW4gZGVzdHJveWVkLgorICAgIFZlY3RvcjxzdGQ6
OnBhaXI8V2ViS2l0TmFtZWRGbG93KiwgaW50PiA+IG5hbWVkRmxvd3M7CisgICAgCisgICAgZm9y
IChIYXNoTWFwPFdlYktpdE5hbWVkRmxvdyosIGludD46Oml0ZXJhdG9yIGl0ID0gbV9uYW1lZEZs
b3dzLmJlZ2luKCksIGVuZCA9IG1fbmFtZWRGbG93cy5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KQor
ICAgICAgICBuYW1lZEZsb3dzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihpdC0+a2V5LCBpdC0+dmFs
dWUpKTsKKyAgICAKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBzaXplID0gbmFtZWRGbG93cy5z
aXplKCk7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgV2ViS2l0TmFtZWRGbG93KiBuYW1lZEZs
b3cgPSBuYW1lZEZsb3dzLmF0KGkpLmZpcnN0OworICAgICAgICBpbnQgZG9jdW1lbnROb2RlSWQg
PSBuYW1lZEZsb3dzLmF0KGkpLnNlY29uZDsKKyAgICAgICAgCisgICAgICAgIGlmIChtX25hbWVk
Rmxvd3MuY29udGFpbnMobmFtZWRGbG93KSkgeworICAgICAgICAgICAgbV9jc3NBZ2VudC0+cmVn
aW9uT3ZlcnNldENoYW5nZWQobmFtZWRGbG93LCBkb2N1bWVudE5vZGVJZCk7CisgICAgICAgICAg
ICBtX25hbWVkRmxvd3MucmVtb3ZlKG5hbWVkRmxvdyk7CisgICAgICAgIH0KKyAgICB9CisgICAg
CisgICAgaWYgKCFtX25hbWVkRmxvd3MuaXNFbXB0eSgpICYmICFtX3RpbWVyLmlzQWN0aXZlKCkp
CisgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOworfQogCiBjbGFzcyBJbnNwZWN0b3JD
U1NBZ2VudDo6U3R5bGVTaGVldEFjdGlvbiA6IHB1YmxpYyBJbnNwZWN0b3JIaXN0b3J5OjpBY3Rp
b24gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFN0eWxlU2hlZXRBY3Rpb24pOwpAQCAtNjM0
LDYgKzY5NSw4IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OnJlc2V0Tm9uUGVyc2lzdGVudERh
dGEoKQogICAgIG1fbmFtZWRGbG93Q29sbGVjdGlvbnNSZXF1ZXN0ZWQuY2xlYXIoKTsKICAgICBp
ZiAobV91cGRhdGVSZWdpb25MYXlvdXRUYXNrKQogICAgICAgICBtX3VwZGF0ZVJlZ2lvbkxheW91
dFRhc2stPnJlc2V0KCk7CisgICAgaWYgKG1fY2hhbmdlUmVnaW9uT3ZlcnNldFRhc2spCisgICAg
ICAgIG1fY2hhbmdlUmVnaW9uT3ZlcnNldFRhc2stPnJlc2V0KCk7CiAgICAgcmVzZXRQc2V1ZG9T
dGF0ZXMoKTsKIH0KIApAQCAtNjczLDYgKzczNiw5IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6
OndpbGxSZW1vdmVOYW1lZEZsb3coRG9jdW1lbnQqIGRvY3VtZW50LCBXZWJLaXROYW1lZEZsb3cq
CiAKICAgICBpZiAobV91cGRhdGVSZWdpb25MYXlvdXRUYXNrKQogICAgICAgICBtX3VwZGF0ZVJl
Z2lvbkxheW91dFRhc2stPnVuc2NoZWR1bGUobmFtZWRGbG93KTsKKyAgICAKKyAgICBpZiAobV9j
aGFuZ2VSZWdpb25PdmVyc2V0VGFzaykKKyAgICAgICAgbV9jaGFuZ2VSZWdpb25PdmVyc2V0VGFz
ay0+dW5zY2hlZHVsZShuYW1lZEZsb3cpOwogCiAgICAgbV9mcm9udGVuZC0+bmFtZWRGbG93UmVt
b3ZlZChkb2N1bWVudE5vZGVJZCwgbmFtZWRGbG93LT5uYW1lKCkuc3RyaW5nKCkpOwogfQpAQCAt
Njk5LDYgKzc2NSwyOCBAQCB2b2lkIEluc3BlY3RvckNTU0FnZW50OjpyZWdpb25MYXlvdXRVcGRh
dGVkKFdlYktpdE5hbWVkRmxvdyogbmFtZWRGbG93LCBpbnQgZG9jdQogICAgIG1fZnJvbnRlbmQt
PnJlZ2lvbkxheW91dFVwZGF0ZWQoYnVpbGRPYmplY3RGb3JOYW1lZEZsb3coJmVycm9yU3RyaW5n
LCBuYW1lZEZsb3csIGRvY3VtZW50Tm9kZUlkKSk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ1NTQWdl
bnQ6OmRpZENoYW5nZVJlZ2lvbk92ZXJzZXQoRG9jdW1lbnQqIGRvY3VtZW50LCBXZWJLaXROYW1l
ZEZsb3cqIG5hbWVkRmxvdykKK3sKKyAgICBpbnQgZG9jdW1lbnROb2RlSWQgPSBkb2N1bWVudE5v
ZGVXaXRoUmVxdWVzdGVkRmxvd3NJZChkb2N1bWVudCk7CisgICAgaWYgKCFkb2N1bWVudE5vZGVJ
ZCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGlmICghbV9jaGFuZ2VSZWdpb25PdmVyc2V0
VGFzaykKKyAgICAgICAgbV9jaGFuZ2VSZWdpb25PdmVyc2V0VGFzayA9IGFkb3B0UHRyKG5ldyBD
aGFuZ2VSZWdpb25PdmVyc2V0VGFzayh0aGlzKSk7CisgICAgbV9jaGFuZ2VSZWdpb25PdmVyc2V0
VGFzay0+c2NoZWR1bGVGb3IobmFtZWRGbG93LCBkb2N1bWVudE5vZGVJZCk7Cit9CisKK3ZvaWQg
SW5zcGVjdG9yQ1NTQWdlbnQ6OnJlZ2lvbk92ZXJzZXRDaGFuZ2VkKFdlYktpdE5hbWVkRmxvdyog
bmFtZWRGbG93LCBpbnQgZG9jdW1lbnROb2RlSWQpCit7CisgICAgaWYgKG5hbWVkRmxvdy0+Zmxv
d1N0YXRlKCkgPT0gV2ViS2l0TmFtZWRGbG93OjpGbG93U3RhdGVOdWxsKQorICAgICAgICByZXR1
cm47CisgICAgCisgICAgRXJyb3JTdHJpbmcgZXJyb3JTdHJpbmc7CisgICAgUmVmUHRyPFdlYktp
dE5hbWVkRmxvdz4gcHJvdGVjdG9yKG5hbWVkRmxvdyk7CisgICAgCisgICAgbV9mcm9udGVuZC0+
cmVnaW9uT3ZlcnNldENoYW5nZWQoYnVpbGRPYmplY3RGb3JOYW1lZEZsb3coJmVycm9yU3RyaW5n
LCBuYW1lZEZsb3csIGRvY3VtZW50Tm9kZUlkKSk7Cit9CisKIGJvb2wgSW5zcGVjdG9yQ1NTQWdl
bnQ6OmZvcmNlUHNldWRvU3RhdGUoRWxlbWVudCogZWxlbWVudCwgQ1NTU2VsZWN0b3I6OlBzZXVk
b1R5cGUgcHNldWRvVHlwZSkKIHsKICAgICBpZiAobV9ub2RlSWRUb0ZvcmNlZFBzZXVkb1N0YXRl
LmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDU1NBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50
LmgKaW5kZXggMzc4NzNiMi4uYTYzNmQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNTU0FnZW50LmgKQEAgLTU5LDYgKzU5LDcgQEAgY2xhc3MgU2VsZWN0b3JQcm9m
aWxlOwogY2xhc3MgU3R5bGVSZXNvbHZlcjsKIGNsYXNzIFN0eWxlUnVsZTsKIGNsYXNzIFVwZGF0
ZVJlZ2lvbkxheW91dFRhc2s7CitjbGFzcyBDaGFuZ2VSZWdpb25PdmVyc2V0VGFzazsKIAogI2lm
IEVOQUJMRShJTlNQRUNUT1IpCiAKQEAgLTEwNyw2ICsxMDgsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCB3aWxsUmVtb3ZlTmFtZWRGbG93KERvY3VtZW50KiwgV2ViS2l0TmFtZWRGbG93Kik7CiAgICAg
dm9pZCBkaWRVcGRhdGVSZWdpb25MYXlvdXQoRG9jdW1lbnQqLCBXZWJLaXROYW1lZEZsb3cqKTsK
ICAgICB2b2lkIHJlZ2lvbkxheW91dFVwZGF0ZWQoV2ViS2l0TmFtZWRGbG93KiwgaW50IGRvY3Vt
ZW50Tm9kZUlkKTsKKyAgICB2b2lkIGRpZENoYW5nZVJlZ2lvbk92ZXJzZXQoRG9jdW1lbnQqLCBX
ZWJLaXROYW1lZEZsb3cqKTsKKyAgICB2b2lkIHJlZ2lvbk92ZXJzZXRDaGFuZ2VkKFdlYktpdE5h
bWVkRmxvdyosIGludCBkb2N1bWVudE5vZGVJZCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Q29t
cHV0ZWRTdHlsZUZvck5vZGUoRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkLCBSZWZQdHI8VHlwZUJ1
aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpDU1M6OkNTU0NvbXB1dGVkU3R5bGVQcm9wZXJ0eT4g
PiYpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRJbmxpbmVTdHlsZXNGb3JOb2RlKEVycm9yU3RyaW5n
KiwgaW50IG5vZGVJZCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpDU1M6OkNTU1N0eWxlPiYgaW5saW5l
U3R5bGUsIFJlZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpDU1NTdHlsZT4mIGF0dHJpYnV0ZXMpOwpA
QCAtMTg5LDYgKzE5Miw3IEBAIHByaXZhdGU6CiAgICAgTm9kZUlkVG9Gb3JjZWRQc2V1ZG9TdGF0
ZSBtX25vZGVJZFRvRm9yY2VkUHNldWRvU3RhdGU7CiAgICAgSGFzaFNldDxpbnQ+IG1fbmFtZWRG
bG93Q29sbGVjdGlvbnNSZXF1ZXN0ZWQ7CiAgICAgT3duUHRyPFVwZGF0ZVJlZ2lvbkxheW91dFRh
c2s+IG1fdXBkYXRlUmVnaW9uTGF5b3V0VGFzazsKKyAgICBPd25QdHI8Q2hhbmdlUmVnaW9uT3Zl
cnNldFRhc2s+IG1fY2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s7CiAKICAgICBpbnQgbV9sYXN0U3R5
bGVTaGVldElkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDZhOTkxYWMuLmQwZjIyNDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3Bw
CkBAIC0yODksNiArMjg5LDEyIEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRV
cGRhdGVSZWdpb25MYXlvdXRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluCiAgICAgICAgIGNz
c0FnZW50LT5kaWRVcGRhdGVSZWdpb25MYXlvdXQoZG9jdW1lbnQsIG5hbWVkRmxvdyk7CiB9CiAK
K3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VSZWdpb25PdmVyc2V0SW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBEb2N1bWVudCogZG9j
dW1lbnQsIFdlYktpdE5hbWVkRmxvdyogbmFtZWRGbG93KQoreworICAgIGlmIChJbnNwZWN0b3JD
U1NBZ2VudCogY3NzQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JDU1NBZ2Vu
dCgpKQorICAgICAgICBjc3NBZ2VudC0+ZGlkQ2hhbmdlUmVnaW9uT3ZlcnNldChkb2N1bWVudCwg
bmFtZWRGbG93KTsKK30KKwogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Om1vdXNlRGlk
TW92ZU92ZXJFbGVtZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3Mp
CiB7CiAgICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGluc3RydW1lbnRpbmdB
Z2VudHMtPmluc3BlY3RvckRPTUFnZW50KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggMGU4YTc3NC4uNDIyMDlhYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaApAQCAtMTMzLDYgKzEzMyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBkaWRD
cmVhdGVOYW1lZEZsb3coRG9jdW1lbnQqLCBXZWJLaXROYW1lZEZsb3cqKTsKICAgICBzdGF0aWMg
dm9pZCB3aWxsUmVtb3ZlTmFtZWRGbG93KERvY3VtZW50KiwgV2ViS2l0TmFtZWRGbG93Kik7CiAg
ICAgc3RhdGljIHZvaWQgZGlkVXBkYXRlUmVnaW9uTGF5b3V0KERvY3VtZW50KiwgV2ViS2l0TmFt
ZWRGbG93Kik7CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlUmVnaW9uT3ZlcnNldChEb2N1bWVu
dCosIFdlYktpdE5hbWVkRmxvdyopOwogCiAgICAgc3RhdGljIHZvaWQgbW91c2VEaWRNb3ZlT3Zl
ckVsZW1lbnQoUGFnZSosIGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZs
YWdzKTsKICAgICBzdGF0aWMgYm9vbCBoYW5kbGVNb3VzZVByZXNzKFBhZ2UqKTsKQEAgLTMzNyw2
ICszMzgsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZU5hbWVkRmxvd0lt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIERvY3VtZW50KiwgV2ViS2l0TmFtZWRGbG93Kik7CiAg
ICAgc3RhdGljIHZvaWQgd2lsbFJlbW92ZU5hbWVkRmxvd0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyosIERvY3VtZW50KiwgV2ViS2l0TmFtZWRGbG93Kik7CiAgICAgc3RhdGljIHZvaWQgZGlkVXBk
YXRlUmVnaW9uTGF5b3V0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRG9jdW1lbnQqLCBXZWJL
aXROYW1lZEZsb3cqKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VSZWdpb25PdmVyc2V0SW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRG9jdW1lbnQqLCBXZWJLaXROYW1lZEZsb3cqKTsKIAog
ICAgIHN0YXRpYyB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50SW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzKiwgY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwog
ICAgIHN0YXRpYyBib29sIGhhbmRsZVRvdWNoRXZlbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
LCBOb2RlKik7CkBAIC03MTksNiArNzIxLDE4IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkVXBkYXRlUmVnaW9uTGF5b3V0KERvY3VtZW50KiBkb2N1bWVudCwKICNl
bmRpZgogfQogCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5n
ZVJlZ2lvbk92ZXJzZXQoRG9jdW1lbnQqIGRvY3VtZW50LCBXZWJLaXROYW1lZEZsb3cqIG5hbWVk
RmxvdykKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZS
T05URU5EUyh2b2lkKCkpOworICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckRvY3VtZW50KGRvY3VtZW50KSkKKyAg
ICAgICAgZGlkQ2hhbmdlUmVnaW9uT3ZlcnNldEltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgZG9j
dW1lbnQsIG5hbWVkRmxvdyk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkb2N1bWVudCk7Cisg
ICAgVU5VU0VEX1BBUkFNKG5hbWVkRmxvdyk7CisjZW5kaWYKK30KKwogaW5saW5lIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjptb3VzZURpZE1vdmVPdmVyRWxlbWVudChQYWdlKiBwYWdl
LCBjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpCiB7
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ1NTTmFtZWRGbG93Q29sbGVjdGlvbnNWaWV3LmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NOYW1lZEZsb3dDb2xsZWN0aW9uc1ZpZXcuanMK
aW5kZXggZDQyMGQyNy4uOGE1NTU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9DU1NOYW1lZEZsb3dDb2xsZWN0aW9uc1ZpZXcuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NOYW1lZEZsb3dDb2xsZWN0aW9uc1ZpZXcu
anMKQEAgLTI0Nyw2ICsyNDcsMTkgQEAgV2ViSW5zcGVjdG9yLkNTU05hbWVkRmxvd0NvbGxlY3Rp
b25zVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBmbG93ID0gLyoqIEB0eXBlIHtXZWJJ
bnNwZWN0b3IuTmFtZWRGbG93fSAqLyAoZXZlbnQuZGF0YSk7CiAgICAgICAgIHRoaXMuX3VwZGF0
ZU5hbWVkRmxvdyhmbG93KTsKICAgICB9LAorICAgIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLkV2ZW50fSBldmVudAorICAgICAqLworICAgIF9yZWdpb25PdmVyc2V0Q2hh
bmdlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICAvLyBGSVhNRTogV2Ugb25seSBo
YXZlIHN1cHBvcnQgZm9yIE5hbWVkIEZsb3dzIGluIHRoZSBtYWluIGRvY3VtZW50LgorICAgICAg
ICBpZiAoZXZlbnQuZGF0YS5kb2N1bWVudE5vZGVJZCAhPT0gdGhpcy5fZG9jdW1lbnQuaWQpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICB2YXIgZmxvdyA9IC8qKiBAdHlw
ZSB7V2ViSW5zcGVjdG9yLk5hbWVkRmxvd30gKi8gKGV2ZW50LmRhdGEpOworICAgICAgICB0aGlz
Ll91cGRhdGVOYW1lZEZsb3coZmxvdyk7CisgICAgfSwKIAogICAgIC8qKgogICAgICAqIEBwYXJh
bSB7RE9NQWdlbnQuTm9kZUlkfSBkb2N1bWVudE5vZGVJZApAQCAtMzUyLDYgKzM2NSw3IEBAIFdl
Ykluc3BlY3Rvci5DU1NOYW1lZEZsb3dDb2xsZWN0aW9uc1ZpZXcucHJvdG90eXBlID0gewogICAg
ICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
Q1NTU3R5bGVNb2RlbC5FdmVudHMuTmFtZWRGbG93Q3JlYXRlZCwgdGhpcy5fbmFtZWRGbG93Q3Jl
YXRlZCwgdGhpcyk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLkV2ZW50cy5OYW1lZEZsb3dSZW1vdmVkLCB0
aGlzLl9uYW1lZEZsb3dSZW1vdmVkLCB0aGlzKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01v
ZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZlbnRzLlJl
Z2lvbkxheW91dFVwZGF0ZWQsIHRoaXMuX3JlZ2lvbkxheW91dFVwZGF0ZWQsIHRoaXMpOworICAg
ICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
Q1NTU3R5bGVNb2RlbC5FdmVudHMuUmVnaW9uT3ZlcnNldENoYW5nZWQsIHRoaXMuX3JlZ2lvbk92
ZXJzZXRDaGFuZ2VkLCB0aGlzKTsKIAogICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWwoImVsZW1l
bnRzIikudHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRWxlbWVudHNU
cmVlT3V0bGluZS5FdmVudHMuU2VsZWN0ZWROb2RlQ2hhbmdlZCwgdGhpcy5fc2VsZWN0ZWROb2Rl
Q2hhbmdlZCwgdGhpcyk7CiAKQEAgLTM2Niw2ICszODAsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTTmFt
ZWRGbG93Q29sbGVjdGlvbnNWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgV2ViSW5zcGVjdG9y
LmNzc01vZGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwu
RXZlbnRzLk5hbWVkRmxvd0NyZWF0ZWQsIHRoaXMuX25hbWVkRmxvd0NyZWF0ZWQsIHRoaXMpOwog
ICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVNb2RlbC5FdmVudHMuTmFtZWRGbG93UmVtb3ZlZCwgdGhpcy5fbmFtZWRG
bG93UmVtb3ZlZCwgdGhpcyk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5yZW1vdmVF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLkV2ZW50cy5SZWdpb25MYXlv
dXRVcGRhdGVkLCB0aGlzLl9yZWdpb25MYXlvdXRVcGRhdGVkLCB0aGlzKTsKKyAgICAgICAgV2Vi
SW5zcGVjdG9yLmNzc01vZGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNTU1N0
eWxlTW9kZWwuRXZlbnRzLlJlZ2lvbk92ZXJzZXRDaGFuZ2VkLCB0aGlzLl9yZWdpb25PdmVyc2V0
Q2hhbmdlZCwgdGhpcyk7CiAKICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVsKCJlbGVtZW50cyIp
LnRyZWVPdXRsaW5lLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJl
ZU91dGxpbmUuRXZlbnRzLlNlbGVjdGVkTm9kZUNoYW5nZWQsIHRoaXMuX3NlbGVjdGVkTm9kZUNo
YW5nZWQsIHRoaXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0NTU1N0eWxlTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NTU1N0eWxlTW9kZWwuanMKaW5kZXggNzUyOWQ2ZS4uY2QwZDAxZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcwpAQCAt
NzcsNyArNzcsOCBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5FdmVudHMgPSB7CiAgICAg
TWVkaWFRdWVyeVJlc3VsdENoYW5nZWQ6ICJNZWRpYVF1ZXJ5UmVzdWx0Q2hhbmdlZCIsCiAgICAg
TmFtZWRGbG93Q3JlYXRlZDogIk5hbWVkRmxvd0NyZWF0ZWQiLAogICAgIE5hbWVkRmxvd1JlbW92
ZWQ6ICJOYW1lZEZsb3dSZW1vdmVkIiwKLSAgICBSZWdpb25MYXlvdXRVcGRhdGVkOiAiUmVnaW9u
TGF5b3V0VXBkYXRlZCIKKyAgICBSZWdpb25MYXlvdXRVcGRhdGVkOiAiUmVnaW9uTGF5b3V0VXBk
YXRlZCIsCisgICAgUmVnaW9uT3ZlcnNldENoYW5nZWQ6ICJSZWdpb25PdmVyc2V0Q2hhbmdlZCIK
IH0KIAogV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuTWVkaWFUeXBlcyA9IFsiYWxsIiwgImJy
YWlsbGUiLCAiZW1ib3NzZWQiLCAiaGFuZGhlbGQiLCAicHJpbnQiLCAicHJvamVjdGlvbiIsICJz
Y3JlZW4iLCAic3BlZWNoIiwgInR0eSIsICJ0diJdOwpAQCAtNDI4LDYgKzQyOSwyMSBAQCBXZWJJ
bnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIG5hbWVkRmxvd0Nv
bGxlY3Rpb24uX2FwcGVuZE5hbWVkRmxvdyhuYW1lZEZsb3cpOwogICAgICAgICB0aGlzLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5FdmVudHMuUmVn
aW9uTGF5b3V0VXBkYXRlZCwgbmFtZWRGbG93KTsKICAgICB9LAorICAgIAorICAgIC8qKgorICAg
ICAqIEBwYXJhbSB7Q1NTQWdlbnQuTmFtZWRGbG93fSBuYW1lZEZsb3dQYXlsb2FkCisgICAgICov
CisgICAgX3JlZ2lvbk92ZXJzZXRDaGFuZ2VkOiBmdW5jdGlvbihuYW1lZEZsb3dQYXlsb2FkKQor
ICAgIHsKKyAgICAgICAgdmFyIG5hbWVkRmxvdyA9IFdlYkluc3BlY3Rvci5OYW1lZEZsb3cucGFy
c2VQYXlsb2FkKG5hbWVkRmxvd1BheWxvYWQpOworICAgICAgICB2YXIgbmFtZWRGbG93Q29sbGVj
dGlvbiA9IHRoaXMuX25hbWVkRmxvd0NvbGxlY3Rpb25zW25hbWVkRmxvdy5kb2N1bWVudE5vZGVJ
ZF07CisgICAgICAgIAorICAgICAgICBpZiAoIW5hbWVkRmxvd0NvbGxlY3Rpb24pCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBuYW1lZEZsb3dDb2xsZWN0aW9uLl9hcHBl
bmROYW1lZEZsb3cobmFtZWRGbG93KTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZlbnRzLlJlZ2lvbk92ZXJzZXRDaGFu
Z2VkLCBuYW1lZEZsb3cpOworICAgIH0sCiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge0NTU0Fn
ZW50LlN0eWxlU2hlZXRJZH0gc3R5bGVTaGVldElkCkBAIC0xNDM5LDYgKzE0NTUsMTQgQEAgV2Vi
SW5zcGVjdG9yLkNTU0Rpc3BhdGNoZXIucHJvdG90eXBlID0gewogICAgIHJlZ2lvbkxheW91dFVw
ZGF0ZWQ6IGZ1bmN0aW9uKG5hbWVkRmxvd1BheWxvYWQpCiAgICAgewogICAgICAgICB0aGlzLl9j
c3NNb2RlbC5fcmVnaW9uTGF5b3V0VXBkYXRlZChuYW1lZEZsb3dQYXlsb2FkKTsKKyAgICB9LAor
ICAgIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7Q1NTQWdlbnQuTmFtZWRGbG93fSBuYW1lZEZs
b3dQYXlsb2FkCisgICAgICovCisgICAgcmVnaW9uT3ZlcnNldENoYW5nZWQ6IGZ1bmN0aW9uKG5h
bWVkRmxvd1BheWxvYWQpCisgICAgeworICAgICAgICB0aGlzLl9jc3NNb2RlbC5fcmVnaW9uT3Zl
cnNldENoYW5nZWQobmFtZWRGbG93UGF5bG9hZCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCmluZGV4IDFmY2Qz
YjguLmJmYjM4N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJO
YW1lZEZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJO
YW1lZEZsb3dUaHJlYWQuY3BwCkBAIC00MzEsNiArNDMxLDcgQEAgdm9pZCBSZW5kZXJOYW1lZEZs
b3dUaHJlYWQ6OmRpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoKQogdm9pZCBSZW5kZXJO
YW1lZEZsb3dUaHJlYWQ6OmRpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KCkKIHsKICAg
ICBSZW5kZXJGbG93VGhyZWFkOjpkaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCgpOwor
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlUmVnaW9uT3ZlcnNldChkb2N1
bWVudCgpLCBtX25hbWVkRmxvdy5nZXQoKSk7CiAgICAgCiAgICAgaWYgKCFtX3JlZ2lvbk92ZXJz
ZXRDaGFuZ2VFdmVudFRpbWVyLmlzQWN0aXZlKCkgJiYgbV9uYW1lZEZsb3ctPmhhc0V2ZW50TGlz
dGVuZXJzKCkpCiAgICAgICAgIG1fcmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50VGltZXIuc3RhcnRP
bmVTaG90KDApOwo=
</data>
<flag name="review"
          id="226567"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205181</attachid>
            <date>2013-06-21 07:00:26 -0700</date>
            <delta_ts>2013-06-21 07:05:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>117833.patch</filename>
            <type>text/plain</type>
            <size>20980</size>
            <attacher name="Radu Stavila">stavila</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5NjU3YmE1Li40NzdlMTY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDYt
MjAgIFJhZHUgU3RhdmlsYSAgPHN0YXZpbGFAYWRvYmUuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IEludGVncmF0ZSBuZXcgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudCBpbnRvIGluc3Bl
Y3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3
ODMzCisKKyAgICAgICAgVGVzdHMgZm9yIHRoZSBuZXcgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVu
dC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGlu
c3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFu
ZHMuaHRtbDoKKwogMjAxMy0wNi0yMSAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUu
Y29tPgogCiAgICAgICAgIEluZGllVUk6IEFkZCBiYXNpYyBJbmRpZVVJIGluZnJhc3RydWN0dXJl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1y
ZWdpb25zLWNvbW1hbmRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMtZXhwZWN0ZWQudHh0CmluZGV4IDlmZTlj
ZjMuLmRkMTk5ZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJv
dG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMtZXhwZWN0ZWQu
dHh0CkBAIC00LDcgKzQsNyBAQCBnZXROYW1lZEZsb3dDb2xsZWN0aW9uIEJ1ZyA5MTYwNwogZ2V0
Rmxvd0J5TmFtZSBCdWcgOTE4NTUKIG5hbWVkRmxvd0NyZWF0ZWQgQnVnIDkyNzM5CiBuYW1lZEZs
b3dSZW1vdmVkIEJ1ZyA5MjczOQotcmVnaW9uTGF5b3V0VXBkYXRlZCBCdWcgOTM0NDMKK3JlZ2lv
bk92ZXJzZXRDaGFuZ2VkIEJ1ZyAxMTc4MzMKIFRoaXMgdGV4dCBpcyBmcm9tIENTUyBOYW1lZCBG
bG93ICJmbG93MyIuCiAKIApAQCAtMTgsNyArMTgsNyBAQCBDb250ZW50IEVsZW1lbnRzOiAxCiBS
ZWdpb25zOiAyCiAqIE5hbWVkIEZsb3cgImZsb3czIgogQ29udGVudCBFbGVtZW50czogMQotUmVn
aW9uczogMQorUmVnaW9uczogMAogCiBSdW5uaW5nOiB0ZXN0R2V0TmFtZWRGbG93Q29sbGVjdGlv
bldpdGhJbnZhbGlkRG9jdW1lbnQKID09PSBDU1MgTmFtZWQgRmxvd3MgaW4gI2Zha2UtZG9jdW1l
bnQgPT09CkBAIC0zNyw4ICszNyw4IEBAIFRoZXJlIGlzIG5vIE5hbWVkIEZsb3cgImZsb3c0IiBp
biB0aGUgbWFpbiBkb2N1bWVudAogUnVubmluZzogdGVzdE5hbWVkRmxvd0NyZWF0ZWQKIE5hbWVk
Rmxvd0NyZWF0ZWQ6ICJ0bXBOYW1lZEZsb3ciCiAKLVJ1bm5pbmc6IHRlc3RSZWdpb25MYXlvdXRV
cGRhdGVkCi1SZWdpb25MYXlvdXRVcGRhdGVkOiAiZmxvdzMiCitSdW5uaW5nOiB0ZXN0UmVnaW9u
T3ZlcnNldENoYW5nZWQKK1JlZ2lvbk92ZXJzZXRDaGFuZ2VkOiAiZmxvdzMiCiAKIFJ1bm5pbmc6
IHRlc3ROYW1lZEZsb3dSZW1vdmVkCiBOYW1lZEZsb3dSZW1vdmVkOiAidG1wTmFtZWRGbG93Igpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1jc3MtcmVn
aW9ucy1jb21tYW5kcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90b2Nv
bC1jc3MtcmVnaW9ucy1jb21tYW5kcy5odG1sCmluZGV4IDZmYzNmNTcuLmFlM2U3NjggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMt
Y29tbWFuZHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29s
LWNzcy1yZWdpb25zLWNvbW1hbmRzLmh0bWwKQEAgLTE3NiwxOSArMTc2LDE5IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgICAgICAgICAgfQogICAgICAgICB9LAogCi0gICAgICAgIGZ1bmN0aW9uIHRl
c3RSZWdpb25MYXlvdXRVcGRhdGVkKG5leHQpCisgICAgICAgIGZ1bmN0aW9uIHRlc3RSZWdpb25P
dmVyc2V0Q2hhbmdlZChuZXh0KQogICAgICAgICB7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
Y3NzTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5FdmVu
dHMuUmVnaW9uTGF5b3V0VXBkYXRlZCwgY2FsbGJhY2ssIHRoaXMpOwotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgid2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KFwicmVnaW9uM1wiKS5zdHlsZVtcIndpZHRoXCJdID0gXCIyMDBweFwiIik7CisgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NT
U3R5bGVNb2RlbC5FdmVudHMuUmVnaW9uT3ZlcnNldENoYW5nZWQsIGNhbGxiYWNrLCB0aGlzKTsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoIndpbmRvdy5kb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChcInJlZ2lvbjNcIikuc3R5bGUud2Via2l0Rmxvd0Zyb209XCJmbG93
M1wiIik7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGV2ZW50KQogICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLm5hbWUgIT09ICJmbG93MyIpCiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5jc3NNb2RlbC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVs
LkV2ZW50cy5SZWdpb25MYXlvdXRVcGRhdGVkLCBjYWxsYmFjaywgdGhpcyk7CisgICAgICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLkNTU1N0eWxlTW9kZWwuRXZlbnRzLlJlZ2lvbk92ZXJzZXRDaGFuZ2VkLCBjYWxsYmFjaywg
dGhpcyk7CiAKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVnaW9u
TGF5b3V0VXBkYXRlZDogXCJmbG93M1wiIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIlJlZ2lvbk92ZXJzZXRDaGFuZ2VkOiBcImZsb3czXCIiKTsKICAgICAgICAg
ICAgICAgICBuZXh0KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCkBAIC0yMjksNyArMjI5
LDcgQEAgVGVzdHMgdGhlIGZvbGxvd2luZyBjb21tYW5kcyBhbmQgZXZlbnRzOgogICAgIDxsaT5n
ZXRGbG93QnlOYW1lIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MTg1NSI+QnVnIDkxODU1PC9hPjwvbGk+CiAgICAgPGxpPm5hbWVkRmxvd0NyZWF0ZWQg
PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNzM5Ij5C
dWcgOTI3Mzk8L2E+PC9saT4KICAgICA8bGk+bmFtZWRGbG93UmVtb3ZlZCA8YSBocmVmPSJodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI3MzkiPkJ1ZyA5MjczOTwvYT48
L2xpPgotICAgIDxsaT5yZWdpb25MYXlvdXRVcGRhdGVkIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzQ0MyI+QnVnIDkzNDQzPC9hPjwvbGk+CisgICAg
PGxpPnJlZ2lvbk92ZXJzZXRDaGFuZ2VkIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTc4MzMiPkJ1ZyAxMTc4MzM8L2E+PC9saT4KIDwvdWw+CiA8L3A+
CiAKQEAgLTI0NSw3ICsyNDUsNyBAQCBUZXN0cyB0aGUgZm9sbG93aW5nIGNvbW1hbmRzIGFuZCBl
dmVudHM6CiA8YXJ0aWNsZSBzdHlsZT0iLXdlYmtpdC1mbG93LWludG86IGZsb3czIj4KICAgICBU
aGlzIHRleHQgaXMgZnJvbSBDU1MgTmFtZWQgRmxvdyAiZmxvdzMiLgogPC9hcnRpY2xlPgotPGRp
diBpZD0icmVnaW9uMyIgc3R5bGU9Ii13ZWJraXQtZmxvdy1mcm9tOiBmbG93MzsgaGVpZ2h0OiAy
MHB4OyB3aWR0aDogNXB4Ij48L2Rpdj4KKzxkaXYgaWQ9InJlZ2lvbjMiIHN0eWxlPSItd2Via2l0
LWZsb3ctZnJvbTogbm9uZTsgaGVpZ2h0OiAyMHB4OyB3aWR0aDogNXB4Ij48L2Rpdj4KIAogPGRp
diBpZD0iZmFrZS1kb2N1bWVudCI+PC9kaXY+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3MDk5MGYzLi5lMzli
ZTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTMtMDYtMjAgIFJhZHUgU3Rhdmls
YSAgPHN0YXZpbGFAYWRvYmUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEludGVncmF0
ZSBuZXcgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudCBpbnRvIGluc3BlY3RvcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3ODMzCisKKyAgICAgICAg
QWRkZWQgdGhlIG5ldyByZWdpb25PdmVyc2V0Q2hhbmdlIGV2ZW50IHRvIHRoZSBXZWJJbnNwZWN0
b3IuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dHM6ICBpbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLmh0bWw6
CisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckNTU0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNoYW5nZVJlZ2lv
bk92ZXJzZXRUYXNrOjpDaGFuZ2VSZWdpb25PdmVyc2V0VGFzayk6CisgICAgICAgIChXZWJDb3Jl
OjpDaGFuZ2VSZWdpb25PdmVyc2V0VGFzazo6c2NoZWR1bGVGb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s6OnVuc2NoZWR1bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNo
YW5nZVJlZ2lvbk92ZXJzZXRUYXNrOjpvblRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNTU0FnZW50OjpyZXNldE5vblBlcnNpc3RlbnREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNTU0FnZW50Ojp3aWxsUmVtb3ZlTmFtZWRGbG93KToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNTU0FnZW50OjpkaWRDaGFuZ2VSZWdpb25PdmVyc2V0KToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckNTU0FnZW50OjpyZWdpb25PdmVyc2V0Q2hhbmdlZCk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVJlZ2lvbk92ZXJzZXRJbXBsKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVJlZ2lvbk92ZXJzZXQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ1NTTmFtZWRGbG93Q29sbGVjdGlvbnNWaWV3Lmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU05hbWVkRmxvd0NvbGxlY3Rpb25zVmlldy5wcm90
b3R5cGUuX3JlZ2lvbk92ZXJzZXRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NO
YW1lZEZsb3dDb2xsZWN0aW9uc1ZpZXcucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5DU1NOYW1lZEZsb3dDb2xsZWN0aW9uc1ZpZXcucHJvdG90eXBlLndpbGxIaWRl
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuX3JlZ2lvbk92ZXJzZXRD
aGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NEaXNwYXRjaGVyLnByb3RvdHlwZS5y
ZWdpb25MYXlvdXRVcGRhdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NEaXNwYXRjaGVy
LnByb3RvdHlwZS5yZWdpb25PdmVyc2V0Q2hhbmdlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlck5hbWVkRmxvd1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZs
b3dUaHJlYWQ6OmRpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KToKKwogMjAxMy0wNi0y
MSAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIEluZGll
VUk6IEFkZCBiYXNpYyBJbmRpZVVJIGluZnJhc3RydWN0dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggYzA4MDU1ZS4uODkwNDQ0MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMjU0Niw2ICsyNTQ2LDEzIEBACiAgICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAibmFtZWRGbG93IiwgIiRyZWYiOiAiTmFtZWRGbG93Iiwg
ImRlc2NyaXB0aW9uIjogIlRoZSBOYW1lZCBGbG93IHdob3NlIGxheW91dCBtYXkgaGF2ZSBjaGFu
Z2VkLiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIkZpcmVzIHdoZW4gYSBOYW1lZCBGbG93J3MgbGF5b3V0IG1heSBoYXZlIGNoYW5nZWQuIgor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJy
ZWdpb25PdmVyc2V0Q2hhbmdlZCIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmFtZWRGbG93IiwgIiRyZWYiOiAiTmFtZWRG
bG93IiwgImRlc2NyaXB0aW9uIjogIlRoZSBOYW1lZCBGbG93IGNvbnRhaW5pbmcgdGhlIHJlZ2lv
bnMgd2hvc2UgcmVnaW9uT3ZlcnNldCB2YWx1ZXMgY2hhbmdlZC4iIH0KKyAgICAgICAgICAgICAg
ICBdLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlcyBpZiBhbnkgb2YgdGhl
IHJlZ2lvbk92ZXJzZXQgdmFsdWVzIGNoYW5nZWQgaW4gYSBOYW1lZCBGbG93J3MgcmVnaW9uIGNo
YWluLiIKICAgICAgICAgICAgIH0KICAgICAgICAgXQogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAppbmRleCA0Yjc3NDcxLi5hYTYxMTVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAK
QEAgLTI5MCw2ICsyOTAsNTQgQEAgdm9pZCBVcGRhdGVSZWdpb25MYXlvdXRUYXNrOjpvblRpbWVy
KFRpbWVyPFVwZGF0ZVJlZ2lvbkxheW91dFRhc2s+KikKICAgICBpZiAoIW1fbmFtZWRGbG93cy5p
c0VtcHR5KCkgJiYgIW1fdGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV90aW1lci5zdGFydE9u
ZVNob3QoMCk7CiB9CisgICAgCitjbGFzcyBDaGFuZ2VSZWdpb25PdmVyc2V0VGFzayB7CitwdWJs
aWM6CisgICAgQ2hhbmdlUmVnaW9uT3ZlcnNldFRhc2soSW5zcGVjdG9yQ1NTQWdlbnQqKTsKKyAg
ICB2b2lkIHNjaGVkdWxlRm9yKFdlYktpdE5hbWVkRmxvdyosIGludCBkb2N1bWVudE5vZGVJZCk7
CisgICAgdm9pZCB1bnNjaGVkdWxlKFdlYktpdE5hbWVkRmxvdyopOworICAgIHZvaWQgcmVzZXQo
KTsKKyAgICB2b2lkIG9uVGltZXIoVGltZXI8Q2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s+Kik7Cisg
ICAgCitwcml2YXRlOgorICAgIEluc3BlY3RvckNTU0FnZW50KiBtX2Nzc0FnZW50OworICAgIFRp
bWVyPENoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrPiBtX3RpbWVyOworICAgIEhhc2hNYXA8V2ViS2l0
TmFtZWRGbG93KiwgaW50PiBtX25hbWVkRmxvd3M7Cit9OworCitDaGFuZ2VSZWdpb25PdmVyc2V0
VGFzazo6Q2hhbmdlUmVnaW9uT3ZlcnNldFRhc2soSW5zcGVjdG9yQ1NTQWdlbnQqIGNzc0FnZW50
KQorICAgIDogbV9jc3NBZ2VudChjc3NBZ2VudCkKKyAgICAsIG1fdGltZXIodGhpcywgJkNoYW5n
ZVJlZ2lvbk92ZXJzZXRUYXNrOjpvblRpbWVyKQoreworfQorCit2b2lkIENoYW5nZVJlZ2lvbk92
ZXJzZXRUYXNrOjpzY2hlZHVsZUZvcihXZWJLaXROYW1lZEZsb3cqIG5hbWVkRmxvdywgaW50IGRv
Y3VtZW50Tm9kZUlkKQoreworICAgIG1fbmFtZWRGbG93cy5hZGQobmFtZWRGbG93LCBkb2N1bWVu
dE5vZGVJZCk7CisgICAgCisgICAgaWYgKCFtX3RpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1f
dGltZXIuc3RhcnRPbmVTaG90KDApOworfQorCit2b2lkIENoYW5nZVJlZ2lvbk92ZXJzZXRUYXNr
Ojp1bnNjaGVkdWxlKFdlYktpdE5hbWVkRmxvdyogbmFtZWRGbG93KQoreworICAgIG1fbmFtZWRG
bG93cy5yZW1vdmUobmFtZWRGbG93KTsKK30KKwordm9pZCBDaGFuZ2VSZWdpb25PdmVyc2V0VGFz
azo6cmVzZXQoKQoreworICAgIG1fdGltZXIuc3RvcCgpOworICAgIG1fbmFtZWRGbG93cy5jbGVh
cigpOworfQorCit2b2lkIENoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrOjpvblRpbWVyKFRpbWVyPENo
YW5nZVJlZ2lvbk92ZXJzZXRUYXNrPiopCit7CisgICAgLy8gVGhlIHRpbWVyIGlzIHN0b3BwZWQg
b24gbV9jc3NBZ2VudCBkZXN0cnVjdGlvbiwgc28gdGhpcyBtZXRob2Qgd2lsbCBuZXZlciBiZSBj
YWxsZWQgYWZ0ZXIgbV9jc3NBZ2VudCBoYXMgYmVlbiBkZXN0cm95ZWQuCisgICAgZm9yIChIYXNo
TWFwPFdlYktpdE5hbWVkRmxvdyosIGludD46Oml0ZXJhdG9yIGl0ID0gbV9uYW1lZEZsb3dzLmJl
Z2luKCksIGVuZCA9IG1fbmFtZWRGbG93cy5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAg
ICBtX2Nzc0FnZW50LT5yZWdpb25PdmVyc2V0Q2hhbmdlZChpdC0+a2V5LCBpdC0+dmFsdWUpOwor
CisgICAgbV9uYW1lZEZsb3dzLmNsZWFyKCk7Cit9CiAKIGNsYXNzIEluc3BlY3RvckNTU0FnZW50
OjpTdHlsZVNoZWV0QWN0aW9uIDogcHVibGljIEluc3BlY3Rvckhpc3Rvcnk6OkFjdGlvbiB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU3R5bGVTaGVldEFjdGlvbik7CkBAIC02MzQsNiArNjgy
LDggQEAgdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6cmVzZXROb25QZXJzaXN0ZW50RGF0YSgpCiAg
ICAgbV9uYW1lZEZsb3dDb2xsZWN0aW9uc1JlcXVlc3RlZC5jbGVhcigpOwogICAgIGlmIChtX3Vw
ZGF0ZVJlZ2lvbkxheW91dFRhc2spCiAgICAgICAgIG1fdXBkYXRlUmVnaW9uTGF5b3V0VGFzay0+
cmVzZXQoKTsKKyAgICBpZiAobV9jaGFuZ2VSZWdpb25PdmVyc2V0VGFzaykKKyAgICAgICAgbV9j
aGFuZ2VSZWdpb25PdmVyc2V0VGFzay0+cmVzZXQoKTsKICAgICByZXNldFBzZXVkb1N0YXRlcygp
OwogfQogCkBAIC02NzMsNiArNzIzLDkgQEAgdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6d2lsbFJl
bW92ZU5hbWVkRmxvdyhEb2N1bWVudCogZG9jdW1lbnQsIFdlYktpdE5hbWVkRmxvdyoKIAogICAg
IGlmIChtX3VwZGF0ZVJlZ2lvbkxheW91dFRhc2spCiAgICAgICAgIG1fdXBkYXRlUmVnaW9uTGF5
b3V0VGFzay0+dW5zY2hlZHVsZShuYW1lZEZsb3cpOworICAgIAorICAgIGlmIChtX2NoYW5nZVJl
Z2lvbk92ZXJzZXRUYXNrKQorICAgICAgICBtX2NoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrLT51bnNj
aGVkdWxlKG5hbWVkRmxvdyk7CiAKICAgICBtX2Zyb250ZW5kLT5uYW1lZEZsb3dSZW1vdmVkKGRv
Y3VtZW50Tm9kZUlkLCBuYW1lZEZsb3ctPm5hbWUoKS5zdHJpbmcoKSk7CiB9CkBAIC02OTksNiAr
NzUyLDI4IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OnJlZ2lvbkxheW91dFVwZGF0ZWQoV2Vi
S2l0TmFtZWRGbG93KiBuYW1lZEZsb3csIGludCBkb2N1CiAgICAgbV9mcm9udGVuZC0+cmVnaW9u
TGF5b3V0VXBkYXRlZChidWlsZE9iamVjdEZvck5hbWVkRmxvdygmZXJyb3JTdHJpbmcsIG5hbWVk
RmxvdywgZG9jdW1lbnROb2RlSWQpKTsKIH0KIAordm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6ZGlk
Q2hhbmdlUmVnaW9uT3ZlcnNldChEb2N1bWVudCogZG9jdW1lbnQsIFdlYktpdE5hbWVkRmxvdyog
bmFtZWRGbG93KQoreworICAgIGludCBkb2N1bWVudE5vZGVJZCA9IGRvY3VtZW50Tm9kZVdpdGhS
ZXF1ZXN0ZWRGbG93c0lkKGRvY3VtZW50KTsKKyAgICBpZiAoIWRvY3VtZW50Tm9kZUlkKQorICAg
ICAgICByZXR1cm47CisgICAgCisgICAgaWYgKCFtX2NoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrKQor
ICAgICAgICBtX2NoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrID0gYWRvcHRQdHIobmV3IENoYW5nZVJl
Z2lvbk92ZXJzZXRUYXNrKHRoaXMpKTsKKyAgICBtX2NoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrLT5z
Y2hlZHVsZUZvcihuYW1lZEZsb3csIGRvY3VtZW50Tm9kZUlkKTsKK30KKwordm9pZCBJbnNwZWN0
b3JDU1NBZ2VudDo6cmVnaW9uT3ZlcnNldENoYW5nZWQoV2ViS2l0TmFtZWRGbG93KiBuYW1lZEZs
b3csIGludCBkb2N1bWVudE5vZGVJZCkKK3sKKyAgICBpZiAobmFtZWRGbG93LT5mbG93U3RhdGUo
KSA9PSBXZWJLaXROYW1lZEZsb3c6OkZsb3dTdGF0ZU51bGwpCisgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICBFcnJvclN0cmluZyBlcnJvclN0cmluZzsKKyAgICBSZWZQdHI8V2ViS2l0TmFtZWRG
bG93PiBwcm90ZWN0b3IobmFtZWRGbG93KTsKKyAgICAKKyAgICBtX2Zyb250ZW5kLT5yZWdpb25P
dmVyc2V0Q2hhbmdlZChidWlsZE9iamVjdEZvck5hbWVkRmxvdygmZXJyb3JTdHJpbmcsIG5hbWVk
RmxvdywgZG9jdW1lbnROb2RlSWQpKTsKK30KKwogYm9vbCBJbnNwZWN0b3JDU1NBZ2VudDo6Zm9y
Y2VQc2V1ZG9TdGF0ZShFbGVtZW50KiBlbGVtZW50LCBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSBw
c2V1ZG9UeXBlKQogewogICAgIGlmIChtX25vZGVJZFRvRm9yY2VkUHNldWRvU3RhdGUuaXNFbXB0
eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0Fn
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaAppbmRl
eCAzNzg3M2IyLi5hNjM2ZDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ1NTQWdlbnQuaApAQCAtNTksNiArNTksNyBAQCBjbGFzcyBTZWxlY3RvclByb2ZpbGU7CiBj
bGFzcyBTdHlsZVJlc29sdmVyOwogY2xhc3MgU3R5bGVSdWxlOwogY2xhc3MgVXBkYXRlUmVnaW9u
TGF5b3V0VGFzazsKK2NsYXNzIENoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrOwogCiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKIApAQCAtMTA3LDYgKzEwOCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbGxS
ZW1vdmVOYW1lZEZsb3coRG9jdW1lbnQqLCBXZWJLaXROYW1lZEZsb3cqKTsKICAgICB2b2lkIGRp
ZFVwZGF0ZVJlZ2lvbkxheW91dChEb2N1bWVudCosIFdlYktpdE5hbWVkRmxvdyopOwogICAgIHZv
aWQgcmVnaW9uTGF5b3V0VXBkYXRlZChXZWJLaXROYW1lZEZsb3cqLCBpbnQgZG9jdW1lbnROb2Rl
SWQpOworICAgIHZvaWQgZGlkQ2hhbmdlUmVnaW9uT3ZlcnNldChEb2N1bWVudCosIFdlYktpdE5h
bWVkRmxvdyopOworICAgIHZvaWQgcmVnaW9uT3ZlcnNldENoYW5nZWQoV2ViS2l0TmFtZWRGbG93
KiwgaW50IGRvY3VtZW50Tm9kZUlkKTsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXRDb21wdXRlZFN0
eWxlRm9yTm9kZShFcnJvclN0cmluZyosIGludCBub2RlSWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6
QXJyYXk8VHlwZUJ1aWxkZXI6OkNTUzo6Q1NTQ29tcHV0ZWRTdHlsZVByb3BlcnR5PiA+Jik7CiAg
ICAgdmlydHVhbCB2b2lkIGdldElubGluZVN0eWxlc0Zvck5vZGUoRXJyb3JTdHJpbmcqLCBpbnQg
bm9kZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6Q1NTU3R5bGU+JiBpbmxpbmVTdHlsZSwg
UmVmUHRyPFR5cGVCdWlsZGVyOjpDU1M6OkNTU1N0eWxlPiYgYXR0cmlidXRlcyk7CkBAIC0xODks
NiArMTkyLDcgQEAgcHJpdmF0ZToKICAgICBOb2RlSWRUb0ZvcmNlZFBzZXVkb1N0YXRlIG1fbm9k
ZUlkVG9Gb3JjZWRQc2V1ZG9TdGF0ZTsKICAgICBIYXNoU2V0PGludD4gbV9uYW1lZEZsb3dDb2xs
ZWN0aW9uc1JlcXVlc3RlZDsKICAgICBPd25QdHI8VXBkYXRlUmVnaW9uTGF5b3V0VGFzaz4gbV91
cGRhdGVSZWdpb25MYXlvdXRUYXNrOworICAgIE93blB0cjxDaGFuZ2VSZWdpb25PdmVyc2V0VGFz
az4gbV9jaGFuZ2VSZWdpb25PdmVyc2V0VGFzazsKIAogICAgIGludCBtX2xhc3RTdHlsZVNoZWV0
SWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAKaW5kZXggNmE5OTFhYy4uZDBmMjI0MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTI4
OSw2ICsyODksMTIgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFVwZGF0ZVJl
Z2lvbkxheW91dEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW4KICAgICAgICAgY3NzQWdlbnQt
PmRpZFVwZGF0ZVJlZ2lvbkxheW91dChkb2N1bWVudCwgbmFtZWRGbG93KTsKIH0KIAordm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVJlZ2lvbk92ZXJzZXRJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIERvY3VtZW50KiBkb2N1bWVudCwg
V2ViS2l0TmFtZWRGbG93KiBuYW1lZEZsb3cpCit7CisgICAgaWYgKEluc3BlY3RvckNTU0FnZW50
KiBjc3NBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckNTU0FnZW50KCkpCisg
ICAgICAgIGNzc0FnZW50LT5kaWRDaGFuZ2VSZWdpb25PdmVyc2V0KGRvY3VtZW50LCBuYW1lZEZs
b3cpOworfQorCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bW91c2VEaWRNb3ZlT3Zl
ckVsZW1lbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIGNv
bnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykKIHsKICAg
ICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+
aW5zcGVjdG9yRE9NQWdlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCAwZThhNzc0Li40MjIwOWFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
CkBAIC0xMzMsNiArMTMzLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZU5h
bWVkRmxvdyhEb2N1bWVudCosIFdlYktpdE5hbWVkRmxvdyopOwogICAgIHN0YXRpYyB2b2lkIHdp
bGxSZW1vdmVOYW1lZEZsb3coRG9jdW1lbnQqLCBXZWJLaXROYW1lZEZsb3cqKTsKICAgICBzdGF0
aWMgdm9pZCBkaWRVcGRhdGVSZWdpb25MYXlvdXQoRG9jdW1lbnQqLCBXZWJLaXROYW1lZEZsb3cq
KTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VSZWdpb25PdmVyc2V0KERvY3VtZW50KiwgV2Vi
S2l0TmFtZWRGbG93Kik7CiAKICAgICBzdGF0aWMgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVu
dChQYWdlKiwgY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwog
ICAgIHN0YXRpYyBib29sIGhhbmRsZU1vdXNlUHJlc3MoUGFnZSopOwpAQCAtMzM3LDYgKzMzOCw3
IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlTmFtZWRGbG93SW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgRG9jdW1lbnQqLCBXZWJLaXROYW1lZEZsb3cqKTsKICAgICBzdGF0
aWMgdm9pZCB3aWxsUmVtb3ZlTmFtZWRGbG93SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRG9j
dW1lbnQqLCBXZWJLaXROYW1lZEZsb3cqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRVcGRhdGVSZWdp
b25MYXlvdXRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBEb2N1bWVudCosIFdlYktpdE5hbWVk
RmxvdyopOworICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZVJlZ2lvbk92ZXJzZXRJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqLCBEb2N1bWVudCosIFdlYktpdE5hbWVkRmxvdyopOwogCiAgICAgc3Rh
dGljIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
LCBjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncyk7CiAgICAgc3Rh
dGljIGJvb2wgaGFuZGxlVG91Y2hFdmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIE5vZGUq
KTsKQEAgLTcxOSw2ICs3MjEsMTggQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRVcGRhdGVSZWdpb25MYXlvdXQoRG9jdW1lbnQqIGRvY3VtZW50LAogI2VuZGlmCiB9
CiAKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlUmVnaW9u
T3ZlcnNldChEb2N1bWVudCogZG9jdW1lbnQsIFdlYktpdE5hbWVkRmxvdyogbmFtZWRGbG93KQor
eworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRT
KHZvaWQoKSk7CisgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2Vu
dHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRG9jdW1lbnQoZG9jdW1lbnQpKQorICAgICAgICBk
aWRDaGFuZ2VSZWdpb25PdmVyc2V0SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBkb2N1bWVudCwg
bmFtZWRGbG93KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKKyAgICBVTlVT
RURfUEFSQU0obmFtZWRGbG93KTsKKyNlbmRpZgorfQorCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KFBhZ2UqIHBhZ2UsIGNvbnN0
IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykKIHsKICNpZiBF
TkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9DU1NOYW1lZEZsb3dDb2xsZWN0aW9uc1ZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0NTU05hbWVkRmxvd0NvbGxlY3Rpb25zVmlldy5qcwppbmRleCBk
NDIwZDI3Li44YTU1NTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0NTU05hbWVkRmxvd0NvbGxlY3Rpb25zVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU05hbWVkRmxvd0NvbGxlY3Rpb25zVmlldy5qcwpAQCAt
MjQ3LDYgKzI0NywxOSBAQCBXZWJJbnNwZWN0b3IuQ1NTTmFtZWRGbG93Q29sbGVjdGlvbnNWaWV3
LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGZsb3cgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rv
ci5OYW1lZEZsb3d9ICovIChldmVudC5kYXRhKTsKICAgICAgICAgdGhpcy5fdXBkYXRlTmFtZWRG
bG93KGZsb3cpOwogICAgIH0sCisgICAgCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuRXZlbnR9IGV2ZW50CisgICAgICovCisgICAgX3JlZ2lvbk92ZXJzZXRDaGFuZ2VkOiBm
dW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBXZSBvbmx5IGhhdmUgc3Vw
cG9ydCBmb3IgTmFtZWQgRmxvd3MgaW4gdGhlIG1haW4gZG9jdW1lbnQuCisgICAgICAgIGlmIChl
dmVudC5kYXRhLmRvY3VtZW50Tm9kZUlkICE9PSB0aGlzLl9kb2N1bWVudC5pZCkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIHZhciBmbG93ID0gLyoqIEB0eXBlIHtXZWJJ
bnNwZWN0b3IuTmFtZWRGbG93fSAqLyAoZXZlbnQuZGF0YSk7CisgICAgICAgIHRoaXMuX3VwZGF0
ZU5hbWVkRmxvdyhmbG93KTsKKyAgICB9LAogCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtET01B
Z2VudC5Ob2RlSWR9IGRvY3VtZW50Tm9kZUlkCkBAIC0zNTIsNiArMzY1LDcgQEAgV2ViSW5zcGVj
dG9yLkNTU05hbWVkRmxvd0NvbGxlY3Rpb25zVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIFdl
Ykluc3BlY3Rvci5jc3NNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5DU1NTdHls
ZU1vZGVsLkV2ZW50cy5OYW1lZEZsb3dDcmVhdGVkLCB0aGlzLl9uYW1lZEZsb3dDcmVhdGVkLCB0
aGlzKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZlbnRzLk5hbWVkRmxvd1JlbW92ZWQsIHRoaXMuX25h
bWVkRmxvd1JlbW92ZWQsIHRoaXMpOwogICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5FdmVudHMuUmVnaW9uTGF5
b3V0VXBkYXRlZCwgdGhpcy5fcmVnaW9uTGF5b3V0VXBkYXRlZCwgdGhpcyk7CisgICAgICAgIFdl
Ykluc3BlY3Rvci5jc3NNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5DU1NTdHls
ZU1vZGVsLkV2ZW50cy5SZWdpb25PdmVyc2V0Q2hhbmdlZCwgdGhpcy5fcmVnaW9uT3ZlcnNldENo
YW5nZWQsIHRoaXMpOwogCiAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbCgiZWxlbWVudHMiKS50
cmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRs
aW5lLkV2ZW50cy5TZWxlY3RlZE5vZGVDaGFuZ2VkLCB0aGlzLl9zZWxlY3RlZE5vZGVDaGFuZ2Vk
LCB0aGlzKTsKIApAQCAtMzY2LDYgKzM4MCw3IEBAIFdlYkluc3BlY3Rvci5DU1NOYW1lZEZsb3dD
b2xsZWN0aW9uc1ZpZXcucHJvdG90eXBlID0gewogICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9k
ZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5FdmVudHMu
TmFtZWRGbG93Q3JlYXRlZCwgdGhpcy5fbmFtZWRGbG93Q3JlYXRlZCwgdGhpcyk7CiAgICAgICAg
IFdlYkluc3BlY3Rvci5jc3NNb2RlbC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5D
U1NTdHlsZU1vZGVsLkV2ZW50cy5OYW1lZEZsb3dSZW1vdmVkLCB0aGlzLl9uYW1lZEZsb3dSZW1v
dmVkLCB0aGlzKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLnJlbW92ZUV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZlbnRzLlJlZ2lvbkxheW91dFVwZGF0
ZWQsIHRoaXMuX3JlZ2lvbkxheW91dFVwZGF0ZWQsIHRoaXMpOworICAgICAgICBXZWJJbnNwZWN0
b3IuY3NzTW9kZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2Rl
bC5FdmVudHMuUmVnaW9uT3ZlcnNldENoYW5nZWQsIHRoaXMuX3JlZ2lvbk92ZXJzZXRDaGFuZ2Vk
LCB0aGlzKTsKIAogICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWwoImVsZW1lbnRzIikudHJlZU91
dGxpbmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGlu
ZS5FdmVudHMuU2VsZWN0ZWROb2RlQ2hhbmdlZCwgdGhpcy5fc2VsZWN0ZWROb2RlQ2hhbmdlZCwg
dGhpcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
Q1NTU3R5bGVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NT
U3R5bGVNb2RlbC5qcwppbmRleCA3NTI5ZDZlLi5jZDBkMDFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCkBAIC03Nyw3ICs3
Nyw4IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLkV2ZW50cyA9IHsKICAgICBNZWRpYVF1
ZXJ5UmVzdWx0Q2hhbmdlZDogIk1lZGlhUXVlcnlSZXN1bHRDaGFuZ2VkIiwKICAgICBOYW1lZEZs
b3dDcmVhdGVkOiAiTmFtZWRGbG93Q3JlYXRlZCIsCiAgICAgTmFtZWRGbG93UmVtb3ZlZDogIk5h
bWVkRmxvd1JlbW92ZWQiLAotICAgIFJlZ2lvbkxheW91dFVwZGF0ZWQ6ICJSZWdpb25MYXlvdXRV
cGRhdGVkIgorICAgIFJlZ2lvbkxheW91dFVwZGF0ZWQ6ICJSZWdpb25MYXlvdXRVcGRhdGVkIiwK
KyAgICBSZWdpb25PdmVyc2V0Q2hhbmdlZDogIlJlZ2lvbk92ZXJzZXRDaGFuZ2VkIgogfQogCiBX
ZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5NZWRpYVR5cGVzID0gWyJhbGwiLCAiYnJhaWxsZSIs
ICJlbWJvc3NlZCIsICJoYW5kaGVsZCIsICJwcmludCIsICJwcm9qZWN0aW9uIiwgInNjcmVlbiIs
ICJzcGVlY2giLCAidHR5IiwgInR2Il07CkBAIC00MjgsNiArNDI5LDIxIEBAIFdlYkluc3BlY3Rv
ci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgbmFtZWRGbG93Q29sbGVjdGlv
bi5fYXBwZW5kTmFtZWRGbG93KG5hbWVkRmxvdyk7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLkV2ZW50cy5SZWdpb25MYXlv
dXRVcGRhdGVkLCBuYW1lZEZsb3cpOwogICAgIH0sCisgICAgCisgICAgLyoqCisgICAgICogQHBh
cmFtIHtDU1NBZ2VudC5OYW1lZEZsb3d9IG5hbWVkRmxvd1BheWxvYWQKKyAgICAgKi8KKyAgICBf
cmVnaW9uT3ZlcnNldENoYW5nZWQ6IGZ1bmN0aW9uKG5hbWVkRmxvd1BheWxvYWQpCisgICAgewor
ICAgICAgICB2YXIgbmFtZWRGbG93ID0gV2ViSW5zcGVjdG9yLk5hbWVkRmxvdy5wYXJzZVBheWxv
YWQobmFtZWRGbG93UGF5bG9hZCk7CisgICAgICAgIHZhciBuYW1lZEZsb3dDb2xsZWN0aW9uID0g
dGhpcy5fbmFtZWRGbG93Q29sbGVjdGlvbnNbbmFtZWRGbG93LmRvY3VtZW50Tm9kZUlkXTsKKyAg
ICAgICAgCisgICAgICAgIGlmICghbmFtZWRGbG93Q29sbGVjdGlvbikKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgCisgICAgICAgIG5hbWVkRmxvd0NvbGxlY3Rpb24uX2FwcGVuZE5hbWVk
RmxvdyhuYW1lZEZsb3cpOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhX
ZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5FdmVudHMuUmVnaW9uT3ZlcnNldENoYW5nZWQsIG5h
bWVkRmxvdyk7CisgICAgfSwKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7Q1NTQWdlbnQuU3R5
bGVTaGVldElkfSBzdHlsZVNoZWV0SWQKQEAgLTE0MzksNiArMTQ1NSwxNCBAQCBXZWJJbnNwZWN0
b3IuQ1NTRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgcmVnaW9uTGF5b3V0VXBkYXRlZDog
ZnVuY3Rpb24obmFtZWRGbG93UGF5bG9hZCkKICAgICB7CiAgICAgICAgIHRoaXMuX2Nzc01vZGVs
Ll9yZWdpb25MYXlvdXRVcGRhdGVkKG5hbWVkRmxvd1BheWxvYWQpOworICAgIH0sCisgICAgCisg
ICAgLyoqCisgICAgICogQHBhcmFtIHtDU1NBZ2VudC5OYW1lZEZsb3d9IG5hbWVkRmxvd1BheWxv
YWQKKyAgICAgKi8KKyAgICByZWdpb25PdmVyc2V0Q2hhbmdlZDogZnVuY3Rpb24obmFtZWRGbG93
UGF5bG9hZCkKKyAgICB7CisgICAgICAgIHRoaXMuX2Nzc01vZGVsLl9yZWdpb25PdmVyc2V0Q2hh
bmdlZChuYW1lZEZsb3dQYXlsb2FkKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAKaW5kZXggMWZjZDNiOC4uYmZi
Mzg3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxv
d1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxv
d1RocmVhZC5jcHAKQEAgLTQzMSw2ICs0MzEsNyBAQCB2b2lkIFJlbmRlck5hbWVkRmxvd1RocmVh
ZDo6ZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCgpCiB2b2lkIFJlbmRlck5hbWVkRmxv
d1RocmVhZDo6ZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQoKQogewogICAgIFJlbmRl
ckZsb3dUaHJlYWQ6OmRpc3BhdGNoUmVnaW9uT3ZlcnNldENoYW5nZUV2ZW50KCk7CisgICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VSZWdpb25PdmVyc2V0KGRvY3VtZW50KCks
IG1fbmFtZWRGbG93LmdldCgpKTsKICAgICAKICAgICBpZiAoIW1fcmVnaW9uT3ZlcnNldENoYW5n
ZUV2ZW50VGltZXIuaXNBY3RpdmUoKSAmJiBtX25hbWVkRmxvdy0+aGFzRXZlbnRMaXN0ZW5lcnMo
KSkKICAgICAgICAgbV9yZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnRUaW1lci5zdGFydE9uZVNob3Qo
MCk7Cg==
</data>
<flag name="commit-queue"
          id="226662"
          type_id="3"
          status="+"
          setter="abucur"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205182</attachid>
            <date>2013-06-21 07:08:11 -0700</date>
            <delta_ts>2013-06-21 07:31:52 -0700</delta_ts>
            <desc>Patch (implemented changes requested by JoePeck)</desc>
            <filename>117833.patch</filename>
            <type>text/plain</type>
            <size>20982</size>
            <attacher name="Radu Stavila">stavila</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5NjU3YmE1Li5hYzE0MTYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDYt
MjAgIFJhZHUgU3RhdmlsYSAgPHN0YXZpbGFAYWRvYmUuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IEludGVncmF0ZSBuZXcgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudCBpbnRvIGluc3Bl
Y3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3
ODMzCisKKyAgICAgICAgVGVzdHMgZm9yIHRoZSBuZXcgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVu
dC4KKworICAgICAgICBSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAgICAgKiBp
bnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1h
bmRzLmh0bWw6CisKIDIwMTMtMDYtMjEgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxl
LmNvbT4KIAogICAgICAgICBJbmRpZVVJOiBBZGQgYmFzaWMgSW5kaWVVSSBpbmZyYXN0cnVjdHVy
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1jc3Mt
cmVnaW9ucy1jb21tYW5kcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLWV4cGVjdGVkLnR4dAppbmRleCA5ZmU5
Y2YzLi5kZDE5OWY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3By
b3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLWV4cGVjdGVk
LnR4dApAQCAtNCw3ICs0LDcgQEAgZ2V0TmFtZWRGbG93Q29sbGVjdGlvbiBCdWcgOTE2MDcKIGdl
dEZsb3dCeU5hbWUgQnVnIDkxODU1CiBuYW1lZEZsb3dDcmVhdGVkIEJ1ZyA5MjczOQogbmFtZWRG
bG93UmVtb3ZlZCBCdWcgOTI3MzkKLXJlZ2lvbkxheW91dFVwZGF0ZWQgQnVnIDkzNDQzCityZWdp
b25PdmVyc2V0Q2hhbmdlZCBCdWcgMTE3ODMzCiBUaGlzIHRleHQgaXMgZnJvbSBDU1MgTmFtZWQg
RmxvdyAiZmxvdzMiLgogCiAKQEAgLTE4LDcgKzE4LDcgQEAgQ29udGVudCBFbGVtZW50czogMQog
UmVnaW9uczogMgogKiBOYW1lZCBGbG93ICJmbG93MyIKIENvbnRlbnQgRWxlbWVudHM6IDEKLVJl
Z2lvbnM6IDEKK1JlZ2lvbnM6IDAKIAogUnVubmluZzogdGVzdEdldE5hbWVkRmxvd0NvbGxlY3Rp
b25XaXRoSW52YWxpZERvY3VtZW50CiA9PT0gQ1NTIE5hbWVkIEZsb3dzIGluICNmYWtlLWRvY3Vt
ZW50ID09PQpAQCAtMzcsOCArMzcsOCBAQCBUaGVyZSBpcyBubyBOYW1lZCBGbG93ICJmbG93NCIg
aW4gdGhlIG1haW4gZG9jdW1lbnQKIFJ1bm5pbmc6IHRlc3ROYW1lZEZsb3dDcmVhdGVkCiBOYW1l
ZEZsb3dDcmVhdGVkOiAidG1wTmFtZWRGbG93IgogCi1SdW5uaW5nOiB0ZXN0UmVnaW9uTGF5b3V0
VXBkYXRlZAotUmVnaW9uTGF5b3V0VXBkYXRlZDogImZsb3czIgorUnVubmluZzogdGVzdFJlZ2lv
bk92ZXJzZXRDaGFuZ2VkCitSZWdpb25PdmVyc2V0Q2hhbmdlZDogImZsb3czIgogCiBSdW5uaW5n
OiB0ZXN0TmFtZWRGbG93UmVtb3ZlZAogTmFtZWRGbG93UmVtb3ZlZDogInRtcE5hbWVkRmxvdyIK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJl
Z2lvbnMtY29tbWFuZHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJvdG9j
b2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMuaHRtbAppbmRleCA2ZmMzZjU3Li5hZTNlNzY4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25z
LWNvbW1hbmRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90b2Nv
bC1jc3MtcmVnaW9ucy1jb21tYW5kcy5odG1sCkBAIC0xNzYsMTkgKzE3NiwxOSBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICAgICAgICAgIH0KICAgICAgICAgfSwKIAotICAgICAgICBmdW5jdGlvbiB0
ZXN0UmVnaW9uTGF5b3V0VXBkYXRlZChuZXh0KQorICAgICAgICBmdW5jdGlvbiB0ZXN0UmVnaW9u
T3ZlcnNldENoYW5nZWQobmV4dCkKICAgICAgICAgewotICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LmNzc01vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZl
bnRzLlJlZ2lvbkxheW91dFVwZGF0ZWQsIGNhbGxiYWNrLCB0aGlzKTsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoIndpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChcInJlZ2lvbjNcIikuc3R5bGVbXCJ3aWR0aFwiXSA9IFwiMjAwcHhcIiIpOworICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNT
U1N0eWxlTW9kZWwuRXZlbnRzLlJlZ2lvbk92ZXJzZXRDaGFuZ2VkLCBjYWxsYmFjaywgdGhpcyk7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJ3aW5kb3cuZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoXCJyZWdpb24zXCIpLnN0eWxlLndlYmtpdEZsb3dGcm9tPVwiZmxv
dzNcIiIpOwogCiAgICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhldmVudCkKICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5uYW1lICE9PSAiZmxvdzMiKQog
ICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0
b3IuY3NzTW9kZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2Rl
bC5FdmVudHMuUmVnaW9uTGF5b3V0VXBkYXRlZCwgY2FsbGJhY2ssIHRoaXMpOworICAgICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5DU1NTdHlsZU1vZGVsLkV2ZW50cy5SZWdpb25PdmVyc2V0Q2hhbmdlZCwgY2FsbGJhY2ss
IHRoaXMpOwogCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlJlZ2lv
bkxheW91dFVwZGF0ZWQ6IFwiZmxvdzNcIiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJSZWdpb25PdmVyc2V0Q2hhbmdlZDogXCJmbG93M1wiIik7CiAgICAgICAg
ICAgICAgICAgbmV4dCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9LApAQCAtMjI5LDcgKzIy
OSw3IEBAIFRlc3RzIHRoZSBmb2xsb3dpbmcgY29tbWFuZHMgYW5kIGV2ZW50czoKICAgICA8bGk+
Z2V0Rmxvd0J5TmFtZSA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTE4NTUiPkJ1ZyA5MTg1NTwvYT48L2xpPgogICAgIDxsaT5uYW1lZEZsb3dDcmVhdGVk
IDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjczOSI+
QnVnIDkyNzM5PC9hPjwvbGk+CiAgICAgPGxpPm5hbWVkRmxvd1JlbW92ZWQgPGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNzM5Ij5CdWcgOTI3Mzk8L2E+
PC9saT4KLSAgICA8bGk+cmVnaW9uTGF5b3V0VXBkYXRlZCA8YSBocmVmPSJodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTM0NDMiPkJ1ZyA5MzQ0MzwvYT48L2xpPgorICAg
IDxsaT5yZWdpb25PdmVyc2V0Q2hhbmdlZCA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTE3ODMzIj5CdWcgMTE3ODMzPC9hPjwvbGk+CiA8L3VsPgogPC9w
PgogCkBAIC0yNDUsNyArMjQ1LDcgQEAgVGVzdHMgdGhlIGZvbGxvd2luZyBjb21tYW5kcyBhbmQg
ZXZlbnRzOgogPGFydGljbGUgc3R5bGU9Ii13ZWJraXQtZmxvdy1pbnRvOiBmbG93MyI+CiAgICAg
VGhpcyB0ZXh0IGlzIGZyb20gQ1NTIE5hbWVkIEZsb3cgImZsb3czIi4KIDwvYXJ0aWNsZT4KLTxk
aXYgaWQ9InJlZ2lvbjMiIHN0eWxlPSItd2Via2l0LWZsb3ctZnJvbTogZmxvdzM7IGhlaWdodDog
MjBweDsgd2lkdGg6IDVweCI+PC9kaXY+Cis8ZGl2IGlkPSJyZWdpb24zIiBzdHlsZT0iLXdlYmtp
dC1mbG93LWZyb206IG5vbmU7IGhlaWdodDogMjBweDsgd2lkdGg6IDVweCI+PC9kaXY+CiAKIDxk
aXYgaWQ9ImZha2UtZG9jdW1lbnQiPjwvZGl2PgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzA5OTBmMy4uYzhj
ZmMzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEzLTA2LTIwICBSYWR1IFN0YXZp
bGEgIDxzdGF2aWxhQGFkb2JlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbnRlZ3Jh
dGUgbmV3IHJlZ2lvbk92ZXJzZXRDaGFuZ2UgZXZlbnQgaW50byBpbnNwZWN0b3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzgzMworCisgICAgICAg
IEFkZGVkIHRoZSBuZXcgcmVnaW9uT3ZlcnNldENoYW5nZSBldmVudCB0byB0aGUgV2ViSW5zcGVj
dG9yLgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KKworICAgICAgICBU
ZXN0czogIGluc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMuaHRt
bDoKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hhbmdlUmVn
aW9uT3ZlcnNldFRhc2s6OkNoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrKToKKyAgICAgICAgKFdlYkNv
cmU6OkNoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrOjpzY2hlZHVsZUZvcik6CisgICAgICAgIChXZWJD
b3JlOjpDaGFuZ2VSZWdpb25PdmVyc2V0VGFzazo6dW5zY2hlZHVsZSk6CisgICAgICAgIChXZWJD
b3JlOjpDaGFuZ2VSZWdpb25PdmVyc2V0VGFzazo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s6Om9uVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQ1NTQWdlbnQ6OnJlc2V0Tm9uUGVyc2lzdGVudERhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OndpbGxSZW1vdmVOYW1lZEZsb3cpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OmRpZENoYW5nZVJlZ2lvbk92ZXJzZXQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OnJlZ2lvbk92ZXJzZXRDaGFuZ2VkKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlUmVnaW9uT3ZlcnNldEltcGwpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlUmVnaW9uT3ZlcnNldCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NOYW1lZEZsb3dDb2xsZWN0aW9uc1ZpZXcu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTTmFtZWRGbG93Q29sbGVjdGlvbnNWaWV3LnBy
b3RvdHlwZS5fcmVnaW9uT3ZlcnNldENoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNT
U05hbWVkRmxvd0NvbGxlY3Rpb25zVmlldy5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkNTU05hbWVkRmxvd0NvbGxlY3Rpb25zVmlldy5wcm90b3R5cGUud2lsbEhp
ZGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZS5fcmVnaW9uT3ZlcnNl
dENoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU0Rpc3BhdGNoZXIucHJvdG90eXBl
LnJlZ2lvbkxheW91dFVwZGF0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU0Rpc3BhdGNo
ZXIucHJvdG90eXBlLnJlZ2lvbk92ZXJzZXRDaGFuZ2VkKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck5hbWVk
Rmxvd1RocmVhZDo6ZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQpOgorCiAyMDEzLTA2
LTIxICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgSW5k
aWVVSTogQWRkIGJhc2ljIEluZGllVUkgaW5mcmFzdHJ1Y3R1cmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCBjMDgwNTVlLi44OTA0NDQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0yNTQ2LDYgKzI1NDYsMTMgQEAKICAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJuYW1lZEZsb3ciLCAiJHJlZiI6ICJOYW1lZEZsb3ci
LCAiZGVzY3JpcHRpb24iOiAiVGhlIE5hbWVkIEZsb3cgd2hvc2UgbGF5b3V0IG1heSBoYXZlIGNo
YW5nZWQuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiRmlyZXMgd2hlbiBhIE5hbWVkIEZsb3cncyBsYXlvdXQgbWF5IGhhdmUgY2hhbmdlZC4i
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjog
InJlZ2lvbk92ZXJzZXRDaGFuZ2VkIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsK
KyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJuYW1lZEZsb3ciLCAiJHJlZiI6ICJOYW1l
ZEZsb3ciLCAiZGVzY3JpcHRpb24iOiAiVGhlIE5hbWVkIEZsb3cgY29udGFpbmluZyB0aGUgcmVn
aW9ucyB3aG9zZSByZWdpb25PdmVyc2V0IHZhbHVlcyBjaGFuZ2VkLiIgfQorICAgICAgICAgICAg
ICAgIF0sCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVzIGlmIGFueSBvZiB0
aGUgcmVnaW9uT3ZlcnNldCB2YWx1ZXMgY2hhbmdlZCBpbiBhIE5hbWVkIEZsb3cncyByZWdpb24g
Y2hhaW4uIgogICAgICAgICAgICAgfQogICAgICAgICBdCiAgICAgfSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IDRiNzc0NzEuLmFhNjEx
NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNw
cApAQCAtMjkwLDYgKzI5MCw1NCBAQCB2b2lkIFVwZGF0ZVJlZ2lvbkxheW91dFRhc2s6Om9uVGlt
ZXIoVGltZXI8VXBkYXRlUmVnaW9uTGF5b3V0VGFzaz4qKQogICAgIGlmICghbV9uYW1lZEZsb3dz
LmlzRW1wdHkoKSAmJiAhbV90aW1lci5pc0FjdGl2ZSgpKQogICAgICAgICBtX3RpbWVyLnN0YXJ0
T25lU2hvdCgwKTsKIH0KKyAgICAKK2NsYXNzIENoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrIHsKK3B1
YmxpYzoKKyAgICBDaGFuZ2VSZWdpb25PdmVyc2V0VGFzayhJbnNwZWN0b3JDU1NBZ2VudCopOwor
ICAgIHZvaWQgc2NoZWR1bGVGb3IoV2ViS2l0TmFtZWRGbG93KiwgaW50IGRvY3VtZW50Tm9kZUlk
KTsKKyAgICB2b2lkIHVuc2NoZWR1bGUoV2ViS2l0TmFtZWRGbG93Kik7CisgICAgdm9pZCByZXNl
dCgpOworICAgIHZvaWQgb25UaW1lcihUaW1lcjxDaGFuZ2VSZWdpb25PdmVyc2V0VGFzaz4qKTsK
KyAgICAKK3ByaXZhdGU6CisgICAgSW5zcGVjdG9yQ1NTQWdlbnQqIG1fY3NzQWdlbnQ7CisgICAg
VGltZXI8Q2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s+IG1fdGltZXI7CisgICAgSGFzaE1hcDxXZWJL
aXROYW1lZEZsb3cqLCBpbnQ+IG1fbmFtZWRGbG93czsKK307CisKK0NoYW5nZVJlZ2lvbk92ZXJz
ZXRUYXNrOjpDaGFuZ2VSZWdpb25PdmVyc2V0VGFzayhJbnNwZWN0b3JDU1NBZ2VudCogY3NzQWdl
bnQpCisgICAgOiBtX2Nzc0FnZW50KGNzc0FnZW50KQorICAgICwgbV90aW1lcih0aGlzLCAmQ2hh
bmdlUmVnaW9uT3ZlcnNldFRhc2s6Om9uVGltZXIpCit7Cit9CisKK3ZvaWQgQ2hhbmdlUmVnaW9u
T3ZlcnNldFRhc2s6OnNjaGVkdWxlRm9yKFdlYktpdE5hbWVkRmxvdyogbmFtZWRGbG93LCBpbnQg
ZG9jdW1lbnROb2RlSWQpCit7CisgICAgbV9uYW1lZEZsb3dzLmFkZChuYW1lZEZsb3csIGRvY3Vt
ZW50Tm9kZUlkKTsKKyAgICAKKyAgICBpZiAoIW1fdGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAg
bV90aW1lci5zdGFydE9uZVNob3QoMCk7Cit9CisKK3ZvaWQgQ2hhbmdlUmVnaW9uT3ZlcnNldFRh
c2s6OnVuc2NoZWR1bGUoV2ViS2l0TmFtZWRGbG93KiBuYW1lZEZsb3cpCit7CisgICAgbV9uYW1l
ZEZsb3dzLnJlbW92ZShuYW1lZEZsb3cpOworfQorCit2b2lkIENoYW5nZVJlZ2lvbk92ZXJzZXRU
YXNrOjpyZXNldCgpCit7CisgICAgbV90aW1lci5zdG9wKCk7CisgICAgbV9uYW1lZEZsb3dzLmNs
ZWFyKCk7Cit9CisKK3ZvaWQgQ2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s6Om9uVGltZXIoVGltZXI8
Q2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s+KikKK3sKKyAgICAvLyBUaGUgdGltZXIgaXMgc3RvcHBl
ZCBvbiBtX2Nzc0FnZW50IGRlc3RydWN0aW9uLCBzbyB0aGlzIG1ldGhvZCB3aWxsIG5ldmVyIGJl
IGNhbGxlZCBhZnRlciBtX2Nzc0FnZW50IGhhcyBiZWVuIGRlc3Ryb3llZC4KKyAgICBmb3IgKEhh
c2hNYXA8V2ViS2l0TmFtZWRGbG93KiwgaW50Pjo6aXRlcmF0b3IgaXQgPSBtX25hbWVkRmxvd3Mu
YmVnaW4oKSwgZW5kID0gbV9uYW1lZEZsb3dzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpCisgICAg
ICAgIG1fY3NzQWdlbnQtPnJlZ2lvbk92ZXJzZXRDaGFuZ2VkKGl0LT5rZXksIGl0LT52YWx1ZSk7
CisKKyAgICBtX25hbWVkRmxvd3MuY2xlYXIoKTsKK30KIAogY2xhc3MgSW5zcGVjdG9yQ1NTQWdl
bnQ6OlN0eWxlU2hlZXRBY3Rpb24gOiBwdWJsaWMgSW5zcGVjdG9ySGlzdG9yeTo6QWN0aW9uIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTdHlsZVNoZWV0QWN0aW9uKTsKQEAgLTYzNCw2ICs2
ODIsOCBAQCB2b2lkIEluc3BlY3RvckNTU0FnZW50OjpyZXNldE5vblBlcnNpc3RlbnREYXRhKCkK
ICAgICBtX25hbWVkRmxvd0NvbGxlY3Rpb25zUmVxdWVzdGVkLmNsZWFyKCk7CiAgICAgaWYgKG1f
dXBkYXRlUmVnaW9uTGF5b3V0VGFzaykKICAgICAgICAgbV91cGRhdGVSZWdpb25MYXlvdXRUYXNr
LT5yZXNldCgpOworICAgIGlmIChtX2NoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrKQorICAgICAgICBt
X2NoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrLT5yZXNldCgpOwogICAgIHJlc2V0UHNldWRvU3RhdGVz
KCk7CiB9CiAKQEAgLTY3Myw2ICs3MjMsOSBAQCB2b2lkIEluc3BlY3RvckNTU0FnZW50Ojp3aWxs
UmVtb3ZlTmFtZWRGbG93KERvY3VtZW50KiBkb2N1bWVudCwgV2ViS2l0TmFtZWRGbG93KgogCiAg
ICAgaWYgKG1fdXBkYXRlUmVnaW9uTGF5b3V0VGFzaykKICAgICAgICAgbV91cGRhdGVSZWdpb25M
YXlvdXRUYXNrLT51bnNjaGVkdWxlKG5hbWVkRmxvdyk7CisgICAgCisgICAgaWYgKG1fY2hhbmdl
UmVnaW9uT3ZlcnNldFRhc2spCisgICAgICAgIG1fY2hhbmdlUmVnaW9uT3ZlcnNldFRhc2stPnVu
c2NoZWR1bGUobmFtZWRGbG93KTsKIAogICAgIG1fZnJvbnRlbmQtPm5hbWVkRmxvd1JlbW92ZWQo
ZG9jdW1lbnROb2RlSWQsIG5hbWVkRmxvdy0+bmFtZSgpLnN0cmluZygpKTsKIH0KQEAgLTY5OSw2
ICs3NTIsMjggQEAgdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6cmVnaW9uTGF5b3V0VXBkYXRlZChX
ZWJLaXROYW1lZEZsb3cqIG5hbWVkRmxvdywgaW50IGRvY3UKICAgICBtX2Zyb250ZW5kLT5yZWdp
b25MYXlvdXRVcGRhdGVkKGJ1aWxkT2JqZWN0Rm9yTmFtZWRGbG93KCZlcnJvclN0cmluZywgbmFt
ZWRGbG93LCBkb2N1bWVudE5vZGVJZCkpOwogfQogCit2b2lkIEluc3BlY3RvckNTU0FnZW50Ojpk
aWRDaGFuZ2VSZWdpb25PdmVyc2V0KERvY3VtZW50KiBkb2N1bWVudCwgV2ViS2l0TmFtZWRGbG93
KiBuYW1lZEZsb3cpCit7CisgICAgaW50IGRvY3VtZW50Tm9kZUlkID0gZG9jdW1lbnROb2RlV2l0
aFJlcXVlc3RlZEZsb3dzSWQoZG9jdW1lbnQpOworICAgIGlmICghZG9jdW1lbnROb2RlSWQpCisg
ICAgICAgIHJldHVybjsKKyAgICAKKyAgICBpZiAoIW1fY2hhbmdlUmVnaW9uT3ZlcnNldFRhc2sp
CisgICAgICAgIG1fY2hhbmdlUmVnaW9uT3ZlcnNldFRhc2sgPSBhZG9wdFB0cihuZXcgQ2hhbmdl
UmVnaW9uT3ZlcnNldFRhc2sodGhpcykpOworICAgIG1fY2hhbmdlUmVnaW9uT3ZlcnNldFRhc2st
PnNjaGVkdWxlRm9yKG5hbWVkRmxvdywgZG9jdW1lbnROb2RlSWQpOworfQorCit2b2lkIEluc3Bl
Y3RvckNTU0FnZW50OjpyZWdpb25PdmVyc2V0Q2hhbmdlZChXZWJLaXROYW1lZEZsb3cqIG5hbWVk
RmxvdywgaW50IGRvY3VtZW50Tm9kZUlkKQoreworICAgIGlmIChuYW1lZEZsb3ctPmZsb3dTdGF0
ZSgpID09IFdlYktpdE5hbWVkRmxvdzo6Rmxvd1N0YXRlTnVsbCkKKyAgICAgICAgcmV0dXJuOwor
ICAgIAorICAgIEVycm9yU3RyaW5nIGVycm9yU3RyaW5nOworICAgIFJlZlB0cjxXZWJLaXROYW1l
ZEZsb3c+IHByb3RlY3RvcihuYW1lZEZsb3cpOworICAgIAorICAgIG1fZnJvbnRlbmQtPnJlZ2lv
bk92ZXJzZXRDaGFuZ2VkKGJ1aWxkT2JqZWN0Rm9yTmFtZWRGbG93KCZlcnJvclN0cmluZywgbmFt
ZWRGbG93LCBkb2N1bWVudE5vZGVJZCkpOworfQorCiBib29sIEluc3BlY3RvckNTU0FnZW50Ojpm
b3JjZVBzZXVkb1N0YXRlKEVsZW1lbnQqIGVsZW1lbnQsIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBl
IHBzZXVkb1R5cGUpCiB7CiAgICAgaWYgKG1fbm9kZUlkVG9Gb3JjZWRQc2V1ZG9TdGF0ZS5pc0Vt
cHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NT
QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCmlu
ZGV4IDM3ODczYjIuLmE2MzZkNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDU1NBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDU1NBZ2VudC5oCkBAIC01OSw2ICs1OSw3IEBAIGNsYXNzIFNlbGVjdG9yUHJvZmlsZTsK
IGNsYXNzIFN0eWxlUmVzb2x2ZXI7CiBjbGFzcyBTdHlsZVJ1bGU7CiBjbGFzcyBVcGRhdGVSZWdp
b25MYXlvdXRUYXNrOworY2xhc3MgQ2hhbmdlUmVnaW9uT3ZlcnNldFRhc2s7CiAKICNpZiBFTkFC
TEUoSU5TUEVDVE9SKQogCkBAIC0xMDcsNiArMTA4LDggQEAgcHVibGljOgogICAgIHZvaWQgd2ls
bFJlbW92ZU5hbWVkRmxvdyhEb2N1bWVudCosIFdlYktpdE5hbWVkRmxvdyopOwogICAgIHZvaWQg
ZGlkVXBkYXRlUmVnaW9uTGF5b3V0KERvY3VtZW50KiwgV2ViS2l0TmFtZWRGbG93Kik7CiAgICAg
dm9pZCByZWdpb25MYXlvdXRVcGRhdGVkKFdlYktpdE5hbWVkRmxvdyosIGludCBkb2N1bWVudE5v
ZGVJZCk7CisgICAgdm9pZCBkaWRDaGFuZ2VSZWdpb25PdmVyc2V0KERvY3VtZW50KiwgV2ViS2l0
TmFtZWRGbG93Kik7CisgICAgdm9pZCByZWdpb25PdmVyc2V0Q2hhbmdlZChXZWJLaXROYW1lZEZs
b3cqLCBpbnQgZG9jdW1lbnROb2RlSWQpOwogCiAgICAgdmlydHVhbCB2b2lkIGdldENvbXB1dGVk
U3R5bGVGb3JOb2RlKEVycm9yU3RyaW5nKiwgaW50IG5vZGVJZCwgUmVmUHRyPFR5cGVCdWlsZGVy
OjpBcnJheTxUeXBlQnVpbGRlcjo6Q1NTOjpDU1NDb21wdXRlZFN0eWxlUHJvcGVydHk+ID4mKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0SW5saW5lU3R5bGVzRm9yTm9kZShFcnJvclN0cmluZyosIGlu
dCBub2RlSWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpDU1NTdHlsZT4mIGlubGluZVN0eWxl
LCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6Q1NTU3R5bGU+JiBhdHRyaWJ1dGVzKTsKQEAgLTE4
OSw2ICsxOTIsNyBAQCBwcml2YXRlOgogICAgIE5vZGVJZFRvRm9yY2VkUHNldWRvU3RhdGUgbV9u
b2RlSWRUb0ZvcmNlZFBzZXVkb1N0YXRlOwogICAgIEhhc2hTZXQ8aW50PiBtX25hbWVkRmxvd0Nv
bGxlY3Rpb25zUmVxdWVzdGVkOwogICAgIE93blB0cjxVcGRhdGVSZWdpb25MYXlvdXRUYXNrPiBt
X3VwZGF0ZVJlZ2lvbkxheW91dFRhc2s7CisgICAgT3duUHRyPENoYW5nZVJlZ2lvbk92ZXJzZXRU
YXNrPiBtX2NoYW5nZVJlZ2lvbk92ZXJzZXRUYXNrOwogCiAgICAgaW50IG1fbGFzdFN0eWxlU2hl
ZXRJZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmNwcAppbmRleCA2YTk5MWFjLi5kMGYyMjQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAt
Mjg5LDYgKzI4OSwxMiBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkVXBkYXRl
UmVnaW9uTGF5b3V0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbgogICAgICAgICBjc3NBZ2Vu
dC0+ZGlkVXBkYXRlUmVnaW9uTGF5b3V0KGRvY3VtZW50LCBuYW1lZEZsb3cpOwogfQogCit2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2hhbmdlUmVnaW9uT3ZlcnNldEltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgRG9jdW1lbnQqIGRvY3VtZW50
LCBXZWJLaXROYW1lZEZsb3cqIG5hbWVkRmxvdykKK3sKKyAgICBpZiAoSW5zcGVjdG9yQ1NTQWdl
bnQqIGNzc0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yQ1NTQWdlbnQoKSkK
KyAgICAgICAgY3NzQWdlbnQtPmRpZENoYW5nZVJlZ2lvbk92ZXJzZXQoZG9jdW1lbnQsIG5hbWVk
Rmxvdyk7Cit9CisKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjptb3VzZURpZE1vdmVP
dmVyRWxlbWVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywg
Y29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKQogewog
ICAgIGlmIChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRz
LT5pbnNwZWN0b3JET01BZ2VudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDBlOGE3NzQuLjQyMjA5YWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmgKQEAgLTEzMyw2ICsxMzMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRl
TmFtZWRGbG93KERvY3VtZW50KiwgV2ViS2l0TmFtZWRGbG93Kik7CiAgICAgc3RhdGljIHZvaWQg
d2lsbFJlbW92ZU5hbWVkRmxvdyhEb2N1bWVudCosIFdlYktpdE5hbWVkRmxvdyopOwogICAgIHN0
YXRpYyB2b2lkIGRpZFVwZGF0ZVJlZ2lvbkxheW91dChEb2N1bWVudCosIFdlYktpdE5hbWVkRmxv
dyopOworICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZVJlZ2lvbk92ZXJzZXQoRG9jdW1lbnQqLCBX
ZWJLaXROYW1lZEZsb3cqKTsKIAogICAgIHN0YXRpYyB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVt
ZW50KFBhZ2UqLCBjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncyk7
CiAgICAgc3RhdGljIGJvb2wgaGFuZGxlTW91c2VQcmVzcyhQYWdlKik7CkBAIC0zMzcsNiArMzM4
LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVOYW1lZEZsb3dJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMqLCBEb2N1bWVudCosIFdlYktpdE5hbWVkRmxvdyopOwogICAgIHN0
YXRpYyB2b2lkIHdpbGxSZW1vdmVOYW1lZEZsb3dJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBE
b2N1bWVudCosIFdlYktpdE5hbWVkRmxvdyopOwogICAgIHN0YXRpYyB2b2lkIGRpZFVwZGF0ZVJl
Z2lvbkxheW91dEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIERvY3VtZW50KiwgV2ViS2l0TmFt
ZWRGbG93Kik7CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlUmVnaW9uT3ZlcnNldEltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyosIERvY3VtZW50KiwgV2ViS2l0TmFtZWRGbG93Kik7CiAKICAgICBz
dGF0aWMgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyosIGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKICAgICBz
dGF0aWMgYm9vbCBoYW5kbGVUb3VjaEV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgTm9k
ZSopOwpAQCAtNzE5LDYgKzcyMSwxOCBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZFVwZGF0ZVJlZ2lvbkxheW91dChEb2N1bWVudCogZG9jdW1lbnQsCiAjZW5kaWYK
IH0KIAoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VSZWdp
b25PdmVyc2V0KERvY3VtZW50KiBkb2N1bWVudCwgV2ViS2l0TmFtZWRGbG93KiBuYW1lZEZsb3cp
Cit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVO
RFModm9pZCgpKTsKKyAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JEb2N1bWVudChkb2N1bWVudCkpCisgICAgICAg
IGRpZENoYW5nZVJlZ2lvbk92ZXJzZXRJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGRvY3VtZW50
LCBuYW1lZEZsb3cpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOworICAgIFVO
VVNFRF9QQVJBTShuYW1lZEZsb3cpOworI2VuZGlmCit9CisKIGlubGluZSB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoUGFnZSogcGFnZSwgY29u
c3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKQogewogI2lm
IEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NTU05hbWVkRmxvd0NvbGxlY3Rpb25zVmlldy5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTTmFtZWRGbG93Q29sbGVjdGlvbnNWaWV3LmpzCmluZGV4
IGQ0MjBkMjcuLjhhNTU1ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQ1NTTmFtZWRGbG93Q29sbGVjdGlvbnNWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTTmFtZWRGbG93Q29sbGVjdGlvbnNWaWV3LmpzCkBA
IC0yNDcsNiArMjQ3LDE5IEBAIFdlYkluc3BlY3Rvci5DU1NOYW1lZEZsb3dDb2xsZWN0aW9uc1Zp
ZXcucHJvdG90eXBlID0gewogICAgICAgICB2YXIgZmxvdyA9IC8qKiBAdHlwZSB7V2ViSW5zcGVj
dG9yLk5hbWVkRmxvd30gKi8gKGV2ZW50LmRhdGEpOwogICAgICAgICB0aGlzLl91cGRhdGVOYW1l
ZEZsb3coZmxvdyk7CiAgICAgfSwKKyAgICAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYklu
c3BlY3Rvci5FdmVudH0gZXZlbnQKKyAgICAgKi8KKyAgICBfcmVnaW9uT3ZlcnNldENoYW5nZWQ6
IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IFdlIG9ubHkgaGF2ZSBz
dXBwb3J0IGZvciBOYW1lZCBGbG93cyBpbiB0aGUgbWFpbiBkb2N1bWVudC4KKyAgICAgICAgaWYg
KGV2ZW50LmRhdGEuZG9jdW1lbnROb2RlSWQgIT09IHRoaXMuX2RvY3VtZW50LmlkKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgdmFyIGZsb3cgPSAvKiogQHR5cGUge1dl
Ykluc3BlY3Rvci5OYW1lZEZsb3d9ICovIChldmVudC5kYXRhKTsKKyAgICAgICAgdGhpcy5fdXBk
YXRlTmFtZWRGbG93KGZsb3cpOworICAgIH0sCiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge0RP
TUFnZW50Lk5vZGVJZH0gZG9jdW1lbnROb2RlSWQKQEAgLTM1Miw2ICszNjUsNyBAQCBXZWJJbnNw
ZWN0b3IuQ1NTTmFtZWRGbG93Q29sbGVjdGlvbnNWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAg
V2ViSW5zcGVjdG9yLmNzc01vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNTU1N0
eWxlTW9kZWwuRXZlbnRzLk5hbWVkRmxvd0NyZWF0ZWQsIHRoaXMuX25hbWVkRmxvd0NyZWF0ZWQs
IHRoaXMpOwogICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5FdmVudHMuTmFtZWRGbG93UmVtb3ZlZCwgdGhpcy5f
bmFtZWRGbG93UmVtb3ZlZCwgdGhpcyk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLkV2ZW50cy5SZWdpb25M
YXlvdXRVcGRhdGVkLCB0aGlzLl9yZWdpb25MYXlvdXRVcGRhdGVkLCB0aGlzKTsKKyAgICAgICAg
V2ViSW5zcGVjdG9yLmNzc01vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNTU1N0
eWxlTW9kZWwuRXZlbnRzLlJlZ2lvbk92ZXJzZXRDaGFuZ2VkLCB0aGlzLl9yZWdpb25PdmVyc2V0
Q2hhbmdlZCwgdGhpcyk7CiAKICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVsKCJlbGVtZW50cyIp
LnRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91
dGxpbmUuRXZlbnRzLlNlbGVjdGVkTm9kZUNoYW5nZWQsIHRoaXMuX3NlbGVjdGVkTm9kZUNoYW5n
ZWQsIHRoaXMpOwogCkBAIC0zNjYsNiArMzgwLDcgQEAgV2ViSW5zcGVjdG9yLkNTU05hbWVkRmxv
d0NvbGxlY3Rpb25zVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NN
b2RlbC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLkV2ZW50
cy5OYW1lZEZsb3dDcmVhdGVkLCB0aGlzLl9uYW1lZEZsb3dDcmVhdGVkLCB0aGlzKTsKICAgICAg
ICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LkNTU1N0eWxlTW9kZWwuRXZlbnRzLk5hbWVkRmxvd1JlbW92ZWQsIHRoaXMuX25hbWVkRmxvd1Jl
bW92ZWQsIHRoaXMpOwogICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwucmVtb3ZlRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5FdmVudHMuUmVnaW9uTGF5b3V0VXBk
YXRlZCwgdGhpcy5fcmVnaW9uTGF5b3V0VXBkYXRlZCwgdGhpcyk7CisgICAgICAgIFdlYkluc3Bl
Y3Rvci5jc3NNb2RlbC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1v
ZGVsLkV2ZW50cy5SZWdpb25PdmVyc2V0Q2hhbmdlZCwgdGhpcy5fcmVnaW9uT3ZlcnNldENoYW5n
ZWQsIHRoaXMpOwogCiAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbCgiZWxlbWVudHMiKS50cmVl
T3V0bGluZS5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRs
aW5lLkV2ZW50cy5TZWxlY3RlZE5vZGVDaGFuZ2VkLCB0aGlzLl9zZWxlY3RlZE5vZGVDaGFuZ2Vk
LCB0aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9DU1NTdHlsZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9D
U1NTdHlsZU1vZGVsLmpzCmluZGV4IDc1MjlkNmUuLmNkMGQwMWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKQEAgLTc3LDcg
Kzc3LDggQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZlbnRzID0gewogICAgIE1lZGlh
UXVlcnlSZXN1bHRDaGFuZ2VkOiAiTWVkaWFRdWVyeVJlc3VsdENoYW5nZWQiLAogICAgIE5hbWVk
Rmxvd0NyZWF0ZWQ6ICJOYW1lZEZsb3dDcmVhdGVkIiwKICAgICBOYW1lZEZsb3dSZW1vdmVkOiAi
TmFtZWRGbG93UmVtb3ZlZCIsCi0gICAgUmVnaW9uTGF5b3V0VXBkYXRlZDogIlJlZ2lvbkxheW91
dFVwZGF0ZWQiCisgICAgUmVnaW9uTGF5b3V0VXBkYXRlZDogIlJlZ2lvbkxheW91dFVwZGF0ZWQi
LAorICAgIFJlZ2lvbk92ZXJzZXRDaGFuZ2VkOiAiUmVnaW9uT3ZlcnNldENoYW5nZWQiCiB9CiAK
IFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLk1lZGlhVHlwZXMgPSBbImFsbCIsICJicmFpbGxl
IiwgImVtYm9zc2VkIiwgImhhbmRoZWxkIiwgInByaW50IiwgInByb2plY3Rpb24iLCAic2NyZWVu
IiwgInNwZWVjaCIsICJ0dHkiLCAidHYiXTsKQEAgLTQyOCw2ICs0MjksMjEgQEAgV2ViSW5zcGVj
dG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICBuYW1lZEZsb3dDb2xsZWN0
aW9uLl9hcHBlbmROYW1lZEZsb3cobmFtZWRGbG93KTsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2
ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZlbnRzLlJlZ2lvbkxh
eW91dFVwZGF0ZWQsIG5hbWVkRmxvdyk7CiAgICAgfSwKKyAgICAKKyAgICAvKioKKyAgICAgKiBA
cGFyYW0ge0NTU0FnZW50Lk5hbWVkRmxvd30gbmFtZWRGbG93UGF5bG9hZAorICAgICAqLworICAg
IF9yZWdpb25PdmVyc2V0Q2hhbmdlZDogZnVuY3Rpb24obmFtZWRGbG93UGF5bG9hZCkKKyAgICB7
CisgICAgICAgIHZhciBuYW1lZEZsb3cgPSBXZWJJbnNwZWN0b3IuTmFtZWRGbG93LnBhcnNlUGF5
bG9hZChuYW1lZEZsb3dQYXlsb2FkKTsKKyAgICAgICAgdmFyIG5hbWVkRmxvd0NvbGxlY3Rpb24g
PSB0aGlzLl9uYW1lZEZsb3dDb2xsZWN0aW9uc1tuYW1lZEZsb3cuZG9jdW1lbnROb2RlSWRdOwor
ICAgICAgICAKKyAgICAgICAgaWYgKCFuYW1lZEZsb3dDb2xsZWN0aW9uKQorICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAKKyAgICAgICAgbmFtZWRGbG93Q29sbGVjdGlvbi5fYXBwZW5kTmFt
ZWRGbG93KG5hbWVkRmxvdyk7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJz
KFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLkV2ZW50cy5SZWdpb25PdmVyc2V0Q2hhbmdlZCwg
bmFtZWRGbG93KTsKKyAgICB9LAogCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtDU1NBZ2VudC5T
dHlsZVNoZWV0SWR9IHN0eWxlU2hlZXRJZApAQCAtMTQzOSw2ICsxNDU1LDE0IEBAIFdlYkluc3Bl
Y3Rvci5DU1NEaXNwYXRjaGVyLnByb3RvdHlwZSA9IHsKICAgICByZWdpb25MYXlvdXRVcGRhdGVk
OiBmdW5jdGlvbihuYW1lZEZsb3dQYXlsb2FkKQogICAgIHsKICAgICAgICAgdGhpcy5fY3NzTW9k
ZWwuX3JlZ2lvbkxheW91dFVwZGF0ZWQobmFtZWRGbG93UGF5bG9hZCk7CisgICAgfSwKKyAgICAK
KyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0NTU0FnZW50Lk5hbWVkRmxvd30gbmFtZWRGbG93UGF5
bG9hZAorICAgICAqLworICAgIHJlZ2lvbk92ZXJzZXRDaGFuZ2VkOiBmdW5jdGlvbihuYW1lZEZs
b3dQYXlsb2FkKQorICAgIHsKKyAgICAgICAgdGhpcy5fY3NzTW9kZWwuX3JlZ2lvbk92ZXJzZXRD
aGFuZ2VkKG5hbWVkRmxvd1BheWxvYWQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcAppbmRleCAxZmNkM2I4Li5i
ZmIzODdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRG
bG93VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRG
bG93VGhyZWFkLmNwcApAQCAtNDMxLDYgKzQzMSw3IEBAIHZvaWQgUmVuZGVyTmFtZWRGbG93VGhy
ZWFkOjpkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCkKIHZvaWQgUmVuZGVyTmFtZWRG
bG93VGhyZWFkOjpkaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCgpCiB7CiAgICAgUmVu
ZGVyRmxvd1RocmVhZDo6ZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQoKTsKKyAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENoYW5nZVJlZ2lvbk92ZXJzZXQoZG9jdW1lbnQo
KSwgbV9uYW1lZEZsb3cuZ2V0KCkpOwogICAgIAogICAgIGlmICghbV9yZWdpb25PdmVyc2V0Q2hh
bmdlRXZlbnRUaW1lci5pc0FjdGl2ZSgpICYmIG1fbmFtZWRGbG93LT5oYXNFdmVudExpc3RlbmVy
cygpKQogICAgICAgICBtX3JlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudFRpbWVyLnN0YXJ0T25lU2hv
dCgwKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>