<?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>76117</bug_id>
          
          <creation_ts>2012-01-11 16:26:51 -0800</creation_ts>
          <short_desc>Code duplication for invoking the JIT and DFG should be reduced</short_desc>
          <delta_ts>2012-01-11 17:24:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>534383</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-11 16:26:51 -0800</bug_when>
    <thetext>The harness for doing JIT compilation for program and eval code is identical modulo which CodeBlock it references, and the harness for doing JIT compilation of function for call and function for construct is identical modulo which code block, jitCode, and jitCodeWithArityCheck it references.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534386</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-11 16:27:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/10680189&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534391</commentid>
    <comment_count>2</comment_count>
      <attachid>122125</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-11 16:31:53 -0800</bug_when>
    <thetext>Created attachment 122125
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534396</commentid>
    <comment_count>3</comment_count>
      <attachid>122125</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-01-11 16:34:11 -0800</bug_when>
    <thetext>Comment on attachment 122125
the patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534440</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-01-11 17:24:38 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/104774</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122125</attachid>
            <date>2012-01-11 16:31:53 -0800</date>
            <delta_ts>2012-01-11 16:34:11 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>refactorjitdriver_patch_1.diff</filename>
            <type>text/plain</type>
            <size>15474</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA0NzY0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBA
CisyMDEyLTAxLTExICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Q29kZSBkdXBsaWNhdGlvbiBmb3IgaW52b2tpbmcgdGhlIEpJVCBhbmQgREZHIHNob3VsZCBiZSBy
ZWR1Y2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
NjExNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTA2ODAxODk+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgor
ICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogaml0L0pJVERyaXZlci5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6aml0Q29tcGlsZUlm
QXBwcm9wcmlhdGUpOgorICAgICAgICAoSlNDOjpqaXRDb21waWxlRnVuY3Rpb25JZkFwcHJvcHJp
YXRlKToKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuY3BwOgorICAgICAgICAoSlNDOjpF
dmFsRXhlY3V0YWJsZTo6Y29tcGlsZUludGVybmFsKToKKyAgICAgICAgKEpTQzo6UHJvZ3JhbUV4
ZWN1dGFibGU6OmNvbXBpbGVJbnRlcm5hbCk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uRXhlY3V0
YWJsZTo6Y29tcGlsZUZvckNhbGxJbnRlcm5hbCk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uRXhl
Y3V0YWJsZTo6Y29tcGlsZUZvckNvbnN0cnVjdEludGVybmFsKToKKwogMjAxMi0wMS0wOSAgR2Vv
ZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT046IGQz
IEJ1bGxldCBDaGFydHMgZGVtbyBkb2Vzbid0IHdvcmsgKGNhbGwgd2l0aCBhcmd1bWVudCBhc3Np
Z25tZW50IGlzIGJyb2tlbikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCShyZXZpc2lvbiAxMDQ3NTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtMjY4LDYgKzI2OCw3IEBAIGphdmFz
Y3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2Fs
bDMyXzY0LmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsLmNwcCBcCiAJ
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklURHJpdmVyLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNw
cCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMTA0NzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTYw
LDYgKzYwLDcgQEAKIAkJMEYwQjgzQjkxNEJDRjk1RjAwODg1QjRGIC8qIENhbGxSZXR1cm5PZmZz
ZXRUb0J5dGVjb2RlT2Zmc2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjBCODNCODE0QkNGOTVCMDA4ODVCNEYgLyogQ2FsbFJldHVybk9mZnNldFRv
Qnl0ZWNvZGVPZmZzZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkwRjE1RjE1RjE0QjdBNzNFMDA1REUzN0QgLyogQ29tbW9uU2xvd1BhdGhzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE1RjE1RDE0
QjdBNzNBMDA1REUzN0QgLyogQ29tbW9uU2xvd1BhdGhzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYxNkQ3MjYxNDJDMzlDMDAwQ0Y3ODRBIC8q
IEJpdFZlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjE2RDcyNDE0MkMzOUEyMDBDRjc4NEEgLyogQml0VmVjdG9yLmNwcCAqLzsgfTsKKwkJ
MEYyMUMyNjgxNEJFNUY2ODAwQURDNjRCIC8qIEpJVERyaXZlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyMUMyNjYxNEJFNUY1RTAwQURDNjRCIC8q
IEpJVERyaXZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTBGMjQyREE3MTNGM0IxRTgwMDdBREQ0QyAvKiBXZWFrUmVmZXJlbmNlSGFydmVzdGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjI0MkRB
NTEzRjNCMUJCMDA3QURENEMgLyogV2Vha1JlZmVyZW5jZUhhcnZlc3Rlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMkM1NTZGMTQ3MzhGMzEw
MDEyMUU0RiAvKiBERkdDb2RlQmxvY2tzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjJDNTU2RTE0NzM4RjJFMDAxMjFFNEYgLyogREZHQ29kZUJsb2Nr
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
MkM1NTcwMTQ3MzhGMzUwMDEyMUU0RiAvKiBERkdDb2RlQmxvY2tzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkM1NTZEMTQ3MzhGMkUwMDEyMUU0
RiAvKiBERkdDb2RlQmxvY2tzLmNwcCAqLzsgfTsKQEAgLTgyNyw2ICs4MjgsNyBAQAogCQkwRjBC
ODNCODE0QkNGOTVCMDA4ODVCNEYgLyogQ2FsbFJldHVybk9mZnNldFRvQnl0ZWNvZGVPZmZzZXQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FsbFJldHVybk9mZnNldFRvQnl0
ZWNvZGVPZmZzZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxNUYxNUQxNEI3
QTczQTAwNURFMzdEIC8qIENvbW1vblNsb3dQYXRocy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDb21tb25TbG93UGF0aHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEYxNkQ3MjQxNDJDMzlBMjAwQ0Y3ODRBIC8qIEJpdFZlY3Rvci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCaXRWZWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwRjIxQzI2NjE0QkU1RjVFMDBBREM2NEIgLyogSklURHJpdmVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJVERyaXZlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjI0MkRBNTEzRjNCMUJCMDA3QURENEMgLyogV2Vha1JlZmVyZW5j
ZUhhcnZlc3Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWFrUmVmZXJl
bmNlSGFydmVzdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMkM1NTZEMTQ3
MzhGMkUwMDEyMUU0RiAvKiBERkdDb2RlQmxvY2tzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IERGR0NvZGVCbG9ja3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjJDNTU2RTE0NzM4RjJFMDAxMjFFNEYgLyogREZHQ29kZUJsb2Nrcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBERkdDb2RlQmxvY2tzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNzA3LDYgKzE3MDksNyBAQAogCQkJCTg2Q0M4NUEyMEVFNzlC
NzQwMDI4ODY4MiAvKiBKSVRDYWxsLmNwcCAqLywKIAkJCQkxNDZGRTUxMTExQTcxMDQzMDA4N0FF
NjYgLyogSklUQ2FsbDMyXzY0LmNwcCAqLywKIAkJCQk4NkNDRUZERDBGNDEzRjg5MDBGRDdGOUUg
LyogSklUQ29kZS5oICovLAorCQkJCTBGMjFDMjY2MTRCRTVGNUUwMEFEQzY0QiAvKiBKSVREcml2
ZXIuaCAqLywKIAkJCQk4NkNDODVBMDBFRTc5QTQ3MDAyODg2ODIgLyogSklUSW5saW5lTWV0aG9k
cy5oICovLAogCQkJCUJDREQ1MUU5MEZCOERGNzQwMDRBOEJEQyAvKiBKSVRPcGNvZGVzLmNwcCAq
LywKIAkJCQlBNzEyMzZFNDExOTVGMzNDMDBCRDIxNzQgLyogSklUT3Bjb2RlczMyXzY0LmNwcCAq
LywKQEAgLTMwMjEsNiArMzAyNCw3IEBACiAJCQkJMEYwQjgzQjUxNEJDRjg2MjAwODg1QjRGIC8q
IE1ldGhvZENhbGxMaW5rSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYwQjgzQjcxNEJDRjhF
MTAwODg1QjRGIC8qIEdsb2JhbFJlc29sdmVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjBC
ODNCOTE0QkNGOTVGMDA4ODVCNEYgLyogQ2FsbFJldHVybk9mZnNldFRvQnl0ZWNvZGVPZmZzZXQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGMjFDMjY4MTRCRTVGNjgwMEFEQzY0QiAvKiBKSVREcml2
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRE
cml2ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVERyaXZl
ci5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVREcml2ZXIu
aAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBKSVREcml2ZXJfaAorI2RlZmluZSBKSVRE
cml2ZXJfaAorCisjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CisKKyNpZiBFTkFCTEUoSklUKQor
CisjaW5jbHVkZSAiQnl0ZWNvZGVHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJERkdEcml2ZXIuaCIK
KyNpbmNsdWRlICJKSVQuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK3RlbXBsYXRlPHR5cGVuYW1l
IENvZGVCbG9ja1R5cGU+CitpbmxpbmUgYm9vbCBqaXRDb21waWxlSWZBcHByb3ByaWF0ZShFeGVj
U3RhdGUqIGV4ZWMsIE93blB0cjxDb2RlQmxvY2tUeXBlPiYgY29kZUJsb2NrLCBKSVRDb2RlJiBq
aXRDb2RlLCBKSVRDb2RlOjpKSVRUeXBlIGppdFR5cGUpCit7CisgICAgaWYgKCFleGVjLT5nbG9i
YWxEYXRhKCkuY2FuVXNlSklUKCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIAorICAgIGJv
b2wgZGZnQ29tcGlsZWQgPSBmYWxzZTsKKyAgICBpZiAoaml0VHlwZSA9PSBKSVRDb2RlOjpERkdK
SVQpCisgICAgICAgIGRmZ0NvbXBpbGVkID0gREZHOjp0cnlDb21waWxlKGV4ZWMsIGNvZGVCbG9j
ay5nZXQoKSwgaml0Q29kZSk7CisgICAgaWYgKGRmZ0NvbXBpbGVkKSB7CisgICAgICAgIGlmIChj
b2RlQmxvY2stPmFsdGVybmF0aXZlKCkpCisgICAgICAgICAgICBjb2RlQmxvY2stPmFsdGVybmF0
aXZlKCktPnVubGlua0luY29taW5nQ2FsbHMoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAo
Y29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgpKSB7CisgICAgICAgICAgICBjb2RlQmxvY2sgPSBzdGF0
aWNfcG9pbnRlcl9jYXN0PENvZGVCbG9ja1R5cGU+KGNvZGVCbG9jay0+cmVsZWFzZUFsdGVybmF0
aXZlKCkpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGpp
dENvZGUgPSBKSVQ6OmNvbXBpbGUoJmV4ZWMtPmdsb2JhbERhdGEoKSwgY29kZUJsb2NrLmdldCgp
KTsKKyAgICB9CisjaWYgIUVOQUJMRShPUENPREVfU0FNUExJTkcpCisgICAgaWYgKCFCeXRlY29k
ZUdlbmVyYXRvcjo6ZHVtcHNHZW5lcmF0ZWRDb2RlKCkpCisgICAgICAgIGNvZGVCbG9jay0+aGFu
ZGxlQnl0ZWNvZGVEaXNjYXJkaW5nT3Bwb3J0dW5pdHkoKTsKKyNlbmRpZgorICAgIGNvZGVCbG9j
ay0+c2V0SklUQ29kZShqaXRDb2RlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKSk7CisgICAgCisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK2lubGluZSBib29sIGppdENvbXBpbGVGdW5jdGlvbklmQXBw
cm9wcmlhdGUoRXhlY1N0YXRlKiBleGVjLCBPd25QdHI8RnVuY3Rpb25Db2RlQmxvY2s+JiBjb2Rl
QmxvY2ssIEpJVENvZGUmIGppdENvZGUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciYgaml0Q29kZVdp
dGhBcml0eUNoZWNrLCBTaGFyZWRTeW1ib2xUYWJsZSomIHN5bWJvbFRhYmxlLCBKSVRDb2RlOjpK
SVRUeXBlIGppdFR5cGUpCit7CisgICAgSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhID0gZXhlYy0+
Z2xvYmFsRGF0YSgpOworICAgIGlmICghZ2xvYmFsRGF0YS5jYW5Vc2VKSVQoKSkKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgCisgICAgYm9vbCBkZmdDb21waWxlZCA9IGZhbHNlOworICAgIGlm
IChqaXRUeXBlID09IEpJVENvZGU6OkRGR0pJVCkKKyAgICAgICAgZGZnQ29tcGlsZWQgPSBERkc6
OnRyeUNvbXBpbGVGdW5jdGlvbihleGVjLCBjb2RlQmxvY2suZ2V0KCksIGppdENvZGUsIGppdENv
ZGVXaXRoQXJpdHlDaGVjayk7CisgICAgaWYgKGRmZ0NvbXBpbGVkKSB7CisgICAgICAgIGlmIChj
b2RlQmxvY2stPmFsdGVybmF0aXZlKCkpCisgICAgICAgICAgICBjb2RlQmxvY2stPmFsdGVybmF0
aXZlKCktPnVubGlua0luY29taW5nQ2FsbHMoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAo
Y29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgpKSB7CisgICAgICAgICAgICBjb2RlQmxvY2sgPSBzdGF0
aWNfcG9pbnRlcl9jYXN0PEZ1bmN0aW9uQ29kZUJsb2NrPihjb2RlQmxvY2stPnJlbGVhc2VBbHRl
cm5hdGl2ZSgpKTsKKyAgICAgICAgICAgIHN5bWJvbFRhYmxlID0gY29kZUJsb2NrLT5zaGFyZWRT
eW1ib2xUYWJsZSgpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAg
ICAgIGppdENvZGUgPSBKSVQ6OmNvbXBpbGUoJmdsb2JhbERhdGEsIGNvZGVCbG9jay5nZXQoKSwg
JmppdENvZGVXaXRoQXJpdHlDaGVjayk7CisgICAgfQorI2lmICFFTkFCTEUoT1BDT0RFX1NBTVBM
SU5HKQorICAgIGlmICghQnl0ZWNvZGVHZW5lcmF0b3I6OmR1bXBzR2VuZXJhdGVkQ29kZSgpKQor
ICAgICAgICBjb2RlQmxvY2stPmhhbmRsZUJ5dGVjb2RlRGlzY2FyZGluZ09wcG9ydHVuaXR5KCk7
CisjZW5kaWYKKyAgICAKKyAgICBjb2RlQmxvY2stPnNldEpJVENvZGUoaml0Q29kZSwgaml0Q29k
ZVdpdGhBcml0eUNoZWNrKTsKKyAgICAKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1l
c3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCisjZW5kaWYgLy8gSklURHJpdmVy
X2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5j
cHAJKHJldmlzaW9uIDEwNDc1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4
ZWN1dGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAi
Q29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiREZHRHJpdmVyLmgiCiAjaW5jbHVkZSAiSklULmgiCisj
aW5jbHVkZSAiSklURHJpdmVyLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgiCiAjaW5jbHVkZSAiVVN0
cmluZ0J1aWxkZXIuaCIKICNpbmNsdWRlICJWZWN0b3IuaCIKQEAgLTIwOSwyNyArMjEwLDggQEAg
SlNPYmplY3QqIEV2YWxFeGVjdXRhYmxlOjpjb21waWxlSW50ZXJuYQogICAgIH0KIAogI2lmIEVO
QUJMRShKSVQpCi0gICAgaWYgKGV4ZWMtPmdsb2JhbERhdGEoKS5jYW5Vc2VKSVQoKSkgewotICAg
ICAgICBib29sIGRmZ0NvbXBpbGVkID0gZmFsc2U7Ci0gICAgICAgIGlmIChqaXRUeXBlID09IEpJ
VENvZGU6OkRGR0pJVCkKLSAgICAgICAgICAgIGRmZ0NvbXBpbGVkID0gREZHOjp0cnlDb21waWxl
KGV4ZWMsIG1fZXZhbENvZGVCbG9jay5nZXQoKSwgbV9qaXRDb2RlRm9yQ2FsbCk7Ci0gICAgICAg
IGlmIChkZmdDb21waWxlZCkKLSAgICAgICAgICAgIEFTU0VSVCghbV9ldmFsQ29kZUJsb2NrLT5h
bHRlcm5hdGl2ZSgpIHx8ICFtX2V2YWxDb2RlQmxvY2stPmFsdGVybmF0aXZlKCktPmhhc0luY29t
aW5nQ2FsbHMoKSk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgaWYgKG1fZXZhbENvZGVC
bG9jay0+YWx0ZXJuYXRpdmUoKSkgewotICAgICAgICAgICAgICAgIC8vIFRoZXJlIGlzIGFscmVh
ZHkgYW4gYWx0ZXJuYXRpdmUgcGllY2Ugb2YgY29kZSBjb21waWxlZCB3aXRoIGEgZGlmZmVyZW50
Ci0gICAgICAgICAgICAgICAgLy8gSklULCBzbyB3ZSBjYW4gc2lsZW50bHkgZmFpbC4KLSAgICAg
ICAgICAgICAgICBtX2V2YWxDb2RlQmxvY2sgPSBzdGF0aWNfcG9pbnRlcl9jYXN0PEV2YWxDb2Rl
QmxvY2s+KG1fZXZhbENvZGVCbG9jay0+cmVsZWFzZUFsdGVybmF0aXZlKCkpOwotICAgICAgICAg
ICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbV9qaXRDb2RlRm9y
Q2FsbCA9IEpJVDo6Y29tcGlsZShzY29wZUNoYWluTm9kZS0+Z2xvYmFsRGF0YSwgbV9ldmFsQ29k
ZUJsb2NrLmdldCgpKTsKLSAgICAgICAgfQotI2lmICFFTkFCTEUoT1BDT0RFX1NBTVBMSU5HKQot
ICAgICAgICBpZiAoIUJ5dGVjb2RlR2VuZXJhdG9yOjpkdW1wc0dlbmVyYXRlZENvZGUoKSkKLSAg
ICAgICAgICAgIG1fZXZhbENvZGVCbG9jay0+aGFuZGxlQnl0ZWNvZGVEaXNjYXJkaW5nT3Bwb3J0
dW5pdHkoKTsKLSNlbmRpZgotICAgICAgICBtX2V2YWxDb2RlQmxvY2stPnNldEpJVENvZGUobV9q
aXRDb2RlRm9yQ2FsbCwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCkpOwotICAgIH0KKyAgICBpZiAo
IWppdENvbXBpbGVJZkFwcHJvcHJpYXRlKGV4ZWMsIG1fZXZhbENvZGVCbG9jaywgbV9qaXRDb2Rl
Rm9yQ2FsbCwgaml0VHlwZSkpCisgICAgICAgIHJldHVybiAwOwogI2VuZGlmCiAKICNpZiBFTkFC
TEUoSklUKQpAQCAtMzU0LDI2ICszMzYsOCBAQCBKU09iamVjdCogUHJvZ3JhbUV4ZWN1dGFibGU6
OmNvbXBpbGVJbnRlCiAgICAgfQogCiAjaWYgRU5BQkxFKEpJVCkKLSAgICBpZiAoZXhlYy0+Z2xv
YmFsRGF0YSgpLmNhblVzZUpJVCgpKSB7Ci0gICAgICAgIGJvb2wgZGZnQ29tcGlsZWQgPSBmYWxz
ZTsKLSAgICAgICAgaWYgKGppdFR5cGUgPT0gSklUQ29kZTo6REZHSklUKQotICAgICAgICAgICAg
ZGZnQ29tcGlsZWQgPSBERkc6OnRyeUNvbXBpbGUoZXhlYywgbV9wcm9ncmFtQ29kZUJsb2NrLmdl
dCgpLCBtX2ppdENvZGVGb3JDYWxsKTsKLSAgICAgICAgaWYgKGRmZ0NvbXBpbGVkKSB7Ci0gICAg
ICAgICAgICBpZiAobV9wcm9ncmFtQ29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgpKQotICAgICAgICAg
ICAgICAgIG1fcHJvZ3JhbUNvZGVCbG9jay0+YWx0ZXJuYXRpdmUoKS0+dW5saW5rSW5jb21pbmdD
YWxscygpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG1fcHJvZ3JhbUNvZGVC
bG9jay0+YWx0ZXJuYXRpdmUoKSkgewotICAgICAgICAgICAgICAgIG1fcHJvZ3JhbUNvZGVCbG9j
ayA9IHN0YXRpY19wb2ludGVyX2Nhc3Q8UHJvZ3JhbUNvZGVCbG9jaz4obV9wcm9ncmFtQ29kZUJs
b2NrLT5yZWxlYXNlQWx0ZXJuYXRpdmUoKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBtX2ppdENvZGVGb3JDYWxsID0gSklUOjpjb21waWxl
KHNjb3BlQ2hhaW5Ob2RlLT5nbG9iYWxEYXRhLCBtX3Byb2dyYW1Db2RlQmxvY2suZ2V0KCkpOwot
ICAgICAgICB9Ci0jaWYgIUVOQUJMRShPUENPREVfU0FNUExJTkcpCi0gICAgICAgIGlmICghQnl0
ZWNvZGVHZW5lcmF0b3I6OmR1bXBzR2VuZXJhdGVkQ29kZSgpKQotICAgICAgICAgICAgbV9wcm9n
cmFtQ29kZUJsb2NrLT5oYW5kbGVCeXRlY29kZURpc2NhcmRpbmdPcHBvcnR1bml0eSgpOwotI2Vu
ZGlmCi0gICAgICAgIG1fcHJvZ3JhbUNvZGVCbG9jay0+c2V0SklUQ29kZShtX2ppdENvZGVGb3JD
YWxsLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKSk7Ci0gICAgfQorICAgIGlmICghaml0Q29tcGls
ZUlmQXBwcm9wcmlhdGUoZXhlYywgbV9wcm9ncmFtQ29kZUJsb2NrLCBtX2ppdENvZGVGb3JDYWxs
LCBqaXRUeXBlKSkKKyAgICAgICAgcmV0dXJuIDA7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShKSVQp
CkBAIC01NDAsMjkgKzUwNCw4IEBAIEpTT2JqZWN0KiBGdW5jdGlvbkV4ZWN1dGFibGU6OmNvbXBp
bGVGb3IKICAgICBtX3N5bWJvbFRhYmxlID0gbV9jb2RlQmxvY2tGb3JDYWxsLT5zaGFyZWRTeW1i
b2xUYWJsZSgpOwogCiAjaWYgRU5BQkxFKEpJVCkKLSAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERh
dGEgPSBzY29wZUNoYWluTm9kZS0+Z2xvYmFsRGF0YTsKLSAgICBpZiAoZ2xvYmFsRGF0YS0+Y2Fu
VXNlSklUKCkpIHsKLSAgICAgICAgYm9vbCBkZmdDb21waWxlZCA9IGZhbHNlOwotICAgICAgICBp
ZiAoaml0VHlwZSA9PSBKSVRDb2RlOjpERkdKSVQpCi0gICAgICAgICAgICBkZmdDb21waWxlZCA9
IERGRzo6dHJ5Q29tcGlsZUZ1bmN0aW9uKGV4ZWMsIG1fY29kZUJsb2NrRm9yQ2FsbC5nZXQoKSwg
bV9qaXRDb2RlRm9yQ2FsbCwgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrKTsKLSAgICAg
ICAgaWYgKGRmZ0NvbXBpbGVkKSB7Ci0gICAgICAgICAgICBpZiAobV9jb2RlQmxvY2tGb3JDYWxs
LT5hbHRlcm5hdGl2ZSgpKQotICAgICAgICAgICAgICAgIG1fY29kZUJsb2NrRm9yQ2FsbC0+YWx0
ZXJuYXRpdmUoKS0+dW5saW5rSW5jb21pbmdDYWxscygpOwotICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgaWYgKG1fY29kZUJsb2NrRm9yQ2FsbC0+YWx0ZXJuYXRpdmUoKSkgewotICAgICAg
ICAgICAgICAgIG1fY29kZUJsb2NrRm9yQ2FsbCA9IHN0YXRpY19wb2ludGVyX2Nhc3Q8RnVuY3Rp
b25Db2RlQmxvY2s+KG1fY29kZUJsb2NrRm9yQ2FsbC0+cmVsZWFzZUFsdGVybmF0aXZlKCkpOwot
ICAgICAgICAgICAgICAgIG1fc3ltYm9sVGFibGUgPSBtX2NvZGVCbG9ja0ZvckNhbGwtPnNoYXJl
ZFN5bWJvbFRhYmxlKCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBtX2ppdENvZGVGb3JDYWxsID0gSklUOjpjb21waWxlKGdsb2JhbERhdGEs
IG1fY29kZUJsb2NrRm9yQ2FsbC5nZXQoKSwgJm1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVj
ayk7Ci0gICAgICAgIH0KLSNpZiAhRU5BQkxFKE9QQ09ERV9TQU1QTElORykKLSAgICAgICAgaWYg
KCFCeXRlY29kZUdlbmVyYXRvcjo6ZHVtcHNHZW5lcmF0ZWRDb2RlKCkpCi0gICAgICAgICAgICBt
X2NvZGVCbG9ja0ZvckNhbGwtPmhhbmRsZUJ5dGVjb2RlRGlzY2FyZGluZ09wcG9ydHVuaXR5KCk7
Ci0jZW5kaWYKLSAgICAgICAgCi0gICAgICAgIG1fY29kZUJsb2NrRm9yQ2FsbC0+c2V0SklUQ29k
ZShtX2ppdENvZGVGb3JDYWxsLCBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2spOwotICAg
IH0KKyAgICBpZiAoIWppdENvbXBpbGVGdW5jdGlvbklmQXBwcm9wcmlhdGUoZXhlYywgbV9jb2Rl
QmxvY2tGb3JDYWxsLCBtX2ppdENvZGVGb3JDYWxsLCBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5
Q2hlY2ssIG1fc3ltYm9sVGFibGUsIGppdFR5cGUpKQorICAgICAgICByZXR1cm4gMDsKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKEpJVCkKQEAgLTYwMywyOSArNTQ2LDggQEAgSlNPYmplY3QqIEZ1bmN0
aW9uRXhlY3V0YWJsZTo6Y29tcGlsZUZvcgogICAgIG1fc3ltYm9sVGFibGUgPSBtX2NvZGVCbG9j
a0ZvckNvbnN0cnVjdC0+c2hhcmVkU3ltYm9sVGFibGUoKTsKIAogI2lmIEVOQUJMRShKSVQpCi0g
ICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhID0gc2NvcGVDaGFpbk5vZGUtPmdsb2JhbERhdGE7
Ci0gICAgaWYgKGdsb2JhbERhdGEtPmNhblVzZUpJVCgpKSB7Ci0gICAgICAgIGJvb2wgZGZnQ29t
cGlsZWQgPSBmYWxzZTsKLSAgICAgICAgaWYgKGppdFR5cGUgPT0gSklUQ29kZTo6REZHSklUKQot
ICAgICAgICAgICAgZGZnQ29tcGlsZWQgPSBERkc6OnRyeUNvbXBpbGVGdW5jdGlvbihleGVjLCBt
X2NvZGVCbG9ja0ZvckNvbnN0cnVjdC5nZXQoKSwgbV9qaXRDb2RlRm9yQ29uc3RydWN0LCBtX2pp
dENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayk7Ci0gICAgICAgIGlmIChkZmdDb21waWxl
ZCkgewotICAgICAgICAgICAgaWYgKG1fY29kZUJsb2NrRm9yQ29uc3RydWN0LT5hbHRlcm5hdGl2
ZSgpKQotICAgICAgICAgICAgICAgIG1fY29kZUJsb2NrRm9yQ29uc3RydWN0LT5hbHRlcm5hdGl2
ZSgpLT51bmxpbmtJbmNvbWluZ0NhbGxzKCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICBpZiAobV9jb2RlQmxvY2tGb3JDb25zdHJ1Y3QtPmFsdGVybmF0aXZlKCkpIHsKLSAgICAgICAg
ICAgICAgICBtX2NvZGVCbG9ja0ZvckNvbnN0cnVjdCA9IHN0YXRpY19wb2ludGVyX2Nhc3Q8RnVu
Y3Rpb25Db2RlQmxvY2s+KG1fY29kZUJsb2NrRm9yQ29uc3RydWN0LT5yZWxlYXNlQWx0ZXJuYXRp
dmUoKSk7Ci0gICAgICAgICAgICAgICAgbV9zeW1ib2xUYWJsZSA9IG1fY29kZUJsb2NrRm9yQ29u
c3RydWN0LT5zaGFyZWRTeW1ib2xUYWJsZSgpOwotICAgICAgICAgICAgICAgIHJldHVybiAwOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0ID0gSklUOjpj
b21waWxlKGdsb2JhbERhdGEsIG1fY29kZUJsb2NrRm9yQ29uc3RydWN0LmdldCgpLCAmbV9qaXRD
b2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2spOwotICAgICAgICB9Ci0jaWYgIUVOQUJMRShP
UENPREVfU0FNUExJTkcpCi0gICAgICAgIGlmICghQnl0ZWNvZGVHZW5lcmF0b3I6OmR1bXBzR2Vu
ZXJhdGVkQ29kZSgpKQotICAgICAgICAgICAgbV9jb2RlQmxvY2tGb3JDb25zdHJ1Y3QtPmhhbmRs
ZUJ5dGVjb2RlRGlzY2FyZGluZ09wcG9ydHVuaXR5KCk7Ci0jZW5kaWYKLSAgICAgICAgCi0gICAg
ICAgIG1fY29kZUJsb2NrRm9yQ29uc3RydWN0LT5zZXRKSVRDb2RlKG1faml0Q29kZUZvckNvbnN0
cnVjdCwgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2spOwotICAgIH0KKyAgICBp
ZiAoIWppdENvbXBpbGVGdW5jdGlvbklmQXBwcm9wcmlhdGUoZXhlYywgbV9jb2RlQmxvY2tGb3JD
b25zdHJ1Y3QsIG1faml0Q29kZUZvckNvbnN0cnVjdCwgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0
aEFyaXR5Q2hlY2ssIG1fc3ltYm9sVGFibGUsIGppdFR5cGUpKQorICAgICAgICByZXR1cm4gMDsK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKEpJVCkK
</data>
<flag name="review"
          id="122841"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>