<?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>153922</bug_id>
          
          <creation_ts>2016-02-05 10:59:52 -0800</creation_ts>
          <short_desc>Move NetworkDataTask to its own header and source files</short_desc>
          <delta_ts>2017-09-27 12:51:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1162439</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-02-05 10:59:52 -0800</bug_when>
    <thetext>Move NetworkDataTask to its own header and source files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1162440</commentid>
    <comment_count>1</comment_count>
      <attachid>270754</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-02-05 11:00:55 -0800</bug_when>
    <thetext>Created attachment 270754
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1162441</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-02-05 11:18:44 -0800</bug_when>
    <thetext>When I commit this, NetworkDataTask.h will have WebKit project Target Membership instead of All to avoid messing up code signing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1162448</commentid>
    <comment_count>3</comment_count>
      <attachid>270754</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-02-05 11:50:48 -0800</bug_when>
    <thetext>Comment on attachment 270754
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350575</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-19 16:34:51 -0700</bug_when>
    <thetext>http://trac.webkit.org/r196178</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353687</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:51:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/34694150&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270754</attachid>
            <date>2016-02-05 11:00:55 -0800</date>
            <delta_ts>2016-02-05 11:50:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-153922-20160205110031.patch</filename>
            <type>text/plain</type>
            <size>27366</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NjE3NykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDE2LTAyLTA1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBOZXR3
