Lib_Varien - Version 1.8.0.0

Version Notes

1.8.0.0

Download this release

Release Info

Developer Magento Core Team
Extension Lib_Varien
Version 1.8.0.0
Comparing to
See all releases


Code changes from version 1.7.0.0 to 1.8.0.0

lib/Varien/Cache/Backend/Memcached.php CHANGED
@@ -24,7 +24,12 @@
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
27
- class Varien_Cache_Backend_Memcached
 
 
 
 
 
28
  extends Zend_Cache_Backend_Memcached
29
  implements Zend_Cache_Backend_ExtendedInterface
30
  {
24
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
  */
26
 
27
+ /**
28
+ * Class Varien_Cache_Backend_Memcached
29
+ *
30
+ * @deprecated after 1.7.0.2
31
+ */
32
+ class Varien_Cache_Backend_Memcached
33
  extends Zend_Cache_Backend_Memcached
34
  implements Zend_Cache_Backend_ExtendedInterface
35
  {
lib/Varien/Cache/Core.php CHANGED
@@ -26,6 +26,60 @@
26
 
27
  class Varien_Cache_Core extends Zend_Cache_Core
28
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  /**
30
  * Make and return a cache id
31
  *
@@ -65,17 +119,74 @@ class Varien_Cache_Core extends Zend_Cache_Core
65
  * @param mixed $data Data to put in cache (can be another type than string if automatic_serialization is on)
66
  * @param string $id Cache id (if not set, the last cache id will be used)
67
  * @param array $tags Cache tags
68
- * @param int $specificLifetime If != false, set a specific lifetime for this cache record (null => infinite lifetime)
69
- * @param int $priority integer between 0 (very low priority) and 10 (maximum priority) used by some particular backends
70
- * @throws Zend_Cache_Exception
71
  * @return boolean True if no problem
72
  */
73
  public function save($data, $id = null, $tags = array(), $specificLifetime = false, $priority = 8)
74
  {
75
  $tags = $this->_tags($tags);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  return parent::save($data, $id, $tags, $specificLifetime, $priority);
77
  }
78
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79
  /**
80
  * Clean cache entries
81
  *
@@ -127,4 +238,4 @@ class Varien_Cache_Core extends Zend_Cache_Core
127
  $tags = $this->_tags($tags);
128
  return parent::getIdsNotMatchingTags($tags);
129
  }
130
- }
26
 
27
  class Varien_Cache_Core extends Zend_Cache_Core
28
  {
29
+ /**
30
+ * Specific slab size = 1Mb minus overhead
31
+ *
32
+ * @var array $_specificOptions
33
+ */
34
+ protected $_specificOptions = array('slab_size' => 0);
35
+
36
+ /**
37
+ * Used to tell chunked data from ordinary
38
+ */
39
+ const CODE_WORD = '{splitted}';
40
+
41
+ /**
42
+ * Constructor
43
+ *
44
+ * @throws Varien_Exception
45
+ * @param array|Zend_Config $options Associative array of options or Zend_Config instance
46
+ */
47
+ public function __construct($options = array())
48
+ {
49
+ parent::__construct($options);
50
+ if (!is_numeric($this->getOption('slab_size'))) {
51
+ throw new Varien_Exception("Invalid value for the node <slab_size>. Expected to be integer.");
52
+ }
53
+ }
54
+
55
+ /**
56
+ * Returns ID of a specific chunk on the basis of data's ID
57
+ *
58
+ * @param string $id Main data's ID
59
+ * @param int $index Particular chunk number to return ID for
60
+ * @return string
61
+ */
62
+ protected function _getChunkId($id, $index)
63
+ {
64
+ return "{$id}[{$index}]";
65
+ }
66
+
67
+ /**
68
+ * Remove saved chunks in case something gone wrong (e.g. some chunk from the chain can not be found)
69
+ *
70
+ * @param string $id ID of data's info cell
71
+ * @param int $chunks Number of chunks to remove (basically, the number after '{splitted}|')
72
+ * @return null
73
+ */
74
+ protected function _cleanTheMess($id, $chunks)
75
+ {
76
+ for ($i = 0; $i < $chunks; $i++) {
77
+ $this->remove($this->_getChunkId($id, $i));
78
+ }
79
+
80
+ $this->remove($id);
81
+ }
82
+
83
  /**
84
  * Make and return a cache id
85
  *
119
  * @param mixed $data Data to put in cache (can be another type than string if automatic_serialization is on)
120
  * @param string $id Cache id (if not set, the last cache id will be used)
121
  * @param array $tags Cache tags
122
+ * @param bool|int $specificLifetime If != false, set a specific lifetime for this cache record (null => infinite lifetime)
123
+ * @param int $priority integer between 0 (very low priority) and 10 (maximum priority) used by some particular backends
 
124
  * @return boolean True if no problem
125
  */
126
  public function save($data, $id = null, $tags = array(), $specificLifetime = false, $priority = 8)
127
  {
128
  $tags = $this->_tags($tags);
129
+
130
+ if ($this->getOption('slab_size') && is_string($data) && (strlen($data) > $this->getOption('slab_size'))) {
131
+ $dataChunks = str_split($data, $this->getOption('slab_size'));
132
+
133
+ for ($i = 0, $cnt = count($dataChunks); $i < $cnt; $i++) {
134
+ $chunkId = $this->_getChunkId($id, $i);
135
+
136
+ if (!parent::save($dataChunks[$i], $chunkId, $tags, $specificLifetime, $priority)) {
137
+ $this->_cleanTheMess($id, $i + 1);
138
+ return false;
139
+ }
140
+ }
141
+
142
+ $data = self::CODE_WORD . '|' . $i;
143
+ }
144
+
145
  return parent::save($data, $id, $tags, $specificLifetime, $priority);
146
  }
147
 
148
+ /**
149
+ * Load data from cached, glue from several chunks if it was splitted upon save.
150
+ *
151
+ * @param string $id Cache id
152
+ * @param boolean $doNotTestCacheValidity If set to true, the cache validity won't be tested
153
+ * @param boolean $doNotUnserialize Do not serialize (even if automatic_serialization is true) => for internal use
154
+ * @return mixed|false Cached datas
155
+ */
156
+ public function load($id, $doNotTestCacheValidity = false, $doNotUnserialize = false)
157
+ {
158
+ $data = parent::load($id, $doNotTestCacheValidity, $doNotUnserialize);
159
+
160
+ if (is_string($data) && (substr($data, 0, strlen(self::CODE_WORD)) == self::CODE_WORD)) {
161
+ // Seems we've got chunked data
162
+
163
+ $arr = explode('|', $data);
164
+ $chunks = isset($arr[1]) ? $arr[1] : false;
165
+ $chunkData = array();
166
+
167
+ if ($chunks && is_numeric($chunks)) {
168
+ for ($i = 0; $i < $chunks; $i++) {
169
+ $chunk = parent::load($this->_getChunkId($id, $i), $doNotTestCacheValidity, $doNotUnserialize);
170
+
171
+ if (false === $chunk) {
172
+ // Some chunk in chain was not found, we can not glue-up the data:
173
+ // clean the mess and return nothing
174
+
175
+ $this->_cleanTheMess($id, $chunks);
176
+ return false;
177
+ }
178
+
179
+ $chunkData[] = $chunk;
180
+ }
181
+
182
+ return implode('', $chunkData);
183
+ }
184
+ }
185
+
186
+ // Data has not been splitted to chunks on save
187
+ return $data;
188
+ }
189
+
190
  /**
191
  * Clean cache entries
192
  *
238
  $tags = $this->_tags($tags);
239
  return parent::getIdsNotMatchingTags($tags);
240
  }
241
+ }
lib/Varien/Convert/Action/Abstract.php CHANGED
@@ -175,7 +175,7 @@ abstract class Varien_Convert_Action_Abstract implements Varien_Convert_Action_I
175
  public function run()
176
  {
177
  if ($method = $this->getParam('method')) {
178
- if (!is_callable(array($this->getContainer(), $method))) {
179
  $this->addException('Unable to run action method: '.$method, Varien_Convert_Exception::FATAL);
180
  }
181
 
@@ -196,4 +196,4 @@ abstract class Varien_Convert_Action_Abstract implements Varien_Convert_Action_I
196
  return $this;
197
  }
198
 
199
- }
175
  public function run()
176
  {
177
  if ($method = $this->getParam('method')) {
178
+ if (!method_exists($this->getContainer(), $method)) {
179
  $this->addException('Unable to run action method: '.$method, Varien_Convert_Exception::FATAL);
180
  }
181
 
196
  return $this;
197
  }
198
 
199
+ }
lib/Varien/Convert/Parser/Xml/Excel.php CHANGED
@@ -133,7 +133,8 @@ class Varien_Convert_Parser_Xml_Excel extends Varien_Convert_Parser_Abstract
133
  $xml .= '<ss:Row>';
134
  foreach ($fields as $fieldName) {
135
  $data = isset($row[$fieldName]) ? $row[$fieldName] : '';
136
- $xml .= '<ss:Cell><Data ss:Type="String">'.$data.'</Data></ss:Cell>';
 
137
  }
138
  $xml .= '</ss:Row>';
139
  }
133
  $xml .= '<ss:Row>';
134
  foreach ($fields as $fieldName) {
135
  $data = isset($row[$fieldName]) ? $row[$fieldName] : '';
136
+ $fieldType = is_numeric($data) ? 'Number' : 'String';
137
+ $xml .= '<ss:Cell><Data ss:Type="' . $fieldType . '">' . $data . '</Data></ss:Cell>';
138
  }
139
  $xml .= '</ss:Row>';
140
  }
lib/Varien/Data/Form/Element/Editor.php CHANGED
@@ -364,7 +364,7 @@ class Varien_Data_Form_Element_Editor extends Varien_Data_Form_Element_Textarea
364
  public function translate($string)
365
  {
366
  $translator = $this->getConfig('translator');
367
- if (is_object($translator) && is_callable(array($translator, '__'))) {
368
  $result = $translator->__($string);
369
  if (is_string($result)) {
370
  return $result;
364
  public function translate($string)
365
  {
366
  $translator = $this->getConfig('translator');
367
+ if (method_exists($translator, '__')) {
368
  $result = $translator->__($string);
369
  if (is_string($result)) {
370
  return $result;
lib/Varien/Db/Adapter/Interface.php CHANGED
@@ -102,6 +102,15 @@ interface Varien_Db_Adapter_Interface
102
  */
103
  public function createTable(Varien_Db_Ddl_Table $table);
104
 
 
 
 
 
 
 
 
 
 
105
  /**
106
  * Drop table from database
107
  *
@@ -111,6 +120,15 @@ interface Varien_Db_Adapter_Interface
111
  */
112
  public function dropTable($tableName, $schemaName = null);
113
 
 
 
 
 
 
 
 
 
 
114
  /**
115
  * Truncate a table
116
  *
@@ -199,6 +217,16 @@ interface Varien_Db_Adapter_Interface
199
  */
200
  public function renameTable($oldTableName, $newTableName, $schemaName = null);
201
 
 
 
 
 
 
 
 
 
 
 
202
  /**
203
  * Adds new column to the table.
204
  *
@@ -727,6 +755,18 @@ interface Varien_Db_Adapter_Interface
727
  */
728
  public function getCheckSql($condition, $true, $false);
729
 
 
 
 
 
 
 
 
 
 
 
 
 
730
  /**
731
  * Returns valid IFNULL expression
732
  *
@@ -747,6 +787,12 @@ interface Varien_Db_Adapter_Interface
747
  */
748
  public function getConcatSql(array $data, $separator = null);
749
 
 
 
 
 
 
 
750
  /**
751
  * Generate fragment of SQL that returns length of character string
752
  * The string argument must be quoted
@@ -911,11 +957,21 @@ interface Varien_Db_Adapter_Interface
911
  * @param Varien_Db_Select $select
912
  * @param string $table insert into table
913
  * @param array $fields
914
- * @param int $mode
915
  * @return string
916
  */
917
  public function insertFromSelect(Varien_Db_Select $select, $table, array $fields = array(), $mode = false);
918
 
 
 
 
 
 
 
 
 
 
 
919
  /**
920
  * Get update table query using select object for join and update
921
  *
@@ -998,10 +1054,44 @@ interface Varien_Db_Adapter_Interface
998
  */
999
  public function getSuggestedZeroDate();
1000
 
 
 
 
 
 
 
 
 
1001
  /**
1002
  * Get adapter transaction level state. Return 0 if all transactions are complete
1003
  *
1004
  * @return int
1005
  */
1006
  public function getTransactionLevel();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1007
  }
102
  */
103
  public function createTable(Varien_Db_Ddl_Table $table);
104
 
105
+ /**
106
+ * Create temporary table from DDL object
107
+ *
108
+ * @param Varien_Db_Ddl_Table $table
109
+ * @throws Zend_Db_Exception
110
+ * @return Zend_Db_Statement_Interface
111
+ */
112
+ public function createTemporaryTable(Varien_Db_Ddl_Table $table);
113
+
114
  /**
115
  * Drop table from database
116
  *
120
  */
121
  public function dropTable($tableName, $schemaName = null);
122
 
123
+ /**
124
+ * Drop temporary table from database
125
+ *
126
+ * @param string $tableName
127
+ * @param string $schemaName
128
+ * @return boolean
129
+ */
130
+ public function dropTemporaryTable($tableName, $schemaName = null);
131
+
132
  /**
133
  * Truncate a table
134
  *
217
  */
218
  public function renameTable($oldTableName, $newTableName, $schemaName = null);
219
 
220
+ /**
221
+ * Rename several tables
222
+ *
223
+ * @param array $tablePairs array('oldName' => 'Name1', 'newName' => 'Name2')
224
+ *
225
+ * @return boolean
226
+ * @throws Zend_Db_Exception
227
+ */
228
+ public function renameTablesBatch(array $tablePairs);
229
+
230
  /**
231
  * Adds new column to the table.
232
  *
755
  */
756
  public function getCheckSql($condition, $true, $false);
757
 
758
+ /**
759
+ * Generate fragment of SQL, that check value against multiple condition cases
760
+ * and return different result depends on them
761
+ *
762
+ * @param string $valueName Name of value to check
763
+ * @param array $casesResults Cases and results
764
+ * @param string $defaultValue value to use if value doesn't confirm to any cases
765
+ *
766
+ * @return Zend_Db_Expr
767
+ */
768
+ public function getCaseSql($valueName, $casesResults, $defaultValue = null);
769
+
770
  /**
771
  * Returns valid IFNULL expression
772
  *
787
  */
788
  public function getConcatSql(array $data, $separator = null);
789
 
790
+ /**
791
+ * Returns the configuration variables in this adapter.
792
+ * @return array
793
+ */
794
+ public function getConfig();
795
+
796
  /**
797
  * Generate fragment of SQL that returns length of character string
798
  * The string argument must be quoted
957
  * @param Varien_Db_Select $select
958
  * @param string $table insert into table
959
  * @param array $fields
960
+ * @param bool|int $mode
961
  * @return string
962
  */
963
  public function insertFromSelect(Varien_Db_Select $select, $table, array $fields = array(), $mode = false);
964
 
965
+ /**
966
+ * Get insert queries in array for insert by range with step parameter
967
+ *
968
+ * @param string $rangeField
969
+ * @param Varien_Db_Select $select
970
+ * @param int $stepCount
971
+ * @return array
972
+ */
973
+ public function selectsByRange($rangeField, Varien_Db_Select $select, $stepCount = 100);
974
+
975
  /**
976
  * Get update table query using select object for join and update
977
  *
1054
  */
1055
  public function getSuggestedZeroDate();
1056
 
1057
+ /**
1058
+ * Drop trigger
1059
+ *
1060
+ * @param string $triggerName
1061
+ * @return Varien_Db_Adapter_Interface
1062
+ */
1063
+ public function dropTrigger($triggerName);
1064
+
1065
  /**
1066
  * Get adapter transaction level state. Return 0 if all transactions are complete
1067
  *
1068
  * @return int
1069
  */
1070
  public function getTransactionLevel();
1071
+
1072
+ /**
1073
+ * Convert date format to unix time
1074
+ *
1075
+ * @param string|Zend_Db_Expr $date
1076
+ * @return mixed
1077
+ */
1078
+ public function getUnixTimestamp($date);
1079
+
1080
+ /**
1081
+ * Convert unix time to date format
1082
+ *
1083
+ * @param int|Zend_Db_Expr $timestamp
1084
+ * @return mixed
1085
+ */
1086
+ public function fromUnixtime($timestamp);
1087
+
1088
+ /**
1089
+ * Create new table from provided select statement
1090
+ *
1091
+ * @param string $tableName
1092
+ * @param Zend_Db_Select $select
1093
+ * @param bool $temporary
1094
+ * @return mixed
1095
+ */
1096
+ public function createTableFromSelect($tableName, Zend_Db_Select $select, $temporary = false);
1097
  }
