<?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>152878</bug_id>
          
          <creation_ts>2016-01-07 18:00:01 -0800</creation_ts>
          <short_desc>Implement download authentication with NetworkSession</short_desc>
          <delta_ts>2016-01-12 03:21:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ossy</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1153710</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-01-07 18:00:01 -0800</bug_when>
    <thetext>Implement download authentication with NetworkSession</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153711</commentid>
    <comment_count>1</comment_count>
      <attachid>268517</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-01-07 18:00:11 -0800</bug_when>
    <thetext>Created attachment 268517
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153713</commentid>
    <comment_count>2</comment_count>
      <attachid>268517</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-01-07 18:00:59 -0800</bug_when>
    <thetext>Comment on attachment 268517
Patch

This first patch just has the infrastructure for IPC, but doesn&apos;t use it to communicate with the UI Process yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154033</commentid>
    <comment_count>3</comment_count>
      <attachid>268591</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-01-08 15:22:37 -0800</bug_when>
    <thetext>Created attachment 268591
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154046</commentid>
    <comment_count>4</comment_count>
      <attachid>268596</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-01-08 15:54:38 -0800</bug_when>
    <thetext>Created attachment 268596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154076</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-01-08 17:22:31 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/194810</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154121</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-01-08 22:09:12 -0800</bug_when>
    <thetext>This broke the CMake build, haha!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154337</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-01-11 02:31:19 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; This broke the CMake build, haha!

Still broken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154654</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-01-12 03:21:48 -0800</bug_when>
    <thetext>just to document: build fixed by https://trac.webkit.org/changeset/194860</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268517</attachid>
            <date>2016-01-07 18:00:11 -0800</date>
            <delta_ts>2016-01-08 15:22:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152878-20160107175939.patch</filename>
            <type>text/plain</type>
            <size>17989</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NDc0OCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDE2LTAxLTA3ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IGRvd25sb2FkIGF1dGhlbnRpY2F0aW9uIHdpdGggTmV0d29ya1Nlc3Npb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjg3OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFr
ZToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvUGVuZGluZ0Rvd25sb2FkLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OlBlbmRpbmdEb3dubG9hZDo6UGVuZGluZ0Rvd25sb2FkKToKKyAg
ICAgICAgKFdlYktpdDo6UGVuZGluZ0Rvd25sb2FkOjp3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0
KToKKyAgICAgICAgKFdlYktpdDo6UGVuZGluZ0Rvd25sb2FkOjpjb250aW51ZVdpbGxTZW5kUmVx
dWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlBlbmRpbmdEb3dubG9hZDo6Y2FuQXV0aGVudGljYXRl
QWdhaW5zdFByb3RlY3Rpb25TcGFjZUFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6UGVuZGluZ0Rv
d25sb2FkOjpjb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UpOgor
ICAgICAgICAoV2ViS2l0OjpQZW5kaW5nRG93bmxvYWQ6OmRpZENvbnZlcnRUb0Rvd25sb2FkKToK
KyAgICAgICAgKFdlYktpdDo6UGVuZGluZ0Rvd25sb2FkOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OlBlbmRpbmdEb3dubG9hZDo6bWVzc2FnZVNlbmRlckRlc3Rp
bmF0aW9uSUQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93
bmxvYWQuaDoKKyAgICAgICAgKFdlYktpdDo6UGVuZGluZ0Rvd25sb2FkOjpQZW5kaW5nRG93bmxv
YWQpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5n
RG93bmxvYWQubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkOjpwZW5kaW5nRG93bmxv
YWRJRCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2Nv
YS5tbToKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBXZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTYtMDEtMDcgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBQcm9ncmVzcyB0b3dhcmRzIGlt
cGxlbWVudGluZyBkb3dubG9hZHMgd2l0aCBOZXR3b3JrU2Vzc2lvbgpJbmRleDogU291cmNlL1dl
YktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9E
ZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAxOTQ3MTcpCisrKyBTb3VyY2UvV2ViS2l0Mi9E
ZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBAIFZQQVRI
ID0gXAogICAgICQoV2ViS2l0MikvRGF0YWJhc2VQcm9jZXNzL21hYyBcCiAgICAgJChXZWJLaXQy
KS9OZXR3b3JrUHJvY2VzcyBcCiAgICAgJChXZWJLaXQyKS9OZXR3b3JrUHJvY2Vzcy9DdXN0b21Q
cm90b2NvbHMgXAorICAgICQoV2ViS2l0MikvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzIFwKICAg
ICAkKFdlYktpdDIpL05ldHdvcmtQcm9jZXNzL21hYyBcCiAgICAgJChXZWJLaXQyKS9QbHVnaW5Q
cm9jZXNzIFwKICAgICAkKFdlYktpdDIpL1BsdWdpblByb2Nlc3MvbWFjIFwKQEAgLTg2LDYgKzg3
LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
IFwKICAgICBOZXR3b3JrUHJvY2Vzc1Byb3h5IFwKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkZXIg
XAorICAgIFBlbmRpbmdEb3dubG9hZCBcCiAgICAgUGx1Z2luQ29udHJvbGxlclByb3h5IFwKICAg
ICBQbHVnaW5Qcm9jZXNzIFwKICAgICBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbiBcCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybU1hYy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybU1hYy5jbWFrZQkocmV2aXNpb24gMTk0NzE3KQorKysgU291cmNlL1dlYktp
dDIvUGxhdGZvcm1NYWMuY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTQyOSw2ICs0MjksOCBAQCBz
ZXQoV2ViS2l0Ml9GT1JXQVJESU5HX0hFQURFUlNfRklMRVMKICkKIAogbGlzdChBUFBFTkQgV2Vi
S2l0Ml9NRVNTQUdFU19JTl9GSUxFUworICAgIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5k
aW5nRG93bmxvYWQubWVzc2FnZXMuaW4KKwogICAgIFNoYXJlZC9BUEkvQ29jb2EvUmVtb3RlT2Jq
ZWN0UmVnaXN0cnkubWVzc2FnZXMuaW4KIAogICAgIFNoYXJlZC9tYWMvU2VjSXRlbVNoaW0ubWVz
c2FnZXMuaW4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWQuaAkocmV2aXNpb24gMTk0NzE4KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWQuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNiArNjMsNyBAQCBwdWJsaWM6CiAj
aWYgVVNFKE5FVFdPUktfU0VTU0lPTikKICAgICB2b2lkIGNvbnZlcnRUYXNrVG9Eb3dubG9hZChE
b3dubG9hZElEKTsKICAgICB2b2lkIHNldFBlbmRpbmdEb3dubG9hZElEKERvd25sb2FkSUQpOwor
ICAgIERvd25sb2FkSUQgcGVuZGluZ0Rvd25sb2FkSUQoKSB7IHJldHVybiBtX3Rhc2stPnBlbmRp
bmdEb3dubG9hZElEKCk7IH0KICAgICAKICAgICAvLyBOZXR3b3JrU2Vzc2lvblRhc2tDbGllbnQu
CiAgICAgdmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBz
dGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik+KSBmaW5h
bCBvdmVycmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZC5oCShyZXZpc2lvbiAxOTQ3MTgpCisrKyBTb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaAkod29ya2luZyBjb3B5KQpAQCAt
MTEzLDYgKzExMyw3IEBAIHB1YmxpYzoKICAgICBEb3dubG9hZEF1dGhlbnRpY2F0aW9uQ2xpZW50
KiBhdXRoZW50aWNhdGlvbkNsaWVudCgpOwogI2VuZGlmCiAKKyNpZiAhVVNFKE5FVFdPUktfU0VT
U0lPTikKICAgICAvLyBBdXRoZW50aWNhdGlvbgogICAgIHN0YXRpYyB2b2lkIHJlY2VpdmVkQ3Jl
ZGVudGlhbChjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIGNvbnN0IFdl
YkNvcmU6OkNyZWRlbnRpYWwmKTsKICAgICBzdGF0aWMgdm9pZCByZWNlaXZlZFJlcXVlc3RUb0Nv
bnRpbnVlV2l0aG91dENyZWRlbnRpYWwoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmKTsKQEAgLTEyMyw2ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1c2VDcmVkZW50
aWFsKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgY29uc3QgV2ViQ29y
ZTo6Q3JlZGVudGlhbCYpOwogICAgIHZvaWQgY29udGludWVXaXRob3V0Q3JlZGVudGlhbChjb25z
dCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogICAgIHZvaWQgY2FuY2VsQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmKTsKKyNlbmRpZgogCiBwcml2YXRlOgogICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgpJbmRl
eDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkTWFuYWdlci5jcHAJKHJldmlzaW9uIDE5NDcxOCkKKysrIFNvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiRG93bmxvYWRNYW5hZ2VyLmgiCiAK
ICNpbmNsdWRlICJEb3dubG9hZC5oIgorI2luY2x1ZGUgIk5ldHdvcmtMb2FkLmgiCiAjaW5jbHVk
ZSAiTmV0d29ya1Nlc3Npb24uaCIKICNpbmNsdWRlICJQZW5kaW5nRG93bmxvYWQuaCIKICNpbmNs
dWRlICJTZXNzaW9uVHJhY2tlci5oIgpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL1BlbmRpbmdEb3dubG9hZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL1BlbmRpbmdEb3dubG9hZC5jcHAJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvUGVuZGlu
Z0Rvd25sb2FkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBlbmRpbmdEb3dubG9hZC5oIgorCisj
aW5jbHVkZSAiTmV0d29ya0xvYWQuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgorCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1BlbmRpbmdE
b3dubG9hZDo6UGVuZGluZ0Rvd25sb2FkKGNvbnN0IE5ldHdvcmtMb2FkUGFyYW1ldGVycyYgcGFy
YW1ldGVycywgRG93bmxvYWRJRCBkb3dubG9hZElEKQorICAgIDogbV9uZXR3b3JrTG9hZChzdGQ6
Om1ha2VfdW5pcXVlPE5ldHdvcmtMb2FkPigqdGhpcywgcGFyYW1ldGVycykpCit7CisgICAgbV9u
ZXR3b3JrTG9hZC0+c2V0UGVuZGluZ0Rvd25sb2FkSUQoZG93bmxvYWRJRCk7Cit9CisKK3ZvaWQg
UGVuZGluZ0Rvd25sb2FkOjp3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJl
Y3RSZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3Bv
bnNlKQoreworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNrIHRoZSBVSSBwcm9jZXNzIGRpcmVj
dGx5IGlmIHdlIGFjdHVhbGx5IHdhbnQgdG8gY29udGludWUgdGhpcyByZXF1ZXN0LgorICAgIGNv
bnRpbnVlV2lsbFNlbmRSZXF1ZXN0KHJlZGlyZWN0UmVxdWVzdCk7Cit9OworICAgIAordm9pZCBQ
ZW5kaW5nRG93bmxvYWQ6OmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCkKK3sKKyAgICBtX25ldHdvcmtMb2FkLT5jb250aW51
ZVdpbGxTZW5kUmVxdWVzdChuZXdSZXF1ZXN0KTsKK30KKwordm9pZCBQZW5kaW5nRG93bmxvYWQ6
OmNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2VBc3luYyhjb25zdCBXZWJDb3Jl
OjpQcm90ZWN0aW9uU3BhY2UmKQoreworICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBhc2sgdGhl
IFVJIHByb2Nlc3MuCisgICAgY29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlv
blNwYWNlKGZhbHNlKTsKK30KKyAgICAKK3ZvaWQgUGVuZGluZ0Rvd25sb2FkOjpjb250aW51ZUNh
bkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoYm9vbCBjYW5BdXRoZW50aWNhdGUp
Cit7CisgICAgbV9uZXR3b3JrTG9hZC0+Y29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJv
dGVjdGlvblNwYWNlKGNhbkF1dGhlbnRpY2F0ZSk7Cit9CisgICAgCit2b2lkIFBlbmRpbmdEb3du
bG9hZDo6ZGlkQ29udmVydFRvRG93bmxvYWQoKQoreworICAgIG1fbmV0d29ya0xvYWQgPSBudWxs
cHRyOworfQorICAgIAorSVBDOjpDb25uZWN0aW9uKiBQZW5kaW5nRG93bmxvYWQ6Om1lc3NhZ2VT
ZW5kZXJDb25uZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRv
bigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCk7Cit9CisKK3VpbnQ2NF90IFBlbmRpbmdEb3du
bG9hZDo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKQoreworICAgIHJldHVybiBtX25ldHdv
cmtMb2FkLT5wZW5kaW5nRG93bmxvYWRJRCgpLmRvd25sb2FkSUQoKTsKK30KKyAgICAKK30KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93bmxv
YWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9h
ZHMvUGVuZGluZ0Rvd25sb2FkLmgJKHJldmlzaW9uIDE5NDcxOCkKKysrIFNvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93bmxvYWQuaAkod29ya2luZyBjb3B5
KQpAQCAtMjgsMzYgKzI4LDQ1IEBACiAKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQogCi0jaW5j
bHVkZSAiTmV0d29ya0xvYWQuaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVk
ZSAiTmV0d29ya0xvYWRDbGllbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUmVz
b3VyY2VSZXNwb25zZTsKK30KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFBlbmRpbmdE
b3dubG9hZCA6IHB1YmxpYyBOZXR3b3JrTG9hZENsaWVudCB7CitjbGFzcyBEb3dubG9hZElEOwor
Y2xhc3MgTmV0d29ya0xvYWQ7CitjbGFzcyBOZXR3b3JrTG9hZFBhcmFtZXRlcnM7CisgICAgCitj
bGFzcyBQZW5kaW5nRG93bmxvYWQgOiBwdWJsaWMgTmV0d29ya0xvYWRDbGllbnQsIHB1YmxpYyBJ
UEM6Ok1lc3NhZ2VTZW5kZXIgewogcHVibGljOgotICAgIFBlbmRpbmdEb3dubG9hZChjb25zdCBO
ZXR3b3JrTG9hZFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIERvd25sb2FkSUQgZG93bmxvYWRJRCkK
LSAgICAgICAgOiBtX25ldHdvcmtMb2FkKHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya0xvYWQ+KCp0
aGlzLCBwYXJhbWV0ZXJzKSkKLSAgICB7Ci0gICAgICAgIG1fbmV0d29ya0xvYWQtPnNldFBlbmRp
bmdEb3dubG9hZElEKGRvd25sb2FkSUQpOwotICAgIH0KKyAgICBQZW5kaW5nRG93bmxvYWQoY29u
c3QgTmV0d29ya0xvYWRQYXJhbWV0ZXJzJiwgRG93bmxvYWRJRCk7CiAKIHByaXZhdGU6ICAgIAog
ICAgIC8vIE5ldHdvcmtMb2FkQ2xpZW50LgogICAgIHZpcnR1YWwgdm9pZCBkaWRTZW5kRGF0YSh1
bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRl
c1RvQmVTZW50KSBvdmVycmlkZSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgY2FuQXV0aGVudGljYXRl
QWdhaW5zdFByb3RlY3Rpb25TcGFjZUFzeW5jKGNvbnN0IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFj
ZSYpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0
UHJvdGVjdGlvblNwYWNlQXN5bmMoY29uc3QgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlJikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzU3luY2hyb25vdXMoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1
ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiByZWRpcmVjdFJlc3BvbnNlKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAgLy8gRklYTUU6
IFdlIHNob3VsZCBhc2sgdGhlIFVJIHByb2Nlc3MgZGlyZWN0bHkgaWYgd2UgYWN0dWFsbHkgd2Fu
dCB0byBjb250aW51ZSB0aGlzIHJlcXVlc3QuCi0gICAgICAgIG1fbmV0d29ya0xvYWQtPmNvbnRp
bnVlV2lsbFNlbmRSZXF1ZXN0KHJlZGlyZWN0UmVxdWVzdCk7Ci0gICAgfTsKKyAgICB2aXJ0dWFs
IHZvaWQgd2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVxdWVzdCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBTaG91bGRDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSBkaWRSZWNl
aXZlUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlIHsg
cmV0dXJuIFNob3VsZENvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlOjpObzsgfTsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZUJ1ZmZlcihSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYm
LCBpbnQgcmVwb3J0ZWRFbmNvZGVkRGF0YUxlbmd0aCkgb3ZlcnJpZGUgeyB9OwogICAgIHZpcnR1
YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1lKSBvdmVycmlkZSB7IH07
CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWxMb2FkaW5nKGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
RXJyb3ImKSBvdmVycmlkZSB7IH07Ci0gICAgdmlydHVhbCB2b2lkIGRpZENvbnZlcnRUb0Rvd25s
b2FkKCkgb3ZlcnJpZGUgeyBtX25ldHdvcmtMb2FkID0gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwg
dm9pZCBkaWRDb252ZXJ0VG9Eb3dubG9hZCgpIG92ZXJyaWRlOwogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2FjaGVSZXNwb25zZUFzeW5jKENGQ2FjaGVkVVJMUmVz
cG9uc2VSZWYpIG92ZXJyaWRlIHsgfQogI2VuZGlmCisgICAgCisgICAgdm9pZCBjb250aW51ZVdp
bGxTZW5kUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICB2b2lk
IGNvbnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShib29sIGNhbkF1
dGhlbnRpY2F0ZSk7CisKKyAgICAvLyBNZXNzYWdlU2VuZGVyLgorICAgIHZpcnR1YWwgSVBDOjpD
b25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBvdmVycmlkZTsKKwogcHJp
dmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0xvYWQ+IG1fbmV0d29ya0xvYWQ7CiB9
OwpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL1BlbmRpbmdE
b3dubG9hZC5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvUGVuZGluZ0Rvd25sb2FkLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAw
KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL1BlbmRpbmdEb3du
bG9hZC5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI2IEBACisjIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFBlbmRpbmdEb3du
bG9hZCB7CisgICAgQ29udGludWVXaWxsU2VuZFJlcXVlc3QoV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QpCisgICAgQ29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlv
blNwYWNlKGJvb2wgY2FuQXV0aGVudGljYXRlKQorfQpJbmRleDogU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1t
CShyZXZpc2lvbiAxOTQ3MTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKIAogI2ltcG9ydCAiRG93bmxvYWQuaCIKKyNpbXBv
cnQgIk5ldHdvcmtMb2FkLmgiCiAjaW1wb3J0ICJOZXR3b3JrUHJvY2Vzcy5oIgogI2ltcG9ydCAi
U2Vzc2lvblRyYWNrZXIuaCIKICNpbXBvcnQgPEZvdW5kYXRpb24vTlNVUkxTZXNzaW9uLmg+Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCShyZXZpc2lvbiAxOTQ3MTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEwNjksNiArMTA2OSw3IEBACiAJ
CTVDMjBDQjlEMUJCMERDRkEwMDg5NUJCMSAvKiBOZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMyMENCOUIxQkIwRENE
MjAwODk1QkIxIC8qIE5ldHdvcmtTZXNzaW9uQ29jb2EubW0gKi87IH07CiAJCTVDMjBDQkEwMUJC
MUVDRDgwMDg5NUJCMSAvKiBOZXR3b3JrU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMyMENCOUUxQkIwREQxODAwODk1QkIxIC8qIE5ldHdv
cmtTZXNzaW9uLmggKi87IH07CiAJCTVDMjk4REEwMUMzREYwMjEwMDQ3MEFGRSAvKiBQZW5kaW5n
RG93bmxvYWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVDMjk4RDlFMUMzREVGMjkwMDQ3MEFGRSAvKiBQZW5kaW5nRG93bmxvYWQuaCAqLzsgfTsKKwkJ
NUM4NUM3ODgxQzNGMjNDRTAwNjFBNEZBIC8qIFBlbmRpbmdEb3dubG9hZC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Qzg1Qzc4NjFDM0YyM0M1MDA2
MUE0RkEgLyogUGVuZGluZ0Rvd25sb2FkLmNwcCAqLzsgfTsKIAkJNURBNkVEMEExNDkwNjA2OTAw
QjQxRDEyIC8qIER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNURBNkVEMDgxNDkwNjA2OTAwQjQx
RDEyIC8qIER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5oICovOyB9OwogCQk1REE2
RUQwQjE0OTA2MDY5MDBCNDFEMTIgLyogRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9y
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNURBNkVE
MDkxNDkwNjA2OTAwQjQxRDEyIC8qIER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5t
bSAqLzsgfTsKIAkJNjUwMUJEMUExMkYxMjQzNDAwRTlGMjQ4IC8qIFdLQnVuZGxlSW5zcGVjdG9y
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1Qjg2
RjE3MTJGMTFEN0IwMEI3REQ4QSAvKiBXS0J1bmRsZUluc3BlY3Rvci5jcHAgKi87IH07CkBAIC0z
MjU0LDYgKzMyNTUsOCBAQAogCQk1QzIwQ0I5QjFCQjBEQ0QyMDA4OTVCQjEgLyogTmV0d29ya1Nl
c3Npb25Db2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IE5l
dHdvcmtTZXNzaW9uQ29jb2EubW07IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
U2Vzc2lvbkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzIwQ0I5RTFC
QjBERDE4MDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gTmV0d29ya1Nlc3Npb24uaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMjk4RDlFMUMzREVG
MjkwMDQ3MEFGRSAvKiBQZW5kaW5nRG93bmxvYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gUGVuZGluZ0Rvd25sb2FkLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9h
ZHMvUGVuZGluZ0Rvd25sb2FkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDODVD
Nzg2MUMzRjIzQzUwMDYxQTRGQSAvKiBQZW5kaW5nRG93bmxvYWQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUGVuZGluZ0Rvd25sb2FkLmNwcDsgcGF0aCA9IE5ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93bmxvYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1Qzg1Qzc4OTFDM0YyODQwMDA2MUE0RkEgLyogUGVuZGluZ0Rvd25sb2Fk
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFBlbmRpbmdEb3dubG9hZC5tZXNz
YWdlcy5pbjsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93bmxvYWQu
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVENDQyQTU1MTZENTg1
NjcwMEFDMzMzMSAvKiBQbHVnaW5TZXJ2aWNlLmVudGl0bGVtZW50cyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueG1sOyBwYXRoID0gUGx1Z2lu
U2VydmljZS5lbnRpdGxlbWVudHM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEQTZF
RDA4MTQ5MDYwNjkwMEI0MUQxMiAvKiBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHluYW1pY0xpbmtlckVudmlyb25t
ZW50RXh0cmFjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEQTZFRDA5MTQ5
MDYwNjkwMEI0MUQxMiAvKiBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEeW5hbWljTGlua2VyRW52aXJv
bm1lbnRFeHRyYWN0b3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01ODI4LDYg
KzU4MzEsOCBAQAogCQk1QzE0MjZGMTFDMjNGODE3MDBENDExODMgLyogRG93bmxvYWRzICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1Qzg1Qzc4OTFDM0Yy
ODQwMDA2MUE0RkEgLyogUGVuZGluZ0Rvd25sb2FkLm1lc3NhZ2VzLmluICovLAorCQkJCTVDODVD
Nzg2MUMzRjIzQzUwMDYxQTRGQSAvKiBQZW5kaW5nRG93bmxvYWQuY3BwICovLAogCQkJCTVDMjk4
RDlFMUMzREVGMjkwMDQ3MEFGRSAvKiBQZW5kaW5nRG93bmxvYWQuaCAqLywKIAkJCQk1QzE0Mjcw
QzFDMjNGODc3MDBENDExODMgLyogaW9zICovLAogCQkJCTVDMTQyNzBCMUMyM0Y4NzEwMEQ0MTE4
MyAvKiBtYWMgKi8sCkBAIC05NTcyLDYgKzk1NzcsNyBAQAogCQkJCUUxNTI1NTFBMTcwMTE4MTkw
MDNEN0FEQiAvKiBOZXR3b3JrUmVzb3VyY2VMb2FkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkM4MjgzQUMxNkI0QkYzRjAwQTI3OEZFIC8qIE5ldHdvcmtTZXJ2aWNl
RW50cnlQb2ludC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDMjBDQjlEMUJCMERDRkEwMDg5NUJC
MSAvKiBOZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNUM4NUM3ODgx
QzNGMjNDRTAwNjFBNEZBIC8qIFBlbmRpbmdEb3dubG9hZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkzMUEyRUM1NTE0ODk5ODJFMDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzEzMTI2MUUxNDhGRjgyQzAwQkEyQTM5IC8qIE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkzMUEyRUM1MDE0ODk5ODA1MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268591</attachid>
            <date>2016-01-08 15:22:37 -0800</date>
            <delta_ts>2016-01-08 15:54:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152878-20160108152205.patch</filename>
            <type>text/plain</type>
            <size>26985</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NDc5MikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDE2LTAxLTA4ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IGRvd25sb2FkIGF1dGhlbnRpY2F0aW9uIHdpdGggTmV0d29ya1Nlc3Npb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjg3OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFr
ZToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyOjpzdGFydERvd25sb2FkKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvUGVuZGluZ0Rvd25sb2FkLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OlBlbmRpbmdEb3dubG9hZDo6UGVuZGluZ0Rvd25sb2FkKToKKyAgICAgICAg
KFdlYktpdDo6UGVuZGluZ0Rvd25sb2FkOjp3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYktpdDo6UGVuZGluZ0Rvd25sb2FkOjpjb250aW51ZVdpbGxTZW5kUmVxdWVzdCk6
CisgICAgICAgIChXZWJLaXQ6OlBlbmRpbmdEb3dubG9hZDo6Y2FuQXV0aGVudGljYXRlQWdhaW5z
dFByb3RlY3Rpb25TcGFjZUFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6UGVuZGluZ0Rvd25sb2Fk
Ojpjb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UpOgorICAgICAg
ICAoV2ViS2l0OjpQZW5kaW5nRG93bmxvYWQ6OmRpZENvbnZlcnRUb0Rvd25sb2FkKToKKyAgICAg
ICAgKFdlYktpdDo6UGVuZGluZ0Rvd25sb2FkOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OlBlbmRpbmdEb3dubG9hZDo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9u
SUQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93bmxvYWQu
aDoKKyAgICAgICAgKFdlYktpdDo6UGVuZGluZ0Rvd25sb2FkOjpQZW5kaW5nRG93bmxvYWQpOiBE
ZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93bmxv
YWQubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtM
b2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6OmNvbnRpbnVlV2lsbFNlbmRS
ZXF1ZXN0KToKKyAgICAgICAgVGhlIGNvbXBsZXRpb24gaGFuZGxlciBzaG91bGQgYWx3YXlzIGJl
IGNhbGxlZC4gIElmIG1fY3VycmVudFJlcXVlc3QgaXMgbnVsbCwgdGhlbiB0aGUgcmVxdWVzdCB3
aWxsIG5vdCBwcm9jZWVkLCB3aGljaCBpcyB0aGUgc2FtZSBhcyBjYW5jZWxpbmcgaXQuCisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkOjpzZXRQZW5kaW5nRG93bmxvYWRJRCk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtMb2FkOjpzZXRQZW5kaW5nRG93bmxvYWQpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrTG9hZDo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrTG9hZDo6Y29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVj
dGlvblNwYWNlKToKKyAgICAgICAgSWYgdGhpcyBsb2FkIGlzIGdvaW5nIHRvIGJlY29tZSBhIGRv
d25sb2FkLCB0aGVuIGNhbGwgdGhlIFBlbmRpbmdEb3dubG9hZCB2ZXJzaW9uIG9mIGRpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSAKKyAgICAg
ICAgVUkgcHJvY2VzcyBkaXJlY3RseSBiZWNhdXNlIHRoZXJlIHdhc24ndCBuZWNlc3NhcmlseSBh
IHdlYiBwcm9jZXNzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlcXVlc3QgdGhhdCB3aWxsIGJlY29t
ZSBhIGRvd25sb2FkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmg6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkOjpwZW5kaW5nRG93bmxvYWRJRCk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0xvYWRDbGllbnQ6On5OZXR3b3JrTG9hZENsaWVudCk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFU
YXNrOjpjbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OnBlbmRpbmdE
b3dubG9hZElEKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpwZW5kaW5nRG93
bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OnNldFBlbmRpbmdEb3du
bG9hZElEKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpzZXRQZW5kaW5nRG93
bmxvYWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29j
b2EubW06CisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogU2hhcmVkL0F1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KToKKyAgICAgICAgKiBTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2Vy
Lmg6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE2
LTAxLTA3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IFVzZSBhbiBhcHByb3ByaWF0ZSBidWZmZXIgZm9ybWF0IGZvciBzd2lwZSBzbmFwc2hvdHMKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMTk0NzE3KQorKysgU291
cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjcsNiAr
MjcsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL0RhdGFiYXNlUHJvY2Vzcy9tYWMgXAog
ICAgICQoV2ViS2l0MikvTmV0d29ya1Byb2Nlc3MgXAogICAgICQoV2ViS2l0MikvTmV0d29ya1By
b2Nlc3MvQ3VzdG9tUHJvdG9jb2xzIFwKKyAgICAkKFdlYktpdDIpL05ldHdvcmtQcm9jZXNzL0Rv
d25sb2FkcyBcCiAgICAgJChXZWJLaXQyKS9OZXR3b3JrUHJvY2Vzcy9tYWMgXAogICAgICQoV2Vi
S2l0MikvUGx1Z2luUHJvY2VzcyBcCiAgICAgJChXZWJLaXQyKS9QbHVnaW5Qcm9jZXNzL21hYyBc
CkBAIC04Niw2ICs4Nyw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbiBcCiAgICAgTmV0d29ya1Byb2Nlc3NQcm94eSBcCiAgICAgTmV0d29ya1Jl
c291cmNlTG9hZGVyIFwKKyAgICBQZW5kaW5nRG93bmxvYWQgXAogICAgIFBsdWdpbkNvbnRyb2xs
ZXJQcm94eSBcCiAgICAgUGx1Z2luUHJvY2VzcyBcCiAgICAgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b24gXApJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm1NYWMuY21ha2UKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvUGxhdGZvcm1NYWMuY21ha2UJKHJldmlzaW9uIDE5NDcxNykKKysr
IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtTWFjLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC00Mjks
NiArNDI5LDggQEAgc2V0KFdlYktpdDJfRk9SV0FSRElOR19IRUFERVJTX0ZJTEVTCiApCiAKIGxp
c3QoQVBQRU5EIFdlYktpdDJfTUVTU0FHRVNfSU5fRklMRVMKKyAgICBOZXR3b3JrUHJvY2Vzcy9E
b3dubG9hZHMvUGVuZGluZ0Rvd25sb2FkLm1lc3NhZ2VzLmluCisKICAgICBTaGFyZWQvQVBJL0Nv
Y29hL1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluCiAKICAgICBTaGFyZWQvbWFjL1Nl
Y0l0ZW1TaGltLm1lc3NhZ2VzLmluCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTG9hZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWQuY3BwCShyZXZpc2lvbiAxOTQ3MTgpCisrKyBTb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOSwx
OCArMTA5LDE3IEBAIHZvaWQgTmV0d29ya0xvYWQ6OmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXMKIAog
ICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0LmlzTnVsbCgpKSB7CiAjaWYgVVNFKE5FVFdPUktfU0VT
U0lPTikKLSAgICAgICAgbV90YXNrLT5jYW5jZWwoKTsKICAgICAgICAgbV9jbGllbnQuZGlkRmFp
bExvYWRpbmcoY2FuY2VsbGVkRXJyb3IobV9jdXJyZW50UmVxdWVzdCkpOwogI2Vsc2UKICAgICAg
ICAgbV9oYW5kbGUtPmNhbmNlbCgpOwogICAgICAgICBkaWRGYWlsKG1faGFuZGxlLmdldCgpLCBj
YW5jZWxsZWRFcnJvcihtX2N1cnJlbnRSZXF1ZXN0KSk7Ci0jZW5kaWYKICAgICAgICAgcmV0dXJu
OworI2VuZGlmCiAgICAgfQogCiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKICAgICBBU1NFUlQo
bV9yZWRpcmVjdENvbXBsZXRpb25IYW5kbGVyKTsKLSAgICBtX3JlZGlyZWN0Q29tcGxldGlvbkhh
bmRsZXIobmV3UmVxdWVzdCk7CisgICAgbV9yZWRpcmVjdENvbXBsZXRpb25IYW5kbGVyKG1fY3Vy
cmVudFJlcXVlc3QpOwogICAgIG1fcmVkaXJlY3RDb21wbGV0aW9uSGFuZGxlciA9IG51bGxwdHI7
CiAjZWxzZQogICAgIG1faGFuZGxlLT5jb250aW51ZVdpbGxTZW5kUmVxdWVzdChtX2N1cnJlbnRS
ZXF1ZXN0KTsKQEAgLTE3NSw2ICsxNzQsMTEgQEAgdm9pZCBOZXR3b3JrTG9hZDo6c2V0UGVuZGlu
Z0Rvd25sb2FkSUQoRAogICAgIG1fdGFzay0+c2V0UGVuZGluZ0Rvd25sb2FkSUQoZG93bmxvYWRJ
RCk7CiB9CiAKK3ZvaWQgTmV0d29ya0xvYWQ6OnNldFBlbmRpbmdEb3dubG9hZChQZW5kaW5nRG93
bmxvYWQmIHBlbmRpbmdEb3dubG9hZCkKK3sKKyAgICBtX3Rhc2stPnNldFBlbmRpbmdEb3dubG9h
ZChwZW5kaW5nRG93bmxvYWQpOworfQorCiB2b2lkIE5ldHdvcmtMb2FkOjp3aWxsUGVyZm9ybUhU
VFBSZWRpcmVjdGlvbihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZWRpcmVjdENvbXBsZXRpb25IYW5kbGVyIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIEFTU0VSVCghbV9yZWRpcmVjdENvbXBsZXRpb25IYW5kbGVyKTsK
QEAgLTMyMyw3ICszMjcsMTAgQEAgdm9pZCBOZXR3b3JrTG9hZDo6Y29udGludWVDYW5BdXRoZW50
aWNhdAogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIE5ldHdvcmtQcm9jZXNzOjpz
aW5nbGV0b24oKS5hdXRoZW50aWNhdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UobV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQsIG1fY2hhbGxlbmdlLCBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgaWYgKGF1dG8qIHBlbmRp
bmdEb3dubG9hZCA9IG1fdGFzay0+cGVuZGluZ0Rvd25sb2FkKCkpCisgICAgICAgIE5ldHdvcmtQ
cm9jZXNzOjpzaW5nbGV0b24oKS5hdXRoZW50aWNhdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoKnBlbmRpbmdEb3dubG9hZCwgbV9jaGFsbGVuZ2UsIGNvbXBs
ZXRpb25IYW5kbGVyKTsKKyAgICBlbHNlCisgICAgICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0
b24oKS5hdXRoZW50aWNhdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UobV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1f
Y2hhbGxlbmdlLCBjb21wbGV0aW9uSGFuZGxlcik7CiAjZWxzZQogICAgIG1faGFuZGxlLT5jb250
aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UocmVzdWx0KTsKICNlbmRp
ZgpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oCShy
ZXZpc2lvbiAxOTQ3MTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Myw2ICs2Myw4IEBAIHB1YmxpYzoKICNpZiBVU0Uo
TkVUV09SS19TRVNTSU9OKQogICAgIHZvaWQgY29udmVydFRhc2tUb0Rvd25sb2FkKERvd25sb2Fk
SUQpOwogICAgIHZvaWQgc2V0UGVuZGluZ0Rvd25sb2FkSUQoRG93bmxvYWRJRCk7CisgICAgdm9p
ZCBzZXRQZW5kaW5nRG93bmxvYWQoUGVuZGluZ0Rvd25sb2FkJik7CisgICAgRG93bmxvYWRJRCBw
ZW5kaW5nRG93bmxvYWRJRCgpIHsgcmV0dXJuIG1fdGFzay0+cGVuZGluZ0Rvd25sb2FkSUQoKTsg
fQogICAgIAogICAgIC8vIE5ldHdvcmtTZXNzaW9uVGFza0NsaWVudC4KICAgICB2aXJ0dWFsIHZv
aWQgd2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIHN0ZDo6ZnVuY3Rpb248dm9p
ZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKT4pIGZpbmFsIG92ZXJyaWRlOwpJbmRl
eDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDbGllbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENsaWVu
dC5oCShyZXZpc2lvbiAxOTQ3MTcpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZENsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw4IEBAIGNsYXNz
IFByb3RlY3Rpb25TcGFjZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFBlbmRpbmdE
b3dubG9hZDsKKwogY2xhc3MgTmV0d29ya0xvYWRDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1
YWwgfk5ldHdvcmtMb2FkQ2xpZW50KCkgeyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgJKHJldmlzaW9uIDE5NDcxOCkKKysrIFNvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgJKHdvcmtpbmcgY29weSkK
QEAgLTYxLDYgKzYxLDcgQEAgZW51bSBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bv
cwogfTsKIAogY2xhc3MgTmV0d29ya1Nlc3Npb247CitjbGFzcyBQZW5kaW5nRG93bmxvYWQ7CiAK
IGNsYXNzIE5ldHdvcmtTZXNzaW9uVGFza0NsaWVudCB7CiBwdWJsaWM6CkBAIC05OCwxNiArOTks
MjMgQEAgcHVibGljOgogICAgIE5ldHdvcmtTZXNzaW9uVGFza0NsaWVudCYgY2xpZW50KCkgeyBy
ZXR1cm4gbV9jbGllbnQ7IH0KIAogICAgIERvd25sb2FkSUQgcGVuZGluZ0Rvd25sb2FkSUQoKSB7
IHJldHVybiBtX3BlbmRpbmdEb3dubG9hZElEOyB9CisgICAgUGVuZGluZ0Rvd25sb2FkKiBwZW5k
aW5nRG93bmxvYWQoKSB7IHJldHVybiBtX3BlbmRpbmdEb3dubG9hZDsgfQogICAgIHZvaWQgc2V0
UGVuZGluZ0Rvd25sb2FkSUQoRG93bmxvYWRJRCBkb3dubG9hZElEKQogICAgIHsKICAgICAgICAg
QVNTRVJUKCFtX3BlbmRpbmdEb3dubG9hZElELmRvd25sb2FkSUQoKSk7CiAgICAgICAgIEFTU0VS
VChkb3dubG9hZElELmRvd25sb2FkSUQoKSk7CiAgICAgICAgIG1fcGVuZGluZ0Rvd25sb2FkSUQg
PSBkb3dubG9hZElEOwogICAgIH0KKyAgICB2b2lkIHNldFBlbmRpbmdEb3dubG9hZChQZW5kaW5n
RG93bmxvYWQmIHBlbmRpbmdEb3dubG9hZCkKKyAgICB7CisgICAgICAgIEFTU0VSVCghbV9wZW5k
aW5nRG93bmxvYWQpOworICAgICAgICBtX3BlbmRpbmdEb3dubG9hZCA9ICZwZW5kaW5nRG93bmxv
YWQ7CisgICAgfQogICAgIAogcHJpdmF0ZToKICAgICBOZXR3b3JrU2Vzc2lvbiYgbV9zZXNzaW9u
OwogICAgIE5ldHdvcmtTZXNzaW9uVGFza0NsaWVudCYgbV9jbGllbnQ7CisgICAgUGVuZGluZ0Rv
d25sb2FkKiBtX3BlbmRpbmdEb3dubG9hZCB7IG51bGxwdHIgfTsKICAgICBEb3dubG9hZElEIG1f
cGVuZGluZ0Rvd25sb2FkSUQ7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmV0YWluUHRyPE5T
VVJMU2Vzc2lvbkRhdGFUYXNrPiBtX3Rhc2s7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaAkocmV2aXNpb24gMTk0NzE4KQor
KysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmgJKHdv
cmtpbmcgY29weSkKQEAgLTExMyw2ICsxMTMsNyBAQCBwdWJsaWM6CiAgICAgRG93bmxvYWRBdXRo
ZW50aWNhdGlvbkNsaWVudCogYXV0aGVudGljYXRpb25DbGllbnQoKTsKICNlbmRpZgogCisjaWYg
IVVTRShORVRXT1JLX1NFU1NJT04pCiAgICAgLy8gQXV0aGVudGljYXRpb24KICAgICBzdGF0aWMg
dm9pZCByZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmLCBjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJik7CiAgICAgc3RhdGljIHZvaWQgcmVj
ZWl2ZWRSZXF1ZXN0VG9Db250aW51ZVdpdGhvdXRDcmVkZW50aWFsKGNvbnN0IFdlYkNvcmU6OkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CkBAIC0xMjMsNiArMTI0LDcgQEAgcHVibGljOgogICAg
IHZvaWQgdXNlQ3JlZGVudGlhbChjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYsIGNvbnN0IFdlYkNvcmU6OkNyZWRlbnRpYWwmKTsKICAgICB2b2lkIGNvbnRpbnVlV2l0aG91
dENyZWRlbnRpYWwoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKICAg
ICB2b2lkIGNhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlJik7CisjZW5kaWYKIAogcHJpdmF0ZToKICAgICAvLyBJUEM6Ok1l
c3NhZ2VTZW5kZXIKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZE1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCShyZXZpc2lvbiAxOTQ3MTgp
CisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5h
Z2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkRvd25s
b2FkTWFuYWdlci5oIgogCiAjaW5jbHVkZSAiRG93bmxvYWQuaCIKKyNpbmNsdWRlICJOZXR3b3Jr
TG9hZC5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCiAjaW5jbHVkZSAiUGVuZGluZ0Rv
d25sb2FkLmgiCiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKQEAgLTUyLDYgKzUzLDcgQEAg
dm9pZCBEb3dubG9hZE1hbmFnZXI6OnN0YXJ0RG93bmxvYWQoU2VzcwogICAgIE5ldHdvcmtMb2Fk
UGFyYW1ldGVycyBwYXJhbWV0ZXJzOwogICAgIHBhcmFtZXRlcnMuc2Vzc2lvbklEID0gc2Vzc2lv
bklEOwogICAgIHBhcmFtZXRlcnMucmVxdWVzdCA9IHJlcXVlc3Q7CisgICAgcGFyYW1ldGVycy5j
bGllbnRDcmVkZW50aWFsUG9saWN5ID0gQXNrQ2xpZW50Rm9yQWxsQ3JlZGVudGlhbHM7CiAgICAg
bV9wZW5kaW5nRG93bmxvYWRzLmFkZChkb3dubG9hZElELCBzdGQ6Om1ha2VfdW5pcXVlPFBlbmRp
bmdEb3dubG9hZD4ocGFyYW1ldGVycywgZG93bmxvYWRJRCkpOwogI2Vsc2UKICAgICBhdXRvIGRv
d25sb2FkID0gc3RkOjptYWtlX3VuaXF1ZTxEb3dubG9hZD4oKnRoaXMsIGRvd25sb2FkSUQsIHJl
cXVlc3QpOwpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL1Bl
bmRpbmdEb3dubG9hZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL1BlbmRpbmdEb3dubG9hZC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvUGVuZGluZ0Rvd25sb2FkLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlBlbmRpbmdEb3dubG9hZC5oIgorCisjaW5jbHVkZSAiTmV0d29y
a0xvYWQuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1BlbmRpbmdEb3dubG9hZDo6UGVuZGlu
Z0Rvd25sb2FkKGNvbnN0IE5ldHdvcmtMb2FkUGFyYW1ldGVycyYgcGFyYW1ldGVycywgRG93bmxv
YWRJRCBkb3dubG9hZElEKQorICAgIDogbV9uZXR3b3JrTG9hZChzdGQ6Om1ha2VfdW5pcXVlPE5l
dHdvcmtMb2FkPigqdGhpcywgcGFyYW1ldGVycykpCit7CisgICAgbV9uZXR3b3JrTG9hZC0+c2V0
UGVuZGluZ0Rvd25sb2FkSUQoZG93bmxvYWRJRCk7CisgICAgbV9uZXR3b3JrTG9hZC0+c2V0UGVu
ZGluZ0Rvd25sb2FkKCp0aGlzKTsKK30KKwordm9pZCBQZW5kaW5nRG93bmxvYWQ6OndpbGxTZW5k
UmVkaXJlY3RlZFJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCit7CisgICAgLy8gRklYTUU6IFdl
IHNob3VsZCBhc2sgdGhlIFVJIHByb2Nlc3MgZGlyZWN0bHkgaWYgd2UgYWN0dWFsbHkgd2FudCB0
byBjb250aW51ZSB0aGlzIHJlcXVlc3QuCisgICAgY29udGludWVXaWxsU2VuZFJlcXVlc3QocmVk
aXJlY3RSZXF1ZXN0KTsKK307CisgICAgCit2b2lkIFBlbmRpbmdEb3dubG9hZDo6Y29udGludWVX
aWxsU2VuZFJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0
KQoreworICAgIG1fbmV0d29ya0xvYWQtPmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KG5ld1JlcXVl
c3QpOworfQorCit2b2lkIFBlbmRpbmdEb3dubG9hZDo6Y2FuQXV0aGVudGljYXRlQWdhaW5zdFBy
b3RlY3Rpb25TcGFjZUFzeW5jKGNvbnN0IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYpCit7Cisg
ICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGFzayB0aGUgVUkgcHJvY2Vzcy4KKyAgICBjb250aW51
ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UodHJ1ZSk7Cit9CisgICAgCit2
b2lkIFBlbmRpbmdEb3dubG9hZDo6Y29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVj
dGlvblNwYWNlKGJvb2wgY2FuQXV0aGVudGljYXRlKQoreworICAgIG1fbmV0d29ya0xvYWQtPmNv
bnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShjYW5BdXRoZW50aWNh
dGUpOworfQorICAgIAordm9pZCBQZW5kaW5nRG93bmxvYWQ6OmRpZENvbnZlcnRUb0Rvd25sb2Fk
KCkKK3sKKyAgICBtX25ldHdvcmtMb2FkID0gbnVsbHB0cjsKK30KKyAgICAKK0lQQzo6Q29ubmVj
dGlvbiogUGVuZGluZ0Rvd25sb2FkOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpCit7CisgICAg
cmV0dXJuIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpOworfQorCit1aW50NjRfdCBQZW5kaW5nRG93bmxvYWQ6Om1lc3NhZ2VTZW5kZXJEZXN0aW5h
dGlvbklEKCkKK3sKKyAgICByZXR1cm4gbV9uZXR3b3JrTG9hZC0+cGVuZGluZ0Rvd25sb2FkSUQo
KS5kb3dubG9hZElEKCk7Cit9CisgICAgCit9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvUGVuZGluZ0Rvd25sb2FkLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL1BlbmRpbmdEb3dubG9hZC5oCShyZXZp
c2lvbiAxOTQ3MTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMv
UGVuZGluZ0Rvd25sb2FkLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDM2ICsyOCw0NSBAQAogCiAj
aWYgVVNFKE5FVFdPUktfU0VTU0lPTikKIAotI2luY2x1ZGUgIk5ldHdvcmtMb2FkLmgiCisjaW5j
bHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgIk5ldHdvcmtMb2FkQ2xpZW50LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7Cit9CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1jbGFzcyBQZW5kaW5nRG93bmxvYWQgOiBwdWJsaWMgTmV0d29ya0xv
YWRDbGllbnQgeworY2xhc3MgRG93bmxvYWRJRDsKK2NsYXNzIE5ldHdvcmtMb2FkOworY2xhc3Mg
TmV0d29ya0xvYWRQYXJhbWV0ZXJzOworICAgIAorY2xhc3MgUGVuZGluZ0Rvd25sb2FkIDogcHVi
bGljIE5ldHdvcmtMb2FkQ2xpZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKIHB1Ymxp
YzoKLSAgICBQZW5kaW5nRG93bmxvYWQoY29uc3QgTmV0d29ya0xvYWRQYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzLCBEb3dubG9hZElEIGRvd25sb2FkSUQpCi0gICAgICAgIDogbV9uZXR3b3JrTG9hZChz
dGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtMb2FkPigqdGhpcywgcGFyYW1ldGVycykpCi0gICAgewot
ICAgICAgICBtX25ldHdvcmtMb2FkLT5zZXRQZW5kaW5nRG93bmxvYWRJRChkb3dubG9hZElEKTsK
LSAgICB9CisgICAgUGVuZGluZ0Rvd25sb2FkKGNvbnN0IE5ldHdvcmtMb2FkUGFyYW1ldGVycyYs
IERvd25sb2FkSUQpOwogCiBwcml2YXRlOiAgICAKICAgICAvLyBOZXR3b3JrTG9hZENsaWVudC4K
ICAgICB2aXJ0dWFsIHZvaWQgZGlkU2VuZERhdGEodW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2Vu
dCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkgb3ZlcnJpZGUgeyB9Ci0g
ICAgdmlydHVhbCB2b2lkIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2VBc3lu
Yyhjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUFzeW5jKGNvbnN0
IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBp
c1N5bmNocm9ub3VzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgd2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVxdWVz
dCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkgb3Zl
cnJpZGUKLSAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNrIHRoZSBVSSBwcm9j
ZXNzIGRpcmVjdGx5IGlmIHdlIGFjdHVhbGx5IHdhbnQgdG8gY29udGludWUgdGhpcyByZXF1ZXN0
LgotICAgICAgICBtX25ldHdvcmtMb2FkLT5jb250aW51ZVdpbGxTZW5kUmVxdWVzdChyZWRpcmVj
dFJlcXVlc3QpOwotICAgIH07CisgICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kUmVkaXJlY3RlZFJl
cXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgU2hvdWxkQ29u
dGludWVEaWRSZWNlaXZlUmVzcG9uc2UgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlkZSB7IHJldHVybiBTaG91bGRDb250aW51ZURpZFJl
Y2VpdmVSZXNwb25zZTo6Tm87IH07CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVCdWZmZXIo
UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiwgaW50IHJlcG9ydGVkRW5jb2RlZERhdGFM
ZW5ndGgpIG92ZXJyaWRlIHsgfTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhk
b3VibGUgZmluaXNoVGltZSkgb3ZlcnJpZGUgeyB9OwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWls
TG9hZGluZyhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGUgeyB9OwotICAg
IHZpcnR1YWwgdm9pZCBkaWRDb252ZXJ0VG9Eb3dubG9hZCgpIG92ZXJyaWRlIHsgbV9uZXR3b3Jr
TG9hZCA9IG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29udmVydFRvRG93bmxvYWQo
KSBvdmVycmlkZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2aXJ0dWFsIHZvaWQgd2lsbENh
Y2hlUmVzcG9uc2VBc3luYyhDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKSBvdmVycmlkZSB7IH0KICNl
bmRpZgorICAgIAorICAgIHZvaWQgY29udGludWVXaWxsU2VuZFJlcXVlc3QoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgdm9pZCBjb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFn
YWluc3RQcm90ZWN0aW9uU3BhY2UoYm9vbCBjYW5BdXRoZW50aWNhdGUpOworCisgICAgLy8gTWVz
c2FnZVNlbmRlci4KKyAgICB2aXJ0dWFsIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNv
bm5lY3Rpb24oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJE
ZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGU7CisKIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRy
PE5ldHdvcmtMb2FkPiBtX25ldHdvcmtMb2FkOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93bmxvYWQubWVzc2FnZXMuaW4KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL1BlbmRpbmdE
b3dubG9hZC5tZXNzYWdlcy5pbgkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93bmxvYWQubWVzc2FnZXMuaW4JKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwyNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMg
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgor
IyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCittZXNzYWdlcyAtPiBQZW5kaW5nRG93bmxvYWQgeworICAgIENvbnRpbnVlV2lsbFNl
bmRSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0KQorICAgIENvbnRpbnVl
Q2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShib29sIGNhbkF1dGhlbnRpY2F0
ZSkKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtT
ZXNzaW9uQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQkocmV2aXNpb24gMTk0NzE4KQorKysgU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQko
d29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2lmIFVTRShORVRXT1JLX1NFU1NJT04p
CiAKICNpbXBvcnQgIkRvd25sb2FkLmgiCisjaW1wb3J0ICJOZXR3b3JrTG9hZC5oIgogI2ltcG9y
dCAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbXBvcnQgIlNlc3Npb25UcmFja2VyLmgiCiAjaW1wb3J0
IDxGb3VuZGF0aW9uL05TVVJMU2Vzc2lvbi5oPgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVk
L0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdl
ci5jcHAJKHJldmlzaW9uIDE5NDcxNykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSAiRG93bmxvYWQuaCIKICNpbmNsdWRlICJEb3dubG9hZFByb3h5
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJQZW5kaW5nRG93bmxvYWQuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKQEAgLTE0
MCw2ICsxNDEsMTggQEAgdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdQog
ICAgIAogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6
RGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHBhZ2VJRCwgZnJhbWVJRCwgYXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UsIGNoYWxsZW5nZUlEKSk7CiB9CisKK3ZvaWQgQXV0aGVudGljYXRp
b25NYW5hZ2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUGVuZGluZ0Rvd25s
b2FkJiBwZW5kaW5nRG93bmxvYWQsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXIg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgdWludDY0X3QgZHVtbXlQYWdlSUQgPSAwOworICAg
IHVpbnQ2NF90IGNoYWxsZW5nZUlEID0gYWRkQ2hhbGxlbmdlVG9DaGFsbGVuZ2VNYXAoe2R1bW15
UGFnZUlELCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgY29tcGxldGlvbkhhbmRsZXJ9KTsKKyAg
ICAKKyAgICAvLyBDb2FsZXNjZSBjaGFsbGVuZ2VzIGluIHRoZSBzYW1lIHByb3RlY3Rpb24gc3Bh
Y2UgYW5kIGluIHRoZSBzYW1lIHBhZ2UuCisgICAgaWYgKHNob3VsZENvYWxlc2NlQ2hhbGxlbmdl
KGR1bW15UGFnZUlELCBjaGFsbGVuZ2VJRCwgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpKQorICAg
ICAgICByZXR1cm47CisgICAgCisgICAgcGVuZGluZ0Rvd25sb2FkLnNlbmQoTWVzc2FnZXM6OkRv
d25sb2FkUHJveHk6OkRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShhdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSwgY2hhbGxlbmdlSUQpKTsKK30KICNlbmRpZgogdm9pZCBBdXRoZW50aWNh
dGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50NjRfdCBw
YWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBh
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgJ
KHJldmlzaW9uIDE5NDcxNykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlv
bi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgQ2hpbGRQcm9jZXNzOwogY2xhc3MgRG93bmxv
YWQ7CitjbGFzcyBQZW5kaW5nRG93bmxvYWQ7CiBjbGFzcyBXZWJGcmFtZTsKIAogY2xhc3MgQXV0
aGVudGljYXRpb25NYW5hZ2VyIDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMg
TmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewpA
QCAtNTYsMTIgKzU3LDE1IEBAIHB1YmxpYzoKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQogICAg
IHR5cGVkZWYgTmV0d29ya1Nlc3Npb25UYXNrQ2xpZW50OjpDaGFsbGVuZ2VDb21wbGV0aW9uSGFu
ZGxlciBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlcjsKICAgICB2b2lkIGRpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlv
bkhhbmRsZXIpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBl
bmRpbmdEb3dubG9hZCYsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwg
Q2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXIpOwogI2VuZGlmCiAgICAgLy8gQ2FsbGVkIGZvciBy
ZXNvdXJjZXMgaW4gdGhlIFdlYlByb2Nlc3MgKE5ldHdvcmtQcm9jZXNzIGRpc2FibGVkKQogICAg
IHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkZyYW1lKiwgY29uc3Qg
V2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKICAgICAvLyBDYWxsZWQgZm9yIHJl
c291cmNlcyBpbiB0aGUgTmV0d29ya1Byb2Nlc3MgKE5ldHdvcmtQcm9jZXNzIGVuYWJsZWQpCiAg
ICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodWludDY0X3QgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYpOworI2lmICFVU0UoTkVUV09SS19TRVNTSU9OKQogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKERvd25sb2FkJiwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRp
b25DaGFsbGVuZ2UmKTsKKyNlbmRpZgogCiAgICAgdm9pZCB1c2VDcmVkZW50aWFsRm9yQ2hhbGxl
bmdlKHVpbnQ2NF90IGNoYWxsZW5nZUlELCBjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJiwgY29u
c3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJik7CiAgICAgdm9pZCBjb250aW51ZVdpdGhvdXRD
cmVkZW50aWFsRm9yQ2hhbGxlbmdlKHVpbnQ2NF90IGNoYWxsZW5nZUlEKTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlz
aW9uIDE5NDcxOCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTA2OSw2ICsxMDY5LDcgQEAKIAkJNUMyMENCOUQx
QkIwRENGQTAwODk1QkIxIC8qIE5ldHdvcmtTZXNzaW9uQ29jb2EubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzIwQ0I5QjFCQjBEQ0QyMDA4OTVCQjEg
LyogTmV0d29ya1Nlc3Npb25Db2NvYS5tbSAqLzsgfTsKIAkJNUMyMENCQTAxQkIxRUNEODAwODk1
QkIxIC8qIE5ldHdvcmtTZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1QzIwQ0I5RTFCQjBERDE4MDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb24u
aCAqLzsgfTsKIAkJNUMyOThEQTAxQzNERjAyMTAwNDcwQUZFIC8qIFBlbmRpbmdEb3dubG9hZC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMyOThEOUUx
QzNERUYyOTAwNDcwQUZFIC8qIFBlbmRpbmdEb3dubG9hZC5oICovOyB9OworCQk1Qzg1Qzc4ODFD
M0YyM0NFMDA2MUE0RkEgLyogUGVuZGluZ0Rvd25sb2FkLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDODVDNzg2MUMzRjIzQzUwMDYxQTRGQSAvKiBQ
ZW5kaW5nRG93bmxvYWQuY3BwICovOyB9OwogCQk1REE2RUQwQTE0OTA2MDY5MDBCNDFEMTIgLyog
RHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1REE2RUQwODE0OTA2MDY5MDBCNDFEMTIgLyogRHlu
YW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yLmggKi87IH07CiAJCTVEQTZFRDBCMTQ5MDYw
NjkwMEI0MUQxMiAvKiBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1REE2RUQwOTE0OTA2MDY5
MDBCNDFEMTIgLyogRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yLm1tICovOyB9Owog
CQk2NTAxQkQxQTEyRjEyNDM0MDBFOUYyNDggLyogV0tCdW5kbGVJbnNwZWN0b3IuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVCODZGMTcxMkYxMUQ3
QjAwQjdERDhBIC8qIFdLQnVuZGxlSW5zcGVjdG9yLmNwcCAqLzsgfTsKQEAgLTMyNTQsNiArMzI1
NSw4IEBACiAJCTVDMjBDQjlCMUJCMERDRDIwMDg5NUJCMSAvKiBOZXR3b3JrU2Vzc2lvbkNvY29h
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gTmV0d29ya1Nlc3Np
b25Db2NvYS5tbTsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29j
b2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMjBDQjlFMUJCMEREMTgwMDg5
NUJCMSAvKiBOZXR3b3JrU2Vzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBOZXR3b3JrU2Vzc2lvbi5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMyOThEOUUxQzNERUYyOTAwNDcwQUZF
IC8qIFBlbmRpbmdEb3dubG9hZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQ
ZW5kaW5nRG93bmxvYWQuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5n
RG93bmxvYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM4NUM3ODYxQzNGMjND
NTAwNjFBNEZBIC8qIFBlbmRpbmdEb3dubG9hZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBQZW5kaW5nRG93bmxvYWQuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3Mv
RG93bmxvYWRzL1BlbmRpbmdEb3dubG9hZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTVDODVDNzg5MUMzRjI4NDAwMDYxQTRGQSAvKiBQZW5kaW5nRG93bmxvYWQubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gUGVuZGluZ0Rvd25sb2FkLm1lc3NhZ2VzLmluOyBw
YXRoID0gTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL1BlbmRpbmdEb3dubG9hZC5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQ0NDJBNTUxNkQ1ODU2NzAwQUMzMzMx
IC8qIFBsdWdpblNlcnZpY2UuZW50aXRsZW1lbnRzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54bWw7IHBhdGggPSBQbHVnaW5TZXJ2aWNlLmVu
dGl0bGVtZW50czsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNURBNkVEMDgxNDkwNjA2
OTAwQjQxRDEyIC8qIER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNURBNkVEMDkxNDkwNjA2OTAwQjQx
RDEyIC8qIER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJh
Y3Rvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU4MjgsNiArNTgzMSw4IEBA
CiAJCTVDMTQyNkYxMUMyM0Y4MTcwMEQ0MTE4MyAvKiBEb3dubG9hZHMgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTVDODVDNzg5MUMzRjI4NDAwMDYxQTRG
QSAvKiBQZW5kaW5nRG93bmxvYWQubWVzc2FnZXMuaW4gKi8sCisJCQkJNUM4NUM3ODYxQzNGMjND
NTAwNjFBNEZBIC8qIFBlbmRpbmdEb3dubG9hZC5jcHAgKi8sCiAJCQkJNUMyOThEOUUxQzNERUYy
OTAwNDcwQUZFIC8qIFBlbmRpbmdEb3dubG9hZC5oICovLAogCQkJCTVDMTQyNzBDMUMyM0Y4Nzcw
MEQ0MTE4MyAvKiBpb3MgKi8sCiAJCQkJNUMxNDI3MEIxQzIzRjg3MTAwRDQxMTgzIC8qIG1hYyAq
LywKQEAgLTk1NzIsNiArOTU3Nyw3IEBACiAJCQkJRTE1MjU1MUExNzAxMTgxOTAwM0Q3QURCIC8q
IE5ldHdvcmtSZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzgyODNBQzE2QjRCRjNGMDBBMjc4RkUgLyogTmV0d29ya1NlcnZpY2VFbnRyeVBvaW50
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMyMENCOUQxQkIwRENGQTAwODk1QkIxIC8qIE5ldHdv
cmtTZXNzaW9uQ29jb2EubW0gaW4gU291cmNlcyAqLywKKwkJCQk1Qzg1Qzc4ODFDM0YyM0NFMDA2
MUE0RkEgLyogUGVuZGluZ0Rvd25sb2FkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQTJFQzU1
MTQ4OTk4MkUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkzMTMxMjYxRTE0OEZGODJDMDBCQTJBMzkgLyogTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQTJFQzUw
MTQ4OTk4MDUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHAgaW4gU291cmNlcyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268596</attachid>
            <date>2016-01-08 15:54:38 -0800</date>
            <delta_ts>2016-01-08 17:09:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152878-20160108155406.patch</filename>
            <type>text/plain</type>
            <size>26487</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NDc5MikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDE2LTAxLTA4ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IGRvd25sb2FkIGF1dGhlbnRpY2F0aW9uIHdpdGggTmV0d29ya1Nlc3Npb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjg3OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFr
ZToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyOjpzdGFydERvd25sb2FkKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvUGVuZGluZ0Rvd25sb2FkLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OlBlbmRpbmdEb3dubG9hZDo6UGVuZGluZ0Rvd25sb2FkKToKKyAgICAgICAg
KFdlYktpdDo6UGVuZGluZ0Rvd25sb2FkOjp3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYktpdDo6UGVuZGluZ0Rvd25sb2FkOjpjb250aW51ZVdpbGxTZW5kUmVxdWVzdCk6
CisgICAgICAgIChXZWJLaXQ6OlBlbmRpbmdEb3dubG9hZDo6Y2FuQXV0aGVudGljYXRlQWdhaW5z
dFByb3RlY3Rpb25TcGFjZUFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6UGVuZGluZ0Rvd25sb2Fk
Ojpjb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UpOgorICAgICAg
ICAoV2ViS2l0OjpQZW5kaW5nRG93bmxvYWQ6OmRpZENvbnZlcnRUb0Rvd25sb2FkKToKKyAgICAg
ICAgKFdlYktpdDo6UGVuZGluZ0Rvd25sb2FkOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OlBlbmRpbmdEb3dubG9hZDo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9u
SUQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93bmxvYWQu
aDoKKyAgICAgICAgKFdlYktpdDo6UGVuZGluZ0Rvd25sb2FkOjpQZW5kaW5nRG93bmxvYWQpOiBE
ZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93bmxv
YWQubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtM
b2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6OmNvbnRpbnVlV2lsbFNlbmRS
ZXF1ZXN0KToKKyAgICAgICAgVGhlIGNvbXBsZXRpb24gaGFuZGxlciBzaG91bGQgYWx3YXlzIGJl
IGNhbGxlZC4gIElmIG1fY3VycmVudFJlcXVlc3QgaXMgbnVsbCwgdGhlbiB0aGUgcmVxdWVzdCB3
aWxsIG5vdCBwcm9jZWVkLCB3aGljaCBpcyB0aGUgc2FtZSBhcyBjYW5jZWxpbmcgaXQuCisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkOjpzZXRQZW5kaW5nRG93bmxvYWRJRCk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtMb2FkOjpzZXRQZW5kaW5nRG93bmxvYWQpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrTG9hZDo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrTG9hZDo6Y29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVj
dGlvblNwYWNlKToKKyAgICAgICAgSWYgdGhpcyBsb2FkIGlzIGdvaW5nIHRvIGJlY29tZSBhIGRv
d25sb2FkLCB0aGVuIGNhbGwgdGhlIFBlbmRpbmdEb3dubG9hZCB2ZXJzaW9uIG9mIGRpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSAKKyAgICAg
ICAgVUkgcHJvY2VzcyBkaXJlY3RseSBiZWNhdXNlIHRoZXJlIHdhc24ndCBuZWNlc3NhcmlseSBh
IHdlYiBwcm9jZXNzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlcXVlc3QgdGhhdCB3aWxsIGJlY29t
ZSBhIGRvd25sb2FkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmg6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkOjpwZW5kaW5nRG93bmxvYWRJRCk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0RhdGFUYXNrOjpjbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6
OnBlbmRpbmdEb3dubG9hZElEKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpw
ZW5kaW5nRG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OnNldFBl
bmRpbmdEb3dubG9hZElEKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpzZXRQ
ZW5kaW5nRG93bmxvYWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtT
ZXNzaW9uQ29jb2EubW06CisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICog
U2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKToKKyAgICAgICAgKiBTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRp
b25NYW5hZ2VyLmg6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorCiAyMDE2LTAxLTA3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFVzZSBhbiBhcHByb3ByaWF0ZSBidWZmZXIgZm9ybWF0IGZvciBzd2lwZSBzbmFw
c2hvdHMKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMTk0NzE3
KQorKysgU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpA
QCAtMjcsNiArMjcsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL0RhdGFiYXNlUHJvY2Vz
cy9tYWMgXAogICAgICQoV2ViS2l0MikvTmV0d29ya1Byb2Nlc3MgXAogICAgICQoV2ViS2l0Mikv
TmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzIFwKKyAgICAkKFdlYktpdDIpL05ldHdvcmtQ
cm9jZXNzL0Rvd25sb2FkcyBcCiAgICAgJChXZWJLaXQyKS9OZXR3b3JrUHJvY2Vzcy9tYWMgXAog
ICAgICQoV2ViS2l0MikvUGx1Z2luUHJvY2VzcyBcCiAgICAgJChXZWJLaXQyKS9QbHVnaW5Qcm9j
ZXNzL21hYyBcCkBAIC04Niw2ICs4Nyw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbiBcCiAgICAgTmV0d29ya1Byb2Nlc3NQcm94eSBcCiAgICAg
TmV0d29ya1Jlc291cmNlTG9hZGVyIFwKKyAgICBQZW5kaW5nRG93bmxvYWQgXAogICAgIFBsdWdp
bkNvbnRyb2xsZXJQcm94eSBcCiAgICAgUGx1Z2luUHJvY2VzcyBcCiAgICAgUGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb24gXApJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm1NYWMuY21ha2UKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGxhdGZvcm1NYWMuY21ha2UJKHJldmlzaW9uIDE5
NDcxNykKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtTWFjLmNtYWtlCSh3b3JraW5nIGNvcHkp
CkBAIC00MjksNiArNDI5LDggQEAgc2V0KFdlYktpdDJfRk9SV0FSRElOR19IRUFERVJTX0ZJTEVT
CiApCiAKIGxpc3QoQVBQRU5EIFdlYktpdDJfTUVTU0FHRVNfSU5fRklMRVMKKyAgICBOZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvUGVuZGluZ0Rvd25sb2FkLm1lc3NhZ2VzLmluCisKICAgICBTaGFy
ZWQvQVBJL0NvY29hL1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluCiAKICAgICBTaGFy
ZWQvbWFjL1NlY0l0ZW1TaGltLm1lc3NhZ2VzLmluCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCShyZXZpc2lvbiAxOTQ3MTgpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEwOSwxOCArMTA5LDE3IEBAIHZvaWQgTmV0d29ya0xvYWQ6OmNvbnRpbnVlV2lsbFNlbmRS
ZXF1ZXMKIAogICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0LmlzTnVsbCgpKSB7CiAjaWYgVVNFKE5F
VFdPUktfU0VTU0lPTikKLSAgICAgICAgbV90YXNrLT5jYW5jZWwoKTsKICAgICAgICAgbV9jbGll
bnQuZGlkRmFpbExvYWRpbmcoY2FuY2VsbGVkRXJyb3IobV9jdXJyZW50UmVxdWVzdCkpOwogI2Vs
c2UKICAgICAgICAgbV9oYW5kbGUtPmNhbmNlbCgpOwogICAgICAgICBkaWRGYWlsKG1faGFuZGxl
LmdldCgpLCBjYW5jZWxsZWRFcnJvcihtX2N1cnJlbnRSZXF1ZXN0KSk7Ci0jZW5kaWYKICAgICAg
ICAgcmV0dXJuOworI2VuZGlmCiAgICAgfQogCiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKICAg
ICBBU1NFUlQobV9yZWRpcmVjdENvbXBsZXRpb25IYW5kbGVyKTsKLSAgICBtX3JlZGlyZWN0Q29t
cGxldGlvbkhhbmRsZXIobmV3UmVxdWVzdCk7CisgICAgbV9yZWRpcmVjdENvbXBsZXRpb25IYW5k
bGVyKG1fY3VycmVudFJlcXVlc3QpOwogICAgIG1fcmVkaXJlY3RDb21wbGV0aW9uSGFuZGxlciA9
IG51bGxwdHI7CiAjZWxzZQogICAgIG1faGFuZGxlLT5jb250aW51ZVdpbGxTZW5kUmVxdWVzdCht
X2N1cnJlbnRSZXF1ZXN0KTsKQEAgLTE3NSw2ICsxNzQsMTEgQEAgdm9pZCBOZXR3b3JrTG9hZDo6
c2V0UGVuZGluZ0Rvd25sb2FkSUQoRAogICAgIG1fdGFzay0+c2V0UGVuZGluZ0Rvd25sb2FkSUQo
ZG93bmxvYWRJRCk7CiB9CiAKK3ZvaWQgTmV0d29ya0xvYWQ6OnNldFBlbmRpbmdEb3dubG9hZChQ
ZW5kaW5nRG93bmxvYWQmIHBlbmRpbmdEb3dubG9hZCkKK3sKKyAgICBtX3Rhc2stPnNldFBlbmRp
bmdEb3dubG9hZChwZW5kaW5nRG93bmxvYWQpOworfQorCiB2b2lkIE5ldHdvcmtMb2FkOjp3aWxs
UGVyZm9ybUhUVFBSZWRpcmVjdGlvbihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZWRpcmVjdENvbXBsZXRpb25IYW5kbGVy
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghbV9yZWRpcmVjdENvbXBsZXRpb25I
YW5kbGVyKTsKQEAgLTMyMyw3ICszMjcsMTAgQEAgdm9pZCBOZXR3b3JrTG9hZDo6Y29udGludWVD
YW5BdXRoZW50aWNhdAogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIE5ldHdvcmtQ
cm9jZXNzOjpzaW5nbGV0b24oKS5hdXRoZW50aWNhdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UobV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJz
LndlYkZyYW1lSUQsIG1fY2hhbGxlbmdlLCBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgaWYgKGF1
dG8qIHBlbmRpbmdEb3dubG9hZCA9IG1fdGFzay0+cGVuZGluZ0Rvd25sb2FkKCkpCisgICAgICAg
IE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5hdXRoZW50aWNhdGlvbk1hbmFnZXIoKS5kaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKnBlbmRpbmdEb3dubG9hZCwgbV9jaGFsbGVu
Z2UsIGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICBlbHNlCisgICAgICAgIE5ldHdvcmtQcm9jZXNz
OjpzaW5nbGV0b24oKS5hdXRoZW50aWNhdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UobV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZy
YW1lSUQsIG1fY2hhbGxlbmdlLCBjb21wbGV0aW9uSGFuZGxlcik7CiAjZWxzZQogICAgIG1faGFu
ZGxlLT5jb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UocmVzdWx0
KTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZC5oCShyZXZpc2lvbiAxOTQ3MTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTG9hZC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Myw2ICs2Myw4IEBAIHB1YmxpYzoK
ICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQogICAgIHZvaWQgY29udmVydFRhc2tUb0Rvd25sb2Fk
KERvd25sb2FkSUQpOwogICAgIHZvaWQgc2V0UGVuZGluZ0Rvd25sb2FkSUQoRG93bmxvYWRJRCk7
CisgICAgdm9pZCBzZXRQZW5kaW5nRG93bmxvYWQoUGVuZGluZ0Rvd25sb2FkJik7CisgICAgRG93
bmxvYWRJRCBwZW5kaW5nRG93bmxvYWRJRCgpIHsgcmV0dXJuIG1fdGFzay0+cGVuZGluZ0Rvd25s
b2FkSUQoKTsgfQogICAgIAogICAgIC8vIE5ldHdvcmtTZXNzaW9uVGFza0NsaWVudC4KICAgICB2
aXJ0dWFsIHZvaWQgd2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIHN0ZDo6ZnVu
Y3Rpb248dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKT4pIGZpbmFsIG92ZXJy
aWRlOwpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5oCShyZXZpc2lvbiAxOTQ3MTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2ICs2MSw3IEBAIGVudW0g
Y2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3MKIH07CiAKIGNsYXNzIE5ldHdvcmtT
ZXNzaW9uOworY2xhc3MgUGVuZGluZ0Rvd25sb2FkOwogCiBjbGFzcyBOZXR3b3JrU2Vzc2lvblRh
c2tDbGllbnQgewogcHVibGljOgpAQCAtOTgsMTYgKzk5LDIzIEBAIHB1YmxpYzoKICAgICBOZXR3
b3JrU2Vzc2lvblRhc2tDbGllbnQmIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKICAg
ICBEb3dubG9hZElEIHBlbmRpbmdEb3dubG9hZElEKCkgeyByZXR1cm4gbV9wZW5kaW5nRG93bmxv
YWRJRDsgfQorICAgIFBlbmRpbmdEb3dubG9hZCogcGVuZGluZ0Rvd25sb2FkKCkgeyByZXR1cm4g
bV9wZW5kaW5nRG93bmxvYWQ7IH0KICAgICB2b2lkIHNldFBlbmRpbmdEb3dubG9hZElEKERvd25s
b2FkSUQgZG93bmxvYWRJRCkKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV9wZW5kaW5nRG93bmxv
YWRJRC5kb3dubG9hZElEKCkpOwogICAgICAgICBBU1NFUlQoZG93bmxvYWRJRC5kb3dubG9hZElE
KCkpOwogICAgICAgICBtX3BlbmRpbmdEb3dubG9hZElEID0gZG93bmxvYWRJRDsKICAgICB9Cisg
ICAgdm9pZCBzZXRQZW5kaW5nRG93bmxvYWQoUGVuZGluZ0Rvd25sb2FkJiBwZW5kaW5nRG93bmxv
YWQpCisgICAgeworICAgICAgICBBU1NFUlQoIW1fcGVuZGluZ0Rvd25sb2FkKTsKKyAgICAgICAg
bV9wZW5kaW5nRG93bmxvYWQgPSAmcGVuZGluZ0Rvd25sb2FkOworICAgIH0KICAgICAKIHByaXZh
dGU6CiAgICAgTmV0d29ya1Nlc3Npb24mIG1fc2Vzc2lvbjsKICAgICBOZXR3b3JrU2Vzc2lvblRh
c2tDbGllbnQmIG1fY2xpZW50OworICAgIFBlbmRpbmdEb3dubG9hZCogbV9wZW5kaW5nRG93bmxv
YWQgeyBudWxscHRyIH07CiAgICAgRG93bmxvYWRJRCBtX3BlbmRpbmdEb3dubG9hZElEOwogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxOU1VSTFNlc3Npb25EYXRhVGFzaz4gbV90
YXNrOwpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkLmgJKHJldmlzaW9uIDE5NDcxOCkKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTMsNiAr
MTEzLDcgQEAgcHVibGljOgogICAgIERvd25sb2FkQXV0aGVudGljYXRpb25DbGllbnQqIGF1dGhl
bnRpY2F0aW9uQ2xpZW50KCk7CiAjZW5kaWYKIAorI2lmICFVU0UoTkVUV09SS19TRVNTSU9OKQog
ICAgIC8vIEF1dGhlbnRpY2F0aW9uCiAgICAgc3RhdGljIHZvaWQgcmVjZWl2ZWRDcmVkZW50aWFs
KGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgY29uc3QgV2ViQ29yZTo6
Q3JlZGVudGlhbCYpOwogICAgIHN0YXRpYyB2b2lkIHJlY2VpdmVkUmVxdWVzdFRvQ29udGludWVX
aXRob3V0Q3JlZGVudGlhbChjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYp
OwpAQCAtMTIzLDYgKzEyNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVzZUNyZWRlbnRpYWwoY29u
c3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBjb25zdCBXZWJDb3JlOjpDcmVk
ZW50aWFsJik7CiAgICAgdm9pZCBjb250aW51ZVdpdGhvdXRDcmVkZW50aWFsKGNvbnN0IFdlYkNv
cmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CiAgICAgdm9pZCBjYW5jZWxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwor
I2VuZGlmCiAKIHByaXZhdGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWRNYW5hZ2VyLmNwcAkocmV2aXNpb24gMTk0NzE4KQorKysgU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIKIAogI2luY2x1
ZGUgIkRvd25sb2FkLmgiCisjaW5jbHVkZSAiTmV0d29ya0xvYWQuaCIKICNpbmNsdWRlICJOZXR3
b3JrU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlBlbmRpbmdEb3dubG9hZC5oIgogI2luY2x1ZGUgIlNl
c3Npb25UcmFja2VyLmgiCkBAIC01Miw2ICs1Myw3IEBAIHZvaWQgRG93bmxvYWRNYW5hZ2VyOjpz
dGFydERvd25sb2FkKFNlc3MKICAgICBOZXR3b3JrTG9hZFBhcmFtZXRlcnMgcGFyYW1ldGVyczsK
ICAgICBwYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHNlc3Npb25JRDsKICAgICBwYXJhbWV0ZXJzLnJl
cXVlc3QgPSByZXF1ZXN0OworICAgIHBhcmFtZXRlcnMuY2xpZW50Q3JlZGVudGlhbFBvbGljeSA9
IEFza0NsaWVudEZvckFsbENyZWRlbnRpYWxzOwogICAgIG1fcGVuZGluZ0Rvd25sb2Fkcy5hZGQo
ZG93bmxvYWRJRCwgc3RkOjptYWtlX3VuaXF1ZTxQZW5kaW5nRG93bmxvYWQ+KHBhcmFtZXRlcnMs
IGRvd25sb2FkSUQpKTsKICNlbHNlCiAgICAgYXV0byBkb3dubG9hZCA9IHN0ZDo6bWFrZV91bmlx
dWU8RG93bmxvYWQ+KCp0aGlzLCBkb3dubG9hZElELCByZXF1ZXN0KTsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93bmxvYWQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5n
RG93bmxvYWQuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL1BlbmRpbmdEb3dubG9hZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQZW5k
aW5nRG93bmxvYWQuaCIKKworI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCisKKyNpbmNsdWRlICJO
ZXR3b3JrTG9hZC5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGVuZGluZ0Rvd25sb2FkOjpQ
ZW5kaW5nRG93bmxvYWQoY29uc3QgTmV0d29ya0xvYWRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBE
b3dubG9hZElEIGRvd25sb2FkSUQpCisgICAgOiBtX25ldHdvcmtMb2FkKHN0ZDo6bWFrZV91bmlx
dWU8TmV0d29ya0xvYWQ+KCp0aGlzLCBwYXJhbWV0ZXJzKSkKK3sKKyAgICBtX25ldHdvcmtMb2Fk
LT5zZXRQZW5kaW5nRG93bmxvYWRJRChkb3dubG9hZElEKTsKKyAgICBtX25ldHdvcmtMb2FkLT5z
ZXRQZW5kaW5nRG93bmxvYWQoKnRoaXMpOworfQorCit2b2lkIFBlbmRpbmdEb3dubG9hZDo6d2ls
bFNlbmRSZWRpcmVjdGVkUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVxdWVzdCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKK3sKKyAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIGFzayB0aGUgVUkgcHJvY2VzcyBkaXJlY3RseSBpZiB3ZSBhY3R1YWxseSB3
YW50IHRvIGNvbnRpbnVlIHRoaXMgcmVxdWVzdC4KKyAgICBjb250aW51ZVdpbGxTZW5kUmVxdWVz
dChyZWRpcmVjdFJlcXVlc3QpOworfTsKKyAgICAKK3ZvaWQgUGVuZGluZ0Rvd25sb2FkOjpjb250
aW51ZVdpbGxTZW5kUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG5ld1Jl
cXVlc3QpCit7CisgICAgbV9uZXR3b3JrTG9hZC0+Y29udGludWVXaWxsU2VuZFJlcXVlc3QobmV3
UmVxdWVzdCk7Cit9CisKK3ZvaWQgUGVuZGluZ0Rvd25sb2FkOjpjYW5BdXRoZW50aWNhdGVBZ2Fp
bnN0UHJvdGVjdGlvblNwYWNlQXN5bmMoY29uc3QgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlJikK
K3sKKyAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYXNrIHRoZSBVSSBwcm9jZXNzLgorICAgIGNv
bnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZSh0cnVlKTsKK30KKyAg
ICAKK3ZvaWQgUGVuZGluZ0Rvd25sb2FkOjpjb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQ
cm90ZWN0aW9uU3BhY2UoYm9vbCBjYW5BdXRoZW50aWNhdGUpCit7CisgICAgbV9uZXR3b3JrTG9h
ZC0+Y29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKGNhbkF1dGhl
bnRpY2F0ZSk7Cit9CisgICAgCit2b2lkIFBlbmRpbmdEb3dubG9hZDo6ZGlkQ29udmVydFRvRG93
bmxvYWQoKQoreworICAgIG1fbmV0d29ya0xvYWQgPSBudWxscHRyOworfQorICAgIAorSVBDOjpD
b25uZWN0aW9uKiBQZW5kaW5nRG93bmxvYWQ6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkKK3sK
KyAgICByZXR1cm4gTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCk7Cit9CisKK3VpbnQ2NF90IFBlbmRpbmdEb3dubG9hZDo6bWVzc2FnZVNlbmRlckRl
c3RpbmF0aW9uSUQoKQoreworICAgIHJldHVybiBtX25ldHdvcmtMb2FkLT5wZW5kaW5nRG93bmxv
YWRJRCgpLmRvd25sb2FkSUQoKTsKK30KKyAgICAKK30KKworI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvUGVuZGluZ0Rvd25sb2FkLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL1BlbmRpbmdE
b3dubG9hZC5oCShyZXZpc2lvbiAxOTQ3MTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvUGVuZGluZ0Rvd25sb2FkLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDM2
ICsyOCw0NSBAQAogCiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKIAotI2luY2x1ZGUgIk5ldHdv
cmtMb2FkLmgiCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgIk5ldHdvcmtM
b2FkQ2xpZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFJlc291cmNlUmVzcG9u
c2U7Cit9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBQZW5kaW5nRG93bmxvYWQgOiBw
dWJsaWMgTmV0d29ya0xvYWRDbGllbnQgeworY2xhc3MgRG93bmxvYWRJRDsKK2NsYXNzIE5ldHdv
cmtMb2FkOworY2xhc3MgTmV0d29ya0xvYWRQYXJhbWV0ZXJzOworICAgIAorY2xhc3MgUGVuZGlu
Z0Rvd25sb2FkIDogcHVibGljIE5ldHdvcmtMb2FkQ2xpZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdl
U2VuZGVyIHsKIHB1YmxpYzoKLSAgICBQZW5kaW5nRG93bmxvYWQoY29uc3QgTmV0d29ya0xvYWRQ
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBEb3dubG9hZElEIGRvd25sb2FkSUQpCi0gICAgICAgIDog
bV9uZXR3b3JrTG9hZChzdGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtMb2FkPigqdGhpcywgcGFyYW1l
dGVycykpCi0gICAgewotICAgICAgICBtX25ldHdvcmtMb2FkLT5zZXRQZW5kaW5nRG93bmxvYWRJ
RChkb3dubG9hZElEKTsKLSAgICB9CisgICAgUGVuZGluZ0Rvd25sb2FkKGNvbnN0IE5ldHdvcmtM
b2FkUGFyYW1ldGVycyYsIERvd25sb2FkSUQpOwogCiBwcml2YXRlOiAgICAKICAgICAvLyBOZXR3
b3JrTG9hZENsaWVudC4KICAgICB2aXJ0dWFsIHZvaWQgZGlkU2VuZERhdGEodW5zaWduZWQgbG9u
ZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkg
b3ZlcnJpZGUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90
ZWN0aW9uU3BhY2VBc3luYyhjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmKSBvdmVycmlk
ZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25T
cGFjZUFzeW5jKGNvbnN0IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgYm9vbCBpc1N5bmNocm9ub3VzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFs
c2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IHJlZGlyZWN0UmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJl
Y3RSZXNwb25zZSkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
YXNrIHRoZSBVSSBwcm9jZXNzIGRpcmVjdGx5IGlmIHdlIGFjdHVhbGx5IHdhbnQgdG8gY29udGlu
dWUgdGhpcyByZXF1ZXN0LgotICAgICAgICBtX25ldHdvcmtMb2FkLT5jb250aW51ZVdpbGxTZW5k
UmVxdWVzdChyZWRpcmVjdFJlcXVlc3QpOwotICAgIH07CisgICAgdmlydHVhbCB2b2lkIHdpbGxT
ZW5kUmVkaXJlY3RlZFJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgU2hvdWxkQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UgZGlkUmVjZWl2ZVJlc3BvbnNl
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlkZSB7IHJldHVybiBTaG91
bGRDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZTo6Tm87IH07CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVCdWZmZXIoUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiwgaW50IHJlcG9y
dGVkRW5jb2RlZERhdGFMZW5ndGgpIG92ZXJyaWRlIHsgfTsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
RmluaXNoTG9hZGluZyhkb3VibGUgZmluaXNoVGltZSkgb3ZlcnJpZGUgeyB9OwogICAgIHZpcnR1
YWwgdm9pZCBkaWRGYWlsTG9hZGluZyhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgb3Zl
cnJpZGUgeyB9OwotICAgIHZpcnR1YWwgdm9pZCBkaWRDb252ZXJ0VG9Eb3dubG9hZCgpIG92ZXJy
aWRlIHsgbV9uZXR3b3JrTG9hZCA9IG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29u
dmVydFRvRG93bmxvYWQoKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2aXJ0
dWFsIHZvaWQgd2lsbENhY2hlUmVzcG9uc2VBc3luYyhDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKSBv
dmVycmlkZSB7IH0KICNlbmRpZgorICAgIAorICAgIHZvaWQgY29udGludWVXaWxsU2VuZFJlcXVl
c3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgdm9pZCBjb250aW51ZUNh
bkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoYm9vbCBjYW5BdXRoZW50aWNhdGUp
OworCisgICAgLy8gTWVzc2FnZVNlbmRlci4KKyAgICB2aXJ0dWFsIElQQzo6Q29ubmVjdGlvbiog
bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHVpbnQ2NF90
IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGU7CisKIHByaXZhdGU6CiAgICAg
c3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtMb2FkPiBtX25ldHdvcmtMb2FkOwogfTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93bmxvYWQubWVz
c2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93
bmxvYWRzL1BlbmRpbmdEb3dubG9hZC5tZXNzYWdlcy5pbgkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93bmxvYWQubWVzc2Fn
ZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBQZW5kaW5nRG93bmxvYWQgeworICAg
IENvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0
KQorICAgIENvbnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShib29s
IGNhbkF1dGhlbnRpY2F0ZSkKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQkocmV2aXNpb24g
MTk0NzE4KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2lmIFVTRShO
RVRXT1JLX1NFU1NJT04pCiAKICNpbXBvcnQgIkRvd25sb2FkLmgiCisjaW1wb3J0ICJOZXR3b3Jr
TG9hZC5oIgogI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbXBvcnQgIlNlc3Npb25UcmFj
a2VyLmgiCiAjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJMU2Vzc2lvbi5oPgpJbmRleDogU291cmNl
L1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhl
bnRpY2F0aW9uTWFuYWdlci5jcHAJKHJldmlzaW9uIDE5NDcxNykKKysrIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRG93bmxvYWQuaCIKICNpbmNsdWRl
ICJEb3dubG9hZFByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJQZW5kaW5nRG93bmxvYWQuaCIKICNpbmNsdWRlICJXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldl
YlBhZ2UuaCIKQEAgLTE0MCw2ICsxNDEsMTggQEAgdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6
OmRpZFJlY2VpdmVBdQogICAgIAogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6RGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHBhZ2VJRCwg
ZnJhbWVJRCwgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIGNoYWxsZW5nZUlEKSk7CiB9CisKK3Zv
aWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoUGVuZGluZ0Rvd25sb2FkJiBwZW5kaW5nRG93bmxvYWQsIGNvbnN0IFdlYkNvcmU6OkF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgQ2hhbGxlbmdlQ29t
cGxldGlvbkhhbmRsZXIgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgdWludDY0X3QgZHVtbXlQ
YWdlSUQgPSAwOworICAgIHVpbnQ2NF90IGNoYWxsZW5nZUlEID0gYWRkQ2hhbGxlbmdlVG9DaGFs
bGVuZ2VNYXAoe2R1bW15UGFnZUlELCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgY29tcGxldGlv
bkhhbmRsZXJ9KTsKKyAgICAKKyAgICAvLyBDb2FsZXNjZSBjaGFsbGVuZ2VzIGluIHRoZSBzYW1l
IHByb3RlY3Rpb24gc3BhY2UgYW5kIGluIHRoZSBzYW1lIHBhZ2UuCisgICAgaWYgKHNob3VsZENv
YWxlc2NlQ2hhbGxlbmdlKGR1bW15UGFnZUlELCBjaGFsbGVuZ2VJRCwgYXV0aGVudGljYXRpb25D
aGFsbGVuZ2UpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgcGVuZGluZ0Rvd25sb2FkLnNl
bmQoTWVzc2FnZXM6OkRvd25sb2FkUHJveHk6OkRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgY2hhbGxlbmdlSUQpKTsKK30KICNlbmRpZgog
dm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKIHsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGlj
YXRpb25NYW5hZ2VyLmgJKHJldmlzaW9uIDE5NDcxNykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtNDQsNiArNDQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgQ2hpbGRQcm9jZXNz
OwogY2xhc3MgRG93bmxvYWQ7CitjbGFzcyBQZW5kaW5nRG93bmxvYWQ7CiBjbGFzcyBXZWJGcmFt
ZTsKIAogY2xhc3MgQXV0aGVudGljYXRpb25NYW5hZ2VyIDogcHVibGljIFdlYlByb2Nlc3NTdXBw
bGVtZW50LCBwdWJsaWMgTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMgSVBDOjpNZXNz
YWdlUmVjZWl2ZXIgewpAQCAtNTYsMTIgKzU3LDE1IEBAIHB1YmxpYzoKICNpZiBVU0UoTkVUV09S
S19TRVNTSU9OKQogICAgIHR5cGVkZWYgTmV0d29ya1Nlc3Npb25UYXNrQ2xpZW50OjpDaGFsbGVu
Z2VDb21wbGV0aW9uSGFuZGxlciBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlcjsKICAgICB2b2lk
IGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hh
bGxlbmdlQ29tcGxldGlvbkhhbmRsZXIpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKFBlbmRpbmdEb3dubG9hZCYsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXIpOwogI2VuZGlmCiAgICAg
Ly8gQ2FsbGVkIGZvciByZXNvdXJjZXMgaW4gdGhlIFdlYlByb2Nlc3MgKE5ldHdvcmtQcm9jZXNz
IGRpc2FibGVkKQogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdl
YkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKICAgICAv
LyBDYWxsZWQgZm9yIHJlc291cmNlcyBpbiB0aGUgTmV0d29ya1Byb2Nlc3MgKE5ldHdvcmtQcm9j
ZXNzIGVuYWJsZWQpCiAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
dWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYpOworI2lmICFVU0UoTkVUV09SS19TRVNTSU9OKQogICAgIHZvaWQg
ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKERvd25sb2FkJiwgY29uc3QgV2ViQ29y
ZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKKyNlbmRpZgogCiAgICAgdm9pZCB1c2VDcmVk
ZW50aWFsRm9yQ2hhbGxlbmdlKHVpbnQ2NF90IGNoYWxsZW5nZUlELCBjb25zdCBXZWJDb3JlOjpD
cmVkZW50aWFsJiwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJik7CiAgICAgdm9pZCBj
b250aW51ZVdpdGhvdXRDcmVkZW50aWFsRm9yQ2hhbGxlbmdlKHVpbnQ2NF90IGNoYWxsZW5nZUlE
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDE5NDcxOCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTA2OSw2ICsxMDY5LDcg
QEAKIAkJNUMyMENCOUQxQkIwRENGQTAwODk1QkIxIC8qIE5ldHdvcmtTZXNzaW9uQ29jb2EubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzIwQ0I5QjFC
QjBEQ0QyMDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb25Db2NvYS5tbSAqLzsgfTsKIAkJNUMyMENC
QTAxQkIxRUNEODAwODk1QkIxIC8qIE5ldHdvcmtTZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzIwQ0I5RTFCQjBERDE4MDA4OTVCQjEgLyog
TmV0d29ya1Nlc3Npb24uaCAqLzsgfTsKIAkJNUMyOThEQTAxQzNERjAyMTAwNDcwQUZFIC8qIFBl
bmRpbmdEb3dubG9hZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNUMyOThEOUUxQzNERUYyOTAwNDcwQUZFIC8qIFBlbmRpbmdEb3dubG9hZC5oICovOyB9
OworCQk1Qzg1Qzc4ODFDM0YyM0NFMDA2MUE0RkEgLyogUGVuZGluZ0Rvd25sb2FkLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDODVDNzg2MUMzRjIz
QzUwMDYxQTRGQSAvKiBQZW5kaW5nRG93bmxvYWQuY3BwICovOyB9OwogCQk1REE2RUQwQTE0OTA2
MDY5MDBCNDFEMTIgLyogRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1REE2RUQwODE0OTA2MDY5
MDBCNDFEMTIgLyogRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yLmggKi87IH07CiAJ
CTVEQTZFRDBCMTQ5MDYwNjkwMEI0MUQxMiAvKiBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRy
YWN0b3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
REE2RUQwOTE0OTA2MDY5MDBCNDFEMTIgLyogRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFj
dG9yLm1tICovOyB9OwogCQk2NTAxQkQxQTEyRjEyNDM0MDBFOUYyNDggLyogV0tCdW5kbGVJbnNw
ZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NjVCODZGMTcxMkYxMUQ3QjAwQjdERDhBIC8qIFdLQnVuZGxlSW5zcGVjdG9yLmNwcCAqLzsgfTsK
QEAgLTMyNTQsNiArMzI1NSw4IEBACiAJCTVDMjBDQjlCMUJCMERDRDIwMDg5NUJCMSAvKiBOZXR3
b3JrU2Vzc2lvbkNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gTmV0d29ya1Nlc3Npb25Db2NvYS5tbTsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtTZXNzaW9uQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMjBD
QjlFMUJCMEREMTgwMDg5NUJCMSAvKiBOZXR3b3JrU2Vzc2lvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrU2Vzc2lvbi5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMyOThEOUUx
QzNERUYyOTAwNDcwQUZFIC8qIFBlbmRpbmdEb3dubG9hZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBQZW5kaW5nRG93bmxvYWQuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL0Rv
d25sb2Fkcy9QZW5kaW5nRG93bmxvYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NUM4NUM3ODYxQzNGMjNDNTAwNjFBNEZBIC8qIFBlbmRpbmdEb3dubG9hZC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQZW5kaW5nRG93bmxvYWQuY3BwOyBwYXRoID0g
TmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL1BlbmRpbmdEb3dubG9hZC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTVDODVDNzg5MUMzRjI4NDAwMDYxQTRGQSAvKiBQZW5kaW5nRG93
bmxvYWQubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gUGVuZGluZ0Rvd25sb2Fk
Lm1lc3NhZ2VzLmluOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL1BlbmRpbmdEb3du
bG9hZC5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQ0NDJBNTUx
NkQ1ODU2NzAwQUMzMzMxIC8qIFBsdWdpblNlcnZpY2UuZW50aXRsZW1lbnRzICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54bWw7IHBhdGggPSBQ
bHVnaW5TZXJ2aWNlLmVudGl0bGVtZW50czsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NURBNkVEMDgxNDkwNjA2OTAwQjQxRDEyIC8qIER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJh
Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEeW5hbWljTGlua2VyRW52
aXJvbm1lbnRFeHRyYWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNURBNkVE
MDkxNDkwNjA2OTAwQjQxRDEyIC8qIER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IER5bmFtaWNMaW5rZXJF
bnZpcm9ubWVudEV4dHJhY3Rvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU4
MjgsNiArNTgzMSw4IEBACiAJCTVDMTQyNkYxMUMyM0Y4MTcwMEQ0MTE4MyAvKiBEb3dubG9hZHMg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTVDODVDNzg5
MUMzRjI4NDAwMDYxQTRGQSAvKiBQZW5kaW5nRG93bmxvYWQubWVzc2FnZXMuaW4gKi8sCisJCQkJ
NUM4NUM3ODYxQzNGMjNDNTAwNjFBNEZBIC8qIFBlbmRpbmdEb3dubG9hZC5jcHAgKi8sCiAJCQkJ
NUMyOThEOUUxQzNERUYyOTAwNDcwQUZFIC8qIFBlbmRpbmdEb3dubG9hZC5oICovLAogCQkJCTVD
MTQyNzBDMUMyM0Y4NzcwMEQ0MTE4MyAvKiBpb3MgKi8sCiAJCQkJNUMxNDI3MEIxQzIzRjg3MTAw
RDQxMTgzIC8qIG1hYyAqLywKQEAgLTk1NzIsNiArOTU3Nyw3IEBACiAJCQkJRTE1MjU1MUExNzAx
MTgxOTAwM0Q3QURCIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzgyODNBQzE2QjRCRjNGMDBBMjc4RkUgLyogTmV0d29ya1Nl
cnZpY2VFbnRyeVBvaW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMyMENCOUQxQkIwRENGQTAw
ODk1QkIxIC8qIE5ldHdvcmtTZXNzaW9uQ29jb2EubW0gaW4gU291cmNlcyAqLywKKwkJCQk1Qzg1
Qzc4ODFDM0YyM0NFMDA2MUE0RkEgLyogUGVuZGluZ0Rvd25sb2FkLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTMxQTJFQzU1MTQ4OTk4MkUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTMxMjYxRTE0OEZGODJDMDBCQTJBMzkg
LyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTMxQTJFQzUwMTQ4OTk4MDUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywK
</data>
<flag name="review"
          id="293570"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>