<?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>127415</bug_id>
          
          <creation_ts>2014-01-22 01:19:56 -0800</creation_ts>
          <short_desc>PDFPlugin: Use PDFPlugin even if there&apos;s an external plugin installed, if it&apos;s blocked</short_desc>
          <delta_ts>2014-01-27 16:03:39 -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>PDF</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>gordon_sheridan</cc>
    
    <cc>jberlin</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>970621</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-22 01:19:56 -0800</bug_when>
    <thetext>If there is an external PDF plugin but it&apos;s blocked, we should still load in PDFPlugin, with a context menu option to perform the equivalent of the unavailable plugin button (thus allowing the client to unblock the plugin).

&lt;rdar://problem/12482452&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970623</commentid>
    <comment_count>1</comment_count>
      <attachid>221837</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-22 01:36:39 -0800</bug_when>
    <thetext>Created attachment 221837
patch

I hate adding more things to findPlugin and pluginLoadPolicy but it is the most straightforward way to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970625</commentid>
    <comment_count>2</comment_count>
      <attachid>221839</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-22 01:43:05 -0800</bug_when>
    <thetext>Created attachment 221839
rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971134</commentid>
    <comment_count>3</comment_count>
      <attachid>221839</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-01-23 07:47:33 -0800</bug_when>
    <thetext>Comment on attachment 221839
rebase

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

&gt; Source/WebKit2/UIProcess/API/C/WKPageLoaderClient.h:396
&gt; +    // Version 4.
&gt; +    WKPageWebGLLoadPolicyCallback                                       webGLLoadPolicy;
&gt; +
&gt; +    // Version 5.
&gt; +    WKPagePluginLoadPolicyCallback                                      pluginLoadPolicy;

I&apos;m not clear if we need to rev for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971241</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-23 11:08:32 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 221839 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=221839&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKPageLoaderClient.h:396
&gt; &gt; +    // Version 4.
&gt; &gt; +    WKPageWebGLLoadPolicyCallback                                       webGLLoadPolicy;
&gt; &gt; +
&gt; &gt; +    // Version 5.
&gt; &gt; +    WKPagePluginLoadPolicyCallback                                      pluginLoadPolicy;
&gt; 
&gt; I&apos;m not clear if we need to rev for this.

Looks like you’re right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971248</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-23 11:27:10 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/162629</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972643</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-27 16:03:39 -0800</bug_when>
    <thetext>Part of this was reverted in https://trac.webkit.org/r162883</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221837</attachid>
            <date>2014-01-22 01:36:39 -0800</date>
            <delta_ts>2014-01-22 01:43:05 -0800</delta_ts>
            <desc>patch</desc>
            <filename>pdf.diff</filename>
            <type>text/plain</type>
            <size>38862</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhN2E4YTdkLi5jYTlkNTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTQtMDEtMjIgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUERGUGx1Z2luOiBVc2UgUERGUGx1Z2luIGV2ZW4gaWYgdGhlcmUncyBhbiBleHRl