b3JrRGF0YVRhc2sgdG8gaXRzIG93biBoZWFkZXIgYW5kIHNvdXJjZSBmaWxlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzOTIyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxzbyByZW5hbWVkIE5ldHdv
cmtTZXNzaW9uVGFza0NsaWVudCB0byBOZXR3b3JrRGF0YVRhc2tDbGllbnQuCisKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtEYXRhVGFza0NsaWVudDo6fk5ldHdvcmtEYXRhVGFza0NsaWVudCk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFzazo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0RhdGFUYXNrOjpjbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRh
c2s6OnBlbmRpbmdEb3dubG9hZElEKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNr
OjpwZW5kaW5nRG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OnNl
dFBlbmRpbmdEb3dubG9hZElEKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpz
ZXRQZW5kaW5nRG93bmxvYWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Nlc3Npb25UYXNrQ2xpZW50Ojp+TmV0d29ya1Nlc3Npb25UYXNrQ2xp
ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpjcmVhdGUp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OmNsaWVudCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFzazo6cGVuZGluZ0Rvd25sb2Fk
SUQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OnBlbmRpbmdE
b3dubG9hZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFzazo6c2V0
UGVuZGluZ0Rvd25sb2FkSUQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0
YVRhc2s6OnNldFBlbmRpbmdEb3dubG9hZCk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrRGF0YVRhc2s6Ok5ldHdvcmtEYXRhVGFzayk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtEYXRhVGFzazo6fk5ldHdvcmtEYXRhVGFzayk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtEYXRhVGFzazo6c2NoZWR1bGVGYWlsdXJlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0RhdGFUYXNrOjpmYWlsdXJlVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtE
YXRhVGFzazo6dHJ5UGFzc3dvcmRCYXNlZEF1dGhlbnRpY2F0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0RhdGFUYXNrOjpjYW5jZWwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0
YVRhc2s6OnJlc3VtZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFzazo6c3VzcGVu
ZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OnRha2VEb3dubG9hZElEKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpOZXR3b3JrRGF0YVRhc2spOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6On5OZXR3b3JrRGF0YVRhc2spOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OnNjaGVkdWxlRmFpbHVy
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFzazo6ZmFpbHVyZVRp
bWVyRmlyZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OnRy
eVBhc3N3b3JkQmFzZWRBdXRoZW50aWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtEYXRhVGFzazo6Y2FuY2VsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0RhdGFUYXNrOjpyZXN1bWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
RGF0YVRhc2s6OnN1c3BlbmQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKwogMjAxNi0wMi0wNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJp
c3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIENsZWFuIHVwIEJsb2IgY29kZQpJbmRleDog
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmgJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRh
c2suaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzOSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgTmV0d29ya0RhdGFUYXNrX2gKKyNkZWZpbmUgTmV0d29ya0RhdGFUYXNrX2gKKworI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VIYW5kbGVUeXBlcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KKyNpbmNsdWRlIDx3
dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKKyNpZiBQ
TEFURk9STShDT0NPQSkKK09CSkNfQ0xBU1MgTlNVUkxTZXNzaW9uRGF0YVRhc2s7CisjZW5kaWYK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7Citj
bGFzcyBDcmVkZW50aWFsOworY2xhc3MgUmVzb3VyY2VFcnJvcjsKK2NsYXNzIFJlc291cmNlUmVx
dWVzdDsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBTaGFyZWRCdWZmZXI7Cit9CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBOZXR3b3JrU2Vzc2lvbjsKK2NsYXNzIFBlbmRp
bmdEb3dubG9hZDsKKworZW51bSBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0
aW9uIHsKKyAgICBVc2VDcmVkZW50aWFsLAorICAgIFBlcmZvcm1EZWZhdWx0SGFuZGxpbmcsCisg
ICAgQ2FuY2VsLAorICAgIFJlamVjdFByb3RlY3Rpb25TcGFjZQorfTsKKyAgICAKK3R5cGVkZWYg
c3RkOjpmdW5jdGlvbjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpPiBSZWRp
cmVjdENvbXBsZXRpb25IYW5kbGVyOwordHlwZWRlZiBzdGQ6OmZ1bmN0aW9uPHZvaWQoQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYp
PiBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlcjsKK3R5cGVkZWYgc3RkOjpmdW5jdGlvbjx2b2lk
KFdlYkNvcmU6OlBvbGljeUFjdGlvbik+IFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXI7CisKK2Ns
YXNzIE5ldHdvcmtEYXRhVGFza0NsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHdp
bGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBSZWRpcmVjdENvbXBsZXRpb25IYW5k
bGVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVDaGFsbGVuZ2UoY29uc3QgV2Vi
Q29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxl
cikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXIpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZl
cj4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVdpdGhFcnJvcihjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRCZWNvbWVE
b3dubG9hZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU2VuZERhdGEodWludDY0X3QgdG90
YWxCeXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNFeHBlY3RlZFRvU2VuZCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCB3YXNCbG9ja2VkKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjYW5ub3RT
aG93VVJMKCkgPSAwOworICAgIAorICAgIHZpcnR1YWwgfk5ldHdvcmtEYXRhVGFza0NsaWVudCgp
IHsgfQorfTsKKworY2xhc3MgTmV0d29ya0RhdGFUYXNrIDogcHVibGljIFJlZkNvdW50ZWQ8TmV0
d29ya0RhdGFUYXNrPiB7CisgICAgZnJpZW5kIGNsYXNzIE5ldHdvcmtTZXNzaW9uOworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24m
IHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzIHN0b3Jl
ZENyZWRlbnRpYWxzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29y
a0RhdGFUYXNrKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHMpKTsK
KyAgICB9CisgICAgCisgICAgdm9pZCBzdXNwZW5kKCk7CisgICAgdm9pZCBjYW5jZWwoKTsKKyAg
ICB2b2lkIHJlc3VtZSgpOworICAgIAorICAgIHR5cGVkZWYgdWludDY0X3QgVGFza0lkZW50aWZp
ZXI7CisgICAgVGFza0lkZW50aWZpZXIgdGFza0lkZW50aWZpZXIoKTsKKyAgICAKKyAgICB+TmV0
d29ya0RhdGFUYXNrKCk7CisgICAgCisgICAgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQo
KSB7IHJldHVybiBtX2NsaWVudDsgfQorICAgIAorICAgIERvd25sb2FkSUQgcGVuZGluZ0Rvd25s
b2FkSUQoKSB7IHJldHVybiBtX3BlbmRpbmdEb3dubG9hZElEOyB9CisgICAgUGVuZGluZ0Rvd25s
b2FkKiBwZW5kaW5nRG93bmxvYWQoKSB7IHJldHVybiBtX3BlbmRpbmdEb3dubG9hZDsgfQorICAg
IHZvaWQgc2V0UGVuZGluZ0Rvd25sb2FkSUQoRG93bmxvYWRJRCBkb3dubG9hZElEKQorICAgIHsK
KyAgICAgICAgQVNTRVJUKCFtX3BlbmRpbmdEb3dubG9hZElELmRvd25sb2FkSUQoKSk7CisgICAg
ICAgIEFTU0VSVChkb3dubG9hZElELmRvd25sb2FkSUQoKSk7CisgICAgICAgIG1fcGVuZGluZ0Rv
d25sb2FkSUQgPSBkb3dubG9hZElEOworICAgIH0KKyAgICB2b2lkIHNldFBlbmRpbmdEb3dubG9h
ZChQZW5kaW5nRG93bmxvYWQmIHBlbmRpbmdEb3dubG9hZCkKKyAgICB7CisgICAgICAgIEFTU0VS
VCghbV9wZW5kaW5nRG93bmxvYWQpOworICAgICAgICBtX3BlbmRpbmdEb3dubG9hZCA9ICZwZW5k
aW5nRG93bmxvYWQ7CisgICAgfQorICAgIGJvb2wgdHJ5UGFzc3dvcmRCYXNlZEF1dGhlbnRpY2F0
aW9uKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29t
cGxldGlvbkhhbmRsZXIpOworICAgIAorcHJpdmF0ZToKKyAgICBOZXR3b3JrRGF0YVRhc2soTmV0
d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscyk7CisgICAgCisgICAgZW51
bSBGYWlsdXJlVHlwZSB7CisgICAgICAgIE5vRmFpbHVyZSwKKyAgICAgICAgQmxvY2tlZEZhaWx1
cmUsCisgICAgICAgIEludmFsaWRVUkxGYWlsdXJlCisgICAgfTsKKyAgICBGYWlsdXJlVHlwZSBt
X3NjaGVkdWxlZEZhaWx1cmVUeXBlIHsgTm9GYWlsdXJlIH07CisgICAgV2ViQ29yZTo6VGltZXIg
bV9mYWlsdXJlVGltZXI7CisgICAgdm9pZCBmYWlsdXJlVGltZXJGaXJlZCgpOworICAgIHZvaWQg
c2NoZWR1bGVGYWlsdXJlKEZhaWx1cmVUeXBlKTsKKyAgICAKKyAgICBOZXR3b3JrU2Vzc2lvbiYg
bV9zZXNzaW9uOworICAgIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgbV9jbGllbnQ7CisgICAgUGVu
ZGluZ0Rvd25sb2FkKiBtX3BlbmRpbmdEb3dubG9hZCB7IG51bGxwdHIgfTsKKyAgICBEb3dubG9h
ZElEIG1fcGVuZGluZ0Rvd25sb2FkSUQ7CisgICAgU3RyaW5nIG1fdXNlcjsKKyAgICBTdHJpbmcg
bV9wYXNzd29yZDsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBSZXRhaW5QdHI8TlNVUkxTZXNz
aW9uRGF0YVRhc2s+IG1fdGFzazsKKyNlbmRpZgorfTsKKworfQorCisjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaAkocmV2aXNpb24gMTk2
MTAxKQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaAkod29y
a2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3Mg
TmV0d29ya0xvYWQKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQotICAgIDogcHVibGljIE5ldHdv
cmtTZXNzaW9uVGFza0NsaWVudAorICAgIDogcHVibGljIE5ldHdvcmtEYXRhVGFza0NsaWVudAog
I2Vsc2UKICAgICA6IHB1YmxpYyBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNsaWVudAogI2VuZGlm
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
LmgJKHJldmlzaW9uIDE5NjEwMSkKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEyMSArMjgsMTkgQEAKIAogI2lm
IFBMQVRGT1JNKENPQ09BKQogT0JKQ19DTEFTUyBOU1VSTFNlc3Npb247Ci1PQkpDX0NMQVNTIE5T
VVJMU2Vzc2lvbkRhdGFUYXNrOwogT0JKQ19DTEFTUyBOU09wZXJhdGlvblF1ZXVlOwogT0JKQ19D
TEFTUyBXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGU7CiAjZW5kaWYKIAogI2luY2x1ZGUgIkRvd25s
b2FkSUQuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlVHlwZXMuaD4KKyNpbmNsdWRlICJOZXR3b3JrRGF0YVRh
c2suaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
VGltZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
LSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsK
LWNsYXNzIENyZWRlbnRpYWw7Ci1jbGFzcyBSZXNvdXJjZUVycm9yOwotY2xhc3MgUmVzb3VyY2VS
ZXF1ZXN0OwotY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLWNsYXNzIFNoYXJlZEJ1ZmZlcjsKLX0K
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWVudW0gY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VEaXNwb3NpdGlvbiB7Ci0gICAgVXNlQ3JlZGVudGlhbCwKLSAgICBQZXJmb3JtRGVmYXVsdEhh
bmRsaW5nLAotICAgIENhbmNlbCwKLSAgICBSZWplY3RQcm90ZWN0aW9uU3BhY2UKLX07Ci0KLWNs
YXNzIE5ldHdvcmtTZXNzaW9uOwotY2xhc3MgUGVuZGluZ0Rvd25sb2FkOwotCi10eXBlZGVmIHN0
ZDo6ZnVuY3Rpb248dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKT4gUmVkaXJl
Y3RDb21wbGV0aW9uSGFuZGxlcjsKLXR5cGVkZWYgc3RkOjpmdW5jdGlvbjx2b2lkKEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkNyZWRlbnRpYWwmKT4g
Q2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXI7Ci10eXBlZGVmIHN0ZDo6ZnVuY3Rpb248dm9pZChX
ZWJDb3JlOjpQb2xpY3lBY3Rpb24pPiBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyOwotCi1jbGFz
cyBOZXR3b3JrU2Vzc2lvblRhc2tDbGllbnQgewotcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCB3
aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgUmVkaXJlY3RDb21wbGV0aW9uSGFu
ZGxlcikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQ2hhbGxlbmdlKGNvbnN0IFdl
YkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRs
ZXIpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmLCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZm
ZXI+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVXaXRoRXJyb3IoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQmVjb21l
RG93bmxvYWQoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFNlbmREYXRhKHVpbnQ2NF90IHRv
dGFsQnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1NlbmQpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgd2FzQmxvY2tlZCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY2Fubm90
U2hvd1VSTCgpID0gMDsKLQotICAgIHZpcnR1YWwgfk5ldHdvcmtTZXNzaW9uVGFza0NsaWVudCgp
IHsgfQotfTsKLQotY2xhc3MgTmV0d29ya0RhdGFUYXNrIDogcHVibGljIFJlZkNvdW50ZWQ8TmV0
d29ya0RhdGFUYXNrPiB7Ci0gICAgZnJpZW5kIGNsYXNzIE5ldHdvcmtTZXNzaW9uOwotcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24m
IHNlc3Npb24sIE5ldHdvcmtTZXNzaW9uVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzIHN0
b3JlZENyZWRlbnRpYWxzKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0
d29ya0RhdGFUYXNrKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHMp
KTsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCBzdXNwZW5kKCk7Ci0gICAgdm9pZCBjYW5jZWwoKTsK
LSAgICB2b2lkIHJlc3VtZSgpOwotCi0gICAgdHlwZWRlZiB1aW50NjRfdCBUYXNrSWRlbnRpZmll
cjsKLSAgICBUYXNrSWRlbnRpZmllciB0YXNrSWRlbnRpZmllcigpOwotCi0gICAgfk5ldHdvcmtE
YXRhVGFzaygpOwotCi0gICAgTmV0d29ya1Nlc3Npb25UYXNrQ2xpZW50JiBjbGllbnQoKSB7IHJl
dHVybiBtX2NsaWVudDsgfQotCi0gICAgRG93bmxvYWRJRCBwZW5kaW5nRG93bmxvYWRJRCgpIHsg
cmV0dXJuIG1fcGVuZGluZ0Rvd25sb2FkSUQ7IH0KLSAgICBQZW5kaW5nRG93bmxvYWQqIHBlbmRp
bmdEb3dubG9hZCgpIHsgcmV0dXJuIG1fcGVuZGluZ0Rvd25sb2FkOyB9Ci0gICAgdm9pZCBzZXRQ
ZW5kaW5nRG93bmxvYWRJRChEb3dubG9hZElEIGRvd25sb2FkSUQpCi0gICAgewotICAgICAgICBB
U1NFUlQoIW1fcGVuZGluZ0Rvd25sb2FkSUQuZG93bmxvYWRJRCgpKTsKLSAgICAgICAgQVNTRVJU
KGRvd25sb2FkSUQuZG93bmxvYWRJRCgpKTsKLSAgICAgICAgbV9wZW5kaW5nRG93bmxvYWRJRCA9
IGRvd25sb2FkSUQ7Ci0gICAgfQotICAgIHZvaWQgc2V0UGVuZGluZ0Rvd25sb2FkKFBlbmRpbmdE
b3dubG9hZCYgcGVuZGluZ0Rvd25sb2FkKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX3BlbmRp
bmdEb3dubG9hZCk7Ci0gICAgICAgIG1fcGVuZGluZ0Rvd25sb2FkID0gJnBlbmRpbmdEb3dubG9h
ZDsKLSAgICB9Ci0gICAgYm9vbCB0cnlQYXNzd29yZEJhc2VkQXV0aGVudGljYXRpb24oY29uc3Qg
V2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFu
ZGxlcik7Ci0gICAgCi1wcml2YXRlOgotICAgIE5ldHdvcmtEYXRhVGFzayhOZXR3b3JrU2Vzc2lv
biYsIE5ldHdvcmtTZXNzaW9uVGFza0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzKTsKLQotICAgIGVudW0gRmFpbHVyZVR5
cGUgewotICAgICAgICBOb0ZhaWx1cmUsCi0gICAgICAgIEJsb2NrZWRGYWlsdXJlLAotICAgICAg
ICBJbnZhbGlkVVJMRmFpbHVyZQotICAgIH07Ci0gICAgRmFpbHVyZVR5cGUgbV9zY2hlZHVsZWRG
YWlsdXJlVHlwZSB7IE5vRmFpbHVyZSB9OwotICAgIFdlYkNvcmU6OlRpbWVyIG1fZmFpbHVyZVRp
bWVyOwotICAgIHZvaWQgZmFpbHVyZVRpbWVyRmlyZWQoKTsKLSAgICB2b2lkIHNjaGVkdWxlRmFp
bHVyZShGYWlsdXJlVHlwZSk7Ci0gICAgCi0gICAgTmV0d29ya1Nlc3Npb24mIG1fc2Vzc2lvbjsK
LSAgICBOZXR3b3JrU2Vzc2lvblRhc2tDbGllbnQmIG1fY2xpZW50OwotICAgIFBlbmRpbmdEb3du
bG9hZCogbV9wZW5kaW5nRG93bmxvYWQgeyBudWxscHRyIH07Ci0gICAgRG93bmxvYWRJRCBtX3Bl
bmRpbmdEb3dubG9hZElEOwotICAgIFN0cmluZyBtX3VzZXI7Ci0gICAgU3RyaW5nIG1fcGFzc3dv
cmQ7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbkRhdGFU
YXNrPiBtX3Rhc2s7Ci0jZW5kaWYKLX07Ci0KIGNsYXNzIE5ldHdvcmtTZXNzaW9uIHsKICAgICBm
cmllbmQgY2xhc3MgTmV0d29ya0RhdGFUYXNrOwogcHVibGljOgpJbmRleDogU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNr
Q29jb2EubW0JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiTmV0d29ya1Nl
c3Npb24uaCIKKworI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCisKKyNpbXBvcnQgPFdlYkNvcmUv
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXF1
ZXN0Lmg+CisjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworTmV0d29ya0RhdGFUYXNrOjpOZXR3b3JrRGF0YVRhc2soTmV0d29ya1Nlc3Npb24mIHNlc3Np
b24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRp
YWxzIHN0b3JlZENyZWRlbnRpYWxzKQorICAgIDogbV9mYWlsdXJlVGltZXIoKnRoaXMsICZOZXR3
b3JrRGF0YVRhc2s6OmZhaWx1cmVUaW1lckZpcmVkKQorICAgICwgbV9zZXNzaW9uKHNlc3Npb24p
CisgICAgLCBtX2NsaWVudChjbGllbnQpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICAKKyAgICBpZiAoIXJlcXVlc3RXaXRoQ3JlZGVudGlhbHMudXJsKCkuaXNWYWxpZCgpKSB7
CisgICAgICAgIHNjaGVkdWxlRmFpbHVyZShJbnZhbGlkVVJMRmFpbHVyZSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgCisgICAgaWYgKCFwb3J0QWxsb3dlZChyZXF1ZXN0V2l0aENyZWRl
bnRpYWxzLnVybCgpKSkgeworICAgICAgICBzY2hlZHVsZUZhaWx1cmUoQmxvY2tlZEZhaWx1cmUp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGF1dG8gcmVxdWVzdCA9IHJlcXVl
c3RXaXRoQ3JlZGVudGlhbHM7CisgICAgbV91c2VyID0gcmVxdWVzdC51cmwoKS51c2VyKCk7Cisg
ICAgbV9wYXNzd29yZCA9IHJlcXVlc3QudXJsKCkucGFzcygpOworICAgIHJlcXVlc3QucmVtb3Zl
Q3JlZGVudGlhbHMoKTsKKyAgICAKKyAgICBpZiAoc3RvcmVkQ3JlZGVudGlhbHMgPT0gV2ViQ29y
ZTo6QWxsb3dTdG9yZWRDcmVkZW50aWFscykKKyAgICAgICAgbV90YXNrID0gW21fc2Vzc2lvbi5t
X3Nlc3Npb25XaXRoQ3JlZGVudGlhbFN0b3JhZ2UgZGF0YVRhc2tXaXRoUmVxdWVzdDpyZXF1ZXN0
Lm5zVVJMUmVxdWVzdChXZWJDb3JlOjpVcGRhdGVIVFRQQm9keSldOworICAgIGVsc2UKKyAgICAg
ICAgbV90YXNrID0gW21fc2Vzc2lvbi5tX3Nlc3Npb25XaXRob3V0Q3JlZGVudGlhbFN0b3JhZ2Ug
ZGF0YVRhc2tXaXRoUmVxdWVzdDpyZXF1ZXN0Lm5zVVJMUmVxdWVzdChXZWJDb3JlOjpVcGRhdGVI
VFRQQm9keSldOworICAgIAorICAgIEFTU0VSVCghbV9zZXNzaW9uLm1fZGF0YVRhc2tNYXAuY29u
dGFpbnModGFza0lkZW50aWZpZXIoKSkpOworICAgIG1fc2Vzc2lvbi5tX2RhdGFUYXNrTWFwLmFk
ZCh0YXNrSWRlbnRpZmllcigpLCB0aGlzKTsKK30KKworTmV0d29ya0RhdGFUYXNrOjp+TmV0d29y
a0RhdGFUYXNrKCkKK3sKKyAgICBpZiAobV90YXNrKSB7CisgICAgICAgIEFTU0VSVChtX3Nlc3Np
b24ubV9kYXRhVGFza01hcC5jb250YWlucyh0YXNrSWRlbnRpZmllcigpKSk7CisgICAgICAgIEFT
U0VSVChtX3Nlc3Npb24ubV9kYXRhVGFza01hcC5nZXQodGFza0lkZW50aWZpZXIoKSkgPT0gdGhp
cyk7CisgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgICAgIG1fc2Vzc2lvbi5t
X2RhdGFUYXNrTWFwLnJlbW92ZSh0YXNrSWRlbnRpZmllcigpKTsKKyAgICB9Cit9CisKK3ZvaWQg
TmV0d29ya0RhdGFUYXNrOjpzY2hlZHVsZUZhaWx1cmUoRmFpbHVyZVR5cGUgdHlwZSkKK3sKKyAg
ICBBU1NFUlQodHlwZSAhPSBOb0ZhaWx1cmUpOworICAgIG1fc2NoZWR1bGVkRmFpbHVyZVR5cGUg
PSB0eXBlOworICAgIG1fZmFpbHVyZVRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwordm9pZCBO
ZXR3b3JrRGF0YVRhc2s6OmZhaWx1cmVUaW1lckZpcmVkKCkKK3sKKyAgICBSZWZQdHI8TmV0d29y
a0RhdGFUYXNrPiBwcm90ZWN0KHRoaXMpOworICAgIAorICAgIHN3aXRjaCAobV9zY2hlZHVsZWRG
YWlsdXJlVHlwZSkgeworICAgIGNhc2UgQmxvY2tlZEZhaWx1cmU6CisgICAgICAgIG1fc2NoZWR1
bGVkRmFpbHVyZVR5cGUgPSBOb0ZhaWx1cmU7CisgICAgICAgIGNsaWVudCgpLndhc0Jsb2NrZWQo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSW52YWxpZFVSTEZhaWx1cmU6CisgICAgICAg
IG1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgPSBOb0ZhaWx1cmU7CisgICAgICAgIGNsaWVudCgpLmNh
bm5vdFNob3dVUkwoKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgTm9GYWlsdXJlOgorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitib29sIE5ldHdvcmtEYXRhVGFzazo6dHJ5UGFzc3dv
cmRCYXNlZEF1dGhlbnRpY2F0aW9uKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJiBjaGFsbGVuZ2UsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIGlmICghY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmlzUGFzc3dvcmRC
YXNlZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKCFtX3VzZXIuaXNO
dWxsKCkgJiYgIW1fcGFzc3dvcmQuaXNOdWxsKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6VXNlQ3JlZGVudGlhbCwgV2Vi
Q29yZTo6Q3JlZGVudGlhbChtX3VzZXIsIG1fcGFzc3dvcmQsIFdlYkNvcmU6OkNyZWRlbnRpYWxQ
ZXJzaXN0ZW5jZUZvclNlc3Npb24pKTsKKyAgICAgICAgbV91c2VyID0gU3RyaW5nKCk7CisgICAg
ICAgIG1fcGFzc3dvcmQgPSBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
ICAgIAorICAgIGlmICghY2hhbGxlbmdlLnByb3Bvc2VkQ3JlZGVudGlhbCgpLmlzRW1wdHkoKSAm
JiAhY2hhbGxlbmdlLnByZXZpb3VzRmFpbHVyZUNvdW50KCkpIHsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6VXNlQ3JlZGVudGlh
bCwgY2hhbGxlbmdlLnByb3Bvc2VkQ3JlZGVudGlhbCgpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorICAgIAorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBOZXR3b3JrRGF0YVRh
c2s6OmNhbmNlbCgpCit7CisgICAgW21fdGFzayBjYW5jZWxdOworfQorCit2b2lkIE5ldHdvcmtE
YXRhVGFzazo6cmVzdW1lKCkKK3sKKyAgICBpZiAobV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBO
b0ZhaWx1cmUpCisgICAgICAgIG1fZmFpbHVyZVRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKKyAgICBb
bV90YXNrIHJlc3VtZV07Cit9CisKK3ZvaWQgTmV0d29ya0RhdGFUYXNrOjpzdXNwZW5kKCkKK3sK
KyAgICBpZiAobV9mYWlsdXJlVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9mYWlsdXJlVGlt
ZXIuc3RvcCgpOworICAgIFttX3Rhc2sgc3VzcGVuZF07Cit9CisKK2F1dG8gTmV0d29ya0RhdGFU
YXNrOjp0YXNrSWRlbnRpZmllcigpIC0+IFRhc2tJZGVudGlmaWVyCit7CisgICAgcmV0dXJuIFtt
X3Rhc2sgdGFza0lkZW50aWZpZXJdOworfQorfQorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25D
b2NvYS5tbQkocmV2aXNpb24gMTk2MTAxKQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzQsNyAr
MzQsNiBAQAogI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbXBvcnQgIlNlc3Npb25UcmFj
a2VyLmgiCiAjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJMU2Vzc2lvbi5oPgotI2ltcG9ydCA8V2Vi
Q29yZS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9DRk5ldHdv
cmtTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ3JlZGVudGlhbC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9GcmFtZUxvYWRlclR5cGVzLmg+CkBAIC0yNzQsMTE4ICsyNzMsNiBAQCBEb3dubG9hZElEIE5l
dHdvcmtTZXNzaW9uOjp0YWtlRG93bmxvYWRJCiAgICAgcmV0dXJuIGRvd25sb2FkSUQ7CiB9CiAK
LU5ldHdvcmtEYXRhVGFzazo6TmV0d29ya0RhdGFUYXNrKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9u
LCBOZXR3b3JrU2Vzc2lvblRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50
aWFscyBzdG9yZWRDcmVkZW50aWFscykKLSAgICA6IG1fZmFpbHVyZVRpbWVyKCp0aGlzLCAmTmV0
d29ya0RhdGFUYXNrOjpmYWlsdXJlVGltZXJGaXJlZCkKLSAgICAsIG1fc2Vzc2lvbihzZXNzaW9u
KQotICAgICwgbV9jbGllbnQoY2xpZW50KQotewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
Ci0KLSAgICBpZiAoIXJlcXVlc3RXaXRoQ3JlZGVudGlhbHMudXJsKCkuaXNWYWxpZCgpKSB7Ci0g
ICAgICAgIHNjaGVkdWxlRmFpbHVyZShJbnZhbGlkVVJMRmFpbHVyZSk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0gICAgCi0gICAgaWYgKCFwb3J0QWxsb3dlZChyZXF1ZXN0V2l0aENyZWRlbnRp
YWxzLnVybCgpKSkgewotICAgICAgICBzY2hlZHVsZUZhaWx1cmUoQmxvY2tlZEZhaWx1cmUpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIAotICAgIGF1dG8gcmVxdWVzdCA9IHJlcXVlc3RX
aXRoQ3JlZGVudGlhbHM7Ci0gICAgbV91c2VyID0gcmVxdWVzdC51cmwoKS51c2VyKCk7Ci0gICAg
bV9wYXNzd29yZCA9IHJlcXVlc3QudXJsKCkucGFzcygpOwotICAgIHJlcXVlc3QucmVtb3ZlQ3Jl
ZGVudGlhbHMoKTsKLQotICAgIGlmIChzdG9yZWRDcmVkZW50aWFscyA9PSBXZWJDb3JlOjpBbGxv
d1N0b3JlZENyZWRlbnRpYWxzKQotICAgICAgICBtX3Rhc2sgPSBbbV9zZXNzaW9uLm1fc2Vzc2lv
bldpdGhDcmVkZW50aWFsU3RvcmFnZSBkYXRhVGFza1dpdGhSZXF1ZXN0OnJlcXVlc3QubnNVUkxS
ZXF1ZXN0KFdlYkNvcmU6OlVwZGF0ZUhUVFBCb2R5KV07Ci0gICAgZWxzZQotICAgICAgICBtX3Rh
c2sgPSBbbV9zZXNzaW9uLm1fc2Vzc2lvbldpdGhvdXRDcmVkZW50aWFsU3RvcmFnZSBkYXRhVGFz
a1dpdGhSZXF1ZXN0OnJlcXVlc3QubnNVUkxSZXF1ZXN0KFdlYkNvcmU6OlVwZGF0ZUhUVFBCb2R5
KV07Ci0gICAgCi0gICAgQVNTRVJUKCFtX3Nlc3Npb24ubV9kYXRhVGFza01hcC5jb250YWlucyh0
YXNrSWRlbnRpZmllcigpKSk7Ci0gICAgbV9zZXNzaW9uLm1fZGF0YVRhc2tNYXAuYWRkKHRhc2tJ
ZGVudGlmaWVyKCksIHRoaXMpOwotfQotCi1OZXR3b3JrRGF0YVRhc2s6On5OZXR3b3JrRGF0YVRh
c2soKQotewotICAgIGlmIChtX3Rhc2spIHsKLSAgICAgICAgQVNTRVJUKG1fc2Vzc2lvbi5tX2Rh
dGFUYXNrTWFwLmNvbnRhaW5zKHRhc2tJZGVudGlmaWVyKCkpKTsKLSAgICAgICAgQVNTRVJUKG1f
c2Vzc2lvbi5tX2RhdGFUYXNrTWFwLmdldCh0YXNrSWRlbnRpZmllcigpKSA9PSB0aGlzKTsKLSAg
ICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICAgICAgbV9zZXNzaW9uLm1fZGF0YVRh
c2tNYXAucmVtb3ZlKHRhc2tJZGVudGlmaWVyKCkpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3Jr
RGF0YVRhc2s6OnNjaGVkdWxlRmFpbHVyZShGYWlsdXJlVHlwZSB0eXBlKQotewotICAgIEFTU0VS
VCh0eXBlICE9IE5vRmFpbHVyZSk7Ci0gICAgbV9zY2hlZHVsZWRGYWlsdXJlVHlwZSA9IHR5cGU7
Ci0gICAgbV9mYWlsdXJlVGltZXIuc3RhcnRPbmVTaG90KDApOwotfQotCi12b2lkIE5ldHdvcmtE
YXRhVGFzazo6ZmFpbHVyZVRpbWVyRmlyZWQoKQotewotICAgIFJlZlB0cjxOZXR3b3JrRGF0YVRh
c2s+IHByb3RlY3QodGhpcyk7Ci0KLSAgICBzd2l0Y2ggKG1fc2NoZWR1bGVkRmFpbHVyZVR5cGUp
IHsKLSAgICBjYXNlIEJsb2NrZWRGYWlsdXJlOgotICAgICAgICBtX3NjaGVkdWxlZEZhaWx1cmVU
eXBlID0gTm9GYWlsdXJlOwotICAgICAgICBjbGllbnQoKS53YXNCbG9ja2VkKCk7Ci0gICAgICAg
IHJldHVybjsKLSAgICBjYXNlIEludmFsaWRVUkxGYWlsdXJlOgotICAgICAgICBtX3NjaGVkdWxl
ZEZhaWx1cmVUeXBlID0gTm9GYWlsdXJlOwotICAgICAgICBjbGllbnQoKS5jYW5ub3RTaG93VVJM
KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIE5vRmFpbHVyZToKLSAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLX0KLQotYm9vbCBOZXR3b3JrRGF0YVRhc2s6OnRyeVBhc3N3b3JkQmFzZWRBdXRo
ZW50aWNhdGlvbihjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxl
bmdlLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAg
ICBpZiAoIWNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5pc1Bhc3N3b3JkQmFzZWQoKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFtX3VzZXIuaXNOdWxsKCkgJiYgIW1fcGFz
c3dvcmQuaXNOdWxsKCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6VXNlQ3JlZGVudGlhbCwgV2ViQ29yZTo6Q3JlZGVudGlh
bChtX3VzZXIsIG1fcGFzc3dvcmQsIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNl
c3Npb24pKTsKLSAgICAgICAgbV91c2VyID0gU3RyaW5nKCk7Ci0gICAgICAgIG1fcGFzc3dvcmQg
PSBTdHJpbmcoKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIAotICAgIGlmICgh
Y2hhbGxlbmdlLnByb3Bvc2VkQ3JlZGVudGlhbCgpLmlzRW1wdHkoKSAmJiAhY2hhbGxlbmdlLnBy
ZXZpb3VzRmFpbHVyZUNvdW50KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6VXNlQ3JlZGVudGlhbCwgY2hhbGxlbmdlLnBy
b3Bvc2VkQ3JlZGVudGlhbCgpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAg
cmV0dXJuIGZhbHNlOwotfQotICAgIAotdm9pZCBOZXR3b3JrRGF0YVRhc2s6OmNhbmNlbCgpCi17
Ci0gICAgW21fdGFzayBjYW5jZWxdOwotfQotCi12b2lkIE5ldHdvcmtEYXRhVGFzazo6cmVzdW1l
KCkKLXsKLSAgICBpZiAobV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpCi0gICAg
ICAgIG1fZmFpbHVyZVRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKLSAgICBbbV90YXNrIHJlc3VtZV07
Ci19Ci0KLXZvaWQgTmV0d29ya0RhdGFUYXNrOjpzdXNwZW5kKCkKLXsKLSAgICBpZiAobV9mYWls
dXJlVGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgbV9mYWlsdXJlVGltZXIuc3RvcCgpOwotICAg
IFttX3Rhc2sgc3VzcGVuZF07Ci19Ci0gICAgCi1hdXRvIE5ldHdvcmtEYXRhVGFzazo6dGFza0lk
ZW50aWZpZXIoKSAtPiBUYXNrSWRlbnRpZmllcgotewotICAgIHJldHVybiBbbV90YXNrIHRhc2tJ
ZGVudGlmaWVyXTsKLX0KLQogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE5NjA5MykKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMTA2NCw2ICsxMDY0LDggQEAKIAkJNUMyMENCQTAxQkIxRUNEODAwODk1QkIx
IC8qIE5ldHdvcmtTZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1QzIwQ0I5RTFCQjBERDE4MDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb24uaCAq
LzsgfTsKIAkJNUMyOThEQTAxQzNERjAyMTAwNDcwQUZFIC8qIFBlbmRpbmdEb3dubG9hZC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMyOThEOUUxQzNE
RUYyOTAwNDcwQUZFIC8qIFBlbmRpbmdEb3dubG9hZC5oICovOyB9OwogCQk1Qzg1Qzc4ODFDM0Yy
M0NFMDA2MUE0RkEgLyogUGVuZGluZ0Rvd25sb2FkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDODVDNzg2MUMzRjIzQzUwMDYxQTRGQSAvKiBQZW5k
aW5nRG93bmxvYWQuY3BwICovOyB9OworCQk1Q0JDOUI4QTFDNjUyNEE1MDBBOEZEQ0YgLyogTmV0
d29ya0RhdGFUYXNrLmggaW4gQ29weSBGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1Q0JDOUI4OTFDNjUyNEE1MDBBOEZEQ0YgLyogTmV0d29ya0RhdGFUYXNrLmggKi87
IH07CisJCTVDQkM5QjhEMUM2NTI3OUMwMEE4RkRDRiAvKiBOZXR3b3JrRGF0YVRhc2tDb2NvYS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDQkM5QjhC
MUM2NTI1NzMwMEE4RkRDRiAvKiBOZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSAqLzsgfTsKIAkJNURB
NkVEMEExNDkwNjA2OTAwQjQxRDEyIC8qIER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNURBNkVE
MDgxNDkwNjA2OTAwQjQxRDEyIC8qIER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5o
ICovOyB9OwogCQk1REE2RUQwQjE0OTA2MDY5MDBCNDFEMTIgLyogRHluYW1pY0xpbmtlckVudmly
b25tZW50RXh0cmFjdG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNURBNkVEMDkxNDkwNjA2OTAwQjQxRDEyIC8qIER5bmFtaWNMaW5rZXJFbnZpcm9u
bWVudEV4dHJhY3Rvci5tbSAqLzsgfTsKIAkJNjUwMUJEMUExMkYxMjQzNDAwRTlGMjQ4IC8qIFdL
QnVuZGxlSW5zcGVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDY1Qjg2RjE3MTJGMTFEN0IwMEI3REQ4QSAvKiBXS0J1bmRsZUluc3BlY3Rvci5j
cHAgKi87IH07CkBAIC0yMDA2LDYgKzIwMDgsNyBAQAogCQkJZHN0UGF0aCA9ICJXZWJLaXQuZnJh
bWV3b3JrLyQoRlJBTUVXT1JLX0NPTlRFTlRfRElSRUNUT1JZKSI7CiAJCQlkc3RTdWJmb2xkZXJT
cGVjID0gMTsKIAkJCWZpbGVzID0gKAorCQkJCTVDQkM5QjhBMUM2NTI0QTUwMEE4RkRDRiAvKiBO
ZXR3b3JrRGF0YVRhc2suaCBpbiBDb3B5IEZpbGVzICovLAogCQkJCTUxQTYwQjJBMTgwQ0NFQjUw
MEYzQkY1MCAvKiBEYXRhYmFzZVByb2Nlc3MuYXBwIGluIENvcHkgRmlsZXMgKi8sCiAJCQkJNTEw
Q0M4NDkxNjEzQzg1QzAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzLmFwcCBpbiBDb3B5IEZpbGVz
ICovLAogCQkJCUJDREUwQUJGMTMyNzI3MDgwMDEyNTlGQiAvKiBQbHVnaW5Qcm9jZXNzLmFwcCBp
biBDb3B5IEZpbGVzICovLApAQCAtMzE2OSw2ICszMTcyLDggQEAKIAkJNUMyMENCOUUxQkIwREQx
ODAwODk1QkIxIC8qIE5ldHdvcmtTZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IE5ldHdvcmtTZXNzaW9uLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzI5OEQ5RTFDM0RFRjI5MDA0
NzBBRkUgLyogUGVuZGluZ0Rvd25sb2FkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFBlbmRpbmdEb3dubG9hZC5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL1Bl
bmRpbmdEb3dubG9hZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Qzg1Qzc4NjFD
M0YyM0M1MDA2MUE0RkEgLyogUGVuZGluZ0Rvd25sb2FkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFBlbmRpbmdEb3dubG9hZC5jcHA7IHBhdGggPSBOZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvUGVuZGluZ0Rvd25sb2FkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNUNCQzlCODkxQzY1MjRBNTAwQThGRENGIC8qIE5ldHdvcmtEYXRhVGFzay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrRGF0YVRhc2suaDsgcGF0aCA9
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1Q0JDOUI4QjFDNjUyNTczMDBBOEZEQ0YgLyogTmV0d29ya0RhdGFUYXNrQ29jb2Eu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBOZXR3b3JrRGF0YVRh
c2tDb2NvYS5tbTsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0Nv
Y29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDQ0MkE1NTE2RDU4NTY3MDBB
QzMzMzEgLyogUGx1Z2luU2VydmljZS5lbnRpdGxlbWVudHMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhtbDsgcGF0aCA9IFBsdWdpblNlcnZp
Y2UuZW50aXRsZW1lbnRzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1REE2RUQwODE0
OTA2MDY5MDBCNDFEMTIgLyogRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4
dHJhY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1REE2RUQwOTE0OTA2MDY5
MDBCNDFEMTIgLyogRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHluYW1pY0xpbmtlckVudmlyb25tZW50
RXh0cmFjdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTM3MSw2ICs1Mzc2
LDcgQEAKIAkJNTEwQ0M3REExNjEzOEUwMTAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1Q0JDOUI4OTFDNjUy
NEE1MDBBOEZEQ0YgLyogTmV0d29ya0RhdGFUYXNrLmggKi8sCiAJCQkJNUMxNDI2RjIxQzIzRjgy
RDAwRDQxMTgzIC8qIEN1c3RvbVByb3RvY29scyAqLywKIAkJCQk1QzE0MjZGMTFDMjNGODE3MDBE
NDExODMgLyogRG93bmxvYWRzICovLAogCQkJCTVDMTQyNkUyMUMyM0Y4MDUwMEQ0MTE4MyAvKiBO
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8sCkBAIC01NzY0LDYgKzU3NzAs
NyBAQAogCQk3RUM0RjBGODE4RTRBOTIyMDA4MDU2QUYgLyogY29jb2EgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTVDQkM5QjhCMUM2NTI1NzMwMEE4RkRD
RiAvKiBOZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSAqLywKIAkJCQk3RUM0RjBGOTE4RTRBOTQ1MDA4
MDU2QUYgLyogTmV0d29ya1Byb2Nlc3NDb2NvYS5tbSAqLywKIAkJCQk1QzIwQ0I5QjFCQjBEQ0Qy
MDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb25Db2NvYS5tbSAqLywKIAkJCSk7CkBAIC05MjgzLDYg
KzkyOTAsNyBAQAogCQkJCTFBMEVDOTEwMTI0QzBBRjUwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3ODY1QjkxNkNBQzcx
NTAwQUNFODNBIC8qIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJCQjZEMDE0MTE3QjREMDAwRjM1RDQgLyogUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJNUNCQzlCOEQxQzY1Mjc5QzAwQThGRENGIC8qIE5ldHdvcmtEYXRhVGFza0NvY29hLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUEyRDkwRDMxMjgxQzk2NjAwMUVCOTYyIC8qIFBsdWdpblByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBNDc5MjMxMkE1
OUZEOTAwODIzNkMzIC8qIFBsdWdpblByb2Nlc3NNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlC
QzgyODM4QzE2QjQ1RjA3MDBBMjc4RkUgLyogUGx1Z2luUHJvY2Vzc01haW4ubW0gaW4gU291cmNl
cyAqLywK
</data>
<flag name="review"
          id="295591"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>