<?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>124870</bug_id>
          
          <creation_ts>2013-11-25 16:26:33 -0800</creation_ts>
          <short_desc>[Cocoa] Use class extensions for IPI</short_desc>
          <delta_ts>2013-11-25 16:45:31 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>954156</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2013-11-25 16:26:33 -0800</bug_when>
    <thetext>[Cocoa] Use class extensions for IPI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954157</commentid>
    <comment_count>1</comment_count>
      <attachid>217846</attachid>
    <who name="">mitz</who>
    <bug_when>2013-11-25 16:29:59 -0800</bug_when>
    <thetext>Created attachment 217846
Change Internal categories into class extensions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954158</commentid>
    <comment_count>2</comment_count>
      <attachid>217847</attachid>
    <who name="">mitz</who>
    <bug_when>2013-11-25 16:37:41 -0800</bug_when>
    <thetext>Created attachment 217847
Change Internal categories into class extensions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954160</commentid>
    <comment_count>3</comment_count>
    <who name="">mitz</who>
    <bug_when>2013-11-25 16:45:31 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r159775&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217846</attachid>
            <date>2013-11-25 16:29:59 -0800</date>
            <delta_ts>2013-11-25 16:37:40 -0800</delta_ts>
            <desc>Change Internal categories into class extensions</desc>
            <filename>bug-124870-20131125163013.patch</filename>
            <type>text/plain</type>
            <size>10255</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1OTc3NCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEzLTExLTI1ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBVc2UgY2xhc3MgZXh0
