<?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>145030</bug_id>
          
          <creation_ts>2015-05-14 16:53:57 -0700</creation_ts>
          <short_desc>Rename connectionDidClose and related methods to be more clear</short_desc>
          <delta_ts>2015-05-14 21:41:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>144971</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>andersca</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1094965</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-14 16:53:57 -0700</bug_when>
    <thetext>Rename connectionDidClose and related methods to be more clear

When reading code in the UIProcess, it is easy to confuse &quot;connectionDidClose(IPC::Connection)&quot; and &quot;didClose(IPC::Connection)&quot;

The former means &quot;the UI Process is purposefully shutting down the connection to a child process.

The later means &quot;the remote end point of this connection has gone away&quot;

We should leave the later, but change the former to be much more explicit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094966</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-14 16:54:15 -0700</bug_when>
    <thetext>Blocking https://bugs.webkit.org/show_bug.cgi?id=144971</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094969</commentid>
    <comment_count>2</comment_count>
      <attachid>253157</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-14 16:56:33 -0700</bug_when>
    <thetext>Created attachment 253157
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094971</commentid>
    <comment_count>3</comment_count>
      <attachid>253158</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-14 17:02:48 -0700</bug_when>
    <thetext>Created attachment 253158
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094974</commentid>
    <comment_count>4</comment_count>
      <attachid>253159</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-14 17:17:11 -0700</bug_when>
    <thetext>Created attachment 253159
Patch v2 - Even better naming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095001</commentid>
    <comment_count>5</comment_count>
      <attachid>253159</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-05-14 19:45:53 -0700</bug_when>
    <thetext>Comment on attachment 253159
Patch v2 - Even better naming

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

The phrase “web process shutting down’ seems to be missing a verb; the tense is confusing, like intentional strangeness of the movie title Rachel Getting Married.

How about “web process will shut down” or “web process is shutting down” or “web process did shut down”? Or whatever the actual situation is.

&gt; Source/WebKit2/Shared/ChildProcessProxy.h:76
&gt; +    void shutdownProcess();

The verb is two words “shut down”, so this should be shutDownProcess.

&gt; Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp:77
&gt; +    ASSERT(this-&gt;connection() == &amp;connection);

This should use ASSERT_UNUSED.

&gt; Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp:100
&gt; +    ASSERT(this-&gt;connection() == &amp;connection);

This should use ASSERT_UNUSED.

&gt; Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp:87
&gt; +    ASSERT(this-&gt;connection() == &amp;connection);

This should use ASSERT_UNUSED.

&gt; Source/WebKit2/UIProcess/WebProcessProxy.h:164
&gt; +    void shutdown();

Again, the verb “shut down” is two words and this should be shutDown.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095007</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-14 20:21:55 -0700</bug_when>
    <thetext>Great suggestions. Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095027</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-14 21:41:41 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/184370</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253157</attachid>
            <date>2015-05-14 16:56:33 -0700</date>
            <delta_ts>2015-05-14 17:02:48 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>16416</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA4NTcwNDBiLi41MDRmZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAg
QEAKKzIwMTUtMDUtMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFJlbmFtZSBjb25uZWN0aW9uRGlkQ2xvc2UgYW5kIHJlbGF0ZWQgbWV0aG9kcyB0byBiZSBt
b3JlIGNsZWFyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ1MDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlc2UgbWV0aG9kcyB3ZXJlIGVhc3kgdG8gY29uZnVzZSB3aXRoICJDb25uZWN0aW9uOjpD
bGllbnQ6OmRpZENsb3NlKCkiLCB5ZXQgdGhleQorICAgICAgICB3ZXJlIGFib3V0IHNvbWV0aGlu
ZyBtdWNoIG1vcmUgZXhwbGljaXQ6IEEgY2hpbGQgcHJvY2VzcyBiZWluZyBzaHV0IGRvd24gYnkg
dGhlIFVJIFByb2Nlc3MuCisKKyAgICAgICAgTGV0J3MgY2FsbCB0aGVtIGFzIHN1Y2guCisKKyAg
ICAgICAgKiBTaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpD
aGlsZFByb2Nlc3NQcm94eTo6c2h1dGRvd25Db25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
Q2hpbGRQcm9jZXNzUHJveHk6OmNsZWFyQ29ubmVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OkNoaWxkUHJvY2Vzc1Byb3h5Ojpjb25uZWN0aW9uRGlkQ2xvc2UpOiBEZWxldGVkLgor
ICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5oOgorCisgICAgICAgICogVUlQcm9j
ZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkRhdGFiYXNlUHJvY2Vzc1Byb3h5Ojpjb25uZWN0aW9uU2h1dHRpbmdEb3duKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5Lmg6CisKKyAgICAgICAg
KiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6Y29ubmVjdGlvblNodXR0aW5nRG93bik6CisgICAg
ICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorCisgICAgICAg
ICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5Ojpjb25uZWN0aW9uU2h1dHRpbmdEb3duKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaDoKKworICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQ
cm94eTo6d2ViUHJvY2Vzc1NodXR0aW5nRG93bik6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
UHJveHk6OmRpc2Nvbm5lY3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFt
ZVByb3h5Lmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3ZWJQcm9jZXNzU2h1dHRpbmdEb3duKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb25uZWN0aW9uRGlkQ2xvc2UpOiBEZWxldGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc0xpZmV0aW1lVHJhY2tlcjo6d2ViUHJvY2Vzc1NodXR0aW5nRG93bik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NMaWZldGltZVRyYWNrZXI6OmNvbm5lY3Rpb25EaWRDbG9zZSk6IERl
bGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIuaDoK
KworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OmNvbm5lY3Rpb25TaHV0dGluZ0Rvd24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNodXRkb3duKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjpyZW1vdmVXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5OjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlz
Y29ubmVjdEZyYW1lc0Zyb21QYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5
OjpzaG91bGRUZXJtaW5hdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnJl
cXVlc3RUZXJtaW5hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y29u
bmVjdGlvbkRpZENsb3NlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1By
b3h5OjpkaXNjb25uZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5Lmg6CisKIDIwMTUtMDUtMTMgIFN1bmdtYW5uIENobyAgPHN1bmdtYW5uLmNob0BuYXZl
cmNvcnAuY29tPgogCiAgICAgICAgIE1pbm9yIGNsZWFudXBzIHRvIFBsdWdpblByb3h5LmNwcC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCmluZGV4IGFmYjcx
MmMuLjE3MTEzZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nl
c3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5
LmNwcApAQCAtMTU5LDEzICsxNTksMTIgQEAgdm9pZCBDaGlsZFByb2Nlc3NQcm94eTo6YWJvcnRQ
cm9jZXNzTGF1bmNoSWZOZWVkZWQoKQogICAgIG1fcHJvY2Vzc0xhdW5jaGVyID0gbnVsbHB0cjsK
IH0KIAotdm9pZCBDaGlsZFByb2Nlc3NQcm94eTo6Y2xlYXJDb25uZWN0aW9uKCkKK3ZvaWQgQ2hp
bGRQcm9jZXNzUHJveHk6OnNodXRkb3duQ29ubmVjdGlvbigpCiB7CiAgICAgaWYgKCFtX2Nvbm5l
Y3Rpb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FOiBDYWxsIHRoaXMgYWZ0ZXIg
dGhlIGNvbm5lY3Rpb24gaGFzIGJlZW4gaW52YWxpZGF0ZWQuCi0gICAgY29ubmVjdGlvbkRpZENs
b3NlKCptX2Nvbm5lY3Rpb24pOworICAgIGNvbm5lY3Rpb25TaHV0dGluZ0Rvd24oKm1fY29ubmVj
dGlvbik7CiAKICAgICBtX2Nvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsKICAgICBtX2Nvbm5lY3Rp
b24gPSBudWxscHRyOwpAQCAtMTc1LDggKzE3NCw0IEBAIHZvaWQgQ2hpbGRQcm9jZXNzUHJveHk6
OmNvbm5lY3Rpb25XaWxsT3BlbihJUEM6OkNvbm5lY3Rpb24mKQogewogfQogCi12b2lkIENoaWxk
UHJvY2Vzc1Byb3h5Ojpjb25uZWN0aW9uRGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKLXsKLX0K
LQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ2hpbGRQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nl
c3NQcm94eS5oCmluZGV4IDU1ODk0N2IuLmFlMWUxNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9DaGlsZFByb2Nlc3NQcm94eS5oCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKICAgICBib29s
IHNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiwgdW5zaWdu
ZWQgbWVzc2FnZVNlbmRGbGFncyk7CiAKIHByb3RlY3RlZDoKLSAgICB2b2lkIGNsZWFyQ29ubmVj
dGlvbigpOworICAgIHZvaWQgc2h1dGRvd25Db25uZWN0aW9uKCk7CiAgICAgdm9pZCBhYm9ydFBy
b2Nlc3NMYXVuY2hJZk5lZWRlZCgpOwogCiAgICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQK
QEAgLTg1LDcgKzg1LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGNvbm5lY3Rpb25XaWxsT3BlbihJUEM6OkNvbm5lY3Rpb24mKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgY29ubmVjdGlvbkRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpOworICAg
IHZpcnR1YWwgdm9pZCBjb25uZWN0aW9uU2h1dHRpbmdEb3duKElQQzo6Q29ubmVjdGlvbiYpID0g
MDsKIAogICAgIFZlY3RvcjxzdGQ6OnBhaXI8c3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVu
Y29kZXI+LCB1bnNpZ25lZD4+IG1fcGVuZGluZ01lc3NhZ2VzOwogICAgIFJlZlB0cjxQcm9jZXNz
TGF1bmNoZXI+IG1fcHJvY2Vzc0xhdW5jaGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAy
YTI4NjlmLi5kZDA0OWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRGF0
YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcApAQCAtNzIsNiArNzIsMTEg
QEAgdm9pZCBEYXRhYmFzZVByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1
bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW4KICAgICBwbGF0Zm9ybUdldExhdW5jaE9wdGlvbnMo
bGF1bmNoT3B0aW9ucyk7CiB9CiAKK3ZvaWQgRGF0YWJhc2VQcm9jZXNzUHJveHk6OmNvbm5lY3Rp
b25TaHV0dGluZ0Rvd24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIEFTU0VS
VCh0aGlzLT5jb25uZWN0aW9uKCkgPT0gJmNvbm5lY3Rpb24pOworfQorCiB2b2lkIERhdGFiYXNl
UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIElQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgaWYgKGRlY29kZXIubWVz
c2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpEYXRhYmFzZVByb2Nlc3NQcm94eTo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmgKaW5kZXggOGFkODY5ZS4uNWJl
YjgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RhdGFiYXNlcy9EYXRh
YmFzZVByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EYXRhYmFz
ZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkuaApAQCAtNTksNiArNTksNyBAQCBwcml2YXRlOgogCiAg
ICAgLy8gQ2hpbGRQcm9jZXNzUHJveHkKICAgICB2aXJ0dWFsIHZvaWQgZ2V0TGF1bmNoT3B0aW9u
cyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgY29ubmVjdGlvblNodXR0aW5nRG93bihJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsK
IAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggYTBhY2MzNC4uNmY1MWRjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5jcHAKQEAgLTk1LDYgKzk1LDExIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Y29ubmVj
dGlvbldpbGxPcGVuKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKICNlbmRpZgogfQogCit2
b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmNvbm5lY3Rpb25TaHV0dGluZ0Rvd24oSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIEFTU0VSVCh0aGlzLT5jb25uZWN0aW9uKCkgPT0g
JmNvbm5lY3Rpb24pOworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmdldE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbihQYXNzUmVmUHRyPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6Okdl
dE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5PiByZXBseSkKIHsKICAgICBt
X3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5hcHBlbmQocmVwbHkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4
IGJkNTYwY2MuLmZjZDFmNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTgyLDYgKzgyLDcgQEAgcHJpdmF0
ZToKICAgICAvLyBDaGlsZFByb2Nlc3NQcm94eQogICAgIHZpcnR1YWwgdm9pZCBnZXRMYXVuY2hP
cHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgdm9pZCBjb25uZWN0aW9uV2lsbE9wZW4oSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGNvbm5lY3Rpb25TaHV0dGluZ0Rvd24oSVBDOjpDb25uZWN0aW9u
Jikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHBsYXRmb3JtR2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNz
TGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKTsKICAgICB2b2lkIG5ldHdvcmtQcm9jZXNzQ3Jhc2hl
ZE9yRmFpbGVkVG9MYXVuY2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCmluZGV4IDEwMDU5MjYuLjU4YmE4YTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc1Byb3h5LmNwcApAQCAtODIsNiArODIsMTEgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJv
eHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVu
Y2gKICAgICBwbGF0Zm9ybUdldExhdW5jaE9wdGlvbnMobGF1bmNoT3B0aW9ucywgbV9wbHVnaW5Q
cm9jZXNzQXR0cmlidXRlcyk7CiB9CiAKK3ZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5Ojpjb25uZWN0
aW9uU2h1dHRpbmdEb3duKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBBU1NF
UlQodGhpcy0+Y29ubmVjdGlvbigpID09ICZjb25uZWN0aW9uKTsKK30KKwogLy8gQXNrcyB0aGUg
cGx1Zy1pbiBwcm9jZXNzIHRvIGNyZWF0ZSBhIG5ldyBjb25uZWN0aW9uIHRvIGEgd2ViIHByb2Nl
c3MuIFRoZSBjb25uZWN0aW9uIGlkZW50aWZpZXIgd2lsbCBiZSAKIC8vIGVuY29kZWQgaW4gdGhl
IGdpdmVuIGFyZ3VtZW50IGVuY29kZXIgYW5kIHNlbnQgYmFjayB0byB0aGUgY29ubmVjdGlvbiBv
ZiB0aGUgZ2l2ZW4gd2ViIHByb2Nlc3MuCiB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6Z2V0UGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb24oUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5
OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5PiByZXBseSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94
eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5
LmgKaW5kZXggNDVmZWVkZC4uZjYzOGY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKQEAgLTExMSw2ICsxMTEsNyBA
QCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xh
dW5jaGVyOjpMYXVuY2hPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwbGF0Zm9ybUdldExh
dW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiwgY29uc3QgUGx1Z2lu
UHJvY2Vzc0F0dHJpYnV0ZXMmKTsKKyAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdGlvblNodXR0aW5n
RG93bihJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKIAogICAgIHZvaWQgcGx1Z2luUHJvY2Vz
c0NyYXNoZWRPckZhaWxlZFRvTGF1bmNoKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5LmNwcAppbmRleCA3YjdkYWMyLi5lNWNkZDkwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCkBAIC01NSw3ICs1NSw3IEBAIFdlYkZyYW1l
UHJveHk6On5XZWJGcmFtZVByb3h5KCkKICAgICBXZWJQcm9jZXNzUG9vbDo6c3RhdGlzdGljcygp
LndrRnJhbWVDb3VudC0tOwogfQogCi12b2lkIFdlYkZyYW1lUHJveHk6OmRpc2Nvbm5lY3QoKQor
dm9pZCBXZWJGcmFtZVByb3h5Ojp3ZWJQcm9jZXNzU2h1dHRpbmdEb3duKCkKIHsKICAgICBtX3Bh
Z2UgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQ
cm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaAppbmRleCA0
NTFiNmZhLi43NzNhNzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
RnJhbWVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5
LmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25z
dCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KICAgICBXZWJQYWdlUHJveHkqIHBhZ2UoKSBjb25zdCB7
IHJldHVybiBtX3BhZ2U7IH0KIAotICAgIHZvaWQgZGlzY29ubmVjdCgpOworICAgIHZvaWQgd2Vi
UHJvY2Vzc1NodXR0aW5nRG93bigpOwogCiAgICAgYm9vbCBpc01haW5GcmFtZSgpIGNvbnN0Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDA1ODk0YzUu
LmRhYTRhZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBA
IC0zNTE2LDExICszNTE2LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbm5lY3Rpb25XaWxsT3Bl
bihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVU
cmFja2VyLmNvbm5lY3Rpb25XaWxsT3Blbihjb25uZWN0aW9uKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmNvbm5lY3Rpb25EaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit2
b2lkIFdlYlBhZ2VQcm94eTo6d2ViUHJvY2Vzc1NodXR0aW5nRG93bigpCiB7Ci0gICAgQVNTRVJU
X1VOVVNFRChjb25uZWN0aW9uLCAmY29ubmVjdGlvbiA9PSBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24o
KSk7Ci0KLSAgICBtX3dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIuY29ubmVjdGlvbkRpZENsb3Nl
KGNvbm5lY3Rpb24pOworICAgIG1fd2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci53ZWJQcm9jZXNz
U2h1dHRpbmdEb3duKCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkRmluaXNo
TGF1bmNoaW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA4
OTk5ODczLi5iZThmNzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CkBAIC05NjMsNyArOTYzLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ2FuY2VsQ2hlY2tpbmdU
ZXh0KHVpbnQ2NF90IHJlcXVlc3RJRCk7CiAKICAgICB2b2lkIGNvbm5lY3Rpb25XaWxsT3BlbihJ
UEM6OkNvbm5lY3Rpb24mKTsKLSAgICB2b2lkIGNvbm5lY3Rpb25EaWRDbG9zZShJUEM6OkNvbm5l
Y3Rpb24mKTsKKyAgICB2b2lkIHdlYlByb2Nlc3NTaHV0dGluZ0Rvd24oKTsKIAogICAgIHZvaWQg
cHJvY2Vzc0RpZEZpbmlzaExhdW5jaGluZygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5jcHAKaW5kZXggYTJlYmZlZi4u
NmVjOTg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NM
aWZldGltZVRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzTGlmZXRpbWVUcmFja2VyLmNwcApAQCAtNjAsNyArNjAsNyBAQCB2b2lkIFdlYlByb2Nlc3NM
aWZldGltZVRyYWNrZXI6OmNvbm5lY3Rpb25XaWxsT3BlbihJUEM6OkNvbm5lY3Rpb24mKQogICAg
ICAgICBvYnNlcnZlci0+YWRkV2ViUGFnZShtX3dlYlBhZ2VQcm94eSk7CiB9CiAKLXZvaWQgV2Vi
UHJvY2Vzc0xpZmV0aW1lVHJhY2tlcjo6Y29ubmVjdGlvbkRpZENsb3NlKElQQzo6Q29ubmVjdGlv
biYpCit2b2lkIFdlYlByb2Nlc3NMaWZldGltZVRyYWNrZXI6OndlYlByb2Nlc3NTaHV0dGluZ0Rv
d24oKQogewogICAgIEFTU0VSVChwcm9jZXNzSXNSdW5uaW5nKCkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIuaAppbmRleCA3
NDQ1MjA2Li5hMGM1ZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAg
IHZvaWQgYWRkT2JzZXJ2ZXIoV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXImKTsKIAogICAgIHZv
aWQgY29ubmVjdGlvbldpbGxPcGVuKElQQzo6Q29ubmVjdGlvbiYpOwotICAgIHZvaWQgY29ubmVj
dGlvbkRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpOworICAgIHZvaWQgd2ViUHJvY2Vzc1NodXR0
aW5nRG93bigpOwogCiAgICAgdm9pZCBwYWdlV2FzSW52YWxpZGF0ZWQoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA5YTgxY2Y3Li42NWE3
NzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApA
QCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpjb25uZWN0aW9uV2lsbE9w
ZW4oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogICAgICAgICBwYWdlLT5jb25uZWN0aW9u
V2lsbE9wZW4oY29ubmVjdGlvbik7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpjb25uZWN0
aW9uRGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQordm9pZCBXZWJQcm9jZXNz
UHJveHk6OmNvbm5lY3Rpb25TaHV0dGluZ0Rvd24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
KQogewogICAgIEFTU0VSVCh0aGlzLT5jb25uZWN0aW9uKCkgPT0gJmNvbm5lY3Rpb24pOwogCkBA
IC0xNjQsMTQgKzE2NCwxNCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y29ubmVjdGlvbkRpZENs
b3NlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKICAgICBtX3BlbmRpbmdEZWxldGVXZWJz
aXRlRGF0YUZvck9yaWdpbnNDYWxsYmFja3MuY2xlYXIoKTsKIAogICAgIGZvciAoYXV0byYgcGFn
ZSA6IG1fcGFnZU1hcC52YWx1ZXMoKSkKLSAgICAgICAgcGFnZS0+Y29ubmVjdGlvbkRpZENsb3Nl
KGNvbm5lY3Rpb24pOworICAgICAgICBwYWdlLT53ZWJQcm9jZXNzU2h1dHRpbmdEb3duKCk7CiAK
ICAgICByZWxlYXNlUmVtYWluaW5nSWNvbnNGb3JQYWdlVVJMcygpOwogfQogCi12b2lkIFdlYlBy
b2Nlc3NQcm94eTo6ZGlzY29ubmVjdCgpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2h1dGRvd24o
KQogewotICAgIGNsZWFyQ29ubmVjdGlvbigpOworICAgIHNodXRkb3duQ29ubmVjdGlvbigpOwog
CiAgICAgaWYgKG1fd2ViQ29ubmVjdGlvbikgewogICAgICAgICBtX3dlYkNvbm5lY3Rpb24tPmlu
dmFsaWRhdGUoKTsKQEAgLTE4NSw3ICsxODUsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlz
Y29ubmVjdCgpCiAgICAgY29weVZhbHVlc1RvVmVjdG9yKG1fZnJhbWVNYXAsIGZyYW1lcyk7CiAK
ICAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IGZyYW1lcy5zaXplKCk7IGkgPCBzaXplOyAr
K2kpCi0gICAgICAgIGZyYW1lc1tpXS0+ZGlzY29ubmVjdCgpOworICAgICAgICBmcmFtZXNbaV0t
PndlYlByb2Nlc3NTaHV0dGluZ0Rvd24oKTsKICAgICBtX2ZyYW1lTWFwLmNsZWFyKCk7CiAKICAg
ICBpZiAobV9kb3dubG9hZFByb3h5TWFwKQpAQCAtMjQ5LDEzICsyNDksMTMgQEAgdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OnJlbW92ZVdlYlBhZ2UodWludDY0X3QgcGFnZUlEKQogCiAjaWYgUExBVEZP
Uk0oSU9TKQogICAgIGlmIChzdGF0ZSgpID09IFN0YXRlOjpSdW5uaW5nKSB7Ci0gICAgICAgIC8v
IE9uIGlPUyBkZXBsb3kgYSB3YXRjaGRvZyBpbiB0aGUgVUkgcHJvY2Vzcywgc2luY2UgdGhlIGNv
bnRlbnQgbWF5IGJlIHN1c3BlbmRlZC4KLSAgICAgICAgLy8gMzBzIHNob3VsZCBiZSBzdWZmaWNp
ZW50IGZvciBhbnkgb3V0c3RhbmRpbmcgYWN0aXZpdHkgdG8gY29tcGxldGUgY2xlYW5seS4KLSAg
ICAgICAgY29ubmVjdGlvbigpLT50ZXJtaW5hdGVTb29uKDMwKTsKKyAgICAgICAgLy8gT24gaU9T
IGRlcGxveSBhIHdhdGNoZG9nIGluIHRoZSBVSSBwcm9jZXNzLCBzaW5jZSB0aGUgY2hpbGQgcHJv
Y2VzcyBtYXkgYmUgc3VzcGVuZGVkLgorICAgICAgICAvLyBJZiAzMHMgaXMgaW5zdWZmaWNpZW50
IGZvciBhbnkgb3V0c3RhbmRpbmcgYWN0aXZpdHkgdG8gY29tcGxldGUgY2xlYW5seSwgdGhlbiBp
dCB3aWxsIGJlIGtpbGxlZC4KKyAgICAgICAgbV9jb25uZWN0aW9uLT50ZXJtaW5hdGVTb29uKDMw
KTsKICAgICB9CiAjZW5kaWYKIAotICAgIGRpc2Nvbm5lY3QoKTsKKyAgICBzaHV0ZG93bigpOwog
fQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6YWRkVmlzaXRlZExpbmtQcm92aWRlcihWaXNpdGVk
TGlua1Byb3ZpZGVyJiBwcm92aWRlcikKQEAgLTUyNyw3ICs1MjcsNyBAQCB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKICAgICBWZWN0b3I8UmVmUHRyPFdl
YlBhZ2VQcm94eT4+IHBhZ2VzOwogICAgIGNvcHlWYWx1ZXNUb1ZlY3RvcihtX3BhZ2VNYXAsIHBh
Z2VzKTsKIAotICAgIGRpc2Nvbm5lY3QoKTsKKyAgICBzaHV0ZG93bigpOwogCiAgICAgZm9yIChz
aXplX3QgaSA9IDAsIHNpemUgPSBwYWdlcy5zaXplKCk7IGkgPCBzaXplOyArK2kpCiAgICAgICAg
IHBhZ2VzW2ldLT5wcm9jZXNzRGlkQ3Jhc2goKTsKQEAgLTYyOCw3ICs2MjgsNyBAQCB2b2lkIFdl
YlByb2Nlc3NQcm94eTo6ZGlzY29ubmVjdEZyYW1lc0Zyb21QYWdlKFdlYlBhZ2VQcm94eSogcGFn
ZSkKICAgICBjb3B5VmFsdWVzVG9WZWN0b3IobV9mcmFtZU1hcCwgZnJhbWVzKTsKICAgICBmb3Ig
KHNpemVfdCBpID0gMCwgc2l6ZSA9IGZyYW1lcy5zaXplKCk7IGkgPCBzaXplOyArK2kpIHsKICAg
ICAgICAgaWYgKGZyYW1lc1tpXS0+cGFnZSgpID09IHBhZ2UpCi0gICAgICAgICAgICBmcmFtZXNb
aV0tPmRpc2Nvbm5lY3QoKTsKKyAgICAgICAgICAgIGZyYW1lc1tpXS0+d2ViUHJvY2Vzc1NodXR0
aW5nRG93bigpOwogICAgIH0KIH0KIApAQCAtNjYzLDggKzY2Myw4IEBAIHZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpzaG91bGRUZXJtaW5hdGUoYm9vbCYgc2hvdWxkVGVybWluYXRlKQogewogICAgIHNo
b3VsZFRlcm1pbmF0ZSA9IGNhblRlcm1pbmF0ZUNoaWxkUHJvY2VzcygpOwogICAgIGlmIChzaG91
bGRUZXJtaW5hdGUpIHsKLSAgICAgICAgLy8gV2Uga25vdyB0aGF0IHRoZSB3ZWIgcHJvY2VzcyBp
cyBnb2luZyB0byB0ZXJtaW5hdGUgc28gZGlzY29ubmVjdCBpdCBmcm9tIHRoZSBwcm9jZXNzIHBv
b2wuCi0gICAgICAgIGRpc2Nvbm5lY3QoKTsKKyAgICAgICAgLy8gV2Uga25vdyB0aGF0IHRoZSB3
ZWIgcHJvY2VzcyBpcyBnb2luZyB0byB0ZXJtaW5hdGUgc28gc3RhcnQgc2h1dHRpbmcgZG93biBp
biB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgc2h1dGRvd24oKTsKICAgICB9CiB9CiAKQEAgLTc2
NSw3ICs3NjUsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cmVxdWVzdFRlcm1pbmF0aW9uKCkK
ICAgICBpZiAod2ViQ29ubmVjdGlvbigpKQogICAgICAgICB3ZWJDb25uZWN0aW9uKCktPmRpZENs
b3NlKCk7CiAKLSAgICBkaXNjb25uZWN0KCk7CisgICAgc2h1dGRvd24oKTsKIH0KIAogdm9pZCBX
ZWJQcm9jZXNzUHJveHk6OmVuYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBhYmQzOWIwLi41YjAzZTAwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xNTcsMTEgKzE1
NywxMSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBnZXRMYXVuY2hPcHRpb25zKFByb2Nl
c3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIHZvaWQgcGxhdGZvcm1H
ZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYpOwogICAgIHZp
cnR1YWwgdm9pZCBjb25uZWN0aW9uV2lsbE9wZW4oSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7
Ci0gICAgdmlydHVhbCB2b2lkIGNvbm5lY3Rpb25EaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdGlvblNodXR0aW5nRG93bihJUEM6OkNv
bm5lY3Rpb24mKSBvdmVycmlkZTsKIAogICAgIC8vIENhbGxlZCB3aGVuIHRoZSB3ZWIgcHJvY2Vz
cyBoYXMgY3Jhc2hlZCBvciB3ZSBrbm93IHRoYXQgaXQgd2lsbCB0ZXJtaW5hdGUgc29vbi4KICAg
ICAvLyBXaWxsIHBvdGVudGlhbGx5IGNhdXNlIHRoZSBXZWJQcm9jZXNzUHJveHkgb2JqZWN0IHRv
IGJlIGZyZWVkLgotICAgIHZvaWQgZGlzY29ubmVjdCgpOworICAgIHZvaWQgc2h1dGRvd24oKTsK
IAogICAgIC8vIElQQyBtZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgYWRkQmFja0ZvcndhcmRJ
dGVtKHVpbnQ2NF90IGl0ZW1JRCwgdWludDY0X3QgcGFnZUlELCBjb25zdCBQYWdlU3RhdGUmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253158</attachid>
            <date>2015-05-14 17:02:48 -0700</date>
            <delta_ts>2015-05-14 17:17:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>16374</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA4NTcwNDBiLi41MDRmZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAg
QEAKKzIwMTUtMDUtMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFJlbmFtZSBjb25uZWN0aW9uRGlkQ2xvc2UgYW5kIHJlbGF0ZWQgbWV0aG9kcyB0byBiZSBt
b3JlIGNsZWFyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ1MDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlc2UgbWV0aG9kcyB3ZXJlIGVhc3kgdG8gY29uZnVzZSB3aXRoICJDb25uZWN0aW9uOjpD
bGllbnQ6OmRpZENsb3NlKCkiLCB5ZXQgdGhleQorICAgICAgICB3ZXJlIGFib3V0IHNvbWV0aGlu
ZyBtdWNoIG1vcmUgZXhwbGljaXQ6IEEgY2hpbGQgcHJvY2VzcyBiZWluZyBzaHV0IGRvd24gYnkg
dGhlIFVJIFByb2Nlc3MuCisKKyAgICAgICAgTGV0J3MgY2FsbCB0aGVtIGFzIHN1Y2guCisKKyAg
ICAgICAgKiBTaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpD
aGlsZFByb2Nlc3NQcm94eTo6c2h1dGRvd25Db25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
Q2hpbGRQcm9jZXNzUHJveHk6OmNsZWFyQ29ubmVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OkNoaWxkUHJvY2Vzc1Byb3h5Ojpjb25uZWN0aW9uRGlkQ2xvc2UpOiBEZWxldGVkLgor
ICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5oOgorCisgICAgICAgICogVUlQcm9j
ZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkRhdGFiYXNlUHJvY2Vzc1Byb3h5Ojpjb25uZWN0aW9uU2h1dHRpbmdEb3duKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5Lmg6CisKKyAgICAgICAg
KiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6Y29ubmVjdGlvblNodXR0aW5nRG93bik6CisgICAg
ICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorCisgICAgICAg
ICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5Ojpjb25uZWN0aW9uU2h1dHRpbmdEb3duKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaDoKKworICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQ
cm94eTo6d2ViUHJvY2Vzc1NodXR0aW5nRG93bik6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
UHJveHk6OmRpc2Nvbm5lY3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFt
ZVByb3h5Lmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3ZWJQcm9jZXNzU2h1dHRpbmdEb3duKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb25uZWN0aW9uRGlkQ2xvc2UpOiBEZWxldGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc0xpZmV0aW1lVHJhY2tlcjo6d2ViUHJvY2Vzc1NodXR0aW5nRG93bik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NMaWZldGltZVRyYWNrZXI6OmNvbm5lY3Rpb25EaWRDbG9zZSk6IERl
bGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIuaDoK
KworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OmNvbm5lY3Rpb25TaHV0dGluZ0Rvd24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNodXRkb3duKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjpyZW1vdmVXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5OjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlz
Y29ubmVjdEZyYW1lc0Zyb21QYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5
OjpzaG91bGRUZXJtaW5hdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnJl
cXVlc3RUZXJtaW5hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y29u
bmVjdGlvbkRpZENsb3NlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1By
b3h5OjpkaXNjb25uZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5Lmg6CisKIDIwMTUtMDUtMTMgIFN1bmdtYW5uIENobyAgPHN1bmdtYW5uLmNob0BuYXZl
cmNvcnAuY29tPgogCiAgICAgICAgIE1pbm9yIGNsZWFudXBzIHRvIFBsdWdpblByb3h5LmNwcC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCmluZGV4IGFmYjcx
MmMuLjE3MTEzZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nl
c3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5
LmNwcApAQCAtMTU5LDEzICsxNTksMTIgQEAgdm9pZCBDaGlsZFByb2Nlc3NQcm94eTo6YWJvcnRQ
cm9jZXNzTGF1bmNoSWZOZWVkZWQoKQogICAgIG1fcHJvY2Vzc0xhdW5jaGVyID0gbnVsbHB0cjsK
IH0KIAotdm9pZCBDaGlsZFByb2Nlc3NQcm94eTo6Y2xlYXJDb25uZWN0aW9uKCkKK3ZvaWQgQ2hp
bGRQcm9jZXNzUHJveHk6OnNodXRkb3duQ29ubmVjdGlvbigpCiB7CiAgICAgaWYgKCFtX2Nvbm5l
Y3Rpb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FOiBDYWxsIHRoaXMgYWZ0ZXIg
dGhlIGNvbm5lY3Rpb24gaGFzIGJlZW4gaW52YWxpZGF0ZWQuCi0gICAgY29ubmVjdGlvbkRpZENs
b3NlKCptX2Nvbm5lY3Rpb24pOworICAgIGNvbm5lY3Rpb25TaHV0dGluZ0Rvd24oKm1fY29ubmVj
dGlvbik7CiAKICAgICBtX2Nvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsKICAgICBtX2Nvbm5lY3Rp
b24gPSBudWxscHRyOwpAQCAtMTc1LDggKzE3NCw0IEBAIHZvaWQgQ2hpbGRQcm9jZXNzUHJveHk6
OmNvbm5lY3Rpb25XaWxsT3BlbihJUEM6OkNvbm5lY3Rpb24mKQogewogfQogCi12b2lkIENoaWxk
UHJvY2Vzc1Byb3h5Ojpjb25uZWN0aW9uRGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKLXsKLX0K
LQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ2hpbGRQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nl
c3NQcm94eS5oCmluZGV4IDU1ODk0N2IuLmFlMWUxNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9DaGlsZFByb2Nlc3NQcm94eS5oCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKICAgICBib29s
IHNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiwgdW5zaWdu
ZWQgbWVzc2FnZVNlbmRGbGFncyk7CiAKIHByb3RlY3RlZDoKLSAgICB2b2lkIGNsZWFyQ29ubmVj
dGlvbigpOworICAgIHZvaWQgc2h1dGRvd25Db25uZWN0aW9uKCk7CiAgICAgdm9pZCBhYm9ydFBy
b2Nlc3NMYXVuY2hJZk5lZWRlZCgpOwogCiAgICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQK
QEAgLTg1LDcgKzg1LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGNvbm5lY3Rpb25XaWxsT3BlbihJUEM6OkNvbm5lY3Rpb24mKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgY29ubmVjdGlvbkRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpOworICAg
IHZpcnR1YWwgdm9pZCBjb25uZWN0aW9uU2h1dHRpbmdEb3duKElQQzo6Q29ubmVjdGlvbiYpID0g
MDsKIAogICAgIFZlY3RvcjxzdGQ6OnBhaXI8c3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVu
Y29kZXI+LCB1bnNpZ25lZD4+IG1fcGVuZGluZ01lc3NhZ2VzOwogICAgIFJlZlB0cjxQcm9jZXNz
TGF1bmNoZXI+IG1fcHJvY2Vzc0xhdW5jaGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAy
YTI4NjlmLi5kZDA0OWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRGF0
YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcApAQCAtNzIsNiArNzIsMTEg
QEAgdm9pZCBEYXRhYmFzZVByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1
bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW4KICAgICBwbGF0Zm9ybUdldExhdW5jaE9wdGlvbnMo
bGF1bmNoT3B0aW9ucyk7CiB9CiAKK3ZvaWQgRGF0YWJhc2VQcm9jZXNzUHJveHk6OmNvbm5lY3Rp
b25TaHV0dGluZ0Rvd24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIEFTU0VS
VCh0aGlzLT5jb25uZWN0aW9uKCkgPT0gJmNvbm5lY3Rpb24pOworfQorCiB2b2lkIERhdGFiYXNl
UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIElQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgaWYgKGRlY29kZXIubWVz
c2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpEYXRhYmFzZVByb2Nlc3NQcm94eTo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmgKaW5kZXggOGFkODY5ZS4uNWJl
YjgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RhdGFiYXNlcy9EYXRh
YmFzZVByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EYXRhYmFz
ZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkuaApAQCAtNTksNiArNTksNyBAQCBwcml2YXRlOgogCiAg
ICAgLy8gQ2hpbGRQcm9jZXNzUHJveHkKICAgICB2aXJ0dWFsIHZvaWQgZ2V0TGF1bmNoT3B0aW9u
cyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgY29ubmVjdGlvblNodXR0aW5nRG93bihJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsK
IAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggYTBhY2MzNC4uNmY1MWRjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5jcHAKQEAgLTk1LDYgKzk1LDExIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Y29ubmVj
dGlvbldpbGxPcGVuKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKICNlbmRpZgogfQogCit2
b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmNvbm5lY3Rpb25TaHV0dGluZ0Rvd24oSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIEFTU0VSVCh0aGlzLT5jb25uZWN0aW9uKCkgPT0g
JmNvbm5lY3Rpb24pOworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmdldE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbihQYXNzUmVmUHRyPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6Okdl
dE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5PiByZXBseSkKIHsKICAgICBt
X3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5hcHBlbmQocmVwbHkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4
IGJkNTYwY2MuLmZjZDFmNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTgyLDYgKzgyLDcgQEAgcHJpdmF0
ZToKICAgICAvLyBDaGlsZFByb2Nlc3NQcm94eQogICAgIHZpcnR1YWwgdm9pZCBnZXRMYXVuY2hP
cHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgdm9pZCBjb25uZWN0aW9uV2lsbE9wZW4oSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGNvbm5lY3Rpb25TaHV0dGluZ0Rvd24oSVBDOjpDb25uZWN0aW9u
Jikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHBsYXRmb3JtR2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNz
TGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKTsKICAgICB2b2lkIG5ldHdvcmtQcm9jZXNzQ3Jhc2hl
ZE9yRmFpbGVkVG9MYXVuY2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCmluZGV4IDEwMDU5MjYuLjU4YmE4YTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc1Byb3h5LmNwcApAQCAtODIsNiArODIsMTEgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJv
eHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVu
Y2gKICAgICBwbGF0Zm9ybUdldExhdW5jaE9wdGlvbnMobGF1bmNoT3B0aW9ucywgbV9wbHVnaW5Q
cm9jZXNzQXR0cmlidXRlcyk7CiB9CiAKK3ZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5Ojpjb25uZWN0
aW9uU2h1dHRpbmdEb3duKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBBU1NF
UlQodGhpcy0+Y29ubmVjdGlvbigpID09ICZjb25uZWN0aW9uKTsKK30KKwogLy8gQXNrcyB0aGUg
cGx1Zy1pbiBwcm9jZXNzIHRvIGNyZWF0ZSBhIG5ldyBjb25uZWN0aW9uIHRvIGEgd2ViIHByb2Nl
c3MuIFRoZSBjb25uZWN0aW9uIGlkZW50aWZpZXIgd2lsbCBiZSAKIC8vIGVuY29kZWQgaW4gdGhl
IGdpdmVuIGFyZ3VtZW50IGVuY29kZXIgYW5kIHNlbnQgYmFjayB0byB0aGUgY29ubmVjdGlvbiBv
ZiB0aGUgZ2l2ZW4gd2ViIHByb2Nlc3MuCiB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6Z2V0UGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb24oUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5
OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5PiByZXBseSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94
eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5
LmgKaW5kZXggNDVmZWVkZC4uZjYzOGY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKQEAgLTExMSw2ICsxMTEsNyBA
QCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xh
dW5jaGVyOjpMYXVuY2hPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwbGF0Zm9ybUdldExh
dW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiwgY29uc3QgUGx1Z2lu
UHJvY2Vzc0F0dHJpYnV0ZXMmKTsKKyAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdGlvblNodXR0aW5n
RG93bihJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKIAogICAgIHZvaWQgcGx1Z2luUHJvY2Vz
c0NyYXNoZWRPckZhaWxlZFRvTGF1bmNoKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5LmNwcAppbmRleCA3YjdkYWMyLi5lNWNkZDkwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCkBAIC01NSw3ICs1NSw3IEBAIFdlYkZyYW1l
UHJveHk6On5XZWJGcmFtZVByb3h5KCkKICAgICBXZWJQcm9jZXNzUG9vbDo6c3RhdGlzdGljcygp
LndrRnJhbWVDb3VudC0tOwogfQogCi12b2lkIFdlYkZyYW1lUHJveHk6OmRpc2Nvbm5lY3QoKQor
dm9pZCBXZWJGcmFtZVByb3h5Ojp3ZWJQcm9jZXNzU2h1dHRpbmdEb3duKCkKIHsKICAgICBtX3Bh
Z2UgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQ
cm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaAppbmRleCA0
NTFiNmZhLi43NzNhNzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
RnJhbWVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5
LmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25z
dCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KICAgICBXZWJQYWdlUHJveHkqIHBhZ2UoKSBjb25zdCB7
IHJldHVybiBtX3BhZ2U7IH0KIAotICAgIHZvaWQgZGlzY29ubmVjdCgpOworICAgIHZvaWQgd2Vi
UHJvY2Vzc1NodXR0aW5nRG93bigpOwogCiAgICAgYm9vbCBpc01haW5GcmFtZSgpIGNvbnN0Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDA1ODk0YzUu
LmRhYTRhZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBA
IC0zNTE2LDExICszNTE2LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbm5lY3Rpb25XaWxsT3Bl
bihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVU
cmFja2VyLmNvbm5lY3Rpb25XaWxsT3Blbihjb25uZWN0aW9uKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmNvbm5lY3Rpb25EaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit2
b2lkIFdlYlBhZ2VQcm94eTo6d2ViUHJvY2Vzc1NodXR0aW5nRG93bigpCiB7Ci0gICAgQVNTRVJU
X1VOVVNFRChjb25uZWN0aW9uLCAmY29ubmVjdGlvbiA9PSBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24o
KSk7Ci0KLSAgICBtX3dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIuY29ubmVjdGlvbkRpZENsb3Nl
KGNvbm5lY3Rpb24pOworICAgIG1fd2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci53ZWJQcm9jZXNz
U2h1dHRpbmdEb3duKCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkRmluaXNo
TGF1bmNoaW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA4
OTk5ODczLi5iZThmNzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CkBAIC05NjMsNyArOTYzLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ2FuY2VsQ2hlY2tpbmdU
ZXh0KHVpbnQ2NF90IHJlcXVlc3RJRCk7CiAKICAgICB2b2lkIGNvbm5lY3Rpb25XaWxsT3BlbihJ
UEM6OkNvbm5lY3Rpb24mKTsKLSAgICB2b2lkIGNvbm5lY3Rpb25EaWRDbG9zZShJUEM6OkNvbm5l
Y3Rpb24mKTsKKyAgICB2b2lkIHdlYlByb2Nlc3NTaHV0dGluZ0Rvd24oKTsKIAogICAgIHZvaWQg
cHJvY2Vzc0RpZEZpbmlzaExhdW5jaGluZygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5jcHAKaW5kZXggYTJlYmZlZi4u
NmVjOTg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NM
aWZldGltZVRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzTGlmZXRpbWVUcmFja2VyLmNwcApAQCAtNjAsNyArNjAsNyBAQCB2b2lkIFdlYlByb2Nlc3NM
aWZldGltZVRyYWNrZXI6OmNvbm5lY3Rpb25XaWxsT3BlbihJUEM6OkNvbm5lY3Rpb24mKQogICAg
ICAgICBvYnNlcnZlci0+YWRkV2ViUGFnZShtX3dlYlBhZ2VQcm94eSk7CiB9CiAKLXZvaWQgV2Vi
UHJvY2Vzc0xpZmV0aW1lVHJhY2tlcjo6Y29ubmVjdGlvbkRpZENsb3NlKElQQzo6Q29ubmVjdGlv
biYpCit2b2lkIFdlYlByb2Nlc3NMaWZldGltZVRyYWNrZXI6OndlYlByb2Nlc3NTaHV0dGluZ0Rv
d24oKQogewogICAgIEFTU0VSVChwcm9jZXNzSXNSdW5uaW5nKCkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIuaAppbmRleCA3
NDQ1MjA2Li5hMGM1ZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAg
IHZvaWQgYWRkT2JzZXJ2ZXIoV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXImKTsKIAogICAgIHZv
aWQgY29ubmVjdGlvbldpbGxPcGVuKElQQzo6Q29ubmVjdGlvbiYpOwotICAgIHZvaWQgY29ubmVj
dGlvbkRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpOworICAgIHZvaWQgd2ViUHJvY2Vzc1NodXR0
aW5nRG93bigpOwogCiAgICAgdm9pZCBwYWdlV2FzSW52YWxpZGF0ZWQoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA5YTgxY2Y3Li42ZTVl
MWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApA
QCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpjb25uZWN0aW9uV2lsbE9w
ZW4oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogICAgICAgICBwYWdlLT5jb25uZWN0aW9u
V2lsbE9wZW4oY29ubmVjdGlvbik7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpjb25uZWN0
aW9uRGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQordm9pZCBXZWJQcm9jZXNz
UHJveHk6OmNvbm5lY3Rpb25TaHV0dGluZ0Rvd24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
KQogewogICAgIEFTU0VSVCh0aGlzLT5jb25uZWN0aW9uKCkgPT0gJmNvbm5lY3Rpb24pOwogCkBA
IC0xNjQsMTQgKzE2NCwxNCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y29ubmVjdGlvbkRpZENs
b3NlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKICAgICBtX3BlbmRpbmdEZWxldGVXZWJz
aXRlRGF0YUZvck9yaWdpbnNDYWxsYmFja3MuY2xlYXIoKTsKIAogICAgIGZvciAoYXV0byYgcGFn
ZSA6IG1fcGFnZU1hcC52YWx1ZXMoKSkKLSAgICAgICAgcGFnZS0+Y29ubmVjdGlvbkRpZENsb3Nl
KGNvbm5lY3Rpb24pOworICAgICAgICBwYWdlLT53ZWJQcm9jZXNzU2h1dHRpbmdEb3duKCk7CiAK
ICAgICByZWxlYXNlUmVtYWluaW5nSWNvbnNGb3JQYWdlVVJMcygpOwogfQogCi12b2lkIFdlYlBy
b2Nlc3NQcm94eTo6ZGlzY29ubmVjdCgpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2h1dGRvd24o
KQogewotICAgIGNsZWFyQ29ubmVjdGlvbigpOworICAgIHNodXRkb3duQ29ubmVjdGlvbigpOwog
CiAgICAgaWYgKG1fd2ViQ29ubmVjdGlvbikgewogICAgICAgICBtX3dlYkNvbm5lY3Rpb24tPmlu
dmFsaWRhdGUoKTsKQEAgLTE4NSw3ICsxODUsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlz
Y29ubmVjdCgpCiAgICAgY29weVZhbHVlc1RvVmVjdG9yKG1fZnJhbWVNYXAsIGZyYW1lcyk7CiAK
ICAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IGZyYW1lcy5zaXplKCk7IGkgPCBzaXplOyAr
K2kpCi0gICAgICAgIGZyYW1lc1tpXS0+ZGlzY29ubmVjdCgpOworICAgICAgICBmcmFtZXNbaV0t
PndlYlByb2Nlc3NTaHV0dGluZ0Rvd24oKTsKICAgICBtX2ZyYW1lTWFwLmNsZWFyKCk7CiAKICAg
ICBpZiAobV9kb3dubG9hZFByb3h5TWFwKQpAQCAtMjQ5LDEzICsyNDksMTMgQEAgdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OnJlbW92ZVdlYlBhZ2UodWludDY0X3QgcGFnZUlEKQogCiAjaWYgUExBVEZP
Uk0oSU9TKQogICAgIGlmIChzdGF0ZSgpID09IFN0YXRlOjpSdW5uaW5nKSB7Ci0gICAgICAgIC8v
IE9uIGlPUyBkZXBsb3kgYSB3YXRjaGRvZyBpbiB0aGUgVUkgcHJvY2Vzcywgc2luY2UgdGhlIGNv
bnRlbnQgbWF5IGJlIHN1c3BlbmRlZC4KLSAgICAgICAgLy8gMzBzIHNob3VsZCBiZSBzdWZmaWNp
ZW50IGZvciBhbnkgb3V0c3RhbmRpbmcgYWN0aXZpdHkgdG8gY29tcGxldGUgY2xlYW5seS4KKyAg
ICAgICAgLy8gT24gaU9TIGRlcGxveSBhIHdhdGNoZG9nIGluIHRoZSBVSSBwcm9jZXNzLCBzaW5j
ZSB0aGUgY2hpbGQgcHJvY2VzcyBtYXkgYmUgc3VzcGVuZGVkLgorICAgICAgICAvLyBJZiAzMHMg
aXMgaW5zdWZmaWNpZW50IGZvciBhbnkgb3V0c3RhbmRpbmcgYWN0aXZpdHkgdG8gY29tcGxldGUg
Y2xlYW5seSwgdGhlbiBpdCB3aWxsIGJlIGtpbGxlZC4KICAgICAgICAgY29ubmVjdGlvbigpLT50
ZXJtaW5hdGVTb29uKDMwKTsKICAgICB9CiAjZW5kaWYKIAotICAgIGRpc2Nvbm5lY3QoKTsKKyAg
ICBzaHV0ZG93bigpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6YWRkVmlzaXRlZExpbmtQ
cm92aWRlcihWaXNpdGVkTGlua1Byb3ZpZGVyJiBwcm92aWRlcikKQEAgLTUyNyw3ICs1MjcsNyBA
QCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKICAgICBW
ZWN0b3I8UmVmUHRyPFdlYlBhZ2VQcm94eT4+IHBhZ2VzOwogICAgIGNvcHlWYWx1ZXNUb1ZlY3Rv
cihtX3BhZ2VNYXAsIHBhZ2VzKTsKIAotICAgIGRpc2Nvbm5lY3QoKTsKKyAgICBzaHV0ZG93bigp
OwogCiAgICAgZm9yIChzaXplX3QgaSA9IDAsIHNpemUgPSBwYWdlcy5zaXplKCk7IGkgPCBzaXpl
OyArK2kpCiAgICAgICAgIHBhZ2VzW2ldLT5wcm9jZXNzRGlkQ3Jhc2goKTsKQEAgLTYyOCw3ICs2
MjgsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlzY29ubmVjdEZyYW1lc0Zyb21QYWdlKFdl
YlBhZ2VQcm94eSogcGFnZSkKICAgICBjb3B5VmFsdWVzVG9WZWN0b3IobV9mcmFtZU1hcCwgZnJh
bWVzKTsKICAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IGZyYW1lcy5zaXplKCk7IGkgPCBz
aXplOyArK2kpIHsKICAgICAgICAgaWYgKGZyYW1lc1tpXS0+cGFnZSgpID09IHBhZ2UpCi0gICAg
ICAgICAgICBmcmFtZXNbaV0tPmRpc2Nvbm5lY3QoKTsKKyAgICAgICAgICAgIGZyYW1lc1tpXS0+
d2ViUHJvY2Vzc1NodXR0aW5nRG93bigpOwogICAgIH0KIH0KIApAQCAtNjYzLDggKzY2Myw4IEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzaG91bGRUZXJtaW5hdGUoYm9vbCYgc2hvdWxkVGVybWlu
YXRlKQogewogICAgIHNob3VsZFRlcm1pbmF0ZSA9IGNhblRlcm1pbmF0ZUNoaWxkUHJvY2Vzcygp
OwogICAgIGlmIChzaG91bGRUZXJtaW5hdGUpIHsKLSAgICAgICAgLy8gV2Uga25vdyB0aGF0IHRo
ZSB3ZWIgcHJvY2VzcyBpcyBnb2luZyB0byB0ZXJtaW5hdGUgc28gZGlzY29ubmVjdCBpdCBmcm9t
IHRoZSBwcm9jZXNzIHBvb2wuCi0gICAgICAgIGRpc2Nvbm5lY3QoKTsKKyAgICAgICAgLy8gV2Ug
a25vdyB0aGF0IHRoZSB3ZWIgcHJvY2VzcyBpcyBnb2luZyB0byB0ZXJtaW5hdGUgc28gc3RhcnQg
c2h1dHRpbmcgZG93biBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgc2h1dGRvd24oKTsKICAg
ICB9CiB9CiAKQEAgLTc2NSw3ICs3NjUsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cmVxdWVz
dFRlcm1pbmF0aW9uKCkKICAgICBpZiAod2ViQ29ubmVjdGlvbigpKQogICAgICAgICB3ZWJDb25u
ZWN0aW9uKCktPmRpZENsb3NlKCk7CiAKLSAgICBkaXNjb25uZWN0KCk7CisgICAgc2h1dGRvd24o
KTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmVuYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBhYmQzOWIw
Li41YjAzZTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CkBAIC0xNTcsMTEgKzE1NywxMSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBnZXRMYXVu
Y2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYpIG92ZXJyaWRlOwogICAg
IHZvaWQgcGxhdGZvcm1HZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0
aW9ucyYpOwogICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0aW9uV2lsbE9wZW4oSVBDOjpDb25uZWN0
aW9uJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbm5lY3Rpb25EaWRDbG9zZShJUEM6
OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdGlvblNodXR0
aW5nRG93bihJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKIAogICAgIC8vIENhbGxlZCB3aGVu
IHRoZSB3ZWIgcHJvY2VzcyBoYXMgY3Jhc2hlZCBvciB3ZSBrbm93IHRoYXQgaXQgd2lsbCB0ZXJt
aW5hdGUgc29vbi4KICAgICAvLyBXaWxsIHBvdGVudGlhbGx5IGNhdXNlIHRoZSBXZWJQcm9jZXNz
UHJveHkgb2JqZWN0IHRvIGJlIGZyZWVkLgotICAgIHZvaWQgZGlzY29ubmVjdCgpOworICAgIHZv
aWQgc2h1dGRvd24oKTsKIAogICAgIC8vIElQQyBtZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQg
YWRkQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgdWludDY0X3QgcGFnZUlELCBjb25z
dCBQYWdlU3RhdGUmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253159</attachid>
            <date>2015-05-14 17:17:11 -0700</date>
            <delta_ts>2015-05-14 19:45:53 -0700</delta_ts>
            <desc>Patch v2 - Even better naming</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>16323</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA4NTcwNDBiLi4xYWU5Yzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAg
QEAKKzIwMTUtMDUtMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFJlbmFtZSBjb25uZWN0aW9uRGlkQ2xvc2UgYW5kIHJlbGF0ZWQgbWV0aG9kcyB0byBiZSBt
b3JlIGNsZWFyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ1MDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlc2UgbWV0aG9kcyB3ZXJlIGVhc3kgdG8gY29uZnVzZSB3aXRoICJDb25uZWN0aW9uOjpD
bGllbnQ6OmRpZENsb3NlKCkiLCB5ZXQgdGhleQorICAgICAgICB3ZXJlIGFib3V0IHNvbWV0aGlu
ZyBtdWNoIG1vcmUgZXhwbGljaXQ6IEEgY2hpbGQgcHJvY2VzcyBiZWluZyBzaHV0IGRvd24gYnkg
dGhlIFVJIFByb2Nlc3MuCisKKyAgICAgICAgTGV0J3MgY2FsbCB0aGVtIGFzIHN1Y2guCisKKyAg
ICAgICAgKiBTaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpD
aGlsZFByb2Nlc3NQcm94eTo6c2h1dGRvd25Qcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6Q2hp
bGRQcm9jZXNzUHJveHk6OmNsZWFyQ29ubmVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OkNoaWxkUHJvY2Vzc1Byb3h5Ojpjb25uZWN0aW9uRGlkQ2xvc2UpOiBEZWxldGVkLgorICAg
ICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5oOgorCisgICAgICAgICogVUlQcm9jZXNz
L0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRh
dGFiYXNlUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzU2h1dHRpbmdEb3duKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5Lmg6CisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NQcm94eTo6cHJvY2Vzc1NodXR0aW5nRG93bik6CisgICAgICAgICogVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorCisgICAgICAgICogVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1
Z2luUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzU2h1dHRpbmdEb3duKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQcm94eTo6d2ViUHJv
Y2Vzc1NodXR0aW5nRG93bik6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmRpc2Nv
bm5lY3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5Lmg6CisK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5Ojp3ZWJQcm9jZXNzU2h1dHRpbmdEb3duKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5Ojpjb25uZWN0aW9uRGlkQ2xvc2UpOiBEZWxldGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
TGlmZXRpbWVUcmFja2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0xpZmV0aW1l
VHJhY2tlcjo6d2ViUHJvY2Vzc1NodXR0aW5nRG93bik6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NMaWZldGltZVRyYWNrZXI6OmNvbm5lY3Rpb25EaWRDbG9zZSk6IERlbGV0ZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIuaDoKKworICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUHJveHk6OnByb2Nlc3NTaHV0dGluZ0Rvd24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUHJveHk6OnNodXRkb3duKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpy
ZW1vdmVXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRDbG9z
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlzY29ubmVjdEZyYW1lc0Zy
b21QYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzaG91bGRUZXJtaW5h
dGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnJlcXVlc3RUZXJtaW5hdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y29ubmVjdGlvbkRpZENsb3Nl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaXNjb25uZWN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisKIDIw
MTUtMDUtMTMgIFN1bmdtYW5uIENobyAgPHN1bmdtYW5uLmNob0BuYXZlcmNvcnAuY29tPgogCiAg
ICAgICAgIE1pbm9yIGNsZWFudXBzIHRvIFBsdWdpblByb3h5LmNwcC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCmluZGV4IGFmYjcxMmMuLjZkMTdiZmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTU5LDEz
ICsxNTksMTIgQEAgdm9pZCBDaGlsZFByb2Nlc3NQcm94eTo6YWJvcnRQcm9jZXNzTGF1bmNoSWZO
ZWVkZWQoKQogICAgIG1fcHJvY2Vzc0xhdW5jaGVyID0gbnVsbHB0cjsKIH0KIAotdm9pZCBDaGls
ZFByb2Nlc3NQcm94eTo6Y2xlYXJDb25uZWN0aW9uKCkKK3ZvaWQgQ2hpbGRQcm9jZXNzUHJveHk6
OnNodXRkb3duUHJvY2VzcygpCiB7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAgICAgIHJl
dHVybjsKIAotICAgIC8vIEZJWE1FOiBDYWxsIHRoaXMgYWZ0ZXIgdGhlIGNvbm5lY3Rpb24gaGFz
IGJlZW4gaW52YWxpZGF0ZWQuCi0gICAgY29ubmVjdGlvbkRpZENsb3NlKCptX2Nvbm5lY3Rpb24p
OworICAgIHByb2Nlc3NTaHV0dGluZ0Rvd24oKm1fY29ubmVjdGlvbik7CiAKICAgICBtX2Nvbm5l
Y3Rpb24tPmludmFsaWRhdGUoKTsKICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwpAQCAtMTc1
LDggKzE3NCw0IEBAIHZvaWQgQ2hpbGRQcm9jZXNzUHJveHk6OmNvbm5lY3Rpb25XaWxsT3BlbihJ
UEM6OkNvbm5lY3Rpb24mKQogewogfQogCi12b2lkIENoaWxkUHJvY2Vzc1Byb3h5Ojpjb25uZWN0
aW9uRGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKLXsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5oCmluZGV4IDU1ODk0
N2IuLjA0ZWEyYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nl
c3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5o
CkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKICAgICBib29sIHNlbmRNZXNzYWdlKHN0ZDo6dW5p
cXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiwgdW5zaWduZWQgbWVzc2FnZVNlbmRGbGFncyk7
CiAKIHByb3RlY3RlZDoKLSAgICB2b2lkIGNsZWFyQ29ubmVjdGlvbigpOworICAgIHZvaWQgc2h1
dGRvd25Qcm9jZXNzKCk7CiAgICAgdm9pZCBhYm9ydFByb2Nlc3NMYXVuY2hJZk5lZWRlZCgpOwog
CiAgICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQKQEAgLTg1LDcgKzg1LDcgQEAgcHJvdGVj
dGVkOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZ2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNz
TGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbm5lY3Rp
b25XaWxsT3BlbihJUEM6OkNvbm5lY3Rpb24mKTsKLSAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdGlv
bkRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpOworICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzU2h1
dHRpbmdEb3duKElQQzo6Q29ubmVjdGlvbiYpID0gMDsKIAogICAgIFZlY3RvcjxzdGQ6OnBhaXI8
c3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+LCB1bnNpZ25lZD4+IG1fcGVuZGlu
Z01lc3NhZ2VzOwogICAgIFJlZlB0cjxQcm9jZXNzTGF1bmNoZXI+IG1fcHJvY2Vzc0xhdW5jaGVy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RhdGFiYXNlcy9EYXRhYmFz
ZVByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0Rh
dGFiYXNlUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAyYTI4NjlmLi40NGY3MTYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJv
Y2Vzc1Byb3h5LmNwcApAQCAtNzIsNiArNzIsMTEgQEAgdm9pZCBEYXRhYmFzZVByb2Nlc3NQcm94
eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW4K
ICAgICBwbGF0Zm9ybUdldExhdW5jaE9wdGlvbnMobGF1bmNoT3B0aW9ucyk7CiB9CiAKK3ZvaWQg
RGF0YWJhc2VQcm9jZXNzUHJveHk6OnByb2Nlc3NTaHV0dGluZ0Rvd24oSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uKQoreworICAgIEFTU0VSVCh0aGlzLT5jb25uZWN0aW9uKCkgPT0gJmNvbm5l
Y3Rpb24pOworfQorCiB2b2lkIERhdGFiYXNlUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZURlY29kZXImIGRlY29k
ZXIpCiB7CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2Vz
OjpEYXRhYmFzZVByb2Nlc3NQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1By
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vz
c1Byb3h5LmgKaW5kZXggOGFkODY5ZS4uM2YwODgzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkuaApAQCAt
NTksNiArNTksNyBAQCBwcml2YXRlOgogCiAgICAgLy8gQ2hpbGRQcm9jZXNzUHJveHkKICAgICB2
aXJ0dWFsIHZvaWQgZ2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlv
bnMmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc1NodXR0aW5nRG93bihJUEM6
OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50
CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggYTBhY2Mz
NC4uODJiOTdlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTk1LDYgKzk1LDExIEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6Y29ubmVjdGlvbldpbGxPcGVuKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbikKICNlbmRpZgogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnByb2Nlc3NT
aHV0dGluZ0Rvd24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIEFTU0VSVCh0
aGlzLT5jb25uZWN0aW9uKCkgPT0gJmNvbm5lY3Rpb24pOworfQorCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihQYXNzUmVmUHRyPE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJl
cGx5PiByZXBseSkKIHsKICAgICBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5hcHBlbmQocmVw
bHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oCmluZGV4IGJkNTYwY2MuLjA4ZTViOGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAg
LTgyLDYgKzgyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBDaGlsZFByb2Nlc3NQcm94eQogICAgIHZp
cnR1YWwgdm9pZCBnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9u
cyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0aW9uV2lsbE9wZW4oSVBDOjpD
b25uZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NTaHV0dGluZ0Rv
d24oSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHBsYXRmb3JtR2V0TGF1
bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKTsKICAgICB2b2lkIG5l
dHdvcmtQcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVuY2goKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCmluZGV4
IDEwMDU5MjYuLjE2MWM1M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcApAQCAtODIsNiArODIsMTEgQEAgdm9p
ZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpM
YXVuY2hPcHRpb25zJiBsYXVuY2gKICAgICBwbGF0Zm9ybUdldExhdW5jaE9wdGlvbnMobGF1bmNo
T3B0aW9ucywgbV9wbHVnaW5Qcm9jZXNzQXR0cmlidXRlcyk7CiB9CiAKK3ZvaWQgUGx1Z2luUHJv
Y2Vzc1Byb3h5Ojpwcm9jZXNzU2h1dHRpbmdEb3duKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
bikKK3sKKyAgICBBU1NFUlQodGhpcy0+Y29ubmVjdGlvbigpID09ICZjb25uZWN0aW9uKTsKK30K
KwogLy8gQXNrcyB0aGUgcGx1Zy1pbiBwcm9jZXNzIHRvIGNyZWF0ZSBhIG5ldyBjb25uZWN0aW9u
IHRvIGEgd2ViIHByb2Nlc3MuIFRoZSBjb25uZWN0aW9uIGlkZW50aWZpZXIgd2lsbCBiZSAKIC8v
IGVuY29kZWQgaW4gdGhlIGdpdmVuIGFyZ3VtZW50IGVuY29kZXIgYW5kIHNlbnQgYmFjayB0byB0
aGUgY29ubmVjdGlvbiBvZiB0aGUgZ2l2ZW4gd2ViIHByb2Nlc3MuCiB2b2lkIFBsdWdpblByb2Nl
c3NQcm94eTo6Z2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24oUGFzc1JlZlB0cjxNZXNzYWdlczo6
V2ViUHJvY2Vzc1Byb3h5OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5
PiByZXBseSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5LmgKaW5kZXggNDVmZWVkZC4uNTIyMTAxMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKQEAg
LTExMSw2ICsxMTEsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGdldExhdW5jaE9w
dGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBwbGF0Zm9ybUdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25z
JiwgY29uc3QgUGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJv
Y2Vzc1NodXR0aW5nRG93bihJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKIAogICAgIHZvaWQg
cGx1Z2luUHJvY2Vzc0NyYXNoZWRPckZhaWxlZFRvTGF1bmNoKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAppbmRleCA3YjdkYWMyLi5lNWNkZDkwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCkBAIC01NSw3ICs1NSw3
IEBAIFdlYkZyYW1lUHJveHk6On5XZWJGcmFtZVByb3h5KCkKICAgICBXZWJQcm9jZXNzUG9vbDo6
c3RhdGlzdGljcygpLndrRnJhbWVDb3VudC0tOwogfQogCi12b2lkIFdlYkZyYW1lUHJveHk6OmRp
c2Nvbm5lY3QoKQordm9pZCBXZWJGcmFtZVByb3h5Ojp3ZWJQcm9jZXNzU2h1dHRpbmdEb3duKCkK
IHsKICAgICBtX3BhZ2UgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViRnJhbWVQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJv
eHkuaAppbmRleCA0NTFiNmZhLi43NzNhNzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5LmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogICAgIHVpbnQ2NF90IGZy
YW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KICAgICBXZWJQYWdlUHJveHkqIHBh
Z2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2U7IH0KIAotICAgIHZvaWQgZGlzY29ubmVjdCgpOwor
ICAgIHZvaWQgd2ViUHJvY2Vzc1NodXR0aW5nRG93bigpOwogCiAgICAgYm9vbCBpc01haW5GcmFt
ZSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmlu
ZGV4IDA1ODk0YzUuLmRhYTRhZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC0zNTE2LDExICszNTE2LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbm5l
Y3Rpb25XaWxsT3BlbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiAgICAgbV93ZWJQcm9j
ZXNzTGlmZXRpbWVUcmFja2VyLmNvbm5lY3Rpb25XaWxsT3Blbihjb25uZWN0aW9uKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OmNvbm5lY3Rpb25EaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24pCit2b2lkIFdlYlBhZ2VQcm94eTo6d2ViUHJvY2Vzc1NodXR0aW5nRG93bigpCiB7
Ci0gICAgQVNTRVJUX1VOVVNFRChjb25uZWN0aW9uLCAmY29ubmVjdGlvbiA9PSBtX3Byb2Nlc3Mt
PmNvbm5lY3Rpb24oKSk7Ci0KLSAgICBtX3dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIuY29ubmVj
dGlvbkRpZENsb3NlKGNvbm5lY3Rpb24pOworICAgIG1fd2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tl
ci53ZWJQcm9jZXNzU2h1dHRpbmdEb3duKCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpwcm9j
ZXNzRGlkRmluaXNoTGF1bmNoaW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCA4OTk5ODczLi5iZThmNzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCkBAIC05NjMsNyArOTYzLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ2Fu
Y2VsQ2hlY2tpbmdUZXh0KHVpbnQ2NF90IHJlcXVlc3RJRCk7CiAKICAgICB2b2lkIGNvbm5lY3Rp
b25XaWxsT3BlbihJUEM6OkNvbm5lY3Rpb24mKTsKLSAgICB2b2lkIGNvbm5lY3Rpb25EaWRDbG9z
ZShJUEM6OkNvbm5lY3Rpb24mKTsKKyAgICB2b2lkIHdlYlByb2Nlc3NTaHV0dGluZ0Rvd24oKTsK
IAogICAgIHZvaWQgcHJvY2Vzc0RpZEZpbmlzaExhdW5jaGluZygpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5jcHAKaW5k
ZXggYTJlYmZlZi4uNmVjOTg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmNwcApAQCAtNjAsNyArNjAsNyBAQCB2b2lk
IFdlYlByb2Nlc3NMaWZldGltZVRyYWNrZXI6OmNvbm5lY3Rpb25XaWxsT3BlbihJUEM6OkNvbm5l
Y3Rpb24mKQogICAgICAgICBvYnNlcnZlci0+YWRkV2ViUGFnZShtX3dlYlBhZ2VQcm94eSk7CiB9
CiAKLXZvaWQgV2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlcjo6Y29ubmVjdGlvbkRpZENsb3NlKElQ
Qzo6Q29ubmVjdGlvbiYpCit2b2lkIFdlYlByb2Nlc3NMaWZldGltZVRyYWNrZXI6OndlYlByb2Nl
c3NTaHV0dGluZ0Rvd24oKQogewogICAgIEFTU0VSVChwcm9jZXNzSXNSdW5uaW5nKCkpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc0xpZmV0aW1lVHJh
Y2tlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NMaWZldGltZVRyYWNr
ZXIuaAppbmRleCA3NDQ1MjA2Li5hMGM1ZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmgKQEAgLTQ1LDcgKzQ1LDcgQEAg
cHVibGljOgogICAgIHZvaWQgYWRkT2JzZXJ2ZXIoV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIm
KTsKIAogICAgIHZvaWQgY29ubmVjdGlvbldpbGxPcGVuKElQQzo6Q29ubmVjdGlvbiYpOwotICAg
IHZvaWQgY29ubmVjdGlvbkRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpOworICAgIHZvaWQgd2Vi
UHJvY2Vzc1NodXR0aW5nRG93bigpOwogCiAgICAgdm9pZCBwYWdlV2FzSW52YWxpZGF0ZWQoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA5
YTgxY2Y3Li5mMGM0YzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcApAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpjb25u
ZWN0aW9uV2lsbE9wZW4oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogICAgICAgICBwYWdl
LT5jb25uZWN0aW9uV2lsbE9wZW4oY29ubmVjdGlvbik7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1By
b3h5Ojpjb25uZWN0aW9uRGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQordm9p
ZCBXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NTaHV0dGluZ0Rvd24oSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uKQogewogICAgIEFTU0VSVCh0aGlzLT5jb25uZWN0aW9uKCkgPT0gJmNvbm5lY3Rp
b24pOwogCkBAIC0xNjQsMTQgKzE2NCwxNCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y29ubmVj
dGlvbkRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKICAgICBtX3BlbmRpbmdE
ZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnNDYWxsYmFja3MuY2xlYXIoKTsKIAogICAgIGZvciAo
YXV0byYgcGFnZSA6IG1fcGFnZU1hcC52YWx1ZXMoKSkKLSAgICAgICAgcGFnZS0+Y29ubmVjdGlv
bkRpZENsb3NlKGNvbm5lY3Rpb24pOworICAgICAgICBwYWdlLT53ZWJQcm9jZXNzU2h1dHRpbmdE
b3duKCk7CiAKICAgICByZWxlYXNlUmVtYWluaW5nSWNvbnNGb3JQYWdlVVJMcygpOwogfQogCi12
b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlzY29ubmVjdCgpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6
c2h1dGRvd24oKQogewotICAgIGNsZWFyQ29ubmVjdGlvbigpOworICAgIHNodXRkb3duUHJvY2Vz
cygpOwogCiAgICAgaWYgKG1fd2ViQ29ubmVjdGlvbikgewogICAgICAgICBtX3dlYkNvbm5lY3Rp
b24tPmludmFsaWRhdGUoKTsKQEAgLTE4NSw3ICsxODUsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94
eTo6ZGlzY29ubmVjdCgpCiAgICAgY29weVZhbHVlc1RvVmVjdG9yKG1fZnJhbWVNYXAsIGZyYW1l
cyk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IGZyYW1lcy5zaXplKCk7IGkgPCBz
aXplOyArK2kpCi0gICAgICAgIGZyYW1lc1tpXS0+ZGlzY29ubmVjdCgpOworICAgICAgICBmcmFt
ZXNbaV0tPndlYlByb2Nlc3NTaHV0dGluZ0Rvd24oKTsKICAgICBtX2ZyYW1lTWFwLmNsZWFyKCk7
CiAKICAgICBpZiAobV9kb3dubG9hZFByb3h5TWFwKQpAQCAtMjQ5LDEzICsyNDksMTMgQEAgdm9p
ZCBXZWJQcm9jZXNzUHJveHk6OnJlbW92ZVdlYlBhZ2UodWludDY0X3QgcGFnZUlEKQogCiAjaWYg
UExBVEZPUk0oSU9TKQogICAgIGlmIChzdGF0ZSgpID09IFN0YXRlOjpSdW5uaW5nKSB7Ci0gICAg
ICAgIC8vIE9uIGlPUyBkZXBsb3kgYSB3YXRjaGRvZyBpbiB0aGUgVUkgcHJvY2Vzcywgc2luY2Ug
dGhlIGNvbnRlbnQgbWF5IGJlIHN1c3BlbmRlZC4KLSAgICAgICAgLy8gMzBzIHNob3VsZCBiZSBz
dWZmaWNpZW50IGZvciBhbnkgb3V0c3RhbmRpbmcgYWN0aXZpdHkgdG8gY29tcGxldGUgY2xlYW5s
eS4KKyAgICAgICAgLy8gT24gaU9TIGRlcGxveSBhIHdhdGNoZG9nIGluIHRoZSBVSSBwcm9jZXNz
LCBzaW5jZSB0aGUgY2hpbGQgcHJvY2VzcyBtYXkgYmUgc3VzcGVuZGVkLgorICAgICAgICAvLyBJ
ZiAzMHMgaXMgaW5zdWZmaWNpZW50IGZvciBhbnkgb3V0c3RhbmRpbmcgYWN0aXZpdHkgdG8gY29t
cGxldGUgY2xlYW5seSwgdGhlbiBpdCB3aWxsIGJlIGtpbGxlZC4KICAgICAgICAgY29ubmVjdGlv
bigpLT50ZXJtaW5hdGVTb29uKDMwKTsKICAgICB9CiAjZW5kaWYKIAotICAgIGRpc2Nvbm5lY3Qo
KTsKKyAgICBzaHV0ZG93bigpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6YWRkVmlzaXRl
ZExpbmtQcm92aWRlcihWaXNpdGVkTGlua1Byb3ZpZGVyJiBwcm92aWRlcikKQEAgLTUyNyw3ICs1
MjcsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikK
ICAgICBWZWN0b3I8UmVmUHRyPFdlYlBhZ2VQcm94eT4+IHBhZ2VzOwogICAgIGNvcHlWYWx1ZXNU
b1ZlY3RvcihtX3BhZ2VNYXAsIHBhZ2VzKTsKIAotICAgIGRpc2Nvbm5lY3QoKTsKKyAgICBzaHV0
ZG93bigpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDAsIHNpemUgPSBwYWdlcy5zaXplKCk7IGkg
PCBzaXplOyArK2kpCiAgICAgICAgIHBhZ2VzW2ldLT5wcm9jZXNzRGlkQ3Jhc2goKTsKQEAgLTYy
OCw3ICs2MjgsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlzY29ubmVjdEZyYW1lc0Zyb21Q
YWdlKFdlYlBhZ2VQcm94eSogcGFnZSkKICAgICBjb3B5VmFsdWVzVG9WZWN0b3IobV9mcmFtZU1h
cCwgZnJhbWVzKTsKICAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IGZyYW1lcy5zaXplKCk7
IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgaWYgKGZyYW1lc1tpXS0+cGFnZSgpID09IHBhZ2Up
Ci0gICAgICAgICAgICBmcmFtZXNbaV0tPmRpc2Nvbm5lY3QoKTsKKyAgICAgICAgICAgIGZyYW1l
c1tpXS0+d2ViUHJvY2Vzc1NodXR0aW5nRG93bigpOwogICAgIH0KIH0KIApAQCAtNjYzLDggKzY2
Myw4IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzaG91bGRUZXJtaW5hdGUoYm9vbCYgc2hvdWxk
VGVybWluYXRlKQogewogICAgIHNob3VsZFRlcm1pbmF0ZSA9IGNhblRlcm1pbmF0ZUNoaWxkUHJv
Y2VzcygpOwogICAgIGlmIChzaG91bGRUZXJtaW5hdGUpIHsKLSAgICAgICAgLy8gV2Uga25vdyB0
aGF0IHRoZSB3ZWIgcHJvY2VzcyBpcyBnb2luZyB0byB0ZXJtaW5hdGUgc28gZGlzY29ubmVjdCBp
dCBmcm9tIHRoZSBwcm9jZXNzIHBvb2wuCi0gICAgICAgIGRpc2Nvbm5lY3QoKTsKKyAgICAgICAg
Ly8gV2Uga25vdyB0aGF0IHRoZSB3ZWIgcHJvY2VzcyBpcyBnb2luZyB0byB0ZXJtaW5hdGUgc28g
c3RhcnQgc2h1dHRpbmcgaXQgZG93biBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgc2h1dGRv
d24oKTsKICAgICB9CiB9CiAKQEAgLTc2NSw3ICs3NjUsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94
eTo6cmVxdWVzdFRlcm1pbmF0aW9uKCkKICAgICBpZiAod2ViQ29ubmVjdGlvbigpKQogICAgICAg
ICB3ZWJDb25uZWN0aW9uKCktPmRpZENsb3NlKCk7CiAKLSAgICBkaXNjb25uZWN0KCk7CisgICAg
c2h1dGRvd24oKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmVuYWJsZVN1ZGRlblRlcm1p
bmF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRl
eCBhYmQzOWIwLi4wZGJiYzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCkBAIC0xNTcsMTEgKzE1NywxMSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYpIG92ZXJy
aWRlOwogICAgIHZvaWQgcGxhdGZvcm1HZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6
TGF1bmNoT3B0aW9ucyYpOwogICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0aW9uV2lsbE9wZW4oSVBD
OjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbm5lY3Rpb25EaWRD
bG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vz
c1NodXR0aW5nRG93bihJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKIAogICAgIC8vIENhbGxl
ZCB3aGVuIHRoZSB3ZWIgcHJvY2VzcyBoYXMgY3Jhc2hlZCBvciB3ZSBrbm93IHRoYXQgaXQgd2ls
bCB0ZXJtaW5hdGUgc29vbi4KICAgICAvLyBXaWxsIHBvdGVudGlhbGx5IGNhdXNlIHRoZSBXZWJQ
cm9jZXNzUHJveHkgb2JqZWN0IHRvIGJlIGZyZWVkLgotICAgIHZvaWQgZGlzY29ubmVjdCgpOwor
ICAgIHZvaWQgc2h1dGRvd24oKTsKIAogICAgIC8vIElQQyBtZXNzYWdlIGhhbmRsZXJzLgogICAg
IHZvaWQgYWRkQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgdWludDY0X3QgcGFnZUlE
LCBjb25zdCBQYWdlU3RhdGUmKTsK
</data>
<flag name="review"
          id="278024"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>