<?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>55584</bug_id>
          
          <creation_ts>2011-03-02 09:32:57 -0800</creation_ts>
          <short_desc>Web Inspector: break down InspectorFrontend into domain-specific classes</short_desc>
          <delta_ts>2011-03-02 21:44:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>55558</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>360848</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-03-02 09:32:57 -0800</bug_when>
    <thetext>Web Inspector: break down InspectorFrontend into domain-specific classes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360850</commentid>
    <comment_count>1</comment_count>
      <attachid>84427</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-03-02 09:37:44 -0800</bug_when>
    <thetext>Created attachment 84427
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360864</commentid>
    <comment_count>2</comment_count>
      <attachid>84431</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-03-02 09:54:39 -0800</bug_when>
    <thetext>Created attachment 84431
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361351</commentid>
    <comment_count>3</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-03-02 21:44:45 -0800</bug_when>
    <thetext>Committed r80204: &lt;http://trac.webkit.org/changeset/80204&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84427</attachid>
            <date>2011-03-02 09:37:44 -0800</date>
            <delta_ts>2011-03-02 09:54:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55584-20110302203741.patch</filename>
            <type>text/plain</type>
            <size>39914</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODAwOTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyZWU5NTY5NDk0YjU2YzE2
YjhiZjkzMjI2NWUwZThkYjZmZGM3M2I1Li5mZDljNTdlNjdkZjNhNTM5NGYwZTk1MzgxYmM5MzI5
NTAxODNiMDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMTEtMDMtMDIgIFl1cnkg
U2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYnJlYWsgZG93biBJbnNw
ZWN0b3JGcm9udGVuZCBpbnRvIGRvbWFpbi1zcGVjaWZpYyBjbGFzc2VzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTU4NAorCisgICAgICAgICogaW5z
cGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG06IEluc3BlY3RvckZyb250ZW5kIG5vdyBj
b250YWlucyBuZXN0ZWQgY2xhc3NlcyBmb3IKKyAgICAgICAgYWxsIGRvbWFpbnMgdGhhdCBoYXZl
IGV2ZW50IG5vdGlmaWNhdGlvbnMuCisgICAgICAgICogaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGVNZXNzYWdlOjphZGRUb0Zyb250ZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGVNZXNzYWdlOjp1cGRhdGVSZXBlYXRDb3VudEluQ29u
c29sZSk6CisgICAgICAgICogaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmg6CisgICAgICAgICog
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmpl
Y3RlZFNjcmlwdEhvc3Q6Omluc3BlY3RJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yLmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6Omluc3BlY3RlZFBhZ2VEZXN0cm95ZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6OnJlc3RvcmVJbnNwZWN0b3JTdGF0ZUZyb21D
b29raWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6OnNldEZyb250ZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpkaXNjb25uZWN0RnJvbnRlbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6OnBvcHVsYXRlU2NyaXB0T2JqZWN0cyk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6cHVzaERhdGFDb2xsZWN0ZWRPZmZs
aW5lKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpkaWRDb21taXRMb2FkKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50Ojpkb21Db250ZW50TG9hZGVkRXZlbnRG
aXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6bG9hZEV2ZW50RmlyZWQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6OnBvc3RXb3JrZXJOb3RpZmljYXRp
b25Ub0Zyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpldmFsdWF0
ZUZvclRlc3RJbkZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50Ojpz
aG93UGFuZWwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFn
ZW50OjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNv
bnNvbGVBZ2VudDo6c2V0RnJvbnRlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JD
b25zb2xlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpzaG93KToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmNsb3NlKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RE9NQWdlbnQ6OnNldEZyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTo6Ymlu
ZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OkZyb250ZW5kUHJvdmlkZXI6OmZyb250
ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OkZyb250ZW5k
UHJvdmlkZXI6OkZyb250ZW5kUHJvdmlkZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RGF0YWJhc2VBZ2VudDo6c2V0RnJvbnRlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JEYXRhYmFzZVJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRhdGFi
YXNlUmVzb3VyY2U6OmJpbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFz
ZVJlc291cmNlLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0RnJvbnRl
bmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JQcm9maWxlckFnZW50OjpzZXRGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JQcm9maWxlckFnZW50OjpjbGVhckZyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50OjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JUaW1lbGluZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OnNldEZyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRE9NRGlzcGF0Y2hlci5wcm90b3R5cGUuaW5zcGVjdEVsZW1l
bnRSZXF1ZXN0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTURpc3BhdGNoZXIucHJvdG90
eXBlLmFkZE5vZGVzVG9TZWFyY2hSZXN1bHQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmpzOgorCiAyMDExLTAzLTAxICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbSBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtCmluZGV4
IDM3ZDcyYTQ4YzFjMzc2MmNkN2I2YTY3M2Y1YzBiY2Y0MjRjM2I2MGMuLjcyZjQ5NTg5NDZlN2Y1
MzQwNjBmNGVhMjc5ZGIzN2QwZTBhMGE4NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtCkBAIC0yMjEsMTIgKzIyMSwxMyBAQCBt
eSBAYmFja2VuZEpTU3R1YnM7CiBteSAkZnJvbnRlbmRDbGFzc05hbWU7CiBteSAlZnJvbnRlbmRU
eXBlczsKIG15IEBmcm9udGVuZE1ldGhvZHM7CitteSBAZnJvbnRlbmRBZ2VudEZpZWxkczsKIG15
IEBmcm9udGVuZE1ldGhvZHNJbXBsOwogbXkgJWZyb250ZW5kTWV0aG9kU2lnbmF0dXJlczsKIG15
ICRmcm9udGVuZENvbnN0cnVjdG9yOwogbXkgQGZyb250ZW5kQ29uc3RhbnREZWNsYXJhdGlvbnM7
CiBteSBAZnJvbnRlbmRDb25zdGFudERlZmluaXRpb25zOwotbXkgJGZyb250ZW5kRm9vdGVyOwor
bXkgQGZyb250ZW5kRm9vdGVyOwogCiBteSBAZG9jdW1lbnRhdGlvblRvYzsKIG15IEBkb2N1bWVu
dGF0aW9uTGluZXM7CkBAIC0yNTcsMjAgKzI1OCwxMSBAQCBzdWIgR2VuZXJhdGVNb2R1bGUKIAog
ICAgICRuYW1lc3BhY2UgPSAkZGF0YU5vZGUtPm1vZHVsZTsKICAgICAkbmFtZXNwYWNlID1+IHMv
Y29yZS9XZWJDb3JlLzsKLX0KLQotIyBQYXJhbXM6ICdpZGxEb2N1bWVudCcgc3RydWN0Ci1zdWIg
R2VuZXJhdGVJbnRlcmZhY2UKLXsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAgbXkgJGlu
dGVyZmFjZSA9IHNoaWZ0OwotICAgIG15ICRkZWZpbmVzID0gc2hpZnQ7Ci0KLSAgICBteSAkY2xh
c3NOYW1lID0gJGludGVyZmFjZS0+bmFtZTsKIAogICAgICRmcm9udGVuZENsYXNzTmFtZSA9ICJJ
bnNwZWN0b3JGcm9udGVuZCI7Ci0gICAgJGZyb250ZW5kQ29uc3RydWN0b3IgPSAiICAgICR7ZnJv
bnRlbmRDbGFzc05hbWV9KEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQ2xpZW50KSA6IG1faW5z
cGVjdG9yQ2xpZW50KGluc3BlY3RvckNsaWVudCkgeyB9IjsKLSAgICAkZnJvbnRlbmRGb290ZXIg
PSAiICBwcml2YXRlOlxuICAgIEluc3BlY3RvckNsaWVudCogbV9pbnNwZWN0b3JDbGllbnQ7IjsK
KyAgICAkZnJvbnRlbmRDb25zdHJ1Y3RvciA9ICIgICAgJHtmcm9udGVuZENsYXNzTmFtZX0oSW5z
cGVjdG9yQ2xpZW50Kik7IjsKKyAgICBwdXNoKEBmcm9udGVuZEZvb3RlciwgInByaXZhdGU6Iik7
CisgICAgcHVzaChAZnJvbnRlbmRGb290ZXIsICIgICAgSW5zcGVjdG9yQ2xpZW50KiBtX2luc3Bl
Y3RvckNsaWVudDsiKTsKICAgICAkZnJvbnRlbmRUeXBlc3siU3RyaW5nIn0gPSAxOwogICAgICRm
cm9udGVuZFR5cGVzeyJJbnNwZWN0b3JDbGllbnQifSA9IDE7CiAgICAgJGZyb250ZW5kVHlwZXN7
IlBhc3NSZWZQdHIifSA9IDE7CkBAIC0yODgsMTcgKzI4MCw2OSBAQCBzdWIgR2VuZXJhdGVJbnRl
cmZhY2UKICAgICAkYmFja2VuZFR5cGVzeyJJbnNwZWN0b3JDbGllbnQifSA9IDE7CiAgICAgJGJh
Y2tlbmRUeXBlc3siUGFzc1JlZlB0ciJ9ID0gMTsKICAgICAkYmFja2VuZFR5cGVzeyJPYmplY3Qi
fSA9IDE7Cit9CiAKLSAgICBnZW5lcmF0ZUZ1bmN0aW9ucygkaW50ZXJmYWNlKTsKKyMgUGFyYW1z
OiAnaWRsRG9jdW1lbnQnIHN0cnVjdAorc3ViIEdlbmVyYXRlSW50ZXJmYWNlCit7CisgICAgbXkg
JG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKyAgICBteSAkZGVm
aW5lcyA9IHNoaWZ0OworCisgICAgbXkgJWFnZW50ID0gKAorICAgICAgICBtZXRob2REZWNsYXJh
dGlvbnMgPT4gW10sCisgICAgICAgIG1ldGhvZFNpZ25hdHVyZXMgPT4ge30KKyAgICApOworICAg
IGdlbmVyYXRlRnVuY3Rpb25zKCRpbnRlcmZhY2UsIFwlYWdlbnQpOworICAgIGlmIChAeyVhZ2Vu
dC0+e21ldGhvZERlY2xhcmF0aW9uc319KSB7CisgICAgICAgIGdlbmVyYXRlQWdlbnREZWNsYXJh
dGlvbigkaW50ZXJmYWNlLCBcJWFnZW50KTsKKyAgICB9Cit9CisKK3N1YiBnZW5lcmF0ZUFnZW50
RGVjbGFyYXRpb24KK3sKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisgICAgbXkgJGFnZW50
ID0gc2hpZnQ7CisgICAgbXkgJGFnZW50TmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CisgICAgcHVz
aChAZnJvbnRlbmRNZXRob2RzLCAiICAgIGNsYXNzICR7YWdlbnROYW1lfSB7Iik7CisgICAgcHVz
aChAZnJvbnRlbmRNZXRob2RzLCAiICAgIHB1YmxpYzoiKTsKKyAgICBwdXNoKEBmcm9udGVuZE1l
dGhvZHMsICIgICAgICAgICR7YWdlbnROYW1lfShJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckNs
aWVudCkgOiBtX2luc3BlY3RvckNsaWVudChpbnNwZWN0b3JDbGllbnQpIHsgfSIpOworICAgIHB1
c2goQGZyb250ZW5kTWV0aG9kcywgQHskYWdlbnQtPnttZXRob2REZWNsYXJhdGlvbnN9fSk7Cisg
ICAgcHVzaChAZnJvbnRlbmRNZXRob2RzLCAiICAgIHByaXZhdGU6Iik7CisgICAgcHVzaChAZnJv
bnRlbmRNZXRob2RzLCAiICAgICAgICBJbnNwZWN0b3JDbGllbnQqIG1faW5zcGVjdG9yQ2xpZW50
OyIpOworICAgIHB1c2goQGZyb250ZW5kTWV0aG9kcywgIiAgICB9OyIpOworICAgIHB1c2goQGZy
b250ZW5kTWV0aG9kcywgIiIpOworCisgICAgbXkgJGdldHRlck5hbWUgPSBsYygkYWdlbnROYW1l
KTsKKyAgICBwdXNoKEBmcm9udGVuZE1ldGhvZHMsICIgICAgJHthZ2VudE5hbWV9KiAke2dldHRl
ck5hbWV9KCkgeyByZXR1cm4gJm1fJHtnZXR0ZXJOYW1lfTsgfSIpOworICAgIHB1c2goQGZyb250
ZW5kTWV0aG9kcywgIiIpOworCisgICAgcHVzaChAZnJvbnRlbmRGb290ZXIsICIgICAgJHthZ2Vu
dE5hbWV9IG1fJHtnZXR0ZXJOYW1lfTsiKTsKKworICAgIHB1c2goQGZyb250ZW5kQWdlbnRGaWVs
ZHMsICJtXyR7Z2V0dGVyTmFtZX0iKTsKK30KKworc3ViIGdlbmVyYXRlRnJvbnRlbmRDb25zdHJ1
Y3RvckltcGwKK3sKKyAgICBteSBAZnJvbnRlbmRDb25zdHJ1Y3RvckltcGw7CisgICAgcHVzaChA
ZnJvbnRlbmRDb25zdHJ1Y3RvckltcGwsICIke2Zyb250ZW5kQ2xhc3NOYW1lfTo6JHtmcm9udGVu
ZENsYXNzTmFtZX0oSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDbGllbnQpIik7CisgICAgcHVz
aChAZnJvbnRlbmRDb25zdHJ1Y3RvckltcGwsICIgICAgOiBtX2luc3BlY3RvckNsaWVudChpbnNw
ZWN0b3JDbGllbnQpIik7CisgICAgZm9yZWFjaCBteSAkYWdlbnRGaWVsZCAoQGZyb250ZW5kQWdl
bnRGaWVsZHMpIHsKKyAgICAgICAgcHVzaChAZnJvbnRlbmRDb25zdHJ1Y3RvckltcGwsICIgICAg
LCAke2FnZW50RmllbGR9KGluc3BlY3RvckNsaWVudCkiKTsKKyAgICB9CisgICAgcHVzaChAZnJv
bnRlbmRDb25zdHJ1Y3RvckltcGwsICJ7Iik7CisgICAgcHVzaChAZnJvbnRlbmRDb25zdHJ1Y3Rv
ckltcGwsICJ9Iik7CisgICAgcmV0dXJuIEBmcm9udGVuZENvbnN0cnVjdG9ySW1wbDsKIH0KIAog
c3ViIGdlbmVyYXRlRnVuY3Rpb25zCiB7CiAgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworICAg
IG15ICRhZ2VudCA9IHNoaWZ0OwogCiAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVy
ZmFjZS0+ZnVuY3Rpb25zfSkgewogICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJldmVudCJ9KSB7Ci0gICAgICAgICAgICBnZW5lcmF0ZUZyb250
ZW5kRnVuY3Rpb24oJGludGVyZmFjZSwgJGZ1bmN0aW9uKTsKKyAgICAgICAgICAgIGdlbmVyYXRl
RnJvbnRlbmRGdW5jdGlvbigkaW50ZXJmYWNlLCAkZnVuY3Rpb24sICRhZ2VudCk7CiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICBnZW5lcmF0ZUJhY2tlbmRGdW5jdGlvbigkaW50ZXJmYWNl
LCAkZnVuY3Rpb24pOwogICAgICAgICB9CkBAIC0zMjQsNiArMzY4LDcgQEAgc3ViIGdlbmVyYXRl
RnJvbnRlbmRGdW5jdGlvbgogewogICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKICAgICBteSAk
ZnVuY3Rpb24gPSBzaGlmdDsKKyAgICBteSAkYWdlbnQgPSBzaGlmdDsKIAogICAgIG15ICRmdW5j
dGlvbk5hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKIApAQCAtMzMyLDEzICszNzcs
MTMgQEAgc3ViIGdlbmVyYXRlRnJvbnRlbmRGdW5jdGlvbgogICAgIG1hcCgkZnJvbnRlbmRUeXBl
c3skXy0+dHlwZX0gPSAxLCBAYXJnc0ZpbHRlcmVkKTsgIyByZWdpc3RlciByZXF1aXJlZCB0eXBl
cy4KICAgICBteSAkYXJndW1lbnRzID0gam9pbigiLCAiLCBtYXAodHlwZVRyYWl0cygkXy0+dHlw
ZSwgInBhcmFtIikgLiAiICIgLiAkXy0+bmFtZSwgQGFyZ3NGaWx0ZXJlZCkpOyAjIHByZXBhcmUg
YXJndW1lbnRzIGZvciBmdW5jdGlvbiBzaWduYXR1cmUuCiAKLSAgICBteSAkc2lnbmF0dXJlID0g
IiAgICB2b2lkICR7ZnVuY3Rpb25OYW1lfSgke2FyZ3VtZW50c30pOyI7Ci0gICAgISRmcm9udGVu
ZE1ldGhvZFNpZ25hdHVyZXN7JHtzaWduYXR1cmV9fSB8fCBkaWUgIkR1cGxpY2F0ZSBmcm9udGVu
ZCBmdW5jdGlvbiB3YXMgZGV0ZWN0ZWQgZm9yIHNpZ25hdHVyZSAnJHNpZ25hdHVyZScuIjsKLSAg
ICAkZnJvbnRlbmRNZXRob2RTaWduYXR1cmVzeyR7c2lnbmF0dXJlfX0gPSAxOwotICAgIHB1c2go
QGZyb250ZW5kTWV0aG9kcywgJHNpZ25hdHVyZSk7CisgICAgbXkgJHNpZ25hdHVyZSA9ICIgICAg
ICAgIHZvaWQgJHtmdW5jdGlvbk5hbWV9KCR7YXJndW1lbnRzfSk7IjsKKyAgICAhJGFnZW50LT57
bWV0aG9kU2lnbmF0dXJlc30tPnskc2lnbmF0dXJlfSB8fCBkaWUgIkR1cGxpY2F0ZSBmcm9udGVu
ZCBmdW5jdGlvbiB3YXMgZGV0ZWN0ZWQgZm9yIHNpZ25hdHVyZSAnJHNpZ25hdHVyZScuIjsKKyAg
ICAkYWdlbnQtPnttZXRob2RTaWduYXR1cmVzfS0+eyRzaWduYXR1cmV9ID0gMTsKKyAgICBwdXNo
KEB7JGFnZW50LT57bWV0aG9kRGVjbGFyYXRpb25zfX0sICRzaWduYXR1cmUpOwogCiAgICAgbXkg
QGZ1bmN0aW9uOwotICAgIHB1c2goQGZ1bmN0aW9uLCAidm9pZCAke2Zyb250ZW5kQ2xhc3NOYW1l
fTo6JHtmdW5jdGlvbk5hbWV9KCR7YXJndW1lbnRzfSkiKTsKKyAgICBwdXNoKEBmdW5jdGlvbiwg
InZvaWQgJHtmcm9udGVuZENsYXNzTmFtZX06OiR7ZG9tYWlufTo6JHtmdW5jdGlvbk5hbWV9KCR7
YXJndW1lbnRzfSkiKTsKICAgICBwdXNoKEBmdW5jdGlvbiwgInsiKTsKICAgICBwdXNoKEBmdW5j
dGlvbiwgIiAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiAke2Z1bmN0aW9uTmFtZX1NZXNzYWdl
ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsiKTsKICAgICBwdXNoKEBmdW5jdGlvbiwgIiAg
ICAke2Z1bmN0aW9uTmFtZX1NZXNzYWdlLT5zZXRTdHJpbmcoXCJ0eXBlXCIsIFwiZXZlbnRcIik7
Iik7CkBAIC0zNDksNyArMzk0LDYgQEAgc3ViIGdlbmVyYXRlRnJvbnRlbmRGdW5jdGlvbgogICAg
IHB1c2goQGZ1bmN0aW9uLCBAcHVzaEFyZ3VtZW50cyk7CiAgICAgcHVzaChAZnVuY3Rpb24sICIg
ICAgJHtmdW5jdGlvbk5hbWV9TWVzc2FnZS0+c2V0T2JqZWN0KFwiYm9keVwiLCBib2R5T2JqZWN0
KTsiKTsKICAgICBwdXNoKEBmdW5jdGlvbiwgIiAgICBtX2luc3BlY3RvckNsaWVudC0+c2VuZE1l
c3NhZ2VUb0Zyb250ZW5kKCR7ZnVuY3Rpb25OYW1lfU1lc3NhZ2UtPnRvSlNPTlN0cmluZygpKTsi
KTsKLQogICAgIHB1c2goQGZ1bmN0aW9uLCAifSIpOwogICAgIHB1c2goQGZ1bmN0aW9uLCAiIik7
CiAgICAgcHVzaChAZnJvbnRlbmRNZXRob2RzSW1wbCwgQGZ1bmN0aW9uKTsKQEAgLTk3NCw2ICsx
MDE4LDcgQEAgc3ViIGZpbmlzaAogCiAgICAgcHVzaChAYmFja2VuZE1ldGhvZHNJbXBsLCBnZW5l
cmF0ZUJhY2tlbmREaXNwYXRjaGVyKCkpOwogICAgIHB1c2goQGJhY2tlbmRNZXRob2RzSW1wbCwg
Z2VuZXJhdGVCYWNrZW5kUmVwb3J0UHJvdG9jb2xFcnJvcigpKTsKKyAgICB1bnNoaWZ0KEBmcm9u
dGVuZE1ldGhvZHNJbXBsLCBnZW5lcmF0ZUZyb250ZW5kQ29uc3RydWN0b3JJbXBsKCksICIiKTsK
IAogICAgIG9wZW4obXkgJFNPVVJDRSwgIj4kb3V0cHV0RGlyLyRmcm9udGVuZENsYXNzTmFtZS5j
cHAiKSB8fCBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkb3V0cHV0RGlyLyRmcm9udGVuZENsYXNz
TmFtZS5jcHAiOwogICAgIHByaW50ICRTT1VSQ0Ugam9pbigiXG4iLCBnZW5lcmF0ZVNvdXJjZSgk
ZnJvbnRlbmRDbGFzc05hbWUsIFwlZnJvbnRlbmRUeXBlcywgXEBmcm9udGVuZENvbnN0YW50RGVm
aW5pdGlvbnMsIFxAZnJvbnRlbmRNZXRob2RzSW1wbCkpOwpAQCAtOTgxLDcgKzEwMjYsNyBAQCBz
dWIgZmluaXNoCiAgICAgdW5kZWYoJFNPVVJDRSk7CiAKICAgICBvcGVuKG15ICRIRUFERVIsICI+
JG91dHB1dEhlYWRlcnNEaXIvJGZyb250ZW5kQ2xhc3NOYW1lLmgiKSB8fCBkaWUgIkNvdWxkbid0
IG9wZW4gZmlsZSAkb3V0cHV0SGVhZGVyc0Rpci8kZnJvbnRlbmRDbGFzc05hbWUuaCI7Ci0gICAg
cHJpbnQgJEhFQURFUiBnZW5lcmF0ZUhlYWRlcigkZnJvbnRlbmRDbGFzc05hbWUsIFwlZnJvbnRl
bmRUeXBlcywgJGZyb250ZW5kQ29uc3RydWN0b3IsIFxAZnJvbnRlbmRDb25zdGFudERlY2xhcmF0
aW9ucywgXEBmcm9udGVuZE1ldGhvZHMsICRmcm9udGVuZEZvb3Rlcik7CisgICAgcHJpbnQgJEhF
QURFUiBnZW5lcmF0ZUhlYWRlcigkZnJvbnRlbmRDbGFzc05hbWUsIFwlZnJvbnRlbmRUeXBlcywg
JGZyb250ZW5kQ29uc3RydWN0b3IsIFxAZnJvbnRlbmRDb25zdGFudERlY2xhcmF0aW9ucywgXEBm
cm9udGVuZE1ldGhvZHMsIGpvaW4oIlxuIiwgQGZyb250ZW5kRm9vdGVyKSk7CiAgICAgY2xvc2Uo
JEhFQURFUik7CiAgICAgdW5kZWYoJEhFQURFUik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvQ29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IDhkNTZhNWE0MWJlNDhmN2UxMGFmNjQ5YjM4YTVh
YzNmOGY4NzRhNTMuLjFiMDMxZWYxZWU2NGY5YWVlM2U3NTBlNjU2MDRmMTdjOWI5NjQyZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcApAQCAtODYsNyAr
ODYsNyBAQCBDb25zb2xlTWVzc2FnZTo6fkNvbnNvbGVNZXNzYWdlKCkKIHsKIH0KIAotdm9pZCBD
b25zb2xlTWVzc2FnZTo6YWRkVG9Gcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQs
IEluamVjdGVkU2NyaXB0SG9zdCogaW5qZWN0ZWRTY3JpcHRIb3N0KQordm9pZCBDb25zb2xlTWVz
c2FnZTo6YWRkVG9Gcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZDo6Q29uc29sZSogZnJvbnRlbmQs
IEluamVjdGVkU2NyaXB0SG9zdCogaW5qZWN0ZWRTY3JpcHRIb3N0KQogewogICAgIFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IGpzb25PYmogPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwogICAg
IGpzb25PYmotPnNldE51bWJlcigic291cmNlIiwgc3RhdGljX2Nhc3Q8aW50PihtX3NvdXJjZSkp
OwpAQCAtMTE4LDcgKzExOCw3IEBAIHZvaWQgQ29uc29sZU1lc3NhZ2U6OmFkZFRvRnJvbnRlbmQo
SW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBJbmplY3RlZFNjcmlwdEhvCiAgICAgZnJvbnRl
bmQtPmFkZENvbnNvbGVNZXNzYWdlKGpzb25PYmopOwogfQogCi12b2lkIENvbnNvbGVNZXNzYWdl
Ojp1cGRhdGVSZXBlYXRDb3VudEluQ29uc29sZShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQp
Cit2b2lkIENvbnNvbGVNZXNzYWdlOjp1cGRhdGVSZXBlYXRDb3VudEluQ29uc29sZShJbnNwZWN0
b3JGcm9udGVuZDo6Q29uc29sZSogZnJvbnRlbmQpCiB7CiAgICAgZnJvbnRlbmQtPnVwZGF0ZUNv
bnNvbGVNZXNzYWdlUmVwZWF0Q291bnQobV9yZXBlYXRDb3VudCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oCmluZGV4IDdjMzM0OGI5NjM4Yzg2MWY2MzZlOWUy
ZWI3ZWMyOTg0NmIxNGI4NmIuLjI2ZTU2NzUyNmRhMmI1OGYwYjIwZWU2NDY0MDFiNmJlYjE1NWE4
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oCkBAIC0zMiw2
ICszMiw3IEBACiAjZGVmaW5lIENvbnNvbGVNZXNzYWdlX2gKIAogI2luY2x1ZGUgIkNvbnNvbGUu
aCIKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUgIlNjcmlwdFN0YXRl
LmgiCiAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNTQsOCArNTUsOCBAQCBwdWJsaWM6
CiAgICAgQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VM
ZXZlbCwgY29uc3QgU3RyaW5nJiBtLCBjb25zdCBTdHJpbmcmIHJlc3BvbnNlVXJsLCB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIpOwogICAgIH5Db25zb2xlTWVzc2FnZSgpOwogCi0gICAgdm9pZCBh
ZGRUb0Zyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiwgSW5qZWN0ZWRTY3JpcHRIb3N0Kik7Ci0g
ICAgdm9pZCB1cGRhdGVSZXBlYXRDb3VudEluQ29uc29sZShJbnNwZWN0b3JGcm9udGVuZCogZnJv
bnRlbmQpOworICAgIHZvaWQgYWRkVG9Gcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZDo6Q29uc29s
ZSosIEluamVjdGVkU2NyaXB0SG9zdCopOworICAgIHZvaWQgdXBkYXRlUmVwZWF0Q291bnRJbkNv
bnNvbGUoSW5zcGVjdG9yRnJvbnRlbmQ6OkNvbnNvbGUqKTsKICAgICB2b2lkIGluY3JlbWVudENv
dW50KCkgeyArK21fcmVwZWF0Q291bnQ7IH0KICAgICBib29sIGlzRXF1YWwoQ29uc29sZU1lc3Nh
Z2UqIG1zZykgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bmplY3RlZFNjcmlwdEhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVk
U2NyaXB0SG9zdC5jcHAKaW5kZXggYzNhMGExZjZkYzIwN2Y3ZWFiMWQ3OWMwMzFhNjZmNWZlNWYy
OWZjZi4uNjJiYzZhZmMyNGQ5ZWViNDVjZDgwNTY1NmM4MGExMTUyYmYxZGYzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5jcHAKQEAgLTgzLDcg
KzgzLDcgQEAgSW5qZWN0ZWRTY3JpcHRIb3N0Ojp+SW5qZWN0ZWRTY3JpcHRIb3N0KCkKIHZvaWQg
SW5qZWN0ZWRTY3JpcHRIb3N0OjppbnNwZWN0SW1wbChQYXNzUmVmUHRyPEluc3BlY3RvclZhbHVl
PiBvYmplY3RJZCwgUGFzc1JlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gaGludHMpCiB7CiAgICAgaWYg
KEluc3BlY3RvckZyb250ZW5kKiBmZSA9IGZyb250ZW5kKCkpCi0gICAgICAgIGZlLT5pbnNwZWN0
KG9iamVjdElkLT5hc09iamVjdCgpLCBoaW50cy0+YXNPYmplY3QoKSk7CisgICAgICAgIGZlLT5p
bnNwZWN0b3IoKS0+aW5zcGVjdChvYmplY3RJZC0+YXNPYmplY3QoKSwgaGludHMtPmFzT2JqZWN0
KCkpOwogfQogCiB2b2lkIEluamVjdGVkU2NyaXB0SG9zdDo6Y2xlYXJDb25zb2xlTWVzc2FnZXMo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbAppbmRleCA5MmMxNTZmMmFmODY3
Y2JiYTQ4MzY5ZTk4YjZjZWMyODNiOTM1MjU5Li42MDEwM2ZkYzVjNDUyZTY3MzJkZDgxYjBiNDEy
ZDJlM2JjNDY2ZTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbApAQCAt
MzksNyArMzksNiBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIHZvaWQgb3BlbkluSW5zcGVjdGVk
V2luZG93KGluIFN0cmluZyB1cmwpOwogICAgICAgICB2b2lkIHNldFNlYXJjaGluZ0Zvck5vZGUo
aW4gYm9vbGVhbiBlbmFibGVkLCBvdXQgYm9vbGVhbiBuZXdTdGF0ZSk7CiAgICAgICAgIFtldmVu
dF0gdm9pZCBmcm9udGVuZFJldXNlZCgpOwotICAgICAgICBbZXZlbnRdIHZvaWQgYWRkTm9kZXNU
b1NlYXJjaFJlc3VsdChvdXQgQXJyYXkgbm9kZUlkcyk7CiAgICAgICAgIFtldmVudF0gdm9pZCBi
cmluZ1RvRnJvbnQoKTsKICAgICAgICAgW2V2ZW50XSB2b2lkIGRpc2Nvbm5lY3RGcm9tQmFja2Vu
ZCgpOwogICAgICAgICBbZXZlbnRdIHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChvdXQgU3RyaW5n
IHVybCk7CkBAIC0xNjQsNiArMTYzLDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICB2b2lkIGdl
dE5vZGVQcm90b3R5cGVzKGluIGxvbmcgbm9kZUlkLCBvdXQgVmFsdWUgcmVzdWx0KTsKICAgICAg
ICAgdm9pZCBwdXNoTm9kZVRvRnJvbnRlbmQoaW4gT2JqZWN0IG9iamVjdElkLCBvdXQgbG9uZyBu
b2RlSWQpOwogCisgICAgICAgIFtldmVudF0gdm9pZCBhZGROb2Rlc1RvU2VhcmNoUmVzdWx0KG91
dCBBcnJheSBub2RlSWRzKTsKICAgICAgICAgW2V2ZW50XSB2b2lkIHNldERvY3VtZW50KG91dCBW
YWx1ZSByb290KTsgLy8gRklYTUU6IHNob3VsZCBiZSByZXF1ZXN0ZWQgZnJvbSB0aGUgZnJvbnQt
ZW5kIGFzIGdldERvY3VtZW50LgogICAgICAgICBbZXZlbnRdIHZvaWQgYXR0cmlidXRlc1VwZGF0
ZWQob3V0IGxvbmcgaWQsIG91dCBBcnJheSBhdHRyaWJ1dGVzKTsKICAgICAgICAgW2V2ZW50XSB2
b2lkIGNoYXJhY3RlckRhdGFNb2RpZmllZChvdXQgbG9uZyBpZCwgb3V0IFN0cmluZyBuZXdWYWx1
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNwcAppbmRleCA3
Njk1ZGM0NTQzMTRiYjI5NzA3ZDEzM2ZmM2U5MDEwNzk3MDlmOTAxLi4xNDM0YmQzOTM0ZjI4NDlh
NGM2ZGI4ODVkMTcwZTBlYTNlNWY3MWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBZ2VudC5jcHAKQEAgLTE3MSw3ICsxNzEsNyBAQCBJbnNwZWN0b3JBZ2VudDo6fklu
c3BlY3RvckFnZW50KCkKIHZvaWQgSW5zcGVjdG9yQWdlbnQ6Omluc3BlY3RlZFBhZ2VEZXN0cm95
ZWQoKQogewogICAgIGlmIChtX2Zyb250ZW5kKQotICAgICAgICBtX2Zyb250ZW5kLT5kaXNjb25u
ZWN0RnJvbUJhY2tlbmQoKTsKKyAgICAgICAgbV9mcm9udGVuZC0+aW5zcGVjdG9yKCktPmRpc2Nv
bm5lY3RGcm9tQmFja2VuZCgpOwogCiAgICAgRXJyb3JTdHJpbmcgZXJyb3I7CiAgICAgaGlkZUhp
Z2hsaWdodCgmZXJyb3IpOwpAQCAtMjAxLDggKzIwMSw4IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6
OnJlc3RvcmVJbnNwZWN0b3JTdGF0ZUZyb21Db29raWUoY29uc3QgU3RyaW5nJiBpbnNwZWN0b3JT
dGF0CiB7CiAgICAgbV9zdGF0ZS0+bG9hZEZyb21Db29raWUoaW5zcGVjdG9yU3RhdGVDb29raWUp
OwogCi0gICAgbV9mcm9udGVuZC0+ZnJvbnRlbmRSZXVzZWQoKTsKLSAgICBtX2Zyb250ZW5kLT5p
bnNwZWN0ZWRVUkxDaGFuZ2VkKGluc3BlY3RlZFVSTCgpLnN0cmluZygpKTsKKyAgICBtX2Zyb250
ZW5kLT5pbnNwZWN0b3IoKS0+ZnJvbnRlbmRSZXVzZWQoKTsKKyAgICBtX2Zyb250ZW5kLT5pbnNw
ZWN0b3IoKS0+aW5zcGVjdGVkVVJMQ2hhbmdlZChpbnNwZWN0ZWRVUkwoKS5zdHJpbmcoKSk7CiAg
ICAgcHVzaERhdGFDb2xsZWN0ZWRPZmZsaW5lKCk7CiAKICAgICBtX3Jlc291cmNlQWdlbnQgPSBJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50OjpyZXN0b3JlKG1faW5zcGVjdGVkUGFnZSwgbV9zdGF0ZS5n
ZXQoKSwgbV9mcm9udGVuZCk7CkBAIC0zNzYsNyArMzc2LDcgQEAgdm9pZCBJbnNwZWN0b3JBZ2Vu
dDo6c2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqIGluc3BlY3RvckZyb250ZW5kKQogICAg
IG1fZG9tU3RvcmFnZUFnZW50LT5zZXRGcm9udGVuZChtX2Zyb250ZW5kKTsKICNlbmRpZgogICAg
IC8vIEluaXRpYWxpemUgV2ViIEluc3BlY3RvciB0aXRsZS4KLSAgICBtX2Zyb250ZW5kLT5pbnNw
ZWN0ZWRVUkxDaGFuZ2VkKGluc3BlY3RlZFVSTCgpLnN0cmluZygpKTsKKyAgICBtX2Zyb250ZW5k
LT5pbnNwZWN0b3IoKS0+aW5zcGVjdGVkVVJMQ2hhbmdlZChpbnNwZWN0ZWRVUkwoKS5zdHJpbmco
KSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OmRpc2Nvbm5lY3RGcm9udGVuZCgpCkBAIC00
MDAsNyArNDAwLDcgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZGlzY29ubmVjdEZyb250ZW5kKCkK
ICAgICBoaWRlSGlnaGxpZ2h0KCZlcnJvcik7CiAKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJV
R0dFUikKLSAgICBtX3Byb2ZpbGVyQWdlbnQtPnNldEZyb250ZW5kKDApOworICAgIG1fcHJvZmls
ZXJBZ2VudC0+Y2xlYXJGcm9udGVuZCgpOwogICAgIG1fcHJvZmlsZXJBZ2VudC0+c3RvcFVzZXJJ
bml0aWF0ZWRQcm9maWxpbmcodHJ1ZSk7CiAjZW5kaWYKIApAQCAtNDUxLDcgKzQ1MSw3IEBAIHZv
aWQgSW5zcGVjdG9yQWdlbnQ6OnBvcHVsYXRlU2NyaXB0T2JqZWN0cyhFcnJvclN0cmluZyopCiAK
ICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICBpZiAobV9wcm9maWxlckFnZW50
LT5lbmFibGVkKCkpCi0gICAgICAgIG1fZnJvbnRlbmQtPnByb2ZpbGVyV2FzRW5hYmxlZCgpOwor
ICAgICAgICBtX2Zyb250ZW5kLT5wcm9maWxlcigpLT5wcm9maWxlcldhc0VuYWJsZWQoKTsKICNl
bmRpZgogCiAgICAgcHVzaERhdGFDb2xsZWN0ZWRPZmZsaW5lKCk7CkBAIC00NjAsNyArNDYwLDcg
QEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6cG9wdWxhdGVTY3JpcHRPYmplY3RzKEVycm9yU3RyaW5n
KikKICAgICAgICAgZm9jdXNOb2RlKCk7CiAKICAgICBpZiAoIW1fc2hvd1BhbmVsQWZ0ZXJWaXNp
YmxlLmlzRW1wdHkoKSkgewotICAgICAgICBtX2Zyb250ZW5kLT5zaG93UGFuZWwobV9zaG93UGFu
ZWxBZnRlclZpc2libGUpOworICAgICAgICBtX2Zyb250ZW5kLT5pbnNwZWN0b3IoKS0+c2hvd1Bh
bmVsKG1fc2hvd1BhbmVsQWZ0ZXJWaXNpYmxlKTsKICAgICAgICAgbV9zaG93UGFuZWxBZnRlclZp
c2libGUgPSAiIjsKICAgICB9CiAKQEAgLTQ2OSw3ICs0NjksNyBAQCB2b2lkIEluc3BlY3RvckFn
ZW50Ojpwb3B1bGF0ZVNjcmlwdE9iamVjdHMoRXJyb3JTdHJpbmcqKQogCiAgICAgLy8gRGlzcGF0
Y2ggcGVuZGluZyBmcm9udGVuZCBjb21tYW5kcwogICAgIGZvciAoVmVjdG9yPHBhaXI8bG9uZywg
U3RyaW5nPiA+OjppdGVyYXRvciBpdCA9IG1fcGVuZGluZ0V2YWx1YXRlVGVzdENvbW1hbmRzLmJl
Z2luKCk7IGl0ICE9IG1fcGVuZGluZ0V2YWx1YXRlVGVzdENvbW1hbmRzLmVuZCgpOyArK2l0KQot
ICAgICAgICBtX2Zyb250ZW5kLT5ldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kKCgqaXQpLmZpcnN0
LCAoKml0KS5zZWNvbmQpOworICAgICAgICBtX2Zyb250ZW5kLT5pbnNwZWN0b3IoKS0+ZXZhbHVh
dGVGb3JUZXN0SW5Gcm9udGVuZCgoKml0KS5maXJzdCwgKCppdCkuc2Vjb25kKTsKICAgICBtX3Bl
bmRpbmdFdmFsdWF0ZVRlc3RDb21tYW5kcy5jbGVhcigpOwogfQogCkBAIC00ODEsNyArNDgxLDcg
QEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6cHVzaERhdGFDb2xsZWN0ZWRPZmZsaW5lKCkKICAgICBX
b3JrZXJzTWFwOjppdGVyYXRvciB3b3JrZXJzRW5kID0gbV93b3JrZXJzLmVuZCgpOwogICAgIGZv
ciAoV29ya2Vyc01hcDo6aXRlcmF0b3IgaXQgPSBtX3dvcmtlcnMuYmVnaW4oKTsgaXQgIT0gd29y
a2Vyc0VuZDsgKytpdCkgewogICAgICAgICBJbnNwZWN0b3JXb3JrZXJSZXNvdXJjZSogd29ya2Vy
ID0gaXQtPnNlY29uZC5nZXQoKTsKLSAgICAgICAgbV9mcm9udGVuZC0+ZGlkQ3JlYXRlV29ya2Vy
KHdvcmtlci0+aWQoKSwgd29ya2VyLT51cmwoKSwgd29ya2VyLT5pc1NoYXJlZFdvcmtlcigpKTsK
KyAgICAgICAgbV9mcm9udGVuZC0+ZGVidWdnZXIoKS0+ZGlkQ3JlYXRlV29ya2VyKHdvcmtlci0+
aWQoKSwgd29ya2VyLT51cmwoKSwgd29ya2VyLT5pc1NoYXJlZFdvcmtlcigpKTsKICAgICB9CiAj
ZW5kaWYKIH0KQEAgLTUxMiw3ICs1MTIsNyBAQCB2b2lkIEluc3BlY3RvckFnZW50OjpkaWRDb21t
aXRMb2FkKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAKICAgICBpZiAobG9hZGVyLT5mcmFtZSgp
ID09IG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCkpIHsKICAgICAgICAgaWYgKG1fZnJvbnRl
bmQpCi0gICAgICAgICAgICBtX2Zyb250ZW5kLT5pbnNwZWN0ZWRVUkxDaGFuZ2VkKGxvYWRlci0+
dXJsKCkuc3RyaW5nKCkpOworICAgICAgICAgICAgbV9mcm9udGVuZC0+aW5zcGVjdG9yKCktPmlu
c3BlY3RlZFVSTENoYW5nZWQobG9hZGVyLT51cmwoKS5zdHJpbmcoKSk7CiAKICAgICAgICAgbV9p
bmplY3RlZFNjcmlwdEhvc3QtPmRpc2NhcmRJbmplY3RlZFNjcmlwdHMoKTsKICAgICAgICAgbV9j
b25zb2xlQWdlbnQtPnJlc2V0KCk7CkBAIC01NDAsNyArNTQwLDcgQEAgdm9pZCBJbnNwZWN0b3JB
Z2VudDo6ZGlkQ29tbWl0TG9hZChEb2N1bWVudExvYWRlciogbG9hZGVyKQogI2VuZGlmCiAKICAg
ICAgICAgaWYgKG1fZnJvbnRlbmQpIHsKLSAgICAgICAgICAgIG1fZnJvbnRlbmQtPnJlc2V0KCk7
CisgICAgICAgICAgICBtX2Zyb250ZW5kLT5pbnNwZWN0b3IoKS0+cmVzZXQoKTsKICAgICAgICAg
ICAgIG1fZG9tQWdlbnQtPnJlc2V0KCk7CiAgICAgICAgICAgICBtX2Nzc0FnZW50LT5yZXNldCgp
OwogICAgICAgICB9CkBAIC01NjgsNyArNTY4LDcgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZG9t
Q29udGVudExvYWRlZEV2ZW50RmlyZWQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgY29uc3QgS1UK
ICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IG1faW5zdHJ1
bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQogICAgICAgICB0aW1lbGlu
ZUFnZW50LT5kaWRNYXJrRE9NQ29udGVudEV2ZW50KCk7CiAgICAgaWYgKG1fZnJvbnRlbmQpCi0g
ICAgICAgIG1fZnJvbnRlbmQtPmRvbUNvbnRlbnRFdmVudEZpcmVkKGN1cnJlbnRUaW1lKCkpOwor
ICAgICAgICBtX2Zyb250ZW5kLT5pbnNwZWN0b3IoKS0+ZG9tQ29udGVudEV2ZW50RmlyZWQoY3Vy
cmVudFRpbWUoKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OmxvYWRFdmVudEZpcmVkKERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIsIGNvbnN0IEtVUkwmIHVybCkKQEAgLTU4NSw3ICs1ODUsNyBA
QCB2b2lkIEluc3BlY3RvckFnZW50Ojpsb2FkRXZlbnRGaXJlZChEb2N1bWVudExvYWRlciogbG9h
ZGVyLCBjb25zdCBLVVJMJiB1cmwpCiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRp
bWVsaW5lQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdl
bnQoKSkKICAgICAgICAgdGltZWxpbmVBZ2VudC0+ZGlkTWFya0xvYWRFdmVudCgpOwogICAgIGlm
IChtX2Zyb250ZW5kKQotICAgICAgICBtX2Zyb250ZW5kLT5sb2FkRXZlbnRGaXJlZChjdXJyZW50
VGltZSgpKTsKKyAgICAgICAgbV9mcm9udGVuZC0+aW5zcGVjdG9yKCktPmxvYWRFdmVudEZpcmVk
KGN1cnJlbnRUaW1lKCkpOwogfQogCiBib29sIEluc3BlY3RvckFnZW50Ojppc01haW5SZXNvdXJj
ZUxvYWRlcihEb2N1bWVudExvYWRlciogbG9hZGVyLCBjb25zdCBLVVJMJiByZXF1ZXN0VXJsKQpA
QCAtNjM5LDEwICs2MzksMTAgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6cG9zdFdvcmtlck5vdGlm
aWNhdGlvblRvRnJvbnRlbmQoY29uc3QgSW5zcGVjdG9yV29ya2VyUmVzb3UKICNpZiBFTkFCTEUo
SkFWQVNDUklQVF9ERUJVR0dFUikKICAgICBzd2l0Y2ggKGFjdGlvbikgewogICAgIGNhc2UgSW5z
cGVjdG9yQWdlbnQ6OldvcmtlckNyZWF0ZWQ6Ci0gICAgICAgIG1fZnJvbnRlbmQtPmRpZENyZWF0
ZVdvcmtlcih3b3JrZXIuaWQoKSwgd29ya2VyLnVybCgpLCB3b3JrZXIuaXNTaGFyZWRXb3JrZXIo
KSk7CisgICAgICAgIG1fZnJvbnRlbmQtPmRlYnVnZ2VyKCktPmRpZENyZWF0ZVdvcmtlcih3b3Jr
ZXIuaWQoKSwgd29ya2VyLnVybCgpLCB3b3JrZXIuaXNTaGFyZWRXb3JrZXIoKSk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgSW5zcGVjdG9yQWdlbnQ6OldvcmtlckRlc3Ryb3llZDoKLSAgICAg
ICAgbV9mcm9udGVuZC0+ZGlkRGVzdHJveVdvcmtlcih3b3JrZXIuaWQoKSk7CisgICAgICAgIG1f
ZnJvbnRlbmQtPmRlYnVnZ2VyKCktPmRpZERlc3Ryb3lXb3JrZXIod29ya2VyLmlkKCkpOwogICAg
ICAgICBicmVhazsKICAgICB9CiAjZW5kaWYKQEAgLTgzOSw3ICs4MzksNyBAQCB2b2lkIEluc3Bl
Y3RvckFnZW50OjpzaG93U2NyaXB0c1BhbmVsKCkKIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OmV2YWx1
YXRlRm9yVGVzdEluRnJvbnRlbmQobG9uZyBjYWxsSWQsIGNvbnN0IFN0cmluZyYgc2NyaXB0KQog
ewogICAgIGlmIChtX2Zyb250ZW5kKQotICAgICAgICBtX2Zyb250ZW5kLT5ldmFsdWF0ZUZvclRl
c3RJbkZyb250ZW5kKGNhbGxJZCwgc2NyaXB0KTsKKyAgICAgICAgbV9mcm9udGVuZC0+aW5zcGVj
dG9yKCktPmV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoY2FsbElkLCBzY3JpcHQpOwogICAgIGVs
c2UKICAgICAgICAgbV9wZW5kaW5nRXZhbHVhdGVUZXN0Q29tbWFuZHMuYXBwZW5kKHBhaXI8bG9u
ZywgU3RyaW5nPihjYWxsSWQsIHNjcmlwdCkpOwogfQpAQCAtMTE2Niw3ICsxMTY2LDcgQEAgdm9p
ZCBJbnNwZWN0b3JBZ2VudDo6c2hvd1BhbmVsKGNvbnN0IFN0cmluZyYgcGFuZWwpCiAgICAgICAg
IG1fc2hvd1BhbmVsQWZ0ZXJWaXNpYmxlID0gcGFuZWw7CiAgICAgICAgIHJldHVybjsKICAgICB9
Ci0gICAgbV9mcm9udGVuZC0+c2hvd1BhbmVsKHBhbmVsKTsKKyAgICBtX2Zyb250ZW5kLT5pbnNw
ZWN0b3IoKS0+c2hvd1BhbmVsKHBhbmVsKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9u
Q2FjaGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGlj
YXRpb25DYWNoZUFnZW50LmNwcAppbmRleCBhMzljOTgwYTgzMDViYmFhODNiMmU5ZGQ0NDEzM2Mx
MDk1NzYxZmM2Li4zZDM4OTZlZjE0MjBjYWI1YzM2ZTljYjA0MTQ1YzU1MjY0YjE0ZjgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGlj
YXRpb25DYWNoZUFnZW50LmNwcApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6SW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50KERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciwgSW5zcGVjdG9yRnJvbnRl
bmQqIGZyb250ZW5kKQogICAgIDogbV9kb2N1bWVudExvYWRlcihkb2N1bWVudExvYWRlcikKLSAg
ICAsIG1fZnJvbnRlbmQoZnJvbnRlbmQpCisgICAgLCBtX2Zyb250ZW5kKGZyb250ZW5kLT5hcHBs
aWNhdGlvbmNhY2hlKCkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaAppbmRleCBkZDE1ZGYwMTBi
ZDg1ZGYwMzlhNmY5YjljOTI1Yzc2ZTk4NjZlNWFiLi4wMDQxODNmZjIyNDU3NTUxOGJiODg0Y2Ez
NjlkMTJkYjBmYTVjY2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oCkBAIC0yOCw2ICsyOCw3IEBACiAj
aWYgRU5BQkxFKElOU1BFQ1RPUikgJiYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykK
IAogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVIb3N0LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9y
RnJvbnRlbmQuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgogCkBAIC02NSw3ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgUGFzc1JlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNl
KGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm8mKTsKIAogICAgIERvY3Vt
ZW50TG9hZGVyKiBtX2RvY3VtZW50TG9hZGVyOwotICAgIEluc3BlY3RvckZyb250ZW5kKiBtX2Zy
b250ZW5kOworICAgIEluc3BlY3RvckZyb250ZW5kOjpBcHBsaWNhdGlvbkNhY2hlKiBtX2Zyb250
ZW5kOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAppbmRleCA3ZGFiZDRjMjVmMjJi
ZWY2OTQzNjg1MjY2NzE3M2QxM2RhNDM2Njc1Li40MzU1ZTU0YjkxNWE3YTRlMGE3ZTBlM2Q3MjI2
ODk2NjczYjYxMjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29uc29sZUFnZW50LmNwcApAQCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQgSW5zcGVjdG9yQ29u
c29sZUFnZW50OjpyZXNldCgpCiAKIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpzZXRGcm9u
dGVuZChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCiB7Ci0gICAgbV9mcm9udGVuZCA9IGZy
b250ZW5kOworICAgIG1fZnJvbnRlbmQgPSBmcm9udGVuZC0+Y29uc29sZSgpOwogfQogCiB2b2lk
IEluc3BlY3RvckNvbnNvbGVBZ2VudDo6Y2xlYXJGcm9udGVuZCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKaW5kZXggYTIxMzY4ZTMwMDcx
NTRlNTVhMmM5ZmFlMzU2MGRlOTk3MmQ3YWNjMi4uOGQzYTU3MGI5MDlhMTI2ZWQ3MDAzNDIzODky
YjU5ZjhiMmRlZmI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnNvbGVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb25zb2xlQWdlbnQuaApAQCAtMjYsNiArMjYsNyBAQAogI2RlZmluZSBJbnNwZWN0b3JDb25z
b2xlQWdlbnRfaAogCiAjaW5jbHVkZSAiQ29uc29sZS5oIgorI2luY2x1ZGUgIkluc3BlY3RvckZy
b250ZW5kLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtODgsNyArODksNyBAQCBwcml2
YXRlOgogICAgIEluc3BlY3RvclN0YXRlKiBtX2luc3BlY3RvclN0YXRlOwogICAgIEluamVjdGVk
U2NyaXB0SG9zdCogbV9pbmplY3RlZFNjcmlwdEhvc3Q7CiAgICAgSW5zcGVjdG9yRE9NQWdlbnQq
IG1faW5zcGVjdG9yRE9NQWdlbnQ7Ci0gICAgSW5zcGVjdG9yRnJvbnRlbmQqIG1fZnJvbnRlbmQ7
CisgICAgSW5zcGVjdG9yRnJvbnRlbmQ6OkNvbnNvbGUqIG1fZnJvbnRlbmQ7CiAgICAgQ29uc29s
ZU1lc3NhZ2UqIG1fcHJldmlvdXNNZXNzYWdlOwogICAgIFZlY3RvcjxPd25QdHI8Q29uc29sZU1l
c3NhZ2U+ID4gbV9jb25zb2xlTWVzc2FnZXM7CiAgICAgdW5zaWduZWQgbV9leHBpcmVkQ29uc29s
ZU1lc3NhZ2VDb3VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcAppbmRleCA3OTc0ZjJhN2UyY2QzMDVkM2Y2MzdmNDEzMTZmNjI2MzI2Njk3
ZTM4Li4yZjFiZWEyZTQ1YWZiNWUxYzMwMTAxYTY0ZDRhMTk5NmRmZjlmZGIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xMzEs
NyArMTMxLDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpzaG93KCkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgaWYgKG1faW5zcGVjdG9yRnJvbnRlbmQpCi0gICAgICAgIG1faW5zcGVjdG9y
RnJvbnRlbmQtPmJyaW5nVG9Gcm9udCgpOworICAgICAgICBtX2luc3BlY3RvckZyb250ZW5kLT5p
bnNwZWN0b3IoKS0+YnJpbmdUb0Zyb250KCk7CiAgICAgZWxzZSB7CiAgICAgICAgIG1fb3Blbmlu
Z0Zyb250ZW5kID0gdHJ1ZTsKICAgICAgICAgbV9pbnNwZWN0b3JDbGllbnQtPm9wZW5JbnNwZWN0
b3JGcm9udGVuZCh0aGlzKTsKQEAgLTE0Miw3ICsxNDIsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRy
b2xsZXI6OmNsb3NlKCkKIHsKICAgICBpZiAoIW1faW5zcGVjdG9yRnJvbnRlbmQpCiAgICAgICAg
IHJldHVybjsKLSAgICBtX2luc3BlY3RvckZyb250ZW5kLT5kaXNjb25uZWN0RnJvbUJhY2tlbmQo
KTsKKyAgICBtX2luc3BlY3RvckZyb250ZW5kLT5pbnNwZWN0b3IoKS0+ZGlzY29ubmVjdEZyb21C
YWNrZW5kKCk7CiAgICAgZGlzY29ubmVjdEZyb250ZW5kKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IDUxNzU1MWIzNDY3NWRi
NmU0MjE2MmNkNzcyZTgxYmQ5YzRjZDRmYjcuLjYxOGI2ZmY5OTk1MzdkODFmNzVjNTA4ODM3ZDU0
ZDA3YjE3Y2NjMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmNwcApAQCAtMjYxLDcgKzI2MSw3IEBAIEluc3BlY3RvckRPTUFnZW50Ojp+SW5zcGVj
dG9yRE9NQWdlbnQoKQogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0RnJvbnRlbmQoSW5zcGVj
dG9yRnJvbnRlbmQqIGZyb250ZW5kKQogewogICAgIEFTU0VSVCghbV9mcm9udGVuZCk7Ci0gICAg
bV9mcm9udGVuZCA9IGZyb250ZW5kOworICAgIG1fZnJvbnRlbmQgPSBmcm9udGVuZC0+ZG9tKCk7
CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JET01BZ2VudCh0aGlzKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAppbmRl
eCBkZjgzNTliNzNlZTMxYjY5OWJkN2NmZGQ0OTdmODUxNjA0N2E5ZjI1Li40MzVjMzE3MGZjMDZl
YWEwMDEyNjczNzIyMmE1MzU4MzUyMTNmNzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRE9NQWdlbnQuaApAQCAtMzIsNiArMzIsNyBAQAogCiAjaW5jbHVkZSAiSW5q
ZWN0ZWRTY3JpcHQuaCIKICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdEhvc3QuaCIKKyNpbmNsdWRl
ICJJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2lu
Y2x1ZGUgIlRpbWVyLmgiCiAKQEAgLTE4Niw3ICsxODcsNyBAQCBwcml2YXRlOgogCiAgICAgSW5z
dHJ1bWVudGluZ0FnZW50cyogbV9pbnN0cnVtZW50aW5nQWdlbnRzOwogICAgIEluamVjdGVkU2Ny
aXB0SG9zdCogbV9pbmplY3RlZFNjcmlwdEhvc3Q7Ci0gICAgSW5zcGVjdG9yRnJvbnRlbmQqIG1f
ZnJvbnRlbmQ7CisgICAgSW5zcGVjdG9yRnJvbnRlbmQ6OkRPTSogbV9mcm9udGVuZDsKICAgICBE
T01MaXN0ZW5lciogbV9kb21MaXN0ZW5lcjsKICAgICBOb2RlVG9JZE1hcCBtX2RvY3VtZW50Tm9k
ZVRvSWRNYXA7CiAgICAgLy8gT3ducyBub2RlIG1hcHBpbmdzIGZvciBkYW5nbGluZyBub2Rlcy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdl
UmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3Jh
Z2VSZXNvdXJjZS5jcHAKaW5kZXggYjYwN2EzZDMzYjk1ODlhMTU4N2EwMDRhNDY5NmQ0ODQ4Y2M1
YjdjNC4uNmZmNjQxODQzMzcyOGMyM2RhOTM0N2Y3NDY4MTYwOWZmNThmZGM1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNv
dXJjZS5jcHAKQEAgLTY3LDEzICs2NywxMyBAQCBib29sIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNv
dXJjZTo6aXNTYW1lSG9zdEFuZFR5cGUoRnJhbWUqIGZyYW1lLCBib29sIGlzTG9jYWxTdAogdm9p
ZCBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2U6OmJpbmQoSW5zcGVjdG9yRnJvbnRlbmQqIGZy
b250ZW5kKQogewogICAgIEFTU0VSVCghbV9mcm9udGVuZCk7Ci0gICAgbV9mcm9udGVuZCA9IGZy
b250ZW5kOworICAgIG1fZnJvbnRlbmQgPSBmcm9udGVuZC0+ZG9tc3RvcmFnZSgpOwogCiAgICAg
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4ganNvbk9iamVjdCA9IEluc3BlY3Rvck9iamVjdDo6Y3Jl
YXRlKCk7CiAgICAganNvbk9iamVjdC0+c2V0U3RyaW5nKCJob3N0IiwgbV9mcmFtZS0+ZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+aG9zdCgpKTsKICAgICBqc29uT2JqZWN0LT5zZXRCb29s
ZWFuKCJpc0xvY2FsU3RvcmFnZSIsIG1faXNMb2NhbFN0b3JhZ2UpOwogICAgIGpzb25PYmplY3Qt
PnNldE51bWJlcigiaWQiLCBtX2lkKTsKLSAgICBmcm9udGVuZC0+YWRkRE9NU3RvcmFnZShqc29u
T2JqZWN0KTsKKyAgICBtX2Zyb250ZW5kLT5hZGRET01TdG9yYWdlKGpzb25PYmplY3QpOwogfQog
CiB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTo6dW5iaW5kKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaApp
bmRleCAxZDhmOTIyNmE5NmVmNWY1ZjQ3MzdkZmNmNTc5YWE4YjE4MzExYmI3Li45YWQ1YjkxNTM1
ZmZiMDc5YjYwODJhNjZiZmViMWVhZWI2ZTRlNTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oCkBAIC0zNCw2ICsz
NCw3IEBACiAjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQogCiAjaW5jbHVkZSAiRXZlbnRMaXN0ZW5l
ci5oIgorI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAKICNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC03NSw3ICs3Niw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUmVmUHRyPFN0b3JhZ2U+IG1fZG9tU3RvcmFn
ZTsKICAgICAgICAgYm9vbCBtX2lzTG9jYWxTdG9yYWdlOwogICAgICAgICBSZWZQdHI8RnJhbWU+
IG1fZnJhbWU7Ci0gICAgICAgIEluc3BlY3RvckZyb250ZW5kKiBtX2Zyb250ZW5kOworICAgICAg
ICBJbnNwZWN0b3JGcm9udGVuZDo6RE9NU3RvcmFnZSogbV9mcm9udGVuZDsKICAgICAgICAgbG9u
ZyBtX2lkOwogICAgICAgICBib29sIG1fcmVwb3J0aW5nQ2hhbmdlc1RvRnJvbnRlbmQ7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNw
cAppbmRleCBmMTRiMDBkZTY4OWE4NTFiNWZhOTliZDU1YjBjYjJlYzE1MWQ3NjA0Li41NTc2YjMx
ZGU3MzNmNzQ5ZWVhZDM2NmQzMGU3Zjk0N2JhNjBjM2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwCkBAIC02MSwxOCArNjEs
MTggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+RnJvbnRlbmRQcm92aWRlcigpIHsgfQogCi0g
ICAgSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKCkgeyByZXR1cm4gbV9pbnNwZWN0b3JGcm9u
dGVuZDsgfQorICAgIEluc3BlY3RvckZyb250ZW5kOjpEYXRhYmFzZSogZnJvbnRlbmQoKSB7IHJl
dHVybiBtX2luc3BlY3RvckZyb250ZW5kOyB9CiAgICAgdm9pZCBjbGVhckZyb250ZW5kKCkgeyBt
X2luc3BlY3RvckZyb250ZW5kID0gMDsgfQogcHJpdmF0ZToKLSAgICBGcm9udGVuZFByb3ZpZGVy
KEluc3BlY3RvckZyb250ZW5kKiBpbnNwZWN0b3JGcm9udGVuZCkgOiBtX2luc3BlY3RvckZyb250
ZW5kKGluc3BlY3RvckZyb250ZW5kKSB7IH0KLSAgICBJbnNwZWN0b3JGcm9udGVuZCogbV9pbnNw
ZWN0b3JGcm9udGVuZDsKKyAgICBGcm9udGVuZFByb3ZpZGVyKEluc3BlY3RvckZyb250ZW5kKiBp
bnNwZWN0b3JGcm9udGVuZCkgOiBtX2luc3BlY3RvckZyb250ZW5kKGluc3BlY3RvckZyb250ZW5k
LT5kYXRhYmFzZSgpKSB7IH0KKyAgICBJbnNwZWN0b3JGcm9udGVuZDo6RGF0YWJhc2UqIG1faW5z
cGVjdG9yRnJvbnRlbmQ7CiB9OwogCiBuYW1lc3BhY2UgewogCiBsb25nIGxhc3RUcmFuc2FjdGlv
bklkID0gMDsKIAotdm9pZCByZXBvcnRUcmFuc2FjdGlvbkZhaWxlZChJbnNwZWN0b3JGcm9udGVu
ZCogZnJvbnRlbmQsIGxvbmcgdHJhbnNhY3Rpb25JZCwgU1FMRXJyb3IqIGVycm9yKQordm9pZCBy
ZXBvcnRUcmFuc2FjdGlvbkZhaWxlZChJbnNwZWN0b3JGcm9udGVuZDo6RGF0YWJhc2UqIGZyb250
ZW5kLCBsb25nIHRyYW5zYWN0aW9uSWQsIFNRTEVycm9yKiBlcnJvcikKIHsKICAgICBpZiAoIWZy
b250ZW5kKQogICAgICAgICByZXR1cm47CkBAIC0yNTAsNyArMjUwLDcgQEAgdm9pZCBJbnNwZWN0
b3JEYXRhYmFzZUFnZW50OjpzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQp
CiAgICAgbV9mcm9udGVuZFByb3ZpZGVyID0gRnJvbnRlbmRQcm92aWRlcjo6Y3JlYXRlKGZyb250
ZW5kKTsKICAgICBEYXRhYmFzZVJlc291cmNlc01hcDo6aXRlcmF0b3IgZGF0YWJhc2VzRW5kID0g
bV9yZXNvdXJjZXMuZW5kKCk7CiAgICAgZm9yIChEYXRhYmFzZVJlc291cmNlc01hcDo6aXRlcmF0
b3IgaXQgPSBtX3Jlc291cmNlcy5iZWdpbigpOyBpdCAhPSBkYXRhYmFzZXNFbmQ7ICsraXQpCi0g
ICAgICAgIGl0LT5zZWNvbmQtPmJpbmQoZnJvbnRlbmQpOworICAgICAgICBpdC0+c2Vjb25kLT5i
aW5kKG1fZnJvbnRlbmRQcm92aWRlci0+ZnJvbnRlbmQoKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9y
RGF0YWJhc2VBZ2VudDo6Y2xlYXJGcm9udGVuZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5jcHAKaW5kZXggODI5ZDBmYzcz
ODNiMzg5ZTIzOWFkZjQ0YWU5ODU0NDc0YmJmNTM1Zi4uNDEzNDJhNDc1YTQ2NzQyMjgyMzdhYmEz
ZTQyZDQxZWRlOWZiNWEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmNwcApAQCAtNTQsNyArNTQsNyBAQCBJbnNwZWN0
b3JEYXRhYmFzZVJlc291cmNlOjpJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlKFBhc3NSZWZQdHI8
RGF0YWJhc2U+IGRhdGFiYQogewogfQogCi12b2lkIEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2U6
OmJpbmQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQordm9pZCBJbnNwZWN0b3JEYXRhYmFz
ZVJlc291cmNlOjpiaW5kKEluc3BlY3RvckZyb250ZW5kOjpEYXRhYmFzZSogZnJvbnRlbmQpCiB7
CiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4ganNvbk9iamVjdCA9IEluc3BlY3Rvck9iamVj
dDo6Y3JlYXRlKCk7CiAgICAganNvbk9iamVjdC0+c2V0TnVtYmVyKCJpZCIsIG1faWQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlUmVzb3Vy
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZVJlc291cmNl
LmgKaW5kZXggZGJhMTE2YTAxYzhjMzZiZDVjZjhhN2Q2ZjJlYTU2MGM5Y2JhMjVmYi4uNTUwZmNk
OGRhNDZjOGNjYWI2M2E3Y2NmZjQwNzZjZjU2ODcyNmY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5oCkBAIC0zMiw2ICsz
Miw3IEBACiAjZGVmaW5lIEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2VfaAogCiAjaWYgRU5BQkxF
KERBVEFCQVNFKQorI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CkBAIC00NSw3ICs0Niw3IEBAIGNsYXNzIEluc3BlY3RvckRhdGFiYXNl
UmVzb3VyY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlPiB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJj
ZT4gY3JlYXRlKFBhc3NSZWZQdHI8RGF0YWJhc2U+IGRhdGFiYXNlLCBjb25zdCBTdHJpbmcmIGRv
bWFpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZlcnNpb24pOwogCi0gICAg
dm9pZCBiaW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCk7CisgICAgdm9pZCBiaW5kKElu
c3BlY3RvckZyb250ZW5kOjpEYXRhYmFzZSopOwogICAgIERhdGFiYXNlKiBkYXRhYmFzZSgpIHsg
cmV0dXJuIG1fZGF0YWJhc2UuZ2V0KCk7IH0KICAgICBsb25nIGlkKCkgY29uc3QgeyByZXR1cm4g
bV9pZDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudC5jcHAKaW5kZXggNGFjMGZhODA1N2Q0YTgxN2NjMjFhMTg3Y2Q0MTAzODAwOGQ2
MWFjOC4uODIzNmUwZGY4NTdmOTIxNzI0MDNkOGM2YzgwNmE3ZDg0MzQ2OGU3OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcApA
QCAtMTI3LDcgKzEyNyw3IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6cmVzdG9yZSgp
CiAKIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJv
bnRlbmQqIGZyb250ZW5kKQogewotICAgIG1fZnJvbnRlbmQgPSBmcm9udGVuZDsKKyAgICBtX2Zy
b250ZW5kID0gZnJvbnRlbmQtPmRlYnVnZ2VyKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudDo6ZW5hYmxlRGVidWdnZXJBZnRlclNob3duKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCmluZGV4IGVhYWNjNDMxYzQ0ZjYz
NDVhNDI4NWFmYTYzY2M4ZjYwMWIxMGQ1ZjQuLmIzNzNjYzVlZmE2ZWZhZjk5ZDgxZDA5NjBhNDdi
NzZjN2VjYzgzZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQuaApAQCAtMzIsNiArMzIsNyBAQAogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJ
UFRfREVCVUdHRVIpICYmIEVOQUJMRShJTlNQRUNUT1IpCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3Jp
cHQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUgIlNjcmlwdEJy
ZWFrcG9pbnQuaCIKICNpbmNsdWRlICJTY3JpcHREZWJ1Z0xpc3RlbmVyLmgiCiAjaW5jbHVkZSAi
U2NyaXB0U3RhdGUuaCIKQEAgLTE1NSw3ICsxNTYsNyBAQCBwcml2YXRlOgogICAgIEluc3BlY3Rv
clN0YXRlKiBtX2luc3BlY3RvclN0YXRlOwogICAgIFBhZ2UqIG1faW5zcGVjdGVkUGFnZTsKICAg
ICBJbmplY3RlZFNjcmlwdEhvc3QqIG1faW5qZWN0ZWRTY3JpcHRIb3N0OwotICAgIEluc3BlY3Rv
ckZyb250ZW5kKiBtX2Zyb250ZW5kOworICAgIEluc3BlY3RvckZyb250ZW5kOjpEZWJ1Z2dlciog
bV9mcm9udGVuZDsKICAgICBTY3JpcHRTdGF0ZSogbV9wYXVzZWRTY3JpcHRTdGF0ZTsKICAgICBT
Y3JpcHRzTWFwIG1fc2NyaXB0czsKICAgICBCcmVha3BvaW50SWRUb0RlYnVnU2VydmVyQnJlYWtw
b2ludElkc01hcCBtX2JyZWFrcG9pbnRJZFRvRGVidWdTZXJ2ZXJCcmVha3BvaW50SWRzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3Bw
CmluZGV4IDkzODUyYzdjMjNmZWMzYmM3MDBlODQ1OGE1YzgxZWFiNzQ5NWZkYzkuLjA1NTYzYmQ1
M2IwM2M5NjEyZGJmYjYwZjFkZDkzMzhlYjY2NWYzMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKQEAgLTE2NSwxMiArMTY1
LDEyIEBAIG5hbWVzcGFjZSB7CiAKIGNsYXNzIE91dHB1dFN0cmVhbSA6IHB1YmxpYyBTY3JpcHRI
ZWFwU25hcHNob3Q6Ok91dHB1dFN0cmVhbSB7CiBwdWJsaWM6Ci0gICAgT3V0cHV0U3RyZWFtKElu
c3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgdW5zaWduZWQgbG9uZyB1aWQpCisgICAgT3V0cHV0
U3RyZWFtKEluc3BlY3RvckZyb250ZW5kOjpQcm9maWxlciogZnJvbnRlbmQsIHVuc2lnbmVkIGxv
bmcgdWlkKQogICAgICAgICA6IG1fZnJvbnRlbmQoZnJvbnRlbmQpLCBtX3VpZCh1aWQpIHsgfQog
ICAgIHZvaWQgV3JpdGUoY29uc3QgU3RyaW5nJiBjaHVuaykgeyBtX2Zyb250ZW5kLT5hZGRIZWFw
U25hcHNob3RDaHVuayhtX3VpZCwgY2h1bmspOyB9CiAgICAgdm9pZCBDbG9zZSgpIHsgbV9mcm9u
dGVuZC0+ZmluaXNoSGVhcFNuYXBzaG90KG1fdWlkKTsgfQogcHJpdmF0ZToKLSAgICBJbnNwZWN0
b3JGcm9udGVuZCogbV9mcm9udGVuZDsKKyAgICBJbnNwZWN0b3JGcm9udGVuZDo6UHJvZmlsZXIq
IG1fZnJvbnRlbmQ7CiAgICAgdW5zaWduZWQgbG9uZyBtX3VpZDsKIH07CiAKQEAgLTI3Myw3ICsy
NzMsNyBAQCBuYW1lc3BhY2UgewogCiBjbGFzcyBIZWFwU25hcHNob3RQcm9ncmVzczogcHVibGlj
IFNjcmlwdFByb2ZpbGVyOjpIZWFwU25hcHNob3RQcm9ncmVzcyB7CiBwdWJsaWM6Ci0gICAgZXhw
bGljaXQgSGVhcFNuYXBzaG90UHJvZ3Jlc3MoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQor
ICAgIGV4cGxpY2l0IEhlYXBTbmFwc2hvdFByb2dyZXNzKEluc3BlY3RvckZyb250ZW5kOjpQcm9m
aWxlciogZnJvbnRlbmQpCiAgICAgICAgIDogbV9mcm9udGVuZChmcm9udGVuZCkgeyB9CiAgICAg
dm9pZCBTdGFydChpbnQgdG90YWxXb3JrKQogICAgIHsKQEAgLTI4Nyw3ICsyODcsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBEb25lKCkgeyB9CiAgICAgYm9vbCBpc0NhbmNlbGVkKCkgeyByZXR1cm4g
ZmFsc2U7IH0KIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9yRnJvbnRlbmQqIG1fZnJvbnRlbmQ7Cisg
ICAgSW5zcGVjdG9yRnJvbnRlbmQ6OlByb2ZpbGVyKiBtX2Zyb250ZW5kOwogICAgIGludCBtX3Rv
dGFsV29yazsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JQcm9maWxlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UHJvZmlsZXJBZ2VudC5oCmluZGV4IGQ0MzY0MThiNmQ4ZDk4MmM4MTcyNWE2OGJhZmU2M2RlOWRk
OGE0MDQuLmRkZTk2MjJjZWRiNGU0ZGNjNjcyNGQ2OTRiZTQ4MTI0YzQ2ZmUwNDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaApAQCAt
MzIsNiArMzIsNyBAQAogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJM
RShJTlNQRUNUT1IpCiAKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgpAQCAtNjksNyArNzAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVQ
cm9maWxlKEVycm9yU3RyaW5nKiBlcnJvciwgY29uc3QgU3RyaW5nJiB0eXBlLCB1bnNpZ25lZCB1
aWQpOwogICAgIHZvaWQgcmVzZXRTdGF0ZSgpOwogICAgIHZvaWQgcmVzZXRGcm9udGVuZFByb2Zp
bGVzKCk7Ci0gICAgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQp
IHsgbV9mcm9udGVuZCA9IGZyb250ZW5kOyB9CisgICAgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0
b3JGcm9udGVuZCogZnJvbnRlbmQpIHsgbV9mcm9udGVuZCA9IGZyb250ZW5kLT5wcm9maWxlcigp
OyB9CisgICAgdm9pZCBjbGVhckZyb250ZW5kKCkgeyBtX2Zyb250ZW5kID0gMDsgfQogICAgIHZv
aWQgc3RhcnRVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCk7CiAgICAgdm9pZCBzdG9wVXNlckluaXRp
YXRlZFByb2ZpbGluZyhib29sIGlnbm9yZVByb2ZpbGUgPSBmYWxzZSk7CiAgICAgdm9pZCB0YWtl
SGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiBlcnJvciwgYm9vbCBkZXRhaWxlZCk7CkBAIC04NCw3
ICs4Niw3IEBAIHByaXZhdGU6CiAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0
ZVNuYXBzaG90SGVhZGVyKGNvbnN0IFNjcmlwdEhlYXBTbmFwc2hvdCYgc25hcHNob3QpOwogCiAg
ICAgSW5zcGVjdG9yQWdlbnQqIG1faW5zcGVjdG9yQWdlbnQ7Ci0gICAgSW5zcGVjdG9yRnJvbnRl
bmQqIG1fZnJvbnRlbmQ7CisgICAgSW5zcGVjdG9yRnJvbnRlbmQ6OlByb2ZpbGVyKiBtX2Zyb250
ZW5kOwogICAgIGJvb2wgbV9lbmFibGVkOwogICAgIGJvb2wgbV9yZWNvcmRpbmdVc2VySW5pdGlh
dGVkUHJvZmlsZTsKICAgICBpbnQgbV9jdXJyZW50VXNlckluaXRpYXRlZFByb2ZpbGVOdW1iZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VB
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dC5jcHAKaW5kZXggOWMyNDM0MWM3NGViNjMzZTkzMzFkZWVhMzVkNWZkZjk2NjhlMGI3ZC4uOGIz
M2NiMGYyM2MxYmVmYmRmYzY5ZGQwM2E5MDFjZWQ0MzM0M2E0OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcApAQCAtNTE5LDcg
KzUxOSw3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6cmVzb3VyY2VDb250ZW50KEVy
cm9yU3RyaW5nKiwgdW5zaWduZWQgbG9uZyBmcmFtZUlkCiBJbnNwZWN0b3JSZXNvdXJjZUFnZW50
OjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50KFBhZ2UqIHBhZ2UsIEluc3BlY3RvclN0YXRlKiBzdGF0
ZSwgSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQogICAgIDogbV9wYWdlKHBhZ2UpCiAgICAg
LCBtX3N0YXRlKHN0YXRlKQotICAgICwgbV9mcm9udGVuZChmcm9udGVuZCkKKyAgICAsIG1fZnJv
bnRlbmQoZnJvbnRlbmQtPm5ldHdvcmsoKSkKIHsKICAgICBtX3N0YXRlLT5zZXRCb29sZWFuKFJl
c291cmNlQWdlbnRTdGF0ZTo6cmVzb3VyY2VBZ2VudEVuYWJsZWQsIHRydWUpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKaW5kZXgg
YTBhMmYxYjk1MTFlN2ExYTY4NTQ1YTg0MzcwZThiYzdlYTA2MmRhZS4uNmQwMjE0NDQwZTUwM2Q4
YmYwNTA4N2I0OWJkN2QxOWNlZDQ3YzljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVm
IEluc3BlY3RvclJlc291cmNlQWdlbnRfaAogI2RlZmluZSBJbnNwZWN0b3JSZXNvdXJjZUFnZW50
X2gKIAorI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1T
dHJpbmcuaCIKIAogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC0xMTMsNyArMTE0LDcg
QEAgcHJpdmF0ZToKIAogICAgIFBhZ2UqIG1fcGFnZTsKICAgICBJbnNwZWN0b3JTdGF0ZSogbV9z
dGF0ZTsKLSAgICBJbnNwZWN0b3JGcm9udGVuZCogbV9mcm9udGVuZDsKKyAgICBJbnNwZWN0b3JG
cm9udGVuZDo6TmV0d29yayogbV9mcm9udGVuZDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFn
ZW50LmNwcAppbmRleCBmZTg3ZTlhMWM4N2ZjNmI5MzM2N2M4MzM3OTRkYmMwZDMyNWMyYTE2Li40
ZjI4ZmNkODE0OTAwYmVkNjZjNDI2NzI4OWY4YzQ0NTdlMjI3YzQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC03Nyw3
ICs3Nyw3IEBAIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6On5JbnNwZWN0b3JUaW1lbGluZUFnZW50
KCkKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzZXRGcm9udGVuZChJbnNwZWN0b3JG
cm9udGVuZCogZnJvbnRlbmQpCiB7Ci0gICAgbV9mcm9udGVuZCA9IGZyb250ZW5kOworICAgIG1f
ZnJvbnRlbmQgPSBmcm9udGVuZC0+dGltZWxpbmUoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpjbGVhckZyb250ZW5kKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4IDhjNzNhZTgzM2U5NGNjOGU0Nzg0Y2Zi
ZjY3OTQ5YWY0MDIxNzIzM2YuLmRjMzBmMDQyMGNiNGYwMDBkM2Y4MzAzZDczOTI1NmI5ZDQ3Mzg3
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5l
QWdlbnQuaApAQCAtMzMsNiArMzMsNyBAQAogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAorI2lu
Y2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgi
CiAjaW5jbHVkZSAiU2NyaXB0R0NFdmVudC5oIgogI2luY2x1ZGUgIlNjcmlwdEdDRXZlbnRMaXN0
ZW5lci5oIgpAQCAtMTcyLDcgKzE3Myw3IEBAIHByaXZhdGU6CiAKICAgICBJbnN0cnVtZW50aW5n
QWdlbnRzKiBtX2luc3RydW1lbnRpbmdBZ2VudHM7CiAgICAgSW5zcGVjdG9yU3RhdGUqIG1fc3Rh
dGU7Ci0gICAgSW5zcGVjdG9yRnJvbnRlbmQqIG1fZnJvbnRlbmQ7CisgICAgSW5zcGVjdG9yRnJv
bnRlbmQ6OlRpbWVsaW5lKiBtX2Zyb250ZW5kOwogCiAgICAgVmVjdG9yPFRpbWVsaW5lUmVjb3Jk
RW50cnk+IG1fcmVjb3JkU3RhY2s7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RPTUFnZW50LmpzCmluZGV4IDQ2NzBkYTNjZDJmYzFiYWEyZjg3ZGZiOWI2MTI2ZmRj
MTUyZjU5NTcuLjA5ZDJmNWZiZjQ4MzE2OTc2ODA5OTU2ZmUwMmRlZjQ1MTYyMGRlMjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwpAQCAtNTAw
LDYgKzUwMCwxMSBAQCBXZWJJbnNwZWN0b3IuRE9NRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAg
ICAgaW5zcGVjdEVsZW1lbnRSZXF1ZXN0ZWQ6IGZ1bmN0aW9uKG5vZGVJZCkKICAgICB7CiAgICAg
ICAgIFdlYkluc3BlY3Rvci51cGRhdGVGb2N1c2VkTm9kZShub2RlSWQpOworICAgIH0sCisKKyAg
ICBhZGROb2Rlc1RvU2VhcmNoUmVzdWx0OiBmdW5jdGlvbihub2RlSWRzKQorICAgIHsKKyAgICAg
ICAgV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy5hZGROb2Rlc1RvU2VhcmNoUmVzdWx0KG5v
ZGVJZHMpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5qcwppbmRleCBkNTU0Zjc5NDkyMzUwMDZiYTc4NWI0NjFiZDQ5MWU2MjRl
MzcyZmFhLi5mMjMyM2E5OTQ2MGMzMjM5OWI1OTkyZGZlNGQ4OGJiOTM2ZWNjYTBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwpAQCAtMTU4
NSwxMSArMTU4NSw2IEBAIFdlYkluc3BlY3Rvci5mcm9udGVuZFJldXNlZCA9IGZ1bmN0aW9uKCkK
ICAgICB0aGlzLnJlc2V0KCk7CiB9CiAKLVdlYkluc3BlY3Rvci5hZGROb2Rlc1RvU2VhcmNoUmVz
dWx0ID0gZnVuY3Rpb24obm9kZUlkcykKLXsKLSAgICBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1l
bnRzLmFkZE5vZGVzVG9TZWFyY2hSZXN1bHQobm9kZUlkcyk7Ci19Ci0KIFdlYkluc3BlY3Rvci51
cGRhdGVTZWFyY2hNYXRjaGVzQ291bnQgPSBmdW5jdGlvbihtYXRjaGVzLCBwYW5lbCkKIHsKICAg
ICBpZiAoIXBhbmVsKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84431</attachid>
            <date>2011-03-02 09:54:39 -0800</date>
            <delta_ts>2011-03-02 10:07:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55584-20110302205436.patch</filename>
            <type>text/plain</type>
            <size>41227</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODAwOTgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkOGY2NmI2NTNmNWZjNDJjZGU3ZjAw