ZW5zaW9ucyBmb3IgSVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjQ4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5t
bTogUmVvcmRlcmVkIG1ldGhvZHMgc28gdGhhdCB0aGUgUHJpdmF0ZQorICAgICAgICBjYXRlb2dy
eSBpc27igJl0IHN0dWNrIGJldHdlZW4gdGhlIEFQSSBtZXRob2RzIGFuZCB0aGUgaW50ZXJuYWwg
bWV0aG9kcy4KKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIHNldFBhZ2lu
YXRpb25Nb2RlOl0pOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgcGFn
aW5hdGlvbk1vZGVdKToKKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIHNl
dFBhZ2luYXRpb25CZWhhdmVzTGlrZUNvbHVtbnM6XSk6CisgICAgICAgICgtW1dLQnJvd3NpbmdD
b250ZXh0Q29udHJvbGxlciBwYWdpbmF0aW9uQmVoYXZlc0xpa2VDb2x1bW5zXSk6CisgICAgICAg
ICgtW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBzZXRQYWdlTGVuZ3RoOl0pOgorICAgICAg
ICAoLVtXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgcGFnZUxlbmd0aF0pOgorICAgICAgICAo
LVtXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgc2V0R2FwQmV0d2VlblBhZ2VzOl0pOgorICAg
ICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgZ2FwQmV0d2VlblBhZ2VzXSk6Cisg
ICAgICAgICgtW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBwYWdlQ291bnRdKToKKyAgICAg
ICAgKC1bV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIGhhbmRsZV0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvbWFjL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckludGVybmFsLmg6IENo
YW5nZWQgSW50ZXJuYWwgY2F0ZWdvcnkgaW50bworICAgICAgICBhIGNsYXNzIGV4dGVuc2lvbi4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLQ29ubmVjdGlvbi5tbToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL21hYy9XS0Nvbm5lY3Rpb25JbnRlcm5hbC5oOiBDaGFuZ2VkIEludGVy
bmFsIGNhdGVnb3J5IGludG8gYSBjbGFzcworICAgICAgICBleHRlbnNpb24uCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luLm1t
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nl
c3NQbHVnSW5JbnRlcm5hbC5oOiBEaXR0by4KKwogMjAxMy0xMS0yNSAgRGFuIEJlcm5zdGVpbiAg
PG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeGVkIHRoZSBpT1MgYnVpbGQuCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCShyZXZpc2lvbiAxNTk3NzMpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0J
KHdvcmtpbmcgY29weSkKQEAgLTM0Niw5OSArMzQ2LDYgQEAgLSAodm9pZClzZXRQYWdlWm9vbToo
Q0dGbG9hdClwYWdlWm9vbQogICAgIHJldHVybiBXS1BhZ2VTZXRQYWdlWm9vbUZhY3RvcihfcGFn
ZVJlZi5nZXQoKSwgcGFnZVpvb20pOwogfQogCi1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBXS0Jy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKFByaXZhdGUpCi0KLS0gKHZvaWQpc2V0UGFnaW5hdGlv
bk1vZGU6KFdLQnJvd3NpbmdDb250ZXh0UGFnaW5hdGlvbk1vZGUpcGFnaW5hdGlvbk1vZGUKLXsK
LSAgICBXS1BhZ2luYXRpb25Nb2RlIG1vZGU7Ci0gICAgc3dpdGNoIChwYWdpbmF0aW9uTW9kZSkg
ewotICAgIGNhc2UgV0tQYWdpbmF0aW9uTW9kZVVucGFnaW5hdGVkOgotICAgICAgICBtb2RlID0g
a1dLUGFnaW5hdGlvbk1vZGVVbnBhZ2luYXRlZDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBX
S1BhZ2luYXRpb25Nb2RlTGVmdFRvUmlnaHQ6Ci0gICAgICAgIG1vZGUgPSBrV0tQYWdpbmF0aW9u
TW9kZUxlZnRUb1JpZ2h0OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdLUGFnaW5hdGlvbk1v
ZGVSaWdodFRvTGVmdDoKLSAgICAgICAgbW9kZSA9IGtXS1BhZ2luYXRpb25Nb2RlUmlnaHRUb0xl
ZnQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV0tQYWdpbmF0aW9uTW9kZVRvcFRvQm90dG9t
OgotICAgICAgICBtb2RlID0ga1dLUGFnaW5hdGlvbk1vZGVUb3BUb0JvdHRvbTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBXS1BhZ2luYXRpb25Nb2RlQm90dG9tVG9Ub3A6Ci0gICAgICAgIG1v
ZGUgPSBrV0tQYWdpbmF0aW9uTW9kZUJvdHRvbVRvVG9wOwotICAgICAgICBicmVhazsKLSAgICBk
ZWZhdWx0OgotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgV0tQYWdlU2V0UGFnaW5hdGlv
bk1vZGUoX3BhZ2VSZWYuZ2V0KCksIG1vZGUpOwotfQotCi0tIChXS0Jyb3dzaW5nQ29udGV4dFBh
Z2luYXRpb25Nb2RlKXBhZ2luYXRpb25Nb2RlCi17Ci0gICAgc3dpdGNoIChXS1BhZ2VHZXRQYWdp
bmF0aW9uTW9kZShfcGFnZVJlZi5nZXQoKSkpIHsKLSAgICBjYXNlIGtXS1BhZ2luYXRpb25Nb2Rl
VW5wYWdpbmF0ZWQ6Ci0gICAgICAgIHJldHVybiBXS1BhZ2luYXRpb25Nb2RlVW5wYWdpbmF0ZWQ7
Ci0gICAgY2FzZSBrV0tQYWdpbmF0aW9uTW9kZUxlZnRUb1JpZ2h0OgotICAgICAgICByZXR1cm4g
V0tQYWdpbmF0aW9uTW9kZUxlZnRUb1JpZ2h0OwotICAgIGNhc2Uga1dLUGFnaW5hdGlvbk1vZGVS
aWdodFRvTGVmdDoKLSAgICAgICAgcmV0dXJuIFdLUGFnaW5hdGlvbk1vZGVSaWdodFRvTGVmdDsK
LSAgICBjYXNlIGtXS1BhZ2luYXRpb25Nb2RlVG9wVG9Cb3R0b206Ci0gICAgICAgIHJldHVybiBX
S1BhZ2luYXRpb25Nb2RlVG9wVG9Cb3R0b207Ci0gICAgY2FzZSBrV0tQYWdpbmF0aW9uTW9kZUJv
dHRvbVRvVG9wOgotICAgICAgICByZXR1cm4gV0tQYWdpbmF0aW9uTW9kZUJvdHRvbVRvVG9wOwot
ICAgIH0KLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBXS1BhZ2luYXRp
b25Nb2RlVW5wYWdpbmF0ZWQ7Ci19Ci0KLS0gKHZvaWQpc2V0UGFnaW5hdGlvbkJlaGF2ZXNMaWtl
Q29sdW1uczooQk9PTCliZWhhdmVzTGlrZUNvbHVtbnMKLXsKLSAgICBXS1BhZ2VTZXRQYWdpbmF0
aW9uQmVoYXZlc0xpa2VDb2x1bW5zKF9wYWdlUmVmLmdldCgpLCBiZWhhdmVzTGlrZUNvbHVtbnMp
OwotfQotCi0tIChCT09MKXBhZ2luYXRpb25CZWhhdmVzTGlrZUNvbHVtbnMKLXsKLSAgICByZXR1
cm4gV0tQYWdlR2V0UGFnaW5hdGlvbkJlaGF2ZXNMaWtlQ29sdW1ucyhfcGFnZVJlZi5nZXQoKSk7
Ci19Ci0KLS0gKHZvaWQpc2V0UGFnZUxlbmd0aDooQ0dGbG9hdClwYWdlTGVuZ3RoCi17Ci0gICAg
V0tQYWdlU2V0UGFnZUxlbmd0aChfcGFnZVJlZi5nZXQoKSwgcGFnZUxlbmd0aCk7Ci19Ci0KLS0g
KENHRmxvYXQpcGFnZUxlbmd0aAotewotICAgIHJldHVybiBXS1BhZ2VHZXRQYWdlTGVuZ3RoKF9w
YWdlUmVmLmdldCgpKTsKLX0KLQotLSAodm9pZClzZXRHYXBCZXR3ZWVuUGFnZXM6KENHRmxvYXQp
Z2FwQmV0d2VlblBhZ2VzCi17Ci0gICAgV0tQYWdlU2V0R2FwQmV0d2VlblBhZ2VzKF9wYWdlUmVm
LmdldCgpLCBnYXBCZXR3ZWVuUGFnZXMpOwotfQotCi0tIChDR0Zsb2F0KWdhcEJldHdlZW5QYWdl
cwotewotICAgIHJldHVybiBXS1BhZ2VHZXRHYXBCZXR3ZWVuUGFnZXMoX3BhZ2VSZWYuZ2V0KCkp
OwotfQotCi0tIChOU1VJbnRlZ2VyKXBhZ2VDb3VudAotewotICAgIHJldHVybiBXS1BhZ2VHZXRQ
YWdlQ291bnQoX3BhZ2VSZWYuZ2V0KCkpOwotfQotCi0tIChXS0Jyb3dzaW5nQ29udGV4dEhhbmRs
ZSAqKWhhbmRsZQotewotICAgIHJldHVybiBbW1tXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBhbGxv
Y10gX2luaXRXaXRoUGFnZUlEOnRvSW1wbChfcGFnZVJlZi5nZXQoKSktPnBhZ2VJRCgpXSBhdXRv
cmVsZWFzZV07Ci19Ci0KLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIFdLQnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlciAoSW50ZXJuYWwpCi0KIHN0YXRpYyB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1
c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdLRnJhbWVJc01h
aW5GcmFtZShmcmFtZSkpCkBAIC02OTUsNCArNjAyLDkzIEBAICsgKE5TTXV0YWJsZVNldCAqKWN1
c3RvbVNjaGVtZXMKICAKIEBlbmQKIAorQGltcGxlbWVudGF0aW9uIFdLQnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlciAoUHJpdmF0ZSkKKworLSAodm9pZClzZXRQYWdpbmF0aW9uTW9kZTooV0tCcm93
c2luZ0NvbnRleHRQYWdpbmF0aW9uTW9kZSlwYWdpbmF0aW9uTW9kZQoreworICAgIFdLUGFnaW5h
dGlvbk1vZGUgbW9kZTsKKyAgICBzd2l0Y2ggKHBhZ2luYXRpb25Nb2RlKSB7CisgICAgY2FzZSBX
S1BhZ2luYXRpb25Nb2RlVW5wYWdpbmF0ZWQ6CisgICAgICAgIG1vZGUgPSBrV0tQYWdpbmF0aW9u
TW9kZVVucGFnaW5hdGVkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdLUGFnaW5hdGlvbk1v
ZGVMZWZ0VG9SaWdodDoKKyAgICAgICAgbW9kZSA9IGtXS1BhZ2luYXRpb25Nb2RlTGVmdFRvUmln
aHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV0tQYWdpbmF0aW9uTW9kZVJpZ2h0VG9MZWZ0
OgorICAgICAgICBtb2RlID0ga1dLUGFnaW5hdGlvbk1vZGVSaWdodFRvTGVmdDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBXS1BhZ2luYXRpb25Nb2RlVG9wVG9Cb3R0b206CisgICAgICAgIG1v
ZGUgPSBrV0tQYWdpbmF0aW9uTW9kZVRvcFRvQm90dG9tOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFdLUGFnaW5hdGlvbk1vZGVCb3R0b21Ub1RvcDoKKyAgICAgICAgbW9kZSA9IGtXS1BhZ2lu
YXRpb25Nb2RlQm90dG9tVG9Ub3A7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBXS1BhZ2VTZXRQYWdpbmF0aW9uTW9kZShfcGFnZVJl
Zi5nZXQoKSwgbW9kZSk7Cit9CisKKy0gKFdLQnJvd3NpbmdDb250ZXh0UGFnaW5hdGlvbk1vZGUp
cGFnaW5hdGlvbk1vZGUKK3sKKyAgICBzd2l0Y2ggKFdLUGFnZUdldFBhZ2luYXRpb25Nb2RlKF9w
YWdlUmVmLmdldCgpKSkgeworICAgIGNhc2Uga1dLUGFnaW5hdGlvbk1vZGVVbnBhZ2luYXRlZDoK
KyAgICAgICAgcmV0dXJuIFdLUGFnaW5hdGlvbk1vZGVVbnBhZ2luYXRlZDsKKyAgICBjYXNlIGtX
S1BhZ2luYXRpb25Nb2RlTGVmdFRvUmlnaHQ6CisgICAgICAgIHJldHVybiBXS1BhZ2luYXRpb25N
b2RlTGVmdFRvUmlnaHQ7CisgICAgY2FzZSBrV0tQYWdpbmF0aW9uTW9kZVJpZ2h0VG9MZWZ0Ogor
ICAgICAgICByZXR1cm4gV0tQYWdpbmF0aW9uTW9kZVJpZ2h0VG9MZWZ0OworICAgIGNhc2Uga1dL
UGFnaW5hdGlvbk1vZGVUb3BUb0JvdHRvbToKKyAgICAgICAgcmV0dXJuIFdLUGFnaW5hdGlvbk1v
ZGVUb3BUb0JvdHRvbTsKKyAgICBjYXNlIGtXS1BhZ2luYXRpb25Nb2RlQm90dG9tVG9Ub3A6Cisg
ICAgICAgIHJldHVybiBXS1BhZ2luYXRpb25Nb2RlQm90dG9tVG9Ub3A7CisgICAgfQorCisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFdLUGFnaW5hdGlvbk1vZGVVbnBhZ2lu
YXRlZDsKK30KKworLSAodm9pZClzZXRQYWdpbmF0aW9uQmVoYXZlc0xpa2VDb2x1bW5zOihCT09M
KWJlaGF2ZXNMaWtlQ29sdW1ucworeworICAgIFdLUGFnZVNldFBhZ2luYXRpb25CZWhhdmVzTGlr
ZUNvbHVtbnMoX3BhZ2VSZWYuZ2V0KCksIGJlaGF2ZXNMaWtlQ29sdW1ucyk7Cit9CisKKy0gKEJP
T0wpcGFnaW5hdGlvbkJlaGF2ZXNMaWtlQ29sdW1ucworeworICAgIHJldHVybiBXS1BhZ2VHZXRQ
YWdpbmF0aW9uQmVoYXZlc0xpa2VDb2x1bW5zKF9wYWdlUmVmLmdldCgpKTsKK30KKworLSAodm9p
ZClzZXRQYWdlTGVuZ3RoOihDR0Zsb2F0KXBhZ2VMZW5ndGgKK3sKKyAgICBXS1BhZ2VTZXRQYWdl
TGVuZ3RoKF9wYWdlUmVmLmdldCgpLCBwYWdlTGVuZ3RoKTsKK30KKworLSAoQ0dGbG9hdClwYWdl
TGVuZ3RoCit7CisgICAgcmV0dXJuIFdLUGFnZUdldFBhZ2VMZW5ndGgoX3BhZ2VSZWYuZ2V0KCkp
OworfQorCistICh2b2lkKXNldEdhcEJldHdlZW5QYWdlczooQ0dGbG9hdClnYXBCZXR3ZWVuUGFn
ZXMKK3sKKyAgICBXS1BhZ2VTZXRHYXBCZXR3ZWVuUGFnZXMoX3BhZ2VSZWYuZ2V0KCksIGdhcEJl
dHdlZW5QYWdlcyk7Cit9CisKKy0gKENHRmxvYXQpZ2FwQmV0d2VlblBhZ2VzCit7CisgICAgcmV0
dXJuIFdLUGFnZUdldEdhcEJldHdlZW5QYWdlcyhfcGFnZVJlZi5nZXQoKSk7Cit9CisKKy0gKE5T
VUludGVnZXIpcGFnZUNvdW50Cit7CisgICAgcmV0dXJuIFdLUGFnZUdldFBhZ2VDb3VudChfcGFn
ZVJlZi5nZXQoKSk7Cit9CisKKy0gKFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlICopaGFuZGxlCit7
CisgICAgcmV0dXJuIFtbW1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIGFsbG9jXSBfaW5pdFdpdGhQ
YWdlSUQ6dG9JbXBsKF9wYWdlUmVmLmdldCgpKS0+cGFnZUlEKCldIGF1dG9yZWxlYXNlXTsKK30K
KworQGVuZAorCiAjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckludGVybmFsLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tCcm93c2lu
Z0NvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaAkocmV2aXNpb24gMTU5NzcxKQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVySW50
ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogQGVuZAogI2VuZGlmIC8v
IFBMQVRGT1JNKElPUykKIAotQGludGVyZmFjZSBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIg
KEludGVybmFsKQorQGludGVyZmFjZSBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKCkKIAog
I2lmIFBMQVRGT1JNKElPUykKIEBwcm9wZXJ0eSAoYXNzaWduKSBpZCA8V0tCcm93c2luZ0NvbnRl
eHRMb2FkRGVsZWdhdGVJbnRlcm5hbD4gbG9hZERlbGVnYXRlSW50ZXJuYWw7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS0Nvbm5lY3Rpb24ubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tDb25uZWN0aW9uLm1tCShyZXZp
c2lvbiAxNTk3NzEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS0Nvbm5l
Y3Rpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTY4LDEwICs2OCw2IEBAIC0gKFdLUmVtb3RlT2Jq
ZWN0UmVnaXN0cnkgKilyZW1vdGVPYmplY3QKICAgICByZXR1cm4gX3JlbW90ZU9iamVjdFJlZ2lz
dHJ5LmdldCgpOwogfQogCi1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBXS0Nvbm5lY3Rpb24gKElu
dGVybmFsKQotCiBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShXS0Nvbm5lY3Rpb25SZWYs
IFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJvZHksIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCiB7CiAgICAgV0tDb25uZWN0aW9uICpjb25uZWN0aW9uID0gKFdLQ29u
bmVjdGlvbiAqKWNsaWVudEluZm87CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L21hYy9XS0Nvbm5lY3Rpb25JbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL1dLQ29ubmVjdGlvbkludGVybmFsLmgJKHJldmlzaW9uIDE1OTc3
MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLQ29ubmVjdGlvbkludGVy
bmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2ltcG9ydCA8V2ViS2l0
Mi9XS0Jhc2UuaD4KIAotQGludGVyZmFjZSBXS0Nvbm5lY3Rpb24gKEludGVybmFsKQorQGludGVy
ZmFjZSBXS0Nvbm5lY3Rpb24gKCkKIAogLSAoaWQpX2luaXRXaXRoQ29ubmVjdGlvblJlZjooV0tD
b25uZWN0aW9uUmVmKWNvbm5lY3Rpb25SZWY7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW4ubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFj
L1dLV2ViUHJvY2Vzc1BsdWdJbi5tbQkocmV2aXNpb24gMTU5NzcxKQorKysgU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbi5t
bQkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBAaW50ZXJmYWNlIFdLV2ViUHJvY2Vz
c1BsdWdJbkNvbnRyb2xsZXIgCiB9CiBAZW5kCiAKLUBpbXBsZW1lbnRhdGlvbiBXS1dlYlByb2Nl
c3NQbHVnSW5Db250cm9sbGVyIChJbnRlcm5hbCkKK0BpbXBsZW1lbnRhdGlvbiBXS1dlYlByb2Nl
c3NQbHVnSW5Db250cm9sbGVyCiAKIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVBhZ2UoV0tCdW5kbGVS
ZWYgYnVuZGxlLCBXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
IHsKQEAgLTEyNywxMCArMTI3LDYgQEAgLSAoV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRl
eHRDb250cgogICAgIHJldHVybiBfYnVuZGxlUGFnZVdyYXBwZXJDYWNoZS5nZXQocGFnZVJlZiku
Z2V0KCk7CiB9CiAKLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIFdLV2ViUHJvY2Vzc1BsdWdJbkNv
bnRyb2xsZXIKLQogLSAoV0tDb25uZWN0aW9uICopY29ubmVjdGlvbgogewogICAgIHJldHVybiBf
Y29ubmVjdGlvbldyYXBwZXIuZ2V0KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luSW50ZXJuYWwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9t
YWMvV0tXZWJQcm9jZXNzUGx1Z0luSW50ZXJuYWwuaAkocmV2aXNpb24gMTU5NzcxKQorKysgU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vz
c1BsdWdJbkludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lm
IFdLX0FQSV9FTkFCTEVECiAKLUBpbnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luQ29udHJvbGxl
ciAoSW50ZXJuYWwpCitAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIgKCkK
IAogKyAoV0tXZWJQcm9jZXNzUGx1Z0luQ29udHJvbGxlciAqKV9zaGFyZWQ7CiAtIChpZClfaW5p
dFdpdGhQcmluY2lwYWxDbGFzc0luc3RhbmNlOihpZDxXS1dlYlByb2Nlc3NQbHVnSW4+KXByaW5j
aXBhbENsYXNzSW5zdGFuY2UgYnVuZGxlUmVmOihXS0J1bmRsZVJlZilidW5kbGVSZWY7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217847</attachid>
            <date>2013-11-25 16:37:41 -0800</date>
            <delta_ts>2013-11-25 16:43:13 -0800</delta_ts>
            <desc>Change Internal categories into class extensions</desc>
            <filename>bug-124870-20131125163755.patch</filename>
            <type>text/plain</type>
            <size>11099</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1OTc3NCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEzLTExLTI1ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBVc2UgY2xhc3MgZXh0