cm5hbCBwbHVnaW4gaW5zdGFsbGVkLCBpZiBpdCdzIGJsb2NrZWQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzQxNQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTI0ODI0NTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6CisgICAgICAgICog
V2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjp1c2VCbG9ja2VkUGx1Z0luQ29udGV4dE1lbnVUaXRsZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oOgorICAgICAgICBBZGQgYSBsb2Nh
bGl6YWJsZSBzdHJpbmcgZm9yIHRoZSBnZW5lcmljIGNhc2UsIHdoZXJlIHRoZSBjbGllbnQKKyAg
ICAgICAgZGlkbid0IHByb3ZpZGUgYSBtb3JlIHNwZWNpZmljIHN0cmluZyBmb3IgdGhlIGNvbnRl
eHQgbWVudSBpdGVtLgorCiAyMDE0LTAxLTIxICBKYWUgSHl1biBQYXJrICA8amFlLnBhcmtAY29t
cGFueTEwMC5uZXQ+CiAKICAgICAgICAgVXNlIG51bGxwdHIgaW4gSFRNTENhbnZhc0VsZW1lbnQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3Ry
aW5ncyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwpp
bmRleCA1MDBjOTQxLi5mN2VhMzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNo
Lmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKKysrIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5s
cHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCkBAIC05ODUsMyArOTg1LDUgQEAKIC8qIGFjY2Vzc2li
aWxpdHkgbGFiZWwgZm9yIHZpZGVvIGVsZW1lbnQgY29udHJvbGxlciAqLwogInZpZGVvIHBsYXli
YWNrIiA9ICJ2aWRlbyBwbGF5YmFjayI7CiAKKy8qIHRpdGxlIG9mIHRoZSBjb250ZXh0IG1lbnUg
aXRlbSB0byBzaG93IHdoZW4gUERGUGx1Z2luIHdhcyB1c2VkIGluc3RlYWQgb2YgYSBibG9ja2Vk
IHBsdWdpbiAqLworIlNob3cgaW4gYmxvY2tlZCBwbHVnLWluIiA9ICJTaG93IGluIGJsb2NrZWQg
cGx1Zy1pbiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDhiYTYzOGUuLjgxNDM0MmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCkBAIC0yMDc4LDYgKzIwNzgsNyBAQCBfX1pON1dlYkNvcmUzMWNvbnRl
eHRNZW51SXRlbVRhZ1N0YXJ0U3BlYWtpbmdFdgogX19aTjdXZWJDb3JlMzJhcHBsaWNhdGlvbklz
QU9MSW5zdGFudE1lc3NlbmdlckV2CiBfX1pON1dlYkNvcmUzMmNvbnRleHRNZW51SXRlbVRhZ0lu
c3BlY3RFbGVtZW50RXYKIF9fWk43V2ViQ29yZTMyY29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5
UGFzdGVFdgorX19aTjdXZWJDb3JlMzJ1c2VCbG9ja2VkUGx1Z0luQ29udGV4dE1lbnVUaXRsZUV2
CiBfX1pON1dlYkNvcmUzM2NvbnRleHRNZW51SXRlbVRhZ1RleHRSZXBsYWNlbWVudEV2CiBfX1pO
N1dlYkNvcmUzM3Bvc3RTY3JpcHREb2N1bWVudFR5cGVEZXNjcmlwdGlvbkV2CiBfX1pON1dlYkNv
cmUzM3NldERlZmF1bHRUaHJlYWRWaW9sYXRpb25CZWhhdmlvckVOU18yM1RocmVhZFZpb2xhdGlv
bkJlaGF2aW9yRU5TXzIwVGhyZWFkVmlvbGF0aW9uUm91bmRFCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCmluZGV4IGI4MjA3ZjkuLjgwZjIzZmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC0xMTEzLDQg
KzExMTMsOSBAQCBTdHJpbmcgc25hcHNob3R0ZWRQbHVnSW5MYWJlbFN1YnRpdGxlKCkKICAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygiQ2xpY2sgdG8gcmVzdGFydCIsICJTdWJ0aXRsZSBvZiB0aGUg
bGFiZWwgdG8gc2hvdyBvbiBhIHNuYXBzaG90dGVkIHBsdWctaW4iKTsKIH0KIAorU3RyaW5nIHVz
ZUJsb2NrZWRQbHVnSW5Db250ZXh0TWVudVRpdGxlKCkKK3sKKyAgICByZXR1cm4gZm9ybWF0TG9j
YWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIlNob3cgaW4gYmxvY2tlZCBwbHVnLWluIiwgIlRp
dGxlIG9mIHRoZSBjb250ZXh0IG1lbnUgaXRlbSB0byBzaG93IHdoZW4gUERGUGx1Z2luIHdhcyB1
c2VkIGluc3RlYWQgb2YgYSBibG9ja2VkIHBsdWdpbiIpKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCmluZGV4
IDBiMmNjZDEuLmZhZWU1NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Y2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRT
dHJpbmdzLmgKQEAgLTI2MSw2ICsyNjEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3Ry
aW5nIHNuYXBzaG90dGVkUGx1Z0luTGFiZWxUaXRsZSgpOwogICAgIFN0cmluZyBzbmFwc2hvdHRl
ZFBsdWdJbkxhYmVsU3VidGl0bGUoKTsKIAorICAgIFN0cmluZyB1c2VCbG9ja2VkUGx1Z0luQ29u
dGV4dE1lbnVUaXRsZSgpOworCiAjZGVmaW5lIFdFQl9VSV9TVFJJTkcoc3RyaW5nLCBkZXNjcmlw
dGlvbikgV2ViQ29yZTo6bG9jYWxpemVkU3RyaW5nKHN0cmluZykKICNkZWZpbmUgV0VCX1VJX1NU
UklOR19LRVkoc3RyaW5nLCBrZXksIGRlc2NyaXB0aW9uKSBXZWJDb3JlOjpsb2NhbGl6ZWRTdHJp
bmcoa2V5KQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzRmZTA2YS4uMjczNzFiNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDY4IEBACisyMDE0LTAxLTIyICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgorCisgICAgICAgIFBERlBsdWdpbjogVXNlIFBERlBsdWdpbiBldmVuIGlmIHRoZXJl
J3MgYW4gZXh0ZXJuYWwgcGx1Z2luIGluc3RhbGxlZCwgaWYgaXQncyBibG9ja2VkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc0MTUKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzEyNDgyNDUyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFsbG93IHVzZSBvZiBQREZQbHVnaW4gZXZlbiBpZiBhbiBleHRl
cm5hbCBwbHVnaW4gaXMgaW5zdGFsbGVkIGJ1dCBibG9ja2VkLgorICAgICAgICBJZiBhbiBleHRl
cm5hbCBwbHVnaW4gaXMgaW5zdGFsbGVkIGFuZCBub3QgYmxvY2tlZCwgd2Ugd2lsbCBjb250aW51
ZSB0byB1c2UgdGhhdC4KKworICAgICAgICBJbmplY3QgYSBjb250ZXh0IG1lbnUgaXRlbSBpbnRv
IHRoZSBQREZQbHVnaW4gY29udGV4dCBtZW51IHRoYXQgYWxsb3dzIHRoZSBjbGllbnQKKyAgICAg
ICAgdG8gdW5ibG9jayB0aGUgcGx1Z2luIGFuZCByZWxvYWQgdGhlIHBhZ2UgKHZpYSB0aGUgc2Ft
ZSBtZWNoYW5pc20gdGhhdCB0aGUKKyAgICAgICAgdW5hdmFpbGFibGUgcGx1Z2luIGJ1dHRvbiB1
c2VzKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VMb2FkZXJDbGllbnQuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ci5tbToKKyAgICAgICAgKHNldFVwUGFnZUxvYWRlckNsaWVudCk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlckNsaWVu
dDo6cGx1Z2luTG9hZFBvbGljeSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVu
dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmZpbmRQbHVnaW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
OgorICAgICAgICBBZGQgYSBWNSBQYWdlTG9hZGVyQ2xpZW50IHdpdGggYSBuZXcgUGx1Z2luTG9h
ZFBvbGljeSBjYWxsYmFjayB3aXRoCisgICAgICAgIHlldCBhbm90aGVyIHN0cmluZyBvdXQtYXJn
dW1lbnQsIHRvIGFsbG93IGNsaWVudHMgdG8gY3VzdG9taXplIHRoZSBzdHJpbmcKKyAgICAgICAg
dGhhdCB3aWxsIGFwcGVhciBpbiB0aGUgUERGUGx1Z2luIGNvbnRleHQgbWVudSB3aGVuIGl0IGlz
IHVzZWQgaW4gcGxhY2UKKyAgICAgICAgb2YgYSBibG9ja2VkIHBsdWdpbi4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmg6CisgICAgICAgIEFkZCBzZXRVc2Vk
SW5QbGFjZU9mQmxvY2tlZFBsdWdpbigpLCB3aGljaCBkZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90
CisgICAgICAgIHdlIHNob3VsZCBpbmNsdWRlIGFuIGl0ZW0gaW4gdGhlIFBERlBsdWdpbiBjb250
ZXh0IG1lbnUgdGhhdCBhY3RzIGlkZW50aWNhbGx5CisgICAgICAgIHRvIHRoZSB1bmF2YWlsYWJs
ZSBwbHVnaW4gYnV0dG9uLCBhbGxvd2luZyB0aGUgY2xpZW50IHRvIHBvdGVudGlhbGx5IHVuYmxv
Y2sKKyAgICAgICAgdGhlIHBsdWdpbi4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luLm1tOgorICAgICAgICAoLVtXS1BERlBsdWdpbkNvbnRleHRNZW51VGFyZ2V0
IGluaXRXaXRoUERGUGx1Z2luOldlYktpdDo6XSk6CisgICAgICAgICgtW1dLUERGUGx1Z2luQ29u
dGV4dE1lbnVUYXJnZXQgdXNlQmxvY2tlZFBsdWdpbjpdKToKKyAgICAgICAgQWRkZWQgV0tQREZQ
bHVnaW5Db250ZXh0TWVudVRhcmdldCwgd2hpY2ggaXMgdGhlIE9iamVjdGl2ZS1DIG9iamVjdCB0
aGF0IHRoZQorICAgICAgICBhZm9yZW1lbnRpb25lZCBjb250ZXh0IG1lbnUgaXRlbSB0YXJnZXRz
LgorCisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6UERGUGx1Z2luKToKKyAgICAgICAgQnkg
ZGVmYXVsdCwgd2Ugd29uJ3Qgc2hvdyB0aGUgZXh0cmEgY29udGV4dCBtZW51IGl0ZW0uCisKKyAg
ICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpoYW5kbGVDb250ZXh0TWVudUV2ZW50KToKKyAgICAg
ICAgSWYgd2Ugd2VyZSB1c2VkIGluIHBsYWNlIG9mIGEgYmxvY2tlZCBwbHVnaW4sIGluamVjdCBv
dXIgYWRkaXRpb25hbCBjb250ZXh0CisgICAgICAgIG1lbnUgaXRlbSBpbnRvIHRoZSBtZW51LiBJ
ZiB3ZSB3ZXJlIGhhbmRlZCBhIGN1c3RvbSBzdHJpbmcgdmlhIHNldFVzZWRJblBsYWNlT2ZCbG9j
a2VkUGx1Z2luLAorICAgICAgICB1c2UgdGhhdC4gT3RoZXJ3aXNlLCB1c2UgdGhlIGdlbmVyaWMg
c3RyaW5nIGZyb20gV2ViQ29yZSdzIGxvY2FsaXplZCBzdHJpbmdzLgorCisgICAgICAgIChXZWJL
aXQ6OlBERlBsdWdpbjo6b3BlbldpdGhQbHVnaW4pOgorICAgICAgICBQcmV0ZW5kIHRoYXQgdGhl
IHVzZXIgY2xpY2tlZCB0aGUgdW5hdmFpbGFibGUgcGx1Z2luIGJ1dHRvbiB3aGVuIHRoZXkgY2xp
Y2sKKyAgICAgICAgdGhlIGluamVjdGVkIGNvbnRleHQgbWVudSBpdGVtLgorCisgICAgICAgIChX
ZWJLaXQ6OlBERlBsdWdpbjo6c2V0VXNlZEluUGxhY2VPZkJsb2NrZWRQbHVnaW4pOgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpjcmVhdGVQbHVnaW4pOgorICAgICAgICBJZiB3ZSBlbmQgdXAgd2l0aCBhIGJsb2Nr
ZWQgcGx1Z2luLCBidXQgY291bGQgaGF2ZSB1c2VkIFBERlBsdWdpbiB0byBkaXNwbGF5CisgICAg
ICAgIHRoZSBjb250ZW50LCBkbyBzbyBpbnN0ZWFkIG9mIHNob3dpbmcgdGhlIHVuYXZhaWxhYmxl
IHBsdWdpbiBpbmRpY2F0b3IuCisKKyAgICAgICAgUGFzcyBQREZQbHVnaW4gdGhlIGN1c3RvbSBj
b250ZXh0IG1lbnUgaXRlbSB0aXRsZSBhY3F1aXJlZCBmcm9tIHRoZSBjbGllbnQuCisKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6Y2FuUGx1Z2luSGFuZGxlUmVzcG9uc2UpOgorCiAyMDE0LTAx
LTIxICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4
IDMyLWJpdCBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VMb2FkZXJDbGllbnQuaAppbmRleCA3NTFmZDA0Li5hMzFkMzA1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlTG9hZGVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUxvYWRlckNsaWVudC5oCkBAIC03
MSw3ICs3MSw3IEBAIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZENoYW5nZUJhY2tGb3J3YXJkTGlz
dENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tCYWNrRm9yCiB0eXBlZGVmIGJvb2wgKCpXS1Bh
Z2VTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwg
V0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW0sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwog
dHlwZWRlZiB2b2lkICgqV0tQYWdlV2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtQ2FsbGJhY2sp
KFdLUGFnZVJlZiBwYWdlLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSwgV0tUeXBlUmVm
IHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFn
ZURpZExheW91dENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tMYXlvdXRNaWxlc3RvbmVzIG1p
bGVzdG9uZXMsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Ci10
eXBlZGVmIFdLUGx1Z2luTG9hZFBvbGljeSAoKldLUGFnZVBsdWdpbkxvYWRQb2xpY3lDYWxsYmFj
aykoV0tQYWdlUmVmIHBhZ2UsIFdLUGx1Z2luTG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9hZFBv
bGljeSwgV0tEaWN0aW9uYXJ5UmVmIHBsdWdpbkluZm9EaWN0aW9uYXJ5LCBXS1N0cmluZ1JlZiog
dW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBl
ZGVmIFdLUGx1Z2luTG9hZFBvbGljeSAoKldLUGFnZVBsdWdpbkxvYWRQb2xpY3lDYWxsYmFjayko
V0tQYWdlUmVmIHBhZ2UsIFdLUGx1Z2luTG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9hZFBvbGlj
eSwgV0tEaWN0aW9uYXJ5UmVmIHBsdWdpbkluZm9EaWN0aW9uYXJ5LCBXS1N0cmluZ1JlZiogdW5h
dmFpbGFiaWxpdHlEZXNjcmlwdGlvbiwgV0tTdHJpbmdSZWYqIHVzZUJsb2NrZWRQbHVnaW5UaXRs
ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VQbHVnaW5E
aWRGYWlsQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0Vycm9yQ29kZSBlcnJvckNvZGUsIFdL
RGljdGlvbmFyeVJlZiBwbHVnaW5JbmZvRGljdGlvbmFyeSwgY29uc3Qgdm9pZCogY2xpZW50SW5m
byk7CiB0eXBlZGVmIFdLV2ViR0xMb2FkUG9saWN5ICgqV0tQYWdlV2ViR0xMb2FkUG9saWN5Q2Fs
bGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiB1cmwsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pOwogCkBAIC03OSw2ICs3OSw3IEBAIHR5cGVkZWYgV0tXZWJHTExvYWRQb2xpY3kgKCpX
S1BhZ2VXZWJHTExvYWRQb2xpY3lDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyCiB0eXBl
ZGVmIHZvaWQgKCpXS1BhZ2VEaWRGYWlsVG9Jbml0aWFsaXplUGx1Z2luQ2FsbGJhY2tfZGVwcmVj
YXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1pbWVUeXBlLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVBsdWdpbkRpZEZh
aWxDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxKShXS1BhZ2VSZWYgcGFnZSwgV0tFcnJv
ckNvZGUgZXJyb3JDb2RlLCBXS1N0cmluZ1JlZiBtaW1lVHlwZSwgV0tTdHJpbmdSZWYgcGx1Z2lu
SWRlbnRpZmllciwgV0tTdHJpbmdSZWYgcGx1Z2luVmVyc2lvbiwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CiB0eXBlZGVmIFdLUGx1Z2luTG9hZFBvbGljeSAoKldLUGFnZVBsdWdpbkxvYWRQb2xp
Y3lDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYyKShXS1BhZ2VSZWYgcGFnZSwgV0tQbHVn
aW5Mb2FkUG9saWN5IGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5LCBXS0RpY3Rpb25hcnlSZWYgcGx1
Z2luSW5mb0RpY3Rpb25hcnksIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiBXS1Bs
dWdpbkxvYWRQb2xpY3kgKCpXS1BhZ2VQbHVnaW5Mb2FkUG9saWN5Q2FsbGJhY2tfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMykoV0tQYWdlUmVmIHBhZ2UsIFdLUGx1Z2luTG9hZFBvbGljeSBjdXJyZW50
UGx1Z2luTG9hZFBvbGljeSwgV0tEaWN0aW9uYXJ5UmVmIHBsdWdpbkluZm9EaWN0aW9uYXJ5LCBX
S1N0cmluZ1JlZiogdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CiAKIHR5cGVkZWYgc3RydWN0IFdLUGFnZUxvYWRlckNsaWVudEJhc2UgewogICAgIGlu
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdmVyc2lvbjsKQEAgLTI3MSw3ICsyNzIsNyBAQCB0eXBlZGVmIHN0cnVjdCBXS1Bh
Z2VMb2FkZXJDbGllbnRWMyB7CiAgICAgV0tQYWdlUGx1Z2luRGlkRmFpbENhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHVnaW5EaWRGYWlsOwogCiAgICAg
Ly8gVmVyc2lvbiAzLgotICAgIFdLUGFnZVBsdWdpbkxvYWRQb2xpY3lDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGx1Z2luTG9hZFBvbGljeTsKKyAgICBXS1Bh
Z2VQbHVnaW5Mb2FkUG9saWN5Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMyAgICAgICAg
ICAgICAgIHBsdWdpbkxvYWRQb2xpY3lfZGVwcmVjYXRlZEZvclVzZVdpdGhWMzsKIH0gV0tQYWdl
TG9hZGVyQ2xpZW50VjM7CiAKIHR5cGVkZWYgc3RydWN0IFdLUGFnZUxvYWRlckNsaWVudFY0IHsK
QEAgLTMyNywxMiArMzI4LDc0IEBAIHR5cGVkZWYgc3RydWN0IFdLUGFnZUxvYWRlckNsaWVudFY0
IHsKICAgICBXS1BhZ2VQbHVnaW5EaWRGYWlsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBsdWdpbkRpZEZhaWw7CiAgICAgCiAgICAgLy8gVmVyc2lvbiAz
LgotICAgIFdLUGFnZVBsdWdpbkxvYWRQb2xpY3lDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGx1Z2luTG9hZFBvbGljeTsKKyAgICBXS1BhZ2VQbHVnaW5Mb2Fk
UG9saWN5Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMyAgICAgICAgICAgICAgIHBsdWdp
bkxvYWRQb2xpY3lfZGVwcmVjYXRlZEZvclVzZVdpdGhWMzsKICAgICAKLSAgICAvLyBWZXJzaW9u
IDQKKyAgICAvLyBWZXJzaW9uIDQuCiAgICAgV0tQYWdlV2ViR0xMb2FkUG9saWN5Q2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJHTExvYWRQb2xpY3k7CiB9
IFdLUGFnZUxvYWRlckNsaWVudFY0OwogCit0eXBlZGVmIHN0cnVjdCBXS1BhZ2VMb2FkZXJDbGll
bnRWNSB7CisgICAgV0tQYWdlTG9hZGVyQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBiYXNlOworCisgICAgLy8gVmVyc2lvbiAwLgorICAgIFdL
UGFnZURpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTsKKyAgICBXS1BhZ2VEaWRS
ZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZUNhbGxiYWNrICAg
IGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOworICAg
IFdLUGFnZURpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZUNhbGxiYWNrICAg
ICAgICAgICAgICAgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lOworICAg
IFdLUGFnZURpZENvbW1pdExvYWRGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGlkQ29tbWl0TG9hZEZvckZyYW1lOworICAgIFdLUGFnZURpZEZpbmlzaERv
Y3VtZW50TG9hZEZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgZGlkRmlu
aXNoRG9jdW1lbnRMb2FkRm9yRnJhbWU7CisgICAgV0tQYWdlRGlkRmluaXNoTG9hZEZvckZyYW1l
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRGaW5pc2hMb2FkRm9y
RnJhbWU7CisgICAgV0tQYWdlRGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZUNhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lOworICAg
IFdLUGFnZURpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lOworICAgIFdLUGFn
ZURpZFJlY2VpdmVUaXRsZUZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWU7CisgICAgV0tQYWdlRGlkRmlyc3RMYXlvdXRG
b3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRGaXJzdExh
eW91dEZvckZyYW1lOworICAgIFdLUGFnZURpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZv
ckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0Rm9yRnJhbWU7CisgICAgV0tQYWdlRGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Q2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHk7
CisgICAgV0tQYWdlRGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICBkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWU7CisgICAg
V0tQYWdlRGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICBkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZTsKKyAgICBXS1BhZ2VDYW5B
dXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlSW5GcmFtZUNhbGxiYWNrICAgICAgICAg
IGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2VJbkZyYW1lOworICAgIFdLUGFn
ZURpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUluRnJhbWVDYWxsYmFjayAgICAgICAg
ICAgICAgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlSW5GcmFtZTsKKworICAgIC8v
IEZJWE1FOiBNb3ZlIHRvIHByb2dyZXNzIGNsaWVudC4KKyAgICBXS1BhZ2VMb2FkZXJDbGllbnRD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZFN0YXJ0
UHJvZ3Jlc3M7CisgICAgV0tQYWdlTG9hZGVyQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRDaGFuZ2VQcm9ncmVzczsKKyAgICBXS1BhZ2VM
b2FkZXJDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRpZEZpbmlzaFByb2dyZXNzOworCisgICAgLy8gRklYTUU6IFRoZXNlIHRocmVlIGZ1bmN0
aW9ucyBzaG91bGQgbm90IGJlIHBhcnQgb2YgdGhpcyBjbGllbnQuCisgICAgV0tQYWdlTG9hZGVy
Q2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlOworICAgIFdLUGFnZUxvYWRlckNsaWVudENhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RpZEJl
Y29tZVJlc3BvbnNpdmU7CisgICAgV0tQYWdlTG9hZGVyQ2xpZW50Q2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRGlkQ3Jhc2g7CisgICAgV0tQ
YWdlRGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3Q7CisgICAgV0tQYWdlU2hvdWxkR29Ub0Jh
Y2tGb3J3YXJkTGlzdEl0ZW1DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRH
b1RvQmFja0ZvcndhcmRMaXN0SXRlbTsKKyAgICBXS1BhZ2VEaWRGYWlsVG9Jbml0aWFsaXplUGx1
Z2luQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgIGRpZEZhaWxUb0luaXRpYWxp
emVQbHVnaW5fZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKworICAgIC8vIFZlcnNpb24gMS4KKyAg
ICBXS1BhZ2VEaWREZXRlY3RYU1NGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRpZERldGVjdFhTU0ZvckZyYW1lOworCisgICAgdm9pZCogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRO
ZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRfdW5hdmFpbGFibGU7CisKKyAgICBXS1BhZ2VX
aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbTsKKworICAgIFdLUGFnZUxvYWRlckNsaWVu
dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJh
Y3Rpb25PY2N1cnJlZFdoaWxlUHJvY2Vzc1VucmVzcG9uc2l2ZTsKKyAgICBXS1BhZ2VQbHVnaW5E
aWRGYWlsQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMSAgICAgICAgICAgICAgICAgIHBs
dWdpbkRpZEZhaWxfZGVwcmVjYXRlZEZvclVzZVdpdGhWMTsKKworICAgIC8vIFZlcnNpb24gMi4K
KyAgICB2b2lkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICgqZGlkUmVjZWl2ZUludGVudEZvckZyYW1lX3VuYXZhaWxhYmxlKSh2
b2lkKTsKKyAgICB2b2lkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICgqcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWVfdW5h
dmFpbGFibGUpKHZvaWQpOworCisgICAgV0tQYWdlRGlkTGF5b3V0Q2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRMYXlvdXQ7CisgICAgV0tQYWdl
UGx1Z2luTG9hZFBvbGljeUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjIgICAgICAgICAg
ICAgICBwbHVnaW5Mb2FkUG9saWN5X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjI7CisgICAgV0tQYWdl
UGx1Z2luRGlkRmFpbENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwbHVnaW5EaWRGYWlsOworCisgICAgLy8gVmVyc2lvbiAzLgorICAgIFdLUGFnZVBsdWdp
bkxvYWRQb2xpY3lDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYzICAgICAgICAgICAgICAg
cGx1Z2luTG9hZFBvbGljeV9kZXByZWNhdGVkRm9yVXNlV2l0aFYzOworICAgIAorICAgIC8vIFZl
cnNpb24gNC4KKyAgICBXS1BhZ2VXZWJHTExvYWRQb2xpY3lDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHdlYkdMTG9hZFBvbGljeTsKKworICAgIC8vIFZlcnNp
b24gNS4KKyAgICBXS1BhZ2VQbHVnaW5Mb2FkUG9saWN5Q2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBsdWdpbkxvYWRQb2xpY3k7Cit9IFdLUGFnZUxvYWRlckNs
aWVudFY1OworCiAvLyBGSVhNRTogVGhlc2Ugc2hvdWxkIGJlIGRlcHJlY2F0ZWQuCiBlbnVtIHsg
a1dLUGFnZUxvYWRlckNsaWVudEN1cnJlbnRWZXJzaW9uIFdLX0VOVU1fREVQUkVDQVRFRCgiVXNl
IGFuIGV4cGxpY2l0IHZlcnNpb24gbnVtYmVyIGluc3RlYWQiKSA9IDMgfTsKIHR5cGVkZWYgc3Ry
dWN0IFdLUGFnZUxvYWRlckNsaWVudCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1t
CmluZGV4IGYwODY2ZDUuLmM0OWMxM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVy
Lm1tCkBAIC02MDcsMTAgKzYwNywxMCBAQCBzdGF0aWMgdm9pZCBkaWRMYXlvdXQoV0tQYWdlUmVm
IHBhZ2UsIFdLTGF5b3V0TWlsZXN0b25lcyBtaWxlc3RvbmVzLCBXS1R5cGVSZWYgdQogCiBzdGF0
aWMgdm9pZCBzZXRVcFBhZ2VMb2FkZXJDbGllbnQoV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVy
ICpicm93c2luZ0NvbnRleHQsIFdlYlBhZ2VQcm94eSYgcGFnZSkKIHsKLSAgICBXS1BhZ2VMb2Fk
ZXJDbGllbnRWNCBsb2FkZXJDbGllbnQ7CisgICAgV0tQYWdlTG9hZGVyQ2xpZW50VjUgbG9hZGVy
Q2xpZW50OwogICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAwLCBzaXplb2YobG9hZGVyQ2xpZW50
KSk7CiAKLSAgICBsb2FkZXJDbGllbnQuYmFzZS52ZXJzaW9uID0gNDsKKyAgICBsb2FkZXJDbGll
bnQuYmFzZS52ZXJzaW9uID0gNTsKICAgICBsb2FkZXJDbGllbnQuYmFzZS5jbGllbnRJbmZvID0g
YnJvd3NpbmdDb250ZXh0OwogICAgIGxvYWRlckNsaWVudC5kaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lID0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTsKICAgICBsb2FkZXJD
bGllbnQuZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUg
PSBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5jcHAKaW5kZXggZTU2ZmMz
MS4uNDJiYjQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRl
ckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVu
dC5jcHAKQEAgLTMxMywyMCArMzEzLDI4IEBAIHZvaWQgV2ViTG9hZGVyQ2xpZW50OjpkaWRCbG9j
a0luc2VjdXJlUGx1Z2luVmVyc2lvbihXZWJQYWdlUHJveHkqIHBhZ2UsIEltbXV0YWJsCiAgICAg
ICAgICAgICBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCi1QbHVnaW5Nb2R1bGVMb2Fk
UG9saWN5IFdlYkxvYWRlckNsaWVudDo6cGx1Z2luTG9hZFBvbGljeShXZWJQYWdlUHJveHkqIHBh
Z2UsIFBsdWdpbk1vZHVsZUxvYWRQb2xpY3kgY3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIEltbXV0
YWJsZURpY3Rpb25hcnkqIHBsdWdpbkluZm9ybWF0aW9uLCBTdHJpbmcmIHVuYXZhaWxhYmlsaXR5
RGVzY3JpcHRpb24pCitQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IFdlYkxvYWRlckNsaWVudDo6cGx1
Z2luTG9hZFBvbGljeShXZWJQYWdlUHJveHkqIHBhZ2UsIFBsdWdpbk1vZHVsZUxvYWRQb2xpY3kg
Y3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIEltbXV0YWJsZURpY3Rpb25hcnkqIHBsdWdpbkluZm9y
bWF0aW9uLCBTdHJpbmcmIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24sIFN0cmluZyYgdXNlQmxv
Y2tlZFBsdWdpblRpdGxlKQogewogICAgIFdLU3RyaW5nUmVmIHVuYXZhaWxhYmlsaXR5RGVzY3Jp
cHRpb25PdXQgPSAwOworICAgIFdLU3RyaW5nUmVmIHVzZUJsb2NrZWRQbHVnaW5UaXRsZU91dCA9
IDA7CiAgICAgUGx1Z2luTW9kdWxlTG9hZFBvbGljeSBsb2FkUG9saWN5ID0gY3VycmVudFBsdWdp
bkxvYWRQb2xpY3k7CiAKICAgICBpZiAobV9jbGllbnQucGx1Z2luTG9hZFBvbGljeV9kZXByZWNh
dGVkRm9yVXNlV2l0aFYyKQogICAgICAgICBsb2FkUG9saWN5ID0gdG9QbHVnaW5Nb2R1bGVMb2Fk
UG9saWN5KG1fY2xpZW50LnBsdWdpbkxvYWRQb2xpY3lfZGVwcmVjYXRlZEZvclVzZVdpdGhWMih0
b0FQSShwYWdlKSwgdG9XS1BsdWdpbkxvYWRQb2xpY3koY3VycmVudFBsdWdpbkxvYWRQb2xpY3kp
LCB0b0FQSShwbHVnaW5JbmZvcm1hdGlvbiksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykpOwor
ICAgIGVsc2UgaWYgKG1fY2xpZW50LnBsdWdpbkxvYWRQb2xpY3lfZGVwcmVjYXRlZEZvclVzZVdp
dGhWMykKKyAgICAgICAgbG9hZFBvbGljeSA9IHRvUGx1Z2luTW9kdWxlTG9hZFBvbGljeShtX2Ns
aWVudC5wbHVnaW5Mb2FkUG9saWN5X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjModG9BUEkocGFnZSks
IHRvV0tQbHVnaW5Mb2FkUG9saWN5KGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5KSwgdG9BUEkocGx1
Z2luSW5mb3JtYXRpb24pLCAmdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbk91dCwgbV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKSk7CiAgICAgZWxzZSBpZiAobV9jbGllbnQucGx1Z2luTG9hZFBvbGlj
eSkKLSAgICAgICAgbG9hZFBvbGljeSA9IHRvUGx1Z2luTW9kdWxlTG9hZFBvbGljeShtX2NsaWVu
dC5wbHVnaW5Mb2FkUG9saWN5KHRvQVBJKHBhZ2UpLCB0b1dLUGx1Z2luTG9hZFBvbGljeShjdXJy
ZW50UGx1Z2luTG9hZFBvbGljeSksIHRvQVBJKHBsdWdpbkluZm9ybWF0aW9uKSwgJnVuYXZhaWxh
YmlsaXR5RGVzY3JpcHRpb25PdXQsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykpOworICAgICAg
ICBsb2FkUG9saWN5ID0gdG9QbHVnaW5Nb2R1bGVMb2FkUG9saWN5KG1fY2xpZW50LnBsdWdpbkxv
YWRQb2xpY3kodG9BUEkocGFnZSksIHRvV0tQbHVnaW5Mb2FkUG9saWN5KGN1cnJlbnRQbHVnaW5M
b2FkUG9saWN5KSwgdG9BUEkocGx1Z2luSW5mb3JtYXRpb24pLCAmdW5hdmFpbGFiaWxpdHlEZXNj
cmlwdGlvbk91dCwgJnVzZUJsb2NrZWRQbHVnaW5UaXRsZU91dCwgbV9jbGllbnQuYmFzZS5jbGll
bnRJbmZvKSk7CiAKICAgICBpZiAodW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbk91dCkgewogICAg
ICAgICBSZWZQdHI8QVBJOjpTdHJpbmc+IHdlYlVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24gPSBh
ZG9wdFJlZih0b0ltcGwodW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbk91dCkpOwogICAgICAgICB1
bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uID0gd2ViVW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbi0+
c3RyaW5nKCk7CiAgICAgfQorCisgICAgaWYgKHVzZUJsb2NrZWRQbHVnaW5UaXRsZU91dCkgewor
ICAgICAgICBSZWZQdHI8QVBJOjpTdHJpbmc+IHdlYlVzZUJsb2NrZWRQbHVnaW5UaXRsZSA9IGFk
b3B0UmVmKHRvSW1wbCh1c2VCbG9ja2VkUGx1Z2luVGl0bGVPdXQpKTsKKyAgICAgICAgdXNlQmxv
Y2tlZFBsdWdpblRpdGxlID0gd2ViVXNlQmxvY2tlZFBsdWdpblRpdGxlLT5zdHJpbmcoKTsKKyAg
ICB9CiAgICAgCiAgICAgcmV0dXJuIGxvYWRQb2xpY3k7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmgKaW5kZXggMDRlZjc0OS4uOGU4MzQ0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuaApAQCAtNDAsNyArNDAsNyBAQCBu
YW1lc3BhY2UgQVBJIHsKIGNsYXNzIE9iamVjdDsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50
VHJhaXRzPFdLUGFnZUxvYWRlckNsaWVudEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8
V0tQYWdlTG9hZGVyQ2xpZW50VjAsIFdLUGFnZUxvYWRlckNsaWVudFYxLCBXS1BhZ2VMb2FkZXJD
bGllbnRWMiwgV0tQYWdlTG9hZGVyQ2xpZW50VjMsIFdLUGFnZUxvYWRlckNsaWVudFY0PiBWZXJz
aW9uczsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdlTG9hZGVyQ2xpZW50VjAsIFdLUGFn
ZUxvYWRlckNsaWVudFYxLCBXS1BhZ2VMb2FkZXJDbGllbnRWMiwgV0tQYWdlTG9hZGVyQ2xpZW50
VjMsIFdLUGFnZUxvYWRlckNsaWVudFY0LCBXS1BhZ2VMb2FkZXJDbGllbnRWNT4gVmVyc2lvbnM7
CiB9OwogfQogCkBAIC05OSw3ICs5OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbGxHb1RvQmFj
a0ZvcndhcmRMaXN0SXRlbShXZWJQYWdlUHJveHkqLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiwg
QVBJOjpPYmplY3QqKTsKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotICAgIFBs
dWdpbk1vZHVsZUxvYWRQb2xpY3kgcGx1Z2luTG9hZFBvbGljeShXZWJQYWdlUHJveHkqLCBQbHVn
aW5Nb2R1bGVMb2FkUG9saWN5IGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5LCBJbW11dGFibGVEaWN0
aW9uYXJ5KiwgU3RyaW5nJiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uT3V0UGFyYW1ldGVyKTsK
KyAgICBQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IHBsdWdpbkxvYWRQb2xpY3koV2ViUGFnZVByb3h5
KiwgUGx1Z2luTW9kdWxlTG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwgSW1tdXRh
YmxlRGljdGlvbmFyeSosIFN0cmluZyYgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiwgU3RyaW5n
JiB1c2VCbG9ja2VkUGx1Z2luVGl0bGUpOwogICAgIHZvaWQgZGlkRmFpbFRvSW5pdGlhbGl6ZVBs
dWdpbihXZWJQYWdlUHJveHkqLCBJbW11dGFibGVEaWN0aW9uYXJ5Kik7CiAgICAgdm9pZCBkaWRC
bG9ja0luc2VjdXJlUGx1Z2luVmVyc2lvbihXZWJQYWdlUHJveHkqLCBJbW11dGFibGVEaWN0aW9u
YXJ5Kik7CiAjZW5kaWYgLy8gRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGQyM2RmMjcuLjFhOTQ1M2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMzExLDcgKzEz
MTEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlS2V5Ym9hcmRFdmVudChjb25zdCBOYXRp
dmVXZWJLZXlib2FyZEV2ZW50JiBldmVudCkKIH0KIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVH
SU5fQVBJKQotdm9pZCBXZWJQYWdlUHJveHk6OmZpbmRQbHVnaW4oY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSwgdWludDMyX3QgcHJvY2Vzc1R5cGUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25z
dCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBhZ2VVUkxTdHJpbmcsIGJv
b2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zLCB1aW50NjRfdCYgcGx1Z2luUHJvY2Vzc1Rv
a2VuLCBTdHJpbmcmIG5ld01pbWVUeXBlLCB1aW50MzJfdCYgcGx1Z2luTG9hZFBvbGljeSwgU3Ry
aW5nJiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uKQordm9pZCBXZWJQYWdlUHJveHk6OmZpbmRQ
bHVnaW4oY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgdWludDMyX3QgcHJvY2Vzc1R5cGUsIGNvbnN0
IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHBhZ2VVUkxTdHJpbmcsIGJvb2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zLCB1
aW50NjRfdCYgcGx1Z2luUHJvY2Vzc1Rva2VuLCBTdHJpbmcmIG5ld01pbWVUeXBlLCB1aW50MzJf
dCYgcGx1Z2luTG9hZFBvbGljeSwgU3RyaW5nJiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uLCBT
dHJpbmcmIHVzZUJsb2NrZWRQbHVnaW5UaXRsZSkKIHsKICAgICBNRVNTQUdFX0NIRUNLX1VSTCh1
cmxTdHJpbmcpOwogCkBAIC0xMzI5LDExICsxMzI5LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpm
aW5kUGx1Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHVpbnQzMl90IHByb2Nlc3NUeXBlLCBj
b25zCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgUmVmUHRyPEltbXV0YWJsZURpY3Rpb25hcnk+
IHBsdWdpbkluZm9ybWF0aW9uID0gY3JlYXRlUGx1Z2luSW5mb3JtYXRpb25EaWN0aW9uYXJ5KHBs
dWdpbiwgZnJhbWVVUkxTdHJpbmcsIFN0cmluZygpLCBwYWdlVVJMU3RyaW5nLCBTdHJpbmcoKSwg
U3RyaW5nKCkpOwotICAgIHBsdWdpbkxvYWRQb2xpY3kgPSBtX2xvYWRlckNsaWVudC5wbHVnaW5M
b2FkUG9saWN5KHRoaXMsIHN0YXRpY19jYXN0PFBsdWdpbk1vZHVsZUxvYWRQb2xpY3k+KHBsdWdp
bkxvYWRQb2xpY3kpLCBwbHVnaW5JbmZvcm1hdGlvbi5nZXQoKSwgdW5hdmFpbGFiaWxpdHlEZXNj
cmlwdGlvbik7CisgICAgcGx1Z2luTG9hZFBvbGljeSA9IG1fbG9hZGVyQ2xpZW50LnBsdWdpbkxv
YWRQb2xpY3kodGhpcywgc3RhdGljX2Nhc3Q8UGx1Z2luTW9kdWxlTG9hZFBvbGljeT4ocGx1Z2lu
TG9hZFBvbGljeSksIHBsdWdpbkluZm9ybWF0aW9uLmdldCgpLCB1bmF2YWlsYWJpbGl0eURlc2Ny
aXB0aW9uLCB1c2VCbG9ja2VkUGx1Z2luVGl0bGUpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
ZnJhbWVVUkxTdHJpbmcpOwogICAgIFVOVVNFRF9QQVJBTShwYWdlVVJMU3RyaW5nKTsKICAgICBV
TlVTRURfUEFSQU0odW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbik7CisgICAgVU5VU0VEX1BBUkFN
KHVzZUJsb2NrZWRQbHVnaW5UaXRsZSk7CiAjZW5kaWYKIAogICAgIFBsdWdpblByb2Nlc3NTYW5k
Ym94UG9saWN5IHBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5ID0gUGx1Z2luUHJvY2Vzc1NhbmRi
b3hQb2xpY3lOb3JtYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5k
ZXggNzI0MGRjMi4uMTEyZDZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtMTE1Nyw3ICsxMTU3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlbmRXaGVlbEV2
ZW50KGNvbnN0IFdlYldoZWVsRXZlbnQmKTsKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5f
QVBJKQotICAgIHZvaWQgZmluZFBsdWdpbihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCB1aW50MzJf
dCBwcm9jZXNzVHlwZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJh
bWVVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgcGFnZVVSTFN0cmluZywgYm9vbCBhbGxvd09ubHlB
cHBsaWNhdGlvblBsdWdpbnMsIHVpbnQ2NF90JiBwbHVnaW5Qcm9jZXNzVG9rZW4sIFN0cmluZyYg
bmV3TUlNRVR5cGUsIHVpbnQzMl90JiBwbHVnaW5Mb2FkUG9saWN5LCBTdHJpbmcmIHVuYXZhaWxh
YmlsaXR5RGVzY3JpcHRpb24pOworICAgIHZvaWQgZmluZFBsdWdpbihjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCB1aW50MzJfdCBwcm9jZXNzVHlwZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNv
bnN0IFN0cmluZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgcGFnZVVSTFN0cmluZywg
Ym9vbCBhbGxvd09ubHlBcHBsaWNhdGlvblBsdWdpbnMsIHVpbnQ2NF90JiBwbHVnaW5Qcm9jZXNz
VG9rZW4sIFN0cmluZyYgbmV3TUlNRVR5cGUsIHVpbnQzMl90JiBwbHVnaW5Mb2FkUG9saWN5LCBT
dHJpbmcmIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24sIFN0cmluZyYgdXNlQmxvY2tlZFBsdWdp
blRpdGxlKTsKICNlbmRpZgogCiAgICAgUGFnZUNsaWVudCYgbV9wYWdlQ2xpZW50OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXgg
OTcyNTUxMy4uMWZiNzViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMzUsNyArMzM1LDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZVByb3h5IHsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0g
ICAgRmluZFBsdWdpbihTdHJpbmcgbWltZVR5cGUsIHVpbnQzMl90IHByb2Nlc3NUeXBlLCBTdHJp
bmcgdXJsU3RyaW5nLCBTdHJpbmcgZnJhbWVVUkxTdHJpbmcsIFN0cmluZyBwYWdlVVJMU3RyaW5n
LCBib29sIGFsbG93T25seUFwcGxpY2F0aW9uUGx1Z2lucykgLT4gKHVpbnQ2NF90IHBsdWdpblBy
b2Nlc3NUb2tlbiwgU3RyaW5nIG5ld01JTUVUeXBlLCB1aW50MzJfdCBwbHVnaW5Mb2FkUG9saWN5
LCBTdHJpbmcgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbikKKyAgICBGaW5kUGx1Z2luKFN0cmlu
ZyBtaW1lVHlwZSwgdWludDMyX3QgcHJvY2Vzc1R5cGUsIFN0cmluZyB1cmxTdHJpbmcsIFN0cmlu
ZyBmcmFtZVVSTFN0cmluZywgU3RyaW5nIHBhZ2VVUkxTdHJpbmcsIGJvb2wgYWxsb3dPbmx5QXBw
bGljYXRpb25QbHVnaW5zKSAtPiAodWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuLCBTdHJpbmcg
bmV3TUlNRVR5cGUsIHVpbnQzMl90IHBsdWdpbkxvYWRQb2xpY3ksIFN0cmluZyB1bmF2YWlsYWJp
bGl0eURlc2NyaXB0aW9uLCBTdHJpbmcgdXNlQmxvY2tlZFBsdWdpblRpdGxlKQogI2VuZGlmCiAK
ICAgICBEaWRVcGRhdGVWaWV3U3RhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgKaW5kZXggNDc0NjQ2MS4uMGI2NjdmNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCkBA
IC00Niw4ICs0Niw5IEBAIE9CSkNfQ0xBU1MgTlNTdHJpbmc7CiBPQkpDX0NMQVNTIFBERkFubm90
YXRpb247CiBPQkpDX0NMQVNTIFBERkxheWVyQ29udHJvbGxlcjsKIE9CSkNfQ0xBU1MgUERGU2Vs
ZWN0aW9uOwotT0JKQ19DTEFTUyBXS1BERlBsdWdpbkFjY2Vzc2liaWxpdHlPYmplY3Q7CiBPQkpD
X0NMQVNTIFdLUERGTGF5ZXJDb250cm9sbGVyRGVsZWdhdGU7CitPQkpDX0NMQVNTIFdLUERGUGx1
Z2luQWNjZXNzaWJpbGl0eU9iamVjdDsKK09CSkNfQ0xBU1MgV0tQREZQbHVnaW5Db250ZXh0TWVu
dVRhcmdldDsKIAogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBEYXRhUmVmZXJlbmNlOwpAQCAtODgs
NiArODksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGlja2VkTGluayhOU1VSTCAqKTsKICAgICB2
b2lkIHNhdmVUb1BERigpOwogICAgIHZvaWQgb3BlbldpdGhOYXRpdmVBcHBsaWNhdGlvbigpOwor
ICAgIHZvaWQgb3BlbldpdGhQbHVnaW4oKTsKICAgICB2b2lkIHdyaXRlSXRlbXNUb1Bhc3RlYm9h
cmQoTlNTdHJpbmcgKnBhc3RlYm9hcmROYW1lLCBOU0FycmF5ICppdGVtcywgTlNBcnJheSAqdHlw
ZXMpOwogICAgIHZvaWQgc2hvd0RlZmluaXRpb25Gb3JBdHRyaWJ1dGVkU3RyaW5nKE5TQXR0cmli
dXRlZFN0cmluZyAqLCBDR1BvaW50KTsKICAgICB2b2lkIHBlcmZvcm1XZWJTZWFyY2goTlNTdHJp
bmcgKik7CkBAIC0xMDMsNiArMTA1LDggQEAgcHVibGljOgogICAgIAogICAgIGJvb2wgc2hvd0Nv
bnRleHRNZW51QXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogCisgICAgdm9pZCBz
ZXRVc2VkSW5QbGFjZU9mQmxvY2tlZFBsdWdpbihib29sIHZhbHVlLCBjb25zdCBTdHJpbmcmIHVz
ZUJsb2NrZWRQbHVnaW5Db250ZXh0TWVudVRpdGxlKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNp
dCBQREZQbHVnaW4oV2ViRnJhbWUqKTsKIApAQCAtMjU4LDYgKzI2Miw5IEBAIHByaXZhdGU6CiAK
ICAgICBib29sIG1faXNQb3N0U2NyaXB0OwogICAgIGJvb2wgbV9wZGZEb2N1bWVudFdhc011dGF0
ZWQ7CisgICAgYm9vbCBtX3VzZWRJblBsYWNlT2ZCbG9ja2VkUGx1Z2luOworCisgICAgU3RyaW5n
IG1fdXNlQmxvY2tlZFBsdWdpbkNvbnRleHRNZW51VGl0bGU7CiAKICAgICBXZWJDb3JlOjpJbnRT
aXplIG1fc2Nyb2xsT2Zmc2V0OwogCkBAIC0yNjgsNyArMjc1LDggQEAgcHJpdmF0ZToKICAgICBS
ZXRhaW5QdHI8Q0FMYXllcj4gbV9zY3JvbGxDb3JuZXJMYXllcjsKICAgICBSZXRhaW5QdHI8UERG
TGF5ZXJDb250cm9sbGVyPiBtX3BkZkxheWVyQ29udHJvbGxlcjsKICAgICBSZXRhaW5QdHI8V0tQ
REZQbHVnaW5BY2Nlc3NpYmlsaXR5T2JqZWN0PiBtX2FjY2Vzc2liaWxpdHlPYmplY3Q7Ci0gICAg
CisgICAgUmV0YWluUHRyPFdLUERGUGx1Z2luQ29udGV4dE1lbnVUYXJnZXQ+IG1fY29udGV4dE1l
bnVUYXJnZXQ7CisKICAgICBSZWZQdHI8UERGUGx1Z2luQW5ub3RhdGlvbj4gbV9hY3RpdmVBbm5v
dGF0aW9uOwogICAgIFJlZlB0cjxQREZQbHVnaW5QYXNzd29yZEZpZWxkPiBtX3Bhc3N3b3JkRmll
bGQ7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+IG1fYW5ub3RhdGlvbkNvbnRhaW5lcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1
Z2luLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4u
bW0KaW5kZXggYzcyNGVkZS4uN2RmNDYyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTU1LDYgKzU1LDcgQEAKICNpbXBv
cnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9BcmNoaXZlUmVz
b3VyY2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ2hyb21lLmg+CisjaW1wb3J0IDxXZWJDb3JlL0No
cm9tZUNsaWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9DdXJzb3IuaD4KICNpbXBvcnQgPFdlYkNv
cmUvRG9jdW1lbnRMb2FkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9jdXNDb250cm9sbGVyLmg+
CkBAIC02NSw2ICs2Niw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9IVE1MRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MRm9y
bUVsZW1lbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvSFRNTFBsdWdJbkVsZW1lbnQuaD4KICNpbXBv
cnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Nb3VzZUV2
ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KQEAgLTI2OSw2ICsyNzEsMzcgQEAgc3Rh
dGljIGNvbnN0IGludCBkZWZhdWx0U2Nyb2xsTWFnbml0dWRlVGhyZXNob2xkRm9yUGFnZUZsaXAg
PSAyMDsKIAogQGVuZAogCitAaW50ZXJmYWNlIFdLUERGUGx1Z2luQ29udGV4dE1lbnVUYXJnZXQg
OiBOU09iamVjdAoreworICAgIFdlYktpdDo6UERGUGx1Z2luKiBfcGRmUGx1Z2luOworfQorCitA
cHJvcGVydHkoYXNzaWduKSBXZWJLaXQ6OlBERlBsdWdpbiogcGRmUGx1Z2luOworCistIChpZClp
bml0V2l0aFBERlBsdWdpbjooV2ViS2l0OjpQREZQbHVnaW4gKilwbHVnaW47CisKK0BlbmQKKwor
QGltcGxlbWVudGF0aW9uIFdLUERGUGx1Z2luQ29udGV4dE1lbnVUYXJnZXQKKworQHN5bnRoZXNp
emUgcGRmUGx1Z2luID0gX3BkZlBsdWdpbjsKKworLSAoaWQpaW5pdFdpdGhQREZQbHVnaW46KFdl
YktpdDo6UERGUGx1Z2luICopcGx1Z2luCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0
XSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfcGRmUGx1Z2luID0gcGx1Z2luOworCisg
ICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpdXNlQmxvY2tlZFBsdWdpbjooaWQpc2VuZGVy
Cit7CisgICAgX3BkZlBsdWdpbi0+b3BlbldpdGhQbHVnaW4oKTsKK30KKworQGVuZAogCiBAaW50
ZXJmYWNlIFdLUERGUGx1Z2luU2Nyb2xsYmFyTGF5ZXIgOiBDQUxheWVyCiB7CkBAIC00OTksMTAg
KzUzMiwxMiBAQCBQREZQbHVnaW46OlBERlBsdWdpbihXZWJGcmFtZSogZnJhbWUpCiAgICAgOiBt
X2ZyYW1lKGZyYW1lKQogICAgICwgbV9pc1Bvc3RTY3JpcHQoZmFsc2UpCiAgICAgLCBtX3BkZkRv
Y3VtZW50V2FzTXV0YXRlZChmYWxzZSkKKyAgICAsIG1fdXNlZEluUGxhY2VPZkJsb2NrZWRQbHVn
aW4oZmFsc2UpCiAgICAgLCBtX2NvbnRhaW5lckxheWVyKGFkb3B0TlMoW1tDQUxheWVyIGFsbG9j
XSBpbml0XSkpCiAgICAgLCBtX2NvbnRlbnRMYXllcihhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10g
aW5pdF0pKQogICAgICwgbV9zY3JvbGxDb3JuZXJMYXllcihhZG9wdE5TKFtbV0tQREZQbHVnaW5T
Y3JvbGxiYXJMYXllciBhbGxvY10gaW5pdFdpdGhQREZQbHVnaW46dGhpc10pKQogICAgICwgbV9w
ZGZMYXllckNvbnRyb2xsZXIoYWRvcHROUyhbW3BkZkxheWVyQ29udHJvbGxlckNsYXNzKCkgYWxs
b2NdIGluaXRdKSkKKyAgICAsIG1fY29udGV4dE1lbnVUYXJnZXQoYWRvcHROUyhbW1dLUERGUGx1
Z2luQ29udGV4dE1lbnVUYXJnZXQgYWxsb2NdIGluaXRXaXRoUERGUGx1Z2luOnRoaXNdKSkKICAg
ICAsIG1fcGRmTGF5ZXJDb250cm9sbGVyRGVsZWdhdGUoYWRvcHROUyhbW1dLUERGTGF5ZXJDb250
cm9sbGVyRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoUERGUGx1Z2luOnRoaXNdKSkKIHsKICAgICBt
X3BkZkxheWVyQ29udHJvbGxlci5nZXQoKS5kZWxlZ2F0ZSA9IG1fcGRmTGF5ZXJDb250cm9sbGVy
RGVsZWdhdGUuZ2V0KCk7CkBAIC0xNDU3LDYgKzE0OTIsMTggQEAgYm9vbCBQREZQbHVnaW46Omhh
bmRsZUNvbnRleHRNZW51RXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYgZXZlbnQpCiAgICAgSW50
UG9pbnQgcG9pbnQgPSBmcmFtZVZpZXctPmNvbnRlbnRzVG9TY3JlZW4oSW50UmVjdChmcmFtZVZp
ZXctPndpbmRvd1RvQ29udGVudHMoZXZlbnQucG9zaXRpb24oKSksIEludFNpemUoKSkpLmxvY2F0
aW9uKCk7CiAgICAgCiAgICAgaWYgKE5TTWVudSAqbnNNZW51ID0gW21fcGRmTGF5ZXJDb250cm9s
bGVyLmdldCgpIG1lbnVGb3JFdmVudDpuc0V2ZW50Rm9yV2ViTW91c2VFdmVudChldmVudCldKSB7
CisgICAgICAgIGlmIChtX3VzZWRJblBsYWNlT2ZCbG9ja2VkUGx1Z2luKSB7CisgICAgICAgICAg
ICBTdHJpbmcgdGl0bGUgPSB1c2VCbG9ja2VkUGx1Z0luQ29udGV4dE1lbnVUaXRsZSgpOworCisg
ICAgICAgICAgICBpZiAoIW1fdXNlQmxvY2tlZFBsdWdpbkNvbnRleHRNZW51VGl0bGUuaXNFbXB0
eSgpKQorICAgICAgICAgICAgICAgIHRpdGxlID0gbV91c2VCbG9ja2VkUGx1Z2luQ29udGV4dE1l
bnVUaXRsZTsKKworICAgICAgICAgICAgTlNNZW51SXRlbSAqdXNlQmxvY2tlZFBsdWdpbkl0ZW0g
PSBbW1tOU01lbnVJdGVtIGFsbG9jXSBpbml0V2l0aFRpdGxlOnRpdGxlIGFjdGlvbjpAc2VsZWN0
b3IodXNlQmxvY2tlZFBsdWdpbjopIGtleUVxdWl2YWxlbnQ6QCIiXSBhdXRvcmVsZWFzZV07CisK
KyAgICAgICAgICAgIFt1c2VCbG9ja2VkUGx1Z2luSXRlbSBzZXRUYXJnZXQ6bV9jb250ZXh0TWVu
dVRhcmdldC5nZXQoKV07CisgICAgICAgICAgICBbbnNNZW51IGluc2VydEl0ZW06dXNlQmxvY2tl
ZFBsdWdpbkl0ZW0gYXRJbmRleDowXTsKKyAgICAgICAgICAgIFtuc01lbnUgaW5zZXJ0SXRlbTpb
TlNNZW51SXRlbSBzZXBhcmF0b3JJdGVtXSBhdEluZGV4OjFdOworICAgICAgICB9CiAgICAgICAg
IFdLUG9wdXBDb250ZXh0TWVudShuc01lbnUsIHBvaW50KTsKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQpAQCAtMTY0Myw2ICsxNjkwLDExIEBAIHZvaWQgUERGUGx1Z2luOjpvcGVuV2l0aE5h
dGl2ZUFwcGxpY2F0aW9uKCkKICAgICB3ZWJGcmFtZSgpLT5wYWdlKCktPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6T3BlblBERkZyb21UZW1wb3JhcnlGb2xkZXJXaXRoTmF0aXZlQXBwbGlj
YXRpb24obV90ZW1wb3JhcnlQREZVVUlEKSk7CiB9CiAKK3ZvaWQgUERGUGx1Z2luOjpvcGVuV2l0
aFBsdWdpbigpCit7CisgICAgd2ViRnJhbWUoKS0+cGFnZSgpLT5jb3JlUGFnZSgpLT5jaHJvbWUo
KS5jbGllbnQoKS51bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQocGx1Z2luVmlldygpLT5w
bHVnaW5FbGVtZW50KCksIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpJbnNlY3VyZVBsdWdpblZlcnNp
b24pOworfQorCiB2b2lkIFBERlBsdWdpbjo6d3JpdGVJdGVtc1RvUGFzdGVib2FyZChOU1N0cmlu
ZyAqcGFzdGVib2FyZE5hbWUsIE5TQXJyYXkgKml0ZW1zLCBOU0FycmF5ICp0eXBlcykKIHsKICAg
ICBWZWN0b3I8U3RyaW5nPiBwYXN0ZWJvYXJkVHlwZXM7CkBAIC0xODgzLDYgKzE5MzUsMTMgQEAg
TlNPYmplY3QgKlBERlBsdWdpbjo6YWNjZXNzaWJpbGl0eU9iamVjdCgpIGNvbnN0CiAgICAgcmV0
dXJuIG1fYWNjZXNzaWJpbGl0eU9iamVjdC5nZXQoKTsKIH0KIAorCit2b2lkIFBERlBsdWdpbjo6
c2V0VXNlZEluUGxhY2VPZkJsb2NrZWRQbHVnaW4oYm9vbCB2YWx1ZSwgY29uc3QgU3RyaW5nJiB1
c2VCbG9ja2VkUGx1Z2luQ29udGV4dE1lbnVUaXRsZSkKK3sKKyAgICBtX3VzZWRJblBsYWNlT2ZC
bG9ja2VkUGx1Z2luID0gdmFsdWU7CisgICAgbV91c2VCbG9ja2VkUGx1Z2luQ29udGV4dE1lbnVU
aXRsZSA9IHVzZUJsb2NrZWRQbHVnaW5Db250ZXh0TWVudVRpdGxlOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShQREZLSVRfUExVR0lOKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDcxNmVkYmUuLjRj
ODRjYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKQEAgLTU3MiwxNiArNTcyLDI2IEBAIFBhc3NSZWZQdHI8UGx1Z2luPiBXZWJQYWdlOjpjcmVh
dGVQbHVnaW4oV2ViRnJhbWUqIGZyYW1lLCBIVE1MUGx1Z0luRWxlbWVudCogcGx1CiAgICAgdWlu
dDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuOwogICAgIHVpbnQzMl90IHBsdWdpbkxvYWRQb2xpY3k7
CiAgICAgU3RyaW5nIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb247Ci0gICAgaWYgKCFzZW5kU3lu
YyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGaW5kUGx1Z2luKHBhcmFtZXRlcnMubWltZVR5cGUs
IHN0YXRpY19jYXN0PHVpbnQzMl90Pihwcm9jZXNzVHlwZSksIHBhcmFtZXRlcnMudXJsLnN0cmlu
ZygpLCBmcmFtZVVSTFN0cmluZywgcGFnZVVSTFN0cmluZywgYWxsb3dPbmx5QXBwbGljYXRpb25Q
bHVnaW5zKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RmluZFBsdWdpbjo6UmVwbHkocGx1Z2lu
UHJvY2Vzc1Rva2VuLCBuZXdNSU1FVHlwZSwgcGx1Z2luTG9hZFBvbGljeSwgdW5hdmFpbGFiaWxp
dHlEZXNjcmlwdGlvbikpKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KKyAgICBTdHJpbmcg
dXNlQmxvY2tlZFBsdWdpblRpdGxlOworICAgIGlmICghc2VuZFN5bmMoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RmluZFBsdWdpbihwYXJhbWV0ZXJzLm1pbWVUeXBlLCBzdGF0aWNfY2FzdDx1aW50
MzJfdD4ocHJvY2Vzc1R5cGUpLCBwYXJhbWV0ZXJzLnVybC5zdHJpbmcoKSwgZnJhbWVVUkxTdHJp
bmcsIHBhZ2VVUkxTdHJpbmcsIGFsbG93T25seUFwcGxpY2F0aW9uUGx1Z2lucyksIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkZpbmRQbHVnaW46OlJlcGx5KHBsdWdpblByb2Nlc3NUb2tlbiwgbmV3
TUlNRVR5cGUsIHBsdWdpbkxvYWRQb2xpY3ksIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24sIHVz
ZUJsb2NrZWRQbHVnaW5UaXRsZSkpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHN3
aXRjaCAoc3RhdGljX2Nhc3Q8UGx1Z2luTW9kdWxlTG9hZFBvbGljeT4ocGx1Z2luTG9hZFBvbGlj
eSkpIHsKLSAgICBjYXNlIFBsdWdpbk1vZHVsZUxvYWROb3JtYWxseToKLSAgICBjYXNlIFBsdWdp
bk1vZHVsZUxvYWRVbnNhbmRib3hlZDoKLSAgICAgICAgYnJlYWs7CisgICAgYm9vbCBpc0Jsb2Nr
ZWRQbHVnaW4gPSBzdGF0aWNfY2FzdDxQbHVnaW5Nb2R1bGVMb2FkUG9saWN5PihwbHVnaW5Mb2Fk
UG9saWN5KSA9PSBQbHVnaW5Nb2R1bGVCbG9ja2VkOwogCi0gICAgY2FzZSBQbHVnaW5Nb2R1bGVC
bG9ja2VkOgorICAgIGlmIChpc0Jsb2NrZWRQbHVnaW4gfHwgIXBsdWdpblByb2Nlc3NUb2tlbikg
eworI2lmIEVOQUJMRShQREZLSVRfUExVR0lOKQorICAgICAgICBTdHJpbmcgcGF0aCA9IHBhcmFt
ZXRlcnMudXJsLnBhdGgoKTsKKyAgICAgICAgaWYgKHNob3VsZFVzZVBERlBsdWdpbigpICYmIChN
SU1FVHlwZVJlZ2lzdHJ5Ojppc1BERk9yUG9zdFNjcmlwdE1JTUVUeXBlKHBhcmFtZXRlcnMubWlt
ZVR5cGUpIHx8IChwYXJhbWV0ZXJzLm1pbWVUeXBlLmlzRW1wdHkoKSAmJiAocGF0aC5lbmRzV2l0
aCgiLnBkZiIsIGZhbHNlKSB8fCBwYXRoLmVuZHNXaXRoKCIucHMiLCBmYWxzZSkpKSkpIHsKKyAg
ICAgICAgICAgIFJlZlB0cjxQREZQbHVnaW4+IHBkZlBsdWdpbiA9IFBERlBsdWdpbjo6Y3JlYXRl
KGZyYW1lKTsKKyAgICAgICAgICAgIHBkZlBsdWdpbi0+c2V0VXNlZEluUGxhY2VPZkJsb2NrZWRQ
bHVnaW4oaXNCbG9ja2VkUGx1Z2luLCB1c2VCbG9ja2VkUGx1Z2luVGl0bGUpOworICAgICAgICAg
ICAgcmV0dXJuIHBkZlBsdWdpbi5yZWxlYXNlKCk7CisgICAgICAgIH0KKyNlbHNlCisgICAgICAg
IFVOVVNFRF9QQVJBTShmcmFtZSk7CisjZW5kaWYKKyAgICB9CisKKyAgICBpZiAoaXNCbG9ja2Vk
UGx1Z2luKSB7CiAgICAgICAgIGJvb2wgcmVwbGFjZW1lbnRPYnNjdXJlZCA9IGZhbHNlOwogICAg
ICAgICBpZiAocGx1Z2luRWxlbWVudC0+cmVuZGVyZXIoKS0+aXNFbWJlZGRlZE9iamVjdCgpKSB7
CiAgICAgICAgICAgICBSZW5kZXJFbWJlZGRlZE9iamVjdCogcmVuZGVyT2JqZWN0ID0gdG9SZW5k
ZXJFbWJlZGRlZE9iamVjdChwbHVnaW5FbGVtZW50LT5yZW5kZXJlcigpKTsKQEAgLTU5MSwxOSAr
NjAxLDExIEBAIFBhc3NSZWZQdHI8UGx1Z2luPiBXZWJQYWdlOjpjcmVhdGVQbHVnaW4oV2ViRnJh
bWUqIGZyYW1lLCBIVE1MUGx1Z0luRWxlbWVudCogcGx1CiAgICAgICAgIH0KIAogICAgICAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEJsb2NrSW5zZWN1cmVQbHVnaW5WZXJzaW9u
KHBhcmFtZXRlcnMubWltZVR5cGUsIHBhcmFtZXRlcnMudXJsLnN0cmluZygpLCBmcmFtZVVSTFN0
cmluZywgcGFnZVVSTFN0cmluZywgcmVwbGFjZW1lbnRPYnNjdXJlZCkpOwotICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgaWYgKCFwbHVnaW5Q
cm9jZXNzVG9rZW4pIHsKLSNpZiBFTkFCTEUoUERGS0lUX1BMVUdJTikKLSAgICAgICAgU3RyaW5n
IHBhdGggPSBwYXJhbWV0ZXJzLnVybC5wYXRoKCk7Ci0gICAgICAgIGlmIChzaG91bGRVc2VQREZQ
bHVnaW4oKSAmJiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNQREZPclBvc3RTY3JpcHRNSU1FVHlwZShw
YXJhbWV0ZXJzLm1pbWVUeXBlKSB8fCAocGFyYW1ldGVycy5taW1lVHlwZS5pc0VtcHR5KCkgJiYg
KHBhdGguZW5kc1dpdGgoIi5wZGYiLCBmYWxzZSkgfHwgcGF0aC5lbmRzV2l0aCgiLnBzIiwgZmFs
c2UpKSkpKQotICAgICAgICAgICAgcmV0dXJuIFBERlBsdWdpbjo6Y3JlYXRlKGZyYW1lKTsKLSNl
bHNlCi0gICAgICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7Ci0jZW5kaWYKLSAgICAgICAgcmV0dXJu
IDA7Ci0gICAgfQorICAgIGlmICghcGx1Z2luUHJvY2Vzc1Rva2VuKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAogICAgIGJvb2wgaXNSZXN0YXJ0ZWRQcm9jZXNzID0gKHBsdWdpbkVsZW1lbnQt
PmRpc3BsYXlTdGF0ZSgpID09IEhUTUxQbHVnSW5FbGVtZW50OjpSZXN0YXJ0aW5nIHx8IHBsdWdp
bkVsZW1lbnQtPmRpc3BsYXlTdGF0ZSgpID09IEhUTUxQbHVnSW5FbGVtZW50OjpSZXN0YXJ0aW5n
V2l0aFBlbmRpbmdNb3VzZUNsaWNrKTsKICAgICByZXR1cm4gUGx1Z2luUHJveHk6OmNyZWF0ZShw
bHVnaW5Qcm9jZXNzVG9rZW4sIGlzUmVzdGFydGVkUHJvY2Vzcyk7CkBAIC0zNzM3LDcgKzM3Mzks
OCBAQCBib29sIFdlYlBhZ2U6OmNhblBsdWdpbkhhbmRsZVJlc3BvbnNlKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKQogICAgIHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbjsKICAg
ICBTdHJpbmcgbmV3TUlNRVR5cGU7CiAgICAgU3RyaW5nIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRp
b247Ci0gICAgaWYgKCFzZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGaW5kUGx1Z2lu
KHJlc3BvbnNlLm1pbWVUeXBlKCksIFBsdWdpblByb2Nlc3NUeXBlTm9ybWFsLCByZXNwb25zZS51
cmwoKS5zdHJpbmcoKSwgcmVzcG9uc2UudXJsKCkuc3RyaW5nKCksIHJlc3BvbnNlLnVybCgpLnN0
cmluZygpLCBhbGxvd09ubHlBcHBsaWNhdGlvblBsdWdpbnMpLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpGaW5kUGx1Z2luOjpSZXBseShwbHVnaW5Qcm9jZXNzVG9rZW4sIG5ld01JTUVUeXBlLCBw
bHVnaW5Mb2FkUG9saWN5LCB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uKSkpCisgICAgU3RyaW5n
IHVzZUJsb2NrZWRQbHVnaW5UaXRsZTsKKyAgICBpZiAoIXNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkZpbmRQbHVnaW4ocmVzcG9uc2UubWltZVR5cGUoKSwgUGx1Z2luUHJvY2Vzc1R5
cGVOb3JtYWwsIHJlc3BvbnNlLnVybCgpLnN0cmluZygpLCByZXNwb25zZS51cmwoKS5zdHJpbmco
KSwgcmVzcG9uc2UudXJsKCkuc3RyaW5nKCksIGFsbG93T25seUFwcGxpY2F0aW9uUGx1Z2lucyks
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZpbmRQbHVnaW46OlJlcGx5KHBsdWdpblByb2Nlc3NU
b2tlbiwgbmV3TUlNRVR5cGUsIHBsdWdpbkxvYWRQb2xpY3ksIHVuYXZhaWxhYmlsaXR5RGVzY3Jp
cHRpb24sIHVzZUJsb2NrZWRQbHVnaW5UaXRsZSkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICByZXR1cm4gcGx1Z2luTG9hZFBvbGljeSAhPSBQbHVnaW5Nb2R1bGVCbG9ja2VkICYmIHBs
dWdpblByb2Nlc3NUb2tlbjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCBkYjlhMDkxLi44ZTJiYTM5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTQtMDEtMjIgIFRp
bSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUERGUGx1Z2lu
OiBVc2UgUERGUGx1Z2luIGV2ZW4gaWYgdGhlcmUncyBhbiBleHRlcm5hbCBwbHVnaW4gaW5zdGFs
bGVkLCBpZiBpdCdzIGJsb2NrZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyNzQxNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTI0ODI0NTI+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRvcHQgdGhl
IG5ldyBwYWdlIGxvYWRlciBjbGllbnQgdmVyc2lvbi4KKworICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OnBsdWdpbkxvYWRQb2xpY3kpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaDoKKwogMjAxNC0wMS0yMSAgRGF2aWQgRmFybGVyICA8ZGZhcmxlckBhcHBsZS5jb20+
CiAKICAgICAgICAgVXBzdHJlYW0gcGFja2FnZS1yb290IGZvciBpT1MKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZjliY2E1OC4uYmI4OWY4ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTQyMiw4ICs0MjIsOCBA
QCB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMoV0tEaWN0aW9u
YXJ5UmVmIG9wdGlvbnMpCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobV9tYWlu
V2ViVmlldy0+cGFnZSgpLCAmcGFnZVVJQ2xpZW50LmJhc2UpOwogCi0gICAgV0tQYWdlTG9hZGVy
Q2xpZW50VjQgcGFnZUxvYWRlckNsaWVudCA9IHsKLSAgICAgICAgeyA0LCB0aGlzIH0sCisgICAg
V0tQYWdlTG9hZGVyQ2xpZW50VjUgcGFnZUxvYWRlckNsaWVudCA9IHsKKyAgICAgICAgeyA1LCB0
aGlzIH0sCiAgICAgICAgIDAsIC8vIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKICAg
ICAgICAgMCwgLy8gZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWUKICAgICAgICAgMCwgLy8gZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZy
YW1lCkBAIC00NTksOCArNDU5LDkgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmll
d1dpdGhPcHRpb25zKFdLRGljdGlvbmFyeVJlZiBvcHRpb25zKQogICAgICAgICAwLCAvLyBkaWRM
YXlvdXQKICAgICAgICAgMCwgLy8gcGx1Z2luTG9hZFBvbGljeV9kZXByZWNhdGVkRm9yVXNlV2l0
aFYyCiAgICAgICAgIDAsIC8vIHBsdWdpbkRpZEZhaWwKLSAgICAgICAgcGx1Z2luTG9hZFBvbGlj
eSwgLy8gcGx1Z2luTG9hZFBvbGljeQorICAgICAgICAwLCAvLyBwbHVnaW5Mb2FkUG9saWN5X2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjMKICAgICAgICAgMCwgLy8gd2ViR0xMb2FkUG9saWN5CisgICAg
ICAgIHBsdWdpbkxvYWRQb2xpY3ksIC8vIHBsdWdpbkxvYWRQb2xpY3kKICAgICB9OwogICAgIFdL
UGFnZVNldFBhZ2VMb2FkZXJDbGllbnQobV9tYWluV2ViVmlldy0+cGFnZSgpLCAmcGFnZUxvYWRl
ckNsaWVudC5iYXNlKTsKIApAQCAtMTA1NywxMiArMTA1OCwxMiBAQCB2b2lkIFRlc3RDb250cm9s
bGVyOjpwcm9jZXNzRGlkQ3Jhc2goV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCiAgICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25zdF9jYXN0PHZvaWQqPihj
bGllbnRJbmZvKSktPnByb2Nlc3NEaWRDcmFzaCgpOwogfQogCi1XS1BsdWdpbkxvYWRQb2xpY3kg
VGVzdENvbnRyb2xsZXI6OnBsdWdpbkxvYWRQb2xpY3koV0tQYWdlUmVmIHBhZ2UsIFdLUGx1Z2lu
TG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwgV0tEaWN0aW9uYXJ5UmVmIHBsdWdp
bkluZm9ybWF0aW9uLCBXS1N0cmluZ1JlZiogdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKK1dLUGx1Z2luTG9hZFBvbGljeSBUZXN0Q29udHJvbGxlcjo6
cGx1Z2luTG9hZFBvbGljeShXS1BhZ2VSZWYgcGFnZSwgV0tQbHVnaW5Mb2FkUG9saWN5IGN1cnJl
bnRQbHVnaW5Mb2FkUG9saWN5LCBXS0RpY3Rpb25hcnlSZWYgcGx1Z2luSW5mb3JtYXRpb24sIFdL
U3RyaW5nUmVmKiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uLCBXS1N0cmluZ1JlZiogdXNlQmxv
Y2tlZFBsdWdpblRpdGxlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8p
KS0+cGx1Z2luTG9hZFBvbGljeShwYWdlLCBjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwgcGx1Z2lu
SW5mb3JtYXRpb24sIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24pOworICAgIHJldHVybiBzdGF0
aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+
cGx1Z2luTG9hZFBvbGljeShwYWdlLCBjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwgcGx1Z2luSW5m
b3JtYXRpb24sIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24sIHVzZUJsb2NrZWRQbHVnaW5UaXRs
ZSk7CiB9CiAKLVdLUGx1Z2luTG9hZFBvbGljeSBUZXN0Q29udHJvbGxlcjo6cGx1Z2luTG9hZFBv
bGljeShXS1BhZ2VSZWYsIFdLUGx1Z2luTG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9hZFBvbGlj
eSwgV0tEaWN0aW9uYXJ5UmVmIHBsdWdpbkluZm9ybWF0aW9uLCBXS1N0cmluZ1JlZiogdW5hdmFp
bGFiaWxpdHlEZXNjcmlwdGlvbikKK1dLUGx1Z2luTG9hZFBvbGljeSBUZXN0Q29udHJvbGxlcjo6
cGx1Z2luTG9hZFBvbGljeShXS1BhZ2VSZWYsIFdLUGx1Z2luTG9hZFBvbGljeSBjdXJyZW50UGx1
Z2luTG9hZFBvbGljeSwgV0tEaWN0aW9uYXJ5UmVmIHBsdWdpbkluZm9ybWF0aW9uLCBXS1N0cmlu
Z1JlZiogdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiwgV0tTdHJpbmdSZWYqIHVzZUJsb2NrZWRQ
bHVnaW5UaXRsZSkKIHsKICAgICBpZiAobV9zaG91bGRCbG9ja0FsbFBsdWdpbnMpCiAgICAgICAg
IHJldHVybiBrV0tQbHVnaW5Mb2FkUG9saWN5QmxvY2tlZDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuaAppbmRleCAyMmEwYWRiLi5jMzRkMTAyIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0xNDAsOCArMTQwLDggQEAgcHJpdmF0ZToKICAg
ICBzdGF0aWMgdm9pZCBwcm9jZXNzRGlkQ3Jhc2goV0tQYWdlUmVmLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKTsKICAgICB2b2lkIHByb2Nlc3NEaWRDcmFzaCgpOwogCi0gICAgc3RhdGljIFdLUGx1
Z2luTG9hZFBvbGljeSBwbHVnaW5Mb2FkUG9saWN5KFdLUGFnZVJlZiwgV0tQbHVnaW5Mb2FkUG9s
aWN5IGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5LCBXS0RpY3Rpb25hcnlSZWYgcGx1Z2luSW5mb3Jt
YXRpb24sIFdLU3RyaW5nUmVmKiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKLSAgICBXS1BsdWdpbkxvYWRQb2xpY3kgcGx1Z2luTG9hZFBvbGljeShX
S1BhZ2VSZWYsIFdLUGx1Z2luTG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwgV0tE
aWN0aW9uYXJ5UmVmIHBsdWdpbkluZm9ybWF0aW9uLCBXS1N0cmluZ1JlZiogdW5hdmFpbGFiaWxp
dHlEZXNjcmlwdGlvbik7CisgICAgc3RhdGljIFdLUGx1Z2luTG9hZFBvbGljeSBwbHVnaW5Mb2Fk
UG9saWN5KFdLUGFnZVJlZiwgV0tQbHVnaW5Mb2FkUG9saWN5IGN1cnJlbnRQbHVnaW5Mb2FkUG9s
aWN5LCBXS0RpY3Rpb25hcnlSZWYgcGx1Z2luSW5mb3JtYXRpb24sIFdLU3RyaW5nUmVmKiB1bmF2
YWlsYWJpbGl0eURlc2NyaXB0aW9uLCBXS1N0cmluZ1JlZiogdXNlQmxvY2tlZFBsdWdpblRpdGxl
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKyAgICBXS1BsdWdpbkxvYWRQb2xpY3kgcGx1Z2lu
TG9hZFBvbGljeShXS1BhZ2VSZWYsIFdLUGx1Z2luTG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9h
ZFBvbGljeSwgV0tEaWN0aW9uYXJ5UmVmIHBsdWdpbkluZm9ybWF0aW9uLCBXS1N0cmluZ1JlZiog
dW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiwgV0tTdHJpbmdSZWYqIHVzZUJsb2NrZWRQbHVnaW5U
aXRsZSk7CiAgICAgCiAKICAgICBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdLTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYsIGNvbnN0IHZvaWQqKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221839</attachid>
            <date>2014-01-22 01:43:05 -0800</date>
            <delta_ts>2014-01-23 07:47:33 -0800</delta_ts>
            <desc>rebase</desc>
            <filename>pdf.diff</filename>
            <type>text/plain</type>
            <size>38953</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1MDM3OTkzLi4xMWU3NmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTQtMDEtMjIgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUERGUGx1Z2luOiBVc2UgUERGUGx1Z2luIGV2ZW4gaWYgdGhlcmUncyBhbiBleHRl
