<?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>96497</bug_id>
          
          <creation_ts>2012-09-12 04:49:38 -0700</creation_ts>
          <short_desc>[GTK] Add API to get/set the security policy of a given URI scheme to WebKit2 GTK+</short_desc>
          <delta_ts>2012-09-19 04:32:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mario</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>718199</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-09-12 04:49:38 -0700</bug_when>
    <thetext>This is useful to set the security policy for custom URI schemes, for example, to be treated as local or secure. See bug #95549 for the WebKit1 API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718208</commentid>
    <comment_count>1</comment_count>
      <attachid>163591</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-09-12 04:57:44 -0700</bug_when>
    <thetext>Created attachment 163591
Patch

Same API than WebKit1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718209</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-12 05:00:00 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718214</commentid>
    <comment_count>3</comment_count>
      <attachid>163591</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-12 05:04:35 -0700</bug_when>
    <thetext>Comment on attachment 163591
Patch

Attachment 163591 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13825600</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718229</commentid>
    <comment_count>4</comment_count>
      <attachid>163597</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-09-12 05:15:16 -0700</bug_when>
    <thetext>Created attachment 163597
Try to fix the mac build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720805</commentid>
    <comment_count>5</comment_count>
      <attachid>163597</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-09-14 08:42:33 -0700</bug_when>
    <thetext>Comment on attachment 163597
Try to fix the mac build

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

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp:648
&gt; +    // We keep the WebCore::SchemeRegistry of the UI process in sync with the
&gt; +    // web process one, so that we can return the WebKitSecurityPolicy for
&gt; +    // a given URI scheme synchronously without blocking.
&gt; +    if (policy &amp; WEBKIT_SECURITY_POLICY_LOCAL) {
&gt; +        WebCore::SchemeRegistry::registerURLSchemeAsLocal(urlScheme);
&gt; +        webContext-&gt;registerURLSchemeAsLocal(urlScheme);
&gt; +    }
&gt; +    if (policy &amp; WEBKIT_SECURITY_POLICY_NO_ACCESS_TO_OTHER_SCHEME) {
&gt; +        WebCore::SchemeRegistry::registerURLSchemeAsNoAccess(urlScheme);
&gt; +        webContext-&gt;registerURLSchemeAsNoAccess(urlScheme);
&gt; +    }
&gt; +    if (policy &amp; WEBKIT_SECURITY_POLICY_DISPLAY_ISOLATED) {
&gt; +        WebCore::SchemeRegistry::registerURLSchemeAsDisplayIsolated(urlScheme);
&gt; +        webContext-&gt;registerURLSchemeAsDisplayIsolated(urlScheme);
&gt; +    }
&gt; +    if (policy &amp; WEBKIT_SECURITY_POLICY_SECURE) {
&gt; +        WebCore::SchemeRegistry::registerURLSchemeAsSecure(urlScheme);
&gt; +        webContext-&gt;registerURLSchemeAsSecure(urlScheme);
&gt; +    }
&gt; +    if (policy &amp; WEBKIT_SECURITY_POLICY_CORS_ENABLED) {
&gt; +        WebCore::SchemeRegistry::registerURLSchemeAsCORSEnabled(urlScheme);
&gt; +        webContext-&gt;registerURLSchemeAsCORSEnabled(urlScheme);
&gt; +    }
&gt; +    if (policy &amp; WEBKIT_SECURITY_POLICY_EMPTY_DOCUMENT) {
&gt; +        WebCore::SchemeRegistry::registerURLSchemeAsEmptyDocument(urlScheme);
&gt; +        webContext-&gt;registerURLSchemeAsEmptyDocument(urlScheme);
&gt; +    }
&gt; +}
&gt; +

One thing I notice here is that if you say, activate WEBKIT_SECURITY_POLICY_LOCAL, and then call this method again with the same scheme without WEBKIT_SECURITY_POLICY_LOCAL removeURLSchemeRegisteredAsLocal is never called. It seems that you can never undo any of the actions you take. On the other hand there doesn&apos;t seem to be a way in WebCore to undo registration for all other types of schemes. Perhaps that means this API doesn&apos;t map to the one in WebCore. Perhaps you need to add a method in WebCore to remove all registrations for a scheme and call that first here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720816</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-09-14 09:02:09 -0700</bug_when>
    <thetext>This is not designed to remove uri schemes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720864</commentid>
    <comment_count>7</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-09-14 09:59:21 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; This is not designed to remove uri schemes

If that&apos;s not a usecase you want to support it makes sense to match the WebCore API, I think. Only expose the register* methods. That way it&apos;s unambiguous. I can see this being very confusing if you try to change the security policy of a scheme (calling webkit_web_context_set_security_policy_for_uri_scheme more than once for the same scheme).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720895</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-09-14 10:17:34 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; This is not designed to remove uri schemes
&gt; 
&gt; If that&apos;s not a usecase you want to support it makes sense to match the WebCore API, I think. Only expose the register* methods. That way it&apos;s unambiguous. I can see this being very confusing if you try to change the security policy of a scheme (calling webkit_web_context_set_security_policy_for_uri_scheme more than once for the same scheme).

You are right, it can be confusing, maybe we could add a WebKitSecurityPolicy object with methods to register uri schemes:

webkit_secutiry_policy_register_uri_scheme_as_local()
webkit_secutiry_policy_register_uri_scheme_as_secure()
....

And also methods to query:

webkit_secutiry_policy_is_uri_scheme_local()
webkit_secutiry_policy_is_uri_scheme_secure()
....

And method to get the security policy object (or boxed type) from the context

WebKitSecutiryPolicy* webkit_web_context_get_secutory_policy().

I used the flags to reduce the api, but I agree it can be confusing, we should do the same in wk1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720942</commentid>
    <comment_count>9</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-09-14 10:52:15 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; This is not designed to remove uri schemes
&gt; &gt; 
&gt; &gt; If that&apos;s not a usecase you want to support it makes sense to match the WebCore API, I think. Only expose the register* methods. That way it&apos;s unambiguous. I can see this being very confusing if you try to change the security policy of a scheme (calling webkit_web_context_set_security_policy_for_uri_scheme more than once for the same scheme).
&gt; 
&gt; You are right, it can be confusing, maybe we could add a WebKitSecurityPolicy object with methods to register uri schemes:
&gt; 
&gt; webkit_secutiry_policy_register_uri_scheme_as_local()
&gt; webkit_secutiry_policy_register_uri_scheme_as_secure()
&gt; ....
&gt; 
&gt; And also methods to query:
&gt; 
&gt; webkit_secutiry_policy_is_uri_scheme_local()
&gt; webkit_secutiry_policy_is_uri_scheme_secure()
&gt; ....
&gt; 
&gt; And method to get the security policy object (or boxed type) from the context
&gt; 
&gt; WebKitSecutiryPolicy* webkit_web_context_get_secutory_policy().
&gt; 
&gt; I used the flags to reduce the api, but I agree it can be confusing, we should do the same in wk1.

You&apos;re suggestion makes sense to me. Sorry that I didn&apos;t notice this when you did the version for WebKti1!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722737</commentid>
    <comment_count>10</comment_count>
      <attachid>164548</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-09-18 06:41:55 -0700</bug_when>
    <thetext>Created attachment 164548
New patch using a different API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722887</commentid>
    <comment_count>11</comment_count>
      <attachid>164548</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-09-18 10:40:19 -0700</bug_when>
    <thetext>Comment on attachment 164548
New patch using a different API

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

Looks good. Couple small suggestions before landing...

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitSecurityManager.cpp:59
&gt; +static void webkit_security_manager_class_init(WebKitSecurityManagerClass* findClass)

Small nit here: findClass could just be klass or securityManagerClass. I guess this is just a copy-paste thing?

&gt; Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:318
&gt; +    void check(const char* scheme, unsigned policy)

Maybe a name like verifyThatSchemeMatchesPolicy?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722894</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-09-18 10:47:24 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 164548 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164548&amp;action=review
&gt; 
&gt; Looks good. Couple small suggestions before landing...
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitSecurityManager.cpp:59
&gt; &gt; +static void webkit_security_manager_class_init(WebKitSecurityManagerClass* findClass)
&gt; 
&gt; Small nit here: findClass could just be klass or securityManagerClass. I guess this is just a copy-paste thing?

hehe, yes, I copied this from the CookieManager that was copied from the FindCrontroller. The CookieManager still has findClass :-P

&gt; &gt; Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:318
&gt; &gt; +    void check(const char* scheme, unsigned policy)
&gt; 
&gt; Maybe a name like verifyThatSchemeMatchesPolicy?

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723449</commentid>
    <comment_count>13</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-09-19 04:32:13 -0700</bug_when>
    <thetext>Committed r128989: &lt;http://trac.webkit.org/changeset/128989&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163591</attachid>
            <date>2012-09-12 04:57:44 -0700</date>
            <delta_ts>2012-09-12 05:15:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-security-policy.diff</filename>
            <type>text/plain</type>
            <size>29776</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA3NjhhODlmLi4zZDg0ZTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkg
QEAKKzIwMTItMDktMTIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEFkZCBBUEkgdG8gZ2V0L3NldCB0aGUgc2VjdXJpdHkgcG9saWN5
IG9mIGEgZ2l2ZW4gVVJJIHNjaGVtZSB0byBXZWJLaXQyIEdUSysKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NDk3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFdlYktpdFNlY3VyaXR5UG9saWN5IGVu
dW0gd2l0aCBmbGFncyB0aGF0IHJlcHJlc2VudCB0aGUKKyAgICAgICAgc2VjdXJpdHkgcG9saWN5
IG9mIGEgVVJJIHNjaGVtZS4gQWRkIG1ldGhvZHMgdG8gZ2V0IGFuZCBzZXQgdGhlCisgICAgICAg
IHNlY3VyaXR5IHBvbGljeSBmbGFncyBmb3IgYSBnaXZlbiBVUkkgc2NoZW1lLgorCisgICAgICAg
ICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOiBFbmNvZGUgdGhlIGxp
c3Qgb2YKKyAgICAgICAgc2NoZW1lcyB0byBiZSByZWlnc3RlcmVkIGFzIExvY2FsLCBOb0FjY2Vz
cywgRGlzcGxheUlzb2xhdGVkIGFuZAorICAgICAgICBDT1JTRW5hYmxlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKTogRGVjb2RlIHRoZSBs
aXN0IG9mCisgICAgICAgIHNjaGVtZXMgdG8gYmUgcmVpZ3N0ZXJlZCBhcyBMb2NhbCwgTm9BY2Nl
c3MsIERpc3BsYXlJc29sYXRlZCBhbmQKKyAgICAgICAgQ09SU0VuYWJsZWQuCisgICAgICAgICog
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMpOiBBZGQgbmV3IHBhcmFtZXRlcnMgdG8gYmUgYWJsZSB0bwor
ICAgICAgICByZWdpc3RlciBzY2hlbWVzIGFzIExvY2FsLCBOb0FjY2VzcywgRGlzcGxheUlzb2xh
dGVkIGFuZAorICAgICAgICBDT1JTRW5hYmxlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9nZXRf
c2VjdXJpdHlfcG9saWN5X2Zvcl91cmlfc2NoZW1lKToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29u
dGV4dF9zZXRfc2VjdXJpdHlfcG9saWN5X2Zvcl91cmlfc2NoZW1lKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dDogQWRkIG5ldyBzeW1ib2xzLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcDoK
KyAgICAgICAgKHRlc3RXZWJDb250ZXh0U2VjdXJpdHlQb2xpY3kpOgorICAgICAgICAoYmVmb3Jl
QWxsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvbnRleHQ6OmNyZWF0ZU5ld1dlYlByb2Nlc3MpOiBDb3B5IG5ldyB2ZWN0b3IKKyAg
ICAgICAgc2NoZW1lcy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cmVnaXN0ZXJVUkxT
Y2hlbWVBc0xvY2FsKTogU2VuZCBhIG1lc3NhZ2UgdG8KKyAgICAgICAgV2ViUHJvY2VzcyB0byBy
ZWdpc3RlciB0aGUgZ2l2ZW4gVVJMIHNjaGVtZSBhcyBMb2NhbC4KKyAgICAgICAgKFdlYktpdDo6
V2ViQ29udGV4dDo6cmVnaXN0ZXJVUkxTY2hlbWVBc05vQWNjZXNzKTogU2VuZCBhIG1lc3NhZ2UK
KyAgICAgICAgdG8gV2ViUHJvY2VzcyB0byByZWdpc3RlciB0aGUgZ2l2ZW4gVVJMIHNjaGVtZSBh
cyBOb0FjY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cmVnaXN0ZXJVUkxTY2hl
bWVBc0Rpc3BsYXlJc29sYXRlZCk6IFNlbmQgYQorICAgICAgICBtZXNzYWdlIHRvIFdlYlByb2Nl
c3MgdG8gcmVnaXN0ZXIgdGhlIGdpdmVuIFVSTCBzY2hlbWUgYXMKKyAgICAgICAgRGlzcGxheUlz
b2xhdGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpyZWdpc3RlclVSTFNjaGVtZUFz
Q09SU0VuYWJsZWQpOiBTZW5kIGEKKyAgICAgICAgbWVzc2FnZSB0byBXZWJQcm9jZXNzIHRvIHJl
Z2lzdGVyIHRoZSBnaXZlbiBVUkwgc2NoZW1lIGFzCisgICAgICAgIENPUlNFbmFibGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cmVnaXN0ZXJVUkxTY2hl
bWVBc0xvY2FsKTogUmVnaXN0ZXIgdGhlCisgICAgICAgIGdpdmVuIFVSTCBzY2hlbWUgYXMgTG9j
YWwgaW4gdGhlIFNjaGVtZVJlZ2lzdHJ5LgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpy
ZWdpc3RlclVSTFNjaGVtZUFzTm9BY2Nlc3MpOiBSZWdpc3RlciB0aGUKKyAgICAgICAgZ2l2ZW4g
VVJMIHNjaGVtZSBhcyBOb0FjY2VzcyBpbiB0aGUgU2NoZW1lUmVnaXN0cnkuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OnJlZ2lzdGVyVVJMU2NoZW1lQXNEaXNwbGF5SXNvbGF0ZWQpOiBS
ZWdpc3RlcgorICAgICAgICB0aGUgZ2l2ZW4gVVJMIHNjaGVtZSBhcyBEaXNwbGF5SXNvbGF0ZWQg
aW4gdGhlIFNjaGVtZVJlZ2lzdHJ5LgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpyZWdp
c3RlclVSTFNjaGVtZUFzQ09SU0VuYWJsZWQpOiBSZWdpc3RlciB0aGUKKyAgICAgICAgZ2l2ZW4g
VVJMIHNjaGVtZSBhcyBDT1JTRW5hYmxlZCBpbiB0aGUgU2NoZW1lUmVnaXN0cnkuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluOiBBZGQgbmV3IG1lc3NhZ2VzLgorCiAyMDEyLTA5LTEyICBDaHJpc3Rv
cGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW1dLMl1b
V0tUUl0gVGVzdFJ1bm5lciBuZWVkcyB0byBpbXBsZW1lbnQgZHVtcEFwcGxpY2F0aW9uQ2FjaGVE
ZWxlZ2F0ZUNhbGxiYWNrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDQzMzlkNTkuLjMxZjExYTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHAKQEAgLTYwLDYgKzYwLDEwIEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uCiAgICAg
ZW5jb2Rlci0+ZW5jb2RlKHVybFNjaGVtZXNSZWdpc3RlcmVyZEFzRW1wdHlEb2N1bWVudCk7CiAg
ICAgZW5jb2Rlci0+ZW5jb2RlKHVybFNjaGVtZXNSZWdpc3RlcmVkQXNTZWN1cmUpOwogICAgIGVu
Y29kZXItPmVuY29kZSh1cmxTY2hlbWVzRm9yV2hpY2hEb21haW5SZWxheGF0aW9uSXNGb3JiaWRk
ZW4pOworICAgIGVuY29kZXItPmVuY29kZSh1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzTG9jYWwpOwor
ICAgIGVuY29kZXItPmVuY29kZSh1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzTm9BY2Nlc3MpOworICAg
IGVuY29kZXItPmVuY29kZSh1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzRGlzcGxheUlzb2xhdGVkKTsK
KyAgICBlbmNvZGVyLT5lbmNvZGUodXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0NPUlNFbmFibGVkKTsK
ICAgICBlbmNvZGVyLT5lbmNvZGUobWltZVR5cGVzV2l0aEN1c3RvbVJlcHJlc2VudGF0aW9uKTsK
ICAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKGNhY2hlTW9kZWwpOwogICAgIGVuY29kZXItPmVuY29k
ZShzaG91bGRUcmFja1Zpc2l0ZWRMaW5rcyk7CkBAIC0xMzQsNiArMTM4LDE0IEBAIGJvb2wgV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogZGVjb2RlciwgV2ViCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShwYXJhbWV0ZXJzLnVybFNjaGVtZXNGb3JXaGljaERvbWFpblJlbGF4YXRpb25Jc0Zv
cmJpZGRlbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29k
ZShwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNMb2NhbCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLnVybFNjaGVtZXNS
ZWdpc3RlcmVkQXNOb0FjY2VzcykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRl
Y29kZXItPmRlY29kZShwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNEaXNwbGF5SXNv
bGF0ZWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
cGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ09SU0VuYWJsZWQpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5taW1lVHlw
ZXNXaXRoQ3VzdG9tUmVwcmVzZW50YXRpb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKHBhcmFtZXRlcnMuY2FjaGVNb2RlbCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApp
bmRleCA5ZmFlMTdmLi44OTJhYjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTY0LDYgKzY0LDEwIEBAIHN0cnVj
dCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBWZWN0b3I8U3RyaW5nPiB1cmxT
Y2hlbWVzUmVnaXN0ZXJlcmRBc0VtcHR5RG9jdW1lbnQ7CiAgICAgVmVjdG9yPFN0cmluZz4gdXJs
U2NoZW1lc1JlZ2lzdGVyZWRBc1NlY3VyZTsKICAgICBWZWN0b3I8U3RyaW5nPiB1cmxTY2hlbWVz
Rm9yV2hpY2hEb21haW5SZWxheGF0aW9uSXNGb3JiaWRkZW47CisgICAgVmVjdG9yPFN0cmluZz4g
dXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0xvY2FsOworICAgIFZlY3RvcjxTdHJpbmc+IHVybFNjaGVt
ZXNSZWdpc3RlcmVkQXNOb0FjY2VzczsKKyAgICBWZWN0b3I8U3RyaW5nPiB1cmxTY2hlbWVzUmVn
aXN0ZXJlZEFzRGlzcGxheUlzb2xhdGVkOworICAgIFZlY3RvcjxTdHJpbmc+IHVybFNjaGVtZXNS
ZWdpc3RlcmVkQXNDT1JTRW5hYmxlZDsKIAogICAgIC8vIE1JTUUgdHlwZXMgZm9yIHdoaWNoIHRo
ZSBVSSBwcm9jZXNzIHdpbGwgaGFuZGxlIHNob3dpbmcgdGhlIGRhdGEuCiAgICAgVmVjdG9yPFN0
cmluZz4gbWltZVR5cGVzV2l0aEN1c3RvbVJlcHJlc2VudGF0aW9uOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCBl
OTIzMWU0Li4wYzc0NjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUg
IldlYktpdFdlYkNvbnRleHRQcml2YXRlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVt
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MYW5ndWFnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2No
ZW1lUmVnaXN0cnkuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9P
d25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtNTY2LDYgKzU2Nyw4NSBA
QCB2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfcHJlZmVycmVkX2xhbmd1YWdlcyhXZWJLaXRX
ZWJDb250ZXh0KiBjb250ZXh0LCBjb25zdAogICAgIFdlYkNvcmU6Omxhbmd1YWdlRGlkQ2hhbmdl
KCk7CiB9CiAKKy8qKgorICogd2Via2l0X3dlYl9jb250ZXh0X2dldF9zZWN1cml0eV9wb2xpY3lf
Zm9yX3VyaV9zY2hlbWU6CisgKiBAY29udGV4dDogYSAjV2ViS2l0V2ViQ29udGV4dAorICogQHNj
aGVtZTogYSBVUkkgc2NoZW1lCisgKgorICogR2V0IHRoZSBzZWN1cml0eSBwb2xpY3kgZm9yIHRo
ZSBnaXZlbiBVUkkgc2NoZW1lLgorICoKKyAqIFJldHVybnM6IGEgI1dlYktpdFNlY3VyaXR5UG9s
aWN5CisgKi8KK1dlYktpdFNlY3VyaXR5UG9saWN5IHdlYmtpdF93ZWJfY29udGV4dF9nZXRfc2Vj
dXJpdHlfcG9saWN5X2Zvcl91cmlfc2NoZW1lKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQsIGNv
bnN0IGNoYXIqIHNjaGVtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNf
V0VCX0NPTlRFWFQoY29udGV4dCksIHN0YXRpY19jYXN0PFdlYktpdFNlY3VyaXR5UG9saWN5Pigw
KSk7CisKKyAgICBndWludCBwb2xpY3kgPSAwOworICAgIFN0cmluZyB1cmxTY2hlbWUgPSBTdHJp
bmc6OmZyb21VVEY4KHNjaGVtZSk7CisKKyAgICBpZiAoV2ViQ29yZTo6U2NoZW1lUmVnaXN0cnk6
OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNMb2NhbCh1cmxTY2hlbWUpKQorICAgICAgICBwb2xpY3kg
fD0gV0VCS0lUX1NFQ1VSSVRZX1BPTElDWV9MT0NBTDsKKyAgICBpZiAoV2ViQ29yZTo6U2NoZW1l
UmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNOb0FjY2Vzcyh1cmxTY2hlbWUpKQorICAg
ICAgICBwb2xpY3kgfD0gV0VCS0lUX1NFQ1VSSVRZX1BPTElDWV9OT19BQ0NFU1NfVE9fT1RIRVJf
U0NIRU1FOworICAgIGlmIChXZWJDb3JlOjpTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxT
Y2hlbWVBc0Rpc3BsYXlJc29sYXRlZCh1cmxTY2hlbWUpKQorICAgICAgICBwb2xpY3kgfD0gV0VC
S0lUX1NFQ1VSSVRZX1BPTElDWV9ESVNQTEFZX0lTT0xBVEVEOworICAgIGlmIChXZWJDb3JlOjpT
Y2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc1NlY3VyZSh1cmxTY2hlbWUpKQor
ICAgICAgICBwb2xpY3kgfD0gV0VCS0lUX1NFQ1VSSVRZX1BPTElDWV9TRUNVUkU7CisgICAgaWYg
KFdlYkNvcmU6OlNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzQ09SU0VuYWJs
ZWQodXJsU2NoZW1lKSkKKyAgICAgICAgcG9saWN5IHw9IFdFQktJVF9TRUNVUklUWV9QT0xJQ1lf
Q09SU19FTkFCTEVEOworICAgIGlmIChXZWJDb3JlOjpTY2hlbWVSZWdpc3RyeTo6c2hvdWxkTG9h
ZFVSTFNjaGVtZUFzRW1wdHlEb2N1bWVudCh1cmxTY2hlbWUpKQorICAgICAgICBwb2xpY3kgfD0g
V0VCS0lUX1NFQ1VSSVRZX1BPTElDWV9FTVBUWV9ET0NVTUVOVDsKKworICAgIHJldHVybiBzdGF0
aWNfY2FzdDxXZWJLaXRTZWN1cml0eVBvbGljeT4ocG9saWN5KTsKK30KKworLyoqCisgKiB3ZWJr
aXRfd2ViX2NvbnRleHRfc2V0X3NlY3VyaXR5X3BvbGljeV9mb3JfdXJpX3NjaGVtZToKKyAqIEBj
b250ZXh0OiBhICNXZWJLaXRXZWJDb250ZXh0CisgKiBAc2NoZW1lOiBhIFVSSSBzY2hlbWUKKyAq
IEBwb2xpY3k6IGEgI1dlYktpdFNlY3VyaXR5UG9saWN5CisgKgorICogU2V0IHRoZSBzZWN1cml0
eSBwb2xpY3kgZm9yIHRoZSBnaXZlbiBVUkkgc2NoZW1lLgorICovCit2b2lkIHdlYmtpdF93ZWJf
Y29udGV4dF9zZXRfc2VjdXJpdHlfcG9saWN5X2Zvcl91cmlfc2NoZW1lKFdlYktpdFdlYkNvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IGNoYXIqIHNjaGVtZSwgV2ViS2l0U2VjdXJpdHlQb2xpY3kgcG9s
aWN5KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9DT05URVhUKGNvbnRl
eHQpKTsKKworICAgIGlmICghcG9saWN5KQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJDb250
ZXh0KiB3ZWJDb250ZXh0ID0gdG9JbXBsKGNvbnRleHQtPnByaXYtPmNvbnRleHQuZ2V0KCkpOwor
ICAgIFN0cmluZyB1cmxTY2hlbWUgPSBTdHJpbmc6OmZyb21VVEY4KHNjaGVtZSk7CisKKyAgICAv
LyBXZSBrZWVwIHRoZSBXZWJDb3JlOjpTY2hlbWVSZWdpc3RyeSBvZiB0aGUgVUkgcHJvY2VzcyBp
biBzeW5jIHdpdGggdGhlCisgICAgLy8gd2ViIHByb2Nlc3Mgb25lLCBzbyB0aGF0IHdlIGNhbiBy
ZXR1cm4gdGhlIFdlYktpdFNlY3VyaXR5UG9saWN5IGZvcgorICAgIC8vIGEgZ2l2ZW4gVVJJIHNj
aGVtZSBzeW5jaHJvbm91c2x5IHdpdGhvdXQgYmxvY2tpbmcuCisgICAgaWYgKHBvbGljeSAmIFdF
QktJVF9TRUNVUklUWV9QT0xJQ1lfTE9DQUwpIHsKKyAgICAgICAgV2ViQ29yZTo6U2NoZW1lUmVn
aXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNMb2NhbCh1cmxTY2hlbWUpOworICAgICAgICB3ZWJD
b250ZXh0LT5yZWdpc3RlclVSTFNjaGVtZUFzTG9jYWwodXJsU2NoZW1lKTsKKyAgICB9CisgICAg
aWYgKHBvbGljeSAmIFdFQktJVF9TRUNVUklUWV9QT0xJQ1lfTk9fQUNDRVNTX1RPX09USEVSX1ND
SEVNRSkgeworICAgICAgICBXZWJDb3JlOjpTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hl
bWVBc05vQWNjZXNzKHVybFNjaGVtZSk7CisgICAgICAgIHdlYkNvbnRleHQtPnJlZ2lzdGVyVVJM
U2NoZW1lQXNOb0FjY2Vzcyh1cmxTY2hlbWUpOworICAgIH0KKyAgICBpZiAocG9saWN5ICYgV0VC
S0lUX1NFQ1VSSVRZX1BPTElDWV9ESVNQTEFZX0lTT0xBVEVEKSB7CisgICAgICAgIFdlYkNvcmU6
OlNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkKHVybFNj
aGVtZSk7CisgICAgICAgIHdlYkNvbnRleHQtPnJlZ2lzdGVyVVJMU2NoZW1lQXNEaXNwbGF5SXNv
bGF0ZWQodXJsU2NoZW1lKTsKKyAgICB9CisgICAgaWYgKHBvbGljeSAmIFdFQktJVF9TRUNVUklU
WV9QT0xJQ1lfU0VDVVJFKSB7CisgICAgICAgIFdlYkNvcmU6OlNjaGVtZVJlZ2lzdHJ5OjpyZWdp
c3RlclVSTFNjaGVtZUFzU2VjdXJlKHVybFNjaGVtZSk7CisgICAgICAgIHdlYkNvbnRleHQtPnJl
Z2lzdGVyVVJMU2NoZW1lQXNTZWN1cmUodXJsU2NoZW1lKTsKKyAgICB9CisgICAgaWYgKHBvbGlj
eSAmIFdFQktJVF9TRUNVUklUWV9QT0xJQ1lfQ09SU19FTkFCTEVEKSB7CisgICAgICAgIFdlYkNv
cmU6OlNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzQ09SU0VuYWJsZWQodXJsU2No
ZW1lKTsKKyAgICAgICAgd2ViQ29udGV4dC0+cmVnaXN0ZXJVUkxTY2hlbWVBc0NPUlNFbmFibGVk
KHVybFNjaGVtZSk7CisgICAgfQorICAgIGlmIChwb2xpY3kgJiBXRUJLSVRfU0VDVVJJVFlfUE9M
SUNZX0VNUFRZX0RPQ1VNRU5UKSB7CisgICAgICAgIFdlYkNvcmU6OlNjaGVtZVJlZ2lzdHJ5Ojpy
ZWdpc3RlclVSTFNjaGVtZUFzRW1wdHlEb2N1bWVudCh1cmxTY2hlbWUpOworICAgICAgICB3ZWJD
b250ZXh0LT5yZWdpc3RlclVSTFNjaGVtZUFzRW1wdHlEb2N1bWVudCh1cmxTY2hlbWUpOworICAg
IH0KK30KKwogV2ViS2l0RG93bmxvYWQqIHdlYmtpdFdlYkNvbnRleHRHZXRPckNyZWF0ZURvd25s
b2FkKFdLRG93bmxvYWRSZWYgd2tEb3dubG9hZCkKIHsKICAgICBHUmVmUHRyPFdlYktpdERvd25s
b2FkPiBkb3dubG9hZCA9IGRvd25sb2Fkc01hcCgpLmdldCh3a0Rvd25sb2FkKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuaAppbmRl
eCBhMmJmNTczLi5mNjg4MTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5oCkBAIC02MCw2ICs2MCwzMyBAQCB0eXBlZGVmIGVu
dW0gewogfSBXZWJLaXRDYWNoZU1vZGVsOwogCiAvKioKKyAqIFdlYktpdFNlY3VyaXR5UG9saWN5
OgorICogQFdFQktJVF9TRUNVUklUWV9QT0xJQ1lfTE9DQUw6IExvY2FsIFVSSSBzY2hlbWUsIG90
aGVyIG5vbi1sb2NhbCBwYWdlcworICogICBjYW5ub3QgbGluayB0byBvciBhY2Nlc3MgVVJJcyBv
ZiB0aGlzIHNjaGVtZS4KKyAqIEBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX05PX0FDQ0VTU19UT19P
VEhFUl9TQ0hFTUU6IFBhZ2VzIGxvYWRlZCB3aXRoIHRoaXMgVVJJIHNjaGVtZQorICogICBjYW5u
b3QgYWNjZXNzIHBhZ2VzIGxvYWRlZCB3aXRoIGFueSBvdGhlciBVUkkgc2NoZW1lLgorICogQFdF
QktJVF9TRUNVUklUWV9QT0xJQ1lfRElTUExBWV9JU09MQVRFRDogUGFnZXMgY2Fubm90IGRpc3Bs
YXkgdGhlc2UgVVJJcworICogICB1bmxlc3MgdGhleSBhcmUgZnJvbSB0aGUgc2FtZSBzY2hlbWUu
CisgKiBAV0VCS0lUX1NFQ1VSSVRZX1BPTElDWV9TRUNVUkU6IFNlY3VyZSBVUkkgc2NoZW1lLCBk
b2Vzbid0IGdlbmVyYXRlIG1peGVkCisgKiAgIGNvbnRlbnQgd2FybmluZ3Mgd2hlbiBpbmNsdWRl
ZCBieSBhbiBIVFRQUyBwYWdlLgorICogQFdFQktJVF9TRUNVUklUWV9QT0xJQ1lfQ09SU19FTkFC
TEVEOiBVUkkgc2NoZW1lIHRoYXQgY2FuIGJlIHNlbnQKKyAqICAgQ09SUyAoQ3Jvc3Mtb3JpZ2lu
IHJlc291cmNlIHNoYXJpbmcpIHJlcXVlc3RzLiBTZWUgVzNDIENPUlMgc3BlY2lmaWNhdGlvbgor
ICogICBodHRwOi8vd3d3LnczLm9yZy9UUi9jb3JzLy4KKyAqIEBXRUJLSVRfU0VDVVJJVFlfUE9M
SUNZX0VNUFRZX0RPQ1VNRU5UOiBTdHJpY3RseSBlbXB0eSBkb2N1bWVudHMgYWxsb3dlZAorICog
ICB0byBjb21taXQgc3luY2hyb25vdXNseS4KKyAqCisgKiBGbGFncyB1c2VkIHRvIHJlcHJlc2Vu
dCB0aGUgc2VjdXJpdHkgcG9saWN5IG9mIGEgVVJJIHNjaGVtZS4KKyAqLwordHlwZWRlZiBlbnVt
IHsKKyAgICBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX0xPQ0FMICAgICAgICAgICAgICAgICAgICAg
PSAxIDw8IDEsCisgICAgV0VCS0lUX1NFQ1VSSVRZX1BPTElDWV9OT19BQ0NFU1NfVE9fT1RIRVJf
U0NIRU1FID0gMSA8PCAyLAorICAgIFdFQktJVF9TRUNVUklUWV9QT0xJQ1lfRElTUExBWV9JU09M
QVRFRCAgICAgICAgICA9IDEgPDwgMywKKyAgICBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX1NFQ1VS
RSAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDQsCisgICAgV0VCS0lUX1NFQ1VSSVRZX1BPTElD
WV9DT1JTX0VOQUJMRUQgICAgICAgICAgICAgID0gMSA8PCA1LAorICAgIFdFQktJVF9TRUNVUklU
WV9QT0xJQ1lfRU1QVFlfRE9DVU1FTlQgICAgICAgICAgICA9IDEgPDwgNgorfSBXZWJLaXRTZWN1
cml0eVBvbGljeTsKKworLyoqCiAgKiBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0Q2FsbGJhY2s6CiAg
KiBAcmVxdWVzdDogdGhlICNXZWJLaXRVUklTY2hlbWVSZXF1ZXN0CiAgKiBAdXNlcl9kYXRhOiB1
c2VyIGRhdGEgcGFzc2VkIHRvIHRoZSBjYWxsYmFjawpAQCAtOTIsNjQgKzExOSw3MyBAQCBzdHJ1
Y3QgX1dlYktpdFdlYkNvbnRleHRDbGFzcyB7CiB9OwogCiBXRUJLSVRfQVBJIEdUeXBlCi13ZWJr
aXRfd2ViX2NvbnRleHRfZ2V0X3R5cGUgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQpOwor
d2Via2l0X3dlYl9jb250ZXh0X2dldF90eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZv
aWQpOwogCiBXRUJLSVRfQVBJIFdlYktpdFdlYkNvbnRleHQgKgotd2Via2l0X3dlYl9jb250ZXh0
X2dldF9kZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKK3dlYmtpdF93ZWJfY29u
dGV4dF9nZXRfZGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKIAogV0VCS0lU
X0FQSSB2b2lkCi13ZWJraXRfd2ViX2NvbnRleHRfc2V0X2NhY2hlX21vZGVsICAgICAgICAgICAg
ICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRDYWNoZU1v
ZGVsICAgICAgICAgICAgICAgY2FjaGVfbW9kZWwpOword2Via2l0X3dlYl9jb250ZXh0X3NldF9j
YWNoZV9tb2RlbCAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAg
ICAgICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFdlYktpdENhY2hlTW9kZWwgICAgICAgICAgICAgICBjYWNoZV9tb2RlbCk7
CiBXRUJLSVRfQVBJIFdlYktpdENhY2hlTW9kZWwKLXdlYmtpdF93ZWJfY29udGV4dF9nZXRfY2Fj
aGVfbW9kZWwgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAg
KmNvbnRleHQpOword2Via2l0X3dlYl9jb250ZXh0X2dldF9jYWNoZV9tb2RlbCAgICAgICAgICAg
ICAgICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0KTsKIAogV0VC
S0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX2NvbnRleHRfY2xlYXJfY2FjaGUgICAgICAgICAgICAg
ICAgICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0KTsKK3dlYmtp
dF93ZWJfY29udGV4dF9jbGVhcl9jYWNoZSAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRX
ZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCk7CiAKIFdFQktJVF9BUEkgV2ViS2l0RG93
bmxvYWQgKgotd2Via2l0X3dlYl9jb250ZXh0X2Rvd25sb2FkX3VyaSAgICAgICAgICAgICAgICAg
ICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAg
ICAgICAgICAgICAgICAgKnVyaSk7Cit3ZWJraXRfd2ViX2NvbnRleHRfZG93bmxvYWRfdXJpICAg
ICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRl
eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgICAgICAgKnVyaSk7CiAKIFdFQktJVF9BUEkgV2Vi
S2l0Q29va2llTWFuYWdlciAqCi13ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2Nvb2tpZV9tYW5hZ2Vy
ICAgICAgICAgICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0KTsK
K3dlYmtpdF93ZWJfY29udGV4dF9nZXRfY29va2llX21hbmFnZXIgICAgICAgICAgICAgICAgIChX
ZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCk7CiAKIFdFQktJVF9BUEkgdm9p
ZAotd2Via2l0X3dlYl9jb250ZXh0X3NldF9hZGRpdGlvbmFsX3BsdWdpbnNfZGlyZWN0b3J5IChX
ZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAg
ICAgICAgICAgKmRpcmVjdG9yeSk7Cit3ZWJraXRfd2ViX2NvbnRleHRfc2V0X2FkZGl0aW9uYWxf
cGx1Z2luc19kaXJlY3RvcnkgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRl
eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgICAgICAgKmRpcmVjdG9yeSk7CiAKIFdFQktJVF9B
UEkgdm9pZAotd2Via2l0X3dlYl9jb250ZXh0X2dldF9wbHVnaW5zICAgICAgICAgICAgICAgICAg
ICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NhbmNlbGxhYmxlICAg
ICAgICAgICAgICAgICAgKmNhbmNlbGxhYmxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBHQXN5bmNSZWFkeUNhbGxiYWNrICAgICAgICAgICAg
Y2FsbGJhY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdwb2ludGVyICAgICAgICAgICAgICAgICAgICAgICB1c2VyX2RhdGEpOword2Via2l0
X3dlYl9jb250ZXh0X2dldF9wbHVnaW5zICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdl
YkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDYW5jZWxsYWJsZSAgICAgICAgICAgICAg
ICAgICpjYW5jZWxsYWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHQXN5bmNSZWFkeUNhbGxiYWNrICAgICAgICAgICAgY2FsbGJhY2ss
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z3BvaW50ZXIgICAgICAgICAgICAgICAgICAgICAgIHVzZXJfZGF0YSk7CiAKIFdFQktJVF9BUEkg
R0xpc3QgKgotd2Via2l0X3dlYl9jb250ZXh0X2dldF9wbHVnaW5zX2ZpbmlzaCAgICAgICAgICAg
ICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0FzeW5jUmVzdWx0ICAg
ICAgICAgICAgICAgICAgKnJlc3VsdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgICAgICAgICAgICAgICAgICAgICAqKmVycm9y
KTsKK3dlYmtpdF93ZWJfY29udGV4dF9nZXRfcGx1Z2luc19maW5pc2ggICAgICAgICAgICAgICAg
IChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQXN5bmNSZXN1bHQgICAg
ICAgICAgICAgICAgICAqcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICAgICAgICAgICAgICAgKiplcnJv
cik7CiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfY29udGV4dF9yZWdpc3Rlcl91cmlfc2No
ZW1lICAgICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRleHQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGdjaGFyICAgICAgICAgICAgICAgICAgICpzY2hlbWUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFVSSVNjaGVtZVJlcXVlc3RD
YWxsYmFjayBjYWxsYmFjaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICAgICAgICAgICAgICAgICAgIHVzZXJfZGF0YSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Rl
c3Ryb3lOb3RpZnkgICAgICAgICAgICAgICAgIHVzZXJfZGF0YV9kZXN0cm95X2Z1bmMpOword2Vi
a2l0X3dlYl9jb250ZXh0X3JlZ2lzdGVyX3VyaV9zY2hlbWUgICAgICAgICAgICAgICAgKFdlYktp
dFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAg
ICAgICAgICpzY2hlbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgV2ViS2l0VVJJU2NoZW1lUmVxdWVzdENhbGxiYWNrIGNhbGxiYWNrLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdw
b2ludGVyICAgICAgICAgICAgICAgICAgICAgICB1c2VyX2RhdGEsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Rlc3Ryb3lOb3RpZnkgICAg
ICAgICAgICAgICAgIHVzZXJfZGF0YV9kZXN0cm95X2Z1bmMpOwogCiBXRUJLSVRfQVBJIGdib29s
ZWFuCi13ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3NwZWxsX2NoZWNraW5nX2VuYWJsZWQgICAgICAg
KFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0KTsKK3dlYmtpdF93ZWJfY29u
dGV4dF9nZXRfc3BlbGxfY2hlY2tpbmdfZW5hYmxlZCAgICAgICAgIChXZWJLaXRXZWJDb250ZXh0
ICAgICAgICAgICAgICAqY29udGV4dCk7CiAKIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl9j
b250ZXh0X3NldF9zcGVsbF9jaGVja2luZ19lbmFibGVkICAgICAgIChXZWJLaXRXZWJDb250ZXh0
ICAgICAgICAgICAgICAqY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgIGVuYWJs
ZWQpOword2Via2l0X3dlYl9jb250ZXh0X3NldF9zcGVsbF9jaGVja2luZ19lbmFibGVkICAgICAg
ICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAg
ICAgICAgICAgICAgICAgICBlbmFibGVkKTsKIFdFQktJVF9BUEkgY29uc3QgZ2NoYXIgKiBjb25z
dCAqCi13ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3NwZWxsX2NoZWNraW5nX2xhbmd1YWdlcyAgICAg
KFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0KTsKK3dlYmtpdF93ZWJfY29u
dGV4dF9nZXRfc3BlbGxfY2hlY2tpbmdfbGFuZ3VhZ2VzICAgICAgIChXZWJLaXRXZWJDb250ZXh0
ICAgICAgICAgICAgICAqY29udGV4dCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl9j
b250ZXh0X3NldF9zcGVsbF9jaGVja2luZ19sYW5ndWFnZXMgICAgICAgKFdlYktpdFdlYkNvbnRl
eHQgICAgICAgICAgICAgICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICogY29uc3QgICAgICAgICAgICps
YW5ndWFnZXMpOwogCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfY29udGV4dF9zZXRfc3Bl
bGxfY2hlY2tpbmdfbGFuZ3VhZ2VzICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAg
KmNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGdjaGFyICogY29uc3QgICAgICAgICAgICpsYW5ndWFnZXMpOword2Via2l0
X3dlYl9jb250ZXh0X3NldF9wcmVmZXJyZWRfbGFuZ3VhZ2VzICAgICAgICAgICAgKFdlYktpdFdl
YkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICogY29uc3QgICAgICAg
ICAgICpsYW5ndWFnZXMpOworCitXRUJLSVRfQVBJIFdlYktpdFNlY3VyaXR5UG9saWN5Cit3ZWJr
aXRfd2ViX2NvbnRleHRfZ2V0X3NlY3VyaXR5X3BvbGljeV9mb3JfdXJpX3NjaGVtZSAoV2ViS2l0
V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAg
ICAgICAgKnNjaGVtZSk7CiAKIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl9jb250ZXh0X3Nl
dF9wcmVmZXJyZWRfbGFuZ3VhZ2VzICAgICAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAg
ICAgICAqY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgZ2NoYXIgKiBjb25zdCAgICAgICAgICAgKmxhbmd1YWdlcyk7Cit3
ZWJraXRfd2ViX2NvbnRleHRfc2V0X3NlY3VyaXR5X3BvbGljeV9mb3JfdXJpX3NjaGVtZSAoV2Vi
S2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAg
ICAgICAgICAgKnNjaGVtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBXZWJLaXRTZWN1cml0eVBvbGljeSAgICAgICAgICAgcG9saWN5KTsK
IAogR19FTkRfREVDTFMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKaW5kZXggNTk2NDk4Yy4u
YjlhMmIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9j
cy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CkBAIC00Myw2ICs0MywxMSBAQCB3
ZWJraXRfd2ViX2NvbnRleHRfc2V0X3ByZWZlcnJlZF9sYW5ndWFnZXMKIFdlYktpdFVSSVNjaGVt
ZVJlcXVlc3RDYWxsYmFjawogd2Via2l0X3dlYl9jb250ZXh0X3JlZ2lzdGVyX3VyaV9zY2hlbWUK
IAorPFNVQlNFQ1RJT04gU2VjdXJpdHkgUG9saWN5PgorV2ViS2l0U2VjdXJpdHlQb2xpY3kKK3dl
YmtpdF93ZWJfY29udGV4dF9nZXRfc2VjdXJpdHlfcG9saWN5X2Zvcl91cmlfc2NoZW1lCit3ZWJr
aXRfd2ViX2NvbnRleHRfc2V0X3NlY3VyaXR5X3BvbGljeV9mb3JfdXJpX3NjaGVtZQorCiA8U1VC
U0VDVElPTiBTdGFuZGFyZD4KIFdlYktpdFdlYkNvbnRleHRDbGFzcwogV0VCS0lUX1dFQl9DT05U
RVhUCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9U
ZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay90ZXN0cy9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAKaW5kZXggN2M3MTIyNC4uMmE5MWZjMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdl
YktpdFdlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L3Rlc3RzL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMjk3LDYgKzI5Nyw2MCBAQCBzdGF0
aWMgdm9pZCBzZXJ2ZXJDYWxsYmFjayhTb3VwU2VydmVyKiBzZXJ2ZXIsIFNvdXBNZXNzYWdlKiBt
ZXNzYWdlLCBjb25zdCBjaGFyKgogICAgIHNvdXBfbWVzc2FnZV9ib2R5X2NvbXBsZXRlKG1lc3Nh
Z2UtPnJlc3BvbnNlX2JvZHkpOwogfQogCitzdGF0aWMgdm9pZCB0ZXN0V2ViQ29udGV4dFNlY3Vy
aXR5UG9saWN5KFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgV2ViS2l0V2ViQ29u
dGV4dCogY29udGV4dCA9IHdlYmtpdF93ZWJfY29udGV4dF9nZXRfZGVmYXVsdCgpOworCisgICAg
Ly8gQ2hlY2sgZGVmYXVsdCBwb2xpY3kgZm9yIHdlbGwga25vd24gc2NoZW1lcy4KKyAgICBndWlu
dCBwb2xpY3kgPSB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3NlY3VyaXR5X3BvbGljeV9mb3JfdXJp
X3NjaGVtZShjb250ZXh0LCAiaHR0cCIpOworICAgIGd1aW50IG1hc2sgPSBXRUJLSVRfU0VDVVJJ
VFlfUE9MSUNZX0NPUlNfRU5BQkxFRDsKKyAgICBnX2Fzc2VydF9jbXB1aW50KHBvbGljeSAmIG1h
c2ssID09LCBtYXNrKTsKKworICAgIHBvbGljeSA9IHdlYmtpdF93ZWJfY29udGV4dF9nZXRfc2Vj
dXJpdHlfcG9saWN5X2Zvcl91cmlfc2NoZW1lKGNvbnRleHQsICJodHRwcyIpOworICAgIG1hc2sg
PSBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX1NFQ1VSRSB8IFdFQktJVF9TRUNVUklUWV9QT0xJQ1lf
Q09SU19FTkFCTEVEOworICAgIGdfYXNzZXJ0X2NtcHVpbnQocG9saWN5ICYgbWFzaywgPT0sIG1h
c2spOworCisgICAgcG9saWN5ID0gd2Via2l0X3dlYl9jb250ZXh0X2dldF9zZWN1cml0eV9wb2xp
Y3lfZm9yX3VyaV9zY2hlbWUoY29udGV4dCwgImZpbGUiKTsKKyAgICBtYXNrID0gV0VCS0lUX1NF
Q1VSSVRZX1BPTElDWV9MT0NBTDsKKyAgICBnX2Fzc2VydF9jbXB1aW50KHBvbGljeSAmIG1hc2ss
ID09LCBtYXNrKTsKKworICAgIHBvbGljeSA9IHdlYmtpdF93ZWJfY29udGV4dF9nZXRfc2VjdXJp
dHlfcG9saWN5X2Zvcl91cmlfc2NoZW1lKGNvbnRleHQsICJkYXRhIik7CisgICAgbWFzayA9IFdF
QktJVF9TRUNVUklUWV9QT0xJQ1lfTk9fQUNDRVNTX1RPX09USEVSX1NDSEVNRSB8IFdFQktJVF9T
RUNVUklUWV9QT0xJQ1lfU0VDVVJFOworICAgIGdfYXNzZXJ0X2NtcHVpbnQocG9saWN5ICYgbWFz
aywgPT0sIG1hc2spOworCisgICAgcG9saWN5ID0gd2Via2l0X3dlYl9jb250ZXh0X2dldF9zZWN1
cml0eV9wb2xpY3lfZm9yX3VyaV9zY2hlbWUoY29udGV4dCwgImFib3V0Iik7CisgICAgbWFzayA9
IFdFQktJVF9TRUNVUklUWV9QT0xJQ1lfTk9fQUNDRVNTX1RPX09USEVSX1NDSEVNRSB8IFdFQktJ
VF9TRUNVUklUWV9QT0xJQ1lfU0VDVVJFIHwgV0VCS0lUX1NFQ1VSSVRZX1BPTElDWV9FTVBUWV9E
T0NVTUVOVDsKKyAgICBnX2Fzc2VydF9jbXB1aW50KHBvbGljeSAmIG1hc2ssID09LCBtYXNrKTsK
KworICAgIC8vIEN1c3RvbSBzY2hlbWUuCisgICAgcG9saWN5ID0gd2Via2l0X3dlYl9jb250ZXh0
X2dldF9zZWN1cml0eV9wb2xpY3lfZm9yX3VyaV9zY2hlbWUoY29udGV4dCwgImZvbyIpOworICAg
IGdfYXNzZXJ0KCFwb2xpY3kpOworCisgICAgcG9saWN5IHw9IFdFQktJVF9TRUNVUklUWV9QT0xJ
Q1lfTE9DQUw7CisgICAgd2Via2l0X3dlYl9jb250ZXh0X3NldF9zZWN1cml0eV9wb2xpY3lfZm9y
X3VyaV9zY2hlbWUoY29udGV4dCwgImZvbyIsIHN0YXRpY19jYXN0PFdlYktpdFNlY3VyaXR5UG9s
aWN5Pihwb2xpY3kpKTsKKyAgICBnX2Fzc2VydF9jbXB1aW50KHdlYmtpdF93ZWJfY29udGV4dF9n
ZXRfc2VjdXJpdHlfcG9saWN5X2Zvcl91cmlfc2NoZW1lKGNvbnRleHQsICJmb28iKSwgPT0sIHBv
bGljeSk7CisKKyAgICBwb2xpY3kgfD0gV0VCS0lUX1NFQ1VSSVRZX1BPTElDWV9OT19BQ0NFU1Nf
VE9fT1RIRVJfU0NIRU1FOworICAgIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfc2VjdXJpdHlfcG9s
aWN5X2Zvcl91cmlfc2NoZW1lKGNvbnRleHQsICJmb28iLCBzdGF0aWNfY2FzdDxXZWJLaXRTZWN1
cml0eVBvbGljeT4ocG9saWN5KSk7CisgICAgZ19hc3NlcnRfY21wdWludCh3ZWJraXRfd2ViX2Nv
bnRleHRfZ2V0X3NlY3VyaXR5X3BvbGljeV9mb3JfdXJpX3NjaGVtZShjb250ZXh0LCAiZm9vIiks
ID09LCBwb2xpY3kpOworCisgICAgcG9saWN5IHw9IFdFQktJVF9TRUNVUklUWV9QT0xJQ1lfRElT
UExBWV9JU09MQVRFRDsKKyAgICB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3NlY3VyaXR5X3BvbGlj
eV9mb3JfdXJpX3NjaGVtZShjb250ZXh0LCAiZm9vIiwgc3RhdGljX2Nhc3Q8V2ViS2l0U2VjdXJp
dHlQb2xpY3k+KHBvbGljeSkpOworICAgIGdfYXNzZXJ0X2NtcHVpbnQod2Via2l0X3dlYl9jb250
ZXh0X2dldF9zZWN1cml0eV9wb2xpY3lfZm9yX3VyaV9zY2hlbWUoY29udGV4dCwgImZvbyIpLCA9
PSwgcG9saWN5KTsKKworICAgIHBvbGljeSB8PSBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX1NFQ1VS
RTsKKyAgICB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3NlY3VyaXR5X3BvbGljeV9mb3JfdXJpX3Nj
aGVtZShjb250ZXh0LCAiZm9vIiwgc3RhdGljX2Nhc3Q8V2ViS2l0U2VjdXJpdHlQb2xpY3k+KHBv
bGljeSkpOworICAgIGdfYXNzZXJ0X2NtcHVpbnQod2Via2l0X3dlYl9jb250ZXh0X2dldF9zZWN1
cml0eV9wb2xpY3lfZm9yX3VyaV9zY2hlbWUoY29udGV4dCwgImZvbyIpLCA9PSwgcG9saWN5KTsK
KworICAgIHBvbGljeSB8PSBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX0NPUlNfRU5BQkxFRDsKKyAg
ICB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3NlY3VyaXR5X3BvbGljeV9mb3JfdXJpX3NjaGVtZShj
b250ZXh0LCAiZm9vIiwgc3RhdGljX2Nhc3Q8V2ViS2l0U2VjdXJpdHlQb2xpY3k+KHBvbGljeSkp
OworICAgIGdfYXNzZXJ0X2NtcHVpbnQod2Via2l0X3dlYl9jb250ZXh0X2dldF9zZWN1cml0eV9w
b2xpY3lfZm9yX3VyaV9zY2hlbWUoY29udGV4dCwgImZvbyIpLCA9PSwgcG9saWN5KTsKKworICAg
IHBvbGljeSB8PSBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX0VNUFRZX0RPQ1VNRU5UOworICAgIHdl
YmtpdF93ZWJfY29udGV4dF9zZXRfc2VjdXJpdHlfcG9saWN5X2Zvcl91cmlfc2NoZW1lKGNvbnRl
eHQsICJmb28iLCBzdGF0aWNfY2FzdDxXZWJLaXRTZWN1cml0eVBvbGljeT4ocG9saWN5KSk7Cisg
ICAgZ19hc3NlcnRfY21wdWludCh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3NlY3VyaXR5X3BvbGlj
eV9mb3JfdXJpX3NjaGVtZShjb250ZXh0LCAiZm9vIiksID09LCBwb2xpY3kpOworfQorCiB2b2lk
IGJlZm9yZUFsbCgpCiB7CiAgICAga1NlcnZlciA9IG5ldyBXZWJLaXRUZXN0U2VydmVyKCk7CkBA
IC0zMDcsNiArMzYxLDcgQEAgdm9pZCBiZWZvcmVBbGwoKQogICAgIFVSSVNjaGVtZVRlc3Q6OmFk
ZCgiV2ViS2l0V2ViQ29udGV4dCIsICJ1cmktc2NoZW1lIiwgdGVzdFdlYkNvbnRleHRVUklTY2hl
bWUpOwogICAgIFRlc3Q6OmFkZCgiV2ViS2l0V2ViQ29udGV4dCIsICJzcGVsbC1jaGVja2VyIiwg
dGVzdFdlYkNvbnRleHRTcGVsbENoZWNrZXIpOwogICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktp
dFdlYkNvbnRleHQiLCAibGFuZ3VhZ2VzIiwgdGVzdFdlYkNvbnRleHRMYW5ndWFnZXMpOworICAg
IFRlc3Q6OmFkZCgiV2ViS2l0V2ViQ29udGV4dCIsICJzZWN1cml0eS1wb2xpY3kiLCB0ZXN0V2Vi
Q29udGV4dFNlY3VyaXR5UG9saWN5KTsKIH0KIAogdm9pZCBhZnRlckFsbCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5kZXggZmRkMzYzYS4uMDc1YzBmZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcApAQCAtMzM2LDYgKzMzNiwxMCBAQCBQ
YXNzUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gV2ViQ29udGV4dDo6Y3JlYXRlTmV3V2ViUHJvY2Vz
cygpCiAgICAgY29weVRvVmVjdG9yKG1fc2NoZW1lc1RvUmVnaXN0ZXJBc0VtcHR5RG9jdW1lbnQs
IHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZXJkQXNFbXB0eURvY3VtZW50KTsKICAgICBj
b3B5VG9WZWN0b3IobV9zY2hlbWVzVG9SZWdpc3RlckFzU2VjdXJlLCBwYXJhbWV0ZXJzLnVybFNj
aGVtZXNSZWdpc3RlcmVkQXNTZWN1cmUpOwogICAgIGNvcHlUb1ZlY3RvcihtX3NjaGVtZXNUb1Nl
dERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3IsIHBhcmFtZXRlcnMudXJsU2NoZW1lc0Zvcldo
aWNoRG9tYWluUmVsYXhhdGlvbklzRm9yYmlkZGVuKTsKKyAgICBjb3B5VG9WZWN0b3IobV9zY2hl
bWVzVG9SZWdpc3RlckFzTG9jYWwsIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0xv
Y2FsKTsKKyAgICBjb3B5VG9WZWN0b3IobV9zY2hlbWVzVG9SZWdpc3RlckFzTm9BY2Nlc3MsIHBh
cmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc05vQWNjZXNzKTsKKyAgICBjb3B5VG9WZWN0
b3IobV9zY2hlbWVzVG9SZWdpc3RlckFzRGlzcGxheUlzb2xhdGVkLCBwYXJhbWV0ZXJzLnVybFNj
aGVtZXNSZWdpc3RlcmVkQXNEaXNwbGF5SXNvbGF0ZWQpOworICAgIGNvcHlUb1ZlY3RvcihtX3Nj
aGVtZXNUb1JlZ2lzdGVyQXNDT1JTRW5hYmxlZCwgcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0
ZXJlZEFzQ09SU0VuYWJsZWQpOwogCiAgICAgcGFyYW1ldGVycy5zaG91bGRBbHdheXNVc2VDb21w
bGV4VGV4dENvZGVQYXRoID0gbV9hbHdheXNVc2VzQ29tcGxleFRleHRDb2RlUGF0aDsKICAgICBw
YXJhbWV0ZXJzLnNob3VsZFVzZUZvbnRTbW9vdGhpbmcgPSBtX3Nob3VsZFVzZUZvbnRTbW9vdGhp
bmc7CkBAIC02NDAsNiArNjQ0LDMwIEBAIHZvaWQgV2ViQ29udGV4dDo6c2V0RG9tYWluUmVsYXhh
dGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShjb25zdCBTdHJpbmcmIHVybFNjaGVtCiAgICAgc2Vu
ZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXREb21haW5SZWxheGF0aW9u
Rm9yYmlkZGVuRm9yVVJMU2NoZW1lKHVybFNjaGVtZSkpOwogfQogCit2b2lkIFdlYkNvbnRleHQ6
OnJlZ2lzdGVyVVJMU2NoZW1lQXNMb2NhbChjb25zdCBTdHJpbmcmIHVybFNjaGVtZSkKK3sKKyAg
ICBtX3NjaGVtZXNUb1JlZ2lzdGVyQXNMb2NhbC5hZGQodXJsU2NoZW1lKTsKKyAgICBzZW5kVG9B
bGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlJlZ2lzdGVyVVJMU2NoZW1lQXNMb2Nh
bCh1cmxTY2hlbWUpKTsKK30KKwordm9pZCBXZWJDb250ZXh0OjpyZWdpc3RlclVSTFNjaGVtZUFz
Tm9BY2Nlc3MoY29uc3QgU3RyaW5nJiB1cmxTY2hlbWUpCit7CisgICAgbV9zY2hlbWVzVG9SZWdp
c3RlckFzTm9BY2Nlc3MuYWRkKHVybFNjaGVtZSk7CisgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzOjpSZWdpc3RlclVSTFNjaGVtZUFzTm9BY2Nlc3ModXJsU2NoZW1l
KSk7Cit9CisKK3ZvaWQgV2ViQ29udGV4dDo6cmVnaXN0ZXJVUkxTY2hlbWVBc0Rpc3BsYXlJc29s
YXRlZChjb25zdCBTdHJpbmcmIHVybFNjaGVtZSkKK3sKKyAgICBtX3NjaGVtZXNUb1JlZ2lzdGVy
QXNEaXNwbGF5SXNvbGF0ZWQuYWRkKHVybFNjaGVtZSk7CisgICAgc2VuZFRvQWxsUHJvY2Vzc2Vz
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpSZWdpc3RlclVSTFNjaGVtZUFzRGlzcGxheUlzb2xhdGVk
KHVybFNjaGVtZSkpOworfQorCit2b2lkIFdlYkNvbnRleHQ6OnJlZ2lzdGVyVVJMU2NoZW1lQXND
T1JTRW5hYmxlZChjb25zdCBTdHJpbmcmIHVybFNjaGVtZSkKK3sKKyAgICBtX3NjaGVtZXNUb1Jl
Z2lzdGVyQXNDT1JTRW5hYmxlZC5hZGQodXJsU2NoZW1lKTsKKyAgICBzZW5kVG9BbGxQcm9jZXNz
ZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlJlZ2lzdGVyVVJMU2NoZW1lQXNDT1JTRW5hYmxlZCh1
cmxTY2hlbWUpKTsKK30KKwogdm9pZCBXZWJDb250ZXh0OjpzZXRDYWNoZU1vZGVsKENhY2hlTW9k
ZWwgY2FjaGVNb2RlbCkKIHsKICAgICBtX2NhY2hlTW9kZWwgPSBjYWNoZU1vZGVsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKaW5kZXggZGZlZmYxZi4uMWQwNTFjOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCkBAIC0xMzIsNiArMTMyLDEwIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50KGNvbnN0IFN0cmlu
ZyYpOwogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc1NlY3VyZShjb25zdCBTdHJpbmcmKTsK
ICAgICB2b2lkIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoY29uc3Qg
U3RyaW5nJik7CisgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzTG9jYWwoY29uc3QgU3RyaW5n
Jik7CisgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzTm9BY2Nlc3MoY29uc3QgU3RyaW5nJik7
CisgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkKGNvbnN0IFN0cmlu
ZyYpOworICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0NPUlNFbmFibGVkKGNvbnN0IFN0cmlu
ZyYpOwogCiAgICAgdm9pZCBhZGRWaXNpdGVkTGluayhjb25zdCBTdHJpbmcmKTsKICAgICB2b2lk
IGFkZFZpc2l0ZWRMaW5rSGFzaChXZWJDb3JlOjpMaW5rSGFzaCk7CkBAIC0yOTUsNiArMjk5LDEw
IEBAIHByaXZhdGU6CiAgICAgSGFzaFNldDxTdHJpbmc+IG1fc2NoZW1lc1RvUmVnaXN0ZXJBc0Vt
cHR5RG9jdW1lbnQ7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1fc2NoZW1lc1RvUmVnaXN0ZXJBc1Nl
Y3VyZTsKICAgICBIYXNoU2V0PFN0cmluZz4gbV9zY2hlbWVzVG9TZXREb21haW5SZWxheGF0aW9u
Rm9yYmlkZGVuRm9yOworICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3NjaGVtZXNUb1JlZ2lzdGVyQXNM
b2NhbDsKKyAgICBIYXNoU2V0PFN0cmluZz4gbV9zY2hlbWVzVG9SZWdpc3RlckFzTm9BY2Nlc3M7
CisgICAgSGFzaFNldDxTdHJpbmc+IG1fc2NoZW1lc1RvUmVnaXN0ZXJBc0Rpc3BsYXlJc29sYXRl
ZDsKKyAgICBIYXNoU2V0PFN0cmluZz4gbV9zY2hlbWVzVG9SZWdpc3RlckFzQ09SU0VuYWJsZWQ7
CiAKICAgICBib29sIG1fYWx3YXlzVXNlc0NvbXBsZXhUZXh0Q29kZVBhdGg7CiAgICAgYm9vbCBt
X3Nob3VsZFVzZUZvbnRTbW9vdGhpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcAppbmRleCBlZjg2YmYzLi5mOTI2N2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTI5Miw2ICsyOTIsMjYgQEAgdm9pZCBXZWJQcm9jZXNzOjpz
ZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYgdXJs
U2NoZW0KICAgICBTY2hlbWVSZWdpc3RyeTo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZv
clVSTFNjaGVtZSh0cnVlLCB1cmxTY2hlbWUpOwogfQogCit2b2lkIFdlYlByb2Nlc3M6OnJlZ2lz
dGVyVVJMU2NoZW1lQXNMb2NhbChjb25zdCBTdHJpbmcmIHVybFNjaGVtZSkgY29uc3QKK3sKKyAg
ICBTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsKHVybFNjaGVtZSk7Cit9
CisKK3ZvaWQgV2ViUHJvY2Vzczo6cmVnaXN0ZXJVUkxTY2hlbWVBc05vQWNjZXNzKGNvbnN0IFN0
cmluZyYgdXJsU2NoZW1lKSBjb25zdAoreworICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVS
TFNjaGVtZUFzTm9BY2Nlc3ModXJsU2NoZW1lKTsKK30KKwordm9pZCBXZWJQcm9jZXNzOjpyZWdp
c3RlclVSTFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkKGNvbnN0IFN0cmluZyYgdXJsU2NoZW1lKSBj
b25zdAoreworICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzRGlzcGxheUlz
b2xhdGVkKHVybFNjaGVtZSk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzczo6cmVnaXN0ZXJVUkxTY2hl
bWVBc0NPUlNFbmFibGVkKGNvbnN0IFN0cmluZyYgdXJsU2NoZW1lKSBjb25zdAoreworICAgIFNj
aGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzQ09SU0VuYWJsZWQodXJsU2NoZW1lKTsK
K30KKwogdm9pZCBXZWJQcm9jZXNzOjpzZXREZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbChk
b3VibGUgdGltZW91dEludGVydmFsKQogewogICAgIFJlc291cmNlUmVxdWVzdDo6c2V0RGVmYXVs
dFRpbWVvdXRJbnRlcnZhbCh0aW1lb3V0SW50ZXJ2YWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaAppbmRleCA5NTNhZjI5Li4wZjU0MmJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTk5LDYgKzE5OSwxMCBAQCBwcml2YXRlOgogICAgIHZv
aWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQoY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCByZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAg
IHZvaWQgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShjb25zdCBTdHJp
bmcmKSBjb25zdDsKKyAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNMb2NhbChjb25zdCBTdHJp
bmcmKSBjb25zdDsKKyAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNOb0FjY2Vzcyhjb25zdCBT
dHJpbmcmKSBjb25zdDsKKyAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNEaXNwbGF5SXNvbGF0
ZWQoY29uc3QgU3RyaW5nJikgY29uc3Q7CisgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzQ09S
U0VuYWJsZWQoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdm9pZCBzZXREZWZhdWx0UmVxdWVz
dFRpbWVvdXRJbnRlcnZhbChkb3VibGUpOwogICAgIHZvaWQgc2V0QWx3YXlzVXNlc0NvbXBsZXhU
ZXh0Q29kZVBhdGgoYm9vbCk7CiAgICAgdm9pZCBzZXRTaG91bGRVc2VGb250U21vb3RoaW5nKGJv
b2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluCmluZGV4IDIyNzE2Y2UuLjMzNmZmOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTQyLDYgKzQyLDEwIEBAIG1lc3NhZ2Vz
IC0+IFdlYlByb2Nlc3MgewogICAgIFJlZ2lzdGVyVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50KFdU
Rjo6U3RyaW5nIHNjaGVtZSkKICAgICBSZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlKFdURjo6U3Ry
aW5nIHNjaGVtZSkKICAgICBTZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1l
KFdURjo6U3RyaW5nIHNjaGVtZSkKKyAgICBSZWdpc3RlclVSTFNjaGVtZUFzTG9jYWwoV1RGOjpT
dHJpbmcgc2NoZW1lKQorICAgIFJlZ2lzdGVyVVJMU2NoZW1lQXNOb0FjY2VzcyhXVEY6OlN0cmlu
ZyBzY2hlbWUpCisgICAgUmVnaXN0ZXJVUkxTY2hlbWVBc0Rpc3BsYXlJc29sYXRlZChXVEY6OlN0
cmluZyBzY2hlbWUpCisgICAgUmVnaXN0ZXJVUkxTY2hlbWVBc0NPUlNFbmFibGVkKFdURjo6U3Ry
aW5nIHNjaGVtZSkKICAgICBTZXREZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbChkb3VibGUg
dGltZW91dEludGVydmFsKQogICAgIFNldEFsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoKGJv
b2wgYWx3YXlzVXNlQ29tcGxleFRleHQpCiAgICAgU2V0U2hvdWxkVXNlRm9udFNtb290aGluZyhi
b29sIHVzZUZvbnRTbW9vdGhpbmcpCg==
</data>
<flag name="commit-queue"
          id="175101"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163597</attachid>
            <date>2012-09-12 05:15:16 -0700</date>
            <delta_ts>2012-09-18 06:41:55 -0700</delta_ts>
            <desc>Try to fix the mac build</desc>
            <filename>wk2-security-policy2.diff</filename>
            <type>text/plain</type>
            <size>31475</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2NDY4Yzk1Li5mZTY2N2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTItMDktMTIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEFkZCBBUEkgdG8gZ2V0L3NldCB0aGUgc2VjdXJpdHkgcG9saWN5