ZW5zaW9ucyBmb3IgSVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjQ4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5t
bTogUmVvcmRlcmVkIG1ldGhvZHMgc28gdGhhdCB0aGUgUHJpdmF0ZQorICAgICAgICBjYXRlb2dy
eSBpc27igJl0IHN0dWNrIGJldHdlZW4gdGhlIEFQSSBtZXRob2RzIGFuZCB0aGUgaW50ZXJuYWwg
bWV0aG9kcy4KKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIHNldFBhZ2lu
YXRpb25Nb2RlOl0pOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgcGFn
aW5hdGlvbk1vZGVdKToKKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIHNl
dFBhZ2luYXRpb25CZWhhdmVzTGlrZUNvbHVtbnM6XSk6CisgICAgICAgICgtW1dLQnJvd3NpbmdD
b250ZXh0Q29udHJvbGxlciBwYWdpbmF0aW9uQmVoYXZlc0xpa2VDb2x1bW5zXSk6CisgICAgICAg
ICgtW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBzZXRQYWdlTGVuZ3RoOl0pOgorICAgICAg
ICAoLVtXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgcGFnZUxlbmd0aF0pOgorICAgICAgICAo
LVtXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgc2V0R2FwQmV0d2VlblBhZ2VzOl0pOgorICAg
ICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgZ2FwQmV0d2VlblBhZ2VzXSk6Cisg
ICAgICAgICgtW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBwYWdlQ291bnRdKToKKyAgICAg
ICAgKC1bV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIGhhbmRsZV0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvbWFjL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckludGVybmFsLmg6IENo
YW5nZWQgSW50ZXJuYWwgY2F0ZWdvcnkgaW50bworICAgICAgICBhIGNsYXNzIGV4dGVuc2lvbi4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLQ29ubmVjdGlvbi5tbToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL21hYy9XS0Nvbm5lY3Rpb25JbnRlcm5hbC5oOiBDaGFuZ2VkIEludGVy
bmFsIGNhdGVnb3J5IGludG8gYSBjbGFzcworICAgICAgICBleHRlbnNpb24uCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luLm1t
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nl
c3NQbHVnSW5JbnRlcm5hbC5oOiBEaXR0by4KKwogMjAxMy0xMS0yNSAgRGFuIEJlcm5zdGVpbiAg
PG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeGVkIHRoZSBpT1MgYnVpbGQuCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCShyZXZpc2lvbiAxNTk3NzMpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0J
KHdvcmtpbmcgY29weSkKQEAgLTEwMiwxMCArMTAyLDYgQEAgTlNTdHJpbmcgKiBjb25zdCBXS0Fj
dGlvbkNhblNob3dNSU1FVHlwZQogICAgIFdLUmV0YWluUHRyPFdLUGFnZVJlZj4gX3BhZ2VSZWY7
CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFnZUxvYWRTdGF0ZU9ic2VydmVyPiBfcGFnZUxvYWRT
dGF0ZU9ic2VydmVyOwotCi0jaWYgUExBVEZPUk0oSU9TKQotICAgIGlkIDxXS0Jyb3dzaW5nQ29u
dGV4dExvYWREZWxlZ2F0ZUludGVybmFsPiBfbG9hZERlbGVnYXRlSW50ZXJuYWw7Ci0jZW5kaWYg
Ly8gUExBVEZPUk0oSU9TKQogfQogCiAtICh2b2lkKWRlYWxsb2MKQEAgLTM0Niw5OSArMzQyLDYg
QEAgLSAodm9pZClzZXRQYWdlWm9vbTooQ0dGbG9hdClwYWdlWm9vbQogICAgIHJldHVybiBXS1Bh
Z2VTZXRQYWdlWm9vbUZhY3RvcihfcGFnZVJlZi5nZXQoKSwgcGFnZVpvb20pOwogfQogCi1AZW5k
Ci0KLUBpbXBsZW1lbnRhdGlvbiBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKFByaXZhdGUp
Ci0KLS0gKHZvaWQpc2V0UGFnaW5hdGlvbk1vZGU6KFdLQnJvd3NpbmdDb250ZXh0UGFnaW5hdGlv
bk1vZGUpcGFnaW5hdGlvbk1vZGUKLXsKLSAgICBXS1BhZ2luYXRpb25Nb2RlIG1vZGU7Ci0gICAg
c3dpdGNoIChwYWdpbmF0aW9uTW9kZSkgewotICAgIGNhc2UgV0tQYWdpbmF0aW9uTW9kZVVucGFn
aW5hdGVkOgotICAgICAgICBtb2RlID0ga1dLUGFnaW5hdGlvbk1vZGVVbnBhZ2luYXRlZDsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXS1BhZ2luYXRpb25Nb2RlTGVmdFRvUmlnaHQ6Ci0gICAg
ICAgIG1vZGUgPSBrV0tQYWdpbmF0aW9uTW9kZUxlZnRUb1JpZ2h0OwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIFdLUGFnaW5hdGlvbk1vZGVSaWdodFRvTGVmdDoKLSAgICAgICAgbW9kZSA9IGtX
S1BhZ2luYXRpb25Nb2RlUmlnaHRUb0xlZnQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV0tQ
YWdpbmF0aW9uTW9kZVRvcFRvQm90dG9tOgotICAgICAgICBtb2RlID0ga1dLUGFnaW5hdGlvbk1v
ZGVUb3BUb0JvdHRvbTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXS1BhZ2luYXRpb25Nb2Rl
Qm90dG9tVG9Ub3A6Ci0gICAgICAgIG1vZGUgPSBrV0tQYWdpbmF0aW9uTW9kZUJvdHRvbVRvVG9w
OwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgV0tQYWdlU2V0UGFnaW5hdGlvbk1vZGUoX3BhZ2VSZWYuZ2V0KCksIG1vZGUpOwotfQot
Ci0tIChXS0Jyb3dzaW5nQ29udGV4dFBhZ2luYXRpb25Nb2RlKXBhZ2luYXRpb25Nb2RlCi17Ci0g
ICAgc3dpdGNoIChXS1BhZ2VHZXRQYWdpbmF0aW9uTW9kZShfcGFnZVJlZi5nZXQoKSkpIHsKLSAg
ICBjYXNlIGtXS1BhZ2luYXRpb25Nb2RlVW5wYWdpbmF0ZWQ6Ci0gICAgICAgIHJldHVybiBXS1Bh
Z2luYXRpb25Nb2RlVW5wYWdpbmF0ZWQ7Ci0gICAgY2FzZSBrV0tQYWdpbmF0aW9uTW9kZUxlZnRU
b1JpZ2h0OgotICAgICAgICByZXR1cm4gV0tQYWdpbmF0aW9uTW9kZUxlZnRUb1JpZ2h0OwotICAg
IGNhc2Uga1dLUGFnaW5hdGlvbk1vZGVSaWdodFRvTGVmdDoKLSAgICAgICAgcmV0dXJuIFdLUGFn
aW5hdGlvbk1vZGVSaWdodFRvTGVmdDsKLSAgICBjYXNlIGtXS1BhZ2luYXRpb25Nb2RlVG9wVG9C
b3R0b206Ci0gICAgICAgIHJldHVybiBXS1BhZ2luYXRpb25Nb2RlVG9wVG9Cb3R0b207Ci0gICAg
Y2FzZSBrV0tQYWdpbmF0aW9uTW9kZUJvdHRvbVRvVG9wOgotICAgICAgICByZXR1cm4gV0tQYWdp
bmF0aW9uTW9kZUJvdHRvbVRvVG9wOwotICAgIH0KLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgIHJldHVybiBXS1BhZ2luYXRpb25Nb2RlVW5wYWdpbmF0ZWQ7Ci19Ci0KLS0gKHZvaWQp
c2V0UGFnaW5hdGlvbkJlaGF2ZXNMaWtlQ29sdW1uczooQk9PTCliZWhhdmVzTGlrZUNvbHVtbnMK
LXsKLSAgICBXS1BhZ2VTZXRQYWdpbmF0aW9uQmVoYXZlc0xpa2VDb2x1bW5zKF9wYWdlUmVmLmdl
dCgpLCBiZWhhdmVzTGlrZUNvbHVtbnMpOwotfQotCi0tIChCT09MKXBhZ2luYXRpb25CZWhhdmVz
TGlrZUNvbHVtbnMKLXsKLSAgICByZXR1cm4gV0tQYWdlR2V0UGFnaW5hdGlvbkJlaGF2ZXNMaWtl
Q29sdW1ucyhfcGFnZVJlZi5nZXQoKSk7Ci19Ci0KLS0gKHZvaWQpc2V0UGFnZUxlbmd0aDooQ0dG
bG9hdClwYWdlTGVuZ3RoCi17Ci0gICAgV0tQYWdlU2V0UGFnZUxlbmd0aChfcGFnZVJlZi5nZXQo
KSwgcGFnZUxlbmd0aCk7Ci19Ci0KLS0gKENHRmxvYXQpcGFnZUxlbmd0aAotewotICAgIHJldHVy
biBXS1BhZ2VHZXRQYWdlTGVuZ3RoKF9wYWdlUmVmLmdldCgpKTsKLX0KLQotLSAodm9pZClzZXRH
YXBCZXR3ZWVuUGFnZXM6KENHRmxvYXQpZ2FwQmV0d2VlblBhZ2VzCi17Ci0gICAgV0tQYWdlU2V0
R2FwQmV0d2VlblBhZ2VzKF9wYWdlUmVmLmdldCgpLCBnYXBCZXR3ZWVuUGFnZXMpOwotfQotCi0t
IChDR0Zsb2F0KWdhcEJldHdlZW5QYWdlcwotewotICAgIHJldHVybiBXS1BhZ2VHZXRHYXBCZXR3
ZWVuUGFnZXMoX3BhZ2VSZWYuZ2V0KCkpOwotfQotCi0tIChOU1VJbnRlZ2VyKXBhZ2VDb3VudAot
ewotICAgIHJldHVybiBXS1BhZ2VHZXRQYWdlQ291bnQoX3BhZ2VSZWYuZ2V0KCkpOwotfQotCi0t
IChXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSAqKWhhbmRsZQotewotICAgIHJldHVybiBbW1tXS0Jy
b3dzaW5nQ29udGV4dEhhbmRsZSBhbGxvY10gX2luaXRXaXRoUGFnZUlEOnRvSW1wbChfcGFnZVJl
Zi5nZXQoKSktPnBhZ2VJRCgpXSBhdXRvcmVsZWFzZV07Ci19Ci0KLUBlbmQKLQotQGltcGxlbWVu
dGF0aW9uIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAoSW50ZXJuYWwpCi0KIHN0YXRpYyB2
b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJh
bWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
IHsKICAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCkBAIC02NTEsMTggKzU1NCw2
IEBAIHN0YXRpYyB2b2lkIHNldFVwUGFnZVBvbGljeUNsaWVudChXS0Jyb3cKICAgICBXS1BhZ2VT
ZXRQYWdlUG9saWN5Q2xpZW50KHBhZ2VSZWYsICZwb2xpY3lDbGllbnQpOwogfQogCi0jaWYgUExB
VEZPUk0oSU9TKQotLSAoaWQgPFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlSW50ZXJuYWw+
KWxvYWREZWxlZ2F0ZUludGVybmFsCi17Ci0gICAgcmV0dXJuIF9sb2FkRGVsZWdhdGVJbnRlcm5h
bDsKLX0KLQotLSAodm9pZClzZXRMb2FkRGVsZWdhdGVJbnRlcm5hbDooaWQgPFdLQnJvd3NpbmdD
b250ZXh0TG9hZERlbGVnYXRlSW50ZXJuYWw+KWxvYWREZWxlZ2F0ZUludGVybmFsCi17Ci0gICAg
X2xvYWREZWxlZ2F0ZUludGVybmFsID0gbG9hZERlbGVnYXRlSW50ZXJuYWw7Ci19Ci0jZW5kaWYg
Ly8gUExBVEZPUk0oSU9TKQotCiAvKiBUaGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBmcm9tIGFz
c29jaWF0ZSB2aWV3LiAqLwogCiAtIChpZClfaW5pdFdpdGhQYWdlUmVmOihXS1BhZ2VSZWYpcGFn
ZVJlZgpAQCAtNjk1LDQgKzU4Niw5MyBAQCArIChOU011dGFibGVTZXQgKiljdXN0b21TY2hlbWVz
CiAgCiBAZW5kCiAKK0BpbXBsZW1lbnRhdGlvbiBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIg
KFByaXZhdGUpCisKKy0gKHZvaWQpc2V0UGFnaW5hdGlvbk1vZGU6KFdLQnJvd3NpbmdDb250ZXh0
UGFnaW5hdGlvbk1vZGUpcGFnaW5hdGlvbk1vZGUKK3sKKyAgICBXS1BhZ2luYXRpb25Nb2RlIG1v
ZGU7CisgICAgc3dpdGNoIChwYWdpbmF0aW9uTW9kZSkgeworICAgIGNhc2UgV0tQYWdpbmF0aW9u
TW9kZVVucGFnaW5hdGVkOgorICAgICAgICBtb2RlID0ga1dLUGFnaW5hdGlvbk1vZGVVbnBhZ2lu
YXRlZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXS1BhZ2luYXRpb25Nb2RlTGVmdFRvUmln
aHQ6CisgICAgICAgIG1vZGUgPSBrV0tQYWdpbmF0aW9uTW9kZUxlZnRUb1JpZ2h0OworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFdLUGFnaW5hdGlvbk1vZGVSaWdodFRvTGVmdDoKKyAgICAgICAg
bW9kZSA9IGtXS1BhZ2luYXRpb25Nb2RlUmlnaHRUb0xlZnQ7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgV0tQYWdpbmF0aW9uTW9kZVRvcFRvQm90dG9tOgorICAgICAgICBtb2RlID0ga1dLUGFn
aW5hdGlvbk1vZGVUb3BUb0JvdHRvbTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXS1BhZ2lu
YXRpb25Nb2RlQm90dG9tVG9Ub3A6CisgICAgICAgIG1vZGUgPSBrV0tQYWdpbmF0aW9uTW9kZUJv
dHRvbVRvVG9wOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgV0tQYWdlU2V0UGFnaW5hdGlvbk1vZGUoX3BhZ2VSZWYuZ2V0KCksIG1v
ZGUpOworfQorCistIChXS0Jyb3dzaW5nQ29udGV4dFBhZ2luYXRpb25Nb2RlKXBhZ2luYXRpb25N
b2RlCit7CisgICAgc3dpdGNoIChXS1BhZ2VHZXRQYWdpbmF0aW9uTW9kZShfcGFnZVJlZi5nZXQo
KSkpIHsKKyAgICBjYXNlIGtXS1BhZ2luYXRpb25Nb2RlVW5wYWdpbmF0ZWQ6CisgICAgICAgIHJl
dHVybiBXS1BhZ2luYXRpb25Nb2RlVW5wYWdpbmF0ZWQ7CisgICAgY2FzZSBrV0tQYWdpbmF0aW9u
TW9kZUxlZnRUb1JpZ2h0OgorICAgICAgICByZXR1cm4gV0tQYWdpbmF0aW9uTW9kZUxlZnRUb1Jp
Z2h0OworICAgIGNhc2Uga1dLUGFnaW5hdGlvbk1vZGVSaWdodFRvTGVmdDoKKyAgICAgICAgcmV0
dXJuIFdLUGFnaW5hdGlvbk1vZGVSaWdodFRvTGVmdDsKKyAgICBjYXNlIGtXS1BhZ2luYXRpb25N
b2RlVG9wVG9Cb3R0b206CisgICAgICAgIHJldHVybiBXS1BhZ2luYXRpb25Nb2RlVG9wVG9Cb3R0
b207CisgICAgY2FzZSBrV0tQYWdpbmF0aW9uTW9kZUJvdHRvbVRvVG9wOgorICAgICAgICByZXR1
cm4gV0tQYWdpbmF0aW9uTW9kZUJvdHRvbVRvVG9wOworICAgIH0KKworICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgIHJldHVybiBXS1BhZ2luYXRpb25Nb2RlVW5wYWdpbmF0ZWQ7Cit9CisK
Ky0gKHZvaWQpc2V0UGFnaW5hdGlvbkJlaGF2ZXNMaWtlQ29sdW1uczooQk9PTCliZWhhdmVzTGlr
ZUNvbHVtbnMKK3sKKyAgICBXS1BhZ2VTZXRQYWdpbmF0aW9uQmVoYXZlc0xpa2VDb2x1bW5zKF9w
YWdlUmVmLmdldCgpLCBiZWhhdmVzTGlrZUNvbHVtbnMpOworfQorCistIChCT09MKXBhZ2luYXRp
b25CZWhhdmVzTGlrZUNvbHVtbnMKK3sKKyAgICByZXR1cm4gV0tQYWdlR2V0UGFnaW5hdGlvbkJl
aGF2ZXNMaWtlQ29sdW1ucyhfcGFnZVJlZi5nZXQoKSk7Cit9CisKKy0gKHZvaWQpc2V0UGFnZUxl
bmd0aDooQ0dGbG9hdClwYWdlTGVuZ3RoCit7CisgICAgV0tQYWdlU2V0UGFnZUxlbmd0aChfcGFn
ZVJlZi5nZXQoKSwgcGFnZUxlbmd0aCk7Cit9CisKKy0gKENHRmxvYXQpcGFnZUxlbmd0aAorewor
ICAgIHJldHVybiBXS1BhZ2VHZXRQYWdlTGVuZ3RoKF9wYWdlUmVmLmdldCgpKTsKK30KKworLSAo
dm9pZClzZXRHYXBCZXR3ZWVuUGFnZXM6KENHRmxvYXQpZ2FwQmV0d2VlblBhZ2VzCit7CisgICAg
V0tQYWdlU2V0R2FwQmV0d2VlblBhZ2VzKF9wYWdlUmVmLmdldCgpLCBnYXBCZXR3ZWVuUGFnZXMp
OworfQorCistIChDR0Zsb2F0KWdhcEJldHdlZW5QYWdlcworeworICAgIHJldHVybiBXS1BhZ2VH
ZXRHYXBCZXR3ZWVuUGFnZXMoX3BhZ2VSZWYuZ2V0KCkpOworfQorCistIChOU1VJbnRlZ2VyKXBh
Z2VDb3VudAoreworICAgIHJldHVybiBXS1BhZ2VHZXRQYWdlQ291bnQoX3BhZ2VSZWYuZ2V0KCkp
OworfQorCistIChXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSAqKWhhbmRsZQoreworICAgIHJldHVy
biBbW1tXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBhbGxvY10gX2luaXRXaXRoUGFnZUlEOnRvSW1w
bChfcGFnZVJlZi5nZXQoKSktPnBhZ2VJRCgpXSBhdXRvcmVsZWFzZV07Cit9CisKK0BlbmQKKwog
I2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL21hYy9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLQnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlckludGVybmFsLmgJKHJldmlzaW9uIDE1OTc3MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckludGVybmFsLmgJKHdv
cmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKIEBlbmQKICNlbmRpZiAvLyBQTEFURk9STShJ
T1MpCiAKLUBpbnRlcmZhY2UgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIChJbnRlcm5hbCkK
K0BpbnRlcmZhY2UgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICgpCiAKICNpZiBQTEFURk9S
TShJT1MpCiBAcHJvcGVydHkgKGFzc2lnbikgaWQgPFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVn
YXRlSW50ZXJuYWw+IGxvYWREZWxlZ2F0ZUludGVybmFsOwpJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9tYWMvV0tDb25uZWN0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLQ29ubmVjdGlvbi5tbQkocmV2aXNpb24gMTU5Nzcx
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tDb25uZWN0aW9uLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC02OCwxMCArNjgsNiBAQCAtIChXS1JlbW90ZU9iamVjdFJlZ2lzdHJ5
ICopcmVtb3RlT2JqZWN0CiAgICAgcmV0dXJuIF9yZW1vdGVPYmplY3RSZWdpc3RyeS5nZXQoKTsK
IH0KIAotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gV0tDb25uZWN0aW9uIChJbnRlcm5hbCkKLQog
c3RhdGljIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoV0tDb25uZWN0aW9uUmVmLCBXS1N0cmluZ1Jl
ZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZ2VCb2R5LCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQogewogICAgIFdLQ29ubmVjdGlvbiAqY29ubmVjdGlvbiA9IChXS0Nvbm5lY3Rpb24gKilj
bGllbnRJbmZvOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tDb25u
ZWN0aW9uSW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL21hYy9XS0Nvbm5lY3Rpb25JbnRlcm5hbC5oCShyZXZpc2lvbiAxNTk3NzEpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS0Nvbm5lY3Rpb25JbnRlcm5hbC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbXBvcnQgPFdlYktpdDIvV0tCYXNlLmg+
CiAKLUBpbnRlcmZhY2UgV0tDb25uZWN0aW9uIChJbnRlcm5hbCkKK0BpbnRlcmZhY2UgV0tDb25u
ZWN0aW9uICgpCiAKIC0gKGlkKV9pbml0V2l0aENvbm5lY3Rpb25SZWY6KFdLQ29ubmVjdGlvblJl
Ziljb25uZWN0aW9uUmVmOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nl
c3NQbHVnSW4ubW0JKHJldmlzaW9uIDE1OTc3MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW4ubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgQGludGVyZmFjZSBXS1dlYlByb2Nlc3NQbHVnSW5Db250
cm9sbGVyIAogfQogQGVuZAogCi1AaW1wbGVtZW50YXRpb24gV0tXZWJQcm9jZXNzUGx1Z0luQ29u
dHJvbGxlciAoSW50ZXJuYWwpCitAaW1wbGVtZW50YXRpb24gV0tXZWJQcm9jZXNzUGx1Z0luQ29u
dHJvbGxlcgogCiBzdGF0aWMgdm9pZCBkaWRDcmVhdGVQYWdlKFdLQnVuZGxlUmVmIGJ1bmRsZSwg
V0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CkBAIC0xMjcs
MTAgKzEyNyw2IEBAIC0gKFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHIKICAg
ICByZXR1cm4gX2J1bmRsZVBhZ2VXcmFwcGVyQ2FjaGUuZ2V0KHBhZ2VSZWYpLmdldCgpOwogfQog
Ci1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBXS1dlYlByb2Nlc3NQbHVnSW5Db250cm9sbGVyCi0K
IC0gKFdLQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24KIHsKICAgICByZXR1cm4gX2Nvbm5lY3Rpb25X
cmFwcGVyLmdldCgpOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkludGVybmFsLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJv
Y2Vzc1BsdWdJbkludGVybmFsLmgJKHJldmlzaW9uIDE1OTc3MSkKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5JbnRl
cm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBXS19BUElfRU5B
QkxFRAogCi1AaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIgKEludGVybmFs
KQorQGludGVyZmFjZSBXS1dlYlByb2Nlc3NQbHVnSW5Db250cm9sbGVyICgpCiAKICsgKFdLV2Vi
UHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIgKilfc2hhcmVkOwogLSAoaWQpX2luaXRXaXRoUHJpbmNp
cGFsQ2xhc3NJbnN0YW5jZTooaWQ8V0tXZWJQcm9jZXNzUGx1Z0luPilwcmluY2lwYWxDbGFzc0lu
c3RhbmNlIGJ1bmRsZVJlZjooV0tCdW5kbGVSZWYpYnVuZGxlUmVmOwo=
</data>
<flag name="review"
          id="241060"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>