lib/Varien/Db/Adapter/Pdo/Mysql.php CHANGED
@@ -186,6 +186,13 @@ class Varien_Db_Adapter_Pdo_Mysql extends Zend_Db_Adapter_Pdo_Mysql implements V
186
  */
187
  protected $_ddlRoutines = array('alt', 'cre', 'ren', 'dro', 'tru');
188
 
 
 
 
 
 
 
 
189
  /**
190
  * Allowed interval units array
191
  *
@@ -395,7 +402,9 @@ class Varien_Db_Adapter_Pdo_Mysql extends Zend_Db_Adapter_Pdo_Mysql implements V
395
  {
396
  if (is_string($sql) && $this->getTransactionLevel() > 0) {
397
  $startSql = strtolower(substr(ltrim($sql), 0, 3));
398
- if (in_array($startSql, $this->_ddlRoutines)) {
 
 
399
  trigger_error(Varien_Db_Adapter_Interface::ERROR_DDL_MESSAGE, E_USER_ERROR);
400
  }
401
  }
@@ -407,7 +416,7 @@ class Varien_Db_Adapter_Pdo_Mysql extends Zend_Db_Adapter_Pdo_Mysql implements V
407
  *
408
  * @param string|Zend_Db_Select $sql The SQL statement with placeholders.
409
  * @param mixed $bind An array of data or data itself to bind to the placeholders.
410
- * @return Zend_Db_Pdo_Statement
411
  * @throws Zend_Db_Adapter_Exception To re-throw PDOException.
412
  */
413
  public function query($sql, $bind = array())