IG9mIGEgZ2l2ZW4gVVJJIHNjaGVtZSB0byBXZWJLaXQyIEdUSysKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NDk3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjogQWRkIG5ldyBl
eHBvcnRlZCBzeW1ib2xzLgorCiAyMDEyLTA5LTEyICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFhNTEh0dHBSZXF1ZXN0IGlu
c3RydW1lbnRhdGlvbiBtZXRob2RzIHVzZWQgYnkgdGltZWxpbmUgc2hvdWxkIGhhdmUgYmV0dGVy
IG5hbWVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IDc2OGE4OWYuLjNkODRlMGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OSBAQAorMjAxMi0wOS0xMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIEFQSSB0byBnZXQvc2V0IHRoZSBzZWN1cml0
eSBwb2xpY3kgb2YgYSBnaXZlbiBVUkkgc2NoZW1lIHRvIFdlYktpdDIgR1RLKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY0OTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgV2ViS2l0U2VjdXJpdHlQ
b2xpY3kgZW51bSB3aXRoIGZsYWdzIHRoYXQgcmVwcmVzZW50IHRoZQorICAgICAgICBzZWN1cml0
eSBwb2xpY3kgb2YgYSBVUkkgc2NoZW1lLiBBZGQgbWV0aG9kcyB0byBnZXQgYW5kIHNldCB0aGUK
KyAgICAgICAgc2VjdXJpdHkgcG9saWN5IGZsYWdzIGZvciBhIGdpdmVuIFVSSSBzY2hlbWUuCisK
KyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6IEVuY29k
ZSB0aGUgbGlzdCBvZgorICAgICAgICBzY2hlbWVzIHRvIGJlIHJlaWdzdGVyZWQgYXMgTG9jYWws
IE5vQWNjZXNzLCBEaXNwbGF5SXNvbGF0ZWQgYW5kCisgICAgICAgIENPUlNFbmFibGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOiBEZWNv
ZGUgdGhlIGxpc3Qgb2YKKyAgICAgICAgc2NoZW1lcyB0byBiZSByZWlnc3RlcmVkIGFzIExvY2Fs
LCBOb0FjY2VzcywgRGlzcGxheUlzb2xhdGVkIGFuZAorICAgICAgICBDT1JTRW5hYmxlZC4KKyAg
ICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAo
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyk6IEFkZCBuZXcgcGFyYW1ldGVycyB0byBiZSBh
YmxlIHRvCisgICAgICAgIHJlZ2lzdGVyIHNjaGVtZXMgYXMgTG9jYWwsIE5vQWNjZXNzLCBEaXNw
bGF5SXNvbGF0ZWQgYW5kCisgICAgICAgIENPUlNFbmFibGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9jb250
ZXh0X2dldF9zZWN1cml0eV9wb2xpY3lfZm9yX3VyaV9zY2hlbWUpOgorICAgICAgICAod2Via2l0
X3dlYl9jb250ZXh0X3NldF9zZWN1cml0eV9wb2xpY3lfZm9yX3VyaV9zY2hlbWUpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0OiBBZGQgbmV3IHN5bWJv
bHMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYktpdFdlYkNvbnRl
eHQuY3BwOgorICAgICAgICAodGVzdFdlYkNvbnRleHRTZWN1cml0eVBvbGljeSk6CisgICAgICAg
IChiZWZvcmVBbGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29udGV4dDo6Y3JlYXRlTmV3V2ViUHJvY2Vzcyk6IENvcHkgbmV3IHZl
Y3RvcgorICAgICAgICBzY2hlbWVzLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpyZWdp
c3RlclVSTFNjaGVtZUFzTG9jYWwpOiBTZW5kIGEgbWVzc2FnZSB0bworICAgICAgICBXZWJQcm9j
ZXNzIHRvIHJlZ2lzdGVyIHRoZSBnaXZlbiBVUkwgc2NoZW1lIGFzIExvY2FsLgorICAgICAgICAo
V2ViS2l0OjpXZWJDb250ZXh0OjpyZWdpc3RlclVSTFNjaGVtZUFzTm9BY2Nlc3MpOiBTZW5kIGEg
bWVzc2FnZQorICAgICAgICB0byBXZWJQcm9jZXNzIHRvIHJlZ2lzdGVyIHRoZSBnaXZlbiBVUkwg
c2NoZW1lIGFzIE5vQWNjZXNzLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpyZWdpc3Rl
clVSTFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkKTogU2VuZCBhCisgICAgICAgIG1lc3NhZ2UgdG8g
V2ViUHJvY2VzcyB0byByZWdpc3RlciB0aGUgZ2l2ZW4gVVJMIHNjaGVtZSBhcworICAgICAgICBE
aXNwbGF5SXNvbGF0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnJlZ2lzdGVyVVJM
U2NoZW1lQXNDT1JTRW5hYmxlZCk6IFNlbmQgYQorICAgICAgICBtZXNzYWdlIHRvIFdlYlByb2Nl
c3MgdG8gcmVnaXN0ZXIgdGhlIGdpdmVuIFVSTCBzY2hlbWUgYXMKKyAgICAgICAgQ09SU0VuYWJs
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpyZWdpc3Rl
clVSTFNjaGVtZUFzTG9jYWwpOiBSZWdpc3RlciB0aGUKKyAgICAgICAgZ2l2ZW4gVVJMIHNjaGVt
ZSBhcyBMb2NhbCBpbiB0aGUgU2NoZW1lUmVnaXN0cnkuCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnJlZ2lzdGVyVVJMU2NoZW1lQXNOb0FjY2Vzcyk6IFJlZ2lzdGVyIHRoZQorICAgICAg
ICBnaXZlbiBVUkwgc2NoZW1lIGFzIE5vQWNjZXNzIGluIHRoZSBTY2hlbWVSZWdpc3RyeS4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cmVnaXN0ZXJVUkxTY2hlbWVBc0Rpc3BsYXlJc29s
YXRlZCk6IFJlZ2lzdGVyCisgICAgICAgIHRoZSBnaXZlbiBVUkwgc2NoZW1lIGFzIERpc3BsYXlJ
c29sYXRlZCBpbiB0aGUgU2NoZW1lUmVnaXN0cnkuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3M6OnJlZ2lzdGVyVVJMU2NoZW1lQXNDT1JTRW5hYmxlZCk6IFJlZ2lzdGVyIHRoZQorICAgICAg
ICBnaXZlbiBVUkwgc2NoZW1lIGFzIENPUlNFbmFibGVkIGluIHRoZSBTY2hlbWVSZWdpc3RyeS4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlByb2Nlc3MubWVzc2FnZXMuaW46IEFkZCBuZXcgbWVzc2FnZXMuCisKIDIwMTItMDktMTIg
IENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAg
ICBbV0syXVtXS1RSXSBUZXN0UnVubmVyIG5lZWRzIHRvIGltcGxlbWVudCBkdW1wQXBwbGljYXRp
b25DYWNoZURlbGVnYXRlQ2FsbGJhY2tzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDM5NDFhYmMu
Ljk1ZWQwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0yNzIsNyArMjcyLDEwIEBAIF9fWk43
V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGUzNWNyZWF0ZVByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNz
aW9uRVBLMTBfX0NGU3RyaW5nCiBfX1pON1dlYkNvcmUxNFJlc291cmNlTG9hZGVyMTRjYW5jZWxs
ZWRFcnJvckV2CiBfX1pON1dlYkNvcmUxNFNjaGVtZVJlZ2lzdHJ5MjRyZWdpc3RlclVSTFNjaGVt
ZUFzTG9jYWxFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNFNjaGVtZVJlZ2lzdHJ5MjVy
ZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlRVJLTjNXVEY2U3RyaW5nRQorX19aTjdXZWJDb3JlMTRT
Y2hlbWVSZWdpc3RyeTI3cmVnaXN0ZXJVUkxTY2hlbWVBc05vQWNjZXNzRVJLTjNXVEY2U3RyaW5n
RQorX19aTjdXZWJDb3JlMTRTY2hlbWVSZWdpc3RyeTMwcmVnaXN0ZXJVUkxTY2hlbWVBc0NPUlNF
bmFibGVkRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTY2hlbWVSZWdpc3RyeTMycmVn
aXN0ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnRFUktOM1dURjZTdHJpbmdFCitfX1pON1dlYkNv
cmUxNFNjaGVtZVJlZ2lzdHJ5MzRyZWdpc3RlclVSTFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkRVJL
TjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTY2hlbWVSZWdpc3RyeTM0c2hvdWxkTG9hZFVS
TFNjaGVtZUFzRW1wdHlEb2N1bWVudEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE0U2No
ZW1lUmVnaXN0cnk0MHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWVFYlJL
TjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTY2hlbWVSZWdpc3RyeTU4cmVnaXN0ZXJVUkxT
Y2hlbWVBc0FsbG93aW5nRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZ0VSS04zV1RGNlN0
cmluZ0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAppbmRleCA0MzM5ZDU5Li4zMWYxMWE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBA
IC02MCw2ICs2MCwxMCBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbgogICAgIGVuY29kZXItPmVu
Y29kZSh1cmxTY2hlbWVzUmVnaXN0ZXJlcmRBc0VtcHR5RG9jdW1lbnQpOwogICAgIGVuY29kZXIt
PmVuY29kZSh1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzU2VjdXJlKTsKICAgICBlbmNvZGVyLT5lbmNv
ZGUodXJsU2NoZW1lc0ZvcldoaWNoRG9tYWluUmVsYXhhdGlvbklzRm9yYmlkZGVuKTsKKyAgICBl
bmNvZGVyLT5lbmNvZGUodXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0xvY2FsKTsKKyAgICBlbmNvZGVy
LT5lbmNvZGUodXJsU2NoZW1lc1JlZ2lzdGVyZWRBc05vQWNjZXNzKTsKKyAgICBlbmNvZGVyLT5l
bmNvZGUodXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0Rpc3BsYXlJc29sYXRlZCk7CisgICAgZW5jb2Rl
ci0+ZW5jb2RlKHVybFNjaGVtZXNSZWdpc3RlcmVkQXNDT1JTRW5hYmxlZCk7CiAgICAgZW5jb2Rl
ci0+ZW5jb2RlKG1pbWVUeXBlc1dpdGhDdXN0b21SZXByZXNlbnRhdGlvbik7CiAgICAgZW5jb2Rl
ci0+ZW5jb2RlRW51bShjYWNoZU1vZGVsKTsKICAgICBlbmNvZGVyLT5lbmNvZGUoc2hvdWxkVHJh
Y2tWaXNpdGVkTGlua3MpOwpAQCAtMTM0LDYgKzEzOCwxNCBAQCBib29sIFdlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIs
IFdlYgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFy
YW1ldGVycy51cmxTY2hlbWVzRm9yV2hpY2hEb21haW5SZWxheGF0aW9uSXNGb3JiaWRkZW4pKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVy
cy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzTG9jYWwpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFz
Tm9BY2Nlc3MpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGUocGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzRGlzcGxheUlzb2xhdGVkKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMu
dXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0NPUlNFbmFibGVkKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMubWltZVR5cGVzV2l0aEN1c3Rv
bVJlcHJlc2VudGF0aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlRW51bShwYXJhbWV0ZXJzLmNhY2hlTW9kZWwpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggOWZhZTE3
Zi4uODkyYWI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC02NCw2ICs2NCwxMCBAQCBzdHJ1Y3QgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgVmVjdG9yPFN0cmluZz4gdXJsU2NoZW1lc1JlZ2lz
dGVyZXJkQXNFbXB0eURvY3VtZW50OwogICAgIFZlY3RvcjxTdHJpbmc+IHVybFNjaGVtZXNSZWdp
c3RlcmVkQXNTZWN1cmU7CiAgICAgVmVjdG9yPFN0cmluZz4gdXJsU2NoZW1lc0ZvcldoaWNoRG9t
YWluUmVsYXhhdGlvbklzRm9yYmlkZGVuOworICAgIFZlY3RvcjxTdHJpbmc+IHVybFNjaGVtZXNS
ZWdpc3RlcmVkQXNMb2NhbDsKKyAgICBWZWN0b3I8U3RyaW5nPiB1cmxTY2hlbWVzUmVnaXN0ZXJl
ZEFzTm9BY2Nlc3M7CisgICAgVmVjdG9yPFN0cmluZz4gdXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0Rp
c3BsYXlJc29sYXRlZDsKKyAgICBWZWN0b3I8U3RyaW5nPiB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFz
Q09SU0VuYWJsZWQ7CiAKICAgICAvLyBNSU1FIHR5cGVzIGZvciB3aGljaCB0aGUgVUkgcHJvY2Vz
cyB3aWxsIGhhbmRsZSBzaG93aW5nIHRoZSBkYXRhLgogICAgIFZlY3RvcjxTdHJpbmc+IG1pbWVU
eXBlc1dpdGhDdXN0b21SZXByZXNlbnRhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKaW5kZXggZTkyMzFlNC4uMGM3
NDY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViQ29udGV4dC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJXZWJLaXRXZWJD
b250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTGFuZ3VhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lzdHJ5
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAgLTU2Niw2ICs1NjcsODUgQEAgdm9pZCB3ZWJr
aXRfd2ViX2NvbnRleHRfc2V0X3ByZWZlcnJlZF9sYW5ndWFnZXMoV2ViS2l0V2ViQ29udGV4dCog
Y29udGV4dCwgY29uc3QKICAgICBXZWJDb3JlOjpsYW5ndWFnZURpZENoYW5nZSgpOwogfQogCisv
KioKKyAqIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfc2VjdXJpdHlfcG9saWN5X2Zvcl91cmlfc2No
ZW1lOgorICogQGNvbnRleHQ6IGEgI1dlYktpdFdlYkNvbnRleHQKKyAqIEBzY2hlbWU6IGEgVVJJ
IHNjaGVtZQorICoKKyAqIEdldCB0aGUgc2VjdXJpdHkgcG9saWN5IGZvciB0aGUgZ2l2ZW4gVVJJ
IHNjaGVtZS4KKyAqCisgKiBSZXR1cm5zOiBhICNXZWJLaXRTZWN1cml0eVBvbGljeQorICovCitX
ZWJLaXRTZWN1cml0eVBvbGljeSB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3NlY3VyaXR5X3BvbGlj
eV9mb3JfdXJpX3NjaGVtZShXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0LCBjb25zdCBjaGFyKiBz
Y2hlbWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9DT05URVhU
KGNvbnRleHQpLCBzdGF0aWNfY2FzdDxXZWJLaXRTZWN1cml0eVBvbGljeT4oMCkpOworCisgICAg
Z3VpbnQgcG9saWN5ID0gMDsKKyAgICBTdHJpbmcgdXJsU2NoZW1lID0gU3RyaW5nOjpmcm9tVVRG
OChzY2hlbWUpOworCisgICAgaWYgKFdlYkNvcmU6OlNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVh
dFVSTFNjaGVtZUFzTG9jYWwodXJsU2NoZW1lKSkKKyAgICAgICAgcG9saWN5IHw9IFdFQktJVF9T
RUNVUklUWV9QT0xJQ1lfTE9DQUw7CisgICAgaWYgKFdlYkNvcmU6OlNjaGVtZVJlZ2lzdHJ5Ojpz
aG91bGRUcmVhdFVSTFNjaGVtZUFzTm9BY2Nlc3ModXJsU2NoZW1lKSkKKyAgICAgICAgcG9saWN5
IHw9IFdFQktJVF9TRUNVUklUWV9QT0xJQ1lfTk9fQUNDRVNTX1RPX09USEVSX1NDSEVNRTsKKyAg
ICBpZiAoV2ViQ29yZTo6U2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNEaXNw
bGF5SXNvbGF0ZWQodXJsU2NoZW1lKSkKKyAgICAgICAgcG9saWN5IHw9IFdFQktJVF9TRUNVUklU
WV9QT0xJQ1lfRElTUExBWV9JU09MQVRFRDsKKyAgICBpZiAoV2ViQ29yZTo6U2NoZW1lUmVnaXN0
cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNTZWN1cmUodXJsU2NoZW1lKSkKKyAgICAgICAgcG9s
aWN5IHw9IFdFQktJVF9TRUNVUklUWV9QT0xJQ1lfU0VDVVJFOworICAgIGlmIChXZWJDb3JlOjpT
Y2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc0NPUlNFbmFibGVkKHVybFNjaGVt
ZSkpCisgICAgICAgIHBvbGljeSB8PSBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX0NPUlNfRU5BQkxF
RDsKKyAgICBpZiAoV2ViQ29yZTo6U2NoZW1lUmVnaXN0cnk6OnNob3VsZExvYWRVUkxTY2hlbWVB
c0VtcHR5RG9jdW1lbnQodXJsU2NoZW1lKSkKKyAgICAgICAgcG9saWN5IHw9IFdFQktJVF9TRUNV
UklUWV9QT0xJQ1lfRU1QVFlfRE9DVU1FTlQ7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2Vi
S2l0U2VjdXJpdHlQb2xpY3k+KHBvbGljeSk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl9jb250
ZXh0X3NldF9zZWN1cml0eV9wb2xpY3lfZm9yX3VyaV9zY2hlbWU6CisgKiBAY29udGV4dDogYSAj
V2ViS2l0V2ViQ29udGV4dAorICogQHNjaGVtZTogYSBVUkkgc2NoZW1lCisgKiBAcG9saWN5OiBh
ICNXZWJLaXRTZWN1cml0eVBvbGljeQorICoKKyAqIFNldCB0aGUgc2VjdXJpdHkgcG9saWN5IGZv
ciB0aGUgZ2l2ZW4gVVJJIHNjaGVtZS4KKyAqLwordm9pZCB3ZWJraXRfd2ViX2NvbnRleHRfc2V0
X3NlY3VyaXR5X3BvbGljeV9mb3JfdXJpX3NjaGVtZShXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0
LCBjb25zdCBjaGFyKiBzY2hlbWUsIFdlYktpdFNlY3VyaXR5UG9saWN5IHBvbGljeSkKK3sKKyAg
ICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVYVChjb250ZXh0KSk7CisKKyAg
ICBpZiAoIXBvbGljeSkKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViQ29udGV4dCogd2ViQ29u
dGV4dCA9IHRvSW1wbChjb250ZXh0LT5wcml2LT5jb250ZXh0LmdldCgpKTsKKyAgICBTdHJpbmcg
dXJsU2NoZW1lID0gU3RyaW5nOjpmcm9tVVRGOChzY2hlbWUpOworCisgICAgLy8gV2Uga2VlcCB0
aGUgV2ViQ29yZTo6U2NoZW1lUmVnaXN0cnkgb2YgdGhlIFVJIHByb2Nlc3MgaW4gc3luYyB3aXRo
IHRoZQorICAgIC8vIHdlYiBwcm9jZXNzIG9uZSwgc28gdGhhdCB3ZSBjYW4gcmV0dXJuIHRoZSBX
ZWJLaXRTZWN1cml0eVBvbGljeSBmb3IKKyAgICAvLyBhIGdpdmVuIFVSSSBzY2hlbWUgc3luY2hy
b25vdXNseSB3aXRob3V0IGJsb2NraW5nLgorICAgIGlmIChwb2xpY3kgJiBXRUJLSVRfU0VDVVJJ
VFlfUE9MSUNZX0xPQ0FMKSB7CisgICAgICAgIFdlYkNvcmU6OlNjaGVtZVJlZ2lzdHJ5OjpyZWdp
c3RlclVSTFNjaGVtZUFzTG9jYWwodXJsU2NoZW1lKTsKKyAgICAgICAgd2ViQ29udGV4dC0+cmVn
aXN0ZXJVUkxTY2hlbWVBc0xvY2FsKHVybFNjaGVtZSk7CisgICAgfQorICAgIGlmIChwb2xpY3kg
JiBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX05PX0FDQ0VTU19UT19PVEhFUl9TQ0hFTUUpIHsKKyAg
ICAgICAgV2ViQ29yZTo6U2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNOb0FjY2Vz
cyh1cmxTY2hlbWUpOworICAgICAgICB3ZWJDb250ZXh0LT5yZWdpc3RlclVSTFNjaGVtZUFzTm9B
Y2Nlc3ModXJsU2NoZW1lKTsKKyAgICB9CisgICAgaWYgKHBvbGljeSAmIFdFQktJVF9TRUNVUklU
WV9QT0xJQ1lfRElTUExBWV9JU09MQVRFRCkgeworICAgICAgICBXZWJDb3JlOjpTY2hlbWVSZWdp
c3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0Rpc3BsYXlJc29sYXRlZCh1cmxTY2hlbWUpOworICAg
ICAgICB3ZWJDb250ZXh0LT5yZWdpc3RlclVSTFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkKHVybFNj
aGVtZSk7CisgICAgfQorICAgIGlmIChwb2xpY3kgJiBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX1NF
Q1VSRSkgeworICAgICAgICBXZWJDb3JlOjpTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hl
bWVBc1NlY3VyZSh1cmxTY2hlbWUpOworICAgICAgICB3ZWJDb250ZXh0LT5yZWdpc3RlclVSTFNj
aGVtZUFzU2VjdXJlKHVybFNjaGVtZSk7CisgICAgfQorICAgIGlmIChwb2xpY3kgJiBXRUJLSVRf
U0VDVVJJVFlfUE9MSUNZX0NPUlNfRU5BQkxFRCkgeworICAgICAgICBXZWJDb3JlOjpTY2hlbWVS
ZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0NPUlNFbmFibGVkKHVybFNjaGVtZSk7CisgICAg
ICAgIHdlYkNvbnRleHQtPnJlZ2lzdGVyVVJMU2NoZW1lQXNDT1JTRW5hYmxlZCh1cmxTY2hlbWUp
OworICAgIH0KKyAgICBpZiAocG9saWN5ICYgV0VCS0lUX1NFQ1VSSVRZX1BPTElDWV9FTVBUWV9E
T0NVTUVOVCkgeworICAgICAgICBXZWJDb3JlOjpTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxT
Y2hlbWVBc0VtcHR5RG9jdW1lbnQodXJsU2NoZW1lKTsKKyAgICAgICAgd2ViQ29udGV4dC0+cmVn
aXN0ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQodXJsU2NoZW1lKTsKKyAgICB9Cit9CisKIFdl
YktpdERvd25sb2FkKiB3ZWJraXRXZWJDb250ZXh0R2V0T3JDcmVhdGVEb3dubG9hZChXS0Rvd25s
b2FkUmVmIHdrRG93bmxvYWQpCiB7CiAgICAgR1JlZlB0cjxXZWJLaXREb3dubG9hZD4gZG93bmxv
YWQgPSBkb3dubG9hZHNNYXAoKS5nZXQod2tEb3dubG9hZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmgKaW5kZXggYTJiZjU3My4u
ZjY4ODE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYkNvbnRleHQuaApAQCAtNjAsNiArNjAsMzMgQEAgdHlwZWRlZiBlbnVtIHsKIH0gV2Vi
S2l0Q2FjaGVNb2RlbDsKIAogLyoqCisgKiBXZWJLaXRTZWN1cml0eVBvbGljeToKKyAqIEBXRUJL
SVRfU0VDVVJJVFlfUE9MSUNZX0xPQ0FMOiBMb2NhbCBVUkkgc2NoZW1lLCBvdGhlciBub24tbG9j
YWwgcGFnZXMKKyAqICAgY2Fubm90IGxpbmsgdG8gb3IgYWNjZXNzIFVSSXMgb2YgdGhpcyBzY2hl
bWUuCisgKiBAV0VCS0lUX1NFQ1VSSVRZX1BPTElDWV9OT19BQ0NFU1NfVE9fT1RIRVJfU0NIRU1F
OiBQYWdlcyBsb2FkZWQgd2l0aCB0aGlzIFVSSSBzY2hlbWUKKyAqICAgY2Fubm90IGFjY2VzcyBw
YWdlcyBsb2FkZWQgd2l0aCBhbnkgb3RoZXIgVVJJIHNjaGVtZS4KKyAqIEBXRUJLSVRfU0VDVVJJ
VFlfUE9MSUNZX0RJU1BMQVlfSVNPTEFURUQ6IFBhZ2VzIGNhbm5vdCBkaXNwbGF5IHRoZXNlIFVS
SXMKKyAqICAgdW5sZXNzIHRoZXkgYXJlIGZyb20gdGhlIHNhbWUgc2NoZW1lLgorICogQFdFQktJ
VF9TRUNVUklUWV9QT0xJQ1lfU0VDVVJFOiBTZWN1cmUgVVJJIHNjaGVtZSwgZG9lc24ndCBnZW5l
cmF0ZSBtaXhlZAorICogICBjb250ZW50IHdhcm5pbmdzIHdoZW4gaW5jbHVkZWQgYnkgYW4gSFRU
UFMgcGFnZS4KKyAqIEBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX0NPUlNfRU5BQkxFRDogVVJJIHNj
aGVtZSB0aGF0IGNhbiBiZSBzZW50CisgKiAgIENPUlMgKENyb3NzLW9yaWdpbiByZXNvdXJjZSBz
aGFyaW5nKSByZXF1ZXN0cy4gU2VlIFczQyBDT1JTIHNwZWNpZmljYXRpb24KKyAqICAgaHR0cDov
L3d3dy53My5vcmcvVFIvY29ycy8uCisgKiBAV0VCS0lUX1NFQ1VSSVRZX1BPTElDWV9FTVBUWV9E
T0NVTUVOVDogU3RyaWN0bHkgZW1wdHkgZG9jdW1lbnRzIGFsbG93ZWQKKyAqICAgdG8gY29tbWl0
IHN5bmNocm9ub3VzbHkuCisgKgorICogRmxhZ3MgdXNlZCB0byByZXByZXNlbnQgdGhlIHNlY3Vy
aXR5IHBvbGljeSBvZiBhIFVSSSBzY2hlbWUuCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgV0VC
S0lUX1NFQ1VSSVRZX1BPTElDWV9MT0NBTCAgICAgICAgICAgICAgICAgICAgID0gMSA8PCAxLAor
ICAgIFdFQktJVF9TRUNVUklUWV9QT0xJQ1lfTk9fQUNDRVNTX1RPX09USEVSX1NDSEVNRSA9IDEg
PDwgMiwKKyAgICBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX0RJU1BMQVlfSVNPTEFURUQgICAgICAg
ICAgPSAxIDw8IDMsCisgICAgV0VCS0lUX1NFQ1VSSVRZX1BPTElDWV9TRUNVUkUgICAgICAgICAg
ICAgICAgICAgID0gMSA8PCA0LAorICAgIFdFQktJVF9TRUNVUklUWV9QT0xJQ1lfQ09SU19FTkFC
TEVEICAgICAgICAgICAgICA9IDEgPDwgNSwKKyAgICBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX0VN
UFRZX0RPQ1VNRU5UICAgICAgICAgICAgPSAxIDw8IDYKK30gV2ViS2l0U2VjdXJpdHlQb2xpY3k7
CisKKy8qKgogICogV2ViS2l0VVJJU2NoZW1lUmVxdWVzdENhbGxiYWNrOgogICogQHJlcXVlc3Q6
IHRoZSAjV2ViS2l0VVJJU2NoZW1lUmVxdWVzdAogICogQHVzZXJfZGF0YTogdXNlciBkYXRhIHBh
c3NlZCB0byB0aGUgY2FsbGJhY2sKQEAgLTkyLDY0ICsxMTksNzMgQEAgc3RydWN0IF9XZWJLaXRX
ZWJDb250ZXh0Q2xhc3MgewogfTsKIAogV0VCS0lUX0FQSSBHVHlwZQotd2Via2l0X3dlYl9jb250
ZXh0X2dldF90eXBlICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKK3dlYmtpdF93ZWJf
Y29udGV4dF9nZXRfdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKIAogV0VC
S0lUX0FQSSBXZWJLaXRXZWJDb250ZXh0ICoKLXdlYmtpdF93ZWJfY29udGV4dF9nZXRfZGVmYXVs
dCAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7Cit3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2Rl
ZmF1bHQgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7CiAKIFdFQktJVF9BUEkgdm9pZAot
d2Via2l0X3dlYl9jb250ZXh0X3NldF9jYWNoZV9tb2RlbCAgICAgICAgICAgICAgICAgIChXZWJL
aXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0Q2FjaGVNb2RlbCAgICAgICAg
ICAgICAgIGNhY2hlX21vZGVsKTsKK3dlYmtpdF93ZWJfY29udGV4dF9zZXRfY2FjaGVfbW9kZWwg
ICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXZWJLaXRDYWNoZU1vZGVsICAgICAgICAgICAgICAgY2FjaGVfbW9kZWwpOwogV0VCS0lUX0FQ
SSBXZWJLaXRDYWNoZU1vZGVsCi13ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2NhY2hlX21vZGVsICAg
ICAgICAgICAgICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0KTsK
K3dlYmtpdF93ZWJfY29udGV4dF9nZXRfY2FjaGVfbW9kZWwgICAgICAgICAgICAgICAgICAgIChX
ZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCk7CiAKIFdFQktJVF9BUEkgdm9p
ZAotd2Via2l0X3dlYl9jb250ZXh0X2NsZWFyX2NhY2hlICAgICAgICAgICAgICAgICAgICAgIChX
ZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCk7Cit3ZWJraXRfd2ViX2NvbnRl
eHRfY2xlYXJfY2FjaGUgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAg
ICAgICAgICAgICAgKmNvbnRleHQpOwogCiBXRUJLSVRfQVBJIFdlYktpdERvd25sb2FkICoKLXdl
YmtpdF93ZWJfY29udGV4dF9kb3dubG9hZF91cmkgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0
V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICAg
ICAgICp1cmkpOword2Via2l0X3dlYl9jb250ZXh0X2Rvd25sb2FkX3VyaSAgICAgICAgICAgICAg
ICAgICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdj
aGFyICAgICAgICAgICAgICAgICAgICp1cmkpOwogCiBXRUJLSVRfQVBJIFdlYktpdENvb2tpZU1h
bmFnZXIgKgotd2Via2l0X3dlYl9jb250ZXh0X2dldF9jb29raWVfbWFuYWdlciAgICAgICAgICAg
ICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCk7Cit3ZWJraXRfd2Vi
X2NvbnRleHRfZ2V0X2Nvb2tpZV9tYW5hZ2VyICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViQ29u
dGV4dCAgICAgICAgICAgICAgKmNvbnRleHQpOwogCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93
ZWJfY29udGV4dF9zZXRfYWRkaXRpb25hbF9wbHVnaW5zX2RpcmVjdG9yeSAoV2ViS2l0V2ViQ29u
dGV4dCAgICAgICAgICAgICAgKmNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICAgICAgICpk
aXJlY3RvcnkpOword2Via2l0X3dlYl9jb250ZXh0X3NldF9hZGRpdGlvbmFsX3BsdWdpbnNfZGly
ZWN0b3J5ICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdj
aGFyICAgICAgICAgICAgICAgICAgICpkaXJlY3RvcnkpOwogCiBXRUJLSVRfQVBJIHZvaWQKLXdl
YmtpdF93ZWJfY29udGV4dF9nZXRfcGx1Z2lucyAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0
V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDYW5jZWxsYWJsZSAgICAgICAgICAgICAg
ICAgICpjYW5jZWxsYWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR0FzeW5jUmVhZHlDYWxsYmFjayAgICAgICAgICAgIGNhbGxiYWNrLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9p
bnRlciAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9kYXRhKTsKK3dlYmtpdF93ZWJfY29udGV4
dF9nZXRfcGx1Z2lucyAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAg
ICAgICAgICAgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBHQ2FuY2VsbGFibGUgICAgICAgICAgICAgICAgICAqY2FuY2Vs
bGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR0FzeW5jUmVhZHlDYWxsYmFjayAgICAgICAgICAgIGNhbGxiYWNrLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAg
ICAgICAgICAgICAgICAgICAgICB1c2VyX2RhdGEpOwogCiBXRUJLSVRfQVBJIEdMaXN0ICoKLXdl
YmtpdF93ZWJfY29udGV4dF9nZXRfcGx1Z2luc19maW5pc2ggICAgICAgICAgICAgICAoV2ViS2l0
V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1Jlc3VsdCAgICAgICAgICAgICAg
ICAgICpyZXN1bHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdFcnJvciAgICAgICAgICAgICAgICAgICAgICAgKiplcnJvcik7Cit3ZWJraXRf
d2ViX2NvbnRleHRfZ2V0X3BsdWdpbnNfZmluaXNoICAgICAgICAgICAgICAgICAoV2ViS2l0V2Vi
Q29udGV4dCAgICAgICAgICAgICAgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0FzeW5jUmVzdWx0ICAgICAgICAgICAgICAg
ICAgKnJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHRXJyb3IgICAgICAgICAgICAgICAgICAgICAgICoqZXJyb3IpOwogV0VCS0lU
X0FQSSB2b2lkCi13ZWJraXRfd2ViX2NvbnRleHRfcmVnaXN0ZXJfdXJpX3NjaGVtZSAgICAgICAg
ICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAg
ICAgICAgICAgICAgICAgICAqc2NoZW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0Q2FsbGJhY2sgY2Fs
bGJhY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdwb2ludGVyICAgICAgICAgICAgICAgICAgICAgICB1c2VyX2RhdGEsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdEZXN0cm95Tm90aWZ5
ICAgICAgICAgICAgICAgICB1c2VyX2RhdGFfZGVzdHJveV9mdW5jKTsKK3dlYmtpdF93ZWJfY29u
dGV4dF9yZWdpc3Rlcl91cmlfc2NoZW1lICAgICAgICAgICAgICAgIChXZWJLaXRXZWJDb250ZXh0
ICAgICAgICAgICAgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAgICAgICAqc2No
ZW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdlYktpdFVSSVNjaGVtZVJlcXVlc3RDYWxsYmFjayBjYWxsYmFjaywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAgICAg
ICAgICAgICAgICAgICAgICAgdXNlcl9kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdEZXN0cm95Tm90aWZ5ICAgICAgICAgICAgICAg
ICB1c2VyX2RhdGFfZGVzdHJveV9mdW5jKTsKIAogV0VCS0lUX0FQSSBnYm9vbGVhbgotd2Via2l0
X3dlYl9jb250ZXh0X2dldF9zcGVsbF9jaGVja2luZ19lbmFibGVkICAgICAgIChXZWJLaXRXZWJD
b250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCk7Cit3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3Nw
ZWxsX2NoZWNraW5nX2VuYWJsZWQgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAg
ICAgKmNvbnRleHQpOwogCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfY29udGV4dF9zZXRf
c3BlbGxfY2hlY2tpbmdfZW5hYmxlZCAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAg
ICAgKmNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdib29sZWFuICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVkKTsKK3dlYmtp
dF93ZWJfY29udGV4dF9zZXRfc3BlbGxfY2hlY2tpbmdfZW5hYmxlZCAgICAgICAgIChXZWJLaXRX
ZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgICAg
ICAgICAgZW5hYmxlZCk7CiBXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICogY29uc3QgKgotd2Via2l0
X3dlYl9jb250ZXh0X2dldF9zcGVsbF9jaGVja2luZ19sYW5ndWFnZXMgICAgIChXZWJLaXRXZWJD
b250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCk7Cit3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3Nw
ZWxsX2NoZWNraW5nX2xhbmd1YWdlcyAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAg
ICAgKmNvbnRleHQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfY29udGV4dF9zZXRf
c3BlbGxfY2hlY2tpbmdfbGFuZ3VhZ2VzICAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAg
ICAgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBnY2hhciAqIGNvbnN0ICAgICAgICAgICAqbGFuZ3VhZ2VzKTsK
IAogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX2NvbnRleHRfc2V0X3NwZWxsX2NoZWNraW5n
X2xhbmd1YWdlcyAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBnY2hhciAqIGNvbnN0ICAgICAgICAgICAqbGFuZ3VhZ2VzKTsKK3dlYmtpdF93ZWJfY29udGV4
dF9zZXRfcHJlZmVycmVkX2xhbmd1YWdlcyAgICAgICAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAg
ICAgICAgICAgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqIGNvbnN0ICAgICAgICAgICAqbGFuZ3Vh
Z2VzKTsKKworV0VCS0lUX0FQSSBXZWJLaXRTZWN1cml0eVBvbGljeQord2Via2l0X3dlYl9jb250
ZXh0X2dldF9zZWN1cml0eV9wb2xpY3lfZm9yX3VyaV9zY2hlbWUgKFdlYktpdFdlYkNvbnRleHQg
ICAgICAgICAgICAgICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICAgICAgICpzY2hl
bWUpOwogCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfY29udGV4dF9zZXRfcHJlZmVycmVk
X2xhbmd1YWdlcyAgICAgICAgICAoV2ViS2l0V2ViQ29udGV4dCAgICAgICAgICAgICAgKmNvbnRl
eHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGdjaGFyICogY29uc3QgICAgICAgICAgICpsYW5ndWFnZXMpOword2Via2l0X3dlYl9j
b250ZXh0X3NldF9zZWN1cml0eV9wb2xpY3lfZm9yX3VyaV9zY2hlbWUgKFdlYktpdFdlYkNvbnRl
eHQgICAgICAgICAgICAgICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICAgICAgICpz
Y2hlbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV2ViS2l0U2VjdXJpdHlQb2xpY3kgICAgICAgICAgIHBvbGljeSk7CiAKIEdfRU5EX0RF
Q0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mv
d2Via2l0Mmd0ay1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CmluZGV4IDU5NjQ5OGMuLmI5YTJiM2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0
ay1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9j
cy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dApAQCAtNDMsNiArNDMsMTEgQEAgd2Via2l0X3dlYl9j
b250ZXh0X3NldF9wcmVmZXJyZWRfbGFuZ3VhZ2VzCiBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0Q2Fs
bGJhY2sKIHdlYmtpdF93ZWJfY29udGV4dF9yZWdpc3Rlcl91cmlfc2NoZW1lCiAKKzxTVUJTRUNU
SU9OIFNlY3VyaXR5IFBvbGljeT4KK1dlYktpdFNlY3VyaXR5UG9saWN5Cit3ZWJraXRfd2ViX2Nv
bnRleHRfZ2V0X3NlY3VyaXR5X3BvbGljeV9mb3JfdXJpX3NjaGVtZQord2Via2l0X3dlYl9jb250
ZXh0X3NldF9zZWN1cml0eV9wb2xpY3lfZm9yX3VyaV9zY2hlbWUKKwogPFNVQlNFQ1RJT04gU3Rh
bmRhcmQ+CiBXZWJLaXRXZWJDb250ZXh0Q2xhc3MKIFdFQktJVF9XRUJfQ09OVEVYVApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYktpdFdl
YkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVz
dFdlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IDdjNzEyMjQuLjJhOTFmYzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRXZWJDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0
V2ViS2l0V2ViQ29udGV4dC5jcHAKQEAgLTI5Nyw2ICsyOTcsNjAgQEAgc3RhdGljIHZvaWQgc2Vy
dmVyQ2FsbGJhY2soU291cFNlcnZlciogc2VydmVyLCBTb3VwTWVzc2FnZSogbWVzc2FnZSwgY29u
c3QgY2hhcioKICAgICBzb3VwX21lc3NhZ2VfYm9keV9jb21wbGV0ZShtZXNzYWdlLT5yZXNwb25z
ZV9ib2R5KTsKIH0KIAorc3RhdGljIHZvaWQgdGVzdFdlYkNvbnRleHRTZWN1cml0eVBvbGljeShU
ZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQoreworICAgIFdlYktpdFdlYkNvbnRleHQqIGNvbnRl
eHQgPSB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2RlZmF1bHQoKTsKKworICAgIC8vIENoZWNrIGRl
ZmF1bHQgcG9saWN5IGZvciB3ZWxsIGtub3duIHNjaGVtZXMuCisgICAgZ3VpbnQgcG9saWN5ID0g
d2Via2l0X3dlYl9jb250ZXh0X2dldF9zZWN1cml0eV9wb2xpY3lfZm9yX3VyaV9zY2hlbWUoY29u
dGV4dCwgImh0dHAiKTsKKyAgICBndWludCBtYXNrID0gV0VCS0lUX1NFQ1VSSVRZX1BPTElDWV9D
T1JTX0VOQUJMRUQ7CisgICAgZ19hc3NlcnRfY21wdWludChwb2xpY3kgJiBtYXNrLCA9PSwgbWFz
ayk7CisKKyAgICBwb2xpY3kgPSB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3NlY3VyaXR5X3BvbGlj
eV9mb3JfdXJpX3NjaGVtZShjb250ZXh0LCAiaHR0cHMiKTsKKyAgICBtYXNrID0gV0VCS0lUX1NF
Q1VSSVRZX1BPTElDWV9TRUNVUkUgfCBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX0NPUlNfRU5BQkxF
RDsKKyAgICBnX2Fzc2VydF9jbXB1aW50KHBvbGljeSAmIG1hc2ssID09LCBtYXNrKTsKKworICAg
IHBvbGljeSA9IHdlYmtpdF93ZWJfY29udGV4dF9nZXRfc2VjdXJpdHlfcG9saWN5X2Zvcl91cmlf
c2NoZW1lKGNvbnRleHQsICJmaWxlIik7CisgICAgbWFzayA9IFdFQktJVF9TRUNVUklUWV9QT0xJ
Q1lfTE9DQUw7CisgICAgZ19hc3NlcnRfY21wdWludChwb2xpY3kgJiBtYXNrLCA9PSwgbWFzayk7
CisKKyAgICBwb2xpY3kgPSB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3NlY3VyaXR5X3BvbGljeV9m
b3JfdXJpX3NjaGVtZShjb250ZXh0LCAiZGF0YSIpOworICAgIG1hc2sgPSBXRUJLSVRfU0VDVVJJ
VFlfUE9MSUNZX05PX0FDQ0VTU19UT19PVEhFUl9TQ0hFTUUgfCBXRUJLSVRfU0VDVVJJVFlfUE9M
SUNZX1NFQ1VSRTsKKyAgICBnX2Fzc2VydF9jbXB1aW50KHBvbGljeSAmIG1hc2ssID09LCBtYXNr
KTsKKworICAgIHBvbGljeSA9IHdlYmtpdF93ZWJfY29udGV4dF9nZXRfc2VjdXJpdHlfcG9saWN5
X2Zvcl91cmlfc2NoZW1lKGNvbnRleHQsICJhYm91dCIpOworICAgIG1hc2sgPSBXRUJLSVRfU0VD
VVJJVFlfUE9MSUNZX05PX0FDQ0VTU19UT19PVEhFUl9TQ0hFTUUgfCBXRUJLSVRfU0VDVVJJVFlf
UE9MSUNZX1NFQ1VSRSB8IFdFQktJVF9TRUNVUklUWV9QT0xJQ1lfRU1QVFlfRE9DVU1FTlQ7Cisg
ICAgZ19hc3NlcnRfY21wdWludChwb2xpY3kgJiBtYXNrLCA9PSwgbWFzayk7CisKKyAgICAvLyBD
dXN0b20gc2NoZW1lLgorICAgIHBvbGljeSA9IHdlYmtpdF93ZWJfY29udGV4dF9nZXRfc2VjdXJp
dHlfcG9saWN5X2Zvcl91cmlfc2NoZW1lKGNvbnRleHQsICJmb28iKTsKKyAgICBnX2Fzc2VydCgh
cG9saWN5KTsKKworICAgIHBvbGljeSB8PSBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX0xPQ0FMOwor
ICAgIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfc2VjdXJpdHlfcG9saWN5X2Zvcl91cmlfc2NoZW1l
KGNvbnRleHQsICJmb28iLCBzdGF0aWNfY2FzdDxXZWJLaXRTZWN1cml0eVBvbGljeT4ocG9saWN5
KSk7CisgICAgZ19hc3NlcnRfY21wdWludCh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3NlY3VyaXR5
X3BvbGljeV9mb3JfdXJpX3NjaGVtZShjb250ZXh0LCAiZm9vIiksID09LCBwb2xpY3kpOworCisg
ICAgcG9saWN5IHw9IFdFQktJVF9TRUNVUklUWV9QT0xJQ1lfTk9fQUNDRVNTX1RPX09USEVSX1ND
SEVNRTsKKyAgICB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3NlY3VyaXR5X3BvbGljeV9mb3JfdXJp
X3NjaGVtZShjb250ZXh0LCAiZm9vIiwgc3RhdGljX2Nhc3Q8V2ViS2l0U2VjdXJpdHlQb2xpY3k+
KHBvbGljeSkpOworICAgIGdfYXNzZXJ0X2NtcHVpbnQod2Via2l0X3dlYl9jb250ZXh0X2dldF9z
ZWN1cml0eV9wb2xpY3lfZm9yX3VyaV9zY2hlbWUoY29udGV4dCwgImZvbyIpLCA9PSwgcG9saWN5
KTsKKworICAgIHBvbGljeSB8PSBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX0RJU1BMQVlfSVNPTEFU
RUQ7CisgICAgd2Via2l0X3dlYl9jb250ZXh0X3NldF9zZWN1cml0eV9wb2xpY3lfZm9yX3VyaV9z
Y2hlbWUoY29udGV4dCwgImZvbyIsIHN0YXRpY19jYXN0PFdlYktpdFNlY3VyaXR5UG9saWN5Pihw
b2xpY3kpKTsKKyAgICBnX2Fzc2VydF9jbXB1aW50KHdlYmtpdF93ZWJfY29udGV4dF9nZXRfc2Vj
dXJpdHlfcG9saWN5X2Zvcl91cmlfc2NoZW1lKGNvbnRleHQsICJmb28iKSwgPT0sIHBvbGljeSk7
CisKKyAgICBwb2xpY3kgfD0gV0VCS0lUX1NFQ1VSSVRZX1BPTElDWV9TRUNVUkU7CisgICAgd2Vi
a2l0X3dlYl9jb250ZXh0X3NldF9zZWN1cml0eV9wb2xpY3lfZm9yX3VyaV9zY2hlbWUoY29udGV4
dCwgImZvbyIsIHN0YXRpY19jYXN0PFdlYktpdFNlY3VyaXR5UG9saWN5Pihwb2xpY3kpKTsKKyAg
ICBnX2Fzc2VydF9jbXB1aW50KHdlYmtpdF93ZWJfY29udGV4dF9nZXRfc2VjdXJpdHlfcG9saWN5
X2Zvcl91cmlfc2NoZW1lKGNvbnRleHQsICJmb28iKSwgPT0sIHBvbGljeSk7CisKKyAgICBwb2xp
Y3kgfD0gV0VCS0lUX1NFQ1VSSVRZX1BPTElDWV9DT1JTX0VOQUJMRUQ7CisgICAgd2Via2l0X3dl
Yl9jb250ZXh0X3NldF9zZWN1cml0eV9wb2xpY3lfZm9yX3VyaV9zY2hlbWUoY29udGV4dCwgImZv
byIsIHN0YXRpY19jYXN0PFdlYktpdFNlY3VyaXR5UG9saWN5Pihwb2xpY3kpKTsKKyAgICBnX2Fz
c2VydF9jbXB1aW50KHdlYmtpdF93ZWJfY29udGV4dF9nZXRfc2VjdXJpdHlfcG9saWN5X2Zvcl91
cmlfc2NoZW1lKGNvbnRleHQsICJmb28iKSwgPT0sIHBvbGljeSk7CisKKyAgICBwb2xpY3kgfD0g
V0VCS0lUX1NFQ1VSSVRZX1BPTElDWV9FTVBUWV9ET0NVTUVOVDsKKyAgICB3ZWJraXRfd2ViX2Nv
bnRleHRfc2V0X3NlY3VyaXR5X3BvbGljeV9mb3JfdXJpX3NjaGVtZShjb250ZXh0LCAiZm9vIiwg
c3RhdGljX2Nhc3Q8V2ViS2l0U2VjdXJpdHlQb2xpY3k+KHBvbGljeSkpOworICAgIGdfYXNzZXJ0
X2NtcHVpbnQod2Via2l0X3dlYl9jb250ZXh0X2dldF9zZWN1cml0eV9wb2xpY3lfZm9yX3VyaV9z
Y2hlbWUoY29udGV4dCwgImZvbyIpLCA9PSwgcG9saWN5KTsKK30KKwogdm9pZCBiZWZvcmVBbGwo
KQogewogICAgIGtTZXJ2ZXIgPSBuZXcgV2ViS2l0VGVzdFNlcnZlcigpOwpAQCAtMzA3LDYgKzM2
MSw3IEBAIHZvaWQgYmVmb3JlQWxsKCkKICAgICBVUklTY2hlbWVUZXN0OjphZGQoIldlYktpdFdl
YkNvbnRleHQiLCAidXJpLXNjaGVtZSIsIHRlc3RXZWJDb250ZXh0VVJJU2NoZW1lKTsKICAgICBU
ZXN0OjphZGQoIldlYktpdFdlYkNvbnRleHQiLCAic3BlbGwtY2hlY2tlciIsIHRlc3RXZWJDb250
ZXh0U3BlbGxDaGVja2VyKTsKICAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRXZWJDb250ZXh0
IiwgImxhbmd1YWdlcyIsIHRlc3RXZWJDb250ZXh0TGFuZ3VhZ2VzKTsKKyAgICBUZXN0OjphZGQo
IldlYktpdFdlYkNvbnRleHQiLCAic2VjdXJpdHktcG9saWN5IiwgdGVzdFdlYkNvbnRleHRTZWN1
cml0eVBvbGljeSk7CiB9CiAKIHZvaWQgYWZ0ZXJBbGwoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuY3BwCmluZGV4IGZkZDM2M2EuLjA3NWMwZmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTMzNiw2ICszMzYsMTAgQEAgUGFzc1JlZlB0cjxX
ZWJQcm9jZXNzUHJveHk+IFdlYkNvbnRleHQ6OmNyZWF0ZU5ld1dlYlByb2Nlc3MoKQogICAgIGNv
cHlUb1ZlY3RvcihtX3NjaGVtZXNUb1JlZ2lzdGVyQXNFbXB0eURvY3VtZW50LCBwYXJhbWV0ZXJz
LnVybFNjaGVtZXNSZWdpc3RlcmVyZEFzRW1wdHlEb2N1bWVudCk7CiAgICAgY29weVRvVmVjdG9y
KG1fc2NoZW1lc1RvUmVnaXN0ZXJBc1NlY3VyZSwgcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0
ZXJlZEFzU2VjdXJlKTsKICAgICBjb3B5VG9WZWN0b3IobV9zY2hlbWVzVG9TZXREb21haW5SZWxh
eGF0aW9uRm9yYmlkZGVuRm9yLCBwYXJhbWV0ZXJzLnVybFNjaGVtZXNGb3JXaGljaERvbWFpblJl
bGF4YXRpb25Jc0ZvcmJpZGRlbik7CisgICAgY29weVRvVmVjdG9yKG1fc2NoZW1lc1RvUmVnaXN0
ZXJBc0xvY2FsLCBwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNMb2NhbCk7CisgICAg
Y29weVRvVmVjdG9yKG1fc2NoZW1lc1RvUmVnaXN0ZXJBc05vQWNjZXNzLCBwYXJhbWV0ZXJzLnVy
bFNjaGVtZXNSZWdpc3RlcmVkQXNOb0FjY2Vzcyk7CisgICAgY29weVRvVmVjdG9yKG1fc2NoZW1l
c1RvUmVnaXN0ZXJBc0Rpc3BsYXlJc29sYXRlZCwgcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0
ZXJlZEFzRGlzcGxheUlzb2xhdGVkKTsKKyAgICBjb3B5VG9WZWN0b3IobV9zY2hlbWVzVG9SZWdp
c3RlckFzQ09SU0VuYWJsZWQsIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0NPUlNF
bmFibGVkKTsKIAogICAgIHBhcmFtZXRlcnMuc2hvdWxkQWx3YXlzVXNlQ29tcGxleFRleHRDb2Rl
UGF0aCA9IG1fYWx3YXlzVXNlc0NvbXBsZXhUZXh0Q29kZVBhdGg7CiAgICAgcGFyYW1ldGVycy5z
aG91bGRVc2VGb250U21vb3RoaW5nID0gbV9zaG91bGRVc2VGb250U21vb3RoaW5nOwpAQCAtNjQw
LDYgKzY0NCwzMCBAQCB2b2lkIFdlYkNvbnRleHQ6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRk
ZW5Gb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJiB1cmxTY2hlbQogICAgIHNlbmRUb0FsbFByb2Nl
c3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZv
clVSTFNjaGVtZSh1cmxTY2hlbWUpKTsKIH0KIAordm9pZCBXZWJDb250ZXh0OjpyZWdpc3RlclVS
TFNjaGVtZUFzTG9jYWwoY29uc3QgU3RyaW5nJiB1cmxTY2hlbWUpCit7CisgICAgbV9zY2hlbWVz
VG9SZWdpc3RlckFzTG9jYWwuYWRkKHVybFNjaGVtZSk7CisgICAgc2VuZFRvQWxsUHJvY2Vzc2Vz
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpSZWdpc3RlclVSTFNjaGVtZUFzTG9jYWwodXJsU2NoZW1l
KSk7Cit9CisKK3ZvaWQgV2ViQ29udGV4dDo6cmVnaXN0ZXJVUkxTY2hlbWVBc05vQWNjZXNzKGNv
bnN0IFN0cmluZyYgdXJsU2NoZW1lKQoreworICAgIG1fc2NoZW1lc1RvUmVnaXN0ZXJBc05vQWNj
ZXNzLmFkZCh1cmxTY2hlbWUpOworICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2Vi
UHJvY2Vzczo6UmVnaXN0ZXJVUkxTY2hlbWVBc05vQWNjZXNzKHVybFNjaGVtZSkpOworfQorCit2
b2lkIFdlYkNvbnRleHQ6OnJlZ2lzdGVyVVJMU2NoZW1lQXNEaXNwbGF5SXNvbGF0ZWQoY29uc3Qg
U3RyaW5nJiB1cmxTY2hlbWUpCit7CisgICAgbV9zY2hlbWVzVG9SZWdpc3RlckFzRGlzcGxheUlz
b2xhdGVkLmFkZCh1cmxTY2hlbWUpOworICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6
V2ViUHJvY2Vzczo6UmVnaXN0ZXJVUkxTY2hlbWVBc0Rpc3BsYXlJc29sYXRlZCh1cmxTY2hlbWUp
KTsKK30KKwordm9pZCBXZWJDb250ZXh0OjpyZWdpc3RlclVSTFNjaGVtZUFzQ09SU0VuYWJsZWQo
Y29uc3QgU3RyaW5nJiB1cmxTY2hlbWUpCit7CisgICAgbV9zY2hlbWVzVG9SZWdpc3RlckFzQ09S
U0VuYWJsZWQuYWRkKHVybFNjaGVtZSk7CisgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzOjpSZWdpc3RlclVSTFNjaGVtZUFzQ09SU0VuYWJsZWQodXJsU2NoZW1lKSk7
Cit9CisKIHZvaWQgV2ViQ29udGV4dDo6c2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsIGNhY2hlTW9k
ZWwpCiB7CiAgICAgbV9jYWNoZU1vZGVsID0gY2FjaGVNb2RlbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29udGV4dC5oCmluZGV4IGRmZWZmMWYuLjFkMDUxYzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbnRleHQuaApAQCAtMTMyLDYgKzEzMiwxMCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCByZWdpc3RlclVSTFNjaGVtZUFzRW1wdHlEb2N1bWVudChjb25zdCBTdHJpbmcmKTsKICAgICB2
b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNTZWN1cmUoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBz
ZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYpOwor
ICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsKGNvbnN0IFN0cmluZyYpOworICAgIHZv
aWQgcmVnaXN0ZXJVUkxTY2hlbWVBc05vQWNjZXNzKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQg
cmVnaXN0ZXJVUkxTY2hlbWVBc0Rpc3BsYXlJc29sYXRlZChjb25zdCBTdHJpbmcmKTsKKyAgICB2
b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNDT1JTRW5hYmxlZChjb25zdCBTdHJpbmcmKTsKIAogICAg
IHZvaWQgYWRkVmlzaXRlZExpbmsoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBhZGRWaXNpdGVk
TGlua0hhc2goV2ViQ29yZTo6TGlua0hhc2gpOwpAQCAtMjk1LDYgKzI5OSwxMCBAQCBwcml2YXRl
OgogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3NjaGVtZXNUb1JlZ2lzdGVyQXNFbXB0eURvY3VtZW50
OwogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3NjaGVtZXNUb1JlZ2lzdGVyQXNTZWN1cmU7CiAgICAg
SGFzaFNldDxTdHJpbmc+IG1fc2NoZW1lc1RvU2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZv
cjsKKyAgICBIYXNoU2V0PFN0cmluZz4gbV9zY2hlbWVzVG9SZWdpc3RlckFzTG9jYWw7CisgICAg
SGFzaFNldDxTdHJpbmc+IG1fc2NoZW1lc1RvUmVnaXN0ZXJBc05vQWNjZXNzOworICAgIEhhc2hT
ZXQ8U3RyaW5nPiBtX3NjaGVtZXNUb1JlZ2lzdGVyQXNEaXNwbGF5SXNvbGF0ZWQ7CisgICAgSGFz
aFNldDxTdHJpbmc+IG1fc2NoZW1lc1RvUmVnaXN0ZXJBc0NPUlNFbmFibGVkOwogCiAgICAgYm9v
bCBtX2Fsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoOwogICAgIGJvb2wgbV9zaG91bGRVc2VG
b250U21vb3RoaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5k
ZXggZWY4NmJmMy4uZjkyNjdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCkBAIC0yOTIsNiArMjkyLDI2IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0RG9tYWluUmVs
YXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShjb25zdCBTdHJpbmcmIHVybFNjaGVtCiAgICAg
U2NoZW1lUmVnaXN0cnk6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUo
dHJ1ZSwgdXJsU2NoZW1lKTsKIH0KIAordm9pZCBXZWJQcm9jZXNzOjpyZWdpc3RlclVSTFNjaGVt
ZUFzTG9jYWwoY29uc3QgU3RyaW5nJiB1cmxTY2hlbWUpIGNvbnN0Cit7CisgICAgU2NoZW1lUmVn
aXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNMb2NhbCh1cmxTY2hlbWUpOworfQorCit2b2lkIFdl
YlByb2Nlc3M6OnJlZ2lzdGVyVVJMU2NoZW1lQXNOb0FjY2Vzcyhjb25zdCBTdHJpbmcmIHVybFNj
aGVtZSkgY29uc3QKK3sKKyAgICBTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc05v
QWNjZXNzKHVybFNjaGVtZSk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzczo6cmVnaXN0ZXJVUkxTY2hl
bWVBc0Rpc3BsYXlJc29sYXRlZChjb25zdCBTdHJpbmcmIHVybFNjaGVtZSkgY29uc3QKK3sKKyAg
ICBTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0Rpc3BsYXlJc29sYXRlZCh1cmxT
Y2hlbWUpOworfQorCit2b2lkIFdlYlByb2Nlc3M6OnJlZ2lzdGVyVVJMU2NoZW1lQXNDT1JTRW5h
YmxlZChjb25zdCBTdHJpbmcmIHVybFNjaGVtZSkgY29uc3QKK3sKKyAgICBTY2hlbWVSZWdpc3Ry
eTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0NPUlNFbmFibGVkKHVybFNjaGVtZSk7Cit9CisKIHZvaWQg
V2ViUHJvY2Vzczo6c2V0RGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwoZG91YmxlIHRpbWVv
dXRJbnRlcnZhbCkKIHsKICAgICBSZXNvdXJjZVJlcXVlc3Q6OnNldERlZmF1bHRUaW1lb3V0SW50
ZXJ2YWwodGltZW91dEludGVydmFsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmgKaW5kZXggOTUzYWYyOS4uMGY1NDJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmgKQEAgLTE5OSw2ICsxOTksMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZ2lzdGVy
VVJMU2NoZW1lQXNFbXB0eURvY3VtZW50KGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVnaXN0
ZXJVUkxTY2hlbWVBc1NlY3VyZShjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2b2lkIHNldERv
bWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJikgY29uc3Q7
CisgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzTG9jYWwoY29uc3QgU3RyaW5nJikgY29uc3Q7
CisgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzTm9BY2Nlc3MoY29uc3QgU3RyaW5nJikgY29u
c3Q7CisgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkKGNvbnN0IFN0
cmluZyYpIGNvbnN0OworICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0NPUlNFbmFibGVkKGNv
bnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZvaWQgc2V0RGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50
ZXJ2YWwoZG91YmxlKTsKICAgICB2b2lkIHNldEFsd2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRo
KGJvb2wpOwogICAgIHZvaWQgc2V0U2hvdWxkVXNlRm9udFNtb290aGluZyhib29sKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAy
MjcxNmNlLi4zMzZmZjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluCkBAIC00Miw2ICs0MiwxMCBAQCBtZXNzYWdlcyAtPiBXZWJQcm9j
ZXNzIHsKICAgICBSZWdpc3RlclVSTFNjaGVtZUFzRW1wdHlEb2N1bWVudChXVEY6OlN0cmluZyBz
Y2hlbWUpCiAgICAgUmVnaXN0ZXJVUkxTY2hlbWVBc1NlY3VyZShXVEY6OlN0cmluZyBzY2hlbWUp
CiAgICAgU2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShXVEY6OlN0cmlu
ZyBzY2hlbWUpCisgICAgUmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsKFdURjo6U3RyaW5nIHNjaGVt
ZSkKKyAgICBSZWdpc3RlclVSTFNjaGVtZUFzTm9BY2Nlc3MoV1RGOjpTdHJpbmcgc2NoZW1lKQor
ICAgIFJlZ2lzdGVyVVJMU2NoZW1lQXNEaXNwbGF5SXNvbGF0ZWQoV1RGOjpTdHJpbmcgc2NoZW1l
KQorICAgIFJlZ2lzdGVyVVJMU2NoZW1lQXNDT1JTRW5hYmxlZChXVEY6OlN0cmluZyBzY2hlbWUp
CiAgICAgU2V0RGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwoZG91YmxlIHRpbWVvdXRJbnRl
cnZhbCkKICAgICBTZXRBbHdheXNVc2VzQ29tcGxleFRleHRDb2RlUGF0aChib29sIGFsd2F5c1Vz
ZUNvbXBsZXhUZXh0KQogICAgIFNldFNob3VsZFVzZUZvbnRTbW9vdGhpbmcoYm9vbCB1c2VGb250
U21vb3RoaW5nKQo=
</data>
<flag name="review"
          id="175105"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164548</attachid>
            <date>2012-09-18 06:41:55 -0700</date>
            <delta_ts>2012-09-18 10:40:19 -0700</delta_ts>
            <desc>New patch using a different API</desc>
            <filename>wk2-security-policy3.diff</filename>
            <type>text/plain</type>
            <size>47124</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmZGUyYTYxLi43ZGRkNmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTItMDktMTggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEFkZCBBUEkgdG8gZ2V0L3NldCB0aGUgc2VjdXJpdHkgcG9saWN5