MWI5N2JjY2NhNTA4MDgxYmU1Li42OWNlYWI3MDM5YjBkZTkwNGY5MTIyMGYzYjVkYjNjZmI0OGU4
MTk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDMtMDIgIFl1cnkgU2VtaWtoYXRza3kg
IDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYnJlYWsgZG93biBJbnNwZWN0b3JGcm9udGVu
ZCBpbnRvIGRvbWFpbi1zcGVjaWZpYyBjbGFzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTU4NAorCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1l
bnRzL2VsZW1lbnRzLXBhbmVsLXNlYXJjaC5odG1sOgorCiAyMDExLTAzLTAxICBBbm5hIENhdmVu
ZGVyICA8YW5uYWNjQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIENh
cmxzb24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVu
dHMtcGFuZWwtc2VhcmNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxl
bWVudHMtcGFuZWwtc2VhcmNoLmh0bWwKaW5kZXggOGZmY2E4ZmZiMWI3OGU0MzMxZjBjNzA4ZTFm
MWU2YjY3MWZkYzgyYS4uNzhlYzczYTA2OTJmZGEyZDE4NDdjNDdjYTEyYzBkOWZmOGUzZWQ2YiAx
MDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVs
LXNlYXJjaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50
cy1wYW5lbC1zZWFyY2guaHRtbApAQCAtMTgsNyArMTgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICAgICAgc2VhcmNoUmVzdWx0cy5wdXNoKG1hcmt1cFZhbHVlKTsKICAgICB9CiAKLSAgICBXZWJJ
bnNwZWN0b3IuYWRkTm9kZXNUb1NlYXJjaFJlc3VsdCA9IGZ1bmN0aW9uKG5vZGVJZHMpCisgICAg
V2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy5hZGROb2Rlc1RvU2VhcmNoUmVzdWx0ID0gZnVu
Y3Rpb24obm9kZUlkcykKICAgICB7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZUlk
cy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIG5vZGUgPSBXZWJJbnNwZWN0b3IuZG9t
QWdlbnQubm9kZUZvcklkKG5vZGVJZHNbaV0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDJlZTk1Njk0OTRiNTZj
MTZiOGJmOTMyMjY1ZTBlOGRiNmZkYzczYjUuLmZkOWM1N2U2N2RmM2E1Mzk0ZjBlOTUzODFiYzkz
Mjk1MDE4M2IwMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MiBAQAorMjAxMS0wMy0wMiAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBicmVhayBkb3duIElu
c3BlY3RvckZyb250ZW5kIGludG8gZG9tYWluLXNwZWNpZmljIGNsYXNzZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1NTg0CisKKyAgICAgICAgKiBp
bnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbTogSW5zcGVjdG9yRnJvbnRlbmQgbm93
IGNvbnRhaW5zIG5lc3RlZCBjbGFzc2VzIGZvcgorICAgICAgICBhbGwgZG9tYWlucyB0aGF0IGhh
dmUgZXZlbnQgbm90aWZpY2F0aW9ucy4KKyAgICAgICAgKiBpbnNwZWN0b3IvQ29uc29sZU1lc3Nh
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZU1lc3NhZ2U6OmFkZFRvRnJvbnRlbmQp
OgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZU1lc3NhZ2U6OnVwZGF0ZVJlcGVhdENvdW50SW5D
b25zb2xlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
amVjdGVkU2NyaXB0SG9zdDo6aW5zcGVjdEltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3IuaWRsOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6aW5zcGVjdGVkUGFnZURlc3Ryb3llZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6cmVzdG9yZUluc3BlY3RvclN0YXRlRnJv
bUNvb2tpZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6c2V0RnJvbnRlbmQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6OmRpc2Nvbm5lY3RGcm9udGVuZCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6cG9wdWxhdGVTY3JpcHRPYmplY3Rz
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpwdXNoRGF0YUNvbGxlY3RlZE9m
ZmxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6OmRpZENvbW1pdExvYWQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6OmRvbUNvbnRlbnRMb2FkZWRFdmVu
dEZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50Ojpsb2FkRXZlbnRGaXJl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6cG9zdFdvcmtlck5vdGlmaWNh
dGlvblRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6OmV2YWx1
YXRlRm9yVGVzdEluRnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6
OnNob3dQYW5lbCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2Fj
aGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQ6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
Q29uc29sZUFnZW50OjpzZXRGcm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnNvbGVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OnNob3cpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6Y2xvc2UpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JET01BZ2VudDo6c2V0RnJvbnRlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3Vy
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlOjpi
aW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmg6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6RnJvbnRlbmRQcm92aWRlcjo6ZnJv
bnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6RnJvbnRl
bmRQcm92aWRlcjo6RnJvbnRlbmRQcm92aWRlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JEYXRhYmFzZUFnZW50OjpzZXRGcm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckRhdGFiYXNlUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGF0
YWJhc2VSZXNvdXJjZTo6YmluZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRhdGFi
YXNlUmVzb3VyY2UuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRGcm9u
dGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHA6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclByb2ZpbGVyQWdlbnQ6OnNldEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNsZWFyRnJvbnRlbmQpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clJlc291cmNlQWdlbnQ6Okluc3BlY3RvclJlc291cmNlQWdlbnQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6c2V0RnJvbnRlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1l
bGluZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01EaXNwYXRjaGVyLnByb3RvdHlwZS5pbnNwZWN0RWxl
bWVudFJlcXVlc3RlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NRGlzcGF0Y2hlci5wcm90
b3R5cGUuYWRkTm9kZXNUb1NlYXJjaFJlc3VsdCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9pbnNwZWN0b3IuanM6CisKIDIwMTEtMDMtMDEgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBt
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0KaW5k
ZXggMzdkNzJhNDhjMWMzNzYyY2Q3YjZhNjczZjVjMGJjZjQyNGMzYjYwYy4uNzJmNDk1ODk0NmU3
ZjUzNDA2MGY0ZWEyNzlkYjM3ZDBlMGEwYTg2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0KKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0KQEAgLTIyMSwxMiArMjIxLDEzIEBA
IG15IEBiYWNrZW5kSlNTdHViczsKIG15ICRmcm9udGVuZENsYXNzTmFtZTsKIG15ICVmcm9udGVu
ZFR5cGVzOwogbXkgQGZyb250ZW5kTWV0aG9kczsKK215IEBmcm9udGVuZEFnZW50RmllbGRzOwog
bXkgQGZyb250ZW5kTWV0aG9kc0ltcGw7CiBteSAlZnJvbnRlbmRNZXRob2RTaWduYXR1cmVzOwog
bXkgJGZyb250ZW5kQ29uc3RydWN0b3I7CiBteSBAZnJvbnRlbmRDb25zdGFudERlY2xhcmF0aW9u
czsKIG15IEBmcm9udGVuZENvbnN0YW50RGVmaW5pdGlvbnM7Ci1teSAkZnJvbnRlbmRGb290ZXI7
CitteSBAZnJvbnRlbmRGb290ZXI7CiAKIG15IEBkb2N1bWVudGF0aW9uVG9jOwogbXkgQGRvY3Vt
ZW50YXRpb25MaW5lczsKQEAgLTI1NywyMCArMjU4LDExIEBAIHN1YiBHZW5lcmF0ZU1vZHVsZQog
CiAgICAgJG5hbWVzcGFjZSA9ICRkYXRhTm9kZS0+bW9kdWxlOwogICAgICRuYW1lc3BhY2UgPX4g
cy9jb3JlL1dlYkNvcmUvOwotfQotCi0jIFBhcmFtczogJ2lkbERvY3VtZW50JyBzdHJ1Y3QKLXN1
YiBHZW5lcmF0ZUludGVyZmFjZQotewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAgICBteSAk
aW50ZXJmYWNlID0gc2hpZnQ7Ci0gICAgbXkgJGRlZmluZXMgPSBzaGlmdDsKLQotICAgIG15ICRj
bGFzc05hbWUgPSAkaW50ZXJmYWNlLT5uYW1lOwogCiAgICAgJGZyb250ZW5kQ2xhc3NOYW1lID0g
Ikluc3BlY3RvckZyb250ZW5kIjsKLSAgICAkZnJvbnRlbmRDb25zdHJ1Y3RvciA9ICIgICAgJHtm
cm9udGVuZENsYXNzTmFtZX0oSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDbGllbnQpIDogbV9p
bnNwZWN0b3JDbGllbnQoaW5zcGVjdG9yQ2xpZW50KSB7IH0iOwotICAgICRmcm9udGVuZEZvb3Rl
ciA9ICIgIHByaXZhdGU6XG4gICAgSW5zcGVjdG9yQ2xpZW50KiBtX2luc3BlY3RvckNsaWVudDsi
OworICAgICRmcm9udGVuZENvbnN0cnVjdG9yID0gIiAgICAke2Zyb250ZW5kQ2xhc3NOYW1lfShJ
bnNwZWN0b3JDbGllbnQqKTsiOworICAgIHB1c2goQGZyb250ZW5kRm9vdGVyLCAicHJpdmF0ZToi
KTsKKyAgICBwdXNoKEBmcm9udGVuZEZvb3RlciwgIiAgICBJbnNwZWN0b3JDbGllbnQqIG1faW5z
cGVjdG9yQ2xpZW50OyIpOwogICAgICRmcm9udGVuZFR5cGVzeyJTdHJpbmcifSA9IDE7CiAgICAg
JGZyb250ZW5kVHlwZXN7Ikluc3BlY3RvckNsaWVudCJ9ID0gMTsKICAgICAkZnJvbnRlbmRUeXBl
c3siUGFzc1JlZlB0ciJ9ID0gMTsKQEAgLTI4OCwxNyArMjgwLDY5IEBAIHN1YiBHZW5lcmF0ZUlu
dGVyZmFjZQogICAgICRiYWNrZW5kVHlwZXN7Ikluc3BlY3RvckNsaWVudCJ9ID0gMTsKICAgICAk
YmFja2VuZFR5cGVzeyJQYXNzUmVmUHRyIn0gPSAxOwogICAgICRiYWNrZW5kVHlwZXN7Ik9iamVj
dCJ9ID0gMTsKK30KIAotICAgIGdlbmVyYXRlRnVuY3Rpb25zKCRpbnRlcmZhY2UpOworIyBQYXJh
bXM6ICdpZGxEb2N1bWVudCcgc3RydWN0CitzdWIgR2VuZXJhdGVJbnRlcmZhY2UKK3sKKyAgICBt
eSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworICAgIG15ICRk
ZWZpbmVzID0gc2hpZnQ7CisKKyAgICBteSAlYWdlbnQgPSAoCisgICAgICAgIG1ldGhvZERlY2xh
cmF0aW9ucyA9PiBbXSwKKyAgICAgICAgbWV0aG9kU2lnbmF0dXJlcyA9PiB7fQorICAgICk7Cisg
ICAgZ2VuZXJhdGVGdW5jdGlvbnMoJGludGVyZmFjZSwgXCVhZ2VudCk7CisgICAgaWYgKEB7JWFn
ZW50LT57bWV0aG9kRGVjbGFyYXRpb25zfX0pIHsKKyAgICAgICAgZ2VuZXJhdGVBZ2VudERlY2xh
cmF0aW9uKCRpbnRlcmZhY2UsIFwlYWdlbnQpOworICAgIH0KK30KKworc3ViIGdlbmVyYXRlQWdl
bnREZWNsYXJhdGlvbgoreworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKyAgICBteSAkYWdl
bnQgPSBzaGlmdDsKKyAgICBteSAkYWdlbnROYW1lID0gJGludGVyZmFjZS0+bmFtZTsKKyAgICBw
dXNoKEBmcm9udGVuZE1ldGhvZHMsICIgICAgY2xhc3MgJHthZ2VudE5hbWV9IHsiKTsKKyAgICBw
dXNoKEBmcm9udGVuZE1ldGhvZHMsICIgICAgcHVibGljOiIpOworICAgIHB1c2goQGZyb250ZW5k
TWV0aG9kcywgIiAgICAgICAgJHthZ2VudE5hbWV9KEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9y
Q2xpZW50KSA6IG1faW5zcGVjdG9yQ2xpZW50KGluc3BlY3RvckNsaWVudCkgeyB9Iik7CisgICAg
cHVzaChAZnJvbnRlbmRNZXRob2RzLCBAeyRhZ2VudC0+e21ldGhvZERlY2xhcmF0aW9uc319KTsK
KyAgICBwdXNoKEBmcm9udGVuZE1ldGhvZHMsICIgICAgcHJpdmF0ZToiKTsKKyAgICBwdXNoKEBm
cm9udGVuZE1ldGhvZHMsICIgICAgICAgIEluc3BlY3RvckNsaWVudCogbV9pbnNwZWN0b3JDbGll
bnQ7Iik7CisgICAgcHVzaChAZnJvbnRlbmRNZXRob2RzLCAiICAgIH07Iik7CisgICAgcHVzaChA
ZnJvbnRlbmRNZXRob2RzLCAiIik7CisKKyAgICBteSAkZ2V0dGVyTmFtZSA9IGxjKCRhZ2VudE5h
bWUpOworICAgIHB1c2goQGZyb250ZW5kTWV0aG9kcywgIiAgICAke2FnZW50TmFtZX0qICR7Z2V0
dGVyTmFtZX0oKSB7IHJldHVybiAmbV8ke2dldHRlck5hbWV9OyB9Iik7CisgICAgcHVzaChAZnJv
bnRlbmRNZXRob2RzLCAiIik7CisKKyAgICBwdXNoKEBmcm9udGVuZEZvb3RlciwgIiAgICAke2Fn
ZW50TmFtZX0gbV8ke2dldHRlck5hbWV9OyIpOworCisgICAgcHVzaChAZnJvbnRlbmRBZ2VudEZp
ZWxkcywgIm1fJHtnZXR0ZXJOYW1lfSIpOworfQorCitzdWIgZ2VuZXJhdGVGcm9udGVuZENvbnN0
cnVjdG9ySW1wbAoreworICAgIG15IEBmcm9udGVuZENvbnN0cnVjdG9ySW1wbDsKKyAgICBwdXNo
KEBmcm9udGVuZENvbnN0cnVjdG9ySW1wbCwgIiR7ZnJvbnRlbmRDbGFzc05hbWV9Ojoke2Zyb250
ZW5kQ2xhc3NOYW1lfShJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckNsaWVudCkiKTsKKyAgICBw
dXNoKEBmcm9udGVuZENvbnN0cnVjdG9ySW1wbCwgIiAgICA6IG1faW5zcGVjdG9yQ2xpZW50KGlu
c3BlY3RvckNsaWVudCkiKTsKKyAgICBmb3JlYWNoIG15ICRhZ2VudEZpZWxkIChAZnJvbnRlbmRB
Z2VudEZpZWxkcykgeworICAgICAgICBwdXNoKEBmcm9udGVuZENvbnN0cnVjdG9ySW1wbCwgIiAg
ICAsICR7YWdlbnRGaWVsZH0oaW5zcGVjdG9yQ2xpZW50KSIpOworICAgIH0KKyAgICBwdXNoKEBm
cm9udGVuZENvbnN0cnVjdG9ySW1wbCwgInsiKTsKKyAgICBwdXNoKEBmcm9udGVuZENvbnN0cnVj
dG9ySW1wbCwgIn0iKTsKKyAgICByZXR1cm4gQGZyb250ZW5kQ29uc3RydWN0b3JJbXBsOwogfQog
CiBzdWIgZ2VuZXJhdGVGdW5jdGlvbnMKIHsKICAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7Cisg
ICAgbXkgJGFnZW50ID0gc2hpZnQ7CiAKICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskaW50
ZXJmYWNlLT5mdW5jdGlvbnN9KSB7CiAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57ImV2ZW50In0pIHsKLSAgICAgICAgICAgIGdlbmVyYXRlRnJv
bnRlbmRGdW5jdGlvbigkaW50ZXJmYWNlLCAkZnVuY3Rpb24pOworICAgICAgICAgICAgZ2VuZXJh
dGVGcm9udGVuZEZ1bmN0aW9uKCRpbnRlcmZhY2UsICRmdW5jdGlvbiwgJGFnZW50KTsKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIGdlbmVyYXRlQmFja2VuZEZ1bmN0aW9uKCRpbnRlcmZh
Y2UsICRmdW5jdGlvbik7CiAgICAgICAgIH0KQEAgLTMyNCw2ICszNjgsNyBAQCBzdWIgZ2VuZXJh
dGVGcm9udGVuZEZ1bmN0aW9uCiB7CiAgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OwogICAgIG15
ICRmdW5jdGlvbiA9IHNoaWZ0OworICAgIG15ICRhZ2VudCA9IHNoaWZ0OwogCiAgICAgbXkgJGZ1
bmN0aW9uTmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lOwogCkBAIC0zMzIsMTMgKzM3
NywxMyBAQCBzdWIgZ2VuZXJhdGVGcm9udGVuZEZ1bmN0aW9uCiAgICAgbWFwKCRmcm9udGVuZFR5
cGVzeyRfLT50eXBlfSA9IDEsIEBhcmdzRmlsdGVyZWQpOyAjIHJlZ2lzdGVyIHJlcXVpcmVkIHR5
cGVzLgogICAgIG15ICRhcmd1bWVudHMgPSBqb2luKCIsICIsIG1hcCh0eXBlVHJhaXRzKCRfLT50
eXBlLCAicGFyYW0iKSAuICIgIiAuICRfLT5uYW1lLCBAYXJnc0ZpbHRlcmVkKSk7ICMgcHJlcGFy
ZSBhcmd1bWVudHMgZm9yIGZ1bmN0aW9uIHNpZ25hdHVyZS4KIAotICAgIG15ICRzaWduYXR1cmUg
PSAiICAgIHZvaWQgJHtmdW5jdGlvbk5hbWV9KCR7YXJndW1lbnRzfSk7IjsKLSAgICAhJGZyb250
ZW5kTWV0aG9kU2lnbmF0dXJlc3ske3NpZ25hdHVyZX19IHx8IGRpZSAiRHVwbGljYXRlIGZyb250
ZW5kIGZ1bmN0aW9uIHdhcyBkZXRlY3RlZCBmb3Igc2lnbmF0dXJlICckc2lnbmF0dXJlJy4iOwot
ICAgICRmcm9udGVuZE1ldGhvZFNpZ25hdHVyZXN7JHtzaWduYXR1cmV9fSA9IDE7Ci0gICAgcHVz
aChAZnJvbnRlbmRNZXRob2RzLCAkc2lnbmF0dXJlKTsKKyAgICBteSAkc2lnbmF0dXJlID0gIiAg
ICAgICAgdm9pZCAke2Z1bmN0aW9uTmFtZX0oJHthcmd1bWVudHN9KTsiOworICAgICEkYWdlbnQt
PnttZXRob2RTaWduYXR1cmVzfS0+eyRzaWduYXR1cmV9IHx8IGRpZSAiRHVwbGljYXRlIGZyb250
ZW5kIGZ1bmN0aW9uIHdhcyBkZXRlY3RlZCBmb3Igc2lnbmF0dXJlICckc2lnbmF0dXJlJy4iOwor
ICAgICRhZ2VudC0+e21ldGhvZFNpZ25hdHVyZXN9LT57JHNpZ25hdHVyZX0gPSAxOworICAgIHB1
c2goQHskYWdlbnQtPnttZXRob2REZWNsYXJhdGlvbnN9fSwgJHNpZ25hdHVyZSk7CiAKICAgICBt
eSBAZnVuY3Rpb247Ci0gICAgcHVzaChAZnVuY3Rpb24sICJ2b2lkICR7ZnJvbnRlbmRDbGFzc05h
bWV9Ojoke2Z1bmN0aW9uTmFtZX0oJHthcmd1bWVudHN9KSIpOworICAgIHB1c2goQGZ1bmN0aW9u
LCAidm9pZCAke2Zyb250ZW5kQ2xhc3NOYW1lfTo6JHtkb21haW59Ojoke2Z1bmN0aW9uTmFtZX0o
JHthcmd1bWVudHN9KSIpOwogICAgIHB1c2goQGZ1bmN0aW9uLCAieyIpOwogICAgIHB1c2goQGZ1
bmN0aW9uLCAiICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+ICR7ZnVuY3Rpb25OYW1lfU1lc3Nh
Z2UgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOyIpOwogICAgIHB1c2goQGZ1bmN0aW9uLCAi
ICAgICR7ZnVuY3Rpb25OYW1lfU1lc3NhZ2UtPnNldFN0cmluZyhcInR5cGVcIiwgXCJldmVudFwi
KTsiKTsKQEAgLTM0OSw3ICszOTQsNiBAQCBzdWIgZ2VuZXJhdGVGcm9udGVuZEZ1bmN0aW9uCiAg
ICAgcHVzaChAZnVuY3Rpb24sIEBwdXNoQXJndW1lbnRzKTsKICAgICBwdXNoKEBmdW5jdGlvbiwg
IiAgICAke2Z1bmN0aW9uTmFtZX1NZXNzYWdlLT5zZXRPYmplY3QoXCJib2R5XCIsIGJvZHlPYmpl
Y3QpOyIpOwogICAgIHB1c2goQGZ1bmN0aW9uLCAiICAgIG1faW5zcGVjdG9yQ2xpZW50LT5zZW5k
TWVzc2FnZVRvRnJvbnRlbmQoJHtmdW5jdGlvbk5hbWV9TWVzc2FnZS0+dG9KU09OU3RyaW5nKCkp
OyIpOwotCiAgICAgcHVzaChAZnVuY3Rpb24sICJ9Iik7CiAgICAgcHVzaChAZnVuY3Rpb24sICIi
KTsKICAgICBwdXNoKEBmcm9udGVuZE1ldGhvZHNJbXBsLCBAZnVuY3Rpb24pOwpAQCAtOTc0LDYg
KzEwMTgsNyBAQCBzdWIgZmluaXNoCiAKICAgICBwdXNoKEBiYWNrZW5kTWV0aG9kc0ltcGwsIGdl
bmVyYXRlQmFja2VuZERpc3BhdGNoZXIoKSk7CiAgICAgcHVzaChAYmFja2VuZE1ldGhvZHNJbXBs
LCBnZW5lcmF0ZUJhY2tlbmRSZXBvcnRQcm90b2NvbEVycm9yKCkpOworICAgIHVuc2hpZnQoQGZy
b250ZW5kTWV0aG9kc0ltcGwsIGdlbmVyYXRlRnJvbnRlbmRDb25zdHJ1Y3RvckltcGwoKSwgIiIp
OwogCiAgICAgb3BlbihteSAkU09VUkNFLCAiPiRvdXRwdXREaXIvJGZyb250ZW5kQ2xhc3NOYW1l
LmNwcCIpIHx8IGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRvdXRwdXREaXIvJGZyb250ZW5kQ2xh
c3NOYW1lLmNwcCI7CiAgICAgcHJpbnQgJFNPVVJDRSBqb2luKCJcbiIsIGdlbmVyYXRlU291cmNl
KCRmcm9udGVuZENsYXNzTmFtZSwgXCVmcm9udGVuZFR5cGVzLCBcQGZyb250ZW5kQ29uc3RhbnRE
ZWZpbml0aW9ucywgXEBmcm9udGVuZE1ldGhvZHNJbXBsKSk7CkBAIC05ODEsNyArMTAyNiw3IEBA
IHN1YiBmaW5pc2gKICAgICB1bmRlZigkU09VUkNFKTsKIAogICAgIG9wZW4obXkgJEhFQURFUiwg
Ij4kb3V0cHV0SGVhZGVyc0Rpci8kZnJvbnRlbmRDbGFzc05hbWUuaCIpIHx8IGRpZSAiQ291bGRu
J3Qgb3BlbiBmaWxlICRvdXRwdXRIZWFkZXJzRGlyLyRmcm9udGVuZENsYXNzTmFtZS5oIjsKLSAg
ICBwcmludCAkSEVBREVSIGdlbmVyYXRlSGVhZGVyKCRmcm9udGVuZENsYXNzTmFtZSwgXCVmcm9u
dGVuZFR5cGVzLCAkZnJvbnRlbmRDb25zdHJ1Y3RvciwgXEBmcm9udGVuZENvbnN0YW50RGVjbGFy
YXRpb25zLCBcQGZyb250ZW5kTWV0aG9kcywgJGZyb250ZW5kRm9vdGVyKTsKKyAgICBwcmludCAk
SEVBREVSIGdlbmVyYXRlSGVhZGVyKCRmcm9udGVuZENsYXNzTmFtZSwgXCVmcm9udGVuZFR5cGVz
LCAkZnJvbnRlbmRDb25zdHJ1Y3RvciwgXEBmcm9udGVuZENvbnN0YW50RGVjbGFyYXRpb25zLCBc
QGZyb250ZW5kTWV0aG9kcywgam9pbigiXG4iLCBAZnJvbnRlbmRGb290ZXIpKTsKICAgICBjbG9z
ZSgkSEVBREVSKTsKICAgICB1bmRlZigkSEVBREVSKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKaW5kZXggOGQ1NmE1YTQxYmU0OGY3ZTEwYWY2NDliMzhh
NWFjM2Y4Zjg3NGE1My4uMWIwMzFlZjFlZTY0ZjlhZWUzZTc1MGU2NTYwNGYxN2M5Yjk2NDJkYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCkBAIC04Niw3
ICs4Niw3IEBAIENvbnNvbGVNZXNzYWdlOjp+Q29uc29sZU1lc3NhZ2UoKQogewogfQogCi12b2lk
IENvbnNvbGVNZXNzYWdlOjphZGRUb0Zyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVu
ZCwgSW5qZWN0ZWRTY3JpcHRIb3N0KiBpbmplY3RlZFNjcmlwdEhvc3QpCit2b2lkIENvbnNvbGVN
ZXNzYWdlOjphZGRUb0Zyb250ZW5kKEluc3BlY3RvckZyb250ZW5kOjpDb25zb2xlKiBmcm9udGVu
ZCwgSW5qZWN0ZWRTY3JpcHRIb3N0KiBpbmplY3RlZFNjcmlwdEhvc3QpCiB7CiAgICAgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4ganNvbk9iaiA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CiAg
ICAganNvbk9iai0+c2V0TnVtYmVyKCJzb3VyY2UiLCBzdGF0aWNfY2FzdDxpbnQ+KG1fc291cmNl
KSk7CkBAIC0xMTgsNyArMTE4LDcgQEAgdm9pZCBDb25zb2xlTWVzc2FnZTo6YWRkVG9Gcm9udGVu
ZChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIEluamVjdGVkU2NyaXB0SG8KICAgICBmcm9u
dGVuZC0+YWRkQ29uc29sZU1lc3NhZ2UoanNvbk9iaik7CiB9CiAKLXZvaWQgQ29uc29sZU1lc3Nh
Z2U6OnVwZGF0ZVJlcGVhdENvdW50SW5Db25zb2xlKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVu
ZCkKK3ZvaWQgQ29uc29sZU1lc3NhZ2U6OnVwZGF0ZVJlcGVhdENvdW50SW5Db25zb2xlKEluc3Bl
Y3RvckZyb250ZW5kOjpDb25zb2xlKiBmcm9udGVuZCkKIHsKICAgICBmcm9udGVuZC0+dXBkYXRl
Q29uc29sZU1lc3NhZ2VSZXBlYXRDb3VudChtX3JlcGVhdENvdW50KTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmgKaW5kZXggN2MzMzQ4Yjk2MzhjODYxZjYzNmU5
ZTJlYjdlYzI5ODQ2YjE0Yjg2Yi4uMjZlNTY3NTI2ZGEyYjU4ZjBiMjBlZTY0NjQwMWI2YmViMTU1
YTgwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmgKQEAgLTMy
LDYgKzMyLDcgQEAKICNkZWZpbmUgQ29uc29sZU1lc3NhZ2VfaAogCiAjaW5jbHVkZSAiQ29uc29s
ZS5oIgorI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiU2NyaXB0U3Rh
dGUuaCIKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC01NCw4ICs1NSw4IEBAIHB1Ymxp
YzoKICAgICBDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG0sIGNvbnN0IFN0cmluZyYgcmVzcG9uc2VVcmwsIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllcik7CiAgICAgfkNvbnNvbGVNZXNzYWdlKCk7CiAKLSAgICB2b2lk
IGFkZFRvRnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqLCBJbmplY3RlZFNjcmlwdEhvc3QqKTsK
LSAgICB2b2lkIHVwZGF0ZVJlcGVhdENvdW50SW5Db25zb2xlKEluc3BlY3RvckZyb250ZW5kKiBm
cm9udGVuZCk7CisgICAgdm9pZCBhZGRUb0Zyb250ZW5kKEluc3BlY3RvckZyb250ZW5kOjpDb25z
b2xlKiwgSW5qZWN0ZWRTY3JpcHRIb3N0Kik7CisgICAgdm9pZCB1cGRhdGVSZXBlYXRDb3VudElu
Q29uc29sZShJbnNwZWN0b3JGcm9udGVuZDo6Q29uc29sZSopOwogICAgIHZvaWQgaW5jcmVtZW50
Q291bnQoKSB7ICsrbV9yZXBlYXRDb3VudDsgfQogICAgIGJvb2wgaXNFcXVhbChDb25zb2xlTWVz
c2FnZSogbXNnKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0SG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRIb3N0LmNwcAppbmRleCBjM2EwYTFmNmRjMjA3ZjdlYWIxZDc5YzAzMWE2NmY1ZmU1
ZjI5ZmNmLi42MmJjNmFmYzI0ZDllZWI0NWNkODA1NjU2YzgwYTExNTJiZjFkZjM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcApAQCAtODMs
NyArODMsNyBAQCBJbmplY3RlZFNjcmlwdEhvc3Q6On5JbmplY3RlZFNjcmlwdEhvc3QoKQogdm9p
ZCBJbmplY3RlZFNjcmlwdEhvc3Q6Omluc3BlY3RJbXBsKFBhc3NSZWZQdHI8SW5zcGVjdG9yVmFs
dWU+IG9iamVjdElkLCBQYXNzUmVmUHRyPEluc3BlY3RvclZhbHVlPiBoaW50cykKIHsKICAgICBp
ZiAoSW5zcGVjdG9yRnJvbnRlbmQqIGZlID0gZnJvbnRlbmQoKSkKLSAgICAgICAgZmUtPmluc3Bl
Y3Qob2JqZWN0SWQtPmFzT2JqZWN0KCksIGhpbnRzLT5hc09iamVjdCgpKTsKKyAgICAgICAgZmUt
Pmluc3BlY3RvcigpLT5pbnNwZWN0KG9iamVjdElkLT5hc09iamVjdCgpLCBoaW50cy0+YXNPYmpl
Y3QoKSk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRTY3JpcHRIb3N0OjpjbGVhckNvbnNvbGVNZXNzYWdl
cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCmluZGV4IDkyYzE1NmYyYWY4
NjdjYmJhNDgzNjllOThiNmNlYzI4M2I5MzUyNTkuLjYwMTAzZmRjNWM0NTJlNjczMmRkODFiMGI0
MTJkMmUzYmM0NjZlNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCkBA
IC0zOSw3ICszOSw2IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgdm9pZCBvcGVuSW5JbnNwZWN0
ZWRXaW5kb3coaW4gU3RyaW5nIHVybCk7CiAgICAgICAgIHZvaWQgc2V0U2VhcmNoaW5nRm9yTm9k
ZShpbiBib29sZWFuIGVuYWJsZWQsIG91dCBib29sZWFuIG5ld1N0YXRlKTsKICAgICAgICAgW2V2
ZW50XSB2b2lkIGZyb250ZW5kUmV1c2VkKCk7Ci0gICAgICAgIFtldmVudF0gdm9pZCBhZGROb2Rl
c1RvU2VhcmNoUmVzdWx0KG91dCBBcnJheSBub2RlSWRzKTsKICAgICAgICAgW2V2ZW50XSB2b2lk
IGJyaW5nVG9Gcm9udCgpOwogICAgICAgICBbZXZlbnRdIHZvaWQgZGlzY29ubmVjdEZyb21CYWNr
ZW5kKCk7CiAgICAgICAgIFtldmVudF0gdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKG91dCBTdHJp
bmcgdXJsKTsKQEAgLTE2NCw2ICsxNjMsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIHZvaWQg
Z2V0Tm9kZVByb3RvdHlwZXMoaW4gbG9uZyBub2RlSWQsIG91dCBWYWx1ZSByZXN1bHQpOwogICAg
ICAgICB2b2lkIHB1c2hOb2RlVG9Gcm9udGVuZChpbiBPYmplY3Qgb2JqZWN0SWQsIG91dCBsb25n
IG5vZGVJZCk7CiAKKyAgICAgICAgW2V2ZW50XSB2b2lkIGFkZE5vZGVzVG9TZWFyY2hSZXN1bHQo
b3V0IEFycmF5IG5vZGVJZHMpOwogICAgICAgICBbZXZlbnRdIHZvaWQgc2V0RG9jdW1lbnQob3V0
IFZhbHVlIHJvb3QpOyAvLyBGSVhNRTogc2hvdWxkIGJlIHJlcXVlc3RlZCBmcm9tIHRoZSBmcm9u
dC1lbmQgYXMgZ2V0RG9jdW1lbnQuCiAgICAgICAgIFtldmVudF0gdm9pZCBhdHRyaWJ1dGVzVXBk
YXRlZChvdXQgbG9uZyBpZCwgb3V0IEFycmF5IGF0dHJpYnV0ZXMpOwogICAgICAgICBbZXZlbnRd
IHZvaWQgY2hhcmFjdGVyRGF0YU1vZGlmaWVkKG91dCBsb25nIGlkLCBvdXQgU3RyaW5nIG5ld1Zh
bHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwCmluZGV4
IDc2OTVkYzQ1NDMxNGJiMjk3MDdkMTMzZmYzZTkwMTA3OTcwOWY5MDEuLjE0MzRiZDM5MzRmMjg0
OWE0YzZkYjg4NWQxNzBlMGVhM2U1ZjcxYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckFnZW50LmNwcApAQCAtMTcxLDcgKzE3MSw3IEBAIEluc3BlY3RvckFnZW50Ojp+
SW5zcGVjdG9yQWdlbnQoKQogdm9pZCBJbnNwZWN0b3JBZ2VudDo6aW5zcGVjdGVkUGFnZURlc3Ry
b3llZCgpCiB7CiAgICAgaWYgKG1fZnJvbnRlbmQpCi0gICAgICAgIG1fZnJvbnRlbmQtPmRpc2Nv
bm5lY3RGcm9tQmFja2VuZCgpOworICAgICAgICBtX2Zyb250ZW5kLT5pbnNwZWN0b3IoKS0+ZGlz
Y29ubmVjdEZyb21CYWNrZW5kKCk7CiAKICAgICBFcnJvclN0cmluZyBlcnJvcjsKICAgICBoaWRl
SGlnaGxpZ2h0KCZlcnJvcik7CkBAIC0yMDEsOCArMjAxLDggQEAgdm9pZCBJbnNwZWN0b3JBZ2Vu
dDo6cmVzdG9yZUluc3BlY3RvclN0YXRlRnJvbUNvb2tpZShjb25zdCBTdHJpbmcmIGluc3BlY3Rv
clN0YXQKIHsKICAgICBtX3N0YXRlLT5sb2FkRnJvbUNvb2tpZShpbnNwZWN0b3JTdGF0ZUNvb2tp
ZSk7CiAKLSAgICBtX2Zyb250ZW5kLT5mcm9udGVuZFJldXNlZCgpOwotICAgIG1fZnJvbnRlbmQt
Pmluc3BlY3RlZFVSTENoYW5nZWQoaW5zcGVjdGVkVVJMKCkuc3RyaW5nKCkpOworICAgIG1fZnJv
bnRlbmQtPmluc3BlY3RvcigpLT5mcm9udGVuZFJldXNlZCgpOworICAgIG1fZnJvbnRlbmQtPmlu
c3BlY3RvcigpLT5pbnNwZWN0ZWRVUkxDaGFuZ2VkKGluc3BlY3RlZFVSTCgpLnN0cmluZygpKTsK
ICAgICBwdXNoRGF0YUNvbGxlY3RlZE9mZmxpbmUoKTsKIAogICAgIG1fcmVzb3VyY2VBZ2VudCA9
IEluc3BlY3RvclJlc291cmNlQWdlbnQ6OnJlc3RvcmUobV9pbnNwZWN0ZWRQYWdlLCBtX3N0YXRl
LmdldCgpLCBtX2Zyb250ZW5kKTsKQEAgLTM3Niw3ICszNzYsNyBAQCB2b2lkIEluc3BlY3RvckFn
ZW50OjpzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCogaW5zcGVjdG9yRnJvbnRlbmQpCiAg
ICAgbV9kb21TdG9yYWdlQWdlbnQtPnNldEZyb250ZW5kKG1fZnJvbnRlbmQpOwogI2VuZGlmCiAg
ICAgLy8gSW5pdGlhbGl6ZSBXZWIgSW5zcGVjdG9yIHRpdGxlLgotICAgIG1fZnJvbnRlbmQtPmlu
c3BlY3RlZFVSTENoYW5nZWQoaW5zcGVjdGVkVVJMKCkuc3RyaW5nKCkpOworICAgIG1fZnJvbnRl
bmQtPmluc3BlY3RvcigpLT5pbnNwZWN0ZWRVUkxDaGFuZ2VkKGluc3BlY3RlZFVSTCgpLnN0cmlu
ZygpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZGlzY29ubmVjdEZyb250ZW5kKCkKQEAg
LTQwMCw3ICs0MDAsNyBAQCB2b2lkIEluc3BlY3RvckFnZW50OjpkaXNjb25uZWN0RnJvbnRlbmQo
KQogICAgIGhpZGVIaWdobGlnaHQoJmVycm9yKTsKIAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RF
QlVHR0VSKQotICAgIG1fcHJvZmlsZXJBZ2VudC0+c2V0RnJvbnRlbmQoMCk7CisgICAgbV9wcm9m
aWxlckFnZW50LT5jbGVhckZyb250ZW5kKCk7CiAgICAgbV9wcm9maWxlckFnZW50LT5zdG9wVXNl
ckluaXRpYXRlZFByb2ZpbGluZyh0cnVlKTsKICNlbmRpZgogCkBAIC00NTEsNyArNDUxLDcgQEAg
dm9pZCBJbnNwZWN0b3JBZ2VudDo6cG9wdWxhdGVTY3JpcHRPYmplY3RzKEVycm9yU3RyaW5nKikK
IAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIGlmIChtX3Byb2ZpbGVyQWdl
bnQtPmVuYWJsZWQoKSkKLSAgICAgICAgbV9mcm9udGVuZC0+cHJvZmlsZXJXYXNFbmFibGVkKCk7
CisgICAgICAgIG1fZnJvbnRlbmQtPnByb2ZpbGVyKCktPnByb2ZpbGVyV2FzRW5hYmxlZCgpOwog
I2VuZGlmCiAKICAgICBwdXNoRGF0YUNvbGxlY3RlZE9mZmxpbmUoKTsKQEAgLTQ2MCw3ICs0NjAs
NyBAQCB2b2lkIEluc3BlY3RvckFnZW50Ojpwb3B1bGF0ZVNjcmlwdE9iamVjdHMoRXJyb3JTdHJp
bmcqKQogICAgICAgICBmb2N1c05vZGUoKTsKIAogICAgIGlmICghbV9zaG93UGFuZWxBZnRlclZp
c2libGUuaXNFbXB0eSgpKSB7Ci0gICAgICAgIG1fZnJvbnRlbmQtPnNob3dQYW5lbChtX3Nob3dQ
YW5lbEFmdGVyVmlzaWJsZSk7CisgICAgICAgIG1fZnJvbnRlbmQtPmluc3BlY3RvcigpLT5zaG93
UGFuZWwobV9zaG93UGFuZWxBZnRlclZpc2libGUpOwogICAgICAgICBtX3Nob3dQYW5lbEFmdGVy
VmlzaWJsZSA9ICIiOwogICAgIH0KIApAQCAtNDY5LDcgKzQ2OSw3IEBAIHZvaWQgSW5zcGVjdG9y
QWdlbnQ6OnBvcHVsYXRlU2NyaXB0T2JqZWN0cyhFcnJvclN0cmluZyopCiAKICAgICAvLyBEaXNw
YXRjaCBwZW5kaW5nIGZyb250ZW5kIGNvbW1hbmRzCiAgICAgZm9yIChWZWN0b3I8cGFpcjxsb25n
LCBTdHJpbmc+ID46Oml0ZXJhdG9yIGl0ID0gbV9wZW5kaW5nRXZhbHVhdGVUZXN0Q29tbWFuZHMu
YmVnaW4oKTsgaXQgIT0gbV9wZW5kaW5nRXZhbHVhdGVUZXN0Q29tbWFuZHMuZW5kKCk7ICsraXQp
Ci0gICAgICAgIG1fZnJvbnRlbmQtPmV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoKCppdCkuZmly
c3QsICgqaXQpLnNlY29uZCk7CisgICAgICAgIG1fZnJvbnRlbmQtPmluc3BlY3RvcigpLT5ldmFs
dWF0ZUZvclRlc3RJbkZyb250ZW5kKCgqaXQpLmZpcnN0LCAoKml0KS5zZWNvbmQpOwogICAgIG1f
cGVuZGluZ0V2YWx1YXRlVGVzdENvbW1hbmRzLmNsZWFyKCk7CiB9CiAKQEAgLTQ4MSw3ICs0ODEs
NyBAQCB2b2lkIEluc3BlY3RvckFnZW50OjpwdXNoRGF0YUNvbGxlY3RlZE9mZmxpbmUoKQogICAg
IFdvcmtlcnNNYXA6Oml0ZXJhdG9yIHdvcmtlcnNFbmQgPSBtX3dvcmtlcnMuZW5kKCk7CiAgICAg
Zm9yIChXb3JrZXJzTWFwOjppdGVyYXRvciBpdCA9IG1fd29ya2Vycy5iZWdpbigpOyBpdCAhPSB3
b3JrZXJzRW5kOyArK2l0KSB7CiAgICAgICAgIEluc3BlY3RvcldvcmtlclJlc291cmNlKiB3b3Jr
ZXIgPSBpdC0+c2Vjb25kLmdldCgpOwotICAgICAgICBtX2Zyb250ZW5kLT5kaWRDcmVhdGVXb3Jr
ZXIod29ya2VyLT5pZCgpLCB3b3JrZXItPnVybCgpLCB3b3JrZXItPmlzU2hhcmVkV29ya2VyKCkp
OworICAgICAgICBtX2Zyb250ZW5kLT5kZWJ1Z2dlcigpLT5kaWRDcmVhdGVXb3JrZXIod29ya2Vy
LT5pZCgpLCB3b3JrZXItPnVybCgpLCB3b3JrZXItPmlzU2hhcmVkV29ya2VyKCkpOwogICAgIH0K
ICNlbmRpZgogfQpAQCAtNTEyLDcgKzUxMiw3IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OmRpZENv
bW1pdExvYWQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKIAogICAgIGlmIChsb2FkZXItPmZyYW1l
KCkgPT0gbV9pbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKSkgewogICAgICAgICBpZiAobV9mcm9u
dGVuZCkKLSAgICAgICAgICAgIG1fZnJvbnRlbmQtPmluc3BlY3RlZFVSTENoYW5nZWQobG9hZGVy
LT51cmwoKS5zdHJpbmcoKSk7CisgICAgICAgICAgICBtX2Zyb250ZW5kLT5pbnNwZWN0b3IoKS0+
aW5zcGVjdGVkVVJMQ2hhbmdlZChsb2FkZXItPnVybCgpLnN0cmluZygpKTsKIAogICAgICAgICBt
X2luamVjdGVkU2NyaXB0SG9zdC0+ZGlzY2FyZEluamVjdGVkU2NyaXB0cygpOwogICAgICAgICBt
X2NvbnNvbGVBZ2VudC0+cmVzZXQoKTsKQEAgLTU0MCw3ICs1NDAsNyBAQCB2b2lkIEluc3BlY3Rv
ckFnZW50OjpkaWRDb21taXRMb2FkKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAjZW5kaWYKIAog
ICAgICAgICBpZiAobV9mcm9udGVuZCkgewotICAgICAgICAgICAgbV9mcm9udGVuZC0+cmVzZXQo
KTsKKyAgICAgICAgICAgIG1fZnJvbnRlbmQtPmluc3BlY3RvcigpLT5yZXNldCgpOwogICAgICAg
ICAgICAgbV9kb21BZ2VudC0+cmVzZXQoKTsKICAgICAgICAgICAgIG1fY3NzQWdlbnQtPnJlc2V0
KCk7CiAgICAgICAgIH0KQEAgLTU2OCw3ICs1NjgsNyBAQCB2b2lkIEluc3BlY3RvckFnZW50Ojpk
b21Db250ZW50TG9hZGVkRXZlbnRGaXJlZChEb2N1bWVudExvYWRlciogbG9hZGVyLCBjb25zdCBL
VQogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gbV9pbnN0
cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCiAgICAgICAgIHRpbWVs
aW5lQWdlbnQtPmRpZE1hcmtET01Db250ZW50RXZlbnQoKTsKICAgICBpZiAobV9mcm9udGVuZCkK
LSAgICAgICAgbV9mcm9udGVuZC0+ZG9tQ29udGVudEV2ZW50RmlyZWQoY3VycmVudFRpbWUoKSk7
CisgICAgICAgIG1fZnJvbnRlbmQtPmluc3BlY3RvcigpLT5kb21Db250ZW50RXZlbnRGaXJlZChj
dXJyZW50VGltZSgpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JBZ2VudDo6bG9hZEV2ZW50RmlyZWQo
RG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgY29uc3QgS1VSTCYgdXJsKQpAQCAtNTg1LDcgKzU4NSw3
IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OmxvYWRFdmVudEZpcmVkKERvY3VtZW50TG9hZGVyKiBs
b2FkZXIsIGNvbnN0IEtVUkwmIHVybCkKICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCog
dGltZWxpbmVBZ2VudCA9IG1faW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVB
Z2VudCgpKQogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRNYXJrTG9hZEV2ZW50KCk7CiAgICAg
aWYgKG1fZnJvbnRlbmQpCi0gICAgICAgIG1fZnJvbnRlbmQtPmxvYWRFdmVudEZpcmVkKGN1cnJl
bnRUaW1lKCkpOworICAgICAgICBtX2Zyb250ZW5kLT5pbnNwZWN0b3IoKS0+bG9hZEV2ZW50Rmly
ZWQoY3VycmVudFRpbWUoKSk7CiB9CiAKIGJvb2wgSW5zcGVjdG9yQWdlbnQ6OmlzTWFpblJlc291
cmNlTG9hZGVyKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIGNvbnN0IEtVUkwmIHJlcXVlc3RVcmwp
CkBAIC02MzksMTAgKzYzOSwxMCBAQCB2b2lkIEluc3BlY3RvckFnZW50Ojpwb3N0V29ya2VyTm90
aWZpY2F0aW9uVG9Gcm9udGVuZChjb25zdCBJbnNwZWN0b3JXb3JrZXJSZXNvdQogI2lmIEVOQUJM
RShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIHN3aXRjaCAoYWN0aW9uKSB7CiAgICAgY2FzZSBJ
bnNwZWN0b3JBZ2VudDo6V29ya2VyQ3JlYXRlZDoKLSAgICAgICAgbV9mcm9udGVuZC0+ZGlkQ3Jl
YXRlV29ya2VyKHdvcmtlci5pZCgpLCB3b3JrZXIudXJsKCksIHdvcmtlci5pc1NoYXJlZFdvcmtl
cigpKTsKKyAgICAgICAgbV9mcm9udGVuZC0+ZGVidWdnZXIoKS0+ZGlkQ3JlYXRlV29ya2VyKHdv
cmtlci5pZCgpLCB3b3JrZXIudXJsKCksIHdvcmtlci5pc1NoYXJlZFdvcmtlcigpKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBJbnNwZWN0b3JBZ2VudDo6V29ya2VyRGVzdHJveWVkOgotICAg
ICAgICBtX2Zyb250ZW5kLT5kaWREZXN0cm95V29ya2VyKHdvcmtlci5pZCgpKTsKKyAgICAgICAg
bV9mcm9udGVuZC0+ZGVidWdnZXIoKS0+ZGlkRGVzdHJveVdvcmtlcih3b3JrZXIuaWQoKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KICNlbmRpZgpAQCAtODM5LDcgKzgzOSw3IEBAIHZvaWQgSW5z
cGVjdG9yQWdlbnQ6OnNob3dTY3JpcHRzUGFuZWwoKQogdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZXZh
bHVhdGVGb3JUZXN0SW5Gcm9udGVuZChsb25nIGNhbGxJZCwgY29uc3QgU3RyaW5nJiBzY3JpcHQp
CiB7CiAgICAgaWYgKG1fZnJvbnRlbmQpCi0gICAgICAgIG1fZnJvbnRlbmQtPmV2YWx1YXRlRm9y
VGVzdEluRnJvbnRlbmQoY2FsbElkLCBzY3JpcHQpOworICAgICAgICBtX2Zyb250ZW5kLT5pbnNw
ZWN0b3IoKS0+ZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChjYWxsSWQsIHNjcmlwdCk7CiAgICAg
ZWxzZQogICAgICAgICBtX3BlbmRpbmdFdmFsdWF0ZVRlc3RDb21tYW5kcy5hcHBlbmQocGFpcjxs
b25nLCBTdHJpbmc+KGNhbGxJZCwgc2NyaXB0KSk7CiB9CkBAIC0xMTY2LDcgKzExNjYsNyBAQCB2
b2lkIEluc3BlY3RvckFnZW50OjpzaG93UGFuZWwoY29uc3QgU3RyaW5nJiBwYW5lbCkKICAgICAg
ICAgbV9zaG93UGFuZWxBZnRlclZpc2libGUgPSBwYW5lbDsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KLSAgICBtX2Zyb250ZW5kLT5zaG93UGFuZWwocGFuZWwpOworICAgIG1fZnJvbnRlbmQtPmlu
c3BlY3RvcigpLT5zaG93UGFuZWwocGFuZWwpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQuY3BwCmluZGV4IGEzOWM5ODBhODMwNWJiYWE4M2IyZTlkZDQ0MTMz
YzEwOTU3NjFmYzYuLjNkMzg5NmVmMTQyMGNhYjVjMzZlOWNiMDQxNDVjNTUyNjRiMTRmODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQuY3BwCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpJbnNwZWN0b3JBcHBsaWNhdGlv
bkNhY2hlQWdlbnQoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyLCBJbnNwZWN0b3JGcm9u
dGVuZCogZnJvbnRlbmQpCiAgICAgOiBtX2RvY3VtZW50TG9hZGVyKGRvY3VtZW50TG9hZGVyKQot
ICAgICwgbV9mcm9udGVuZChmcm9udGVuZCkKKyAgICAsIG1fZnJvbnRlbmQoZnJvbnRlbmQtPmFw
cGxpY2F0aW9uY2FjaGUoKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oCmluZGV4IGRkMTVkZjAx
MGJkODVkZjAzOWE2ZjliOWM5MjVjNzZlOTg2NmU1YWIuLjAwNDE4M2ZmMjI0NTc1NTE4YmI4ODRj
YTM2OWQxMmRiMGZhNWNjZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgKQEAgLTI4LDYgKzI4LDcgQEAK
ICNpZiBFTkFCTEUoSU5TUEVDVE9SKSAmJiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05T
KQogCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3QuaCIKKyNpbmNsdWRlICJJbnNwZWN0
b3JGcm9udGVuZC5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAKQEAgLTY1LDcgKzY2LDcgQEAgcHJpdmF0ZToKICAgICBQYXNzUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3Vy
Y2UoY29uc3QgQXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291cmNlSW5mbyYpOwogCiAgICAgRG9j
dW1lbnRMb2FkZXIqIG1fZG9jdW1lbnRMb2FkZXI7Ci0gICAgSW5zcGVjdG9yRnJvbnRlbmQqIG1f
ZnJvbnRlbmQ7CisgICAgSW5zcGVjdG9yRnJvbnRlbmQ6OkFwcGxpY2F0aW9uQ2FjaGUqIG1fZnJv
bnRlbmQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCmluZGV4IDdkYWJkNGMyNWYy
MmJlZjY5NDM2ODUyNjY3MTczZDEzZGE0MzY2NzUuLjQzNTVlNTRiOTE1YTdhNGUwYTdlMGUzZDcy
MjY4OTY2NzNiNjEyMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb25zb2xlQWdlbnQuY3BwCkBAIC0xMDYsNyArMTA2LDcgQEAgdm9pZCBJbnNwZWN0b3JD
b25zb2xlQWdlbnQ6OnJlc2V0KCkKIAogdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnNldEZy
b250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKIHsKLSAgICBtX2Zyb250ZW5kID0g
ZnJvbnRlbmQ7CisgICAgbV9mcm9udGVuZCA9IGZyb250ZW5kLT5jb25zb2xlKCk7CiB9CiAKIHZv
aWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpjbGVhckZyb250ZW5kKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAppbmRleCBhMjEzNjhlMzAw
NzE1NGU1NWEyYzlmYWUzNTYwZGU5OTcyZDdhY2MyLi44ZDNhNTcwYjkwOWExMjZlZDcwMDM0MjM4
OTJiNTlmOGIyZGVmYjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29uc29sZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnNvbGVBZ2VudC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjZGVmaW5lIEluc3BlY3RvckNv
bnNvbGVBZ2VudF9oCiAKICNpbmNsdWRlICJDb25zb2xlLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9y
RnJvbnRlbmQuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC04OCw3ICs4OSw3IEBAIHBy
aXZhdGU6CiAgICAgSW5zcGVjdG9yU3RhdGUqIG1faW5zcGVjdG9yU3RhdGU7CiAgICAgSW5qZWN0
ZWRTY3JpcHRIb3N0KiBtX2luamVjdGVkU2NyaXB0SG9zdDsKICAgICBJbnNwZWN0b3JET01BZ2Vu
dCogbV9pbnNwZWN0b3JET01BZ2VudDsKLSAgICBJbnNwZWN0b3JGcm9udGVuZCogbV9mcm9udGVu
ZDsKKyAgICBJbnNwZWN0b3JGcm9udGVuZDo6Q29uc29sZSogbV9mcm9udGVuZDsKICAgICBDb25z
b2xlTWVzc2FnZSogbV9wcmV2aW91c01lc3NhZ2U7CiAgICAgVmVjdG9yPE93blB0cjxDb25zb2xl
TWVzc2FnZT4gPiBtX2NvbnNvbGVNZXNzYWdlczsKICAgICB1bnNpZ25lZCBtX2V4cGlyZWRDb25z
b2xlTWVzc2FnZUNvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwCmluZGV4IDc5NzRmMmE3ZTJjZDMwNWQzZjYzN2Y0MTMxNmY2MjYzMjY2
OTdlMzguLjJmMWJlYTJlNDVhZmI1ZTFjMzAxMDFhNjRkNGExOTk2ZGZmOWZkYjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTEz
MSw3ICsxMzEsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNob3coKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBpZiAobV9pbnNwZWN0b3JGcm9udGVuZCkKLSAgICAgICAgbV9pbnNwZWN0
b3JGcm9udGVuZC0+YnJpbmdUb0Zyb250KCk7CisgICAgICAgIG1faW5zcGVjdG9yRnJvbnRlbmQt
Pmluc3BlY3RvcigpLT5icmluZ1RvRnJvbnQoKTsKICAgICBlbHNlIHsKICAgICAgICAgbV9vcGVu
aW5nRnJvbnRlbmQgPSB0cnVlOwogICAgICAgICBtX2luc3BlY3RvckNsaWVudC0+b3Blbkluc3Bl
Y3RvckZyb250ZW5kKHRoaXMpOwpAQCAtMTQyLDcgKzE0Miw3IEBAIHZvaWQgSW5zcGVjdG9yQ29u
dHJvbGxlcjo6Y2xvc2UoKQogewogICAgIGlmICghbV9pbnNwZWN0b3JGcm9udGVuZCkKICAgICAg
ICAgcmV0dXJuOwotICAgIG1faW5zcGVjdG9yRnJvbnRlbmQtPmRpc2Nvbm5lY3RGcm9tQmFja2Vu
ZCgpOworICAgIG1faW5zcGVjdG9yRnJvbnRlbmQtPmluc3BlY3RvcigpLT5kaXNjb25uZWN0RnJv
bUJhY2tlbmQoKTsKICAgICBkaXNjb25uZWN0RnJvbnRlbmQoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggNTE3NTUxYjM0Njc1
ZGI2ZTQyMTYyY2Q3NzJlODFiZDljNGNkNGZiNy4uNjE4YjZmZjk5OTUzN2Q4MWY3NWM1MDg4Mzdk
NTRkMDdiMTdjY2MxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RE9NQWdlbnQuY3BwCkBAIC0yNjEsNyArMjYxLDcgQEAgSW5zcGVjdG9yRE9NQWdlbnQ6On5JbnNw
ZWN0b3JET01BZ2VudCgpCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXRGcm9udGVuZChJbnNw
ZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCiB7CiAgICAgQVNTRVJUKCFtX2Zyb250ZW5kKTsKLSAg
ICBtX2Zyb250ZW5kID0gZnJvbnRlbmQ7CisgICAgbV9mcm9udGVuZCA9IGZyb250ZW5kLT5kb20o
KTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvckRPTUFnZW50KHRoaXMp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCmlu
ZGV4IGRmODM1OWI3M2VlMzFiNjk5YmQ3Y2ZkZDQ5N2Y4NTE2MDQ3YTlmMjUuLjQzNWMzMTcwZmMw
NmVhYTAwMTI2NzM3MjIyYTUzNTgzNTIxM2Y3MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCkBAIC0zMiw2ICszMiw3IEBACiAKICNpbmNsdWRlICJJ
bmplY3RlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0SG9zdC5oIgorI2luY2x1
ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAj
aW5jbHVkZSAiVGltZXIuaCIKIApAQCAtMTg2LDcgKzE4Nyw3IEBAIHByaXZhdGU6CiAKICAgICBJ
bnN0cnVtZW50aW5nQWdlbnRzKiBtX2luc3RydW1lbnRpbmdBZ2VudHM7CiAgICAgSW5qZWN0ZWRT
Y3JpcHRIb3N0KiBtX2luamVjdGVkU2NyaXB0SG9zdDsKLSAgICBJbnNwZWN0b3JGcm9udGVuZCog
bV9mcm9udGVuZDsKKyAgICBJbnNwZWN0b3JGcm9udGVuZDo6RE9NKiBtX2Zyb250ZW5kOwogICAg
IERPTUxpc3RlbmVyKiBtX2RvbUxpc3RlbmVyOwogICAgIE5vZGVUb0lkTWFwIG1fZG9jdW1lbnRO
b2RlVG9JZE1hcDsKICAgICAvLyBPd25zIG5vZGUgbWFwcGluZ3MgZm9yIGRhbmdsaW5nIG5vZGVz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3Jh
Z2VSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3Rv
cmFnZVJlc291cmNlLmNwcAppbmRleCBiNjA3YTNkMzNiOTU4OWExNTg3YTAwNGE0Njk2ZDQ4NDhj
YzViN2M0Li42ZmY2NDE4NDMzNzI4YzIzZGE5MzQ3Zjc0NjgxNjA5ZmY1OGZkYzUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJl
c291cmNlLmNwcApAQCAtNjcsMTMgKzY3LDEzIEBAIGJvb2wgSW5zcGVjdG9yRE9NU3RvcmFnZVJl
c291cmNlOjppc1NhbWVIb3N0QW5kVHlwZShGcmFtZSogZnJhbWUsIGJvb2wgaXNMb2NhbFN0CiB2
b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTo6YmluZChJbnNwZWN0b3JGcm9udGVuZCog
ZnJvbnRlbmQpCiB7CiAgICAgQVNTRVJUKCFtX2Zyb250ZW5kKTsKLSAgICBtX2Zyb250ZW5kID0g
ZnJvbnRlbmQ7CisgICAgbV9mcm9udGVuZCA9IGZyb250ZW5kLT5kb21zdG9yYWdlKCk7CiAKICAg
ICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBqc29uT2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0Ojpj
cmVhdGUoKTsKICAgICBqc29uT2JqZWN0LT5zZXRTdHJpbmcoImhvc3QiLCBtX2ZyYW1lLT5kb2N1
bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5ob3N0KCkpOwogICAgIGpzb25PYmplY3QtPnNldEJv
b2xlYW4oImlzTG9jYWxTdG9yYWdlIiwgbV9pc0xvY2FsU3RvcmFnZSk7CiAgICAganNvbk9iamVj
dC0+c2V0TnVtYmVyKCJpZCIsIG1faWQpOwotICAgIGZyb250ZW5kLT5hZGRET01TdG9yYWdlKGpz
b25PYmplY3QpOworICAgIG1fZnJvbnRlbmQtPmFkZERPTVN0b3JhZ2UoanNvbk9iamVjdCk7CiB9
CiAKIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlOjp1bmJpbmQoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5o
CmluZGV4IDFkOGY5MjI2YTk2ZWY1ZjVmNDczN2RmY2Y1NzlhYThiMTgzMTFiYjcuLjlhZDViOTE1
MzVmZmIwNzliNjA4MmE2NmJmZWIxZWFlYjZlNGU1MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmgKQEAgLTM0LDYg
KzM0LDcgQEAKICNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCiAKICNpbmNsdWRlICJFdmVudExpc3Rl
bmVyLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKIAogI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTc1LDcgKzc2LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBSZWZQdHI8U3RvcmFnZT4gbV9kb21TdG9y
YWdlOwogICAgICAgICBib29sIG1faXNMb2NhbFN0b3JhZ2U7CiAgICAgICAgIFJlZlB0cjxGcmFt
ZT4gbV9mcmFtZTsKLSAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmQqIG1fZnJvbnRlbmQ7CisgICAg
ICAgIEluc3BlY3RvckZyb250ZW5kOjpET01TdG9yYWdlKiBtX2Zyb250ZW5kOwogICAgICAgICBs
b25nIG1faWQ7CiAgICAgICAgIGJvb2wgbV9yZXBvcnRpbmdDaGFuZ2VzVG9Gcm9udGVuZDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQu
Y3BwCmluZGV4IGYxNGIwMGRlNjg5YTg1MWI1ZmE5OWJkNTViMGNiMmVjMTUxZDc2MDQuLjU1NzZi
MzFkZTczM2Y3NDllZWFkMzY2ZDMwZTdmOTQ3YmE2MGMzYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKQEAgLTYxLDE4ICs2
MSwxOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5Gcm9udGVuZFByb3ZpZGVyKCkgeyB9CiAK
LSAgICBJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQoKSB7IHJldHVybiBtX2luc3BlY3RvckZy
b250ZW5kOyB9CisgICAgSW5zcGVjdG9yRnJvbnRlbmQ6OkRhdGFiYXNlKiBmcm9udGVuZCgpIHsg
cmV0dXJuIG1faW5zcGVjdG9yRnJvbnRlbmQ7IH0KICAgICB2b2lkIGNsZWFyRnJvbnRlbmQoKSB7
IG1faW5zcGVjdG9yRnJvbnRlbmQgPSAwOyB9CiBwcml2YXRlOgotICAgIEZyb250ZW5kUHJvdmlk
ZXIoSW5zcGVjdG9yRnJvbnRlbmQqIGluc3BlY3RvckZyb250ZW5kKSA6IG1faW5zcGVjdG9yRnJv
bnRlbmQoaW5zcGVjdG9yRnJvbnRlbmQpIHsgfQotICAgIEluc3BlY3RvckZyb250ZW5kKiBtX2lu
c3BlY3RvckZyb250ZW5kOworICAgIEZyb250ZW5kUHJvdmlkZXIoSW5zcGVjdG9yRnJvbnRlbmQq
IGluc3BlY3RvckZyb250ZW5kKSA6IG1faW5zcGVjdG9yRnJvbnRlbmQoaW5zcGVjdG9yRnJvbnRl
bmQtPmRhdGFiYXNlKCkpIHsgfQorICAgIEluc3BlY3RvckZyb250ZW5kOjpEYXRhYmFzZSogbV9p
bnNwZWN0b3JGcm9udGVuZDsKIH07CiAKIG5hbWVzcGFjZSB7CiAKIGxvbmcgbGFzdFRyYW5zYWN0
aW9uSWQgPSAwOwogCi12b2lkIHJlcG9ydFRyYW5zYWN0aW9uRmFpbGVkKEluc3BlY3RvckZyb250
ZW5kKiBmcm9udGVuZCwgbG9uZyB0cmFuc2FjdGlvbklkLCBTUUxFcnJvciogZXJyb3IpCit2b2lk
IHJlcG9ydFRyYW5zYWN0aW9uRmFpbGVkKEluc3BlY3RvckZyb250ZW5kOjpEYXRhYmFzZSogZnJv
bnRlbmQsIGxvbmcgdHJhbnNhY3Rpb25JZCwgU1FMRXJyb3IqIGVycm9yKQogewogICAgIGlmICgh
ZnJvbnRlbmQpCiAgICAgICAgIHJldHVybjsKQEAgLTI1MCw3ICsyNTAsNyBAQCB2b2lkIEluc3Bl
Y3RvckRhdGFiYXNlQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVu
ZCkKICAgICBtX2Zyb250ZW5kUHJvdmlkZXIgPSBGcm9udGVuZFByb3ZpZGVyOjpjcmVhdGUoZnJv
bnRlbmQpOwogICAgIERhdGFiYXNlUmVzb3VyY2VzTWFwOjppdGVyYXRvciBkYXRhYmFzZXNFbmQg
PSBtX3Jlc291cmNlcy5lbmQoKTsKICAgICBmb3IgKERhdGFiYXNlUmVzb3VyY2VzTWFwOjppdGVy
YXRvciBpdCA9IG1fcmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9IGRhdGFiYXNlc0VuZDsgKytpdCkK
LSAgICAgICAgaXQtPnNlY29uZC0+YmluZChmcm9udGVuZCk7CisgICAgICAgIGl0LT5zZWNvbmQt
PmJpbmQobV9mcm9udGVuZFByb3ZpZGVyLT5mcm9udGVuZCgpKTsKIH0KIAogdm9pZCBJbnNwZWN0
b3JEYXRhYmFzZUFnZW50OjpjbGVhckZyb250ZW5kKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmNwcAppbmRleCA4MjlkMGZj
NzM4M2IzODllMjM5YWRmNDRhZTk4NTQ0NzRiYmY1MzVmLi40MTM0MmE0NzVhNDY3NDIyODIzN2Fi
YTNlNDJkNDFlZGU5ZmI1YTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuY3BwCkBAIC01NCw3ICs1NCw3IEBAIEluc3Bl
Y3RvckRhdGFiYXNlUmVzb3VyY2U6Okluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UoUGFzc1JlZlB0
cjxEYXRhYmFzZT4gZGF0YWJhCiB7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJj
ZTo6YmluZChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCit2b2lkIEluc3BlY3RvckRhdGFi
YXNlUmVzb3VyY2U6OmJpbmQoSW5zcGVjdG9yRnJvbnRlbmQ6OkRhdGFiYXNlKiBmcm9udGVuZCkK
IHsKICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBqc29uT2JqZWN0ID0gSW5zcGVjdG9yT2Jq
ZWN0OjpjcmVhdGUoKTsKICAgICBqc29uT2JqZWN0LT5zZXROdW1iZXIoImlkIiwgbV9pZCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VSZXNv
dXJjZS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlUmVzb3Vy
Y2UuaAppbmRleCBkYmExMTZhMDFjOGMzNmJkNWNmOGE3ZDZmMmVhNTYwYzljYmEyNWZiLi41NTBm
Y2Q4ZGE0NmM4Y2NhYjYzYTdjY2ZmNDA3NmNmNTY4NzI2Zjc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmgKQEAgLTMyLDYg
KzMyLDcgQEAKICNkZWZpbmUgSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZV9oCiAKICNpZiBFTkFC
TEUoREFUQUJBU0UpCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTQ1LDcgKzQ2LDcgQEAgY2xhc3MgSW5zcGVjdG9yRGF0YWJh
c2VSZXNvdXJjZSA6IHB1YmxpYyBSZWZDb3VudGVkPEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2U+
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JEYXRhYmFzZVJlc291
cmNlPiBjcmVhdGUoUGFzc1JlZlB0cjxEYXRhYmFzZT4gZGF0YWJhc2UsIGNvbnN0IFN0cmluZyYg
ZG9tYWluLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbik7CiAKLSAg
ICB2b2lkIGJpbmQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKTsKKyAgICB2b2lkIGJpbmQo
SW5zcGVjdG9yRnJvbnRlbmQ6OkRhdGFiYXNlKik7CiAgICAgRGF0YWJhc2UqIGRhdGFiYXNlKCkg
eyByZXR1cm4gbV9kYXRhYmFzZS5nZXQoKTsgfQogICAgIGxvbmcgaWQoKSBjb25zdCB7IHJldHVy
biBtX2lkOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50LmNwcAppbmRleCA0YWMwZmE4MDU3ZDRhODE3Y2MyMWExODdjZDQxMDM4MDA4
ZDYxYWM4Li44MjM2ZTBkZjg1N2Y5MjE3MjQwM2Q4YzZjODA2YTdkODQzNDY4ZTc5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3Bw
CkBAIC0xMjcsNyArMTI3LDcgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpyZXN0b3Jl
KCkKIAogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRGcm9udGVuZChJbnNwZWN0b3JG
cm9udGVuZCogZnJvbnRlbmQpCiB7Ci0gICAgbV9mcm9udGVuZCA9IGZyb250ZW5kOworICAgIG1f
ZnJvbnRlbmQgPSBmcm9udGVuZC0+ZGVidWdnZXIoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50OjplbmFibGVEZWJ1Z2dlckFmdGVyU2hvd24oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKaW5kZXggZWFhY2M0MzFjNDRm
NjM0NWE0Mjg1YWZhNjNjYzhmNjAxYjEwZDVmNC4uYjM3M2NjNWVmYTZlZmFmOTlkODFkMDk2MGE0
N2I3NmM3ZWNjODNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRGVidWdnZXJBZ2VudC5oCkBAIC0zMiw2ICszMiw3IEBACiAKICNpZiBFTkFCTEUoSkFWQVND
UklQVF9ERUJVR0dFUikgJiYgRU5BQkxFKElOU1BFQ1RPUikKICNpbmNsdWRlICJJbmplY3RlZFNj
cmlwdC5oIgorI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiU2NyaXB0
QnJlYWtwb2ludC5oIgogI2luY2x1ZGUgIlNjcmlwdERlYnVnTGlzdGVuZXIuaCIKICNpbmNsdWRl
ICJTY3JpcHRTdGF0ZS5oIgpAQCAtMTU1LDcgKzE1Niw3IEBAIHByaXZhdGU6CiAgICAgSW5zcGVj
dG9yU3RhdGUqIG1faW5zcGVjdG9yU3RhdGU7CiAgICAgUGFnZSogbV9pbnNwZWN0ZWRQYWdlOwog
ICAgIEluamVjdGVkU2NyaXB0SG9zdCogbV9pbmplY3RlZFNjcmlwdEhvc3Q7Ci0gICAgSW5zcGVj
dG9yRnJvbnRlbmQqIG1fZnJvbnRlbmQ7CisgICAgSW5zcGVjdG9yRnJvbnRlbmQ6OkRlYnVnZ2Vy
KiBtX2Zyb250ZW5kOwogICAgIFNjcmlwdFN0YXRlKiBtX3BhdXNlZFNjcmlwdFN0YXRlOwogICAg
IFNjcmlwdHNNYXAgbV9zY3JpcHRzOwogICAgIEJyZWFrcG9pbnRJZFRvRGVidWdTZXJ2ZXJCcmVh
a3BvaW50SWRzTWFwIG1fYnJlYWtwb2ludElkVG9EZWJ1Z1NlcnZlckJyZWFrcG9pbnRJZHM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5j
cHAKaW5kZXggOTM4NTJjN2MyM2ZlYzNiYzcwMGU4NDU4YTVjODFlYWI3NDk1ZmRjOS4uMDU1NjNi
ZDUzYjAzYzk2MTJkYmZiNjBmMWRkOTMzOGViNjY1ZjMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcApAQCAtMTY1LDEyICsx
NjUsMTIgQEAgbmFtZXNwYWNlIHsKIAogY2xhc3MgT3V0cHV0U3RyZWFtIDogcHVibGljIFNjcmlw
dEhlYXBTbmFwc2hvdDo6T3V0cHV0U3RyZWFtIHsKIHB1YmxpYzoKLSAgICBPdXRwdXRTdHJlYW0o
SW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCB1bnNpZ25lZCBsb25nIHVpZCkKKyAgICBPdXRw
dXRTdHJlYW0oSW5zcGVjdG9yRnJvbnRlbmQ6OlByb2ZpbGVyKiBmcm9udGVuZCwgdW5zaWduZWQg
bG9uZyB1aWQpCiAgICAgICAgIDogbV9mcm9udGVuZChmcm9udGVuZCksIG1fdWlkKHVpZCkgeyB9
CiAgICAgdm9pZCBXcml0ZShjb25zdCBTdHJpbmcmIGNodW5rKSB7IG1fZnJvbnRlbmQtPmFkZEhl
YXBTbmFwc2hvdENodW5rKG1fdWlkLCBjaHVuayk7IH0KICAgICB2b2lkIENsb3NlKCkgeyBtX2Zy
b250ZW5kLT5maW5pc2hIZWFwU25hcHNob3QobV91aWQpOyB9CiBwcml2YXRlOgotICAgIEluc3Bl
Y3RvckZyb250ZW5kKiBtX2Zyb250ZW5kOworICAgIEluc3BlY3RvckZyb250ZW5kOjpQcm9maWxl
ciogbV9mcm9udGVuZDsKICAgICB1bnNpZ25lZCBsb25nIG1fdWlkOwogfTsKIApAQCAtMjczLDcg
KzI3Myw3IEBAIG5hbWVzcGFjZSB7CiAKIGNsYXNzIEhlYXBTbmFwc2hvdFByb2dyZXNzOiBwdWJs
aWMgU2NyaXB0UHJvZmlsZXI6OkhlYXBTbmFwc2hvdFByb2dyZXNzIHsKIHB1YmxpYzoKLSAgICBl
eHBsaWNpdCBIZWFwU25hcHNob3RQcm9ncmVzcyhJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQp
CisgICAgZXhwbGljaXQgSGVhcFNuYXBzaG90UHJvZ3Jlc3MoSW5zcGVjdG9yRnJvbnRlbmQ6OlBy
b2ZpbGVyKiBmcm9udGVuZCkKICAgICAgICAgOiBtX2Zyb250ZW5kKGZyb250ZW5kKSB7IH0KICAg
ICB2b2lkIFN0YXJ0KGludCB0b3RhbFdvcmspCiAgICAgewpAQCAtMjg3LDcgKzI4Nyw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIERvbmUoKSB7IH0KICAgICBib29sIGlzQ2FuY2VsZWQoKSB7IHJldHVy
biBmYWxzZTsgfQogcHJpdmF0ZToKLSAgICBJbnNwZWN0b3JGcm9udGVuZCogbV9mcm9udGVuZDsK
KyAgICBJbnNwZWN0b3JGcm9udGVuZDo6UHJvZmlsZXIqIG1fZnJvbnRlbmQ7CiAgICAgaW50IG1f
dG90YWxXb3JrOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclByb2ZpbGVyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JQcm9maWxlckFnZW50LmgKaW5kZXggZDQzNjQxOGI2ZDhkOTgyYzgxNzI1YTY4YmFmZTYzZGU5
ZGQ4YTQwNC4uZGRlOTYyMmNlZGI0ZTRkY2M2NzI0ZDY5NGJlNDgxMjRjNDZmZTA0MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oCkBA
IC0zMiw2ICszMiw3IEBACiAKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikgJiYgRU5B
QkxFKElOU1BFQ1RPUikKIAorI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CkBAIC02OSw3ICs3MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92
ZVByb2ZpbGUoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25zdCBTdHJpbmcmIHR5cGUsIHVuc2lnbmVk
IHVpZCk7CiAgICAgdm9pZCByZXNldFN0YXRlKCk7CiAgICAgdm9pZCByZXNldEZyb250ZW5kUHJv
ZmlsZXMoKTsKLSAgICB2b2lkIHNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVu
ZCkgeyBtX2Zyb250ZW5kID0gZnJvbnRlbmQ7IH0KKyAgICB2b2lkIHNldEZyb250ZW5kKEluc3Bl
Y3RvckZyb250ZW5kKiBmcm9udGVuZCkgeyBtX2Zyb250ZW5kID0gZnJvbnRlbmQtPnByb2ZpbGVy
KCk7IH0KKyAgICB2b2lkIGNsZWFyRnJvbnRlbmQoKSB7IG1fZnJvbnRlbmQgPSAwOyB9CiAgICAg
dm9pZCBzdGFydFVzZXJJbml0aWF0ZWRQcm9maWxpbmcoKTsKICAgICB2b2lkIHN0b3BVc2VySW5p
dGlhdGVkUHJvZmlsaW5nKGJvb2wgaWdub3JlUHJvZmlsZSA9IGZhbHNlKTsKICAgICB2b2lkIHRh
a2VIZWFwU25hcHNob3QoRXJyb3JTdHJpbmcqIGVycm9yLCBib29sIGRldGFpbGVkKTsKQEAgLTg0
LDcgKzg2LDcgQEAgcHJpdmF0ZToKICAgICBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3Jl
YXRlU25hcHNob3RIZWFkZXIoY29uc3QgU2NyaXB0SGVhcFNuYXBzaG90JiBzbmFwc2hvdCk7CiAK
ICAgICBJbnNwZWN0b3JBZ2VudCogbV9pbnNwZWN0b3JBZ2VudDsKLSAgICBJbnNwZWN0b3JGcm9u
dGVuZCogbV9mcm9udGVuZDsKKyAgICBJbnNwZWN0b3JGcm9udGVuZDo6UHJvZmlsZXIqIG1fZnJv
bnRlbmQ7CiAgICAgYm9vbCBtX2VuYWJsZWQ7CiAgICAgYm9vbCBtX3JlY29yZGluZ1VzZXJJbml0
aWF0ZWRQcm9maWxlOwogICAgIGludCBtX2N1cnJlbnRVc2VySW5pdGlhdGVkUHJvZmlsZU51bWJl
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJj
ZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmNwcAppbmRleCA5YzI0MzQxYzc0ZWI2MzNlOTMzMWRlZWEzNWQ1ZmRmOTY2OGUwYjdkLi44
YjMzY2IwZjIzYzFiZWZiZGZjNjlkZDAzYTkwMWNlZDQzMzQzYTQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCkBAIC01MTks
NyArNTE5LDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQo
RXJyb3JTdHJpbmcqLCB1bnNpZ25lZCBsb25nIGZyYW1lSWQKIEluc3BlY3RvclJlc291cmNlQWdl
bnQ6Okluc3BlY3RvclJlc291cmNlQWdlbnQoUGFnZSogcGFnZSwgSW5zcGVjdG9yU3RhdGUqIHN0
YXRlLCBJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCiAgICAgOiBtX3BhZ2UocGFnZSkKICAg
ICAsIG1fc3RhdGUoc3RhdGUpCi0gICAgLCBtX2Zyb250ZW5kKGZyb250ZW5kKQorICAgICwgbV9m
cm9udGVuZChmcm9udGVuZC0+bmV0d29yaygpKQogewogICAgIG1fc3RhdGUtPnNldEJvb2xlYW4o
UmVzb3VyY2VBZ2VudFN0YXRlOjpyZXNvdXJjZUFnZW50RW5hYmxlZCwgdHJ1ZSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaAppbmRl
eCBhMGEyZjFiOTUxMWU3YTFhNjg1NDVhODQzNzBlOGJjN2VhMDYyZGFlLi42ZDAyMTQ0NDBlNTAz
ZDhiZjA1MDg3YjQ5YmQ3ZDE5Y2VkNDdjOWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpZm5k
ZWYgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudF9oCiAjZGVmaW5lIEluc3BlY3RvclJlc291cmNlQWdl
bnRfaAogCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgogCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAgLTExMyw3ICsxMTQs
NyBAQCBwcml2YXRlOgogCiAgICAgUGFnZSogbV9wYWdlOwogICAgIEluc3BlY3RvclN0YXRlKiBt
X3N0YXRlOwotICAgIEluc3BlY3RvckZyb250ZW5kKiBtX2Zyb250ZW5kOworICAgIEluc3BlY3Rv
ckZyb250ZW5kOjpOZXR3b3JrKiBtX2Zyb250ZW5kOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVs
aW5lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5l
QWdlbnQuY3BwCmluZGV4IGZlODdlOWExYzg3ZmM2YjkzMzY3YzgzMzc5NGRiYzBkMzI1YzJhMTYu
LjRmMjhmY2Q4MTQ5MDBiZWQ2NmM0MjY3Mjg5ZjhjNDQ1N2UyMjdjNDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTc3
LDcgKzc3LDcgQEAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6fkluc3BlY3RvclRpbWVsaW5lQWdl
bnQoKQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3Rv
ckZyb250ZW5kKiBmcm9udGVuZCkKIHsKLSAgICBtX2Zyb250ZW5kID0gZnJvbnRlbmQ7CisgICAg
bV9mcm9udGVuZCA9IGZyb250ZW5kLT50aW1lbGluZSgpOwogfQogCiB2b2lkIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OmNsZWFyRnJvbnRlbmQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKaW5kZXggOGM3M2FlODMzZTk0Y2M4ZTQ3ODRj
ZmJmNjc5NDlhZjQwMjE3MjMzZi4uZGMzMGYwNDIwY2I0ZjAwMGQzZjgzMDNkNzM5MjU2YjlkNDcz
ODdmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVs
aW5lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5oCkBAIC0zMyw2ICszMyw3IEBACiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogCisj
aW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMu
aCIKICNpbmNsdWRlICJTY3JpcHRHQ0V2ZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0R0NFdmVudExp
c3RlbmVyLmgiCkBAIC0xNzIsNyArMTczLDcgQEAgcHJpdmF0ZToKIAogICAgIEluc3RydW1lbnRp
bmdBZ2VudHMqIG1faW5zdHJ1bWVudGluZ0FnZW50czsKICAgICBJbnNwZWN0b3JTdGF0ZSogbV9z
dGF0ZTsKLSAgICBJbnNwZWN0b3JGcm9udGVuZCogbV9mcm9udGVuZDsKKyAgICBJbnNwZWN0b3JG
cm9udGVuZDo6VGltZWxpbmUqIG1fZnJvbnRlbmQ7CiAKICAgICBWZWN0b3I8VGltZWxpbmVSZWNv
cmRFbnRyeT4gbV9yZWNvcmRTdGFjazsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRE9NQWdlbnQuanMKaW5kZXggNDY3MGRhM2NkMmZjMWJhYTJmODdkZmI5YjYxMjZm
ZGMxNTJmNTk1Ny4uMDlkMmY1ZmJmNDgzMTY5NzY4MDk5NTZmZTAyZGVmNDUxNjIwZGUyOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCkBAIC01
MDAsNiArNTAwLDExIEBAIFdlYkluc3BlY3Rvci5ET01EaXNwYXRjaGVyLnByb3RvdHlwZSA9IHsK
ICAgICBpbnNwZWN0RWxlbWVudFJlcXVlc3RlZDogZnVuY3Rpb24obm9kZUlkKQogICAgIHsKICAg
ICAgICAgV2ViSW5zcGVjdG9yLnVwZGF0ZUZvY3VzZWROb2RlKG5vZGVJZCk7CisgICAgfSwKKwor
ICAgIGFkZE5vZGVzVG9TZWFyY2hSZXN1bHQ6IGZ1bmN0aW9uKG5vZGVJZHMpCisgICAgeworICAg
ICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLmFkZE5vZGVzVG9TZWFyY2hSZXN1bHQo
bm9kZUlkcyk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IGQ1NTRmNzk0OTIzNTAwNmJhNzg1YjQ2MWJkNDkxZTYy
NGUzNzJmYWEuLmYyMzIzYTk5NDYwYzMyMzk5YjU5OTJkZmU0ZDg4YmI5MzZlY2NhMGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC0x
NTg1LDExICsxNTg1LDYgQEAgV2ViSW5zcGVjdG9yLmZyb250ZW5kUmV1c2VkID0gZnVuY3Rpb24o
KQogICAgIHRoaXMucmVzZXQoKTsKIH0KIAotV2ViSW5zcGVjdG9yLmFkZE5vZGVzVG9TZWFyY2hS
ZXN1bHQgPSBmdW5jdGlvbihub2RlSWRzKQotewotICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuZWxl
bWVudHMuYWRkTm9kZXNUb1NlYXJjaFJlc3VsdChub2RlSWRzKTsKLX0KLQogV2ViSW5zcGVjdG9y
LnVwZGF0ZVNlYXJjaE1hdGNoZXNDb3VudCA9IGZ1bmN0aW9uKG1hdGNoZXMsIHBhbmVsKQogewog
ICAgIGlmICghcGFuZWwpCg==
</data>
<flag name="review"
          id="76408"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>