cm5hbCBwbHVnaW4gaW5zdGFsbGVkLCBpZiBpdCdzIGJsb2NrZWQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzQxNQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTI0ODI0NTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6CisgICAgICAgICog
V2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjp1c2VCbG9ja2VkUGx1Z0luQ29udGV4dE1lbnVUaXRsZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oOgorICAgICAgICBBZGQgYSBsb2Nh
bGl6YWJsZSBzdHJpbmcgZm9yIHRoZSBnZW5lcmljIGNhc2UsIHdoZXJlIHRoZSBjbGllbnQKKyAg
ICAgICAgZGlkbid0IHByb3ZpZGUgYSBtb3JlIHNwZWNpZmljIHN0cmluZyBmb3IgdGhlIGNvbnRl
eHQgbWVudSBpdGVtLgorCiAyMDE0LTAxLTIyICBNaWhuZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRv
YmUuY29tPgogCiAgICAgICAgIFtDU1NSZWdpb25zXSBJbmNvcnJlY3QgbGF5b3V0IG9mIGEgcmVn
aW9uIHBzZXVkbyBjaGlsZHJlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5s
cHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9M
b2NhbGl6YWJsZS5zdHJpbmdzCmluZGV4IDUwMGM5NDEuLmY3ZWEzMjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTk4NSwzICs5
ODUsNSBAQAogLyogYWNjZXNzaWJpbGl0eSBsYWJlbCBmb3IgdmlkZW8gZWxlbWVudCBjb250cm9s
bGVyICovCiAidmlkZW8gcGxheWJhY2siID0gInZpZGVvIHBsYXliYWNrIjsKIAorLyogdGl0bGUg
b2YgdGhlIGNvbnRleHQgbWVudSBpdGVtIHRvIHNob3cgd2hlbiBQREZQbHVnaW4gd2FzIHVzZWQg
aW5zdGVhZCBvZiBhIGJsb2NrZWQgcGx1Z2luICovCisiU2hvdyBpbiBibG9ja2VkIHBsdWctaW4i
ID0gIlNob3cgaW4gYmxvY2tlZCBwbHVnLWluIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggOGJh
NjM4ZS4uODE0MzQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTIwNzgsNiArMjA3OCw3IEBA
IF9fWk43V2ViQ29yZTMxY29udGV4dE1lbnVJdGVtVGFnU3RhcnRTcGVha2luZ0V2CiBfX1pON1dl
YkNvcmUzMmFwcGxpY2F0aW9uSXNBT0xJbnN0YW50TWVzc2VuZ2VyRXYKIF9fWk43V2ViQ29yZTMy
Y29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnRFdgogX19aTjdXZWJDb3JlMzJjb250ZXh0
TWVudUl0ZW1UYWdTbWFydENvcHlQYXN0ZUV2CitfX1pON1dlYkNvcmUzMnVzZUJsb2NrZWRQbHVn
SW5Db250ZXh0TWVudVRpdGxlRXYKIF9fWk43V2ViQ29yZTMzY29udGV4dE1lbnVJdGVtVGFnVGV4
dFJlcGxhY2VtZW50RXYKIF9fWk43V2ViQ29yZTMzcG9zdFNjcmlwdERvY3VtZW50VHlwZURlc2Ny
aXB0aW9uRXYKIF9fWk43V2ViQ29yZTMzc2V0RGVmYXVsdFRocmVhZFZpb2xhdGlvbkJlaGF2aW9y
RU5TXzIzVGhyZWFkVmlvbGF0aW9uQmVoYXZpb3JFTlNfMjBUaHJlYWRWaW9sYXRpb25Sb3VuZEUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggYjgy
MDdmOS4uODBmMjNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5jcHAKQEAgLTExMTMsNCArMTExMyw5IEBAIFN0cmluZyBzbmFwc2hvdHRlZFBsdWdJbkxh
YmVsU3VidGl0bGUoKQogICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDbGljayB0byByZXN0YXJ0
IiwgIlN1YnRpdGxlIG9mIHRoZSBsYWJlbCB0byBzaG93IG9uIGEgc25hcHNob3R0ZWQgcGx1Zy1p
biIpOwogfQogCitTdHJpbmcgdXNlQmxvY2tlZFBsdWdJbkNvbnRleHRNZW51VGl0bGUoKQorewor
ICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX1NUUklORygiU2hvdyBpbiBi
bG9ja2VkIHBsdWctaW4iLCAiVGl0bGUgb2YgdGhlIGNvbnRleHQgbWVudSBpdGVtIHRvIHNob3cg
d2hlbiBQREZQbHVnaW4gd2FzIHVzZWQgaW5zdGVhZCBvZiBhIGJsb2NrZWQgcGx1Z2luIikpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2Nh
bGl6ZWRTdHJpbmdzLmgKaW5kZXggMGIyY2NkMS4uZmFlZTU2MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaApAQCAtMjYxLDYgKzI2MSw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBTdHJpbmcgc25hcHNob3R0ZWRQbHVnSW5MYWJlbFRpdGxlKCk7CiAg
ICAgU3RyaW5nIHNuYXBzaG90dGVkUGx1Z0luTGFiZWxTdWJ0aXRsZSgpOwogCisgICAgU3RyaW5n
IHVzZUJsb2NrZWRQbHVnSW5Db250ZXh0TWVudVRpdGxlKCk7CisKICNkZWZpbmUgV0VCX1VJX1NU
UklORyhzdHJpbmcsIGRlc2NyaXB0aW9uKSBXZWJDb3JlOjpsb2NhbGl6ZWRTdHJpbmcoc3RyaW5n
KQogI2RlZmluZSBXRUJfVUlfU1RSSU5HX0tFWShzdHJpbmcsIGtleSwgZGVzY3JpcHRpb24pIFdl
YkNvcmU6OmxvY2FsaXplZFN0cmluZyhrZXkpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBmYmRiMThlLi4xYWU2
NTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjggQEAKKzIwMTQtMDEtMjIgIFRpbSBIb3J0b24g
IDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUERGUGx1Z2luOiBVc2UgUERG
UGx1Z2luIGV2ZW4gaWYgdGhlcmUncyBhbiBleHRlcm5hbCBwbHVnaW4gaW5zdGFsbGVkLCBpZiBp
dCdzIGJsb2NrZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNzQxNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTI0ODI0NTI+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsb3cgdXNlIG9mIFBERlBs
dWdpbiBldmVuIGlmIGFuIGV4dGVybmFsIHBsdWdpbiBpcyBpbnN0YWxsZWQgYnV0IGJsb2NrZWQu
CisgICAgICAgIElmIGFuIGV4dGVybmFsIHBsdWdpbiBpcyBpbnN0YWxsZWQgYW5kIG5vdCBibG9j
a2VkLCB3ZSB3aWxsIGNvbnRpbnVlIHRvIHVzZSB0aGF0LgorCisgICAgICAgIEluamVjdCBhIGNv
bnRleHQgbWVudSBpdGVtIGludG8gdGhlIFBERlBsdWdpbiBjb250ZXh0IG1lbnUgdGhhdCBhbGxv
d3MgdGhlIGNsaWVudAorICAgICAgICB0byB1bmJsb2NrIHRoZSBwbHVnaW4gYW5kIHJlbG9hZCB0
aGUgcGFnZSAodmlhIHRoZSBzYW1lIG1lY2hhbmlzbSB0aGF0IHRoZQorICAgICAgICB1bmF2YWls
YWJsZSBwbHVnaW4gYnV0dG9uIHVzZXMpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93
c2luZ0NvbnRleHRDb250cm9sbGVyLm1tOgorICAgICAgICAoc2V0VXBQYWdlTG9hZGVyQ2xpZW50
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViTG9hZGVyQ2xpZW50OjpwbHVnaW5Mb2FkUG9saWN5KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZmluZFBsdWdpbik6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgIEFkZCBhIFY1IFBhZ2VMb2FkZXJDbGllbnQg
d2l0aCBhIG5ldyBQbHVnaW5Mb2FkUG9saWN5IGNhbGxiYWNrIHdpdGgKKyAgICAgICAgeWV0IGFu
b3RoZXIgc3RyaW5nIG91dC1hcmd1bWVudCwgdG8gYWxsb3cgY2xpZW50cyB0byBjdXN0b21pemUg
dGhlIHN0cmluZworICAgICAgICB0aGF0IHdpbGwgYXBwZWFyIGluIHRoZSBQREZQbHVnaW4gY29u
dGV4dCBtZW51IHdoZW4gaXQgaXMgdXNlZCBpbiBwbGFjZQorICAgICAgICBvZiBhIGJsb2NrZWQg
cGx1Z2luLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaDoK
KyAgICAgICAgQWRkIHNldFVzZWRJblBsYWNlT2ZCbG9ja2VkUGx1Z2luKCksIHdoaWNoIGRldGVy
bWluZXMgd2hldGhlciBvciBub3QKKyAgICAgICAgd2Ugc2hvdWxkIGluY2x1ZGUgYW4gaXRlbSBp
biB0aGUgUERGUGx1Z2luIGNvbnRleHQgbWVudSB0aGF0IGFjdHMgaWRlbnRpY2FsbHkKKyAgICAg
ICAgdG8gdGhlIHVuYXZhaWxhYmxlIHBsdWdpbiBidXR0b24sIGFsbG93aW5nIHRoZSBjbGllbnQg
dG8gcG90ZW50aWFsbHkgdW5ibG9jaworICAgICAgICB0aGUgcGx1Z2luLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW06CisgICAgICAgICgtW1dLUERGUGx1
Z2luQ29udGV4dE1lbnVUYXJnZXQgaW5pdFdpdGhQREZQbHVnaW46V2ViS2l0OjpdKToKKyAgICAg
ICAgKC1bV0tQREZQbHVnaW5Db250ZXh0TWVudVRhcmdldCB1c2VCbG9ja2VkUGx1Z2luOl0pOgor
ICAgICAgICBBZGRlZCBXS1BERlBsdWdpbkNvbnRleHRNZW51VGFyZ2V0LCB3aGljaCBpcyB0aGUg
T2JqZWN0aXZlLUMgb2JqZWN0IHRoYXQgdGhlCisgICAgICAgIGFmb3JlbWVudGlvbmVkIGNvbnRl
eHQgbWVudSBpdGVtIHRhcmdldHMuCisKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpQREZQ
bHVnaW4pOgorICAgICAgICBCeSBkZWZhdWx0LCB3ZSB3b24ndCBzaG93IHRoZSBleHRyYSBjb250
ZXh0IG1lbnUgaXRlbS4KKworICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46OmhhbmRsZUNvbnRl
eHRNZW51RXZlbnQpOgorICAgICAgICBJZiB3ZSB3ZXJlIHVzZWQgaW4gcGxhY2Ugb2YgYSBibG9j
a2VkIHBsdWdpbiwgaW5qZWN0IG91ciBhZGRpdGlvbmFsIGNvbnRleHQKKyAgICAgICAgbWVudSBp
dGVtIGludG8gdGhlIG1lbnUuIElmIHdlIHdlcmUgaGFuZGVkIGEgY3VzdG9tIHN0cmluZyB2aWEg
c2V0VXNlZEluUGxhY2VPZkJsb2NrZWRQbHVnaW4sCisgICAgICAgIHVzZSB0aGF0LiBPdGhlcndp
c2UsIHVzZSB0aGUgZ2VuZXJpYyBzdHJpbmcgZnJvbSBXZWJDb3JlJ3MgbG9jYWxpemVkIHN0cmlu
Z3MuCisKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpvcGVuV2l0aFBsdWdpbik6CisgICAg
ICAgIFByZXRlbmQgdGhhdCB0aGUgdXNlciBjbGlja2VkIHRoZSB1bmF2YWlsYWJsZSBwbHVnaW4g
YnV0dG9uIHdoZW4gdGhleSBjbGljaworICAgICAgICB0aGUgaW5qZWN0ZWQgY29udGV4dCBtZW51
IGl0ZW0uCisKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpzZXRVc2VkSW5QbGFjZU9mQmxv
Y2tlZFBsdWdpbik6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNyZWF0ZVBsdWdpbik6CisgICAgICAgIElmIHdl
IGVuZCB1cCB3aXRoIGEgYmxvY2tlZCBwbHVnaW4sIGJ1dCBjb3VsZCBoYXZlIHVzZWQgUERGUGx1
Z2luIHRvIGRpc3BsYXkKKyAgICAgICAgdGhlIGNvbnRlbnQsIGRvIHNvIGluc3RlYWQgb2Ygc2hv
d2luZyB0aGUgdW5hdmFpbGFibGUgcGx1Z2luIGluZGljYXRvci4KKworICAgICAgICBQYXNzIFBE
RlBsdWdpbiB0aGUgY3VzdG9tIGNvbnRleHQgbWVudSBpdGVtIHRpdGxlIGFjcXVpcmVkIGZyb20g
dGhlIGNsaWVudC4KKworICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjYW5QbHVnaW5IYW5kbGVS
ZXNwb25zZSk6CisKIDIwMTQtMDEtMjIgIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNhbXN1
bmcuY29tPgogCiAgICAgICAgIFtFRkxdW1dLMl0gVXNlIHN0ZDo6ZnVuY3Rpb24gaW4gdGhlIHJl
c3Qgb2YgRUZMJ3MgV29ya1F1ZXVlIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlTG9hZGVyQ2xpZW50LmgKaW5kZXggNzUxZmQwNC4u
YTMxZDMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2VMb2FkZXJDbGllbnQuaApAQCAtNzEsNyArNzEsNyBAQCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VE
aWRDaGFuZ2VCYWNrRm9yd2FyZExpc3RDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLQmFja0Zv
cgogdHlwZWRlZiBib29sICgqV0tQYWdlU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1DYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtLCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVdpbGxHb1RvQmFja0Zv
cndhcmRMaXN0SXRlbUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tCYWNrRm9yd2FyZExpc3RJ
dGVtUmVmIGl0ZW0sIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7
CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRMYXlvdXRDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2Us
IFdLTGF5b3V0TWlsZXN0b25lcyBtaWxlc3RvbmVzLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pOwotdHlwZWRlZiBXS1BsdWdpbkxvYWRQb2xpY3kgKCpXS1BhZ2VQ
bHVnaW5Mb2FkUG9saWN5Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1BsdWdpbkxvYWRQb2xp
Y3kgY3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIFdLRGljdGlvbmFyeVJlZiBwbHVnaW5JbmZvRGlj
dGlvbmFyeSwgV0tTdHJpbmdSZWYqIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24sIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pOwordHlwZWRlZiBXS1BsdWdpbkxvYWRQb2xpY3kgKCpXS1BhZ2VQbHVn
aW5Mb2FkUG9saWN5Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1BsdWdpbkxvYWRQb2xpY3kg
Y3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIFdLRGljdGlvbmFyeVJlZiBwbHVnaW5JbmZvRGljdGlv
bmFyeSwgV0tTdHJpbmdSZWYqIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24sIFdLU3RyaW5nUmVm
KiB1c2VCbG9ja2VkUGx1Z2luVGl0bGUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRl
ZiB2b2lkICgqV0tQYWdlUGx1Z2luRGlkRmFpbENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tF
cnJvckNvZGUgZXJyb3JDb2RlLCBXS0RpY3Rpb25hcnlSZWYgcGx1Z2luSW5mb0RpY3Rpb25hcnks
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiBXS1dlYkdMTG9hZFBvbGljeSAoKldL
UGFnZVdlYkdMTG9hZFBvbGljeUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYg
dXJsLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIApAQCAtNzksNiArNzksNyBAQCB0eXBlZGVm
IFdLV2ViR0xMb2FkUG9saWN5ICgqV0tQYWdlV2ViR0xMb2FkUG9saWN5Q2FsbGJhY2spKFdLUGFn
ZVJlZiBwYWdlLCBXS1N0cgogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkRmFpbFRvSW5pdGlhbGl6
ZVBsdWdpbkNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJlZiBwYWdlLCBX
S1N0cmluZ1JlZiBtaW1lVHlwZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZv
aWQgKCpXS1BhZ2VQbHVnaW5EaWRGYWlsQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMSko
V0tQYWdlUmVmIHBhZ2UsIFdLRXJyb3JDb2RlIGVycm9yQ29kZSwgV0tTdHJpbmdSZWYgbWltZVR5
cGUsIFdLU3RyaW5nUmVmIHBsdWdpbklkZW50aWZpZXIsIFdLU3RyaW5nUmVmIHBsdWdpblZlcnNp
b24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiBXS1BsdWdpbkxvYWRQb2xpY3kg
KCpXS1BhZ2VQbHVnaW5Mb2FkUG9saWN5Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMiko
V0tQYWdlUmVmIHBhZ2UsIFdLUGx1Z2luTG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9hZFBvbGlj
eSwgV0tEaWN0aW9uYXJ5UmVmIHBsdWdpbkluZm9EaWN0aW9uYXJ5LCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKTsKK3R5cGVkZWYgV0tQbHVnaW5Mb2FkUG9saWN5ICgqV0tQYWdlUGx1Z2luTG9hZFBv
bGljeUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjMpKFdLUGFnZVJlZiBwYWdlLCBXS1Bs
dWdpbkxvYWRQb2xpY3kgY3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIFdLRGljdGlvbmFyeVJlZiBw
bHVnaW5JbmZvRGljdGlvbmFyeSwgV0tTdHJpbmdSZWYqIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRp
b24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VMb2Fk
ZXJDbGllbnRCYXNlIHsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CkBAIC0yNzEsNyArMjcyLDcg
QEAgdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlTG9hZGVyQ2xpZW50VjMgewogICAgIFdLUGFnZVBsdWdp
bkRpZEZhaWxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGx1Z2luRGlkRmFpbDsKIAogICAgIC8vIFZlcnNpb24gMy4KLSAgICBXS1BhZ2VQbHVnaW5Mb2Fk
UG9saWN5Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdp
bkxvYWRQb2xpY3k7CisgICAgV0tQYWdlUGx1Z2luTG9hZFBvbGljeUNhbGxiYWNrX2RlcHJlY2F0
ZWRGb3JVc2VXaXRoVjMgICAgICAgICAgICAgICBwbHVnaW5Mb2FkUG9saWN5X2RlcHJlY2F0ZWRG
b3JVc2VXaXRoVjM7CiB9IFdLUGFnZUxvYWRlckNsaWVudFYzOwogCiB0eXBlZGVmIHN0cnVjdCBX
S1BhZ2VMb2FkZXJDbGllbnRWNCB7CkBAIC0zMjcsMTIgKzMyOCw3NCBAQCB0eXBlZGVmIHN0cnVj
dCBXS1BhZ2VMb2FkZXJDbGllbnRWNCB7CiAgICAgV0tQYWdlUGx1Z2luRGlkRmFpbENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHVnaW5EaWRGYWlsOwog
ICAgIAogICAgIC8vIFZlcnNpb24gMy4KLSAgICBXS1BhZ2VQbHVnaW5Mb2FkUG9saWN5Q2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdpbkxvYWRQb2xpY3k7
CisgICAgV0tQYWdlUGx1Z2luTG9hZFBvbGljeUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRo
VjMgICAgICAgICAgICAgICBwbHVnaW5Mb2FkUG9saWN5X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjM7
CiAgICAgCi0gICAgLy8gVmVyc2lvbiA0CisgICAgLy8gVmVyc2lvbiA0LgogICAgIFdLUGFnZVdl
YkdMTG9hZFBvbGljeUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2ViR0xMb2FkUG9saWN5OwogfSBXS1BhZ2VMb2FkZXJDbGllbnRWNDsKIAordHlwZWRlZiBz
dHJ1Y3QgV0tQYWdlTG9hZGVyQ2xpZW50VjUgeworICAgIFdLUGFnZUxvYWRlckNsaWVudEJhc2Ug
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAg
IC8vIFZlcnNpb24gMC4KKyAgICBXS1BhZ2VEaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWU7CisgICAgV0tQYWdlRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWVDYWxsYmFjayAgICBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWRGb3JGcmFtZTsKKyAgICBXS1BhZ2VEaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVy
cm9yRm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgIGRpZEZhaWxQcm92aXNpb25hbExvYWRX
aXRoRXJyb3JGb3JGcmFtZTsKKyAgICBXS1BhZ2VEaWRDb21taXRMb2FkRm9yRnJhbWVDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENvbW1pdExvYWRGb3JGcmFtZTsK
KyAgICBXS1BhZ2VEaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lOworICAgIFdLUGFn
ZURpZEZpbmlzaExvYWRGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGlkRmluaXNoTG9hZEZvckZyYW1lOworICAgIFdLUGFnZURpZEZhaWxMb2FkV2l0aEVy
cm9yRm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkRmFpbExvYWRX
aXRoRXJyb3JGb3JGcmFtZTsKKyAgICBXS1BhZ2VEaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9y
RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRp
b25Gb3JGcmFtZTsKKyAgICBXS1BhZ2VEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZUNhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lOworICAg
IFdLUGFnZURpZEZpcnN0TGF5b3V0Rm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZTsKKyAgICBXS1BhZ2VEaWRGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgIGRpZEZp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lOworICAgIFdLUGFnZURpZFJlbW92ZUZy
YW1lRnJvbUhpZXJhcmNoeUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkUmVt
b3ZlRnJhbWVGcm9tSGllcmFyY2h5OworICAgIFdLUGFnZURpZERpc3BsYXlJbnNlY3VyZUNvbnRl
bnRGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgZGlkRGlzcGxheUluc2VjdXJl
Q29udGVudEZvckZyYW1lOworICAgIFdLUGFnZURpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1l
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9y
RnJhbWU7CisgICAgV0tQYWdlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUlu
RnJhbWVDYWxsYmFjayAgICAgICAgICBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNw
YWNlSW5GcmFtZTsKKyAgICBXS1BhZ2VEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VJ
bkZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZUluRnJhbWU7CisKKyAgICAvLyBGSVhNRTogTW92ZSB0byBwcm9ncmVzcyBjbGllbnQuCisg
ICAgV0tQYWdlTG9hZGVyQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkaWRTdGFydFByb2dyZXNzOworICAgIFdLUGFnZUxvYWRlckNsaWVudENh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdl
UHJvZ3Jlc3M7CisgICAgV0tQYWdlTG9hZGVyQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRGaW5pc2hQcm9ncmVzczsKKworICAgIC8vIEZJ
WE1FOiBUaGVzZSB0aHJlZSBmdW5jdGlvbnMgc2hvdWxkIG5vdCBiZSBwYXJ0IG9mIHRoaXMgY2xp
ZW50LgorICAgIFdLUGFnZUxvYWRlckNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZTsKKyAgICBX
S1BhZ2VMb2FkZXJDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlOworICAgIFdLUGFnZUxvYWRlckNs
aWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJv
Y2Vzc0RpZENyYXNoOworICAgIFdLUGFnZURpZENoYW5nZUJhY2tGb3J3YXJkTGlzdENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0Owor
ICAgIFdLUGFnZVNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW07CisgICAgV0tQYWdl
RGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdpbkNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAg
ICAgICBkaWRGYWlsVG9Jbml0aWFsaXplUGx1Z2luX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisK
KyAgICAvLyBWZXJzaW9uIDEuCisgICAgV0tQYWdlRGlkRGV0ZWN0WFNTRm9yRnJhbWVDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWREZXRlY3RYU1NGb3JGcmFtZTsK
KworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGlkTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0X3VuYXZh
aWxhYmxlOworCisgICAgV0tQYWdlV2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW07CisK
KyAgICBXS1BhZ2VMb2FkZXJDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludGVyYWN0aW9uT2NjdXJyZWRXaGlsZVByb2Nlc3NVbnJlc3BvbnNp
dmU7CisgICAgV0tQYWdlUGx1Z2luRGlkRmFpbENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRo
VjEgICAgICAgICAgICAgICAgICBwbHVnaW5EaWRGYWlsX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjE7
CisKKyAgICAvLyBWZXJzaW9uIDIuCisgICAgdm9pZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKmRpZFJlY2VpdmVJbnRlbnRG
b3JGcmFtZV91bmF2YWlsYWJsZSkodm9pZCk7CisgICAgdm9pZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKnJlZ2lzdGVySW50
ZW50U2VydmljZUZvckZyYW1lX3VuYXZhaWxhYmxlKSh2b2lkKTsKKworICAgIFdLUGFnZURpZExh
eW91dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGlkTGF5b3V0OworICAgIFdLUGFnZVBsdWdpbkxvYWRQb2xpY3lDYWxsYmFja19kZXByZWNhdGVk
Rm9yVXNlV2l0aFYyICAgICAgICAgICAgICAgcGx1Z2luTG9hZFBvbGljeV9kZXByZWNhdGVkRm9y
VXNlV2l0aFYyOworICAgIFdLUGFnZVBsdWdpbkRpZEZhaWxDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGx1Z2luRGlkRmFpbDsKKworICAgIC8vIFZlcnNp
b24gMy4KKyAgICBXS1BhZ2VQbHVnaW5Mb2FkUG9saWN5Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMyAgICAgICAgICAgICAgIHBsdWdpbkxvYWRQb2xpY3lfZGVwcmVjYXRlZEZvclVzZVdp
dGhWMzsKKyAgICAKKyAgICAvLyBWZXJzaW9uIDQuCisgICAgV0tQYWdlV2ViR0xMb2FkUG9saWN5
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJHTExvYWRQ
b2xpY3k7CisKKyAgICAvLyBWZXJzaW9uIDUuCisgICAgV0tQYWdlUGx1Z2luTG9hZFBvbGljeUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHVnaW5Mb2FkUG9s
aWN5OworfSBXS1BhZ2VMb2FkZXJDbGllbnRWNTsKKwogLy8gRklYTUU6IFRoZXNlIHNob3VsZCBi
ZSBkZXByZWNhdGVkLgogZW51bSB7IGtXS1BhZ2VMb2FkZXJDbGllbnRDdXJyZW50VmVyc2lvbiBX
S19FTlVNX0RFUFJFQ0FURUQoIlVzZSBhbiBleHBsaWNpdCB2ZXJzaW9uIG51bWJlciBpbnN0ZWFk
IikgPSAzIH07CiB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VMb2FkZXJDbGllbnQgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3Np
bmdDb250ZXh0Q29udHJvbGxlci5tbQppbmRleCBmMDg2NmQ1Li5jNDljMTNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQpAQCAtNjA3LDEwICs2MDcsMTAgQEAgc3RhdGljIHZv
aWQgZGlkTGF5b3V0KFdLUGFnZVJlZiBwYWdlLCBXS0xheW91dE1pbGVzdG9uZXMgbWlsZXN0b25l
cywgV0tUeXBlUmVmIHUKIAogc3RhdGljIHZvaWQgc2V0VXBQYWdlTG9hZGVyQ2xpZW50KFdLQnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250ZXh0LCBXZWJQYWdlUHJveHkmIHBh
Z2UpCiB7Ci0gICAgV0tQYWdlTG9hZGVyQ2xpZW50VjQgbG9hZGVyQ2xpZW50OworICAgIFdLUGFn
ZUxvYWRlckNsaWVudFY1IGxvYWRlckNsaWVudDsKICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwg
MCwgc2l6ZW9mKGxvYWRlckNsaWVudCkpOwogCi0gICAgbG9hZGVyQ2xpZW50LmJhc2UudmVyc2lv
biA9IDQ7CisgICAgbG9hZGVyQ2xpZW50LmJhc2UudmVyc2lvbiA9IDU7CiAgICAgbG9hZGVyQ2xp
ZW50LmJhc2UuY2xpZW50SW5mbyA9IGJyb3dzaW5nQ29udGV4dDsKICAgICBsb2FkZXJDbGllbnQu
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSA9IGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWU7CiAgICAgbG9hZGVyQ2xpZW50LmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lID0gZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJD
bGllbnQuY3BwCmluZGV4IGU1NmZjMzEuLjQyYmI0OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwCkBAIC0zMTMsMjAgKzMxMywyOCBAQCB2b2lkIFdl
YkxvYWRlckNsaWVudDo6ZGlkQmxvY2tJbnNlY3VyZVBsdWdpblZlcnNpb24oV2ViUGFnZVByb3h5
KiBwYWdlLCBJbW11dGFibAogICAgICAgICAgICAgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsK
IH0KIAotUGx1Z2luTW9kdWxlTG9hZFBvbGljeSBXZWJMb2FkZXJDbGllbnQ6OnBsdWdpbkxvYWRQ
b2xpY3koV2ViUGFnZVByb3h5KiBwYWdlLCBQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IGN1cnJlbnRQ
bHVnaW5Mb2FkUG9saWN5LCBJbW11dGFibGVEaWN0aW9uYXJ5KiBwbHVnaW5JbmZvcm1hdGlvbiwg
U3RyaW5nJiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uKQorUGx1Z2luTW9kdWxlTG9hZFBvbGlj
eSBXZWJMb2FkZXJDbGllbnQ6OnBsdWdpbkxvYWRQb2xpY3koV2ViUGFnZVByb3h5KiBwYWdlLCBQ
bHVnaW5Nb2R1bGVMb2FkUG9saWN5IGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5LCBJbW11dGFibGVE
aWN0aW9uYXJ5KiBwbHVnaW5JbmZvcm1hdGlvbiwgU3RyaW5nJiB1bmF2YWlsYWJpbGl0eURlc2Ny
aXB0aW9uLCBTdHJpbmcmIHVzZUJsb2NrZWRQbHVnaW5UaXRsZSkKIHsKICAgICBXS1N0cmluZ1Jl
ZiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uT3V0ID0gMDsKKyAgICBXS1N0cmluZ1JlZiB1c2VC
bG9ja2VkUGx1Z2luVGl0bGVPdXQgPSAwOwogICAgIFBsdWdpbk1vZHVsZUxvYWRQb2xpY3kgbG9h
ZFBvbGljeSA9IGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5OwogCiAgICAgaWYgKG1fY2xpZW50LnBs
dWdpbkxvYWRQb2xpY3lfZGVwcmVjYXRlZEZvclVzZVdpdGhWMikKICAgICAgICAgbG9hZFBvbGlj
eSA9IHRvUGx1Z2luTW9kdWxlTG9hZFBvbGljeShtX2NsaWVudC5wbHVnaW5Mb2FkUG9saWN5X2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjIodG9BUEkocGFnZSksIHRvV0tQbHVnaW5Mb2FkUG9saWN5KGN1
cnJlbnRQbHVnaW5Mb2FkUG9saWN5KSwgdG9BUEkocGx1Z2luSW5mb3JtYXRpb24pLCBtX2NsaWVu
dC5iYXNlLmNsaWVudEluZm8pKTsKKyAgICBlbHNlIGlmIChtX2NsaWVudC5wbHVnaW5Mb2FkUG9s
aWN5X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjMpCisgICAgICAgIGxvYWRQb2xpY3kgPSB0b1BsdWdp
bk1vZHVsZUxvYWRQb2xpY3kobV9jbGllbnQucGx1Z2luTG9hZFBvbGljeV9kZXByZWNhdGVkRm9y
VXNlV2l0aFYzKHRvQVBJKHBhZ2UpLCB0b1dLUGx1Z2luTG9hZFBvbGljeShjdXJyZW50UGx1Z2lu
TG9hZFBvbGljeSksIHRvQVBJKHBsdWdpbkluZm9ybWF0aW9uKSwgJnVuYXZhaWxhYmlsaXR5RGVz
Y3JpcHRpb25PdXQsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykpOwogICAgIGVsc2UgaWYgKG1f
Y2xpZW50LnBsdWdpbkxvYWRQb2xpY3kpCi0gICAgICAgIGxvYWRQb2xpY3kgPSB0b1BsdWdpbk1v
ZHVsZUxvYWRQb2xpY3kobV9jbGllbnQucGx1Z2luTG9hZFBvbGljeSh0b0FQSShwYWdlKSwgdG9X
S1BsdWdpbkxvYWRQb2xpY3koY3VycmVudFBsdWdpbkxvYWRQb2xpY3kpLCB0b0FQSShwbHVnaW5J
bmZvcm1hdGlvbiksICZ1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uT3V0LCBtX2NsaWVudC5iYXNl
LmNsaWVudEluZm8pKTsKKyAgICAgICAgbG9hZFBvbGljeSA9IHRvUGx1Z2luTW9kdWxlTG9hZFBv
bGljeShtX2NsaWVudC5wbHVnaW5Mb2FkUG9saWN5KHRvQVBJKHBhZ2UpLCB0b1dLUGx1Z2luTG9h
ZFBvbGljeShjdXJyZW50UGx1Z2luTG9hZFBvbGljeSksIHRvQVBJKHBsdWdpbkluZm9ybWF0aW9u
KSwgJnVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb25PdXQsICZ1c2VCbG9ja2VkUGx1Z2luVGl0bGVP
dXQsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykpOwogCiAgICAgaWYgKHVuYXZhaWxhYmlsaXR5
RGVzY3JpcHRpb25PdXQpIHsKICAgICAgICAgUmVmUHRyPEFQSTo6U3RyaW5nPiB3ZWJVbmF2YWls
YWJpbGl0eURlc2NyaXB0aW9uID0gYWRvcHRSZWYodG9JbXBsKHVuYXZhaWxhYmlsaXR5RGVzY3Jp
cHRpb25PdXQpKTsKICAgICAgICAgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiA9IHdlYlVuYXZh
aWxhYmlsaXR5RGVzY3JpcHRpb24tPnN0cmluZygpOwogICAgIH0KKworICAgIGlmICh1c2VCbG9j
a2VkUGx1Z2luVGl0bGVPdXQpIHsKKyAgICAgICAgUmVmUHRyPEFQSTo6U3RyaW5nPiB3ZWJVc2VC
bG9ja2VkUGx1Z2luVGl0bGUgPSBhZG9wdFJlZih0b0ltcGwodXNlQmxvY2tlZFBsdWdpblRpdGxl
T3V0KSk7CisgICAgICAgIHVzZUJsb2NrZWRQbHVnaW5UaXRsZSA9IHdlYlVzZUJsb2NrZWRQbHVn
aW5UaXRsZS0+c3RyaW5nKCk7CisgICAgfQogICAgIAogICAgIHJldHVybiBsb2FkUG9saWN5Owog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oCmluZGV4IDA0ZWY3
NDkuLjhlODM0NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2Fk
ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50
LmgKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBPYmplY3Q7CiAKIHRl
bXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VMb2FkZXJDbGllbnRCYXNlPiB7Ci0g
ICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZUxvYWRlckNsaWVudFYwLCBXS1BhZ2VMb2FkZXJD
bGllbnRWMSwgV0tQYWdlTG9hZGVyQ2xpZW50VjIsIFdLUGFnZUxvYWRlckNsaWVudFYzLCBXS1Bh
Z2VMb2FkZXJDbGllbnRWND4gVmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFn
ZUxvYWRlckNsaWVudFYwLCBXS1BhZ2VMb2FkZXJDbGllbnRWMSwgV0tQYWdlTG9hZGVyQ2xpZW50
VjIsIFdLUGFnZUxvYWRlckNsaWVudFYzLCBXS1BhZ2VMb2FkZXJDbGllbnRWNCwgV0tQYWdlTG9h
ZGVyQ2xpZW50VjU+IFZlcnNpb25zOwogfTsKIH0KIApAQCAtOTksNyArOTksNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0oV2ViUGFnZVByb3h5KiwgV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbSosIEFQSTo6T2JqZWN0Kik7CiAKICNpZiBFTkFCTEUoTkVUU0NB
UEVfUExVR0lOX0FQSSkKLSAgICBQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IHBsdWdpbkxvYWRQb2xp
Y3koV2ViUGFnZVByb3h5KiwgUGx1Z2luTW9kdWxlTG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9h
ZFBvbGljeSwgSW1tdXRhYmxlRGljdGlvbmFyeSosIFN0cmluZyYgdW5hdmFpbGFiaWxpdHlEZXNj
cmlwdGlvbk91dFBhcmFtZXRlcik7CisgICAgUGx1Z2luTW9kdWxlTG9hZFBvbGljeSBwbHVnaW5M
b2FkUG9saWN5KFdlYlBhZ2VQcm94eSosIFBsdWdpbk1vZHVsZUxvYWRQb2xpY3kgY3VycmVudFBs
dWdpbkxvYWRQb2xpY3ksIEltbXV0YWJsZURpY3Rpb25hcnkqLCBTdHJpbmcmIHVuYXZhaWxhYmls
aXR5RGVzY3JpcHRpb24sIFN0cmluZyYgdXNlQmxvY2tlZFBsdWdpblRpdGxlKTsKICAgICB2b2lk
IGRpZEZhaWxUb0luaXRpYWxpemVQbHVnaW4oV2ViUGFnZVByb3h5KiwgSW1tdXRhYmxlRGljdGlv
bmFyeSopOwogICAgIHZvaWQgZGlkQmxvY2tJbnNlY3VyZVBsdWdpblZlcnNpb24oV2ViUGFnZVBy
b3h5KiwgSW1tdXRhYmxlRGljdGlvbmFyeSopOwogI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9Q
TFVHSU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRl
eCBkMjNkZjI3Li4xYTk0NTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtMTMxMSw3ICsxMzExLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZUtl
eWJvYXJkRXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiB9CiAKICNp
ZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLXZvaWQgV2ViUGFnZVByb3h5OjpmaW5kUGx1
Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHVpbnQzMl90IHByb2Nlc3NUeXBlLCBjb25zdCBT
dHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiBmcmFtZVVSTFN0cmluZywgY29uc3QgU3Ry
aW5nJiBwYWdlVVJMU3RyaW5nLCBib29sIGFsbG93T25seUFwcGxpY2F0aW9uUGx1Z2lucywgdWlu
dDY0X3QmIHBsdWdpblByb2Nlc3NUb2tlbiwgU3RyaW5nJiBuZXdNaW1lVHlwZSwgdWludDMyX3Qm
IHBsdWdpbkxvYWRQb2xpY3ksIFN0cmluZyYgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbikKK3Zv
aWQgV2ViUGFnZVByb3h5OjpmaW5kUGx1Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHVpbnQz
Ml90IHByb2Nlc3NUeXBlLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiBm
cmFtZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwYWdlVVJMU3RyaW5nLCBib29sIGFsbG93T25s
eUFwcGxpY2F0aW9uUGx1Z2lucywgdWludDY0X3QmIHBsdWdpblByb2Nlc3NUb2tlbiwgU3RyaW5n
JiBuZXdNaW1lVHlwZSwgdWludDMyX3QmIHBsdWdpbkxvYWRQb2xpY3ksIFN0cmluZyYgdW5hdmFp
bGFiaWxpdHlEZXNjcmlwdGlvbiwgU3RyaW5nJiB1c2VCbG9ja2VkUGx1Z2luVGl0bGUpCiB7CiAg
ICAgTUVTU0FHRV9DSEVDS19VUkwodXJsU3RyaW5nKTsKIApAQCAtMTMyOSwxMSArMTMyOSwxMiBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6ZmluZFBsdWdpbihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCB1
aW50MzJfdCBwcm9jZXNzVHlwZSwgY29ucwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIFJlZlB0
cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBwbHVnaW5JbmZvcm1hdGlvbiA9IGNyZWF0ZVBsdWdpbklu
Zm9ybWF0aW9uRGljdGlvbmFyeShwbHVnaW4sIGZyYW1lVVJMU3RyaW5nLCBTdHJpbmcoKSwgcGFn
ZVVSTFN0cmluZywgU3RyaW5nKCksIFN0cmluZygpKTsKLSAgICBwbHVnaW5Mb2FkUG9saWN5ID0g
bV9sb2FkZXJDbGllbnQucGx1Z2luTG9hZFBvbGljeSh0aGlzLCBzdGF0aWNfY2FzdDxQbHVnaW5N
b2R1bGVMb2FkUG9saWN5PihwbHVnaW5Mb2FkUG9saWN5KSwgcGx1Z2luSW5mb3JtYXRpb24uZ2V0
KCksIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24pOworICAgIHBsdWdpbkxvYWRQb2xpY3kgPSBt
X2xvYWRlckNsaWVudC5wbHVnaW5Mb2FkUG9saWN5KHRoaXMsIHN0YXRpY19jYXN0PFBsdWdpbk1v
ZHVsZUxvYWRQb2xpY3k+KHBsdWdpbkxvYWRQb2xpY3kpLCBwbHVnaW5JbmZvcm1hdGlvbi5nZXQo
KSwgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiwgdXNlQmxvY2tlZFBsdWdpblRpdGxlKTsKICNl
bHNlCiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lVVJMU3RyaW5nKTsKICAgICBVTlVTRURfUEFSQU0o
cGFnZVVSTFN0cmluZyk7CiAgICAgVU5VU0VEX1BBUkFNKHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRp
b24pOworICAgIFVOVVNFRF9QQVJBTSh1c2VCbG9ja2VkUGx1Z2luVGl0bGUpOwogI2VuZGlmCiAK
ICAgICBQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeSBwbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGlj
eSA9IFBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5Tm9ybWFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDcyNDBkYzIuLjExMmQ2ZGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTExNTcsNyArMTE1Nyw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBzZW5kV2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50Jik7CiAKICNpZiBF
TkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICB2b2lkIGZpbmRQbHVnaW4oY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSwgdWludDMyX3QgcHJvY2Vzc1R5cGUsIGNvbnN0IFN0cmluZyYgdXJsU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBhZ2VVUkxT
dHJpbmcsIGJvb2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zLCB1aW50NjRfdCYgcGx1Z2lu
UHJvY2Vzc1Rva2VuLCBTdHJpbmcmIG5ld01JTUVUeXBlLCB1aW50MzJfdCYgcGx1Z2luTG9hZFBv
bGljeSwgU3RyaW5nJiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uKTsKKyAgICB2b2lkIGZpbmRQ
bHVnaW4oY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgdWludDMyX3QgcHJvY2Vzc1R5cGUsIGNvbnN0
IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHBhZ2VVUkxTdHJpbmcsIGJvb2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zLCB1
aW50NjRfdCYgcGx1Z2luUHJvY2Vzc1Rva2VuLCBTdHJpbmcmIG5ld01JTUVUeXBlLCB1aW50MzJf
dCYgcGx1Z2luTG9hZFBvbGljeSwgU3RyaW5nJiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uLCBT
dHJpbmcmIHVzZUJsb2NrZWRQbHVnaW5UaXRsZSk7CiAjZW5kaWYKIAogICAgIFBhZ2VDbGllbnQm
IG1fcGFnZUNsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDk3MjU1MTMuLjFmYjc1YmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzM1LDcgKzMz
NSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShO
RVRTQ0FQRV9QTFVHSU5fQVBJKQotICAgIEZpbmRQbHVnaW4oU3RyaW5nIG1pbWVUeXBlLCB1aW50
MzJfdCBwcm9jZXNzVHlwZSwgU3RyaW5nIHVybFN0cmluZywgU3RyaW5nIGZyYW1lVVJMU3RyaW5n
LCBTdHJpbmcgcGFnZVVSTFN0cmluZywgYm9vbCBhbGxvd09ubHlBcHBsaWNhdGlvblBsdWdpbnMp
IC0+ICh1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4sIFN0cmluZyBuZXdNSU1FVHlwZSwgdWlu
dDMyX3QgcGx1Z2luTG9hZFBvbGljeSwgU3RyaW5nIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24p
CisgICAgRmluZFBsdWdpbihTdHJpbmcgbWltZVR5cGUsIHVpbnQzMl90IHByb2Nlc3NUeXBlLCBT
dHJpbmcgdXJsU3RyaW5nLCBTdHJpbmcgZnJhbWVVUkxTdHJpbmcsIFN0cmluZyBwYWdlVVJMU3Ry
aW5nLCBib29sIGFsbG93T25seUFwcGxpY2F0aW9uUGx1Z2lucykgLT4gKHVpbnQ2NF90IHBsdWdp
blByb2Nlc3NUb2tlbiwgU3RyaW5nIG5ld01JTUVUeXBlLCB1aW50MzJfdCBwbHVnaW5Mb2FkUG9s
aWN5LCBTdHJpbmcgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiwgU3RyaW5nIHVzZUJsb2NrZWRQ
bHVnaW5UaXRsZSkKICNlbmRpZgogCiAgICAgRGlkVXBkYXRlVmlld1N0YXRlKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCmluZGV4IDQ3
NDY0NjEuLjBiNjY3ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4uaApAQCAtNDYsOCArNDYsOSBAQCBPQkpDX0NMQVNTIE5TU3RyaW5n
OwogT0JKQ19DTEFTUyBQREZBbm5vdGF0aW9uOwogT0JKQ19DTEFTUyBQREZMYXllckNvbnRyb2xs
ZXI7CiBPQkpDX0NMQVNTIFBERlNlbGVjdGlvbjsKLU9CSkNfQ0xBU1MgV0tQREZQbHVnaW5BY2Nl
c3NpYmlsaXR5T2JqZWN0OwogT0JKQ19DTEFTUyBXS1BERkxheWVyQ29udHJvbGxlckRlbGVnYXRl
OworT0JKQ19DTEFTUyBXS1BERlBsdWdpbkFjY2Vzc2liaWxpdHlPYmplY3Q7CitPQkpDX0NMQVNT
IFdLUERGUGx1Z2luQ29udGV4dE1lbnVUYXJnZXQ7CiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3Mg
RGF0YVJlZmVyZW5jZTsKQEAgLTg4LDYgKzg5LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xpY2tl
ZExpbmsoTlNVUkwgKik7CiAgICAgdm9pZCBzYXZlVG9QREYoKTsKICAgICB2b2lkIG9wZW5XaXRo
TmF0aXZlQXBwbGljYXRpb24oKTsKKyAgICB2b2lkIG9wZW5XaXRoUGx1Z2luKCk7CiAgICAgdm9p
ZCB3cml0ZUl0ZW1zVG9QYXN0ZWJvYXJkKE5TU3RyaW5nICpwYXN0ZWJvYXJkTmFtZSwgTlNBcnJh
eSAqaXRlbXMsIE5TQXJyYXkgKnR5cGVzKTsKICAgICB2b2lkIHNob3dEZWZpbml0aW9uRm9yQXR0
cmlidXRlZFN0cmluZyhOU0F0dHJpYnV0ZWRTdHJpbmcgKiwgQ0dQb2ludCk7CiAgICAgdm9pZCBw
ZXJmb3JtV2ViU2VhcmNoKE5TU3RyaW5nICopOwpAQCAtMTAzLDYgKzEwNSw4IEBAIHB1YmxpYzoK
ICAgICAKICAgICBib29sIHNob3dDb250ZXh0TWVudUF0UG9pbnQoY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmKTsKIAorICAgIHZvaWQgc2V0VXNlZEluUGxhY2VPZkJsb2NrZWRQbHVnaW4oYm9vbCB2
YWx1ZSwgY29uc3QgU3RyaW5nJiB1c2VCbG9ja2VkUGx1Z2luQ29udGV4dE1lbnVUaXRsZSk7CisK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgUERGUGx1Z2luKFdlYkZyYW1lKik7CiAKQEAgLTI1OCw2
ICsyNjIsOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2lzUG9zdFNjcmlwdDsKICAgICBib29s
IG1fcGRmRG9jdW1lbnRXYXNNdXRhdGVkOworICAgIGJvb2wgbV91c2VkSW5QbGFjZU9mQmxvY2tl
ZFBsdWdpbjsKKworICAgIFN0cmluZyBtX3VzZUJsb2NrZWRQbHVnaW5Db250ZXh0TWVudVRpdGxl
OwogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3Njcm9sbE9mZnNldDsKIApAQCAtMjY4LDcgKzI3
NSw4IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fc2Nyb2xsQ29ybmVyTGF5
ZXI7CiAgICAgUmV0YWluUHRyPFBERkxheWVyQ29udHJvbGxlcj4gbV9wZGZMYXllckNvbnRyb2xs
ZXI7CiAgICAgUmV0YWluUHRyPFdLUERGUGx1Z2luQWNjZXNzaWJpbGl0eU9iamVjdD4gbV9hY2Nl
c3NpYmlsaXR5T2JqZWN0OwotICAgIAorICAgIFJldGFpblB0cjxXS1BERlBsdWdpbkNvbnRleHRN
ZW51VGFyZ2V0PiBtX2NvbnRleHRNZW51VGFyZ2V0OworCiAgICAgUmVmUHRyPFBERlBsdWdpbkFu
bm90YXRpb24+IG1fYWN0aXZlQW5ub3RhdGlvbjsKICAgICBSZWZQdHI8UERGUGx1Z2luUGFzc3dv
cmRGaWVsZD4gbV9wYXNzd29yZEZpZWxkOwogICAgIFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiBt
X2Fubm90YXRpb25Db250YWluZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IGVjOGU1MmMuLmI5ZTlkODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBA
IC01NSw2ICs1NSw3IEBACiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KICNpbXBv
cnQgPFdlYkNvcmUvQXJjaGl2ZVJlc291cmNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Nocm9tZS5o
PgorI2ltcG9ydCA8V2ViQ29yZS9DaHJvbWVDbGllbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ3Vy
c29yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0ZvY3VzQ29udHJvbGxlci5oPgpAQCAtNjUsNiArNjYsNyBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9HcmFwaGljc0NvbnRleHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTEVsZW1lbnQuaD4KICNp
bXBvcnQgPFdlYkNvcmUvSFRNTEZvcm1FbGVtZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0hUTUxQ
bHVnSW5FbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNp
bXBvcnQgPFdlYkNvcmUvTW91c2VFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CkBA
IC0yNjksNiArMjcxLDM3IEBAIHN0YXRpYyBjb25zdCBpbnQgZGVmYXVsdFNjcm9sbE1hZ25pdHVk
ZVRocmVzaG9sZEZvclBhZ2VGbGlwID0gMjA7CiAKIEBlbmQKIAorQGludGVyZmFjZSBXS1BERlBs
dWdpbkNvbnRleHRNZW51VGFyZ2V0IDogTlNPYmplY3QKK3sKKyAgICBXZWJLaXQ6OlBERlBsdWdp
biogX3BkZlBsdWdpbjsKK30KKworQHByb3BlcnR5KGFzc2lnbikgV2ViS2l0OjpQREZQbHVnaW4q
IHBkZlBsdWdpbjsKKworLSAoaWQpaW5pdFdpdGhQREZQbHVnaW46KFdlYktpdDo6UERGUGx1Z2lu
ICopcGx1Z2luOworCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS1BERlBsdWdpbkNvbnRleHRN
ZW51VGFyZ2V0CisKK0BzeW50aGVzaXplIHBkZlBsdWdpbiA9IF9wZGZQbHVnaW47CisKKy0gKGlk
KWluaXRXaXRoUERGUGx1Z2luOihXZWJLaXQ6OlBERlBsdWdpbiAqKXBsdWdpbgoreworICAgIGlm
ICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX3Bk
ZlBsdWdpbiA9IHBsdWdpbjsKKworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKXVzZUJs
b2NrZWRQbHVnaW46KGlkKXNlbmRlcgoreworICAgIF9wZGZQbHVnaW4tPm9wZW5XaXRoUGx1Z2lu
KCk7Cit9CisKK0BlbmQKIAogQGludGVyZmFjZSBXS1BERlBsdWdpblNjcm9sbGJhckxheWVyIDog
Q0FMYXllcgogewpAQCAtNDk5LDEwICs1MzIsMTIgQEAgUERGUGx1Z2luOjpQREZQbHVnaW4oV2Vi
RnJhbWUqIGZyYW1lKQogICAgIDogbV9mcmFtZShmcmFtZSkKICAgICAsIG1faXNQb3N0U2NyaXB0
KGZhbHNlKQogICAgICwgbV9wZGZEb2N1bWVudFdhc011dGF0ZWQoZmFsc2UpCisgICAgLCBtX3Vz
ZWRJblBsYWNlT2ZCbG9ja2VkUGx1Z2luKGZhbHNlKQogICAgICwgbV9jb250YWluZXJMYXllcihh
ZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pKQogICAgICwgbV9jb250ZW50TGF5ZXIoYWRv
cHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKSkKICAgICAsIG1fc2Nyb2xsQ29ybmVyTGF5ZXIo
YWRvcHROUyhbW1dLUERGUGx1Z2luU2Nyb2xsYmFyTGF5ZXIgYWxsb2NdIGluaXRXaXRoUERGUGx1
Z2luOnRoaXNdKSkKICAgICAsIG1fcGRmTGF5ZXJDb250cm9sbGVyKGFkb3B0TlMoW1twZGZMYXll
ckNvbnRyb2xsZXJDbGFzcygpIGFsbG9jXSBpbml0XSkpCisgICAgLCBtX2NvbnRleHRNZW51VGFy
Z2V0KGFkb3B0TlMoW1tXS1BERlBsdWdpbkNvbnRleHRNZW51VGFyZ2V0IGFsbG9jXSBpbml0V2l0
aFBERlBsdWdpbjp0aGlzXSkpCiAgICAgLCBtX3BkZkxheWVyQ29udHJvbGxlckRlbGVnYXRlKGFk
b3B0TlMoW1tXS1BERkxheWVyQ29udHJvbGxlckRlbGVnYXRlIGFsbG9jXSBpbml0V2l0aFBERlBs
dWdpbjp0aGlzXSkpCiB7CiAgICAgbV9wZGZMYXllckNvbnRyb2xsZXIuZ2V0KCkuZGVsZWdhdGUg
PSBtX3BkZkxheWVyQ29udHJvbGxlckRlbGVnYXRlLmdldCgpOwpAQCAtMTQ1Nyw2ICsxNDkyLDE4
IEBAIGJvb2wgUERGUGx1Z2luOjpoYW5kbGVDb250ZXh0TWVudUV2ZW50KGNvbnN0IFdlYk1vdXNl
RXZlbnQmIGV2ZW50KQogICAgIEludFBvaW50IHBvaW50ID0gZnJhbWVWaWV3LT5jb250ZW50c1Rv
U2NyZWVuKEludFJlY3QoZnJhbWVWaWV3LT53aW5kb3dUb0NvbnRlbnRzKGV2ZW50LnBvc2l0aW9u
KCkpLCBJbnRTaXplKCkpKS5sb2NhdGlvbigpOwogICAgIAogICAgIGlmIChOU01lbnUgKm5zTWVu
dSA9IFttX3BkZkxheWVyQ29udHJvbGxlciBtZW51Rm9yRXZlbnQ6bnNFdmVudEZvcldlYk1vdXNl
RXZlbnQoZXZlbnQpXSkgeworICAgICAgICBpZiAobV91c2VkSW5QbGFjZU9mQmxvY2tlZFBsdWdp
bikgeworICAgICAgICAgICAgU3RyaW5nIHRpdGxlID0gdXNlQmxvY2tlZFBsdWdJbkNvbnRleHRN
ZW51VGl0bGUoKTsKKworICAgICAgICAgICAgaWYgKCFtX3VzZUJsb2NrZWRQbHVnaW5Db250ZXh0
TWVudVRpdGxlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICB0aXRsZSA9IG1fdXNlQmxvY2tl
ZFBsdWdpbkNvbnRleHRNZW51VGl0bGU7CisKKyAgICAgICAgICAgIE5TTWVudUl0ZW0gKnVzZUJs
b2NrZWRQbHVnaW5JdGVtID0gW1tbTlNNZW51SXRlbSBhbGxvY10gaW5pdFdpdGhUaXRsZTp0aXRs
ZSBhY3Rpb246QHNlbGVjdG9yKHVzZUJsb2NrZWRQbHVnaW46KSBrZXlFcXVpdmFsZW50OkAiIl0g
YXV0b3JlbGVhc2VdOworCisgICAgICAgICAgICBbdXNlQmxvY2tlZFBsdWdpbkl0ZW0gc2V0VGFy
Z2V0Om1fY29udGV4dE1lbnVUYXJnZXQuZ2V0KCldOworICAgICAgICAgICAgW25zTWVudSBpbnNl
cnRJdGVtOnVzZUJsb2NrZWRQbHVnaW5JdGVtIGF0SW5kZXg6MF07CisgICAgICAgICAgICBbbnNN
ZW51IGluc2VydEl0ZW06W05TTWVudUl0ZW0gc2VwYXJhdG9ySXRlbV0gYXRJbmRleDoxXTsKKyAg
ICAgICAgfQogICAgICAgICBXS1BvcHVwQ29udGV4dE1lbnUobnNNZW51LCBwb2ludCk7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTE2NDMsNiArMTY5MCwxMSBAQCB2b2lkIFBERlBs
dWdpbjo6b3BlbldpdGhOYXRpdmVBcHBsaWNhdGlvbigpCiAgICAgd2ViRnJhbWUoKS0+cGFnZSgp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Ok9wZW5QREZGcm9tVGVtcG9yYXJ5Rm9sZGVy
V2l0aE5hdGl2ZUFwcGxpY2F0aW9uKG1fdGVtcG9yYXJ5UERGVVVJRCkpOwogfQogCit2b2lkIFBE
RlBsdWdpbjo6b3BlbldpdGhQbHVnaW4oKQoreworICAgIHdlYkZyYW1lKCktPnBhZ2UoKS0+Y29y
ZVBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkudW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2Vk
KHBsdWdpblZpZXcoKS0+cGx1Z2luRWxlbWVudCgpLCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6SW5z
ZWN1cmVQbHVnaW5WZXJzaW9uKTsKK30KKwogdm9pZCBQREZQbHVnaW46OndyaXRlSXRlbXNUb1Bh
c3RlYm9hcmQoTlNTdHJpbmcgKnBhc3RlYm9hcmROYW1lLCBOU0FycmF5ICppdGVtcywgTlNBcnJh
eSAqdHlwZXMpCiB7CiAgICAgVmVjdG9yPFN0cmluZz4gcGFzdGVib2FyZFR5cGVzOwpAQCAtMTg4
Myw2ICsxOTM1LDEzIEBAIE5TT2JqZWN0ICpQREZQbHVnaW46OmFjY2Vzc2liaWxpdHlPYmplY3Qo
KSBjb25zdAogICAgIHJldHVybiBtX2FjY2Vzc2liaWxpdHlPYmplY3QuZ2V0KCk7CiB9CiAKKwor
dm9pZCBQREZQbHVnaW46OnNldFVzZWRJblBsYWNlT2ZCbG9ja2VkUGx1Z2luKGJvb2wgdmFsdWUs
IGNvbnN0IFN0cmluZyYgdXNlQmxvY2tlZFBsdWdpbkNvbnRleHRNZW51VGl0bGUpCit7CisgICAg
bV91c2VkSW5QbGFjZU9mQmxvY2tlZFBsdWdpbiA9IHZhbHVlOworICAgIG1fdXNlQmxvY2tlZFBs
dWdpbkNvbnRleHRNZW51VGl0bGUgPSB1c2VCbG9ja2VkUGx1Z2luQ29udGV4dE1lbnVUaXRsZTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoUERGS0lUX1BM
VUdJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApp
bmRleCA3MTZlZGJlLi40Yzg0Y2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC01NzIsMTYgKzU3MiwyNiBAQCBQYXNzUmVmUHRyPFBsdWdp
bj4gV2ViUGFnZTo6Y3JlYXRlUGx1Z2luKFdlYkZyYW1lKiBmcmFtZSwgSFRNTFBsdWdJbkVsZW1l
bnQqIHBsdQogICAgIHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbjsKICAgICB1aW50MzJfdCBw
bHVnaW5Mb2FkUG9saWN5OwogICAgIFN0cmluZyB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uOwot
ICAgIGlmICghc2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RmluZFBsdWdpbihwYXJh
bWV0ZXJzLm1pbWVUeXBlLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4ocHJvY2Vzc1R5cGUpLCBwYXJh
bWV0ZXJzLnVybC5zdHJpbmcoKSwgZnJhbWVVUkxTdHJpbmcsIHBhZ2VVUkxTdHJpbmcsIGFsbG93
T25seUFwcGxpY2F0aW9uUGx1Z2lucyksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZpbmRQbHVn
aW46OlJlcGx5KHBsdWdpblByb2Nlc3NUb2tlbiwgbmV3TUlNRVR5cGUsIHBsdWdpbkxvYWRQb2xp
Y3ksIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24pKSkgewotICAgICAgICByZXR1cm4gMDsKLSAg
ICB9CisgICAgU3RyaW5nIHVzZUJsb2NrZWRQbHVnaW5UaXRsZTsKKyAgICBpZiAoIXNlbmRTeW5j
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZpbmRQbHVnaW4ocGFyYW1ldGVycy5taW1lVHlwZSwg
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KHByb2Nlc3NUeXBlKSwgcGFyYW1ldGVycy51cmwuc3RyaW5n
KCksIGZyYW1lVVJMU3RyaW5nLCBwYWdlVVJMU3RyaW5nLCBhbGxvd09ubHlBcHBsaWNhdGlvblBs
dWdpbnMpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGaW5kUGx1Z2luOjpSZXBseShwbHVnaW5Q
cm9jZXNzVG9rZW4sIG5ld01JTUVUeXBlLCBwbHVnaW5Mb2FkUG9saWN5LCB1bmF2YWlsYWJpbGl0
eURlc2NyaXB0aW9uLCB1c2VCbG9ja2VkUGx1Z2luVGl0bGUpKSkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKLSAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PFBsdWdpbk1vZHVsZUxvYWRQb2xpY3k+
KHBsdWdpbkxvYWRQb2xpY3kpKSB7Ci0gICAgY2FzZSBQbHVnaW5Nb2R1bGVMb2FkTm9ybWFsbHk6
Ci0gICAgY2FzZSBQbHVnaW5Nb2R1bGVMb2FkVW5zYW5kYm94ZWQ6Ci0gICAgICAgIGJyZWFrOwor
ICAgIGJvb2wgaXNCbG9ja2VkUGx1Z2luID0gc3RhdGljX2Nhc3Q8UGx1Z2luTW9kdWxlTG9hZFBv
bGljeT4ocGx1Z2luTG9hZFBvbGljeSkgPT0gUGx1Z2luTW9kdWxlQmxvY2tlZDsKIAotICAgIGNh
c2UgUGx1Z2luTW9kdWxlQmxvY2tlZDoKKyAgICBpZiAoaXNCbG9ja2VkUGx1Z2luIHx8ICFwbHVn
aW5Qcm9jZXNzVG9rZW4pIHsKKyNpZiBFTkFCTEUoUERGS0lUX1BMVUdJTikKKyAgICAgICAgU3Ry
aW5nIHBhdGggPSBwYXJhbWV0ZXJzLnVybC5wYXRoKCk7CisgICAgICAgIGlmIChzaG91bGRVc2VQ
REZQbHVnaW4oKSAmJiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNQREZPclBvc3RTY3JpcHRNSU1FVHlw
ZShwYXJhbWV0ZXJzLm1pbWVUeXBlKSB8fCAocGFyYW1ldGVycy5taW1lVHlwZS5pc0VtcHR5KCkg
JiYgKHBhdGguZW5kc1dpdGgoIi5wZGYiLCBmYWxzZSkgfHwgcGF0aC5lbmRzV2l0aCgiLnBzIiwg
ZmFsc2UpKSkpKSB7CisgICAgICAgICAgICBSZWZQdHI8UERGUGx1Z2luPiBwZGZQbHVnaW4gPSBQ
REZQbHVnaW46OmNyZWF0ZShmcmFtZSk7CisgICAgICAgICAgICBwZGZQbHVnaW4tPnNldFVzZWRJ
blBsYWNlT2ZCbG9ja2VkUGx1Z2luKGlzQmxvY2tlZFBsdWdpbiwgdXNlQmxvY2tlZFBsdWdpblRp
dGxlKTsKKyAgICAgICAgICAgIHJldHVybiBwZGZQbHVnaW4ucmVsZWFzZSgpOworICAgICAgICB9
CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0oZnJhbWUpOworI2VuZGlmCisgICAgfQorCisg
ICAgaWYgKGlzQmxvY2tlZFBsdWdpbikgewogICAgICAgICBib29sIHJlcGxhY2VtZW50T2JzY3Vy
ZWQgPSBmYWxzZTsKICAgICAgICAgaWYgKHBsdWdpbkVsZW1lbnQtPnJlbmRlcmVyKCktPmlzRW1i
ZWRkZWRPYmplY3QoKSkgewogICAgICAgICAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3QqIHJlbmRl
ck9iamVjdCA9IHRvUmVuZGVyRW1iZWRkZWRPYmplY3QocGx1Z2luRWxlbWVudC0+cmVuZGVyZXIo
KSk7CkBAIC01OTEsMTkgKzYwMSwxMSBAQCBQYXNzUmVmUHRyPFBsdWdpbj4gV2ViUGFnZTo6Y3Jl
YXRlUGx1Z2luKFdlYkZyYW1lKiBmcmFtZSwgSFRNTFBsdWdJbkVsZW1lbnQqIHBsdQogICAgICAg
ICB9CiAKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRCbG9ja0luc2Vj
dXJlUGx1Z2luVmVyc2lvbihwYXJhbWV0ZXJzLm1pbWVUeXBlLCBwYXJhbWV0ZXJzLnVybC5zdHJp
bmcoKSwgZnJhbWVVUkxTdHJpbmcsIHBhZ2VVUkxTdHJpbmcsIHJlcGxhY2VtZW50T2JzY3VyZWQp
KTsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAot
ICAgIGlmICghcGx1Z2luUHJvY2Vzc1Rva2VuKSB7Ci0jaWYgRU5BQkxFKFBERktJVF9QTFVHSU4p
Ci0gICAgICAgIFN0cmluZyBwYXRoID0gcGFyYW1ldGVycy51cmwucGF0aCgpOwotICAgICAgICBp
ZiAoc2hvdWxkVXNlUERGUGx1Z2luKCkgJiYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzUERGT3JQb3N0
U2NyaXB0TUlNRVR5cGUocGFyYW1ldGVycy5taW1lVHlwZSkgfHwgKHBhcmFtZXRlcnMubWltZVR5
cGUuaXNFbXB0eSgpICYmIChwYXRoLmVuZHNXaXRoKCIucGRmIiwgZmFsc2UpIHx8IHBhdGguZW5k
c1dpdGgoIi5wcyIsIGZhbHNlKSkpKSkKLSAgICAgICAgICAgIHJldHVybiBQREZQbHVnaW46OmNy
ZWF0ZShmcmFtZSk7Ci0jZWxzZQotICAgICAgICBVTlVTRURfUEFSQU0oZnJhbWUpOwotI2VuZGlm
Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KKyAgICBpZiAoIXBsdWdpblByb2Nlc3NUb2tlbikK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBib29sIGlzUmVzdGFydGVkUHJvY2VzcyA9
IChwbHVnaW5FbGVtZW50LT5kaXNwbGF5U3RhdGUoKSA9PSBIVE1MUGx1Z0luRWxlbWVudDo6UmVz
dGFydGluZyB8fCBwbHVnaW5FbGVtZW50LT5kaXNwbGF5U3RhdGUoKSA9PSBIVE1MUGx1Z0luRWxl
bWVudDo6UmVzdGFydGluZ1dpdGhQZW5kaW5nTW91c2VDbGljayk7CiAgICAgcmV0dXJuIFBsdWdp
blByb3h5OjpjcmVhdGUocGx1Z2luUHJvY2Vzc1Rva2VuLCBpc1Jlc3RhcnRlZFByb2Nlc3MpOwpA
QCAtMzczNyw3ICszNzM5LDggQEAgYm9vbCBXZWJQYWdlOjpjYW5QbHVnaW5IYW5kbGVSZXNwb25z
ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKICAgICB1aW50NjRfdCBwbHVnaW5Q
cm9jZXNzVG9rZW47CiAgICAgU3RyaW5nIG5ld01JTUVUeXBlOwogICAgIFN0cmluZyB1bmF2YWls
YWJpbGl0eURlc2NyaXB0aW9uOwotICAgIGlmICghc2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6RmluZFBsdWdpbihyZXNwb25zZS5taW1lVHlwZSgpLCBQbHVnaW5Qcm9jZXNzVHlwZU5v
cm1hbCwgcmVzcG9uc2UudXJsKCkuc3RyaW5nKCksIHJlc3BvbnNlLnVybCgpLnN0cmluZygpLCBy
ZXNwb25zZS51cmwoKS5zdHJpbmcoKSwgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zKSwgTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RmluZFBsdWdpbjo6UmVwbHkocGx1Z2luUHJvY2Vzc1Rva2Vu
LCBuZXdNSU1FVHlwZSwgcGx1Z2luTG9hZFBvbGljeSwgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlv
bikpKQorICAgIFN0cmluZyB1c2VCbG9ja2VkUGx1Z2luVGl0bGU7CisgICAgaWYgKCFzZW5kU3lu
YyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGaW5kUGx1Z2luKHJlc3BvbnNlLm1pbWVUeXBlKCks
IFBsdWdpblByb2Nlc3NUeXBlTm9ybWFsLCByZXNwb25zZS51cmwoKS5zdHJpbmcoKSwgcmVzcG9u
c2UudXJsKCkuc3RyaW5nKCksIHJlc3BvbnNlLnVybCgpLnN0cmluZygpLCBhbGxvd09ubHlBcHBs
aWNhdGlvblBsdWdpbnMpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGaW5kUGx1Z2luOjpSZXBs
eShwbHVnaW5Qcm9jZXNzVG9rZW4sIG5ld01JTUVUeXBlLCBwbHVnaW5Mb2FkUG9saWN5LCB1bmF2
YWlsYWJpbGl0eURlc2NyaXB0aW9uLCB1c2VCbG9ja2VkUGx1Z2luVGl0bGUpKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHBsdWdpbkxvYWRQb2xpY3kgIT0gUGx1Z2luTW9k
dWxlQmxvY2tlZCAmJiBwbHVnaW5Qcm9jZXNzVG9rZW47CmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjJiYWEzYy4uYThlNWRjMyAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBA
CisyMDE0LTAxLTIyICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisg
ICAgICAgIFBERlBsdWdpbjogVXNlIFBERlBsdWdpbiBldmVuIGlmIHRoZXJlJ3MgYW4gZXh0ZXJu
YWwgcGx1Z2luIGluc3RhbGxlZCwgaWYgaXQncyBibG9ja2VkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc0MTUKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzEyNDgyNDUyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkb3B0IHRoZSBuZXcgcGFnZSBsb2FkZXIgY2xpZW50IHZlcnNpb24uCisKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6CisgICAgICAgIChXVFI6
OlRlc3RDb250cm9sbGVyOjpwbHVnaW5Mb2FkUG9saWN5KToKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisKIDIwMTQtMDEtMjEgIEJlbmphbWluIFBvdWxhaW4g
IDxiZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBJYW4gYW5kIFJpY2t5IHRvIHRo
ZSBjb250cmlidXRvciBsaXN0CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCmluZGV4IGY5YmNhNTguLmJiODlmOGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCkBAIC00MjIsOCArNDIyLDggQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6
Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKFdLRGljdGlvbmFyeVJlZiBvcHRpb25zKQogICAgIH07
CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgJnBhZ2VV
SUNsaWVudC5iYXNlKTsKIAotICAgIFdLUGFnZUxvYWRlckNsaWVudFY0IHBhZ2VMb2FkZXJDbGll
bnQgPSB7Ci0gICAgICAgIHsgNCwgdGhpcyB9LAorICAgIFdLUGFnZUxvYWRlckNsaWVudFY1IHBh
Z2VMb2FkZXJDbGllbnQgPSB7CisgICAgICAgIHsgNSwgdGhpcyB9LAogICAgICAgICAwLCAvLyBk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCiAgICAgICAgIDAsIC8vIGRpZFJlY2VpdmVT
ZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCiAgICAgICAgIDAsIC8vIGRp
ZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZQpAQCAtNDU5LDggKzQ1OSw5IEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhXS0RpY3Rpb25h
cnlSZWYgb3B0aW9ucykKICAgICAgICAgMCwgLy8gZGlkTGF5b3V0CiAgICAgICAgIDAsIC8vIHBs
dWdpbkxvYWRQb2xpY3lfZGVwcmVjYXRlZEZvclVzZVdpdGhWMgogICAgICAgICAwLCAvLyBwbHVn
aW5EaWRGYWlsCi0gICAgICAgIHBsdWdpbkxvYWRQb2xpY3ksIC8vIHBsdWdpbkxvYWRQb2xpY3kK
KyAgICAgICAgMCwgLy8gcGx1Z2luTG9hZFBvbGljeV9kZXByZWNhdGVkRm9yVXNlV2l0aFYzCiAg
ICAgICAgIDAsIC8vIHdlYkdMTG9hZFBvbGljeQorICAgICAgICBwbHVnaW5Mb2FkUG9saWN5LCAv
LyBwbHVnaW5Mb2FkUG9saWN5CiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50
KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgJnBhZ2VMb2FkZXJDbGllbnQuYmFzZSk7CiAKQEAgLTEw
NTcsMTIgKzEwNTgsMTIgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cHJvY2Vzc0RpZENyYXNoKFdL
UGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogICAgIHN0YXRpY19jYXN0PFRl
c3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5wcm9jZXNzRGlk
Q3Jhc2goKTsKIH0KIAotV0tQbHVnaW5Mb2FkUG9saWN5IFRlc3RDb250cm9sbGVyOjpwbHVnaW5M
b2FkUG9saWN5KFdLUGFnZVJlZiBwYWdlLCBXS1BsdWdpbkxvYWRQb2xpY3kgY3VycmVudFBsdWdp
bkxvYWRQb2xpY3ksIFdLRGljdGlvbmFyeVJlZiBwbHVnaW5JbmZvcm1hdGlvbiwgV0tTdHJpbmdS
ZWYqIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitX
S1BsdWdpbkxvYWRQb2xpY3kgVGVzdENvbnRyb2xsZXI6OnBsdWdpbkxvYWRQb2xpY3koV0tQYWdl
UmVmIHBhZ2UsIFdLUGx1Z2luTG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwgV0tE
aWN0aW9uYXJ5UmVmIHBsdWdpbkluZm9ybWF0aW9uLCBXS1N0cmluZ1JlZiogdW5hdmFpbGFiaWxp
dHlEZXNjcmlwdGlvbiwgV0tTdHJpbmdSZWYqIHVzZUJsb2NrZWRQbHVnaW5UaXRsZSwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xs
ZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPnBsdWdpbkxvYWRQb2xpY3kocGFn
ZSwgY3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIHBsdWdpbkluZm9ybWF0aW9uLCB1bmF2YWlsYWJp
bGl0eURlc2NyaXB0aW9uKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIq
Pihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPnBsdWdpbkxvYWRQb2xpY3kocGFnZSwg
Y3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIHBsdWdpbkluZm9ybWF0aW9uLCB1bmF2YWlsYWJpbGl0
eURlc2NyaXB0aW9uLCB1c2VCbG9ja2VkUGx1Z2luVGl0bGUpOwogfQogCi1XS1BsdWdpbkxvYWRQ
b2xpY3kgVGVzdENvbnRyb2xsZXI6OnBsdWdpbkxvYWRQb2xpY3koV0tQYWdlUmVmLCBXS1BsdWdp
bkxvYWRQb2xpY3kgY3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIFdLRGljdGlvbmFyeVJlZiBwbHVn
aW5JbmZvcm1hdGlvbiwgV0tTdHJpbmdSZWYqIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24pCitX
S1BsdWdpbkxvYWRQb2xpY3kgVGVzdENvbnRyb2xsZXI6OnBsdWdpbkxvYWRQb2xpY3koV0tQYWdl
UmVmLCBXS1BsdWdpbkxvYWRQb2xpY3kgY3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIFdLRGljdGlv
bmFyeVJlZiBwbHVnaW5JbmZvcm1hdGlvbiwgV0tTdHJpbmdSZWYqIHVuYXZhaWxhYmlsaXR5RGVz
Y3JpcHRpb24sIFdLU3RyaW5nUmVmKiB1c2VCbG9ja2VkUGx1Z2luVGl0bGUpCiB7CiAgICAgaWYg
KG1fc2hvdWxkQmxvY2tBbGxQbHVnaW5zKQogICAgICAgICByZXR1cm4ga1dLUGx1Z2luTG9hZFBv
bGljeUJsb2NrZWQ7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXgg
MjJhMGFkYi4uYzM0ZDEwMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
aApAQCAtMTQwLDggKzE0MCw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgcHJvY2Vzc0Rp
ZENyYXNoKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgdm9pZCBwcm9j
ZXNzRGlkQ3Jhc2goKTsKIAotICAgIHN0YXRpYyBXS1BsdWdpbkxvYWRQb2xpY3kgcGx1Z2luTG9h
ZFBvbGljeShXS1BhZ2VSZWYsIFdLUGx1Z2luTG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9hZFBv
bGljeSwgV0tEaWN0aW9uYXJ5UmVmIHBsdWdpbkluZm9ybWF0aW9uLCBXS1N0cmluZ1JlZiogdW5h
dmFpbGFiaWxpdHlEZXNjcmlwdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Ci0gICAgV0tQ
bHVnaW5Mb2FkUG9saWN5IHBsdWdpbkxvYWRQb2xpY3koV0tQYWdlUmVmLCBXS1BsdWdpbkxvYWRQ
b2xpY3kgY3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIFdLRGljdGlvbmFyeVJlZiBwbHVnaW5JbmZv
cm1hdGlvbiwgV0tTdHJpbmdSZWYqIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24pOworICAgIHN0
YXRpYyBXS1BsdWdpbkxvYWRQb2xpY3kgcGx1Z2luTG9hZFBvbGljeShXS1BhZ2VSZWYsIFdLUGx1
Z2luTG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwgV0tEaWN0aW9uYXJ5UmVmIHBs
dWdpbkluZm9ybWF0aW9uLCBXS1N0cmluZ1JlZiogdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiwg
V0tTdHJpbmdSZWYqIHVzZUJsb2NrZWRQbHVnaW5UaXRsZSwgY29uc3Qgdm9pZCogY2xpZW50SW5m
byk7CisgICAgV0tQbHVnaW5Mb2FkUG9saWN5IHBsdWdpbkxvYWRQb2xpY3koV0tQYWdlUmVmLCBX
S1BsdWdpbkxvYWRQb2xpY3kgY3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIFdLRGljdGlvbmFyeVJl
ZiBwbHVnaW5JbmZvcm1hdGlvbiwgV0tTdHJpbmdSZWYqIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRp
b24sIFdLU3RyaW5nUmVmKiB1c2VCbG9ja2VkUGx1Z2luVGl0bGUpOwogICAgIAogCiAgICAgc3Rh
dGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tQ
YWdlUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmLCBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0UmVmLCBjb25zdCB2b2lkKik7Cg==
</data>
<flag name="review"
          id="245808"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>