@@ -896,7 +905,7 @@ class Varien_Db_Adapter_Pdo_Mysql extends Zend_Db_Adapter_Pdo_Mysql implements V
896
  {
897
  if (!$this->tableColumnExists($tableName, $oldColumnName, $schemaName)) {
898
  throw new Zend_Db_Exception(sprintf(
899
- 'Column "%s" does not exists on table "%s"',
900
  $oldColumnName,
901
  $tableName
902
  ));
@@ -936,7 +945,7 @@ class Varien_Db_Adapter_Pdo_Mysql extends Zend_Db_Adapter_Pdo_Mysql implements V
936
  public function modifyColumn($tableName, $columnName, $definition, $flushData = false, $schemaName = null)
937
  {
938
  if (!$this->tableColumnExists($tableName, $columnName, $schemaName)) {
939
- throw new Zend_Db_Exception(sprintf('Column "%s" does not exists on table "%s"', $columnName, $tableName));
940
  }
941
  if (is_array($definition)) {
942
  $definition = $this->_getColumnDefinition($definition);
@@ -2039,6 +2048,29 @@ class Varien_Db_Adapter_Pdo_Mysql extends Zend_Db_Adapter_Pdo_Mysql implements V
2039
  return $this->query($sql);
2040
  }
2041
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2042
  /**
2043
  * Retrieve columns and primary keys definition array for create table
2044
  *
@@ -2312,8 +2344,10 @@ class Varien_Db_Adapter_Pdo_Mysql extends Zend_Db_Adapter_Pdo_Mysql implements V
2312
  $cDefault = new Zend_Db_Expr('0 ON UPDATE CURRENT_TIMESTAMP');
2313
  } else if ($cDefault == Varien_Db_Ddl_Table::TIMESTAMP_INIT_UPDATE) {
2314
  $cDefault = new Zend_Db_Expr('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP');
 
 
2315
  } else {
2316
- $cDefault = false;
2317
  }
2318
  } else if (is_null($cDefault) && $cNullable) {
2319
  $cDefault = new Zend_Db_Expr('NULL');
@@ -2351,6 +2385,22 @@ class Varien_Db_Adapter_Pdo_Mysql extends Zend_Db_Adapter_Pdo_Mysql implements V
2351
  return true;
2352
  }
2353
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2354
  /**
2355
  * Truncate a table
2356
  *
@@ -2413,6 +2463,42 @@ class Varien_Db_Adapter_Pdo_Mysql extends Zend_Db_Adapter_Pdo_Mysql implements V
2413
  return true;
2414
  }
2415
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2416
  /**
2417
  * Add new index to table name
2418
  *
@@ -2870,7 +2956,9 @@ class Varien_Db_Adapter_Pdo_Mysql extends Zend_Db_Adapter_Pdo_Mysql implements V
2870
  *
2871
  * @param string $valueName Name of value to check
2872
  * @param array $casesResults Cases and results
2873
- * @param string $defaultValue value to use if value doesn't confirm to any cases
 
 
2874
  */
2875
  public function getCaseSql($valueName, $casesResults, $defaultValue = null)
2876
  {
@@ -3231,7 +3319,7 @@ class Varien_Db_Adapter_Pdo_Mysql extends Zend_Db_Adapter_Pdo_Mysql implements V
3231
  * @param Varien_Db_Select $select
3232
  * @param string $table insert into table
3233
  * @param array $fields
3234
- * @param int $mode
3235
  * @return string
3236
  */
3237
  public function insertFromSelect(Varien_Db_Select $select, $table, array $fields = array(), $mode = false)
@@ -3257,11 +3345,28 @@ class Varien_Db_Adapter_Pdo_Mysql extends Zend_Db_Adapter_Pdo_Mysql implements V
3257
  }
3258
  }
3259
  }
 
3260
  $update = array();
3261
- foreach ($fields as $field) {
3262
- $update[] = sprintf('%1$s = VALUES(%1$s)', $this->quoteIdentifier($field));
3263
- }
 
 
 
 
 
 
 
 
 
 
 
 
3264
 
 
 
 
 
3265
  if ($update) {
3266
  $query = sprintf('%s ON DUPLICATE KEY UPDATE %s', $query, join(', ', $update));
3267
  }
@@ -3270,11 +3375,92 @@ class Varien_Db_Adapter_Pdo_Mysql extends Zend_Db_Adapter_Pdo_Mysql implements V
3270
  return $query;
3271
  }
3272
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3273
  /**
3274
  * Get update table query using select object for join and update
3275
  *
3276
  * @param Varien_Db_Select $select
3277
  * @param string|array $table
 
3278
  * @return string
3279
  */
3280
  public function updateFromSelect(Varien_Db_Select $select, $table)
@@ -3636,6 +3822,40 @@ class Varien_Db_Adapter_Pdo_Mysql extends Zend_Db_Adapter_Pdo_Mysql implements V
3636
  return $fkName;
3637
  }
3638
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3639
  /**
3640
  * Check if all transactions have been committed
3641
  */
186
  */
187
  protected $_ddlRoutines = array('alt', 'cre', 'ren', 'dro', 'tru');
188
 
189
+ /**
190
+ * DDL statements for temporary tables
191
+ *
192
+ * @var string
193
+ */
194
+ protected $_tempRoutines = '#^\w+\s+temporary\s#im';
195
+
196
  /**
197
  * Allowed interval units array
198
  *
402
  {
403
  if (is_string($sql) && $this->getTransactionLevel() > 0) {
404
  $startSql = strtolower(substr(ltrim($sql), 0, 3));
405
+ if (in_array($startSql, $this->_ddlRoutines)
406
+ && (preg_match($this->_tempRoutines, $sql) !== 1)
407
+ ) {
408
  trigger_error(Varien_Db_Adapter_Interface::ERROR_DDL_MESSAGE, E_USER_ERROR);
409
  }
410
  }
416
  *
417
  * @param string|Zend_Db_Select $sql The SQL statement with placeholders.
418
  * @param mixed $bind An array of data or data itself to bind to the placeholders.
419
+ * @return Zend_Db_Statement_Pdo
420
  * @throws Zend_Db_Adapter_Exception To re-throw PDOException.
421
  */
422
  public function query($sql, $bind = array())
905
  {
906
  if (!$this->tableColumnExists($tableName, $oldColumnName, $schemaName)) {
907
  throw new Zend_Db_Exception(sprintf(
908
+ 'Column "%s" does not exist in table "%s".',
909
  $oldColumnName,
910
  $tableName
911
  ));
945
  public function modifyColumn($tableName, $columnName, $definition, $flushData = false, $schemaName = null)
946
  {
947
  if (!$this->tableColumnExists($tableName, $columnName, $schemaName)) {
948
+ throw new Zend_Db_Exception(sprintf('Column "%s" does not exist in table "%s".', $columnName, $tableName));
949
  }
950
  if (is_array($definition)) {
951
  $definition = $this->_getColumnDefinition($definition);
2048
  return $this->query($sql);
2049
  }
2050
 
2051
+ /**
2052
+ * Create temporary table
2053
+ *
2054
+ * @param Varien_Db_Ddl_Table $table
2055
+ * @throws Zend_Db_Exception
2056
+ * @return Zend_Db_Pdo_Statement
2057
+ */
2058
+ public function createTemporaryTable(Varien_Db_Ddl_Table $table)
2059
+ {
2060
+ $sqlFragment = array_merge(
2061
+ $this->_getColumnsDefinition($table),
2062
+ $this->_getIndexesDefinition($table),
2063
+ $this->_getForeignKeysDefinition($table)
2064
+ );
2065
+ $tableOptions = $this->_getOptionsDefinition($table);
2066
+ $sql = sprintf("CREATE TEMPORARY TABLE %s (\n%s\n) %s",
2067
+ $this->quoteIdentifier($table->getName()),
2068
+ implode(",\n", $sqlFragment),
2069
+ implode(" ", $tableOptions));
2070
+
2071
+ return $this->query($sql);
2072
+ }
2073
+
2074
  /**
2075
  * Retrieve columns and primary keys definition array for create table
2076
  *
2344
  $cDefault = new Zend_Db_Expr('0 ON UPDATE CURRENT_TIMESTAMP');
2345
  } else if ($cDefault == Varien_Db_Ddl_Table::TIMESTAMP_INIT_UPDATE) {
2346
  $cDefault = new Zend_Db_Expr('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP');
2347
+ } else if ($cNullable && !$cDefault) {
2348
+ $cDefault = new Zend_Db_Expr('NULL');
2349
  } else {
2350
+ $cDefault = new Zend_Db_Expr('0');
2351
  }
2352
  } else if (is_null($cDefault) && $cNullable) {
2353
  $cDefault = new Zend_Db_Expr('NULL');
2385
  return true;
2386
  }
2387
 
2388
+ /**
2389
+ * Drop temporary table from database
2390
+ *
2391
+ * @param string $tableName
2392
+ * @param string $schemaName
2393
+ * @return boolean
2394
+ */
2395
+ public function dropTemporaryTable($tableName, $schemaName = null)
2396
+ {
2397
+ $table = $this->quoteIdentifier($this->_getTableName($tableName, $schemaName));
2398
+ $query = 'DROP TEMPORARY TABLE IF EXISTS ' . $table;
2399
+ $this->query($query);
2400
+
2401
+ return $this;
2402
+ }
2403
+
2404
  /**
2405
  * Truncate a table
2406
  *
2463
  return true;
2464
  }
2465
 
2466
+ /**
2467
+ * Rename several tables
2468
+ *
2469
+ * @param array $tablePairs array('oldName' => 'Name1', 'newName' => 'Name2')
2470
+ *
2471
+ * @return boolean
2472
+ * @throws Zend_Db_Exception
2473
+ */
2474
+ public function renameTablesBatch(array $tablePairs)
2475
+ {
2476
+ if (count($tablePairs) == 0) {
2477
+ throw new Zend_Db_Exception('Please provide tables for rename');
2478
+ }
2479
+
2480
+ $renamesList = array();
2481
+ $tablesList = array();
2482
+ foreach ($tablePairs as $pair) {
2483
+ $oldTableName = $pair['oldName'];
2484
+ $newTableName = $pair['newName'];
2485
+ $renamesList[] = sprintf('%s TO %s', $oldTableName, $newTableName);
2486
+
2487
+ $tablesList[$oldTableName] = $oldTableName;
2488
+ $tablesList[$newTableName] = $newTableName;
2489
+ }
2490
+
2491
+ $query = sprintf('RENAME TABLE %s', implode(',', $renamesList));
2492
+ $this->query($query);
2493
+
2494
+ foreach ($tablesList as $table) {
2495
+ $this->resetDdlCache($table);
2496
+ }
2497
+
2498
+ return true;
2499
+ }
2500
+
2501
+
2502
  /**
2503
  * Add new index to table name
2504
  *
2956
  *
2957
  * @param string $valueName Name of value to check
2958
  * @param array $casesResults Cases and results
2959
+ * @param string $defaultValue value to use if value doesn't conform to any cases
2960
+ *
2961
+ * @return Zend_Db_Expr
2962
  */
2963
  public function getCaseSql($valueName, $casesResults, $defaultValue = null)
2964
  {
3319
  * @param Varien_Db_Select $select
3320
  * @param string $table insert into table
3321
  * @param array $fields
3322
+ * @param bool|int $mode
3323
  * @return string
3324
  */
3325
  public function insertFromSelect(Varien_Db_Select $select, $table, array $fields = array(), $mode = false)
3345
  }
3346
  }
3347
  }
3348
+
3349
  $update = array();
3350
+ foreach ($fields as $k => $v) {
3351
+ $field = $value = null;
3352
+ if (!is_numeric($k)) {
3353
+ $field = $this->quoteIdentifier($k);
3354
+ if ($v instanceof Zend_Db_Expr) {
3355
+ $value = $v->__toString();
3356
+ } elseif (is_string($v)) {
3357
+ $value = sprintf('VALUES(%s)', $this->quoteIdentifier($v));
3358
+ } elseif (is_numeric($v)) {
3359
+ $value = $this->quoteInto('?', $v);
3360
+ }
3361
+ } elseif (is_string($v)) {
3362
+ $value = sprintf('VALUES(%s)', $this->quoteIdentifier($v));
3363
+ $field = $this->quoteIdentifier($v);
3364
+ }
3365
 
3366
+ if ($field && $value) {
3367
+ $update[] = sprintf('%s = %s', $field, $value);
3368
+ }
3369
+ }
3370
  if ($update) {
3371
  $query = sprintf('%s ON DUPLICATE KEY UPDATE %s', $query, join(', ', $update));
3372
  }
3375
  return $query;
3376
  }