IG9mIGEgZ2l2ZW4gVVJJIHNjaGVtZSB0byBXZWJLaXQyIEdUSysKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NDk3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjogQWRkIG5ldyBl
eHBvcnRlZCBzeW1ib2xzLgorCiAyMDEyLTA5LTE5ICBBbGxhbiBTYW5kZmVsZCBKZW5zZW4gIDxh
bGxhbi5qZW5zZW5Abm9raWEuY29tPgogCiAgICAgICAgIFJldmVydCByMTI3NDU3IGFuZCBmb2xs
b3dpbmcgZml4ZXMgZHVlIHRvIHNldmVyYWwgaGl0LXRlc3RpbmcgcmVncmVzc2lvbnMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCA4NDM3ODc3Li42OTFmYjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsODggQEAKIDIw
MTItMDktMTggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCisg
ICAgICAgIFtHVEtdIEFkZCBBUEkgdG8gZ2V0L3NldCB0aGUgc2VjdXJpdHkgcG9saWN5IG9mIGEg
Z2l2ZW4gVVJJIHNjaGVtZSB0byBXZWJLaXQyIEdUSysKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NDk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFdlYktpdFNlY3VyaXR5TWFuYWdlciBvYmplY3Qg
YXNzb2NpYXRlZCB0byBhIFdlYktpdFdlYkNvbnRleHQKKyAgICAgICAgdG8gZ2V0L3NldCB0aGUg
c2VjdXJpdHkgcG9saWN5IG9mIGEgVVJJIHNjaGVtZS4KKworICAgICAgICAqIEdOVW1ha2VmaWxl
Lmxpc3QuYW06IEFkZCBuZXcgZmlsZXMgdG8gY29tcGlsYXRpb24uCisgICAgICAgICogU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOiBFbmNvZGUgdGhlIGxpc3Qgb2YKKyAg
ICAgICAgc2NoZW1lcyB0byBiZSByZWlnc3RlcmVkIGFzIExvY2FsLCBOb0FjY2VzcywgRGlzcGxh
eUlzb2xhdGVkIGFuZAorICAgICAgICBDT1JTRW5hYmxlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKTogRGVjb2RlIHRoZSBsaXN0IG9mCisg
ICAgICAgIHNjaGVtZXMgdG8gYmUgcmVpZ3N0ZXJlZCBhcyBMb2NhbCwgTm9BY2Nlc3MsIERpc3Bs
YXlJc29sYXRlZCBhbmQKKyAgICAgICAgQ09SU0VuYWJsZWQuCisgICAgICAgICogU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMpOiBBZGQgbmV3IHBhcmFtZXRlcnMgdG8gYmUgYWJsZSB0bworICAgICAgICBy
ZWdpc3RlciBzY2hlbWVzIGFzIExvY2FsLCBOb0FjY2VzcywgRGlzcGxheUlzb2xhdGVkIGFuZAor
ICAgICAgICBDT1JTRW5hYmxlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRT
ZWN1cml0eU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKHdlYmtpdF9zZWN1cml0eV9tYW5h
Z2VyX2luaXQpOgorICAgICAgICAod2Via2l0U2VjdXJpdHlNYW5hZ2VyRmluYWxpemUpOgorICAg
ICAgICAod2Via2l0X3NlY3VyaXR5X21hbmFnZXJfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJr
aXRTZWN1cml0eU1hbmFnZXJDcmVhdGUpOiBQcml2YXRlIGZ1bmN0aW9uIHRvIGNyZWF0ZSB0aGUK
KyAgICAgICAgV2ViS2l0U2VjdXJpdHlNYW5hZ2VyIG9iamVjdCBhc3NvY2lhdGVkIHRvIHRoZSBn
aXZlbgorICAgICAgICBXZWJLaXRXZWJDb250ZXh0LgorICAgICAgICAocmVnaXN0ZXJTZWN1cml0
eVBvbGljeUZvclVSSVNjaGVtZSk6CisgICAgICAgIChjaGVja1NlY3VyaXR5UG9saWN5Rm9yVVJJ
U2NoZW1lKToKKyAgICAgICAgKHdlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3JlZ2lzdGVyX3VyaV9z
Y2hlbWVfYXNfbG9jYWwpOgorICAgICAgICAod2Via2l0X3NlY3VyaXR5X21hbmFnZXJfdXJpX3Nj
aGVtZV9pc19sb2NhbCk6CisgICAgICAgICh3ZWJraXRfc2VjdXJpdHlfbWFuYWdlcl9yZWdpc3Rl
cl91cmlfc2NoZW1lX2FzX25vX2FjY2Vzcyk6CisgICAgICAgICh3ZWJraXRfc2VjdXJpdHlfbWFu
YWdlcl91cmlfc2NoZW1lX2lzX25vX2FjY2Vzcyk6CisgICAgICAgICh3ZWJraXRfc2VjdXJpdHlf
bWFuYWdlcl9yZWdpc3Rlcl91cmlfc2NoZW1lX2FzX2Rpc3BsYXlfaXNvbGF0ZWQpOgorICAgICAg
ICAod2Via2l0X3NlY3VyaXR5X21hbmFnZXJfdXJpX3NjaGVtZV9pc19kaXNwbGF5X2lzb2xhdGVk
KToKKyAgICAgICAgKHdlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3JlZ2lzdGVyX3VyaV9zY2hlbWVf
YXNfc2VjdXJlKToKKyAgICAgICAgKHdlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3VyaV9zY2hlbWVf
aXNfc2VjdXJlKToKKyAgICAgICAgKHdlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3JlZ2lzdGVyX3Vy
aV9zY2hlbWVfYXNfY29yc19lbmFibGVkKToKKyAgICAgICAgKHdlYmtpdF9zZWN1cml0eV9tYW5h
Z2VyX3VyaV9zY2hlbWVfaXNfY29yc19lbmFibGVkKToKKyAgICAgICAgKHdlYmtpdF9zZWN1cml0
eV9tYW5hZ2VyX3JlZ2lzdGVyX3VyaV9zY2hlbWVfYXNfZW1wdHlfZG9jdW1lbnQpOgorICAgICAg
ICAod2Via2l0X3NlY3VyaXR5X21hbmFnZXJfdXJpX3NjaGVtZV9pc19lbXB0eV9kb2N1bWVudCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2VjdXJpdHlNYW5hZ2VyLmg6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNlY3VyaXR5TWFuYWdlclBy
aXZhdGUuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29u
dGV4dC5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3NlY3VyaXR5X21hbmFn
ZXIpOiBSZXR1cm4gdGhlCisgICAgICAgIFdlYktpdFNlY3VyaXR5TWFuYWdlciBvYmplY3QsIGNy
ZWF0aW5nIGl0IGJlZm9yZSBpZiBpdCBkb2Vzbid0IGV4aXN0LgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sOiBBZGQgbmV3IHNlY3Rpb24gZm9yCisgICAgICAg
IFdlYktpdFNlY3VyaXR5TWFuYWdlci4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9kb2Nz
L3dlYmtpdDJndGstc2VjdGlvbnMudHh0OiBBZGQgbmV3IHN5bWJvbHMuCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwOgorICAgICAgICAo
dGVzdFdlYkNvbnRleHRTZWN1cml0eVBvbGljeSk6CisgICAgICAgIChiZWZvcmVBbGwpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaDogQWRkIFdlYktpdFNlY3VyaXR5TWFu
YWdlci5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29udGV4dDo6Y3JlYXRlTmV3V2ViUHJvY2Vzcyk6IENvcHkgbmV3IHZlY3Rvcgor
ICAgICAgICBzY2hlbWVzLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpyZWdpc3RlclVS
TFNjaGVtZUFzTG9jYWwpOiBTZW5kIGEgbWVzc2FnZSB0bworICAgICAgICBXZWJQcm9jZXNzIHRv
IHJlZ2lzdGVyIHRoZSBnaXZlbiBVUkwgc2NoZW1lIGFzIExvY2FsLgorICAgICAgICAoV2ViS2l0
OjpXZWJDb250ZXh0OjpyZWdpc3RlclVSTFNjaGVtZUFzTm9BY2Nlc3MpOiBTZW5kIGEgbWVzc2Fn
ZQorICAgICAgICB0byBXZWJQcm9jZXNzIHRvIHJlZ2lzdGVyIHRoZSBnaXZlbiBVUkwgc2NoZW1l
IGFzIE5vQWNjZXNzLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpyZWdpc3RlclVSTFNj
aGVtZUFzRGlzcGxheUlzb2xhdGVkKTogU2VuZCBhCisgICAgICAgIG1lc3NhZ2UgdG8gV2ViUHJv
Y2VzcyB0byByZWdpc3RlciB0aGUgZ2l2ZW4gVVJMIHNjaGVtZSBhcworICAgICAgICBEaXNwbGF5
SXNvbGF0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnJlZ2lzdGVyVVJMU2NoZW1l
QXNDT1JTRW5hYmxlZCk6IFNlbmQgYQorICAgICAgICBtZXNzYWdlIHRvIFdlYlByb2Nlc3MgdG8g
cmVnaXN0ZXIgdGhlIGdpdmVuIFVSTCBzY2hlbWUgYXMKKyAgICAgICAgQ09SU0VuYWJsZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvbnRleHQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OnJlZ2lzdGVyVVJMU2NoZW1lQXNMb2NhbCk6IFJlZ2lzdGVyIHRoZQorICAgICAg
ICBnaXZlbiBVUkwgc2NoZW1lIGFzIExvY2FsIGluIHRoZSBTY2hlbWVSZWdpc3RyeS4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cmVnaXN0ZXJVUkxTY2hlbWVBc05vQWNjZXNzKTogUmVn
aXN0ZXIgdGhlCisgICAgICAgIGdpdmVuIFVSTCBzY2hlbWUgYXMgTm9BY2Nlc3MgaW4gdGhlIFNj
aGVtZVJlZ2lzdHJ5LgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpyZWdpc3RlclVSTFNj
aGVtZUFzRGlzcGxheUlzb2xhdGVkKTogUmVnaXN0ZXIKKyAgICAgICAgdGhlIGdpdmVuIFVSTCBz
Y2hlbWUgYXMgRGlzcGxheUlzb2xhdGVkIGluIHRoZSBTY2hlbWVSZWdpc3RyeS4KKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6cmVnaXN0ZXJVUkxTY2hlbWVBc0NPUlNFbmFibGVkKTogUmVn
aXN0ZXIgdGhlCisgICAgICAgIGdpdmVuIFVSTCBzY2hlbWUgYXMgQ09SU0VuYWJsZWQgaW4gdGhl
IFNjaGVtZVJlZ2lzdHJ5LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjogQWRkIG5ldyBtZXNzYWdl
cy4KKworMjAxMi0wOS0xOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5j
b20+CisKICAgICAgICAgW0dUS10gU2V0IHRoZSBhcmVhIG9mIHRvb2x0aXBzIGluIFdlYktpdDIK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NjE4CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KaW5kZXggZTc4NDExOC4uYmM4ZGQ2YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KQEAgLTI3MSw3ICsyNzEsMTAgQEAgX19aTjdXZWJDb3JlMTRSZXNvdXJjZUhhbmRsZTM1
Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25FUEsxMF9fQ0ZTdHJpbmcKIF9fWk43
V2ViQ29yZTE0UmVzb3VyY2VMb2FkZXIxNGNhbmNlbGxlZEVycm9yRXYKIF9fWk43V2ViQ29yZTE0
U2NoZW1lUmVnaXN0cnkyNHJlZ2lzdGVyVVJMU2NoZW1lQXNMb2NhbEVSS04zV1RGNlN0cmluZ0UK
IF9fWk43V2ViQ29yZTE0U2NoZW1lUmVnaXN0cnkyNXJlZ2lzdGVyVVJMU2NoZW1lQXNTZWN1cmVF
UktOM1dURjZTdHJpbmdFCitfX1pON1dlYkNvcmUxNFNjaGVtZVJlZ2lzdHJ5MjdyZWdpc3RlclVS
TFNjaGVtZUFzTm9BY2Nlc3NFUktOM1dURjZTdHJpbmdFCitfX1pON1dlYkNvcmUxNFNjaGVtZVJl
Z2lzdHJ5MzByZWdpc3RlclVSTFNjaGVtZUFzQ09SU0VuYWJsZWRFUktOM1dURjZTdHJpbmdFCiBf
X1pON1dlYkNvcmUxNFNjaGVtZVJlZ2lzdHJ5MzJyZWdpc3RlclVSTFNjaGVtZUFzRW1wdHlEb2N1
bWVudEVSS04zV1RGNlN0cmluZ0UKK19fWk43V2ViQ29yZTE0U2NoZW1lUmVnaXN0cnkzNHJlZ2lz
dGVyVVJMU2NoZW1lQXNEaXNwbGF5SXNvbGF0ZWRFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNv
cmUxNFNjaGVtZVJlZ2lzdHJ5MzRzaG91bGRMb2FkVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50RVJL
TjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTY2hlbWVSZWdpc3RyeTQwc2V0RG9tYWluUmVs
YXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZUViUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNv
cmUxNFNjaGVtZVJlZ2lzdHJ5NThyZWdpc3RlclVSTFNjaGVtZUFzQWxsb3dpbmdEYXRhYmFzZUFj
Y2Vzc0luUHJpdmF0ZUJyb3dzaW5nRVJLTjNXVEY2U3RyaW5nRQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KaW5kZXggZjEwMjQ5ZC4uNDFkMzExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5s
aXN0LmFtCkBAIC0xMTgsNiArMTE4LDcgQEAgd2Via2l0Mmd0a19oX2FwaSArPSBcCiAJJChXZWJL
aXQyKS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJhdGlvbi5oIFwKIAkkKFdlYktp
dDIpL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJlc3BvbnNlUG9saWN5RGVjaXNpb24uaCBcCiAJ
JChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTY3JpcHREaWFsb2cuaCBcCisJJChX
ZWJLaXQyKS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZWN1cml0eU1hbmFnZXIuaCBcCiAJJChX
ZWJLaXQyKS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5oIFwKIAkkKFdlYktpdDIp
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJlcXVlc3QuaCBcCiAJJChXZWJLaXQyKS9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXNwb25zZS5oIFwKQEAgLTY5Nyw2ICs2OTgsOSBAQCB3
ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFNjcmlwdERpYWxvZy5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFNjcmlwdERpYWxvZy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRTY3JpcHREaWFsb2dQcml2YXRlLmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFNlY3VyaXR5TWFuYWdlci5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNlY3VyaXR5TWFuYWdlci5oIFwKKwlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZWN1cml0eU1hbmFnZXJQcml2YXRlLmggXAogCVNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmNwcCBcCiAJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuaCBcCiAJU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3NQcml2YXRlLmggXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCmluZGV4IDQzMzlkNTkuLjMxZjExYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTYwLDYgKzYw
LDEwIEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJUEM6
OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uCiAgICAgZW5jb2Rlci0+ZW5jb2RlKHVybFNj
aGVtZXNSZWdpc3RlcmVyZEFzRW1wdHlEb2N1bWVudCk7CiAgICAgZW5jb2Rlci0+ZW5jb2RlKHVy
bFNjaGVtZXNSZWdpc3RlcmVkQXNTZWN1cmUpOwogICAgIGVuY29kZXItPmVuY29kZSh1cmxTY2hl
bWVzRm9yV2hpY2hEb21haW5SZWxheGF0aW9uSXNGb3JiaWRkZW4pOworICAgIGVuY29kZXItPmVu
Y29kZSh1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzTG9jYWwpOworICAgIGVuY29kZXItPmVuY29kZSh1
cmxTY2hlbWVzUmVnaXN0ZXJlZEFzTm9BY2Nlc3MpOworICAgIGVuY29kZXItPmVuY29kZSh1cmxT
Y2hlbWVzUmVnaXN0ZXJlZEFzRGlzcGxheUlzb2xhdGVkKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUo
dXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0NPUlNFbmFibGVkKTsKICAgICBlbmNvZGVyLT5lbmNvZGUo
bWltZVR5cGVzV2l0aEN1c3RvbVJlcHJlc2VudGF0aW9uKTsKICAgICBlbmNvZGVyLT5lbmNvZGVF
bnVtKGNhY2hlTW9kZWwpOwogICAgIGVuY29kZXItPmVuY29kZShzaG91bGRUcmFja1Zpc2l0ZWRM
aW5rcyk7CkBAIC0xMzQsNiArMTM4LDE0IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLnVy
bFNjaGVtZXNGb3JXaGljaERvbWFpblJlbGF4YXRpb25Jc0ZvcmJpZGRlbikpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLnVybFNjaGVt
ZXNSZWdpc3RlcmVkQXNMb2NhbCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRl
Y29kZXItPmRlY29kZShwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNOb0FjY2Vzcykp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0
ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNEaXNwbGF5SXNvbGF0ZWQpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy51cmxTY2hlbWVz
UmVnaXN0ZXJlZEFzQ09SU0VuYWJsZWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5taW1lVHlwZXNXaXRoQ3VzdG9tUmVwcmVzZW50
YXRpb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVF
bnVtKHBhcmFtZXRlcnMuY2FjaGVNb2RlbCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA5ZmFlMTdmLi44OTJhYjhi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKQEAgLTY0LDYgKzY0LDEwIEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzIHsKICAgICBWZWN0b3I8U3RyaW5nPiB1cmxTY2hlbWVzUmVnaXN0ZXJlcmRBc0Vt
cHR5RG9jdW1lbnQ7CiAgICAgVmVjdG9yPFN0cmluZz4gdXJsU2NoZW1lc1JlZ2lzdGVyZWRBc1Nl
Y3VyZTsKICAgICBWZWN0b3I8U3RyaW5nPiB1cmxTY2hlbWVzRm9yV2hpY2hEb21haW5SZWxheGF0
aW9uSXNGb3JiaWRkZW47CisgICAgVmVjdG9yPFN0cmluZz4gdXJsU2NoZW1lc1JlZ2lzdGVyZWRB
c0xvY2FsOworICAgIFZlY3RvcjxTdHJpbmc+IHVybFNjaGVtZXNSZWdpc3RlcmVkQXNOb0FjY2Vz
czsKKyAgICBWZWN0b3I8U3RyaW5nPiB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzRGlzcGxheUlzb2xh
dGVkOworICAgIFZlY3RvcjxTdHJpbmc+IHVybFNjaGVtZXNSZWdpc3RlcmVkQXNDT1JTRW5hYmxl
ZDsKIAogICAgIC8vIE1JTUUgdHlwZXMgZm9yIHdoaWNoIHRoZSBVSSBwcm9jZXNzIHdpbGwgaGFu
ZGxlIHNob3dpbmcgdGhlIGRhdGEuCiAgICAgVmVjdG9yPFN0cmluZz4gbWltZVR5cGVzV2l0aEN1
c3RvbVJlcHJlc2VudGF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0U2VjdXJpdHlNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFNlY3VyaXR5TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uODcxY2ZmOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNlY3VyaXR5TWFuYWdlci5jcHAKQEAgLTAsMCAr
MSwzMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiwxIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRTZWN1cml0eU1hbmFnZXIuaCIKKworI2luY2x1
ZGUgIldlYkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJLaXRTZWN1cml0eU1hbmFnZXJQcml2YXRl
LmgiCisjaW5jbHVkZSAiV2ViS2l0V2ViQ29udGV4dFByaXZhdGUuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL1NjaGVtZVJlZ2lzdHJ5Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK3R5cGVk
ZWYgZW51bSB7CisgICAgU2VjdXJpdHlQb2xpY3lMb2NhbCwKKyAgICBTZWN1cml0eVBvbGljeU5v
QWNjZXNzLAorICAgIFNlY3VyaXR5UG9saWN5RGlzcGxheUlzb2xhdGVkLAorICAgIFNlY3VyaXR5
UG9saWN5U2VjdXJlLAorICAgIFNlY3VyaXR5UG9saWN5Q09SU0VuYWJsZWQsCisgICAgU2VjdXJp
dHlQb2xpY3lFbXB0eURvY3VtZW50Cit9IFNlY3VyaXR5UG9saWN5OworCitzdHJ1Y3QgX1dlYktp
dFNlY3VyaXR5TWFuYWdlclByaXZhdGUgeworICAgIFdlYktpdFdlYkNvbnRleHQqIHdlYkNvbnRl
eHQ7Cit9OworCitHX0RFRklORV9UWVBFKFdlYktpdFNlY3VyaXR5TWFuYWdlciwgd2Via2l0X3Nl
Y3VyaXR5X21hbmFnZXIsIEdfVFlQRV9PQkpFQ1QpCisKK3N0YXRpYyB2b2lkIHdlYmtpdF9zZWN1
cml0eV9tYW5hZ2VyX2luaXQoV2ViS2l0U2VjdXJpdHlNYW5hZ2VyKiBtYW5hZ2VyKQoreworICAg
IFdlYktpdFNlY3VyaXR5TWFuYWdlclByaXZhdGUqIHByaXYgPSBHX1RZUEVfSU5TVEFOQ0VfR0VU
X1BSSVZBVEUobWFuYWdlciwgV0VCS0lUX1RZUEVfU0VDVVJJVFlfTUFOQUdFUiwgV2ViS2l0U2Vj
dXJpdHlNYW5hZ2VyUHJpdmF0ZSk7CisgICAgbWFuYWdlci0+cHJpdiA9IHByaXY7CisgICAgbmV3
IChwcml2KSBXZWJLaXRTZWN1cml0eU1hbmFnZXJQcml2YXRlKCk7Cit9CisKK3N0YXRpYyB2b2lk
IHdlYmtpdFNlY3VyaXR5TWFuYWdlckZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICBX
ZWJLaXRTZWN1cml0eU1hbmFnZXJQcml2YXRlKiBwcml2ID0gV0VCS0lUX1NFQ1VSSVRZX01BTkFH
RVIob2JqZWN0KS0+cHJpdjsKKyAgICBwcml2LT5+V2ViS2l0U2VjdXJpdHlNYW5hZ2VyUHJpdmF0
ZSgpOworICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3BhcmVudF9j
bGFzcyktPmZpbmFsaXplKG9iamVjdCk7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF9zZWN1cml0
eV9tYW5hZ2VyX2NsYXNzX2luaXQoV2ViS2l0U2VjdXJpdHlNYW5hZ2VyQ2xhc3MqIGZpbmRDbGFz
cykKK3sKKyAgICBHT2JqZWN0Q2xhc3MqIGdPYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKGZp
bmRDbGFzcyk7CisgICAgZ09iamVjdENsYXNzLT5maW5hbGl6ZSA9IHdlYmtpdFNlY3VyaXR5TWFu
YWdlckZpbmFsaXplOworCisgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKGZpbmRDbGFzcywg
c2l6ZW9mKFdlYktpdFNlY3VyaXR5TWFuYWdlclByaXZhdGUpKTsKK30KKworV2ViS2l0U2VjdXJp
dHlNYW5hZ2VyKiB3ZWJraXRTZWN1cml0eU1hbmFnZXJDcmVhdGUoV2ViS2l0V2ViQ29udGV4dCog
d2ViQ29udGV4dCkKK3sKKyAgICBXZWJLaXRTZWN1cml0eU1hbmFnZXIqIG1hbmFnZXIgPSBXRUJL
SVRfU0VDVVJJVFlfTUFOQUdFUihnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfU0VDVVJJVFlfTUFO
QUdFUiwgTlVMTCkpOworICAgIG1hbmFnZXItPnByaXYtPndlYkNvbnRleHQgPSB3ZWJDb250ZXh0
OworICAgIHJldHVybiBtYW5hZ2VyOworfQorCitzdGF0aWMgdm9pZCByZWdpc3RlclNlY3VyaXR5
UG9saWN5Rm9yVVJJU2NoZW1lKFdlYktpdFNlY3VyaXR5TWFuYWdlciogbWFuYWdlciwgY29uc3Qg
Y2hhciogc2NoZW1lLCBTZWN1cml0eVBvbGljeSBwb2xpY3kpCit7CisgICAgU3RyaW5nIHVybFNj
aGVtZSA9IFN0cmluZzo6ZnJvbVVURjgoc2NoZW1lKTsKKyAgICBXZWJDb250ZXh0KiB3ZWJDb250
ZXh0ID0gdG9JbXBsKHdlYmtpdFdlYkNvbnRleHRHZXRXS0NvbnRleHQobWFuYWdlci0+cHJpdi0+
d2ViQ29udGV4dCkpOworCisgICAgLy8gV2Uga2VlcCB0aGUgV2ViQ29yZTo6U2NoZW1lUmVnaXN0
cnkgb2YgdGhlIFVJIHByb2Nlc3MgaW4gc3luYyB3aXRoIHRoZQorICAgIC8vIHdlYiBwcm9jZXNz
IG9uZSwgc28gdGhhdCB3ZSBjYW4gcmV0dXJuIHRoZSBTZWN1cml0eVBvbGljeSBmb3IKKyAgICAv
LyBhIGdpdmVuIFVSSSBzY2hlbWUgc3luY2hyb25vdXNseSB3aXRob3V0IGJsb2NraW5nLgorICAg
IHN3aXRjaCAocG9saWN5KSB7CisgICAgY2FzZSBTZWN1cml0eVBvbGljeUxvY2FsOgorICAgICAg
ICBXZWJDb3JlOjpTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsKHVybFNj
aGVtZSk7CisgICAgICAgIHdlYkNvbnRleHQtPnJlZ2lzdGVyVVJMU2NoZW1lQXNMb2NhbCh1cmxT
Y2hlbWUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlY3VyaXR5UG9saWN5Tm9BY2Nlc3M6
CisgICAgICAgIFdlYkNvcmU6OlNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzTm9B
Y2Nlc3ModXJsU2NoZW1lKTsKKyAgICAgICAgd2ViQ29udGV4dC0+cmVnaXN0ZXJVUkxTY2hlbWVB
c05vQWNjZXNzKHVybFNjaGVtZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VjdXJpdHlQ
b2xpY3lEaXNwbGF5SXNvbGF0ZWQ6CisgICAgICAgIFdlYkNvcmU6OlNjaGVtZVJlZ2lzdHJ5Ojpy
ZWdpc3RlclVSTFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkKHVybFNjaGVtZSk7CisgICAgICAgIHdl
YkNvbnRleHQtPnJlZ2lzdGVyVVJMU2NoZW1lQXNEaXNwbGF5SXNvbGF0ZWQodXJsU2NoZW1lKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZWN1cml0eVBvbGljeVNlY3VyZToKKyAgICAgICAg
V2ViQ29yZTo6U2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNTZWN1cmUodXJsU2No
ZW1lKTsKKyAgICAgICAgd2ViQ29udGV4dC0+cmVnaXN0ZXJVUkxTY2hlbWVBc1NlY3VyZSh1cmxT
Y2hlbWUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlY3VyaXR5UG9saWN5Q09SU0VuYWJs
ZWQ6CisgICAgICAgIFdlYkNvcmU6OlNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFz
Q09SU0VuYWJsZWQodXJsU2NoZW1lKTsKKyAgICAgICAgd2ViQ29udGV4dC0+cmVnaXN0ZXJVUkxT
Y2hlbWVBc0NPUlNFbmFibGVkKHVybFNjaGVtZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
U2VjdXJpdHlQb2xpY3lFbXB0eURvY3VtZW50OgorICAgICAgICBXZWJDb3JlOjpTY2hlbWVSZWdp
c3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQodXJsU2NoZW1lKTsKKyAgICAg
ICAgd2ViQ29udGV4dC0+cmVnaXN0ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQodXJsU2NoZW1l
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitzdGF0aWMgYm9vbCBjaGVja1NlY3VyaXR5
UG9saWN5Rm9yVVJJU2NoZW1lKGNvbnN0IGNoYXIqIHNjaGVtZSwgU2VjdXJpdHlQb2xpY3kgcG9s
aWN5KQoreworICAgIFN0cmluZyB1cmxTY2hlbWUgPSBTdHJpbmc6OmZyb21VVEY4KHNjaGVtZSk7
CisKKyAgICBzd2l0Y2ggKHBvbGljeSkgeworICAgIGNhc2UgU2VjdXJpdHlQb2xpY3lMb2NhbDoK
KyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNj
aGVtZUFzTG9jYWwodXJsU2NoZW1lKTsKKyAgICBjYXNlIFNlY3VyaXR5UG9saWN5Tm9BY2Nlc3M6
CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxT
Y2hlbWVBc05vQWNjZXNzKHVybFNjaGVtZSk7CisgICAgY2FzZSBTZWN1cml0eVBvbGljeURpc3Bs
YXlJc29sYXRlZDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNjaGVtZVJlZ2lzdHJ5OjpzaG91
bGRUcmVhdFVSTFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkKHVybFNjaGVtZSk7CisgICAgY2FzZSBT
ZWN1cml0eVBvbGljeVNlY3VyZToKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNjaGVtZVJlZ2lz
dHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzU2VjdXJlKHVybFNjaGVtZSk7CisgICAgY2FzZSBT
ZWN1cml0eVBvbGljeUNPUlNFbmFibGVkOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6U2NoZW1l
UmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNDT1JTRW5hYmxlZCh1cmxTY2hlbWUpOwor
ICAgIGNhc2UgU2VjdXJpdHlQb2xpY3lFbXB0eURvY3VtZW50OgorICAgICAgICByZXR1cm4gV2Vi
Q29yZTo6U2NoZW1lUmVnaXN0cnk6OnNob3VsZExvYWRVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQo
dXJsU2NoZW1lKTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKy8qKgorICogd2Vi
a2l0X3NlY3VyaXR5X21hbmFnZXJfcmVnaXN0ZXJfdXJpX3NjaGVtZV9hc19sb2NhbDoKKyAqIEBz
ZWN1cml0eV9tYW5hZ2VyOiBhICNXZWJLaXRTZWN1cml0eU1hbmFnZXIKKyAqIEBzY2hlbWU6IGEg
VVJJIHNjaGVtZQorICoKKyAqIFJlZ2lzdGVyIEBzY2hlbWUgYXMgYSBsb2NhbCBzY2hlbWUuIFRo
aXMgbWVhbnMgdGhhdCBvdGhlciBub24tbG9jYWwgcGFnZXMKKyAqIGNhbm5vdCBsaW5rIHRvIG9y
IGFjY2VzcyBVUklzIG9mIHRoaXMgc2NoZW1lLgorICovCit2b2lkIHdlYmtpdF9zZWN1cml0eV9t
YW5hZ2VyX3JlZ2lzdGVyX3VyaV9zY2hlbWVfYXNfbG9jYWwoV2ViS2l0U2VjdXJpdHlNYW5hZ2Vy
KiBtYW5hZ2VyLCBjb25zdCBjaGFyKiBzY2hlbWUpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChX
RUJLSVRfSVNfU0VDVVJJVFlfTUFOQUdFUihtYW5hZ2VyKSk7CisgICAgZ19yZXR1cm5faWZfZmFp
bChzY2hlbWUpOworCisgICAgcmVnaXN0ZXJTZWN1cml0eVBvbGljeUZvclVSSVNjaGVtZShtYW5h
Z2VyLCBzY2hlbWUsIFNlY3VyaXR5UG9saWN5TG9jYWwpOworfQorCisvKioKKyAqIHdlYmtpdF9z
ZWN1cml0eV9tYW5hZ2VyX3VyaV9zY2hlbWVfaXNfbG9jYWw6CisgKiBAc2VjdXJpdHlfbWFuYWdl
cjogYSAjV2ViS2l0U2VjdXJpdHlNYW5hZ2VyCisgKiBAc2NoZW1lOiBhIFVSSSBzY2hlbWUKKyAq
CisgKiBXaGV0aGVyIEBzY2hlbWUgaXMgY29uc2lkZXJlZCBhcyBhIGxvY2FsIHNjaGVtZS4KKyAq
IFNlZSBhbHNvIHdlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3JlZ2lzdGVyX3VyaV9zY2hlbWVfYXNf
bG9jYWwoKS4KKyAqCisgKiBSZXR1cm5zOiAlVFJVRSBpZiBAc2NoZW1lIGlzIGEgbG9jYWwgc2No
ZW1lIG9yICVGQUxTRSBvdGhlcndpc2UuCisgKi8KK2dib29sZWFuIHdlYmtpdF9zZWN1cml0eV9t
YW5hZ2VyX3VyaV9zY2hlbWVfaXNfbG9jYWwoV2ViS2l0U2VjdXJpdHlNYW5hZ2VyKiBtYW5hZ2Vy
LCBjb25zdCBjaGFyKiBzY2hlbWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lU
X0lTX1NFQ1VSSVRZX01BTkFHRVIobWFuYWdlciksIEZBTFNFKTsKKyAgICBnX3JldHVybl92YWxf
aWZfZmFpbChzY2hlbWUsIEZBTFNFKTsKKworICAgIHJldHVybiBjaGVja1NlY3VyaXR5UG9saWN5
Rm9yVVJJU2NoZW1lKHNjaGVtZSwgU2VjdXJpdHlQb2xpY3lMb2NhbCk7Cit9CisKKy8qKgorICog
d2Via2l0X3NlY3VyaXR5X21hbmFnZXJfcmVnaXN0ZXJfdXJpX3NjaGVtZV9hc19ub19hY2Nlc3M6
CisgKiBAc2VjdXJpdHlfbWFuYWdlcjogYSAjV2ViS2l0U2VjdXJpdHlNYW5hZ2VyCisgKiBAc2No
ZW1lOiBhIFVSSSBzY2hlbWUKKyAqCisgKiBSZWdpc3RlciBAc2NoZW1lIGFzIGEgbm8tYWNjZXNz
IHNjaGVtZS4gVGhpcyBtZWFucyB0aGF0IHBhZ2VzIGxvYWRlZAorICogd2l0aCB0aGlzIFVSSSBz
Y2hlbWUgY2Fubm90IGFjY2VzcyBwYWdlcyBsb2FkZWQgd2l0aCBhbnkgb3RoZXIgVVJJIHNjaGVt
ZS4KKyAqLwordm9pZCB3ZWJraXRfc2VjdXJpdHlfbWFuYWdlcl9yZWdpc3Rlcl91cmlfc2NoZW1l
X2FzX25vX2FjY2VzcyhXZWJLaXRTZWN1cml0eU1hbmFnZXIqIG1hbmFnZXIsIGNvbnN0IGNoYXIq
IHNjaGVtZSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19TRUNVUklUWV9NQU5B
R0VSKG1hbmFnZXIpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHNjaGVtZSk7CisKKyAgICByZWdp
c3RlclNlY3VyaXR5UG9saWN5Rm9yVVJJU2NoZW1lKG1hbmFnZXIsIHNjaGVtZSwgU2VjdXJpdHlQ
b2xpY3lOb0FjY2Vzcyk7Cit9CisKKy8qKgorICogd2Via2l0X3NlY3VyaXR5X21hbmFnZXJfdXJp
X3NjaGVtZV9pc19ub19hY2Nlc3M6CisgKiBAc2VjdXJpdHlfbWFuYWdlcjogYSAjV2ViS2l0U2Vj
dXJpdHlNYW5hZ2VyCisgKiBAc2NoZW1lOiBhIFVSSSBzY2hlbWUKKyAqCisgKiBXaGV0aGVyIEBz
Y2hlbWUgaXMgY29uc2lkZXJlZCBhcyBhIG5vLWFjY2VzcyBzY2hlbWUuCisgKiBTZWUgYWxzbyB3
ZWJraXRfc2VjdXJpdHlfbWFuYWdlcl9yZWdpc3Rlcl91cmlfc2NoZW1lX2FzX25vX2FjY2Vzcygp
LgorICoKKyAqIFJldHVybnM6ICVUUlVFIGlmIEBzY2hlbWUgaXMgYSBuby1hY2Nlc3Mgc2NoZW1l
IG9yICVGQUxTRSBvdGhlcndpc2UuCisgKi8KK2dib29sZWFuIHdlYmtpdF9zZWN1cml0eV9tYW5h
Z2VyX3VyaV9zY2hlbWVfaXNfbm9fYWNjZXNzKFdlYktpdFNlY3VyaXR5TWFuYWdlciogbWFuYWdl
ciwgY29uc3QgY2hhciogc2NoZW1lKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJ
VF9JU19TRUNVUklUWV9NQU5BR0VSKG1hbmFnZXIpLCBGQUxTRSk7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoc2NoZW1lLCBGQUxTRSk7CisKKyAgICByZXR1cm4gY2hlY2tTZWN1cml0eVBvbGlj
eUZvclVSSVNjaGVtZShzY2hlbWUsIFNlY3VyaXR5UG9saWN5Tm9BY2Nlc3MpOworfQorCisvKioK
KyAqIHdlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3JlZ2lzdGVyX3VyaV9zY2hlbWVfYXNfZGlzcGxh
eV9pc29sYXRlZDoKKyAqIEBzZWN1cml0eV9tYW5hZ2VyOiBhICNXZWJLaXRTZWN1cml0eU1hbmFn
ZXIKKyAqIEBzY2hlbWU6IGEgVVJJIHNjaGVtZQorICoKKyAqIFJlZ2lzdGVyIEBzY2hlbWUgYXMg
YSBkaXNwbGF5IGlzb2xhdGVkIHNjaGVtZS4gVGhpcyBtZWFucyB0aGF0IHBhZ2VzIGNhbm5vdAor
ICogZGlzcGxheSB0aGVzZSBVUklzIHVubGVzcyB0aGV5IGFyZSBmcm9tIHRoZSBzYW1lIHNjaGVt
ZS4KKyAqLwordm9pZCB3ZWJraXRfc2VjdXJpdHlfbWFuYWdlcl9yZWdpc3Rlcl91cmlfc2NoZW1l
X2FzX2Rpc3BsYXlfaXNvbGF0ZWQoV2ViS2l0U2VjdXJpdHlNYW5hZ2VyKiBtYW5hZ2VyLCBjb25z
dCBjaGFyKiBzY2hlbWUpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfU0VDVVJJ
VFlfTUFOQUdFUihtYW5hZ2VyKSk7CisgICAgZ19yZXR1cm5faWZfZmFpbChzY2hlbWUpOworCisg
ICAgcmVnaXN0ZXJTZWN1cml0eVBvbGljeUZvclVSSVNjaGVtZShtYW5hZ2VyLCBzY2hlbWUsIFNl
Y3VyaXR5UG9saWN5RGlzcGxheUlzb2xhdGVkKTsKK30KKworLyoqCisgKiB3ZWJraXRfc2VjdXJp
dHlfbWFuYWdlcl91cmlfc2NoZW1lX2lzX2Rpc3BsYXlfaXNvbGF0ZWQ6CisgKiBAc2VjdXJpdHlf
bWFuYWdlcjogYSAjV2ViS2l0U2VjdXJpdHlNYW5hZ2VyCisgKiBAc2NoZW1lOiBhIFVSSSBzY2hl
bWUKKyAqCisgKiBXaGV0aGVyIEBzY2hlbWUgaXMgY29uc2lkZXJlZCBhcyBhIGRpc3BsYXkgaXNv
bGF0ZWQgc2NoZW1lLgorICogU2VlIGFsc28gd2Via2l0X3NlY3VyaXR5X21hbmFnZXJfcmVnaXN0
ZXJfdXJpX3NjaGVtZV9hc19kaXNwbGF5X2lzb2xhdGVkKCkuCisgKgorICogUmV0dXJuczogJVRS
VUUgaWYgQHNjaGVtZSBpcyBhIGRpc3BsYXkgaXNvbGF0ZWQgc2NoZW1lIG9yICVGQUxTRSBvdGhl
cndpc2UuCisgKi8KK2dib29sZWFuIHdlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3VyaV9zY2hlbWVf
aXNfZGlzcGxheV9pc29sYXRlZChXZWJLaXRTZWN1cml0eU1hbmFnZXIqIG1hbmFnZXIsIGNvbnN0
IGNoYXIqIHNjaGVtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfU0VD
VVJJVFlfTUFOQUdFUihtYW5hZ2VyKSwgRkFMU0UpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KHNjaGVtZSwgRkFMU0UpOworCisgICAgcmV0dXJuIGNoZWNrU2VjdXJpdHlQb2xpY3lGb3JVUklT
Y2hlbWUoc2NoZW1lLCBTZWN1cml0eVBvbGljeURpc3BsYXlJc29sYXRlZCk7Cit9CisKKy8qKgor
ICogd2Via2l0X3NlY3VyaXR5X21hbmFnZXJfcmVnaXN0ZXJfdXJpX3NjaGVtZV9hc19zZWN1cmU6
CisgKiBAc2VjdXJpdHlfbWFuYWdlcjogYSAjV2ViS2l0U2VjdXJpdHlNYW5hZ2VyCisgKiBAc2No
ZW1lOiBhIFVSSSBzY2hlbWUKKyAqCisgKiBSZWdpc3RlciBAc2NoZW1lIGFzIGEgc2VjdXJlIHNj
aGVtZS4gVGhpcyBtZWFucyB0aGF0IG1peGVkCisgKiBjb250ZW50IHdhcm5pbmdzIHdvbid0IGJl
IGdlbmVyYXRlZCBmb3IgdGhpcyBzY2hlbWUgd2hlbgorICogaW5jbHVkZWQgYnkgYW4gSFRUUFMg
cGFnZS4KKyAqLwordm9pZCB3ZWJraXRfc2VjdXJpdHlfbWFuYWdlcl9yZWdpc3Rlcl91cmlfc2No
ZW1lX2FzX3NlY3VyZShXZWJLaXRTZWN1cml0eU1hbmFnZXIqIG1hbmFnZXIsIGNvbnN0IGNoYXIq
IHNjaGVtZSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19TRUNVUklUWV9NQU5B
R0VSKG1hbmFnZXIpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHNjaGVtZSk7CisKKyAgICByZWdp
c3RlclNlY3VyaXR5UG9saWN5Rm9yVVJJU2NoZW1lKG1hbmFnZXIsIHNjaGVtZSwgU2VjdXJpdHlQ
b2xpY3lTZWN1cmUpOworfQorCisvKioKKyAqIHdlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3VyaV9z
Y2hlbWVfaXNfc2VjdXJlOgorICogQHNlY3VyaXR5X21hbmFnZXI6IGEgI1dlYktpdFNlY3VyaXR5
TWFuYWdlcgorICogQHNjaGVtZTogYSBVUkkgc2NoZW1lCisgKgorICogV2hldGhlciBAc2NoZW1l
IGlzIGNvbnNpZGVyZWQgYXMgYSBzZWN1cmUgc2NoZW1lLgorICogU2VlIGFsc28gd2Via2l0X3Nl
Y3VyaXR5X21hbmFnZXJfcmVnaXN0ZXJfdXJpX3NjaGVtZV9hc19zZWN1cmUoKS4KKyAqCisgKiBS
ZXR1cm5zOiAlVFJVRSBpZiBAc2NoZW1lIGlzIGEgc2VjdXJlIHNjaGVtZSBvciAlRkFMU0Ugb3Ro
ZXJ3aXNlLgorICovCitnYm9vbGVhbiB3ZWJraXRfc2VjdXJpdHlfbWFuYWdlcl91cmlfc2NoZW1l
X2lzX3NlY3VyZShXZWJLaXRTZWN1cml0eU1hbmFnZXIqIG1hbmFnZXIsIGNvbnN0IGNoYXIqIHNj
aGVtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfU0VDVVJJVFlfTUFO
QUdFUihtYW5hZ2VyKSwgRkFMU0UpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNjaGVtZSwg
RkFMU0UpOworCisgICAgcmV0dXJuIGNoZWNrU2VjdXJpdHlQb2xpY3lGb3JVUklTY2hlbWUoc2No
ZW1lLCBTZWN1cml0eVBvbGljeVNlY3VyZSk7Cit9CisKKy8qKgorICogd2Via2l0X3NlY3VyaXR5
X21hbmFnZXJfcmVnaXN0ZXJfdXJpX3NjaGVtZV9hc19jb3JzX2VuYWJsZWQ6CisgKiBAc2VjdXJp
dHlfbWFuYWdlcjogYSAjV2ViS2l0U2VjdXJpdHlNYW5hZ2VyCisgKiBAc2NoZW1lOiBhIFVSSSBz
Y2hlbWUKKyAqCisgKiBSZWdpc3RlciBAc2NoZW1lIGFzIGEgQ09SUyAoQ3Jvc3Mtb3JpZ2luIHJl
c291cmNlIHNoYXJpbmcpIGVuYWJsZWQgc2NoZW1lLgorICogVGhpcyBtZWFucyB0aGF0IENPUlMg
cmVxdWVzdHMgYXJlIGFsbG93ZWQuIFNlZSBXM0MgQ09SUyBzcGVjaWZpY2F0aW9uCisgKiBodHRw
Oi8vd3d3LnczLm9yZy9UUi9jb3JzLy4KKyAqLwordm9pZCB3ZWJraXRfc2VjdXJpdHlfbWFuYWdl
cl9yZWdpc3Rlcl91cmlfc2NoZW1lX2FzX2NvcnNfZW5hYmxlZChXZWJLaXRTZWN1cml0eU1hbmFn
ZXIqIG1hbmFnZXIsIGNvbnN0IGNoYXIqIHNjaGVtZSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWls
KFdFQktJVF9JU19TRUNVUklUWV9NQU5BR0VSKG1hbmFnZXIpKTsKKyAgICBnX3JldHVybl9pZl9m
YWlsKHNjaGVtZSk7CisKKyAgICByZWdpc3RlclNlY3VyaXR5UG9saWN5Rm9yVVJJU2NoZW1lKG1h
bmFnZXIsIHNjaGVtZSwgU2VjdXJpdHlQb2xpY3lDT1JTRW5hYmxlZCk7Cit9CisKKy8qKgorICog
d2Via2l0X3NlY3VyaXR5X21hbmFnZXJfdXJpX3NjaGVtZV9pc19jb3JzX2VuYWJsZWQ6CisgKiBA
c2VjdXJpdHlfbWFuYWdlcjogYSAjV2ViS2l0U2VjdXJpdHlNYW5hZ2VyCisgKiBAc2NoZW1lOiBh
IFVSSSBzY2hlbWUKKyAqCisgKiBXaGV0aGVyIEBzY2hlbWUgaXMgY29uc2lkZXJlZCBhcyBhIENP
UlMgZW5hYmxlZCBzY2hlbWUuCisgKiBTZWUgYWxzbyB3ZWJraXRfc2VjdXJpdHlfbWFuYWdlcl9y
ZWdpc3Rlcl91cmlfc2NoZW1lX2FzX2NvcnNfZW5hYmxlZCgpLgorICoKKyAqIFJldHVybnM6ICVU
UlVFIGlmIEBzY2hlbWUgaXMgYSBDT1JTIGVuYWJsZWQgc2NoZW1lIG9yICVGQUxTRSBvdGhlcndp
c2UuCisgKi8KK2dib29sZWFuIHdlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3VyaV9zY2hlbWVfaXNf
Y29yc19lbmFibGVkKFdlYktpdFNlY3VyaXR5TWFuYWdlciogbWFuYWdlciwgY29uc3QgY2hhciog
c2NoZW1lKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19TRUNVUklUWV9N
QU5BR0VSKG1hbmFnZXIpLCBGQUxTRSk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2NoZW1l
LCBGQUxTRSk7CisKKyAgICByZXR1cm4gY2hlY2tTZWN1cml0eVBvbGljeUZvclVSSVNjaGVtZShz
Y2hlbWUsIFNlY3VyaXR5UG9saWN5Q09SU0VuYWJsZWQpOworfQorCisvKioKKyAqIHdlYmtpdF9z
ZWN1cml0eV9tYW5hZ2VyX3JlZ2lzdGVyX3VyaV9zY2hlbWVfYXNfZW1wdHlfZG9jdW1lbnQ6Cisg
KiBAc2VjdXJpdHlfbWFuYWdlcjogYSAjV2ViS2l0U2VjdXJpdHlNYW5hZ2VyCisgKiBAc2NoZW1l
OiBhIFVSSSBzY2hlbWUKKyAqCisgKiBSZWdpc3RlciBAc2NoZW1lIGFzIGFuIGVtcHR5IGRvY3Vt
ZW50IHNjaGVtZS4gVGhpcyBtZWFucyB0aGF0CisgKiB0aGV5IGFyZSBhbGxvd2QgdG8gY29tbWl0
IHN5bmNocm9ub3VzbHkuCisgKi8KK3ZvaWQgd2Via2l0X3NlY3VyaXR5X21hbmFnZXJfcmVnaXN0
ZXJfdXJpX3NjaGVtZV9hc19lbXB0eV9kb2N1bWVudChXZWJLaXRTZWN1cml0eU1hbmFnZXIqIG1h
bmFnZXIsIGNvbnN0IGNoYXIqIHNjaGVtZSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJ
VF9JU19TRUNVUklUWV9NQU5BR0VSKG1hbmFnZXIpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHNj
aGVtZSk7CisKKyAgICByZWdpc3RlclNlY3VyaXR5UG9saWN5Rm9yVVJJU2NoZW1lKG1hbmFnZXIs
IHNjaGVtZSwgU2VjdXJpdHlQb2xpY3lFbXB0eURvY3VtZW50KTsKK30KKworLyoqCisgKiB3ZWJr
aXRfc2VjdXJpdHlfbWFuYWdlcl91cmlfc2NoZW1lX2lzX2VtcHR5X2RvY3VtZW50OgorICogQHNl
Y3VyaXR5X21hbmFnZXI6IGEgI1dlYktpdFNlY3VyaXR5TWFuYWdlcgorICogQHNjaGVtZTogYSBV
Ukkgc2NoZW1lCisgKgorICogV2hldGhlciBAc2NoZW1lIGlzIGNvbnNpZGVyZWQgYXMgYW4gZW1w
dHkgZG9jdW1lbnQgc2NoZW1lLgorICogU2VlIGFsc28gd2Via2l0X3NlY3VyaXR5X21hbmFnZXJf
cmVnaXN0ZXJfdXJpX3NjaGVtZV9hc19lbXB0eV9kb2N1bWVudCgpLgorICoKKyAqIFJldHVybnM6
ICVUUlVFIGlmIEBzY2hlbWUgaXMgYSBhbiBlbXB0eSBkb2N1bWVudCBzY2hlbWUgb3IgJUZBTFNF
IG90aGVyd2lzZS4KKyAqLworZ2Jvb2xlYW4gd2Via2l0X3NlY3VyaXR5X21hbmFnZXJfdXJpX3Nj
aGVtZV9pc19lbXB0eV9kb2N1bWVudChXZWJLaXRTZWN1cml0eU1hbmFnZXIqIG1hbmFnZXIsIGNv
bnN0IGNoYXIqIHNjaGVtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNf
U0VDVVJJVFlfTUFOQUdFUihtYW5hZ2VyKSwgRkFMU0UpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKHNjaGVtZSwgRkFMU0UpOworCisgICAgcmV0dXJuIGNoZWNrU2VjdXJpdHlQb2xpY3lGb3JV
UklTY2hlbWUoc2NoZW1lLCBTZWN1cml0eVBvbGljeUVtcHR5RG9jdW1lbnQpOworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2VjdXJpdHlNYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZWN1cml0eU1h
bmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYjhjMzZlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2Vj
dXJpdHlNYW5hZ2VyLmgKQEAgLTAsMCArMSwxMDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiwx
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRl
ZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQy
Lmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRT
ZWN1cml0eU1hbmFnZXJfaAorI2RlZmluZSBXZWJLaXRTZWN1cml0eU1hbmFnZXJfaAorCisjaW5j
bHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMuaD4K
KworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX1NFQ1VSSVRZX01BTkFHRVIg
ICAgICAgICAgICAod2Via2l0X3NlY3VyaXR5X21hbmFnZXJfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
V0VCS0lUX1NFQ1VSSVRZX01BTkFHRVIob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5T
VEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfU0VDVVJJVFlfTUFOQUdFUiwgV2ViS2l0U2Vj
dXJpdHlNYW5hZ2VyKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1NFQ1VSSVRZX01BTkFHRVIob2JqKSAg
ICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfU0VD
VVJJVFlfTUFOQUdFUikpCisjZGVmaW5lIFdFQktJVF9TRUNVUklUWV9NQU5BR0VSX0NMQVNTKGts
YXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1NF
Q1VSSVRZX01BTkFHRVIsIFdlYktpdFNlY3VyaXR5TWFuYWdlckNsYXNzKSkKKyNkZWZpbmUgV0VC
S0lUX0lTX1NFQ1VSSVRZX01BTkFHRVJfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1Nf
VFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfU0VDVVJJVFlfTUFOQUdFUikpCisjZGVmaW5lIFdF
QktJVF9TRUNVUklUWV9NQU5BR0VSX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dF
VF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX1NFQ1VSSVRZX01BTkFHRVIsIFdlYktpdFNlY3Vy
aXR5TWFuYWdlckNsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFNlY3VyaXR5TWFuYWdl
ciAgICAgICAgV2ViS2l0U2VjdXJpdHlNYW5hZ2VyOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFNl
Y3VyaXR5TWFuYWdlckNsYXNzICAgV2ViS2l0U2VjdXJpdHlNYW5hZ2VyQ2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfV2ViS2l0U2VjdXJpdHlNYW5hZ2VyUHJpdmF0ZSBXZWJLaXRTZWN1cml0eU1hbmFn
ZXJQcml2YXRlOworCitzdHJ1Y3QgX1dlYktpdFNlY3VyaXR5TWFuYWdlciB7CisgICAgR09iamVj
dCBwYXJlbnQ7CisKKyAgICBXZWJLaXRTZWN1cml0eU1hbmFnZXJQcml2YXRlICpwcml2OworfTsK
Kworc3RydWN0IF9XZWJLaXRTZWN1cml0eU1hbmFnZXJDbGFzcyB7CisgICAgR09iamVjdENsYXNz
IHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9zZWN1cml0eV9t
YW5hZ2VyX2dldF90eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7CisK
K1dFQktJVF9BUEkgdm9pZAord2Via2l0X3NlY3VyaXR5X21hbmFnZXJfcmVnaXN0ZXJfdXJpX3Nj
aGVtZV9hc19sb2NhbCAgICAgICAgICAgIChXZWJLaXRTZWN1cml0eU1hbmFnZXIgKnNlY3VyaXR5
X21hbmFnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAqc2NoZW1lKTsKKworV0VC
S0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3NlY3VyaXR5X21hbmFnZXJfdXJpX3NjaGVtZV9pc19s
b2NhbCAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTZWN1cml0eU1hbmFnZXIgKnNlY3VyaXR5
X21hbmFnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAqc2NoZW1lKTsKKworV0VC
S0lUX0FQSSB2b2lkCit3ZWJraXRfc2VjdXJpdHlfbWFuYWdlcl9yZWdpc3Rlcl91cmlfc2NoZW1l
X2FzX25vX2FjY2VzcyAgICAgICAgKFdlYktpdFNlY3VyaXR5TWFuYWdlciAqc2VjdXJpdHlfbWFu
YWdlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICpzY2hlbWUpOworCitXRUJLSVRf
QVBJIGdib29sZWFuCit3ZWJraXRfc2VjdXJpdHlfbWFuYWdlcl91cmlfc2NoZW1lX2lzX25vX2Fj
Y2VzcyAgICAgICAgICAgICAgICAgKFdlYktpdFNlY3VyaXR5TWFuYWdlciAqc2VjdXJpdHlfbWFu
YWdlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICpzY2hlbWUpOworCitXRUJLSVRf
QVBJIHZvaWQKK3dlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3JlZ2lzdGVyX3VyaV9zY2hlbWVfYXNf
ZGlzcGxheV9pc29sYXRlZCAoV2ViS2l0U2VjdXJpdHlNYW5hZ2VyICpzZWN1cml0eV9tYW5hZ2Vy
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgKnNjaGVtZSk7CisKK1dFQktJVF9BUEkg
Z2Jvb2xlYW4KK3dlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3VyaV9zY2hlbWVfaXNfZGlzcGxheV9p
c29sYXRlZCAgICAgICAgICAoV2ViS2l0U2VjdXJpdHlNYW5hZ2VyICpzZWN1cml0eV9tYW5hZ2Vy
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgKnNjaGVtZSk7CisKK1dFQktJVF9BUEkg
dm9pZAord2Via2l0X3NlY3VyaXR5X21hbmFnZXJfcmVnaXN0ZXJfdXJpX3NjaGVtZV9hc19zZWN1
cmUgICAgICAgICAgIChXZWJLaXRTZWN1cml0eU1hbmFnZXIgKnNlY3VyaXR5X21hbmFnZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAqc2NoZW1lKTsKKworV0VCS0lUX0FQSSBnYm9v
bGVhbgord2Via2l0X3NlY3VyaXR5X21hbmFnZXJfdXJpX3NjaGVtZV9pc19zZWN1cmUgICAgICAg
ICAgICAgICAgICAgIChXZWJLaXRTZWN1cml0eU1hbmFnZXIgKnNlY3VyaXR5X21hbmFnZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAqc2NoZW1lKTsKKworV0VCS0lUX0FQSSB2b2lk
Cit3ZWJraXRfc2VjdXJpdHlfbWFuYWdlcl9yZWdpc3Rlcl91cmlfc2NoZW1lX2FzX2NvcnNfZW5h
YmxlZCAgICAgKFdlYktpdFNlY3VyaXR5TWFuYWdlciAqc2VjdXJpdHlfbWFuYWdlciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgZ2NoYXIgICAgICAgICAgICpzY2hlbWUpOworCitXRUJLSVRfQVBJIGdib29sZWFu
Cit3ZWJraXRfc2VjdXJpdHlfbWFuYWdlcl91cmlfc2NoZW1lX2lzX2NvcnNfZW5hYmxlZCAgICAg
ICAgICAgICAgKFdlYktpdFNlY3VyaXR5TWFuYWdlciAqc2VjdXJpdHlfbWFuYWdlciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgZ2NoYXIgICAgICAgICAgICpzY2hlbWUpOworCitXRUJLSVRfQVBJIHZvaWQKK3dl
YmtpdF9zZWN1cml0eV9tYW5hZ2VyX3JlZ2lzdGVyX3VyaV9zY2hlbWVfYXNfZW1wdHlfZG9jdW1l
bnQgICAoV2ViS2l0U2VjdXJpdHlNYW5hZ2VyICpzZWN1cml0eV9tYW5hZ2VyLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBnY2hhciAgICAgICAgICAgKnNjaGVtZSk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dl
YmtpdF9zZWN1cml0eV9tYW5hZ2VyX3VyaV9zY2hlbWVfaXNfZW1wdHlfZG9jdW1lbnQgICAgICAg
ICAgICAoV2ViS2l0U2VjdXJpdHlNYW5hZ2VyICpzZWN1cml0eV9tYW5hZ2VyLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBnY2hhciAgICAgICAgICAgKnNjaGVtZSk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2VjdXJp
dHlNYW5hZ2VyUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0U2VjdXJpdHlNYW5hZ2VyUHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmZlYWJkY2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRTZWN1cml0eU1hbmFnZXJQcml2YXRlLmgKQEAgLTAsMCArMSwyOCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFdlYktpdFNl
Y3VyaXR5TWFuYWdlclByaXZhdGVfaAorI2RlZmluZSBXZWJLaXRTZWN1cml0eU1hbmFnZXJQcml2
YXRlX2gKKworI2luY2x1ZGUgIldlYktpdFNlY3VyaXR5TWFuYWdlci5oIgorI2luY2x1ZGUgIldl
YktpdFdlYkNvbnRleHQuaCIKKworV2ViS2l0U2VjdXJpdHlNYW5hZ2VyKiB3ZWJraXRTZWN1cml0
eU1hbmFnZXJDcmVhdGUoV2ViS2l0V2ViQ29udGV4dCopOworCisjZW5kaWYgLy8gV2ViS2l0U2Vj
dXJpdHlNYW5hZ2VyUHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IGU5MjMxZTQuLjViMmMyNjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNv
bnRleHQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiV2ViS2l0UGx1Z2luUHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRSZXF1ZXN0
TWFuYWdlckNsaWVudC5oIgorI2luY2x1ZGUgIldlYktpdFNlY3VyaXR5TWFuYWdlclByaXZhdGUu
aCIKICNpbmNsdWRlICJXZWJLaXRUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIldlYktpdFVSSVNj
aGVtZVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViQ29udGV4dFByaXZhdGUu
aCIKQEAgLTk1LDYgKzk2LDcgQEAgc3RydWN0IF9XZWJLaXRXZWJDb250ZXh0UHJpdmF0ZSB7CiAg
ICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0OwogCiAgICAgR1JlZlB0cjxXZWJL
aXRDb29raWVNYW5hZ2VyPiBjb29raWVNYW5hZ2VyOworICAgIEdSZWZQdHI8V2ViS2l0U2VjdXJp
dHlNYW5hZ2VyPiBzZWN1cml0eU1hbmFnZXI7CiAgICAgV0tSZXRhaW5QdHI8V0tTb3VwUmVxdWVz
dE1hbmFnZXJSZWY+IHJlcXVlc3RNYW5hZ2VyOwogICAgIFVSSVNjaGVtZUhhbmRsZXJNYXAgdXJp
U2NoZW1lSGFuZGxlcnM7CiAgICAgVVJJU2NoZW1lUmVxdWVzdE1hcCB1cmlTY2hlbWVSZXF1ZXN0
czsKQEAgLTMyMiw2ICszMjQsMjUgQEAgV2ViS2l0Q29va2llTWFuYWdlciogd2Via2l0X3dlYl9j
b250ZXh0X2dldF9jb29raWVfbWFuYWdlcihXZWJLaXRXZWJDb250ZXh0KiBjb24KIH0KIAogLyoq
CisgKiB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3NlY3VyaXR5X21hbmFnZXI6CisgKiBAY29udGV4
dDogYSAjV2ViS2l0V2ViQ29udGV4dAorICoKKyAqIEdldCB0aGUgI1dlYktpdFNlY3VyaXR5TWFu
YWdlciBvZiBAY29udGV4dC4KKyAqCisgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IHRoZSAj
V2ViS2l0U2VjdXJpdHlNYW5hZ2VyIG9mIEBjb250ZXh0LgorICovCitXZWJLaXRTZWN1cml0eU1h
bmFnZXIqIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfc2VjdXJpdHlfbWFuYWdlcihXZWJLaXRXZWJD
b250ZXh0KiBjb250ZXh0KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19X
RUJfQ09OVEVYVChjb250ZXh0KSwgMCk7CisKKyAgICBXZWJLaXRXZWJDb250ZXh0UHJpdmF0ZSog
cHJpdiA9IGNvbnRleHQtPnByaXY7CisgICAgaWYgKCFwcml2LT5zZWN1cml0eU1hbmFnZXIpCisg
ICAgICAgIHByaXYtPnNlY3VyaXR5TWFuYWdlciA9IGFkb3B0R1JlZih3ZWJraXRTZWN1cml0eU1h
bmFnZXJDcmVhdGUoY29udGV4dCkpOworCisgICAgcmV0dXJuIHByaXYtPnNlY3VyaXR5TWFuYWdl
ci5nZXQoKTsKK30KKworLyoqCiAgKiB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X2FkZGl0aW9uYWxf
cGx1Z2luc19kaXJlY3Rvcnk6CiAgKiBAY29udGV4dDogYSAjV2ViS2l0V2ViQ29udGV4dAogICog
QGRpcmVjdG9yeTogdGhlIGRpcmVjdG9yeSB0byBhZGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuaAppbmRleCBhMmJmNTczLi5mNzcw
ODZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViQ29udGV4dC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRD
b29raWVNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CiAjaW5j
bHVkZSA8d2Via2l0Mi9XZWJLaXREb3dubG9hZC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0
U2VjdXJpdHlNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklTY2hlbWVSZXF1
ZXN0Lmg+CiAKIEdfQkVHSU5fREVDTFMKQEAgLTExMyw2ICsxMTQsOSBAQCB3ZWJraXRfd2ViX2Nv
bnRleHRfZG93bmxvYWRfdXJpICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYkNvbnRleHQK
IFdFQktJVF9BUEkgV2ViS2l0Q29va2llTWFuYWdlciAqCiB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0
X2Nvb2tpZV9tYW5hZ2VyICAgICAgICAgICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAg
ICAgICpjb250ZXh0KTsKIAorV0VCS0lUX0FQSSBXZWJLaXRTZWN1cml0eU1hbmFnZXIgKgord2Vi
a2l0X3dlYl9jb250ZXh0X2dldF9zZWN1cml0eV9tYW5hZ2VyICAgICAgICAgICAgIChXZWJLaXRX
ZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCk7CisKIFdFQktJVF9BUEkgdm9pZAogd2Vi
a2l0X3dlYl9jb250ZXh0X3NldF9hZGRpdGlvbmFsX3BsdWdpbnNfZGlyZWN0b3J5IChXZWJLaXRX
ZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgICAg
ICAgKmRpcmVjdG9yeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbAppbmRleCA2YWFjN2M4Li5hN2YzNGU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtp
dDJndGstZG9jcy5zZ21sCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2Rv
Y3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwKQEAgLTQwLDYgKzQwLDcgQEAKICAgICA8eGk6aW5jbHVk
ZSBocmVmPSJ4bWwvV2ViS2l0Q29udGV4dE1lbnUueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJl
Zj0ieG1sL1dlYktpdENvbnRleHRNZW51SXRlbS54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVm
PSJ4bWwvV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0LnhtbCIvPgorICAgIDx4aTppbmNsdWRl
IGhyZWY9InhtbC9XZWJLaXRTZWN1cml0eU1hbmFnZXIueG1sIi8+CiAgIDwvY2hhcHRlcj4KIAog
ICA8aW5kZXggaWQ9ImluZGV4LWFsbCI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAppbmRleCA1
OTY0OThjLi4xMjI2NzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKQEAgLTMwLDYgKzMw
LDcgQEAgd2Via2l0X3dlYl9jb250ZXh0X3NldF9jYWNoZV9tb2RlbAogd2Via2l0X3dlYl9jb250
ZXh0X2NsZWFyX2NhY2hlCiB3ZWJraXRfd2ViX2NvbnRleHRfZG93bmxvYWRfdXJpCiB3ZWJraXRf
d2ViX2NvbnRleHRfZ2V0X2Nvb2tpZV9tYW5hZ2VyCit3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3Nl
Y3VyaXR5X21hbmFnZXIKIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfYWRkaXRpb25hbF9wbHVnaW5z
X2RpcmVjdG9yeQogd2Via2l0X3dlYl9jb250ZXh0X2dldF9wbHVnaW5zCiB3ZWJraXRfd2ViX2Nv
bnRleHRfZ2V0X3BsdWdpbnNfZmluaXNoCkBAIC04NDUsMyArODQ2LDMzIEBAIFdFQktJVF9GT1JN
X1NVQk1JU1NJT05fUkVRVUVTVF9HRVRfQ0xBU1MKIFdlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVz
dFByaXZhdGUKIHdlYmtpdF9mb3JtX3N1Ym1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZQogPC9TRUNU
SU9OPgorCis8U0VDVElPTj4KKzxGSUxFPldlYktpdFNlY3VyaXR5TWFuYWdlcjwvRklMRT4KK1dl
YktpdFNlY3VyaXR5TWFuYWdlcgord2Via2l0X3NlY3VyaXR5X21hbmFnZXJfcmVnaXN0ZXJfdXJp
X3NjaGVtZV9hc19sb2NhbAord2Via2l0X3NlY3VyaXR5X21hbmFnZXJfdXJpX3NjaGVtZV9pc19s
b2NhbAord2Via2l0X3NlY3VyaXR5X21hbmFnZXJfcmVnaXN0ZXJfdXJpX3NjaGVtZV9hc19ub19h
Y2Nlc3MKK3dlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3VyaV9zY2hlbWVfaXNfbm9fYWNjZXNzCit3
ZWJraXRfc2VjdXJpdHlfbWFuYWdlcl9yZWdpc3Rlcl91cmlfc2NoZW1lX2FzX2Rpc3BsYXlfaXNv
bGF0ZWQKK3dlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3VyaV9zY2hlbWVfaXNfZGlzcGxheV9pc29s
YXRlZAord2Via2l0X3NlY3VyaXR5X21hbmFnZXJfcmVnaXN0ZXJfdXJpX3NjaGVtZV9hc19zZWN1
cmUKK3dlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3VyaV9zY2hlbWVfaXNfc2VjdXJlCit3ZWJraXRf
c2VjdXJpdHlfbWFuYWdlcl9yZWdpc3Rlcl91cmlfc2NoZW1lX2FzX2NvcnNfZW5hYmxlZAord2Vi
a2l0X3NlY3VyaXR5X21hbmFnZXJfdXJpX3NjaGVtZV9pc19jb3JzX2VuYWJsZWQKK3dlYmtpdF9z
ZWN1cml0eV9tYW5hZ2VyX3JlZ2lzdGVyX3VyaV9zY2hlbWVfYXNfZW1wdHlfZG9jdW1lbnQKK3dl
YmtpdF9zZWN1cml0eV9tYW5hZ2VyX3VyaV9zY2hlbWVfaXNfZW1wdHlfZG9jdW1lbnQKKworPFNV
QlNFQ1RJT04gU3RhbmRhcmQ+CitXZWJLaXRTZWN1cml0eU1hbmFnZXJDbGFzcworV0VCS0lUX1RZ
UEVfU0VDVVJJVFlfTUFOQUdFUgorV0VCS0lUX1NFQ1VSSVRZX01BTkFHRVIKK1dFQktJVF9JU19T
RUNVUklUWV9NQU5BR0VSCitXRUJLSVRfU0VDVVJJVFlfTUFOQUdFUl9DTEFTUworV0VCS0lUX0lT
X1NFQ1VSSVRZX01BTkFHRVJfQ0xBU1MKK1dFQktJVF9TRUNVUklUWV9NQU5BR0VSX0dFVF9DTEFT
UworCis8U1VCU0VDVElPTiBQcml2YXRlPgorV2ViS2l0U2VjdXJpdHlNYW5hZ2VyUHJpdmF0ZQor
d2Via2l0X3NlY3VyaXR5X21hbmFnZXJfZ2V0X3R5cGUKKzwvU0VDVElPTj4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRXZWJDb250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJL
aXRXZWJDb250ZXh0LmNwcAppbmRleCA3YzcxMjI0Li40Y2ZlMDBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0V2ViQ29udGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYktp
dFdlYkNvbnRleHQuY3BwCkBAIC0yOTcsNiArMjk3LDgzIEBAIHN0YXRpYyB2b2lkIHNlcnZlckNh
bGxiYWNrKFNvdXBTZXJ2ZXIqIHNlcnZlciwgU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGNvbnN0IGNo
YXIqCiAgICAgc291cF9tZXNzYWdlX2JvZHlfY29tcGxldGUobWVzc2FnZS0+cmVzcG9uc2VfYm9k
eSk7CiB9CiAKK2NsYXNzIFNlY3VyaXR5UG9saWN5VGVzdDogcHVibGljIFRlc3QgeworcHVibGlj
OgorICAgIE1BS0VfR0xJQl9URVNUX0ZJWFRVUkUoU2VjdXJpdHlQb2xpY3lUZXN0KTsKKworICAg
IGVudW0gU2VjdXJpdHlQb2xpY3kgeworICAgICAgICBMb2NhbCA9IDEgPDwgMSwKKyAgICAgICAg
Tm9BY2Nlc3MgPSAxIDw8IDIsCisgICAgICAgIERpc3BsYXlJc29sYXRlZCA9IDEgPDwgMywKKyAg
ICAgICAgU2VjdXJlID0gMSA8PCA0LAorICAgICAgICBDT1JTRW5hYmxlZCA9IDEgPDwgNSwKKyAg
ICAgICAgRW1wdHlEb2N1bWVudCA9IDEgPDwgNgorICAgIH07CisKKyAgICBTZWN1cml0eVBvbGlj
eVRlc3QoKQorICAgICAgICA6IG1fbWFuYWdlcih3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3NlY3Vy
aXR5X21hbmFnZXIod2Via2l0X3dlYl9jb250ZXh0X2dldF9kZWZhdWx0KCkpKQorICAgIHsKKyAg
ICB9CisKKyAgICB2b2lkIGNoZWNrKGNvbnN0IGNoYXIqIHNjaGVtZSwgdW5zaWduZWQgcG9saWN5
KQorICAgIHsKKyAgICAgICAgaWYgKHBvbGljeSAmIExvY2FsKQorICAgICAgICAgICAgZ19hc3Nl
cnQod2Via2l0X3NlY3VyaXR5X21hbmFnZXJfdXJpX3NjaGVtZV9pc19sb2NhbChtX21hbmFnZXIs
IHNjaGVtZSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBnX2Fzc2VydCghd2Via2l0X3Nl
Y3VyaXR5X21hbmFnZXJfdXJpX3NjaGVtZV9pc19sb2NhbChtX21hbmFnZXIsIHNjaGVtZSkpOwor
ICAgICAgICBpZiAocG9saWN5ICYgTm9BY2Nlc3MpCisgICAgICAgICAgICBnX2Fzc2VydCh3ZWJr
aXRfc2VjdXJpdHlfbWFuYWdlcl91cmlfc2NoZW1lX2lzX25vX2FjY2VzcyhtX21hbmFnZXIsIHNj
aGVtZSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBnX2Fzc2VydCghd2Via2l0X3NlY3Vy
aXR5X21hbmFnZXJfdXJpX3NjaGVtZV9pc19ub19hY2Nlc3MobV9tYW5hZ2VyLCBzY2hlbWUpKTsK
KyAgICAgICAgaWYgKHBvbGljeSAmIERpc3BsYXlJc29sYXRlZCkKKyAgICAgICAgICAgIGdfYXNz
ZXJ0KHdlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3VyaV9zY2hlbWVfaXNfZGlzcGxheV9pc29sYXRl
ZChtX21hbmFnZXIsIHNjaGVtZSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBnX2Fzc2Vy
dCghd2Via2l0X3NlY3VyaXR5X21hbmFnZXJfdXJpX3NjaGVtZV9pc19kaXNwbGF5X2lzb2xhdGVk
KG1fbWFuYWdlciwgc2NoZW1lKSk7CisgICAgICAgIGlmIChwb2xpY3kgJiBTZWN1cmUpCisgICAg
ICAgICAgICBnX2Fzc2VydCh3ZWJraXRfc2VjdXJpdHlfbWFuYWdlcl91cmlfc2NoZW1lX2lzX3Nl
Y3VyZShtX21hbmFnZXIsIHNjaGVtZSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBnX2Fz
c2VydCghd2Via2l0X3NlY3VyaXR5X21hbmFnZXJfdXJpX3NjaGVtZV9pc19zZWN1cmUobV9tYW5h
Z2VyLCBzY2hlbWUpKTsKKyAgICAgICAgaWYgKHBvbGljeSAmIENPUlNFbmFibGVkKQorICAgICAg
ICAgICAgZ19hc3NlcnQod2Via2l0X3NlY3VyaXR5X21hbmFnZXJfdXJpX3NjaGVtZV9pc19jb3Jz
X2VuYWJsZWQobV9tYW5hZ2VyLCBzY2hlbWUpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
Z19hc3NlcnQoIXdlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3VyaV9zY2hlbWVfaXNfY29yc19lbmFi
bGVkKG1fbWFuYWdlciwgc2NoZW1lKSk7CisgICAgICAgIGlmIChwb2xpY3kgJiBFbXB0eURvY3Vt
ZW50KQorICAgICAgICAgICAgZ19hc3NlcnQod2Via2l0X3NlY3VyaXR5X21hbmFnZXJfdXJpX3Nj
aGVtZV9pc19lbXB0eV9kb2N1bWVudChtX21hbmFnZXIsIHNjaGVtZSkpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBnX2Fzc2VydCghd2Via2l0X3NlY3VyaXR5X21hbmFnZXJfdXJpX3NjaGVt
ZV9pc19lbXB0eV9kb2N1bWVudChtX21hbmFnZXIsIHNjaGVtZSkpOworICAgIH0KKworICAgIFdl
YktpdFNlY3VyaXR5TWFuYWdlciogbV9tYW5hZ2VyOworfTsKKworc3RhdGljIHZvaWQgdGVzdFdl
YkNvbnRleHRTZWN1cml0eVBvbGljeShTZWN1cml0eVBvbGljeVRlc3QqIHRlc3QsIGdjb25zdHBv
aW50ZXIpCit7CisgICAgLy8gQ2hlY2sgZGVmYXVsdCBwb2xpY3kgZm9yIHdlbGwga25vd24gc2No
ZW1lcy4KKyAgICB0ZXN0LT5jaGVjaygiaHR0cCIsIFNlY3VyaXR5UG9saWN5VGVzdDo6Q09SU0Vu
YWJsZWQpOworICAgIHRlc3QtPmNoZWNrKCJodHRwcyIsIFNlY3VyaXR5UG9saWN5VGVzdDo6Q09S
U0VuYWJsZWQgfCBTZWN1cml0eVBvbGljeVRlc3Q6OlNlY3VyZSk7CisgICAgdGVzdC0+Y2hlY2so
ImZpbGUiLCBTZWN1cml0eVBvbGljeVRlc3Q6OkxvY2FsKTsKKyAgICB0ZXN0LT5jaGVjaygiZGF0
YSIsIFNlY3VyaXR5UG9saWN5VGVzdDo6Tm9BY2Nlc3MgfCBTZWN1cml0eVBvbGljeVRlc3Q6OlNl
Y3VyZSk7CisgICAgdGVzdC0+Y2hlY2soImFib3V0IiwgU2VjdXJpdHlQb2xpY3lUZXN0OjpOb0Fj
Y2VzcyB8IFNlY3VyaXR5UG9saWN5VGVzdDo6U2VjdXJlIHwgU2VjdXJpdHlQb2xpY3lUZXN0OjpF
bXB0eURvY3VtZW50KTsKKworICAgIC8vIEN1c3RvbSBzY2hlbWUuCisgICAgdGVzdC0+Y2hlY2so
ImZvbyIsIDApOworCisgICAgd2Via2l0X3NlY3VyaXR5X21hbmFnZXJfcmVnaXN0ZXJfdXJpX3Nj
aGVtZV9hc19sb2NhbCh0ZXN0LT5tX21hbmFnZXIsICJmb28iKTsKKyAgICB0ZXN0LT5jaGVjaygi
Zm9vIiwgU2VjdXJpdHlQb2xpY3lUZXN0OjpMb2NhbCk7CisgICAgd2Via2l0X3NlY3VyaXR5X21h
bmFnZXJfcmVnaXN0ZXJfdXJpX3NjaGVtZV9hc19ub19hY2Nlc3ModGVzdC0+bV9tYW5hZ2VyLCAi
Zm9vIik7CisgICAgdGVzdC0+Y2hlY2soImZvbyIsIFNlY3VyaXR5UG9saWN5VGVzdDo6TG9jYWwg
fCBTZWN1cml0eVBvbGljeVRlc3Q6Ok5vQWNjZXNzKTsKKyAgICB3ZWJraXRfc2VjdXJpdHlfbWFu
YWdlcl9yZWdpc3Rlcl91cmlfc2NoZW1lX2FzX2Rpc3BsYXlfaXNvbGF0ZWQodGVzdC0+bV9tYW5h
Z2VyLCAiZm9vIik7CisgICAgdGVzdC0+Y2hlY2soImZvbyIsIFNlY3VyaXR5UG9saWN5VGVzdDo6
TG9jYWwgfCBTZWN1cml0eVBvbGljeVRlc3Q6Ok5vQWNjZXNzIHwgU2VjdXJpdHlQb2xpY3lUZXN0
OjpEaXNwbGF5SXNvbGF0ZWQpOworICAgIHdlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3JlZ2lzdGVy
X3VyaV9zY2hlbWVfYXNfc2VjdXJlKHRlc3QtPm1fbWFuYWdlciwgImZvbyIpOworICAgIHRlc3Qt
PmNoZWNrKCJmb28iLCBTZWN1cml0eVBvbGljeVRlc3Q6OkxvY2FsIHwgU2VjdXJpdHlQb2xpY3lU
ZXN0OjpOb0FjY2VzcyB8IFNlY3VyaXR5UG9saWN5VGVzdDo6RGlzcGxheUlzb2xhdGVkIHwgU2Vj
dXJpdHlQb2xpY3lUZXN0OjpTZWN1cmUpOworICAgIHdlYmtpdF9zZWN1cml0eV9tYW5hZ2VyX3Jl
Z2lzdGVyX3VyaV9zY2hlbWVfYXNfY29yc19lbmFibGVkKHRlc3QtPm1fbWFuYWdlciwgImZvbyIp
OworICAgIHRlc3QtPmNoZWNrKCJmb28iLCBTZWN1cml0eVBvbGljeVRlc3Q6OkxvY2FsIHwgU2Vj
dXJpdHlQb2xpY3lUZXN0OjpOb0FjY2VzcyB8IFNlY3VyaXR5UG9saWN5VGVzdDo6RGlzcGxheUlz
b2xhdGVkIHwgU2VjdXJpdHlQb2xpY3lUZXN0OjpTZWN1cmUKKyAgICAgICAgICAgICAgICB8IFNl
Y3VyaXR5UG9saWN5VGVzdDo6Q09SU0VuYWJsZWQpOworICAgIHdlYmtpdF9zZWN1cml0eV9tYW5h
Z2VyX3JlZ2lzdGVyX3VyaV9zY2hlbWVfYXNfZW1wdHlfZG9jdW1lbnQodGVzdC0+bV9tYW5hZ2Vy
LCAiZm9vIik7CisgICAgdGVzdC0+Y2hlY2soImZvbyIsIFNlY3VyaXR5UG9saWN5VGVzdDo6TG9j
YWwgfCBTZWN1cml0eVBvbGljeVRlc3Q6Ok5vQWNjZXNzIHwgU2VjdXJpdHlQb2xpY3lUZXN0OjpE
aXNwbGF5SXNvbGF0ZWQgfCBTZWN1cml0eVBvbGljeVRlc3Q6OlNlY3VyZQorICAgICAgICAgICAg
ICAgIHwgU2VjdXJpdHlQb2xpY3lUZXN0OjpDT1JTRW5hYmxlZCB8IFNlY3VyaXR5UG9saWN5VGVz
dDo6RW1wdHlEb2N1bWVudCk7Cit9CisKIHZvaWQgYmVmb3JlQWxsKCkKIHsKICAgICBrU2VydmVy
ID0gbmV3IFdlYktpdFRlc3RTZXJ2ZXIoKTsKQEAgLTMwNyw2ICszODQsNyBAQCB2b2lkIGJlZm9y
ZUFsbCgpCiAgICAgVVJJU2NoZW1lVGVzdDo6YWRkKCJXZWJLaXRXZWJDb250ZXh0IiwgInVyaS1z
Y2hlbWUiLCB0ZXN0V2ViQ29udGV4dFVSSVNjaGVtZSk7CiAgICAgVGVzdDo6YWRkKCJXZWJLaXRX
ZWJDb250ZXh0IiwgInNwZWxsLWNoZWNrZXIiLCB0ZXN0V2ViQ29udGV4dFNwZWxsQ2hlY2tlcik7
CiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2ViQ29udGV4dCIsICJsYW5ndWFnZXMiLCB0
ZXN0V2ViQ29udGV4dExhbmd1YWdlcyk7CisgICAgU2VjdXJpdHlQb2xpY3lUZXN0OjphZGQoIldl
YktpdFNlY3VyaXR5TWFuYWdlciIsICJzZWN1cml0eS1wb2xpY3kiLCB0ZXN0V2ViQ29udGV4dFNl
Y3VyaXR5UG9saWN5KTsKIH0KIAogdm9pZCBhZnRlckFsbCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKaW5kZXggMTE2ZGFmYy4uZTFmM2JhMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaApAQCAtNDcsNiArNDcsNyBAQAog
I2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0UHJpbnRPcGVyYXRpb24uaD4KICNpbmNsdWRlIDx3ZWJr
aXQyL1dlYktpdFJlc3BvbnNlUG9saWN5RGVjaXNpb24uaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dl
YktpdFNjcmlwdERpYWxvZy5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0U2VjdXJpdHlNYW5h
Z2VyLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRTZXR0aW5ncy5oPgogI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0VVJJUmVxdWVzdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJUmVz
cG9uc2UuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAppbmRleCAwZGM1
MzA2Li45YWRiNjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBA
IC0zMzYsNiArMzM2LDEwIEBAIFBhc3NSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiBXZWJDb250ZXh0
OjpjcmVhdGVOZXdXZWJQcm9jZXNzKCkKICAgICBjb3B5VG9WZWN0b3IobV9zY2hlbWVzVG9SZWdp
c3RlckFzRW1wdHlEb2N1bWVudCwgcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlcmRBc0Vt
cHR5RG9jdW1lbnQpOwogICAgIGNvcHlUb1ZlY3RvcihtX3NjaGVtZXNUb1JlZ2lzdGVyQXNTZWN1
cmUsIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc1NlY3VyZSk7CiAgICAgY29weVRv
VmVjdG9yKG1fc2NoZW1lc1RvU2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvciwgcGFyYW1l
dGVycy51cmxTY2hlbWVzRm9yV2hpY2hEb21haW5SZWxheGF0aW9uSXNGb3JiaWRkZW4pOworICAg
IGNvcHlUb1ZlY3RvcihtX3NjaGVtZXNUb1JlZ2lzdGVyQXNMb2NhbCwgcGFyYW1ldGVycy51cmxT
Y2hlbWVzUmVnaXN0ZXJlZEFzTG9jYWwpOworICAgIGNvcHlUb1ZlY3RvcihtX3NjaGVtZXNUb1Jl
Z2lzdGVyQXNOb0FjY2VzcywgcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzTm9BY2Nl
c3MpOworICAgIGNvcHlUb1ZlY3RvcihtX3NjaGVtZXNUb1JlZ2lzdGVyQXNEaXNwbGF5SXNvbGF0
ZWQsIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0Rpc3BsYXlJc29sYXRlZCk7Cisg
ICAgY29weVRvVmVjdG9yKG1fc2NoZW1lc1RvUmVnaXN0ZXJBc0NPUlNFbmFibGVkLCBwYXJhbWV0
ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNDT1JTRW5hYmxlZCk7CiAKICAgICBwYXJhbWV0ZXJz
LnNob3VsZEFsd2F5c1VzZUNvbXBsZXhUZXh0Q29kZVBhdGggPSBtX2Fsd2F5c1VzZXNDb21wbGV4
VGV4dENvZGVQYXRoOwogICAgIHBhcmFtZXRlcnMuc2hvdWxkVXNlRm9udFNtb290aGluZyA9IG1f
c2hvdWxkVXNlRm9udFNtb290aGluZzsKQEAgLTY0MCw2ICs2NDQsMzAgQEAgdm9pZCBXZWJDb250
ZXh0OjpzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmlu
ZyYgdXJsU2NoZW0KICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6
OlNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUodXJsU2NoZW1lKSk7CiB9
CiAKK3ZvaWQgV2ViQ29udGV4dDo6cmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsKGNvbnN0IFN0cmlu
ZyYgdXJsU2NoZW1lKQoreworICAgIG1fc2NoZW1lc1RvUmVnaXN0ZXJBc0xvY2FsLmFkZCh1cmxT
Y2hlbWUpOworICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6UmVn
aXN0ZXJVUkxTY2hlbWVBc0xvY2FsKHVybFNjaGVtZSkpOworfQorCit2b2lkIFdlYkNvbnRleHQ6
OnJlZ2lzdGVyVVJMU2NoZW1lQXNOb0FjY2Vzcyhjb25zdCBTdHJpbmcmIHVybFNjaGVtZSkKK3sK
KyAgICBtX3NjaGVtZXNUb1JlZ2lzdGVyQXNOb0FjY2Vzcy5hZGQodXJsU2NoZW1lKTsKKyAgICBz
ZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlJlZ2lzdGVyVVJMU2NoZW1l
QXNOb0FjY2Vzcyh1cmxTY2hlbWUpKTsKK30KKwordm9pZCBXZWJDb250ZXh0OjpyZWdpc3RlclVS
TFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkKGNvbnN0IFN0cmluZyYgdXJsU2NoZW1lKQoreworICAg
IG1fc2NoZW1lc1RvUmVnaXN0ZXJBc0Rpc3BsYXlJc29sYXRlZC5hZGQodXJsU2NoZW1lKTsKKyAg
ICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlJlZ2lzdGVyVVJMU2No
ZW1lQXNEaXNwbGF5SXNvbGF0ZWQodXJsU2NoZW1lKSk7Cit9CisKK3ZvaWQgV2ViQ29udGV4dDo6
cmVnaXN0ZXJVUkxTY2hlbWVBc0NPUlNFbmFibGVkKGNvbnN0IFN0cmluZyYgdXJsU2NoZW1lKQor
eworICAgIG1fc2NoZW1lc1RvUmVnaXN0ZXJBc0NPUlNFbmFibGVkLmFkZCh1cmxTY2hlbWUpOwor
ICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6UmVnaXN0ZXJVUkxT
Y2hlbWVBc0NPUlNFbmFibGVkKHVybFNjaGVtZSkpOworfQorCiB2b2lkIFdlYkNvbnRleHQ6OnNl
dENhY2hlTW9kZWwoQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKQogewogICAgIG1fY2FjaGVNb2RlbCA9
IGNhY2hlTW9kZWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAppbmRleCBkZmVm
ZjFmLi4xZDA1MWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKQEAgLTEz
Miw2ICsxMzIsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0VtcHR5
RG9jdW1lbnQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzU2Vj
dXJlKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRl
bkZvclVSTFNjaGVtZShjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1l
QXNMb2NhbChjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNOb0Fj
Y2Vzcyhjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNEaXNwbGF5
SXNvbGF0ZWQoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzQ09S
U0VuYWJsZWQoY29uc3QgU3RyaW5nJik7CiAKICAgICB2b2lkIGFkZFZpc2l0ZWRMaW5rKGNvbnN0
IFN0cmluZyYpOwogICAgIHZvaWQgYWRkVmlzaXRlZExpbmtIYXNoKFdlYkNvcmU6OkxpbmtIYXNo
KTsKQEAgLTI5NSw2ICsyOTksMTAgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PFN0cmluZz4gbV9z
Y2hlbWVzVG9SZWdpc3RlckFzRW1wdHlEb2N1bWVudDsKICAgICBIYXNoU2V0PFN0cmluZz4gbV9z
Y2hlbWVzVG9SZWdpc3RlckFzU2VjdXJlOwogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3NjaGVtZXNU
b1NldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3I7CisgICAgSGFzaFNldDxTdHJpbmc+IG1f
c2NoZW1lc1RvUmVnaXN0ZXJBc0xvY2FsOworICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3NjaGVtZXNU
b1JlZ2lzdGVyQXNOb0FjY2VzczsKKyAgICBIYXNoU2V0PFN0cmluZz4gbV9zY2hlbWVzVG9SZWdp
c3RlckFzRGlzcGxheUlzb2xhdGVkOworICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3NjaGVtZXNUb1Jl
Z2lzdGVyQXNDT1JTRW5hYmxlZDsKIAogICAgIGJvb2wgbV9hbHdheXNVc2VzQ29tcGxleFRleHRD
b2RlUGF0aDsKICAgICBib29sIG1fc2hvdWxkVXNlRm9udFNtb290aGluZzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGVmODZiZjMuLmY5MjY3YzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMjkyLDYgKzI5MiwyNiBA
QCB2b2lkIFdlYlByb2Nlc3M6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hl
bWUoY29uc3QgU3RyaW5nJiB1cmxTY2hlbQogICAgIFNjaGVtZVJlZ2lzdHJ5OjpzZXREb21haW5S
ZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKHRydWUsIHVybFNjaGVtZSk7CiB9CiAKK3Zv
aWQgV2ViUHJvY2Vzczo6cmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsKGNvbnN0IFN0cmluZyYgdXJs
U2NoZW1lKSBjb25zdAoreworICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFz
TG9jYWwodXJsU2NoZW1lKTsKK30KKwordm9pZCBXZWJQcm9jZXNzOjpyZWdpc3RlclVSTFNjaGVt
ZUFzTm9BY2Nlc3MoY29uc3QgU3RyaW5nJiB1cmxTY2hlbWUpIGNvbnN0Cit7CisgICAgU2NoZW1l
UmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNOb0FjY2Vzcyh1cmxTY2hlbWUpOworfQorCit2
b2lkIFdlYlByb2Nlc3M6OnJlZ2lzdGVyVVJMU2NoZW1lQXNEaXNwbGF5SXNvbGF0ZWQoY29uc3Qg
U3RyaW5nJiB1cmxTY2hlbWUpIGNvbnN0Cit7CisgICAgU2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVy
VVJMU2NoZW1lQXNEaXNwbGF5SXNvbGF0ZWQodXJsU2NoZW1lKTsKK30KKwordm9pZCBXZWJQcm9j
ZXNzOjpyZWdpc3RlclVSTFNjaGVtZUFzQ09SU0VuYWJsZWQoY29uc3QgU3RyaW5nJiB1cmxTY2hl
bWUpIGNvbnN0Cit7CisgICAgU2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNDT1JT
RW5hYmxlZCh1cmxTY2hlbWUpOworfQorCiB2b2lkIFdlYlByb2Nlc3M6OnNldERlZmF1bHRSZXF1
ZXN0VGltZW91dEludGVydmFsKGRvdWJsZSB0aW1lb3V0SW50ZXJ2YWwpCiB7CiAgICAgUmVzb3Vy
Y2VSZXF1ZXN0OjpzZXREZWZhdWx0VGltZW91dEludGVydmFsKHRpbWVvdXRJbnRlcnZhbCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDk1M2FmMjkuLjBmNTQyYmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xOTksNiArMTk5LDEw
IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzRW1wdHlEb2N1bWVudChj
b25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNTZWN1cmUoY29uc3Qg
U3RyaW5nJikgY29uc3Q7CiAgICAgdm9pZCBzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9y
VVJMU2NoZW1lKGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hl
bWVBc0xvY2FsKGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hl
bWVBc05vQWNjZXNzKGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIHZvaWQgcmVnaXN0ZXJVUkxT
Y2hlbWVBc0Rpc3BsYXlJc29sYXRlZChjb25zdCBTdHJpbmcmKSBjb25zdDsKKyAgICB2b2lkIHJl
Z2lzdGVyVVJMU2NoZW1lQXNDT1JTRW5hYmxlZChjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2
b2lkIHNldERlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFsKGRvdWJsZSk7CiAgICAgdm9pZCBz
ZXRBbHdheXNVc2VzQ29tcGxleFRleHRDb2RlUGF0aChib29sKTsKICAgICB2b2lkIHNldFNob3Vs
ZFVzZUZvbnRTbW9vdGhpbmcoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggMjI3MTZjZS4uMzM2ZmY4YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNDIs
NiArNDIsMTAgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyB7CiAgICAgUmVnaXN0ZXJVUkxTY2hl
bWVBc0VtcHR5RG9jdW1lbnQoV1RGOjpTdHJpbmcgc2NoZW1lKQogICAgIFJlZ2lzdGVyVVJMU2No
ZW1lQXNTZWN1cmUoV1RGOjpTdHJpbmcgc2NoZW1lKQogICAgIFNldERvbWFpblJlbGF4YXRpb25G
b3JiaWRkZW5Gb3JVUkxTY2hlbWUoV1RGOjpTdHJpbmcgc2NoZW1lKQorICAgIFJlZ2lzdGVyVVJM
U2NoZW1lQXNMb2NhbChXVEY6OlN0cmluZyBzY2hlbWUpCisgICAgUmVnaXN0ZXJVUkxTY2hlbWVB
c05vQWNjZXNzKFdURjo6U3RyaW5nIHNjaGVtZSkKKyAgICBSZWdpc3RlclVSTFNjaGVtZUFzRGlz
cGxheUlzb2xhdGVkKFdURjo6U3RyaW5nIHNjaGVtZSkKKyAgICBSZWdpc3RlclVSTFNjaGVtZUFz
Q09SU0VuYWJsZWQoV1RGOjpTdHJpbmcgc2NoZW1lKQogICAgIFNldERlZmF1bHRSZXF1ZXN0VGlt
ZW91dEludGVydmFsKGRvdWJsZSB0aW1lb3V0SW50ZXJ2YWwpCiAgICAgU2V0QWx3YXlzVXNlc0Nv
bXBsZXhUZXh0Q29kZVBhdGgoYm9vbCBhbHdheXNVc2VDb21wbGV4VGV4dCkKICAgICBTZXRTaG91
bGRVc2VGb250U21vb3RoaW5nKGJvb2wgdXNlRm9udFNtb290aGluZykK
</data>
<flag name="review"
          id="176338"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>