<?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>8208</bug_id>
          
          <creation_ts>2006-04-05 21:12:56 -0700</creation_ts>
          <short_desc>refactor unarchiving of WebArchives a bit</short_desc>
          <delta_ts>2006-04-05 21:45:32 -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>WebKit Misc.</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>38651</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-04-05 21:12:56 -0700</bug_when>
    <thetext>Patch to slightly rearrange unarchiving of WebArchives, a first step on getting it out of the way so more code can be pushed down.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38652</commentid>
    <comment_count>1</comment_count>
      <attachid>7537</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-04-05 21:13:52 -0700</bug_when>
    <thetext>Created attachment 7537
refactoring patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38653</commentid>
    <comment_count>2</comment_count>
      <attachid>7537</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-04-05 21:44:18 -0700</bug_when>
    <thetext>Comment on attachment 7537
refactoring patch

r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>7537</attachid>
            <date>2006-04-05 21:13:52 -0700</date>
            <delta_ts>2006-04-05 21:44:18 -0700</delta_ts>
            <desc>refactoring patch</desc>
            <filename>unarchive-refactor.patch.txt</filename>
            <type>text/plain</type>
            <size>20064</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMzcwOSkKKysrIFdlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw4
IEBACiAJCTIyNkU5RTZBMDlEMEFBODIwMEYzQTJCQyAvKiBXZWJOZXRzY2FwZURlcHJlY2F0ZWRG
dW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDIyNkU5RTY4MDlEMEFBODIwMEYzQTJCQyAvKiBXZWJOZXRzY2FwZURlcHJlY2F0ZWRGdW5jdGlv
bnMuaCAqLzsgfTsKIAkJMjI2RTlFNkIwOUQwQUE4MjAwRjNBMkJDIC8qIFdlYk5ldHNjYXBlRGVw
cmVjYXRlZEZ1bmN0aW9ucy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjI2RTlFNjkwOUQwQUE4MjAwRjNBMkJDIC8qIFdlYk5ldHNjYXBlRGVwcmVjYXRl
ZEZ1bmN0aW9ucy5jICovOyBzZXR0aW5ncyA9IHtDT01QSUxFUl9GTEFHUyA9ICItV25vLWRlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIjsgfTsgfTsKIAkJMjJGMjE5Q0MwOEQyMzY3MzAwMzBFMDc4IC8q
IFdlYkJhY2tGb3J3YXJkTGlzdFByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDIyRjIxOUNCMDhEMjM2NzMwMDMwRTA3OCAvKiBXZWJCYWNrRm9y
d2FyZExpc3RQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNjUwRjc0RTQwOUU0ODhGNzAwMjAxMThBIC8qIFdlYlVuYXJjaGl2aW5nU3Rh
dGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1MEY3
NEUyMDlFNDg4RjcwMDIwMTE4QSAvKiBXZWJVbmFyY2hpdmluZ1N0YXRlLmggKi87IH07CisJCTY1
MEY3NEU1MDlFNDg4RjcwMDIwMTE4QSAvKiBXZWJVbmFyY2hpdmluZ1N0YXRlLm0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTBGNzRFMzA5RTQ4OEY3MDAy
MDExOEEgLyogV2ViVW5hcmNoaXZpbmdTdGF0ZS5tICovOyB9OwogCQk2NTE5NTFFMjA5OTc0MTc4
MDAzREZDNjUgLyogV2ViTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2NTE5NTFFMTA5OTc0MTc4MDAzREZDNjUgLyogV2ViTG9hZGVyLmggKi87
IH07CiAJCTY1NDg4REExMDg0RkJDQ0IwMDgzMUFEMCAvKiBXZWJOU0RpY3Rpb25hcnlFeHRyYXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NDg4RDlG
MDg0RkJDQ0IwMDgzMUFEMCAvKiBXZWJOU0RpY3Rpb25hcnlFeHRyYXMuaCAqLzsgfTsKIAkJNjU0
ODhEQTIwODRGQkNDQjAwODMxQUQwIC8qIFdlYk5TRGljdGlvbmFyeUV4dHJhcy5tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU0ODhEQTAwODRGQkNDQjAw
ODMxQUQwIC8qIFdlYk5TRGljdGlvbmFyeUV4dHJhcy5tICovOyB9OwpAQCAtNDI2LDYgKzQyOCw4
IEBACiAJCTUxRTk0QzY4MDZDMDM0NzUwMEE5QjA5RSAvKiBXZWJQREZSZXByZXNlbnRhdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRX
aWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQ
REZSZXByZXNlbnRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKIAkJNTFFOTRDNjkwNkMwMzQ3NTAwQTlCMDlFIC8qIFdlYlBERlJl
cHJlc2VudGF0aW9uLm0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
b2JqYzsgcGF0aCA9IFdlYlBERlJlcHJlc2VudGF0aW9uLm07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1MUY2ODY2RDAzNjYwNTczMDBD
QTJEM0EgLyogV2ViTG9hZGVyLm0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IHBhdGgg
PSBXZWJMb2FkZXIubTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNjUwRjc0RTIwOUU0
ODhGNzAwMjAxMThBIC8qIFdlYlVuYXJjaGl2aW5nU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYlVuYXJjaGl2aW5nU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNjUwRjc0RTMwOUU0ODhGNzAwMjAxMThBIC8qIFdlYlVuYXJjaGl2aW5nU3Rh
dGUubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgcGF0aCA9IFdlYlVuYXJjaGl2aW5n
U3RhdGUubTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjUxOTUxRTEwOTk3NDE3ODAw
M0RGQzY1IC8qIFdlYkxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NDg4RDlGMDg0RkJD
Q0IwMDgzMUFEMCAvKiBXZWJOU0RpY3Rpb25hcnlFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTlNEaWN0aW9uYXJ5RXh0cmFzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9Owog
CQk2NTQ4OERBMDA4NEZCQ0NCMDA4MzFBRDAgLyogV2ViTlNEaWN0aW9uYXJ5RXh0cmFzLm0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgcGF0aCA9IFdlYk5T
RGljdGlvbmFyeUV4dHJhcy5tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKQEAgLTkxNyw2ICs5MjEsOCBAQAogCQk5QzdDQUJCQjAxOTBBMzdD
MEVDQTE2RUEgLyogV2ViVmlldyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCisJCQkJNjUwRjc0RTIwOUU0ODhGNzAwMjAxMThBIC8qIFdlYlVuYXJjaGl2aW5nU3Rh
dGUuaCAqLywKKwkJCQk2NTBGNzRFMzA5RTQ4OEY3MDAyMDExOEEgLyogV2ViVW5hcmNoaXZpbmdT
dGF0ZS5tICovLAogCQkJCTY1NTBCN0M1MDk5RUZBRTkwMDkwRDc4MSAvKiBXZWJBcmNoaXZlci5o
ICovLAogCQkJCTY1NTBCN0M2MDk5RUZBRTkwMDkwRDc4MSAvKiBXZWJBcmNoaXZlci5tICovLAog
CQkJCUY1MkNBNkJEMDJERjlEMEYwMTg2MzVDQSAvKiBIVE1MICovLApAQCAtMTMyNiw2ICsxMzMy
LDcgQEAKIAkJCQk2NTUwQjdDNzA5OUVGQUU5MDA5MEQ3ODEgLyogV2ViQXJjaGl2ZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUREODk2ODIwMDlBQTg3MjQwMDk3RTdGMCAvKiBXZWJFbGVtZW50RGlj
dGlvbmFyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjI2RTlFNkEwOUQwQUE4MjAwRjNBMkJDIC8q
IFdlYk5ldHNjYXBlRGVwcmVjYXRlZEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNjUw
Rjc0RTQwOUU0ODhGNzAwMjAxMThBIC8qIFdlYlVuYXJjaGl2aW5nU3RhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpAQCAtMTg3Myw2ICsxODgwLDcgQEAKIAkJCQk2NTUwQjdDODA5OUVGQUU5MDA5MEQ3ODEg
LyogV2ViQXJjaGl2ZXIubSBpbiBTb3VyY2VzICovLAogCQkJCUREODk2ODIxMDlBQTg3MjQwMDk3
RTdGMCAvKiBXZWJFbGVtZW50RGljdGlvbmFyeS5tIGluIFNvdXJjZXMgKi8sCiAJCQkJMjI2RTlF
NkIwOUQwQUE4MjAwRjNBMkJDIC8qIFdlYk5ldHNjYXBlRGVwcmVjYXRlZEZ1bmN0aW9ucy5jIGlu
IFNvdXJjZXMgKi8sCisJCQkJNjUwRjc0RTUwOUU0ODhGNzAwMjAxMThBIC8qIFdlYlVuYXJjaGl2
aW5nU3RhdGUubSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IENoYW5nZUxvZwkocmV2aXNpb24gMTM3MDkpCisrKyBDaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwzMiBAQAorMjAwNi0wNC0wNSAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBw
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAK
KyAgICAgICAgLSBzdGFydCBvbiBmYWN0b3JpbmcgV2ViQXJjaGl2ZSB1bnBhY2tpbmcgbW9yZSBp
bnRvIGEgc2VwYXJhdGUgY2xhc3MuCisKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJWaWV3L1dlYkRhdGFTb3VyY2UubToKKyAgICAgICAg
KC1bV2ViRGF0YVNvdXJjZVByaXZhdGUgZGVhbGxvY10pOgorICAgICAgICAoLVtXZWJEYXRhU291
cmNlIF9hZGRUb1VuYXJjaGl2ZVN0YXRlOl0pOgorICAgICAgICAoLVtXZWJEYXRhU291cmNlIF9w
b3BTdWJmcmFtZUFyY2hpdmVXaXRoTmFtZTpdKToKKyAgICAgICAgKC1bV2ViRGF0YVNvdXJjZSBf
ZG9jdW1lbnRGcmFnbWVudFdpdGhBcmNoaXZlOl0pOgorICAgICAgICAoLVtXZWJEYXRhU291cmNl
IF9zZXR1cEZvclJlcGxhY2VCeU1JTUVUeXBlOl0pOgorICAgICAgICAoLVtXZWJEYXRhU291cmNl
IHN1YnJlc291cmNlRm9yVVJMOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViRGF0YVNvdXJjZVBy
aXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm06CisgICAgICAgICgtW1dlYkZy
YW1lIF9sb2FkUmVxdWVzdDphcmNoaXZlOl0pOgorICAgICAgICAoLVtXZWJGcmFtZSBsb2FkUmVx
dWVzdDpdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgbG9hZEFyY2hpdmU6XSk6CisgICAgICAgICog
V2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxSZXBy
ZXNlbnRhdGlvbi5tOgorICAgICAgICAoLVtXZWJIVE1MUmVwcmVzZW50YXRpb24gbG9hZEFyY2hp
dmVdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlVuYXJjaGl2aW5nU3RhdGUuaDogQWRkZWQuCisg
ICAgICAgICogV2ViVmlldy9XZWJVbmFyY2hpdmluZ1N0YXRlLm06IEFkZGVkLgorICAgICAgICAo
LVtXZWJVbmFyY2hpdmluZ1N0YXRlIGluaXRdKToKKyAgICAgICAgKC1bV2ViVW5hcmNoaXZpbmdT
dGF0ZSBhZGRBcmNoaXZlOl0pOgorICAgICAgICAoLVtXZWJVbmFyY2hpdmluZ1N0YXRlIGFyY2hp
dmVkUmVzb3VyY2VGb3JVUkw6XSk6CisgICAgICAgICgtW1dlYlVuYXJjaGl2aW5nU3RhdGUgcG9w
U3ViZnJhbWVBcmNoaXZlV2l0aEZyYW1lTmFtZTpdKToKKwogMjAwNi0wNC0wNCAgVGltb3RoeSBI
YXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4u
CkluZGV4OiBXZWJWaWV3L1dlYkRhdGFTb3VyY2VQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Vmlldy9XZWJEYXRhU291cmNlUHJpdmF0ZS5oCShyZXZpc2lvbiAxMzcwOSkKKysrIFdlYlZpZXcv
V2ViRGF0YVNvdXJjZVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNiArNDEsNyBAQAog
QGNsYXNzIFdlYkljb25Mb2FkZXI7CiBAY2xhc3MgV2ViTWFpblJlc291cmNlTG9hZGVyOwogQGNs
YXNzIFdlYlJlc291cmNlOworQGNsYXNzIFdlYlVuYXJjaGl2aW5nU3RhdGU7CiBAY2xhc3MgV2Vi
VmlldzsKIAogQHByb3RvY29sIFdlYkRvY3VtZW50UmVwcmVzZW50YXRpb247CkBAIC0xMjQsNyAr
MTI1LDggQEAKICAgICBXZWJGcmFtZSAqd2ViRnJhbWU7CiAgICAgCiAgICAgTlNNdXRhYmxlRGlj
dGlvbmFyeSAqc3VicmVzb3VyY2VzOwotICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnBlbmRpbmdT
dWJmcmFtZUFyY2hpdmVzOworCisgICAgV2ViVW5hcmNoaXZpbmdTdGF0ZSAqdW5hcmNoaXZpbmdT
dGF0ZTsKICAgICAKICAgICBCT09MIHN1cHBvcnRzTXVsdGlwYXJ0Q29udGVudDsKIH0KQEAgLTEz
NCwxMCArMTM2LDkgQEAKIEBpbnRlcmZhY2UgV2ViRGF0YVNvdXJjZSAoV2ViUHJpdmF0ZSkKIAog
Ly8gT3RoZXIgcHJpdmF0ZSBtZXRob2RzCi0tICh2b2lkKV9hZGRTdWJyZXNvdXJjZXM6KE5TQXJy
YXkgKilzdWJyZXNvdXJjZXM7CiAtIChOU0ZpbGVXcmFwcGVyICopX2ZpbGVXcmFwcGVyRm9yVVJM
OihOU1VSTCAqKVVSTDsKKy0gKHZvaWQpX2FkZFRvVW5hcmNoaXZlU3RhdGU6KFdlYkFyY2hpdmUg
KilhcmNoaXZlOwogCi0tICh2b2lkKV9hZGRTdWJmcmFtZUFyY2hpdmVzOihOU0FycmF5ICopc3Vi
ZnJhbWVBcmNoaXZlczsKIC0gKFdlYkFyY2hpdmUgKilfcG9wU3ViZnJhbWVBcmNoaXZlV2l0aE5h
bWU6KE5TU3RyaW5nICopZnJhbWVOYW1lOwogCiAtIChET01FbGVtZW50ICopX2ltYWdlRWxlbWVu
dFdpdGhJbWFnZVJlc291cmNlOihXZWJSZXNvdXJjZSAqKXJlc291cmNlOwpJbmRleDogV2ViVmll
dy9XZWJGcmFtZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJWaWV3L1dlYkZyYW1lUHJpdmF0
ZS5oCShyZXZpc2lvbiAxMzcwOSkKKysrIFdlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTc5LDcgKzc5LDYgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQYWdlQ2FjaGVE
b2N1bWVudFZpZQogCiAvLyBPdGhlciBwcml2YXRlIG1ldGhvZHMKIC0gKE5TVVJMUmVxdWVzdCAq
KV93ZWJEYXRhUmVxdWVzdEZvckRhdGE6KE5TRGF0YSAqKWRhdGEgTUlNRVR5cGU6KE5TU3RyaW5n
ICopTUlNRVR5cGUgdGV4dEVuY29kaW5nTmFtZTooTlNTdHJpbmcgKillbmNvZGluZ05hbWUgYmFz
ZVVSTDooTlNVUkwgKilVUkwgdW5yZWFjaGFibGVVUkw6KE5TVVJMICopdW5yZWFjaGFibGVVUkw7
Ci0tICh2b2lkKV9sb2FkUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCBzdWJyZXNvdXJj
ZXM6KE5TQXJyYXkgKilzdWJyZXNvdXJjZXMgc3ViZnJhbWVBcmNoaXZlczooTlNBcnJheSAqKXN1
YmZyYW1lQXJjaGl2ZXM7CiAKIC0gKHZvaWQpX2RldGFjaEZyb21QYXJlbnQ7CiAtICh2b2lkKV9k
ZXRhY2hDaGlsZHJlbjsKSW5kZXg6IFdlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViVmlldy9XZWJIVE1MUmVwcmVzZW50YXRpb24ubQkocmV2aXNpb24gMTM3
MDkpCisrKyBXZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tCSh3b3JraW5nIGNvcHkpCkBA
IC0xMjksMTAgKzEyOSw4IEBACiB7CiAgICAgV2ViQXJjaGl2ZSAqYXJjaGl2ZSA9IFtbV2ViQXJj
aGl2ZSBhbGxvY10gaW5pdFdpdGhEYXRhOltfcHJpdmF0ZS0+ZGF0YVNvdXJjZSBkYXRhXV07CiAg
ICAgV2ViUmVzb3VyY2UgKm1haW5SZXNvdXJjZSA9IFthcmNoaXZlIG1haW5SZXNvdXJjZV07Ci0g
ICAgTlNBcnJheSAqc3VicmVzb3VyY2VzID0gW2FyY2hpdmUgc3VicmVzb3VyY2VzXTsKLSAgICBO
U0FycmF5ICpzdWJmcmFtZUFyY2hpdmVzID0gW2FyY2hpdmUgc3ViZnJhbWVBcmNoaXZlc107Ci0g
ICAgW2FyY2hpdmUgcmVsZWFzZV07CiAgICAgaWYgKCFtYWluUmVzb3VyY2UpIHsKKyAgICAgICAg
W2FyY2hpdmUgcmVsZWFzZV07CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCkBAIC0xNDEs
OCArMTM5LDkgQEAKICAgICBbX3ByaXZhdGUtPnBhcnNlZEFyY2hpdmVEYXRhIHJlbGVhc2VdOwog
ICAgIF9wcml2YXRlLT5wYXJzZWRBcmNoaXZlRGF0YSA9IGRhdGE7CiAgICAgCi0gICAgW19wcml2
YXRlLT5kYXRhU291cmNlIF9hZGRTdWJyZXNvdXJjZXM6c3VicmVzb3VyY2VzXTsKLSAgICBbX3By
aXZhdGUtPmRhdGFTb3VyY2UgX2FkZFN1YmZyYW1lQXJjaGl2ZXM6c3ViZnJhbWVBcmNoaXZlc107
CisgICAgW19wcml2YXRlLT5kYXRhU291cmNlIF9hZGRUb1VuYXJjaGl2ZVN0YXRlOmFyY2hpdmVd
OworICAgIFthcmNoaXZlIHJlbGVhc2VdOworCiAgICAgW19wcml2YXRlLT5icmlkZ2UgY2xvc2VV
UkxdOwogICAgIFtfcHJpdmF0ZS0+YnJpZGdlIG9wZW5VUkw6W21haW5SZXNvdXJjZSBVUkxdCiAg
ICAgICAgICAgICAgICAgICAgICAgIHJlbG9hZDpOTyAKSW5kZXg6IFdlYlZpZXcvV2ViVW5hcmNo
aXZpbmdTdGF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYlZpZXcvV2ViVW5hcmNoaXZpbmdTdGF0ZS5o
CShyZXZpc2lvbiAwKQorKysgV2ViVmlldy9XZWJVbmFyY2hpdmluZ1N0YXRlLmgJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAq
IDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBu
b3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8Rm91bmRhdGlvbi9G
b3VuZGF0aW9uLmg+CisKK0BjbGFzcyBXZWJBcmNoaXZlOworQGNsYXNzIFdlYlJlc291cmNlOwor
CitAaW50ZXJmYWNlIFdlYlVuYXJjaGl2aW5nU3RhdGUgOiBOU09iamVjdAoreworICAgIE5TTXV0
YWJsZURpY3Rpb25hcnkgKmFyY2hpdmVkU3ViZnJhbWVzOworICAgIE5TTXV0YWJsZURpY3Rpb25h
cnkgKmFyY2hpdmVkUmVzb3VyY2VzOworfQorCistICh2b2lkKWFkZEFyY2hpdmU6KFdlYkFyY2hp
dmUgKilhcmNoaXZlOworLSAoV2ViUmVzb3VyY2UgKilhcmNoaXZlZFJlc291cmNlRm9yVVJMOihO
U1VSTCAqKVVSTDsKKy0gKFdlYkFyY2hpdmUgKilwb3BTdWJmcmFtZUFyY2hpdmVXaXRoRnJhbWVO
YW1lOihOU1N0cmluZyAqKWZyYW1lTmFtZTsKKworQGVuZApJbmRleDogV2ViVmlldy9XZWJVbmFy
Y2hpdmluZ1N0YXRlLm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViVmlldy9XZWJVbmFyY2hpdmluZ1N0YXRl
Lm0JKHJldmlzaW9uIDApCisrKyBXZWJWaWV3L1dlYlVuYXJjaGl2aW5nU3RhdGUubQkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBD
b21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAor
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAor
ICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIp
IG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJXZWJVbmFyY2hp
dmluZ1N0YXRlLmgiCisKKyNpbXBvcnQgIldlYkFyY2hpdmUuaCIKKyNpbXBvcnQgIldlYkFzc2Vy
dGlvbnMuaCIKKyNpbXBvcnQgIldlYlJlc291cmNlLmgiCisjaW1wb3J0ICJXZWJOU1VSTEV4dHJh
cy5oIgorCitAaW1wbGVtZW50YXRpb24gV2ViVW5hcmNoaXZpbmdTdGF0ZQorCistIChpZClpbml0
Cit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7
CisgICAgCisgICAgYXJjaGl2ZWRTdWJmcmFtZXMgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxs
b2NdIGluaXRdOworICAgIGFyY2hpdmVkUmVzb3VyY2VzID0gW1tOU011dGFibGVEaWN0aW9uYXJ5
IGFsbG9jXSBpbml0XTsKKworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWFkZEFyY2hp
dmU6KFdlYkFyY2hpdmUgKilhcmNoaXZlCit7CisgICAgTlNFbnVtZXJhdG9yICplbnVtZXJhdG9y
ID0gW1thcmNoaXZlIHN1YnJlc291cmNlc10gb2JqZWN0RW51bWVyYXRvcl07CisgICAgV2ViUmVz
b3VyY2UgKnN1YnJlc291cmNlOworICAgIHdoaWxlICgoc3VicmVzb3VyY2UgPSBbZW51bWVyYXRv
ciBuZXh0T2JqZWN0XSkgIT0gbmlsKQorICAgICAgICBbYXJjaGl2ZWRSZXNvdXJjZXMgc2V0T2Jq
ZWN0OnN1YnJlc291cmNlIGZvcktleTpbW3N1YnJlc291cmNlIFVSTF0gX3dlYl9vcmlnaW5hbERh
dGFBc1N0cmluZ11dOworCisgICAgZW51bWVyYXRvciA9IFtbYXJjaGl2ZSBzdWJmcmFtZUFyY2hp
dmVzXSBvYmplY3RFbnVtZXJhdG9yXTsKKyAgICBXZWJBcmNoaXZlICpzdWJmcmFtZUFyY2hpdmU7
CisgICAgd2hpbGUgKChzdWJmcmFtZUFyY2hpdmUgPSBbZW51bWVyYXRvciBuZXh0T2JqZWN0XSkg
IT0gbmlsKSB7CisgICAgICAgIE5TU3RyaW5nICpmcmFtZU5hbWUgPSBbW3N1YmZyYW1lQXJjaGl2
ZSBtYWluUmVzb3VyY2VdIGZyYW1lTmFtZV07CisgICAgICAgIGlmIChmcmFtZU5hbWUpCisgICAg
ICAgICAgICBbYXJjaGl2ZWRTdWJmcmFtZXMgc2V0T2JqZWN0OnN1YmZyYW1lQXJjaGl2ZSBmb3JL
ZXk6ZnJhbWVOYW1lXTsKKyAgICB9Cit9CisKKy0gKFdlYlJlc291cmNlICopYXJjaGl2ZWRSZXNv
dXJjZUZvclVSTDooTlNVUkwgKilVUkwKK3sKKyAgICByZXR1cm4gW2FyY2hpdmVkUmVzb3VyY2Vz
IG9iamVjdEZvcktleTpVUkxdOworfQorCistIChXZWJBcmNoaXZlICopcG9wU3ViZnJhbWVBcmNo
aXZlV2l0aEZyYW1lTmFtZTooTlNTdHJpbmcgKilmcmFtZU5hbWUKK3sKKyAgICBBU1NFUlQoZnJh
bWVOYW1lICE9IG5pbCk7CisgICAgCisgICAgV2ViQXJjaGl2ZSAqYXJjaGl2ZSA9IFtbW2FyY2hp
dmVkU3ViZnJhbWVzIG9iamVjdEZvcktleTpmcmFtZU5hbWVdIHJldGFpbl0gYXV0b3JlbGVhc2Vd
OworICAgIGlmIChhcmNoaXZlICE9IG5pbCkKKyAgICAgICAgW2FyY2hpdmVkU3ViZnJhbWVzIHJl
bW92ZU9iamVjdEZvcktleTpmcmFtZU5hbWVdOworCisgICAgcmV0dXJuIGFyY2hpdmU7Cit9CisK
K0BlbmQKSW5kZXg6IFdlYlZpZXcvV2ViRGF0YVNvdXJjZS5tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYlZp
ZXcvV2ViRGF0YVNvdXJjZS5tCShyZXZpc2lvbiAxMzcwOSkKKysrIFdlYlZpZXcvV2ViRGF0YVNv
dXJjZS5tCSh3b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2MCw3IEBACiAjaW1wb3J0IDxXZWJLaXQv
V2ViUmVzb3VyY2VMb2FkRGVsZWdhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJSZXNvdXJjZVBy
aXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJUZXh0UmVwcmVzZW50YXRpb24uaD4KKyNpbXBv
cnQgPFdlYktpdC9XZWJVbmFyY2hpdmluZ1N0YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViVmll
d1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogCkBAIC05Miw3
ICs5Myw3IEBACiAgICAgW3Jlc3BvbnNlcyByZWxlYXNlXTsKICAgICBbd2ViRnJhbWUgcmVsZWFz
ZV07CiAgICAgW3N1YnJlc291cmNlcyByZWxlYXNlXTsKLSAgICBbcGVuZGluZ1N1YmZyYW1lQXJj
aGl2ZXMgcmVsZWFzZV07CisgICAgW3VuYXJjaGl2aW5nU3RhdGUgcmVsZWFzZV07CiAKICAgICBb
c3VwZXIgZGVhbGxvY107CiB9CkBAIC0xMDEsMTUgKzEwMiw2IEBACiAKIEBpbXBsZW1lbnRhdGlv
biBXZWJEYXRhU291cmNlIChXZWJQcml2YXRlKQogCi0tICh2b2lkKV9hZGRTdWJyZXNvdXJjZXM6
KE5TQXJyYXkgKilzdWJyZXNvdXJjZXMKLXsKLSAgICBOU0VudW1lcmF0b3IgKmVudW1lcmF0b3Ig
PSBbc3VicmVzb3VyY2VzIG9iamVjdEVudW1lcmF0b3JdOwotICAgIFdlYlJlc291cmNlICpzdWJy
ZXNvdXJjZTsKLSAgICB3aGlsZSAoKHN1YnJlc291cmNlID0gW2VudW1lcmF0b3IgbmV4dE9iamVj
dF0pICE9IG5pbCkgewotICAgICAgICBbc2VsZiBhZGRTdWJyZXNvdXJjZTpzdWJyZXNvdXJjZV07
Ci0gICAgfQotfQotCiAtIChOU0ZpbGVXcmFwcGVyICopX2ZpbGVXcmFwcGVyRm9yVVJMOihOU1VS
TCAqKVVSTAogewogICAgIGlmIChbVVJMIGlzRmlsZVVSTF0pIHsKQEAgLTEzMiwzMSArMTI0LDE2
IEBACiAgICAgcmV0dXJuIG5pbDsKIH0KIAotLSAodm9pZClfYWRkU3ViZnJhbWVBcmNoaXZlczoo
TlNBcnJheSAqKXN1YmZyYW1lQXJjaGl2ZXMKKy0gKHZvaWQpX2FkZFRvVW5hcmNoaXZlU3RhdGU6
KFdlYkFyY2hpdmUgKilhcmNoaXZlCiB7Ci0gICAgaWYgKF9wcml2YXRlLT5wZW5kaW5nU3ViZnJh
bWVBcmNoaXZlcyA9PSBuaWwpIHsKLSAgICAgICAgX3ByaXZhdGUtPnBlbmRpbmdTdWJmcmFtZUFy
Y2hpdmVzID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XTsKLSAgICB9Ci0gICAg
Ci0gICAgTlNFbnVtZXJhdG9yICplbnVtZXJhdG9yID0gW3N1YmZyYW1lQXJjaGl2ZXMgb2JqZWN0
RW51bWVyYXRvcl07Ci0gICAgV2ViQXJjaGl2ZSAqYXJjaGl2ZTsKLSAgICB3aGlsZSAoKGFyY2hp
dmUgPSBbZW51bWVyYXRvciBuZXh0T2JqZWN0XSkgIT0gbmlsKSB7Ci0gICAgICAgIE5TU3RyaW5n
ICpmcmFtZU5hbWUgPSBbW2FyY2hpdmUgbWFpblJlc291cmNlXSBmcmFtZU5hbWVdOwotICAgICAg
ICBpZiAoZnJhbWVOYW1lKSB7Ci0gICAgICAgICAgICBbX3ByaXZhdGUtPnBlbmRpbmdTdWJmcmFt
ZUFyY2hpdmVzIHNldE9iamVjdDphcmNoaXZlIGZvcktleTpmcmFtZU5hbWVdOwotICAgICAgICB9
Ci0gICAgfQorICAgIGlmICghX3ByaXZhdGUtPnVuYXJjaGl2aW5nU3RhdGUpCisgICAgICAgIF9w
cml2YXRlLT51bmFyY2hpdmluZ1N0YXRlID0gW1tXZWJVbmFyY2hpdmluZ1N0YXRlIGFsbG9jXSBp
bml0XTsKKyAgICBbX3ByaXZhdGUtPnVuYXJjaGl2aW5nU3RhdGUgYWRkQXJjaGl2ZTphcmNoaXZl
XTsKIH0KIAogLSAoV2ViQXJjaGl2ZSAqKV9wb3BTdWJmcmFtZUFyY2hpdmVXaXRoTmFtZTooTlNT
dHJpbmcgKilmcmFtZU5hbWUKIHsKLSAgICBBU1NFUlQoZnJhbWVOYW1lICE9IG5pbCk7Ci0gICAg
Ci0gICAgV2ViQXJjaGl2ZSAqYXJjaGl2ZSA9IFtbW19wcml2YXRlLT5wZW5kaW5nU3ViZnJhbWVB
cmNoaXZlcyBvYmplY3RGb3JLZXk6ZnJhbWVOYW1lXSByZXRhaW5dIGF1dG9yZWxlYXNlXTsKLSAg
ICBpZiAoYXJjaGl2ZSAhPSBuaWwpIHsKLSAgICAgICAgW19wcml2YXRlLT5wZW5kaW5nU3ViZnJh
bWVBcmNoaXZlcyByZW1vdmVPYmplY3RGb3JLZXk6ZnJhbWVOYW1lXTsKLSAgICB9Ci0gICAgcmV0
dXJuIGFyY2hpdmU7CisgICAgcmV0dXJuIFtfcHJpdmF0ZS0+dW5hcmNoaXZpbmdTdGF0ZSBwb3BT
dWJmcmFtZUFyY2hpdmVXaXRoRnJhbWVOYW1lOmZyYW1lTmFtZV07CiB9CiAKIC0gKERPTUVsZW1l
bnQgKilfaW1hZ2VFbGVtZW50V2l0aEltYWdlUmVzb3VyY2U6KFdlYlJlc291cmNlICopcmVzb3Vy
Y2UKQEAgLTE5Myw4ICsxNzAsOCBAQAogICAgICAgICBOU1N0cmluZyAqTUlNRVR5cGUgPSBbbWFp
blJlc291cmNlIE1JTUVUeXBlXTsKICAgICAgICAgaWYgKFtXZWJWaWV3IGNhblNob3dNSU1FVHlw
ZUFzSFRNTDpNSU1FVHlwZV0pIHsKICAgICAgICAgICAgIE5TU3RyaW5nICptYXJrdXBTdHJpbmcg
PSBbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aERhdGE6W21haW5SZXNvdXJjZSBkYXRhXSBlbmNv
ZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ107Ci0gICAgICAgICAgICBbc2VsZiBfYWRkU3VicmVz
b3VyY2VzOlthcmNoaXZlIHN1YnJlc291cmNlc11dOwotICAgICAgICAgICAgW3NlbGYgX2FkZFN1
YmZyYW1lQXJjaGl2ZXM6W2FyY2hpdmUgc3ViZnJhbWVBcmNoaXZlc11dOworICAgICAgICAgICAg
Ly8gRklYTUU6IHNlZW1zIHBvb3IgZm9ybSB0byBkbyB0aGlzIGFzIGEgc2lkZSBlZmZlY3Qgb2Yg
Z2V0dGluZyBhIGRvY3VtZW50IGZyYWdtZW50CisgICAgICAgICAgICBbc2VsZiBfYWRkVG9VbmFy
Y2hpdmVTdGF0ZTphcmNoaXZlXTsKICAgICAgICAgICAgIERPTURvY3VtZW50RnJhZ21lbnQgKmZy
YWdtZW50ID0gW1tzZWxmIF9icmlkZ2VdIGRvY3VtZW50RnJhZ21lbnRXaXRoTWFya3VwU3RyaW5n
Om1hcmt1cFN0cmluZyBiYXNlVVJMU3RyaW5nOltbbWFpblJlc291cmNlIFVSTF0gX3dlYl9vcmln
aW5hbERhdGFBc1N0cmluZ11dOwogICAgICAgICAgICAgW21hcmt1cFN0cmluZyByZWxlYXNlXTsK
ICAgICAgICAgICAgIHJldHVybiBmcmFnbWVudDsKQEAgLTkzOSw3ICs5MTYsNyBAQCBzdGF0aWMg
aW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNCiAgICAgW19wcml2YXRlLT5wbHVnSW5T
dHJlYW1Mb2FkZXJzIG1ha2VPYmplY3RzUGVyZm9ybVNlbGVjdG9yOkBzZWxlY3RvcihjYW5jZWwp
XTsKICAgICBbX3ByaXZhdGUtPnBsdWdJblN0cmVhbUxvYWRlcnMgcmVtb3ZlQWxsT2JqZWN0c107
CiAgICAgW19wcml2YXRlLT5zdWJyZXNvdXJjZXMgcmVtb3ZlQWxsT2JqZWN0c107Ci0gICAgW19w
cml2YXRlLT5wZW5kaW5nU3ViZnJhbWVBcmNoaXZlcyByZW1vdmVBbGxPYmplY3RzXTsKKyAgICBb
X3ByaXZhdGUtPnVuYXJjaGl2aW5nU3RhdGUgcmVsZWFzZV07CiB9CiAKIEBlbmQKQEAgLTEwODks
NiArMTA2NiwxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNCiAK
IC0gKFdlYlJlc291cmNlICopc3VicmVzb3VyY2VGb3JVUkw6KE5TVVJMICopVVJMCiB7CisgICAg
V2ViUmVzb3VyY2UgKnJlc291cmNlID0gW19wcml2YXRlLT51bmFyY2hpdmluZ1N0YXRlIGFyY2hp
dmVkUmVzb3VyY2VGb3JVUkw6VVJMXTsKKyAgICBpZiAocmVzb3VyY2UpCisgICAgICAgIHJldHVy
biByZXNvdXJjZTsKKwogICAgIHJldHVybiBbX3ByaXZhdGUtPnN1YnJlc291cmNlcyBvYmplY3RG
b3JLZXk6W1VSTCBfd2ViX29yaWdpbmFsRGF0YUFzU3RyaW5nXV07CiB9CiAKSW5kZXg6IFdlYlZp
ZXcvV2ViRnJhbWUubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJWaWV3L1dlYkZyYW1lLm0JKHJldmlzaW9u
IDEzNzA5KQorKysgV2ViVmlldy9XZWJGcmFtZS5tCSh3b3JraW5nIGNvcHkpCkBAIC0zOTcsNyAr
Mzk3LDcgQEAgc3RhdGljIGlubGluZSBXZWJGcmFtZSAqRnJhbWUoV2ViQ29yZUZyYQogICAgIHJl
dHVybiBjb21wYXJlRGF0YVNvdXJjZSAhPSBuaWwgJiYgW3VucmVhY2hhYmxlVVJMIGlzRXF1YWw6
W1tjb21wYXJlRGF0YVNvdXJjZSByZXF1ZXN0XSBVUkxdXTsKIH0KIAotLSAodm9pZClfbG9hZFJl
cXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Qgc3VicmVzb3VyY2VzOihOU0FycmF5ICopc3Vi
cmVzb3VyY2VzIHN1YmZyYW1lQXJjaGl2ZXM6KE5TQXJyYXkgKilzdWJmcmFtZUFyY2hpdmVzCist
ICh2b2lkKV9sb2FkUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCBhcmNoaXZlOihXZWJB
cmNoaXZlICopYXJjaGl2ZQogewogICAgIFdlYkZyYW1lTG9hZFR5cGUgbG9hZFR5cGU7CiAgICAg
CkBAIC00MTMsOCArNDEzLDcgQEAgc3RhdGljIGlubGluZSBXZWJGcmFtZSAqRnJhbWUoV2ViQ29y
ZUZyYQogICAgIH0KICAgICAKICAgICBbbmV3RGF0YVNvdXJjZSBfc2V0T3ZlcnJpZGVFbmNvZGlu
ZzpbW3NlbGYgZGF0YVNvdXJjZV0gX292ZXJyaWRlRW5jb2RpbmddXTsKLSAgICBbbmV3RGF0YVNv
dXJjZSBfYWRkU3VicmVzb3VyY2VzOnN1YnJlc291cmNlc107Ci0gICAgW25ld0RhdGFTb3VyY2Ug
X2FkZFN1YmZyYW1lQXJjaGl2ZXM6c3ViZnJhbWVBcmNoaXZlc107CisgICAgW25ld0RhdGFTb3Vy
Y2UgX2FkZFRvVW5hcmNoaXZlU3RhdGU6YXJjaGl2ZV07CiAgICAgCiAgICAgLy8gV2hlbiB3ZSBs
b2FkaW5nIGFsdGVybmF0ZSBjb250ZW50IGZvciBhbiB1bnJlYWNoYWJsZSBVUkwgdGhhdCB3ZSdy
ZQogICAgIC8vIHZpc2l0aW5nIGluIHRoZSBiL2YgbGlzdCwgd2UgdHJlYXQgaXQgYXMgYSByZWxv
YWQgc28gdGhlIGIvZiBsaXN0IApAQCAtMjg4MSw3ICsyODgwLDcgQEAgc3RhdGljIENGQWJzb2x1
dGVUaW1lIF90aW1lT2ZMYXN0Q29tcGxldAogCiAtICh2b2lkKWxvYWRSZXF1ZXN0OihOU1VSTFJl
cXVlc3QgKilyZXF1ZXN0CiB7Ci0gICAgW3NlbGYgX2xvYWRSZXF1ZXN0OnJlcXVlc3Qgc3VicmVz
b3VyY2VzOm5pbCBzdWJmcmFtZUFyY2hpdmVzOm5pbF07CisgICAgW3NlbGYgX2xvYWRSZXF1ZXN0
OnJlcXVlc3QgYXJjaGl2ZTpuaWxdOwogfQogCiAtICh2b2lkKV9sb2FkRGF0YTooTlNEYXRhICop
ZGF0YSBNSU1FVHlwZTooTlNTdHJpbmcgKilNSU1FVHlwZSB0ZXh0RW5jb2RpbmdOYW1lOihOU1N0
cmluZyAqKWVuY29kaW5nTmFtZSBiYXNlVVJMOihOU1VSTCAqKVVSTCB1bnJlYWNoYWJsZVVSTDoo
TlNVUkwgKil1bnJlYWNoYWJsZVVSTApAQCAtMjkzNSw3ICsyOTM0LDcgQEAgc3RhdGljIENGQWJz
b2x1dGVUaW1lIF90aW1lT2ZMYXN0Q29tcGxldAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXh0RW5jb2RpbmdOYW1lOlttYWluUmVzb3VyY2UgdGV4dEVuY29k
aW5nTmFtZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYmFzZVVSTDpbbWFpblJlc291cmNlIFVSTF0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnJlYWNoYWJsZVVSTDpuaWxdOwotICAgICAgICBbc2Vs
ZiBfbG9hZFJlcXVlc3Q6cmVxdWVzdCBzdWJyZXNvdXJjZXM6W2FyY2hpdmUgc3VicmVzb3VyY2Vz
XSBzdWJmcmFtZUFyY2hpdmVzOlthcmNoaXZlIHN1YmZyYW1lQXJjaGl2ZXNdXTsKKyAgICAgICAg
W3NlbGYgX2xvYWRSZXF1ZXN0OnJlcXVlc3QgYXJjaGl2ZTphcmNoaXZlXTsKICAgICB9CiB9CiAK
</data>
<flag name="review"
          id="2062"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>