<?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>8802</bug_id>
          
          <creation_ts>2006-05-08 23:54:51 -0700</creation_ts>
          <short_desc>WebKit should not save WebResource for every URL loaded</short_desc>
          <delta_ts>2006-05-09 00:19:05 -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>Page Loading</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>41585</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-05-08 23:54:51 -0700</bug_when>
    <thetext>WebKit should not save a WebResource for every URL loaded. Instead it can construct them on the fly when needed from the WebCore cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41586</commentid>
    <comment_count>1</comment_count>
      <attachid>8180</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-05-08 23:56:12 -0700</bug_when>
    <thetext>Created attachment 8180
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41591</commentid>
    <comment_count>2</comment_count>
      <attachid>8180</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2006-05-09 00:15:00 -0700</bug_when>
    <thetext>Comment on attachment 8180
patch

r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8180</attachid>
            <date>2006-05-08 23:56:12 -0700</date>
            <delta_ts>2006-05-09 00:15:00 -0700</delta_ts>
            <desc>patch</desc>
            <filename>webresource-cleanup.patch.txt</filename>
            <type>text/plain</type>
            <size>25159</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNDI1MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMDYtMDUtMDggIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAt
IHJlZmFjdG9yIHRoaW5ncyBzbyB0aGF0IFdlYktpdCBkb2Vzbid0IHNhdmUgYSBXZWJSZXNvdXJj
ZSBmb3IgZXZlcnkgbG9hZGVkIFVSTCwKKyAgICAgICAgYnV0IHJhdGhlciByZXRyaWV2ZXMgdGhl
IGRhdGEgZnJvbSB0aGUgV2ViQ29yZSBjYWNoZSBhcyBuZWVkZWQuCisKKyAgICAgICAgKiBicmlk
Z2UvbWFjL1dlYkNvcmVGcmFtZUJyaWRnZS5oOgorICAgICAgICAqIGJyaWRnZS9tYWMvV2ViQ29y
ZUZyYW1lQnJpZGdlLm1tOgorICAgICAgICAoLVtXZWJDb3JlRnJhbWVCcmlkZ2UgZ2V0RGF0YTph
bmRSZXNwb25zZTpmb3JVUkw6XSk6CisgICAgICAgICgtW1dlYkNvcmVGcmFtZUJyaWRnZSBnZXRB
bGxSZXNvdXJjZURhdGFzOmFuZFJlc3BvbnNlczpdKToKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGU6OnVwZGF0ZUNhY2hlU3RhdHVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlOjpyZXF1ZXN0SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGU6OnJlcXVlc3RTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlOjpyZXF1ZXN0
U2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlOjpyZXF1ZXN0WFNMU3R5bGVTaGVldCk6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZTo6cmVxdWVzdFhCTERvY3VtZW50KToKKyAgICAgICAg
KiBsb2FkZXIvQ2FjaGUuaDoKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkUmVzb3VyY2UuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkUmVzb3VyY2UuaDogQWRkZWQuCisgICAgICAg
ICogbG9hZGVyL0NhY2hlZFJlc291cmNlQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGxvYWRl
ci9DYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlci5jcHA6IEFkZGVkLgorICAgICAgICAqIGxvYWRl
ci9DYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlci5oOiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIv
RG9jTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY0xvYWRlcjo6c2V0QXV0b2xvYWRJ
bWFnZXMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jTG9hZGVyOjpyZW1vdmVDYWNoZWRPYmplY3Qp
OgorICAgICAgICAqIGxvYWRlci9Eb2NMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY0xv
YWRlcjo6Y2FjaGVkT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY0xvYWRlcjo6YWxsQ2Fj
aGVkT2JqZWN0cyk6CisKIDIwMDYtMDUtMDggIExldmkgV2VpbnRyYXViICA8bHdlaW50cmF1YkBh
cHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkganVzdGluLgpJbmRleDogV2ViQ29yZS9i
cmlkZ2UvbWFjL1dlYkNvcmVGcmFtZUJyaWRnZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jy
aWRnZS9tYWMvV2ViQ29yZUZyYW1lQnJpZGdlLm1tCShyZXZpc2lvbiAxNDI0OSkKKysrIFdlYkNv
cmUvYnJpZGdlL21hYy9XZWJDb3JlRnJhbWVCcmlkZ2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTI5
LDYgKzI5LDcgQEAKIAogI2ltcG9ydCAiQ2FjaGUuaCIKICNpbXBvcnQgIkRPTUludGVybmFsLmgi
CisjaW1wb3J0ICJEb2NMb2FkZXIuaCIKICNpbXBvcnQgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNp
bXBvcnQgIkRvY3VtZW50VHlwZS5oIgogI2ltcG9ydCAiRnJhbWVUcmVlLmgiCkBAIC0yNDI2LDYg
KzI0MjcsMzMgQEAgc3RhdGljIE5TQ2hhcmFjdGVyU2V0ICpfZ2V0UG9zdFNtYXJ0U2V0KAogICAg
IHJldHVybiBbaXNQcmV2aW91c0NoYXJhY3RlciA/IF9nZXRQcmVTbWFydFNldCgpIDogX2dldFBv
c3RTbWFydFNldCgpIGNoYXJhY3RlcklzTWVtYmVyOmNdOwogfQogCistIChCT09MKWdldERhdGE6
KE5TRGF0YSAqKilkYXRhIGFuZFJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICoqKXJlc3BvbnNlIGZv
clVSTDooTlNVUkwgKilVUkwKK3sKKyAgICBDYWNoZWRPYmplY3QqIG8gPSBbc2VsZiBpbXBsXS0+
ZG9jdW1lbnQoKS0+ZG9jTG9hZGVyKCktPmNhY2hlZE9iamVjdChbVVJMIGFic29sdXRlU3RyaW5n
XSk7CisgICAgaWYgKCFvKQorICAgICAgICByZXR1cm4gTk87CisKKyAgICAqZGF0YSA9IG8tPmFs
bERhdGEoKTsKKyAgICAqcmVzcG9uc2UgPSBvLT5yZXNwb25zZSgpOworICAgIHJldHVybiBZRVM7
Cit9CisKKy0gKHZvaWQpZ2V0QWxsUmVzb3VyY2VEYXRhczooTlNBcnJheSAqKilkYXRhcyBhbmRS
ZXNwb25zZXM6KE5TQXJyYXkgKiopcmVzcG9uc2VzCit7CisgICAgY29uc3QgSGFzaE1hcDxTdHJp
bmcsIENhY2hlZE9iamVjdCo+JiBhbGxSZXNvdXJjZXMgPSAgW3NlbGYgaW1wbF0tPmRvY3VtZW50
KCktPmRvY0xvYWRlcigpLT5hbGxDYWNoZWRPYmplY3RzKCk7CisgICAgTlNNdXRhYmxlQXJyYXkg
KmQgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OmFsbFJlc291cmNl
cy5zaXplKCldOworICAgIE5TTXV0YWJsZUFycmF5ICpyID0gW1tOU011dGFibGVBcnJheSBhbGxv
Y10gaW5pdFdpdGhDYXBhY2l0eTphbGxSZXNvdXJjZXMuc2l6ZSgpXTsKKyAgICAKKyAgICBIYXNo
TWFwPFN0cmluZywgQ2FjaGVkT2JqZWN0Kj46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGFsbFJlc291
cmNlcy5lbmQoKTsKKyAgICBmb3IgKEhhc2hNYXA8U3RyaW5nLCBDYWNoZWRPYmplY3QqPjo6Y29u
c3RfaXRlcmF0b3IgaXQgPSBhbGxSZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7
CisgICAgICAgIFtkIGFkZE9iamVjdDppdC0+c2Vjb25kLT5hbGxEYXRhKCldOworICAgICAgICBb
ciBhZGRPYmplY3Q6aXQtPnNlY29uZC0+cmVzcG9uc2UoKV07CisgICAgfQorCisgICAgKmRhdGFz
ID0gW2QgYXV0b3JlbGVhc2VdOworICAgICpyZXNwb25zZXMgPSBbciBhdXRvcmVsZWFzZV07Cit9
CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkNvcmVGcmFtZUJyaWRnZSAoV2ViQ29yZUJy
aWRnZUludGVybmFsKQpJbmRleDogV2ViQ29yZS9icmlkZ2UvbWFjL1dlYkNvcmVGcmFtZUJyaWRn
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYnJpZGdlL21hYy9XZWJDb3JlRnJhbWVCcmlkZ2Uu
aAkocmV2aXNpb24gMTQyNDkpCisrKyBXZWJDb3JlL2JyaWRnZS9tYWMvV2ViQ29yZUZyYW1lQnJp
ZGdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3OSw2ICs0NzksOSBAQCB0eXBlZGVmIGVudW0gewog
CiAtIChCT09MKWlzQ2hhcmFjdGVyU21hcnRSZXBsYWNlRXhlbXB0Oih1bmljaGFyKWMgaXNQcmV2
aW91c0NoYXJhY3RlcjooQk9PTClpc1ByZXZpb3VzQ2hhcmFjdGVyOwogCistIChCT09MKWdldERh
dGE6KE5TRGF0YSAqKilkYXRhIGFuZFJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICoqKXJlc3BvbnNl
IGZvclVSTDooTlNVUkwgKilVUkw7CistICh2b2lkKWdldEFsbFJlc291cmNlRGF0YXM6KE5TQXJy
YXkgKiopZGF0YXMgYW5kUmVzcG9uc2VzOihOU0FycmF5ICoqKXJlc3BvbnNlczsKKwogQGVuZAog
CiAvLyBUaGUgV2ViQ29yZUZyYW1lQnJpZGdlIHByb3RvY29sIGNvbnRhaW5zIG1ldGhvZHMgZm9y
IHVzZSBieSB0aGUgV2ViQ29yZSBzaWRlIG9mIHRoZSBicmlkZ2UuCkluZGV4OiBXZWJDb3JlL2xv
YWRlci9DYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0NhY2hlLmgJKHJldmlz
aW9uIDE0MjQ5KQorKysgV2ViQ29yZS9sb2FkZXIvQ2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MTc3LDYgKzE3Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlICB7CiAgICAgICAgIHN0YXRpYyBMb2Fk
ZXIqIG1fbG9hZGVyOwogICAgIAogICAgICAgICBzdGF0aWMgdm9pZCBtb3ZlVG9IZWFkT2ZMUlVM
aXN0KENhY2hlZE9iamVjdCopOworICAgICAgICBzdGF0aWMgdm9pZCB1cGRhdGVDYWNoZVN0YXR1
cyhEb2NMb2FkZXIqLCBjb25zdCBTdHJpbmcmIHVybCwgQ2FjaGVkT2JqZWN0Kik7CiAgICAgCiAg
ICAgICAgIHN0YXRpYyBMUlVMaXN0KiBtX0xSVUxpc3RzOwogICAgICAgICBzdGF0aWMgaW50IG1f
dG90YWxTaXplT2ZMUlVMaXN0czsKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0RvY0xvYWRlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0RvY0xvYWRlci5oCShyZXZpc2lvbiAxNDI0OSkK
KysrIFdlYkNvcmUvbG9hZGVyL0RvY0xvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICsz
MSw4IEBACiAjaW5jbHVkZSAiS1dRS0lPR2xvYmFsLmgiCiAjaW5jbHVkZSAiRGVwcmVjYXRlZFB0
ckxpc3QuaCIKICNpbmNsdWRlICJEZXByZWNhdGVkU3RyaW5nTGlzdC5oIgorI2luY2x1ZGUgImt4
bWxjb3JlL0hhc2hNYXAuaCIKKyNpbmNsdWRlICJTdHJpbmdIYXNoLmgiCiAKIGNsYXNzIEtVUkw7
CiBjbGFzcyBLV1FMb2FkZXI7CkBAIC01MywyNyArNTUsMzAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBEb2NMb2FkZXIoRnJhbWUqLCBXZWJDb3JlOjpEb2N1bWVudCopOwogICAgICAg
ICB+RG9jTG9hZGVyKCk7CiAKLSAgICAgICAgQ2FjaGVkSW1hZ2UgKnJlcXVlc3RJbWFnZSggY29u
c3QgV2ViQ29yZTo6U3RyaW5nICZ1cmwpOwotICAgICAgICBDYWNoZWRDU1NTdHlsZVNoZWV0ICpy
ZXF1ZXN0U3R5bGVTaGVldCggY29uc3QgV2ViQ29yZTo6U3RyaW5nICZ1cmwsIGNvbnN0IERlcHJl
Y2F0ZWRTdHJpbmcmIGNoYXJzZXQpOwotICAgICAgICBDYWNoZWRTY3JpcHQgKnJlcXVlc3RTY3Jp
cHQoIGNvbnN0IFdlYkNvcmU6OlN0cmluZyAmdXJsLCBjb25zdCBEZXByZWNhdGVkU3RyaW5nJiBj
aGFyc2V0KTsKKyAgICAgICAgQ2FjaGVkSW1hZ2UqIHJlcXVlc3RJbWFnZShjb25zdCBTdHJpbmcm
IHVybCk7CisgICAgICAgIENhY2hlZENTU1N0eWxlU2hlZXQqIHJlcXVlc3RTdHlsZVNoZWV0KGNv
bnN0IFN0cmluZyYgdXJsLCBjb25zdCBEZXByZWNhdGVkU3RyaW5nJiBjaGFyc2V0KTsKKyAgICAg
ICAgQ2FjaGVkU2NyaXB0KiByZXF1ZXN0U2NyaXB0KGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBE
ZXByZWNhdGVkU3RyaW5nJiBjaGFyc2V0KTsKIAogI2lmZGVmIEtIVE1MX1hTTFQKLSAgICAgICAg
Q2FjaGVkWFNMU3R5bGVTaGVldCogcmVxdWVzdFhTTFN0eWxlU2hlZXQoY29uc3QgV2ViQ29yZTo6
U3RyaW5nJiB1cmwpOworICAgICAgICBDYWNoZWRYU0xTdHlsZVNoZWV0KiByZXF1ZXN0WFNMU3R5
bGVTaGVldChjb25zdCBTdHJpbmcmIHVybCk7CiAjZW5kaWYKICNpZm5kZWYgS0hUTUxfTk9fWEJM
Ci0gICAgICAgIENhY2hlZFhCTERvY3VtZW50KiByZXF1ZXN0WEJMRG9jdW1lbnQoY29uc3QgV2Vi
Q29yZTo6U3RyaW5nICZ1cmwpOworICAgICAgICBDYWNoZWRYQkxEb2N1bWVudCogcmVxdWVzdFhC
TERvY3VtZW50KGNvbnN0IFN0cmluZyAmdXJsKTsKICNlbmRpZgogCisgICAgICAgIENhY2hlZE9i
amVjdCogY2FjaGVkT2JqZWN0KGNvbnN0IFN0cmluZyYgdXJsKSBjb25zdCB7IHJldHVybiBtX2Rv
Y09iamVjdHMuZ2V0KHVybCk7IH0KKyAgICAgICAgY29uc3QgSGFzaE1hcDxTdHJpbmcsIENhY2hl
ZE9iamVjdCo+JiBhbGxDYWNoZWRPYmplY3RzKCkgY29uc3QgeyByZXR1cm4gbV9kb2NPYmplY3Rz
OyB9CisKICAgICAgICAgYm9vbCBhdXRvbG9hZEltYWdlcygpIGNvbnN0IHsgcmV0dXJuIG1fYmF1
dG9sb2FkSW1hZ2VzOyB9CiAgICAgICAgIEtJTzo6Q2FjaGVDb250cm9sIGNhY2hlUG9saWN5KCkg
Y29uc3QgeyByZXR1cm4gbV9jYWNoZVBvbGljeTsgfQogICAgICAgICB0aW1lX3QgZXhwaXJlRGF0
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXhwaXJlRGF0ZTsgfQogICAgICAgICBGcmFtZSogZnJhbWUo
KSBjb25zdCB7IHJldHVybiBtX2ZyYW1lOyB9CiAgICAgICAgIFdlYkNvcmU6OkRvY3VtZW50KiBk
b2MoKSBjb25zdCB7IHJldHVybiBtX2RvYzsgfQogCi0gICAgICAgIHZvaWQgc2V0RXhwaXJlRGF0
ZSggdGltZV90ICk7Ci0gICAgICAgIHZvaWQgc2V0QXV0b2xvYWRJbWFnZXMoIGJvb2wgKTsKLSAg
ICAgICAgdm9pZCBzZXRDYWNoZVBvbGljeSggS0lPOjpDYWNoZUNvbnRyb2wgY2FjaGVQb2xpY3kg
KTsKLSAgICAgICAgdm9pZCByZW1vdmVDYWNoZWRPYmplY3QoIENhY2hlZE9iamVjdCopIGNvbnN0
OworICAgICAgICB2b2lkIHNldEV4cGlyZURhdGUodGltZV90KTsKKyAgICAgICAgdm9pZCBzZXRB
dXRvbG9hZEltYWdlcyhib29sKTsKKyAgICAgICAgdm9pZCBzZXRDYWNoZVBvbGljeShLSU86OkNh
Y2hlQ29udHJvbCBjYWNoZVBvbGljeSk7CisgICAgICAgIHZvaWQgcmVtb3ZlQ2FjaGVkT2JqZWN0
KENhY2hlZE9iamVjdCopIGNvbnN0OwogCiAgICAgICAgIHZvaWQgc2V0TG9hZEluUHJvZ3Jlc3Mo
Ym9vbCk7CiAgICAgICAgIGJvb2wgbG9hZEluUHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVybiBtX2xv
YWRJblByb2dyZXNzOyB9CkBAIC04NSw3ICs5MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgZnJpZW5kIGNsYXNzIFdlYkNvcmU6OkRvY3VtZW50OwogCiAgICAgICAgIERlcHJlY2F0
ZWRTdHJpbmdMaXN0IG1fcmVsb2FkZWRVUkxzOwotICAgICAgICBtdXRhYmxlIERlcHJlY2F0ZWRQ
dHJMaXN0PENhY2hlZE9iamVjdD4gbV9kb2NPYmplY3RzOworICAgICAgICBtdXRhYmxlIEhhc2hN
YXA8U3RyaW5nLCBDYWNoZWRPYmplY3QqPiBtX2RvY09iamVjdHM7CiAgICAgICAgIHRpbWVfdCBt
X2V4cGlyZURhdGU7CiAgICAgICAgIEtJTzo6Q2FjaGVDb250cm9sIG1fY2FjaGVQb2xpY3k7CiAg
ICAgICAgIGJvb2wgbV9iYXV0b2xvYWRJbWFnZXMgOiAxOwpJbmRleDogV2ViQ29yZS9sb2FkZXIv
Q2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0NhY2hlLmNwcAkocmV2aXNp
b24gMTQyNDkpCisrKyBXZWJDb3JlL2xvYWRlci9DYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEwOSw2ICsxMDksMTcgQEAgdm9pZCBDYWNoZTo6Y2xlYXIoKQogICAgIGRlbGV0ZSBkb2Nsb2Fk
ZXJzOyBkb2Nsb2FkZXJzID0gMDsKIH0KIAordm9pZCBDYWNoZTo6dXBkYXRlQ2FjaGVTdGF0dXMo
RG9jTG9hZGVyKiBkbCwgY29uc3QgU3RyaW5nJiB1cmwsIENhY2hlZE9iamVjdCogbykKK3sKKyAg
ICBtb3ZlVG9IZWFkT2ZMUlVMaXN0KG8pOworICAgIGlmIChkbCkgeworICAgICAgICBpZiAoY2Fj
aGVEaXNhYmxlZCkKKyAgICAgICAgICAgIGRsLT5tX2RvY09iamVjdHMucmVtb3ZlKHVybCk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRsLT5tX2RvY09iamVjdHMuc2V0KHVybCwgbyk7Cisg
ICAgfQorfQorCiBDYWNoZWRJbWFnZSAqQ2FjaGU6OnJlcXVlc3RJbWFnZShEb2NMb2FkZXIqIGRs
LCBjb25zdCBTdHJpbmcmIHVybCwgYm9vbCByZWxvYWQsIHRpbWVfdCBleHBpcmVEYXRlKQogewog
ICAgIC8vIHRoaXMgYnJpbmdzIHRoZSBfdXJsIHRvIGEgc3RhbmRhcmQgZm9ybS4uLgpAQCAtMTYy
LDEyICsxNzMsNyBAQCBDYWNoZWRJbWFnZSAqQ2FjaGU6OnJlcXVlc3RJbWFnZShEb2NMb2FkCiAg
ICAgICAgIGtkRGVidWcoNjA2MCkgPDwgIkNhY2hlOiB1c2luZyBjYWNoZWQ6ICIgPDwga3VybC51
cmwoKSA8PCAiLCBzdGF0dXMgIiA8PCBvLT5zdGF0dXMoKSA8PCBlbmRsOwogI2VuZGlmCiAKLSAg
ICBtb3ZlVG9IZWFkT2ZMUlVMaXN0KG8pOwotICAgIGlmIChkbCkgewotICAgICAgICBkbC0+bV9k
b2NPYmplY3RzLnJlbW92ZShvKTsKLSAgICAgICAgaWYgKCFjYWNoZURpc2FibGVkKQotICAgICAg
ICBkbC0+bV9kb2NPYmplY3RzLmFwcGVuZChvKTsKLSAgICB9CisgICAgdXBkYXRlQ2FjaGVTdGF0
dXMoZGwsIG8tPnVybCgpLCBvKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkSW1hZ2Ug
Kj4obyk7CiB9CiAKQEAgLTIxNywxMiArMjIzLDcgQEAgQ2FjaGVkQ1NTU3R5bGVTaGVldCAqQ2Fj
aGU6OnJlcXVlc3RTdHlsZQogICAgICAgICBrZERlYnVnKDYwNjApIDw8ICJDYWNoZTogdXNpbmcg
Y2FjaGVkOiAiIDw8IGt1cmwudXJsKCkgPDwgZW5kbDsKICNlbmRpZgogCi0gICAgbW92ZVRvSGVh
ZE9mTFJVTGlzdChvKTsKLSAgICBpZiAoZGwpIHsKLSAgICAgICAgZGwtPm1fZG9jT2JqZWN0cy5y
ZW1vdmUobyk7Ci0gICAgICAgIGlmICghY2FjaGVEaXNhYmxlZCkKLSAgICAgICAgZGwtPm1fZG9j
T2JqZWN0cy5hcHBlbmQobyk7Ci0gICAgfQorICAgIHVwZGF0ZUNhY2hlU3RhdHVzKGRsLCB1cmws
IG8pOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRDU1NTdHlsZVNoZWV0ICo+KG8pOwog
fQogCkBAIC0yODEsMTIgKzI4Miw3IEBAIENhY2hlZFNjcmlwdCAqQ2FjaGU6OnJlcXVlc3RTY3Jp
cHQoRG9jTG8KICAgICAgICAga2REZWJ1Zyg2MDYwKSA8PCAiQ2FjaGU6IHVzaW5nIGNhY2hlZDog
IiA8PCBrdXJsLnVybCgpIDw8IGVuZGw7CiAjZW5kaWYKIAotICAgIG1vdmVUb0hlYWRPZkxSVUxp
c3Qobyk7Ci0gICAgaWYgKGRsKSB7Ci0gICAgICAgIGRsLT5tX2RvY09iamVjdHMucmVtb3ZlKG8p
OwotICAgICAgICBpZiAoIWNhY2hlRGlzYWJsZWQpCi0gICAgICAgICAgICBkbC0+bV9kb2NPYmpl
Y3RzLmFwcGVuZChvKTsKLSAgICB9CisgICAgdXBkYXRlQ2FjaGVTdGF0dXMoZGwsIHVybCwgbyk7
CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFNjcmlwdCAqPihvKTsKIH0KIApAQCAtMzQ1
LDEyICszNDEsNyBAQCBDYWNoZWRYU0xTdHlsZVNoZWV0KiBDYWNoZTo6cmVxdWVzdFhTTFN0CiAg
ICAgICAgIGtkRGVidWcoNjA2MCkgPDwgIkNhY2hlOiB1c2luZyBjYWNoZWQ6ICIgPDwga3VybC51
cmwoKSA8PCBlbmRsOwogI2VuZGlmCiAgICAgCi0gICAgbW92ZVRvSGVhZE9mTFJVTGlzdChvKTsK
LSAgICBpZiAoZGwpIHsKLSAgICAgICAgZGwtPm1fZG9jT2JqZWN0cy5yZW1vdmUobyk7Ci0gICAg
ICAgIGlmICghY2FjaGVEaXNhYmxlZCkKLSAgICAgICAgICAgIGRsLT5tX2RvY09iamVjdHMuYXBw
ZW5kKG8pOwotICAgIH0KKyAgICB1cGRhdGVDYWNoZVN0YXR1cyhkbCwgdXJsLCBvKTsKICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkWFNMU3R5bGVTaGVldCo+KG8pOwogfQogI2VuZGlmCkBA
IC00MDIsMTIgKzM5Myw3IEBAIENhY2hlZFhCTERvY3VtZW50KiBDYWNoZTo6cmVxdWVzdFhCTERv
Y3UKICAgICAgICAga2REZWJ1Zyg2MDYwKSA8PCAiQ2FjaGU6IHVzaW5nIGNhY2hlZDogIiA8PCBr
dXJsLnVybCgpIDw8IGVuZGw7CiAjZW5kaWYKICAgICAKLSAgICBtb3ZlVG9IZWFkT2ZMUlVMaXN0
KG8pOwotICAgIGlmIChkbCkgewotICAgICAgICBkbC0+bV9kb2NPYmplY3RzLnJlbW92ZShvKTsK
LSAgICAgICAgaWYgKCFjYWNoZURpc2FibGVkKQotICAgICAgICAgICAgZGwtPm1fZG9jT2JqZWN0
cy5hcHBlbmQobyk7Ci0gICAgfQorICAgIHVwZGF0ZUNhY2hlU3RhdHVzKGRsLCB1cmwsIG8pOwog
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRYQkxEb2N1bWVudCo+KG8pOwogfQogI2VuZGlm
CkluZGV4OiBXZWJDb3JlL2xvYWRlci9Eb2NMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvbG9hZGVyL0RvY0xvYWRlci5jcHAJKHJldmlzaW9uIDE0MjQ5KQorKysgV2ViQ29yZS9sb2Fk
ZXIvRG9jTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc0LDcgKzE3NCw5IEBAIHZvaWQg
RG9jTG9hZGVyOjpzZXRBdXRvbG9hZEltYWdlcyhib29sIGUKICAgICBpZiAoIW1fYmF1dG9sb2Fk
SW1hZ2VzKQogICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKGNvbnN0IENhY2hlZE9iamVjdCog
Y289bV9kb2NPYmplY3RzLmZpcnN0KCk7IGNvOyBjbz1tX2RvY09iamVjdHMubmV4dCgpKQorICAg
IEhhc2hNYXA8U3RyaW5nLCBDYWNoZWRPYmplY3QqPjo6aXRlcmF0b3IgZW5kID0gbV9kb2NPYmpl
Y3RzLmVuZCgpOworICAgIGZvciAoSGFzaE1hcDxTdHJpbmcsIENhY2hlZE9iamVjdCo+OjppdGVy
YXRvciBpdCA9IG1fZG9jT2JqZWN0cy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAg
ICAgQ2FjaGVkT2JqZWN0KiBjbyA9IGl0LT5zZWNvbmQ7CiAgICAgICAgIGlmIChjby0+dHlwZSgp
ID09IENhY2hlZE9iamVjdDo6SW1hZ2VSZXNvdXJjZSkgewogICAgICAgICAgICAgQ2FjaGVkSW1h
Z2UgKmltZyA9IGNvbnN0X2Nhc3Q8Q2FjaGVkSW1hZ2UqPihzdGF0aWNfY2FzdDxjb25zdCBDYWNo
ZWRJbWFnZSAqPihjbykpOwogCkBAIC0xODQsNiArMTg2LDcgQEAgdm9pZCBEb2NMb2FkZXI6OnNl
dEF1dG9sb2FkSW1hZ2VzKGJvb2wgZQogCiAgICAgICAgICAgICBDYWNoZTo6bG9hZGVyKCktPmxv
YWQodGhpcywgaW1nLCB0cnVlKTsKICAgICAgICAgfQorICAgIH0KIH0KIAogdm9pZCBEb2NMb2Fk
ZXI6OnNldENhY2hlUG9saWN5KEtJTzo6Q2FjaGVDb250cm9sIGNhY2hlUG9saWN5KQpAQCAtMTkz
LDcgKzE5Niw3IEBAIHZvaWQgRG9jTG9hZGVyOjpzZXRDYWNoZVBvbGljeShLSU86OkNhY2gKIAog
dm9pZCBEb2NMb2FkZXI6OnJlbW92ZUNhY2hlZE9iamVjdChDYWNoZWRPYmplY3QqIG8pIGNvbnN0
CiB7Ci0gICAgbV9kb2NPYmplY3RzLnJlbW92ZVJlZihvKTsKKyAgICBtX2RvY09iamVjdHMucmVt
b3ZlKG8tPnVybCgpKTsKIH0KIAogdm9pZCBEb2NMb2FkZXI6OnNldExvYWRJblByb2dyZXNzKGJv
b2wgbG9hZCkKSW5kZXg6IFdlYktpdC9XZWJDb3JlU3VwcG9ydC9XZWJTdWJyZXNvdXJjZUxvYWRl
ci5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9XZWJDb3JlU3VwcG9ydC9XZWJTdWJyZXNvdXJjZUxv
YWRlci5tCShyZXZpc2lvbiAxNDI0OSkKKysrIFdlYktpdC9XZWJDb3JlU3VwcG9ydC9XZWJTdWJy
ZXNvdXJjZUxvYWRlci5tCSh3b3JraW5nIGNvcHkpCkBAIC0xODYsOCArMTg2LDYgQEAKICAgICBp
ZiAobG9hZGluZ011bHRpcGFydENvbnRlbnQgJiYgW1tzZWxmIHJlc291cmNlRGF0YV0gbGVuZ3Ro
XSkgewogICAgICAgICAvLyBBIHN1YnJlc291cmNlIGxvYWRlciBkb2VzIG5vdCBsb2FkIG11bHRp
cGFydCBzZWN0aW9ucyBwcm9ncmVzc2l2ZWx5LCBkZWxpdmVyIHRoZSBwcmV2aW91c2x5IHJlY2Vp
dmVkIGRhdGEgdG8gdGhlIGNvcmVMb2FkZXIgYWxsIGF0IG9uY2UKICAgICAgICAgW2NvcmVMb2Fk
ZXIgYWRkRGF0YTpbc2VsZiByZXNvdXJjZURhdGFdXTsKLSAgICAgICAgLy8gVGVsbHMgdGhlIGRh
dGFTb3VyY2UgdG8gc2F2ZSB0aGUganVzdCBjb21wbGV0ZWQgc2VjdGlvbiwgbmVjZXNzYXJ5IGZv
ciBzYXZpbmcvZHJhZ2dpbmcgbXVsdGlwYXJ0IGltYWdlcwotICAgICAgICBbc2VsZiBzYXZlUmVz
b3VyY2VdOwogICAgICAgICAvLyBDbGVhcnMgdGhlIGRhdGEgdG8gbWFrZSB3YXkgZm9yIHRoZSBu
ZXh0IG11bHRpcGFydCBzZWN0aW9uCiAgICAgICAgIFtzZWxmIGNsZWFyUmVzb3VyY2VEYXRhXTsK
ICAgICAgICAgCkluZGV4OiBXZWJLaXQvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVCcmlkZ2UubQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVCcmlkZ2UubQkocmV2
aXNpb24gMTQyNDkpCisrKyBXZWJLaXQvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVCcmlkZ2UubQko
d29ya2luZyBjb3B5KQpAQCAtNTM5LDcgKzUzOSw3IEBAIE5TU3RyaW5nICpXZWJQbHVnaW5Db250
YWluZXJLZXkgPSAgIEAiV2UKICAgICBpZCBpZGVudGlmaWVyOwogICAgIE5TVVJMUmVxdWVzdCAq
cmVxdWVzdCA9IFtbTlNVUkxSZXF1ZXN0IGFsbG9jXSBpbml0V2l0aFVSTDpVUkxdOwogICAgIFtf
ZnJhbWUgX3JlcXVlc3RGcm9tRGVsZWdhdGVGb3JSZXF1ZXN0OnJlcXVlc3QgaWRlbnRpZmllcjom
aWRlbnRpZmllciBlcnJvcjomZXJyb3JdOyAgICAKLSAgICBbX2ZyYW1lIF9zYXZlUmVzb3VyY2VB
bmRTZW5kUmVtYWluaW5nRGVsZWdhdGVNZXNzYWdlc1dpdGhSZXF1ZXN0OnJlcXVlc3QgaWRlbnRp
ZmllcjppZGVudGlmaWVyIHJlc3BvbnNlOnJlc3BvbnNlIGRhdGE6ZGF0YSBlcnJvcjplcnJvcl07
CisgICAgW19mcmFtZSBfc2VuZFJlbWFpbmluZ0RlbGVnYXRlTWVzc2FnZXNXaXRoSWRlbnRpZmll
cjppZGVudGlmaWVyIHJlc3BvbnNlOnJlc3BvbnNlIGxlbmd0aDpbZGF0YSBsZW5ndGhdIGVycm9y
OmVycm9yXTsKICAgICBbcmVxdWVzdCByZWxlYXNlXTsKIH0KIApAQCAtNjA1LDcgKzYwNSw3IEBA
IE5TU3RyaW5nICpXZWJQbHVnaW5Db250YWluZXJLZXkgPSAgIEAiV2UKICAgICAgICAgfQogICAg
IH0KICAgICAKLSAgICBbX2ZyYW1lIF9zYXZlUmVzb3VyY2VBbmRTZW5kUmVtYWluaW5nRGVsZWdh
dGVNZXNzYWdlc1dpdGhSZXF1ZXN0Om5ld1JlcXVlc3QgaWRlbnRpZmllcjppZGVudGlmaWVyIHJl
c3BvbnNlOnJlc3BvbnNlIGRhdGE6cmVzdWx0IGVycm9yOmVycm9yXTsKKyAgICBbX2ZyYW1lIF9z
ZW5kUmVtYWluaW5nRGVsZWdhdGVNZXNzYWdlc1dpdGhJZGVudGlmaWVyOmlkZW50aWZpZXIgcmVz
cG9uc2U6cmVzcG9uc2UgbGVuZ3RoOltyZXN1bHQgbGVuZ3RoXSBlcnJvcjplcnJvcl07CiAgICAg
W3JlcXVlc3QgcmVsZWFzZV07CiAgICAgCiAgICAgcmV0dXJuIHJlc3VsdDsKSW5kZXg6IFdlYktp
dC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMTQy
NTApCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAK
KzIwMDYtMDUtMDggIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIC0gcmVmYWN0
b3IgdGhpbmdzIHNvIHRoYXQgV2ViS2l0IGRvZXNuJ3Qgc2F2ZSBhIFdlYlJlc291cmNlIGZvciBl
dmVyeSBsb2FkZWQgVVJMLAorICAgICAgICBidXQgcmF0aGVyIHJldHJpZXZlcyB0aGUgZGF0YSBm
cm9tIHRoZSBXZWJDb3JlIGNhY2hlIGFzIG5lZWRlZC4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lQnJpZGdlLm06CisgICAgICAgICgtW1dlYkZyYW1lQnJpZGdlIG9iamVjdExv
YWRlZEZyb21DYWNoZVdpdGhVUkw6cmVzcG9uc2U6ZGF0YTpdKToKKyAgICAgICAgKC1bV2ViRnJh
bWVCcmlkZ2Ugc3luY0xvYWRSZXNvdXJjZVdpdGhNZXRob2Q6VVJMOmN1c3RvbUhlYWRlcnM6cG9z
dERhdGE6ZmluYWxVUkw6cmVzcG9uc2VIZWFkZXJzOnN0YXR1c0NvZGU6XSk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViU3VicmVzb3VyY2VMb2FkZXIubToKKyAgICAgICAgKC1bV2ViU3Vi
cmVzb3VyY2VMb2FkZXIgZGlkUmVjZWl2ZVJlc3BvbnNlOl0pOgorICAgICAgICAqIFdlYlZpZXcv
V2ViRGF0YVNvdXJjZS5tOgorICAgICAgICAoLVtXZWJEYXRhU291cmNlUHJpdmF0ZSBkZWFsbG9j
XSk6CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2UgX3NldHVwRm9yUmVwbGFjZUJ5TUlNRVR5cGU6
XSk6CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2UgX2FyY2hpdmVkU3VicmVzb3VyY2VGb3JVUkw6
XSk6CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2UgaW5pdFdpdGhSZXF1ZXN0Ol0pOgorICAgICAg
ICAoLVtXZWJEYXRhU291cmNlIHN1YnJlc291cmNlc10pOgorICAgICAgICAoLVtXZWJEYXRhU291
cmNlIHN1YnJlc291cmNlRm9yVVJMOl0pOgorICAgICAgICAoLVtXZWJEYXRhU291cmNlIGFkZFN1
YnJlc291cmNlOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViRGF0YVNvdXJjZVByaXZhdGUuaDoK
KyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm06CisgICAgICAgICogV2ViVmlldy9XZWJGcmFt
ZUludGVybmFsLmg6CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tOgorICAgICAgICAq
IFdlYlZpZXcvV2ViTG9hZGVyLmg6CisgICAgICAgICogV2ViVmlldy9XZWJMb2FkZXIubToKKyAg
ICAgICAgKC1bTlNVUkxQcm90b2NvbCBsb2FkV2l0aFJlcXVlc3Q6XSk6CisgICAgICAgICgtW05T
VVJMUHJvdG9jb2wgZGlkRmluaXNoTG9hZGluZ10pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVW5h
cmNoaXZpbmdTdGF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVW5hcmNoaXZpbmdTdGF0ZS5t
OgorICAgICAgICAoLVtXZWJVbmFyY2hpdmluZ1N0YXRlIGFkZFJlc291cmNlOl0pOgorCiAyMDA2
LTA1LTA0ICBNaXR6IFBldHRlbCAgPG9wZW5kYXJ3aW4ub3JnQG1pdHpwZXR0ZWwuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluLgpJbmRleDogV2ViS2l0L1dlYlZpZXcvV2ViRGF0YVNv
dXJjZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvV2ViVmlldy9XZWJEYXRhU291cmNl
UHJpdmF0ZS5oCShyZXZpc2lvbiAxNDI0OSkKKysrIFdlYktpdC9XZWJWaWV3L1dlYkRhdGFTb3Vy
Y2VQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxMSw0ICsyMTEsNyBAQAogLSAodm9pZClf
c2V0dXBGb3JSZXBsYWNlQnlNSU1FVHlwZTooTlNTdHJpbmcgKiltaW1lVHlwZTsKIC0gKEJPT0wp
X2RvZXNQcm9ncmVzc2l2ZUxvYWRXaXRoTUlNRVR5cGU6KE5TU3RyaW5nICopTUlNRVR5cGU7CiAt
ICh2b2lkKV9jb21taXRMb2FkV2l0aERhdGE6KE5TRGF0YSAqKWRhdGE7CisKKy0gKFdlYlJlc291
cmNlICopX2FyY2hpdmVkU3VicmVzb3VyY2VGb3JVUkw6KE5TVVJMICopVVJMOworCiBAZW5kCklu
ZGV4OiBXZWJLaXQvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oCShyZXZpc2lvbiAxNDI0OSkKKysrIFdlYktp
dC9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTEgKzQz
LDYgQEAKIC0gKE5TVVJMUmVxdWVzdCAqKV9yZXF1ZXN0RnJvbURlbGVnYXRlRm9yUmVxdWVzdDoo
TlNVUkxSZXF1ZXN0ICopcmVxdWVzdCBpZGVudGlmaWVyOihpZCAqKWlkZW50aWZpZXIgZXJyb3I6
KE5TRXJyb3IgKiopZXJyb3I7CiAtICh2b2lkKV9zZW5kUmVtYWluaW5nRGVsZWdhdGVNZXNzYWdl
c1dpdGhJZGVudGlmaWVyOihpZClpZGVudGlmaWVyIHJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICop
cmVzcG9uc2UgbGVuZ3RoOih1bnNpZ25lZClsZW5ndGggZXJyb3I6KE5TRXJyb3IgKillcnJvcjsK
IC0gKHZvaWQpX3NhZmVMb2FkVVJMOihOU1VSTCAqKVVSTDsKLS0gKHZvaWQpX3NhdmVSZXNvdXJj
ZUFuZFNlbmRSZW1haW5pbmdEZWxlZ2F0ZU1lc3NhZ2VzV2l0aFJlcXVlc3Q6KE5TVVJMUmVxdWVz
dCAqKXJlcXVlc3QKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlkZW50aWZpZXI6KGlkKWlkZW50aWZpZXIgCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlOihOU1VSTFJlc3Bv
bnNlICopcmVzcG9uc2UgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkYXRhOihOU0RhdGEgKilkYXRhCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOihOU0Vycm9y
ICopZXJyb3I7CiAtICh2b2lkKV9zZXR1cEZvclJlcGxhY2U7CiAKIC0gKEJPT0wpX2hhc1NlbGVj
dGlvbjsKSW5kZXg6IFdlYktpdC9XZWJWaWV3L1dlYlVuYXJjaGl2aW5nU3RhdGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvV2ViVmlldy9XZWJVbmFyY2hpdmluZ1N0YXRlLmgJKHJldmlzaW9uIDE0
MjQ5KQorKysgV2ViS2l0L1dlYlZpZXcvV2ViVW5hcmNoaXZpbmdTdGF0ZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zOCw2ICszOCw3IEBACiB9CiAKIC0gKHZvaWQpYWRkQXJjaGl2ZTooV2ViQXJjaGl2
ZSAqKWFyY2hpdmU7CistICh2b2lkKWFkZFJlc291cmNlOihXZWJSZXNvdXJjZSAqKXJlc291cmNl
OwogLSAoV2ViUmVzb3VyY2UgKilhcmNoaXZlZFJlc291cmNlRm9yVVJMOihOU1VSTCAqKVVSTDsK
IC0gKFdlYkFyY2hpdmUgKilwb3BTdWJmcmFtZUFyY2hpdmVXaXRoRnJhbWVOYW1lOihOU1N0cmlu
ZyAqKWZyYW1lTmFtZTsKIApJbmRleDogV2ViS2l0L1dlYlZpZXcvV2ViVW5hcmNoaXZpbmdTdGF0
ZS5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9XZWJWaWV3L1dlYlVuYXJjaGl2aW5nU3RhdGUubQko
cmV2aXNpb24gMTQyNDkpCisrKyBXZWJLaXQvV2ViVmlldy9XZWJVbmFyY2hpdmluZ1N0YXRlLm0J
KHdvcmtpbmcgY29weSkKQEAgLTY5LDYgKzY5LDExIEBACiAgICAgfQogfQogCistICh2b2lkKWFk
ZFJlc291cmNlOihXZWJSZXNvdXJjZSAqKXN1YnJlc291cmNlCit7CisgICAgW2FyY2hpdmVkUmVz
b3VyY2VzIHNldE9iamVjdDpzdWJyZXNvdXJjZSBmb3JLZXk6W1tzdWJyZXNvdXJjZSBVUkxdIF93
ZWJfb3JpZ2luYWxEYXRhQXNTdHJpbmddXTsKK30KKwogLSAoV2ViUmVzb3VyY2UgKilhcmNoaXZl
ZFJlc291cmNlRm9yVVJMOihOU1VSTCAqKVVSTAogewogICAgIHJldHVybiBbYXJjaGl2ZWRSZXNv
dXJjZXMgb2JqZWN0Rm9yS2V5OlVSTF07CkluZGV4OiBXZWJLaXQvV2ViVmlldy9XZWJEYXRhU291
cmNlLm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tCShyZXZp
c2lvbiAxNDI0OSkKKysrIFdlYktpdC9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubQkod29ya2luZyBj
b3B5KQpAQCAtOTIsNyArOTIsNiBAQAogICAgIFtsYXN0Q2hlY2tlZFJlcXVlc3QgcmVsZWFzZV07
CiAgICAgW3Jlc3BvbnNlcyByZWxlYXNlXTsKICAgICBbd2ViRnJhbWUgcmVsZWFzZV07Ci0gICAg
W3N1YnJlc291cmNlcyByZWxlYXNlXTsKICAgICBbdW5hcmNoaXZpbmdTdGF0ZSByZWxlYXNlXTsK
IAogICAgIFtzdXBlciBkZWFsbG9jXTsKQEAgLTkxNiwxMCArOTE1LDE0IEBAIHN0YXRpYyBpbmxp
bmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU00KICAgICBbX3ByaXZhdGUtPnN1YnJlc291cmNl
TG9hZGVycyByZW1vdmVBbGxPYmplY3RzXTsKICAgICBbX3ByaXZhdGUtPnBsdWdJblN0cmVhbUxv
YWRlcnMgbWFrZU9iamVjdHNQZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKGNhbmNlbCldOwogICAg
IFtfcHJpdmF0ZS0+cGx1Z0luU3RyZWFtTG9hZGVycyByZW1vdmVBbGxPYmplY3RzXTsKLSAgICBb
X3ByaXZhdGUtPnN1YnJlc291cmNlcyByZW1vdmVBbGxPYmplY3RzXTsKICAgICBbX3ByaXZhdGUt
PnVuYXJjaGl2aW5nU3RhdGUgcmVsZWFzZV07CiB9CiAKKy0gKFdlYlJlc291cmNlICopX2FyY2hp
dmVkU3VicmVzb3VyY2VGb3JVUkw6KE5TVVJMICopVVJMCit7CisgICAgcmV0dXJuIFtfcHJpdmF0
ZS0+dW5hcmNoaXZpbmdTdGF0ZSBhcmNoaXZlZFJlc291cmNlRm9yVVJMOlVSTF07Cit9CisKIEBl
bmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkRhdGFTb3VyY2UKQEAgLTkzNSw4ICs5MzgsNiBAQCBz
dGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNCiAgICAgX3ByaXZhdGUtPm9y
aWdpbmFsUmVxdWVzdCA9IFtyZXF1ZXN0IHJldGFpbl07CiAgICAgX3ByaXZhdGUtPm9yaWdpbmFs
UmVxdWVzdENvcHkgPSBbcmVxdWVzdCBjb3B5XTsKICAgICAKLSAgICBfcHJpdmF0ZS0+c3VicmVz
b3VyY2VzID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XTsKLSAgICAKICAgICBM
T0coTG9hZGluZywgImNyZWF0aW5nIGRhdGFzb3VyY2UgZm9yICVAIiwgW3JlcXVlc3QgVVJMXSk7
CiAgICAgX3ByaXZhdGUtPnJlcXVlc3QgPSBbX3ByaXZhdGUtPm9yaWdpbmFsUmVxdWVzdCBtdXRh
YmxlQ29weV07CiAgICAgX3ByaXZhdGUtPnN1cHBvcnRzTXVsdGlwYXJ0Q29udGVudCA9IFdLU3Vw
cG9ydHNNdWx0aXBhcnRYTWl4ZWRSZXBsYWNlKF9wcml2YXRlLT5yZXF1ZXN0KTsKQEAgLTEwNjAs
MjIgKzEwNjEsMzcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTQog
CiAtIChOU0FycmF5ICopc3VicmVzb3VyY2VzCiB7Ci0gICAgcmV0dXJuIFtfcHJpdmF0ZS0+c3Vi
cmVzb3VyY2VzIGFsbFZhbHVlc107CisgICAgTlNBcnJheSAqZGF0YXM7CisgICAgTlNBcnJheSAq
cmVzcG9uc2VzOworICAgIFtbc2VsZiBfYnJpZGdlXSBnZXRBbGxSZXNvdXJjZURhdGFzOiZkYXRh
cyBhbmRSZXNwb25zZXM6JnJlc3BvbnNlc107CisgICAgQVNTRVJUKFtkYXRhcyBjb3VudF0gPT0g
W3Jlc3BvbnNlcyBjb3VudF0pOworCisgICAgTlNNdXRhYmxlQXJyYXkgKnN1YnJlc291cmNlcyA9
IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6W2RhdGFzIGNvdW50XV07
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFtkYXRhcyBjb3VudF07ICsraSkgeworICAg
ICAgICBOU1VSTFJlc3BvbnNlICpyZXNwb25zZSA9IFtyZXNwb25zZXMgb2JqZWN0QXRJbmRleDpp
XTsKKyAgICAgICAgW3N1YnJlc291cmNlcyBhZGRPYmplY3Q6W1tbV2ViUmVzb3VyY2UgYWxsb2Nd
IF9pbml0V2l0aERhdGE6W2RhdGFzIG9iamVjdEF0SW5kZXg6aV0gVVJMOltyZXNwb25zZSBVUkxd
IHJlc3BvbnNlOnJlc3BvbnNlXSBhdXRvcmVsZWFzZV1dOworICAgIH0KKworICAgIHJldHVybiBb
c3VicmVzb3VyY2VzIGF1dG9yZWxlYXNlXTsKIH0KIAogLSAoV2ViUmVzb3VyY2UgKilzdWJyZXNv
dXJjZUZvclVSTDooTlNVUkwgKilVUkwKIHsKLSAgICBXZWJSZXNvdXJjZSAqcmVzb3VyY2UgPSBb
X3ByaXZhdGUtPnVuYXJjaGl2aW5nU3RhdGUgYXJjaGl2ZWRSZXNvdXJjZUZvclVSTDpVUkxdOwot
ICAgIGlmIChyZXNvdXJjZSkKLSAgICAgICAgcmV0dXJuIHJlc291cmNlOworICAgIE5TRGF0YSAq
ZGF0YTsKKyAgICBOU1VSTFJlc3BvbnNlICpyZXNwb25zZTsKKyAgICBpZiAoIVtbc2VsZiBfYnJp
ZGdlXSBnZXREYXRhOiZkYXRhIGFuZFJlc3BvbnNlOiZyZXNwb25zZSBmb3JVUkw6VVJMXSkKKyAg
ICAgICAgcmV0dXJuIG5pbDsKIAotICAgIHJldHVybiBbX3ByaXZhdGUtPnN1YnJlc291cmNlcyBv
YmplY3RGb3JLZXk6W1VSTCBfd2ViX29yaWdpbmFsRGF0YUFzU3RyaW5nXV07CisgICAgcmV0dXJu
IFtbW1dlYlJlc291cmNlIGFsbG9jXSBfaW5pdFdpdGhEYXRhOmRhdGEgVVJMOlVSTCByZXNwb25z
ZTpyZXNwb25zZV0gYXV0b3JlbGVhc2VdOwogfQogCiAtICh2b2lkKWFkZFN1YnJlc291cmNlOihX
ZWJSZXNvdXJjZSAqKXN1YnJlc291cmNlCiB7Ci0gICAgaWYgKHN1YnJlc291cmNlKQotICAgICAg
ICBbX3ByaXZhdGUtPnN1YnJlc291cmNlcyBzZXRPYmplY3Q6c3VicmVzb3VyY2UgZm9yS2V5Oltb
c3VicmVzb3VyY2UgVVJMXSBfd2ViX29yaWdpbmFsRGF0YUFzU3RyaW5nXV07CisgICAgaWYgKHN1
YnJlc291cmNlKSB7CisgICAgICAgIGlmICghX3ByaXZhdGUtPnVuYXJjaGl2aW5nU3RhdGUpCisg
ICAgICAgICAgICBfcHJpdmF0ZS0+dW5hcmNoaXZpbmdTdGF0ZSA9IFtbV2ViVW5hcmNoaXZpbmdT
dGF0ZSBhbGxvY10gaW5pdF07CisgICAgICAgIFtfcHJpdmF0ZS0+dW5hcmNoaXZpbmdTdGF0ZSBh
ZGRSZXNvdXJjZTpzdWJyZXNvdXJjZV07CisgICAgfQogfQogCiBAZW5kCkluZGV4OiBXZWJLaXQv
V2ViVmlldy9XZWJGcmFtZS5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9XZWJWaWV3L1dlYkZyYW1l
Lm0JKHJldmlzaW9uIDE0MjQ5KQorKysgV2ViS2l0L1dlYlZpZXcvV2ViRnJhbWUubQkod29ya2lu
ZyBjb3B5KQpAQCAtMjYzOSwyMyArMjYzOSw2IEBAIHN0YXRpYyBDRkFic29sdXRlVGltZSBfdGlt
ZU9mTGFzdENvbXBsZXQKICAgICAgICAgICAgICAgICAgIGZvcm1WYWx1ZXM6bmlsXTsKIH0KIAot
LSAodm9pZClfc2F2ZVJlc291cmNlQW5kU2VuZFJlbWFpbmluZ0RlbGVnYXRlTWVzc2FnZXNXaXRo
UmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnRpZmllcjooaWQpaWRlbnRpZmllciAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzcG9uc2U6KE5TVVJMUmVzcG9uc2UgKilyZXNwb25zZSAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6KE5TRGF0YSAqKWRh
dGEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXJyb3I6KE5TRXJyb3IgKillcnJvcgotewotICAgIHVuc2lnbmVkIGxlbmd0aCA9IFtk
YXRhIGxlbmd0aF07Ci0gICAgaWYgKGxlbmd0aCA+IDAgJiYgZXJyb3IgPT0gbmlsKSB7Ci0gICAg
ICAgIEFTU0VSVChyZXF1ZXN0ICE9IG5pbCk7Ci0gICAgICAgIFdlYlJlc291cmNlICpyZXNvdXJj
ZSA9IFtbV2ViUmVzb3VyY2UgYWxsb2NdIF9pbml0V2l0aERhdGE6ZGF0YSBVUkw6W3JlcXVlc3Qg
VVJMXSByZXNwb25zZTpyZXNwb25zZV07Ci0gICAgICAgIEFTU0VSVChyZXNvdXJjZSAhPSBuaWwp
OyAgICAKLSAgICAgICAgW1tzZWxmIGRhdGFTb3VyY2VdIGFkZFN1YnJlc291cmNlOnJlc291cmNl
XTsKLSAgICAgICAgW3Jlc291cmNlIHJlbGVhc2VdOwotICAgIH0KLSAgICBbc2VsZiBfc2VuZFJl
bWFpbmluZ0RlbGVnYXRlTWVzc2FnZXNXaXRoSWRlbnRpZmllcjppZGVudGlmaWVyIHJlc3BvbnNl
OnJlc3BvbnNlIGxlbmd0aDpsZW5ndGggZXJyb3I6ZXJyb3JdOwotfQotCiAtICh2b2lkKV91bm1h
cmtBbGxNaXNzcGVsbGluZ3MKIHsKICAgICBmb3IgKFdlYkZyYW1lICpmcmFtZSA9IHNlbGY7IGZy
YW1lOyBmcmFtZSA9IFtmcmFtZSBfdHJhdmVyc2VOZXh0RnJhbWVTdGF5V2l0aGluOnNlbGZdKQpJ
bmRleDogV2ViS2l0L1dlYlZpZXcvV2ViSFRNTFZpZXcubQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
V2ViVmlldy9XZWJIVE1MVmlldy5tCShyZXZpc2lvbiAxNDI0OSkKKysrIFdlYktpdC9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm0JKHdvcmtpbmcgY29weSkKQEAgLTQ5MCwyNyArNDkwLDYgQEAgdm9pZCAq
X05TU29mdExpbmtpbmdHZXRGcmFtZXdvcmtGdW5jUHRyKAogICAgIHJldHVybiBuaWw7CiB9CiAK
LS0gKFdlYlJlc291cmNlICopcmVzb3VyY2VGb3JEYXRhOihOU0RhdGEgKilkYXRhIHByZWZlcnJl
ZEZpbGVuYW1lOihOU1N0cmluZyAqKW5hbWUKLXsKLSAgICAvLyBUaGlzIG1ldGhvZCBpcyBjYWxs
ZWQgYnkgW05TQXR0cmlidXRlZFN0cmluZyBfZG9jdW1lbnRGcm9tUmFuZ2U6Ojo6XSAKLSAgICAv
LyB3aGljaCB1c2VzIHRoZSBVUkwgb2YgdGhlIHJlc291cmNlIGZvciB0aGUgZnJhZ21lbnQgdGhh
dCBpdCByZXR1cm5zLgotICAgIE5TU3RyaW5nICpleHRlbnNpb24gPSBbbmFtZSBwYXRoRXh0ZW5z
aW9uXTsKLSAgICBOU1N0cmluZyAqTUlNRVR5cGUgPSBuaWw7Ci0gICAgaWYgKFtleHRlbnNpb24g
bGVuZ3RoXSAhPSAwKQotICAgICAgICBNSU1FVHlwZSA9IFdLR2V0TUlNRVR5cGVGb3JFeHRlbnNp
b24oZXh0ZW5zaW9uKTsKLSAgICAvLyBPbmx5IHN1cHBvcnQgaW1hZ2UgcmVzb3VyY2VzLgotICAg
IGlmIChNSU1FVHlwZSA9PSBuaWwgfHwgIVtbW1dlYkltYWdlUmVuZGVyZXJGYWN0b3J5IHNoYXJl
ZEZhY3RvcnldIHN1cHBvcnRlZE1JTUVUeXBlc10gY29udGFpbnNPYmplY3Q6TUlNRVR5cGVdKQot
ICAgICAgICByZXR1cm4gbmlsOwotICAgIE5TVVJMICpVUkwgPSBbTlNVUkwgX3dlYl9VUkxXaXRo
VXNlclR5cGVkU3RyaW5nOltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiLyVAIiwgbmFtZV0g
cmVsYXRpdmVUb1VSTDpbTlNVUkwgX3dlYl91bmlxdWVXZWJEYXRhVVJMXV07Ci0gICAgV2ViUmVz
b3VyY2UgKnJlc291cmNlID0gW1tbV2ViUmVzb3VyY2UgYWxsb2NdIGluaXRXaXRoRGF0YTpkYXRh
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFVSTDpVUkwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE1JTUVUeXBlOk1JTUVUeXBlIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRleHRFbmNvZGluZ05hbWU6bmlsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lTmFtZTpuaWxdIGF1dG9y
ZWxlYXNlXTsKLSAgICBbW3NlbGYgX2RhdGFTb3VyY2VdIGFkZFN1YnJlc291cmNlOnJlc291cmNl
XTsKLSAgICByZXR1cm4gcmVzb3VyY2U7Ci19Ci0KIC0gKHZvaWQpX3Bhc3RlV2l0aFBhc3RlYm9h
cmQ6KE5TUGFzdGVib2FyZCAqKXBhc3RlYm9hcmQgYWxsb3dQbGFpblRleHQ6KEJPT0wpYWxsb3dQ
bGFpblRleHQKIHsKICAgICBCT09MIGNob3NlUGxhaW5UZXh0OwpJbmRleDogV2ViS2l0L1dlYlZp
ZXcvV2ViTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L1dlYlZpZXcvV2ViTG9hZGVyLmgJ
KHJldmlzaW9uIDE0MjQ5KQorKysgV2ViS2l0L1dlYlZpZXcvV2ViTG9hZGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTczLDcgKzczLDYgQEAKIH0KIC0gKHZvaWQpc2V0U3VwcG9ydHNNdWx0aXBhcnRD
b250ZW50OihCT09MKWZsYWc7CiAtICh2b2lkKXNpZ25hbEZpbmlzaDsKLS0gKHZvaWQpc2F2ZVJl
c291cmNlOwogCiAtIChCT09MKWxvYWRXaXRoUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVz
dDsKIApJbmRleDogV2ViS2l0L1dlYlZpZXcvV2ViTG9hZGVyLm0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L1dlYlZpZXcvV2ViTG9hZGVyLm0JKHJldmlzaW9uIDE0MjQ5KQorKysgV2ViS2l0L1dlYlZp
ZXcvV2ViTG9hZGVyLm0JKHdvcmtpbmcgY29weSkKQEAgLTI1MCw3ICsyNTAsNyBAQCBzdGF0aWMg
Qk9PTCBOU1VSTENvbm5lY3Rpb25TdXBwb3J0c0J1ZmZlCiAgICAgciA9IGNsaWVudFJlcXVlc3Q7
CiAgICAgCiAgICAgaWYgKFtbciBVUkxdIGlzRXF1YWw6b3JpZ2luYWxVUkxdICYmIFtzZWxmIF9j
YW5Vc2VSZXNvdXJjZUZvclJlcXVlc3Q6cl0pIHsKLSAgICAgICAgcmVzb3VyY2UgPSBbZGF0YVNv
dXJjZSBzdWJyZXNvdXJjZUZvclVSTDpvcmlnaW5hbFVSTF07CisgICAgICAgIHJlc291cmNlID0g
W2RhdGFTb3VyY2UgX2FyY2hpdmVkU3VicmVzb3VyY2VGb3JVUkw6b3JpZ2luYWxVUkxdOwogICAg
ICAgICBpZiAocmVzb3VyY2UgIT0gbmlsKSB7CiAgICAgICAgICAgICBpZiAoW3NlbGYgX2NhblVz
ZVJlc291cmNlV2l0aFJlc3BvbnNlOltyZXNvdXJjZSBfcmVzcG9uc2VdXSkgewogICAgICAgICAg
ICAgICAgIFtyZXNvdXJjZSByZXRhaW5dOwpAQCAtMzQ1LDI1ICszNDUsNiBAQCBzdGF0aWMgQk9P
TCBOU1VSTENvbm5lY3Rpb25TdXBwb3J0c0J1ZmZlCiAgICAgfQogfQogCi0tICh2b2lkKXNhdmVS
ZXNvdXJjZQotewotICAgIC8vIERvbid0IHNhdmUgZGF0YSBhcyBhIFdlYlJlc291cmNlIGlmIGl0
IHdhcyBsb2FkZWQgZnJvbSBhIFdlYlJlc291cmNlLgotICAgIGlmIChyZXNvdXJjZSA9PSBuaWwp
IHsKLSAgICAgICAgTlNEYXRhICpkYXRhID0gW3NlbGYgcmVzb3VyY2VEYXRhXTsKLSAgICAgICAg
aWYgKFtkYXRhIGxlbmd0aF0gPiAwKSB7Ci0gICAgICAgICAgICBBU1NFUlQob3JpZ2luYWxVUkwp
OwotICAgICAgICAgICAgQVNTRVJUKFtyZXNwb25zZSBNSU1FVHlwZV0pOwotICAgICAgICAgICAg
V2ViUmVzb3VyY2UgKm5ld1Jlc291cmNlID0gW1tXZWJSZXNvdXJjZSBhbGxvY10gX2luaXRXaXRo
RGF0YTpkYXRhIFVSTDpvcmlnaW5hbFVSTCByZXNwb25zZTpyZXNwb25zZV07Ci0gICAgICAgICAg
ICBpZiAobmV3UmVzb3VyY2UgIT0gbmlsKSB7Ci0gICAgICAgICAgICAgICAgW2RhdGFTb3VyY2Ug
YWRkU3VicmVzb3VyY2U6bmV3UmVzb3VyY2VdOwotICAgICAgICAgICAgICAgIFtuZXdSZXNvdXJj
ZSByZWxlYXNlXTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KIC0g
KE5TRGF0YSAqKXJlc291cmNlRGF0YQogewogICAgIGlmIChyZXNvdXJjZSAhPSBuaWwpIHsKQEAg
LTU3Miw4ICs1NTMsNiBAQCBzdGF0aWMgQk9PTCBOU1VSTENvbm5lY3Rpb25TdXBwb3J0c0J1ZmZl
CiAgICAgCiAgICAgQVNTRVJUKCFyZWFjaGVkVGVybWluYWxTdGF0ZSk7CiAKLSAgICBbc2VsZiBz
YXZlUmVzb3VyY2VdOwotICAgIAogICAgIGlmICghc2lnbmFsbGVkRmluaXNoKQogICAgICAgICBb
c2VsZiBzaWduYWxGaW5pc2hdOwogCg==
</data>
<flag name="review"
          id="2277"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>