3377
 
3378
+ /**
3379
+ * Get insert queries in array for insert by range with step parameter
3380
+ *
3381
+ * @param string $rangeField
3382
+ * @param Varien_Db_Select $select
3383
+ * @param int $stepCount
3384
+ * @return array
3385
+ * @throws Varien_Db_Exception
3386
+ */
3387
+ public function selectsByRange($rangeField, Varien_Db_Select $select, $stepCount = 100)
3388
+ {
3389
+ $queries = array();
3390
+ $fromSelect = $select->getPart(Varien_Db_Select::FROM);
3391
+ if (empty($fromSelect)) {
3392
+ throw new Varien_Db_Exception('Select must have correct FROM part');
3393
+ }
3394
+
3395
+ $tableName = array();
3396
+ $correlationName = '';
3397
+ foreach ($fromSelect as $correlationName => $formPart) {
3398
+ if ($formPart['joinType'] == Varien_Db_Select::FROM) {
3399
+ $tableName = $formPart['tableName'];
3400
+ break;
3401
+ }
3402
+ }
3403
+
3404
+ $selectRange = $this->select()
3405
+ ->from(
3406
+ $tableName,
3407
+ array(
3408
+ new Zend_Db_Expr('MIN(' . $this->quoteIdentifier($rangeField) . ') AS min'),
3409
+ new Zend_Db_Expr('MAX(' . $this->quoteIdentifier($rangeField) . ') AS max'),
3410
+ )
3411
+ );
3412
+
3413
+ $rangeResult = $this->fetchRow($selectRange);
3414
+ $min = $rangeResult['min'];
3415
+ $max = $rangeResult['max'];
3416
+
3417
+ while ($min <= $max) {
3418
+ $partialSelect = clone $select;
3419
+ $partialSelect->where(
3420
+ $this->quoteIdentifier($correlationName) . '.'
3421
+ . $this->quoteIdentifier($rangeField) . ' >= ?', $min
3422
+ )
3423
+ ->where(
3424
+ $this->quoteIdentifier($correlationName) . '.'
3425
+ . $this->quoteIdentifier($rangeField) . ' < ?', $min+$stepCount
3426
+ );
3427
+ $queries[] = $partialSelect;
3428
+ $min += $stepCount;
3429
+ }
3430
+ return $queries;
3431
+ }
3432
+
3433
+ /**
3434
+ * Convert date format to unix time
3435
+ *
3436
+ * @param string|Zend_Db_Expr $date
3437
+ * @throws Varien_Db_Exception
3438
+ * @return Zend_Db_Expr
3439
+ */
3440
+ public function getUnixTimestamp($date)
3441
+ {
3442
+ $expr = sprintf('UNIX_TIMESTAMP(%s)', $date);
3443
+ return new Zend_Db_Expr($expr);
3444
+ }
3445
+
3446
+ /**
3447
+ * Convert unix time to date format
3448
+ *
3449
+ * @param int|Zend_Db_Expr $timestamp
3450
+ * @return mixed
3451
+ */
3452
+ public function fromUnixtime($timestamp)
3453
+ {
3454
+ $expr = sprintf('FROM_UNIXTIME(%s)', $timestamp);
3455
+ return new Zend_Db_Expr($expr);
3456
+ }
3457
+
3458
  /**
3459
  * Get update table query using select object for join and update
3460
  *
3461
  * @param Varien_Db_Select $select
3462
  * @param string|array $table
3463
+ * @throws Varien_Db_Exception
3464
  * @return string
3465
  */
3466
  public function updateFromSelect(Varien_Db_Select $select, $table)
3822
  return $fkName;
3823
  }
3824
 
3825
+ /**
3826
+ * Drop trigger
3827
+ *
3828
+ * @param string $triggerName
3829
+ * @return Varien_Db_Adapter_Interface
3830
+ */
3831
+ public function dropTrigger($triggerName)
3832
+ {
3833
+ $query = sprintf(
3834
+ 'DROP TRIGGER IF EXISTS %s',
3835
+ $this->_getTableName($triggerName)
3836
+ );
3837
+ $this->query($query);
3838
+ return $this;
3839
+ }
3840
+
3841
+ /**
3842
+ * Create new table from provided select statement
3843
+ *
3844
+ * @param string $tableName
3845
+ * @param Zend_Db_Select $select
3846
+ * @param bool $temporary
3847
+ * @return mixed
3848
+ */
3849
+ public function createTableFromSelect($tableName, Zend_Db_Select $select, $temporary = false)
3850
+ {
3851
+ $query = sprintf(
3852
+ 'CREATE' . ($temporary ? ' TEMPORARY' : '') . ' TABLE `%s` AS (%s)',
3853
+ $this->_getTableName($tableName),
3854
+ (string)$select
3855
+ );
3856
+ $this->query($query);
3857
+ }
3858
+
3859
  /**
3860
  * Check if all transactions have been committed
3861
  */
lib/Varien/Db/Ddl/Table.php CHANGED
@@ -219,6 +219,7 @@ class Varien_Db_Ddl_Table
219
  * Set comment for table
220
  *
221
  * @param string $comment
 
222
  */
223
  public function setComment($comment)
224
  {
219
  * Set comment for table
220
  *
221
  * @param string $comment
222
+ * @return Varien_Db_Ddl_Table
223
  */
224
  public function setComment($comment)
225
  {
lib/Varien/File/Uploader.php CHANGED
@@ -464,7 +464,7 @@ class Varien_File_Uploader
464
  private function _setUploadFileId($fileId)
465
  {
466
  if (empty($_FILES)) {
467
- throw new Exception('$_FILES array is empty');
468
  }
469
 
470
  if (is_array($fileId)) {
464
  private function _setUploadFileId($fileId)
465
  {
466
  if (empty($_FILES)) {
467
+ throw new Exception('$_FILES array is empty', self::TMP_NAME_EMPTY);
468
  }
469
 
470
  if (is_array($fileId)) {
lib/Varien/Filter/Template.php CHANGED
@@ -131,9 +131,9 @@ class Varien_Filter_Template implements Zend_Filter_Interface
131
  continue;
132
  }
133
  try {
134
- $replacedValue = call_user_func($callback, $construction);
135
  } catch (Exception $e) {
136
- throw $e;
137
  }
138
  $value = str_replace($construction[0], $replacedValue, $value);
139
  }
@@ -149,8 +149,8 @@ class Varien_Filter_Template implements Zend_Filter_Interface
149
  return $construction[0];
150
  }
151
 
152
- $replacedValue = $this->_getVariable($construction[2], '');
153
- return $replacedValue;
154
  }
155
 
156
  public function includeDirective($construction)
@@ -212,9 +212,9 @@ class Varien_Filter_Template implements Zend_Filter_Interface
212
  $tokenizer->setString($value);
213
  $params = $tokenizer->tokenize();
214
  foreach ($params as $key => $value) {
215
- if (substr($value, 0, 1) === '$') {
216
- $params[$key] = $this->_getVariable(substr($value, 1), null);
217
- }
218
  }
219
  return $params;
220
  }
@@ -238,24 +238,22 @@ class Varien_Filter_Template implements Zend_Filter_Interface
238
  if ($i == 0 && isset($this->_templateVars[$stackVars[$i]['name']])) {
239
  // Getting of template value
240
  $stackVars[$i]['variable'] =& $this->_templateVars[$stackVars[$i]['name']];
241
- } else if (isset($stackVars[$i-1]['variable'])
242
- && $stackVars[$i-1]['variable'] instanceof Varien_Object) {
243
  // If object calling methods or getting properties
244
- if($stackVars[$i]['type'] == 'property') {
245
- $caller = "get" . uc_words($stackVars[$i]['name'], '');
246
- if(is_callable(array($stackVars[$i-1]['variable'], $caller))) {
247
- // If specified getter for this property
248
- $stackVars[$i]['variable'] = $stackVars[$i-1]['variable']->$caller();
249
- } else {
250
- $stackVars[$i]['variable'] = $stackVars[$i-1]['variable']
251
- ->getData($stackVars[$i]['name']);
252
- }
253
- } else if ($stackVars[$i]['type'] == 'method') {
254
  // Calling of object method
255
- if (is_callable(array($stackVars[$i-1]['variable'], $stackVars[$i]['name'])) || substr($stackVars[$i]['name'],0,3) == 'get') {
256
- $stackVars[$i]['variable'] = call_user_func_array(array($stackVars[$i-1]['variable'],
257
- $stackVars[$i]['name']),
258
- $stackVars[$i]['args']);
 
 
 
259
  }
260
  }
261
  $last = $i;
131
  continue;
132
  }
133
  try {
134
+ $replacedValue = call_user_func($callback, $construction);
135
  } catch (Exception $e) {
136
+ throw $e;
137
  }
138
  $value = str_replace($construction[0], $replacedValue, $value);
139
  }
149
  return $construction[0];
150
  }
151
 
152
+ $replacedValue = $this->_getVariable($construction[2], '');
153
+ return $replacedValue;
154
  }
155
 
156
  public function includeDirective($construction)
212
  $tokenizer->setString($value);
213
  $params = $tokenizer->tokenize();
214
  foreach ($params as $key => $value) {
215
+ if (substr($value, 0, 1) === '$') {
216
+ $params[$key] = $this->_getVariable(substr($value, 1), null);
217
+ }
218
  }
219
  return $params;
220
  }
238
  if ($i == 0 && isset($this->_templateVars[$stackVars[$i]['name']])) {
239
  // Getting of template value
240
  $stackVars[$i]['variable'] =& $this->_templateVars[$stackVars[$i]['name']];
241
+ } elseif (isset($stackVars[$i-1]['variable']) && $stackVars[$i-1]['variable'] instanceof Varien_Object) {
 
242
  // If object calling methods or getting properties
243
+ if ($stackVars[$i]['type'] == 'property') {
244
+ $caller = 'get' . uc_words($stackVars[$i]['name'], '');
245
+ $stackVars[$i]['variable'] = method_exists($stackVars[$i-1]['variable'], $caller)
246
+ ? $stackVars[$i-1]['variable']->$caller()
247
+ : $stackVars[$i-1]['variable']->getData($stackVars[$i]['name']);
248
+ } elseif ($stackVars[$i]['type'] == 'method') {
 
 
 
 
249
  // Calling of object method
250
+ if (method_exists($stackVars[$i-1]['variable'], $stackVars[$i]['name'])
251
+ || substr($stackVars[$i]['name'], 0, 3) == 'get'
252
+ ) {
253
+ $stackVars[$i]['variable'] = call_user_func_array(
254
+ array($stackVars[$i-1]['variable'], $stackVars[$i]['name']),
255
+ $stackVars[$i]['args']
256
+ );
257
  }
258
  }
259
  $last = $i;
lib/Varien/Image/Adapter/Gd2.php CHANGED
@@ -43,14 +43,53 @@ class Varien_Image_Adapter_Gd2 extends Varien_Image_Adapter_Abstract
43
  */
44
  protected $_resized = false;
45
 
 
 
 
 
 
 
46
  public function open($filename)
47
  {
48
  $this->_fileName = $filename;
49
  $this->getMimeType();
50
  $this->_getFileAttributes();
 
 
 
51
  $this->_imageHandler = call_user_func($this->_getCallback('create'), $this->_fileName);
52
  }
53
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
  public function save($destination=null, $newName=null)
55
  {
56
  $fileName = ( !isset($destination) ) ? $this->_fileName : $destination;
43
  */
44
  protected $_resized = false;
45
 
46
+ /**
47
+ * Opens image file.
48
+ *
49
+ * @param string $filename
50
+ * @throws Varien_Exception
51
+ */
52
  public function open($filename)
53
  {
54
  $this->_fileName = $filename;
55
  $this->getMimeType();
56
  $this->_getFileAttributes();
57
+ if ($this->_isMemoryLimitReached()) {
58
+ throw new Varien_Exception('Memory limit has been reached.');
59
+ }
60
  $this->_imageHandler = call_user_func($this->_getCallback('create'), $this->_fileName);
61
  }
62
 
63
+ /**
64
+ * Checks whether memory limit is reached.
65
+ *
66
+ * @return bool
67
+ */
68
+ protected function _isMemoryLimitReached()
69
+ {
70
+ $limit = $this->_convertToByte(ini_get('memory_limit'));
71
+ $size = getimagesize($this->_fileName);
72
+ $requiredMemory = $size[0] * $size[1] * 3;
73
+ return (memory_get_usage(true) + $requiredMemory) > $limit;
74
+ }
75
+
76
+ /**
77
+ * Converts memory value (e.g. 64M, 129KB) to bytes.
78
+ * Case insensitive value might be used.
79
+ *
80
+ * @param string $memoryValue
81
+ * @return int
82
+ */
83
+ protected function _convertToByte($memoryValue)
84
+ {
85
+ if (stripos($memoryValue, 'M') !== false) {
86
+ return (int)$memoryValue * 1024 * 1024;
87
+ } elseif (stripos($memoryValue, 'KB') !== false) {
88
+ return (int)$memoryValue * 1024;
89
+ }
90
+ return (int)$memoryValue;
91
+ }
92
+
93
  public function save($destination=null, $newName=null)
94
  {
95
  $fileName = ( !isset($destination) ) ? $this->_fileName : $destination;
lib/Varien/Simplexml/Element.php CHANGED
@@ -327,7 +327,11 @@ class Varien_Simplexml_Element extends SimpleXMLElement
327
  }
328
  $value = (string)$value;
329
 
330
- $value = str_replace(array('&', '"', "'", '<', '>'), array('&amp;', '&quot;', '&apos;', '&lt;', '&gt;'), $value);
 
 
 
 
331
 
332
  return $value;
333
  }
@@ -412,7 +416,7 @@ class Varien_Simplexml_Element extends SimpleXMLElement
412
  // handle string node
413
  if (isset($this->$sourceName)) {
414
  // if target already has children return without regard
415
- if ($this->$sourceName->children()) {
416
  return $this;
417
  }
418
  if ($overwrite) {
327
  }
328
  $value = (string)$value;
329
 
330
+ $value = str_replace(
331
+ array('&', '"', "'", '<', '>'),
332
+ array('&amp;', '&quot;', '&apos;', '&lt;', '&gt;'),
333
+ $value
334
+ );
335
 
336
  return $value;
337
  }
416
  // handle string node
417
  if (isset($this->$sourceName)) {
418
  // if target already has children return without regard
419
+ if ($this->$sourceName->hasChildren()) {
420
  return $this;
421
  }
422
  if ($overwrite) {
package.xml CHANGED
@@ -1,18 +1,18 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Lib_Varien</name>
4
- <version>1.7.0.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Varien Library</summary>
10
  <description>Varien Library</description>
11
- <notes>1.7.0.0</notes>
12
  <authors><author><name>Magento Core Team</name><user>core</user><email>core@magentocommerce.com</email></author></authors>
13
- <date>2012-04-23</date>
14
- <time>13:47:59</time>
15
- <contents><target name="magelib"><dir name="Varien"><file name="Autoload.php" hash="96a0c175e6a98562f058f9a02c167bbb"/><dir name="Cache"><dir name="Backend"><file name="Database.php" hash="09535993a910ade50a2cd763da0f6d9e"/><file name="Eaccelerator.php" hash="00bc01db2c4457fdad760835992ae2dc"/><file name="Memcached.php" hash="9de5a66839dbd79d7c365b58514777fe"/></dir><file name="Core.php" hash="018b7952a12633b8ec2a3d856d2b2c41"/></dir><dir name="Convert"><dir name="Action"><file name="Abstract.php" hash="3de0b3f423df89243793e3b474b9cbe8"/><file name="Interface.php" hash="fe9129227525ffc1f862c6f1f85e83f1"/></dir><file name="Action.php" hash="ee3a0baf50c1bb0f1c0b67721f1965e6"/><dir name="Adapter"><file name="Abstract.php" hash="0c53dc267b75e595518365ab8f1d8ab4"/><dir name="Db"><file name="Table.php" hash="d6b8a1bfe2de4ed908ca0367fb226d2c"/></dir><dir name="Http"><file name="Curl.php" hash="76e12f13e1eb48eb3e8c36cea9a6ece3"/></dir><file name="Http.php" hash="afb44986f4d6ba1cf84819bbb31004b2"/><file name="Interface.php" hash="2c4834f37eede972be48c8b3a2857661"/><file name="Io.php" hash="a9ceb53b810de3e183b439ba1bb1ba57"/><file name="Soap.php" hash="4b67a9ea45b12dfffabd26d2cb8942f2"/><file name="Std.php" hash="225b4e11d9ffcd1db8f99d54dc749687"/><dir name="Zend"><file name="Cache.php" hash="845fcb65276b05714b8d231c6b30f651"/><file name="Db.php" hash="794cb6226590ff7d2a7d1fbce26fcc05"/></dir></dir><dir name="Container"><file name="Abstract.php" hash="8f836665d0dec3c7cc7d93714e9c99b4"/><file name="Collection.php" hash="b1ef8a70ea806deb351b5413d6cfacef"/><file name="Generic.php" hash="bef8559c7a10ecf3ebb3f147795a2597"/><file name="Interface.php" hash="870470de0ec947f1039aa415d37d0f82"/></dir><file name="Exception.php" hash="58c9437dd946d5251234f55de3648d3f"/><dir name="Mapper"><file name="Abstract.php" hash="e1d9d87a1270ad6a499549dd87f9ac62"/><file name="Column.php" hash="7f74158a73fd8fa83052625ef07b1749"/><file name="Interface.php" hash="d8a8b98cece9ae38302914bbc910c094"/></dir><dir name="Parser"><file name="Abstract.php" hash="3559203bdcdb019daddd9ed558f596a7"/><file name="Csv.php" hash="f68d8dc8c0695296cc32b1ca716a8276"/><file name="Interface.php" hash="016ab96988f7ae02d2e84ed4878513ca"/><file name="Serialize.php" hash="52a93cacd5f3d3e0267bbffc74d7d715"/><dir name="Xml"><file name="Excel.php" hash="61386b14392bc29b7f734ed6ee6ee3c5"/></dir></dir><dir name="Profile"><file name="Abstract.php" hash="c038c0b7a209c7a189beb6aa21df617b"/><file name="Collection.php" hash="2ff1f76cafa7e36826063069efdba8ad"/></dir><file name="Profile.php" hash="9b63f8909ed29bf5a3c729bc5934cb9c"/><dir name="Validator"><file name="Abstract.php" hash="3fdf8a0fcd2366563e330c30456f19b9"/><file name="Column.php" hash="da9bb1ffa8d6026a6d26365da4cec289"/><file name="Dryrun.php" hash="70f63aa2f6146c67658dc7bfd04ddf02"/><file name="Interface.php" hash="59c7a5d323e0a3bb6928754f3f4393ad"/></dir></dir><file name="Convert.php" hash="441a61c66ee524a024c7ffe8b7c7c3c2"/><dir name="Crypt"><file name="Abstract.php" hash="73980e75bef5f58855ea924c3693522d"/><file name="Mcrypt.php" hash="3c62cbb2f8e763e0da985b7bc054c5c3"/></dir><file name="Crypt.php" hash="cb28cabbc8a02fd86705bc0b52d7204b"/><dir name="Data"><dir name="Collection"><file name="Db.php" hash="7a4be602c7a6acf3ac5dcfb26f83e50f"/><file name="Filesystem.php" hash="8c2e8522e1782dbea4d52f44566cd02a"/></dir><file name="Collection.php" hash="e55f81c3fdf4b39d05bbbce7573e0de8"/><dir name="Form"><file name="Abstract.php" hash="4978be2832783e6ab2f7c4e291bbf4d5"/><dir name="Element"><file name="Abstract.php" hash="a8982e3215fc63a5cb40a4e964f6d3ea"/><file name="Button.php" hash="98c64b5da29dff22cfae938caa5833c8"/><file name="Checkbox.php" hash="7992114fdc4aefafceebac2a08c1a434"/><file name="Checkboxes.php" hash="fdc32833161b60139e9859f387bce6c7"/><file name="Collection.php" hash="cade28ccfd09e8b55394bf3a7d595d70"/><file name="Column.php" hash="b6d1d32aca981ae0fd1c6a83fc655c9a"/><file name="Date.php" hash="3f5c8628e329cbc87c33c7e622a3b946"/><file name="Editor.php" hash="40e2585d72356d2b5e7d55fc2373c6ea"/><file name="Fieldset.php" hash="f78031a222ad4263826adf2f35622c72"/><file name="File.php" hash="463e8c8e106fe2018fdbf117e330423e"/><file name="Gallery.php" hash="6cb83ebc8efae252978fbd22c001642b"/><file name="Hidden.php" hash="ae6275e5d3b7df411bfda4fb4f995a8c"/><file name="Image.php" hash="c4d7be9bf6b1b19590d44bf9837eb748"/><file name="Imagefile.php" hash="2d6ed40fef1c2927ab22dea7d29336db"/><file name="Label.php" hash="ced6668e926c5cd10e5dfc93e1764070"/><file name="Link.php" hash="fb213bbbce4e46ea03a96923defbfbb3"/><file name="Multiline.php" hash="087bd60ff98b4b9c094b9adec040f166"/><file name="Multiselect.php" hash="9e0d04674a743602438fd4190040944c"/><file name="Note.php" hash="f5b71ebcf5a2b774393d9f4d1581dc35"/><file name="Obscure.php" hash="b61a077fbdea1b93be0aafc2f2c2f391"/><file name="Password.php" hash="a15263e7b0fabe8bd6abf8487f43efcb"/><file name="Radio.php" hash="4b32afab119091759d93ec99fb2fd53b"/><file name="Radios.php" hash="9004386a01f6c2b09435f39bf9b5bb36"/><dir name="Renderer"><file name="Interface.php" hash="61baa8c8755a9a7e8eaac5786ae38f42"/></dir><file name="Reset.php" hash="51bc11836e12bd64390476e3ff393c13"/><file name="Select.php" hash="4402f264e6e2cae5fbad26bc44aa21fe"/><file name="Submit.php" hash="5b9e9e3db9bc70757030312b7d002b7e"/><file name="Text.php" hash="2e798cfd096ac0a87f9d9055000af3c3"/><file name="Textarea.php" hash="b88d00399b8f6846d56055c9416dd0bb"/><file name="Time.php" hash="f35d8d1dc0a90dd6f044f17c22d8dc4a"/></dir><dir name="Filter"><file name="Date.php" hash="80eee9775448a21a5332f3e5cb7edcc9"/><file name="Escapehtml.php" hash="0c02fdfbae30158aa14f45b937332249"/><file name="Interface.php" hash="4542e15af14cc92d7bf5a863d4bf5ddd"/><file name="Striptags.php" hash="2c4cd0905e4e3b99ba373ffeb9ab7d38"/></dir></dir><file name="Form.php" hash="407eee6f100c7befa18ca586b3c3ae04"/><dir name="Tree"><file name="Db.php" hash="d06e9a49ddb1ea94892f4f10e1b3fea1"/><file name="Dbp.php" hash="4bd7f5b9047870f125459dbf523f73a2"/><dir name="Node"><file name="Collection.php" hash="941c88db98d69ec170674380fe3413d5"/></dir><file name="Node.php" hash="e985629bbea05cd0e52d7ac82fc2ee27"/></dir><file name="Tree.php" hash="e39d73757e0535493badc5bea8459834"/></dir><file name="Date.php" hash="7830b6da8a6a54b5ef8d17b7f0d248f0"/><dir name="Db"><dir name="Adapter"><file name="Interface.php" hash="aa9ce5d0b03233176e41d2f8a8706590"/><file name="Mysqli.php" hash="4e6e03a6ddf127f58ab0326c4cfe9956"/><dir name="Pdo"><file name="Mysql.php" hash="d250406ead15e659a6e3a75304d67369"/></dir></dir><dir name="Ddl"><file name="Table.php" hash="5a9390d89162ea56f73a0817de4d029f"/></dir><file name="Exception.php" hash="93966b32e96f793f031244716ff37eed"/><file name="Helper.php" hash="eee52d2574360dabe7a5e830bc0a67b8"/><file name="Select.php" hash="62250da9eb320e684a4c121c3a40d473"/><dir name="Statement"><file name="Parameter.php" hash="8d688f64d6780d18e517921ea5eb9ccb"/><dir name="Pdo"><file name="Mysql.php" hash="e82abad90774a126efb8bd27bc0f43f7"/></dir></dir><dir name="Tree"><file name="Exception.php" hash="6a00d12bbed94d648a974d213a816a4b"/><dir name="Node"><file name="Exception.php" hash="f890d0fc36e89aefd7cf04ae6c10a88e"/></dir><file name="Node.php" hash="6b048bbe2b2c46e405ffae8bca23e579"/><dir name="NodeSet"><file name="Exception.php" hash="2caa6a4b09846fe3b941563aa55d3c5f"/></dir><file name="NodeSet.php" hash="5e589b0c1221caf2693fe6f7d07e1ad3"/></dir><file name="Tree.php" hash="c7cc99ac052aa5d1ac721619d47506e6"/></dir><file name="Debug.php" hash="ec721f169e5a16524a17abba094d651d"/><dir name="Directory"><file name="Collection.php" hash="59faf0b57bc10bdf3daade69b51fd142"/><file name="Factory.php" hash="112fda936935de43f45bf0e1b1ebfd23"/><file name="IFactory.php" hash="bb7a2578774f58922f7d5b3a90c34e3e"/><file name="a.txt" hash="026e450c46ac92ea375302955a4f42fb"/></dir><dir name="Event"><file name="Collection.php" hash="cb422c6c7abb160fa3d7d54669bf2b2e"/><dir name="Observer"><file name="Collection.php" hash="b9c7d52c9563a19d15723bbc4a85fac6"/><file name="Cron.php" hash="0e04e63cf24f5cce3031f5896c439b68"/><file name="Regex.php" hash="f97f5a4435d560e073d725681cb15264"/></dir><file name="Observer.php" hash="eff7b66ce01d3f8fc4c00d974a2d5440"/></dir><file name="Event.php" hash="1836bb96f191e616d59178f17e407277"/><file name="Exception.php" hash="6beb1561720cc6c7a894a955ff2251b7"/><dir name="File"><file name="Csv.php" hash="5736e17051a3e778c59b99ed669caee5"/><file name="CsvMulty.php" hash="af4518063d4d9f03cfbfca832c1b9d76"/><file name="Object.php" hash="86116483e252e66c516208e43b3bb920"/><dir name="Transfer"><dir name="Adapter"><file name="Http.php" hash="c71dc1460cdcf062adb97b577e621923"/></dir></dir><dir name="Uploader"><file name="Image.php" hash="2655d6497c074c8c4998c58320d60c14"/></dir><file name="Uploader.php" hash="7e66b733d1e9be6575cbcfd9e9aaac48"/></dir><dir name="Filter"><dir name="Array"><file name="Grid.php" hash="14bd2f5ab60e7255557fc2dff7f24a37"/></dir><file name="Array.php" hash="a38e3d26f47d1bfaf4e023662d9a3dad"/><file name="Email.php" hash="067f3ea6f1597ea2501455865977d789"/><file name="Money.php" hash="8bec682670cb4cbf48e4b4264e2ab188"/><dir name="Object"><file name="Grid.php" hash="e3c3fa92761e5a1e1401192d8362301e"/></dir><file name="Object.php" hash="5b85aaff354eb0770e14efcfebda263b"/><file name="Sprintf.php" hash="0dd85ddc3d4b737d7cc6308afc12db18"/><dir name="Template"><file name="Simple.php" hash="b342cd136c10a6630d2d7dccd4137387"/><dir name="Tokenizer"><file name="Abstract.php" hash="d737a3d6599939b2a12b55975c9af780"/><file name="Parameter.php" hash="140ab2548a3da859473a46c7b0d44504"/><file name="Variable.php" hash="4ba64c31b234db22c2ff1799a49e7798"/></dir></dir><file name="Template.php" hash="59612d4851769548308449114b6c122a"/></dir><dir name="Http"><dir name="Adapter"><file name="Curl.php" hash="6d7dd607c55582ac08416f1940f3868c"/></dir><file name="Client.php" hash="eac22d5beaca06c1678c327a13e7f45d"/></dir><dir name="Image"><dir name="Adapter"><file name="Abstract.php" hash="0ac17ab0c82dea6289caf0985be0c47d"/><file name="Gd2.php" hash="a35a55acdb36ed25a8398b10cea3afef"/></dir><file name="Adapter.php" hash="edbab0bcfa931ae1d8f813f467e6b311"/></dir><file name="Image.php" hash="dfec3144e465eb2558a76a84f4736254"/><dir name="Io"><file name="Abstract.php" hash="53e7055dfe0ca7d133b94cfbf3621693"/><file name="Exception.php" hash="493365429caf5d2170c00137b081b195"/><file name="File.php" hash="4d0613516c6d3824d1ec4442c99a6b8a"/><file name="Ftp.php" hash="f349b9b833133853c902abb493d4f3bd"/><file name="Interface.php" hash="0b26ea223a4bed00df9b7b808b2acf80"/><file name="Sftp.php" hash="461d458eb368ed01f3b9194bafc4030d"/></dir><dir name="Object"><file name="Cache.php" hash="a87d2ae2d015a4e2f2fc1b611feccfcd"/><file name="Mapper.php" hash="1180b9b29c366d886e8af05181aebbce"/></dir><file name="Object.php" hash="0d5d06e7eb4439372bf90e2e41e998d7"/><dir name="Pear"><file name="Frontend.php" hash="61a9a308d54eca9e0a0bbc09296189f1"/><file name="Package.php" hash="a4261d73ebc059785fe418c6350bb4e5"/><file name="Registry.php" hash="5780af5995ea9af32032d3ebe496e251"/></dir><file name="Pear.php" hash="d60801531ef3ac16b26e302961310c53"/><file name="Profiler.php" hash="d434c08a6dd3ef8eb168e3a3d46f057f"/><dir name="Simplexml"><dir name="Config"><dir name="Cache"><file name="Abstract.php" hash="6dbbd6f1bc63c1b7ee086399da30f4e0"/><file name="File.php" hash="f99292ec6d04d5464a1313a2c52880d4"/></dir></dir><file name="Config.php" hash="a957b7feccdf430239af81610a6ac281"/><file name="Element.php" hash="f8321180f2b343080ffd89591943b239"/></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php><package><name>Lib_ZF</name><channel>community</channel><min>1.11.1.0</min><max>1.12.0.0</max></package><extension><name>PDO</name><min></min><max></max></extension><extension><name>SPL</name><min></min><max></max></extension><extension><name>curl</name><min></min><max></max></extension><extension><name>SimpleXML</name><min></min><max></max></extension><extension><name>dom</name><min></min><max></max></extension><extension><name>gd</name><min></min><max></max></extension><extension><name>iconv</name><min></min><max></max></extension><extension><name>pdo_mysql</name><min></min><max></max></extension><extension><name>mcrypt</name><min></min><max></max></extension><extension><name>pcre</name><min></min><max></max></extension><extension><name>Reflection</name><min></min><max></max></extension><extension><name>session</name><min></min><max></max></extension></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Lib_Varien</name>
4
+ <version>1.8.0.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Varien Library</summary>
10
  <description>Varien Library</description>
11
+ <notes>1.8.0.0</notes>
12
  <authors><author><name>Magento Core Team</name><user>core</user><email>core@magentocommerce.com</email></author></authors>
13
+ <date>2013-09-24</date>
14
+ <time>09:09:43</time>
15
+ <contents><target name="magelib"><dir name="Varien"><file name="Autoload.php" hash="96a0c175e6a98562f058f9a02c167bbb"/><dir name="Cache"><dir name="Backend"><file name="Database.php" hash="09535993a910ade50a2cd763da0f6d9e"/><file name="Eaccelerator.php" hash="00bc01db2c4457fdad760835992ae2dc"/><file name="Memcached.php" hash="8e542eb6c54f6764dd41fff4488c5ae2"/></dir><file name="Core.php" hash="d571f5f03d00925708328a6e6d42f58f"/></dir><dir name="Convert"><dir name="Action"><file name="Abstract.php" hash="2a6bb67a679a6e20cbe9478e80be582f"/><file name="Interface.php" hash="fe9129227525ffc1f862c6f1f85e83f1"/></dir><file name="Action.php" hash="ee3a0baf50c1bb0f1c0b67721f1965e6"/><dir name="Adapter"><file name="Abstract.php" hash="0c53dc267b75e595518365ab8f1d8ab4"/><dir name="Db"><file name="Table.php" hash="d6b8a1bfe2de4ed908ca0367fb226d2c"/></dir><dir name="Http"><file name="Curl.php" hash="76e12f13e1eb48eb3e8c36cea9a6ece3"/></dir><file name="Http.php" hash="afb44986f4d6ba1cf84819bbb31004b2"/><file name="Interface.php" hash="2c4834f37eede972be48c8b3a2857661"/><file name="Io.php" hash="a9ceb53b810de3e183b439ba1bb1ba57"/><file name="Soap.php" hash="4b67a9ea45b12dfffabd26d2cb8942f2"/><file name="Std.php" hash="225b4e11d9ffcd1db8f99d54dc749687"/><dir name="Zend"><file name="Cache.php" hash="845fcb65276b05714b8d231c6b30f651"/><file name="Db.php" hash="794cb6226590ff7d2a7d1fbce26fcc05"/></dir></dir><dir name="Container"><file name="Abstract.php" hash="8f836665d0dec3c7cc7d93714e9c99b4"/><file name="Collection.php" hash="b1ef8a70ea806deb351b5413d6cfacef"/><file name="Generic.php" hash="bef8559c7a10ecf3ebb3f147795a2597"/><file name="Interface.php" hash="870470de0ec947f1039aa415d37d0f82"/></dir><file name="Exception.php" hash="58c9437dd946d5251234f55de3648d3f"/><dir name="Mapper"><file name="Abstract.php" hash="e1d9d87a1270ad6a499549dd87f9ac62"/><file name="Column.php" hash="7f74158a73fd8fa83052625ef07b1749"/><file name="Interface.php" hash="d8a8b98cece9ae38302914bbc910c094"/></dir><dir name="Parser"><file name="Abstract.php" hash="3559203bdcdb019daddd9ed558f596a7"/><file name="Csv.php" hash="f68d8dc8c0695296cc32b1ca716a8276"/><file name="Interface.php" hash="016ab96988f7ae02d2e84ed4878513ca"/><file name="Serialize.php" hash="52a93cacd5f3d3e0267bbffc74d7d715"/><dir name="Xml"><file name="Excel.php" hash="1edf1b7b7071c45baada29670ea656b8"/></dir></dir><dir name="Profile"><file name="Abstract.php" hash="c038c0b7a209c7a189beb6aa21df617b"/><file name="Collection.php" hash="2ff1f76cafa7e36826063069efdba8ad"/></dir><file name="Profile.php" hash="9b63f8909ed29bf5a3c729bc5934cb9c"/><dir name="Validator"><file name="Abstract.php" hash="3fdf8a0fcd2366563e330c30456f19b9"/><file name="Column.php" hash="da9bb1ffa8d6026a6d26365da4cec289"/><file name="Dryrun.php" hash="70f63aa2f6146c67658dc7bfd04ddf02"/><file name="Interface.php" hash="59c7a5d323e0a3bb6928754f3f4393ad"/></dir></dir><file name="Convert.php" hash="441a61c66ee524a024c7ffe8b7c7c3c2"/><dir name="Crypt"><file name="Abstract.php" hash="73980e75bef5f58855ea924c3693522d"/><file name="Mcrypt.php" hash="3c62cbb2f8e763e0da985b7bc054c5c3"/></dir><file name="Crypt.php" hash="cb28cabbc8a02fd86705bc0b52d7204b"/><dir name="Data"><dir name="Collection"><file name="Db.php" hash="7a4be602c7a6acf3ac5dcfb26f83e50f"/><file name="Filesystem.php" hash="8c2e8522e1782dbea4d52f44566cd02a"/></dir><file name="Collection.php" hash="e55f81c3fdf4b39d05bbbce7573e0de8"/><dir name="Form"><file name="Abstract.php" hash="4978be2832783e6ab2f7c4e291bbf4d5"/><dir name="Element"><file name="Abstract.php" hash="a8982e3215fc63a5cb40a4e964f6d3ea"/><file name="Button.php" hash="98c64b5da29dff22cfae938caa5833c8"/><file name="Checkboxes.php" hash="fdc32833161b60139e9859f387bce6c7"/><file name="Checkbox.php" hash="7992114fdc4aefafceebac2a08c1a434"/><file name="Collection.php" hash="cade28ccfd09e8b55394bf3a7d595d70"/><file name="Column.php" hash="b6d1d32aca981ae0fd1c6a83fc655c9a"/><file name="Date.php" hash="3f5c8628e329cbc87c33c7e622a3b946"/><file name="Editor.php" hash="13d5c80395365db6c47c0c004967c4bf"/><file name="Fieldset.php" hash="f78031a222ad4263826adf2f35622c72"/><file name="File.php" hash="463e8c8e106fe2018fdbf117e330423e"/><file name="Gallery.php" hash="6cb83ebc8efae252978fbd22c001642b"/><file name="Hidden.php" hash="ae6275e5d3b7df411bfda4fb4f995a8c"/><file name="Imagefile.php" hash="2d6ed40fef1c2927ab22dea7d29336db"/><file name="Image.php" hash="c4d7be9bf6b1b19590d44bf9837eb748"/><file name="Label.php" hash="ced6668e926c5cd10e5dfc93e1764070"/><file name="Link.php" hash="fb213bbbce4e46ea03a96923defbfbb3"/><file name="Multiline.php" hash="087bd60ff98b4b9c094b9adec040f166"/><file name="Multiselect.php" hash="9e0d04674a743602438fd4190040944c"/><file name="Note.php" hash="f5b71ebcf5a2b774393d9f4d1581dc35"/><file name="Obscure.php" hash="b61a077fbdea1b93be0aafc2f2c2f391"/><file name="Password.php" hash="a15263e7b0fabe8bd6abf8487f43efcb"/><file name="Radio.php" hash="4b32afab119091759d93ec99fb2fd53b"/><file name="Radios.php" hash="9004386a01f6c2b09435f39bf9b5bb36"/><dir name="Renderer"><file name="Interface.php" hash="61baa8c8755a9a7e8eaac5786ae38f42"/></dir><file name="Reset.php" hash="51bc11836e12bd64390476e3ff393c13"/><file name="Select.php" hash="4402f264e6e2cae5fbad26bc44aa21fe"/><file name="Submit.php" hash="5b9e9e3db9bc70757030312b7d002b7e"/><file name="Textarea.php" hash="b88d00399b8f6846d56055c9416dd0bb"/><file name="Text.php" hash="2e798cfd096ac0a87f9d9055000af3c3"/><file name="Time.php" hash="f35d8d1dc0a90dd6f044f17c22d8dc4a"/></dir><dir name="Filter"><file name="Date.php" hash="80eee9775448a21a5332f3e5cb7edcc9"/><file name="Escapehtml.php" hash="0c02fdfbae30158aa14f45b937332249"/><file name="Interface.php" hash="4542e15af14cc92d7bf5a863d4bf5ddd"/><file name="Striptags.php" hash="2c4cd0905e4e3b99ba373ffeb9ab7d38"/></dir></dir><file name="Form.php" hash="407eee6f100c7befa18ca586b3c3ae04"/><dir name="Tree"><file name="Db.php" hash="d06e9a49ddb1ea94892f4f10e1b3fea1"/><file name="Dbp.php" hash="4bd7f5b9047870f125459dbf523f73a2"/><dir name="Node"><file name="Collection.php" hash="941c88db98d69ec170674380fe3413d5"/></dir><file name="Node.php" hash="e985629bbea05cd0e52d7ac82fc2ee27"/></dir><file name="Tree.php" hash="e39d73757e0535493badc5bea8459834"/></dir><file name="Date.php" hash="7830b6da8a6a54b5ef8d17b7f0d248f0"/><dir name="Db"><dir name="Adapter"><file name="Interface.php" hash="17af4b595d92f534eb7097f5a5fbff0a"/><file name="Mysqli.php" hash="4e6e03a6ddf127f58ab0326c4cfe9956"/><dir name="Pdo"><file name="Mysql.php" hash="97a9f11bd2c3591a93ef2d2bd0f0ed55"/></dir></dir><dir name="Ddl"><file name="Table.php" hash="2567ce531a4c978e5fff70b84f69f5ad"/></dir><file name="Exception.php" hash="93966b32e96f793f031244716ff37eed"/><file name="Helper.php" hash="eee52d2574360dabe7a5e830bc0a67b8"/><file name="Select.php" hash="62250da9eb320e684a4c121c3a40d473"/><dir name="Statement"><file name="Parameter.php" hash="8d688f64d6780d18e517921ea5eb9ccb"/><dir name="Pdo"><file name="Mysql.php" hash="e82abad90774a126efb8bd27bc0f43f7"/></dir></dir><dir name="Tree"><file name="Exception.php" hash="6a00d12bbed94d648a974d213a816a4b"/><dir name="Node"><file name="Exception.php" hash="f890d0fc36e89aefd7cf04ae6c10a88e"/></dir><file name="Node.php" hash="6b048bbe2b2c46e405ffae8bca23e579"/><dir name="NodeSet"><file name="Exception.php" hash="2caa6a4b09846fe3b941563aa55d3c5f"/></dir><file name="NodeSet.php" hash="5e589b0c1221caf2693fe6f7d07e1ad3"/></dir><file name="Tree.php" hash="c7cc99ac052aa5d1ac721619d47506e6"/></dir><file name="Debug.php" hash="ec721f169e5a16524a17abba094d651d"/><dir name="Directory"><file name="a.txt" hash="026e450c46ac92ea375302955a4f42fb"/><file name="Collection.php" hash="59faf0b57bc10bdf3daade69b51fd142"/><file name="Factory.php" hash="112fda936935de43f45bf0e1b1ebfd23"/><file name="IFactory.php" hash="bb7a2578774f58922f7d5b3a90c34e3e"/></dir><dir name="Event"><file name="Collection.php" hash="cb422c6c7abb160fa3d7d54669bf2b2e"/><dir name="Observer"><file name="Collection.php" hash="b9c7d52c9563a19d15723bbc4a85fac6"/><file name="Cron.php" hash="0e04e63cf24f5cce3031f5896c439b68"/><file name="Regex.php" hash="f97f5a4435d560e073d725681cb15264"/></dir><file name="Observer.php" hash="eff7b66ce01d3f8fc4c00d974a2d5440"/></dir><file name="Event.php" hash="1836bb96f191e616d59178f17e407277"/><file name="Exception.php" hash="6beb1561720cc6c7a894a955ff2251b7"/><dir name="File"><file name="CsvMulty.php" hash="af4518063d4d9f03cfbfca832c1b9d76"/><file name="Csv.php" hash="5736e17051a3e778c59b99ed669caee5"/><file name="Object.php" hash="86116483e252e66c516208e43b3bb920"/><dir name="Transfer"><dir name="Adapter"><file name="Http.php" hash="c71dc1460cdcf062adb97b577e621923"/></dir></dir><dir name="Uploader"><file name="Image.php" hash="2655d6497c074c8c4998c58320d60c14"/></dir><file name="Uploader.php" hash="ff32029ded0cb07486ef40ae38f56b50"/></dir><dir name="Filter"><dir name="Array"><file name="Grid.php" hash="14bd2f5ab60e7255557fc2dff7f24a37"/></dir><file name="Array.php" hash="a38e3d26f47d1bfaf4e023662d9a3dad"/><file name="Email.php" hash="067f3ea6f1597ea2501455865977d789"/><file name="Money.php" hash="8bec682670cb4cbf48e4b4264e2ab188"/><dir name="Object"><file name="Grid.php" hash="e3c3fa92761e5a1e1401192d8362301e"/></dir><file name="Object.php" hash="5b85aaff354eb0770e14efcfebda263b"/><file name="Sprintf.php" hash="0dd85ddc3d4b737d7cc6308afc12db18"/><dir name="Template"><file name="Simple.php" hash="b342cd136c10a6630d2d7dccd4137387"/><dir name="Tokenizer"><file name="Abstract.php" hash="d737a3d6599939b2a12b55975c9af780"/><file name="Parameter.php" hash="140ab2548a3da859473a46c7b0d44504"/><file name="Variable.php" hash="4ba64c31b234db22c2ff1799a49e7798"/></dir></dir><file name="Template.php" hash="48c08c9c1c9199e43e53f682df53ceae"/></dir><dir name="Http"><dir name="Adapter"><file name="Curl.php" hash="6d7dd607c55582ac08416f1940f3868c"/></dir><file name="Client.php" hash="eac22d5beaca06c1678c327a13e7f45d"/></dir><dir name="Image"><dir name="Adapter"><file name="Abstract.php" hash="0ac17ab0c82dea6289caf0985be0c47d"/><file name="Gd2.php" hash="7d7c4751697adac77961431a297fc6a3"/></dir><file name="Adapter.php" hash="edbab0bcfa931ae1d8f813f467e6b311"/></dir><file name="Image.php" hash="dfec3144e465eb2558a76a84f4736254"/><dir name="Io"><file name="Abstract.php" hash="53e7055dfe0ca7d133b94cfbf3621693"/><file name="Exception.php" hash="493365429caf5d2170c00137b081b195"/><file name="File.php" hash="4d0613516c6d3824d1ec4442c99a6b8a"/><file name="Ftp.php" hash="f349b9b833133853c902abb493d4f3bd"/><file name="Interface.php" hash="0b26ea223a4bed00df9b7b808b2acf80"/><file name="Sftp.php" hash="461d458eb368ed01f3b9194bafc4030d"/></dir><dir name="Object"><file name="Cache.php" hash="a87d2ae2d015a4e2f2fc1b611feccfcd"/><file name="Mapper.php" hash="1180b9b29c366d886e8af05181aebbce"/></dir><file name="Object.php" hash="0d5d06e7eb4439372bf90e2e41e998d7"/><dir name="Pear"><file name="Frontend.php" hash="61a9a308d54eca9e0a0bbc09296189f1"/><file name="Package.php" hash="a4261d73ebc059785fe418c6350bb4e5"/><file name="Registry.php" hash="5780af5995ea9af32032d3ebe496e251"/></dir><file name="Pear.php" hash="d60801531ef3ac16b26e302961310c53"/><file name="Profiler.php" hash="d434c08a6dd3ef8eb168e3a3d46f057f"/><dir name="Simplexml"><dir name="Config"><dir name="Cache"><file name="Abstract.php" hash="6dbbd6f1bc63c1b7ee086399da30f4e0"/><file name="File.php" hash="f99292ec6d04d5464a1313a2c52880d4"/></dir></dir><file name="Config.php" hash="a957b7feccdf430239af81610a6ac281"/><file name="Element.php" hash="fca2dddf067b1e038834b27cb5a746a4"/></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php><package><name>Lib_ZF</name><channel>community</channel><min>1.11.1.0</min><max>1.12.0.0</max></package><extension><name>PDO</name><min></min><max></max></extension><extension><name>SPL</name><min></min><max></max></extension><extension><name>curl</name><min></min><max></max></extension><extension><name>SimpleXML</name><min></min><max></max></extension><extension><name>dom</name><min></min><max></max></extension><extension><name>gd</name><min></min><max></max></extension><extension><name>iconv</name><min></min><max></max></extension><extension><name>pdo_mysql</name><min></min><max></max></extension><extension><name>mcrypt</name><min></min><max></max></extension><extension><name>pcre</name><min></min><max></max></extension><extension><name>Reflection</name><min></min><max></max></extension><extension><name>session</name><min></min><max></max></extension></required></dependencies>
18
  </package>