Knolseed - Version 1.1.10

Version Notes

No known bugs or limitations

Download this release

Release Info

Developer Mohan Varadarajan
Extension Knolseed
Version 1.1.10
Comparing to
See all releases


Code changes from version 1.1.9 to 1.1.10

Files changed (36) hide show
  1. app/code/local/Knolseed/Engage/Helper/Data.php +1 -0
  2. app/code/local/Knolseed/Engage/Model/Observer.php +27 -6
  3. app/code/local/Knolseed/Engage/controllers/Adminhtml/EngageController.php +14 -3
  4. app/code/local/Knolseed/Engage/etc/config.xml +1 -1
  5. lib/knolseed/Engage/Block/Adminhtml/Engage.php +20 -0
  6. lib/knolseed/Engage/Block/Adminhtml/Engage/Edit.php +53 -0
  7. lib/knolseed/Engage/Block/Adminhtml/Engage/Edit/Form.php +27 -0
  8. lib/knolseed/Engage/Block/Adminhtml/Engage/Edit/Tab/Form.php +67 -0
  9. lib/knolseed/Engage/Block/Adminhtml/Engage/Edit/Tabs.php +32 -0
  10. lib/knolseed/Engage/Block/Adminhtml/Engage/Grid.php +128 -0
  11. lib/knolseed/Engage/Block/Button.php +28 -0
  12. lib/knolseed/Engage/Block/Buttonexport.php +28 -0
  13. lib/knolseed/Engage/Block/Buttontestconnect.php +164 -0
  14. lib/knolseed/Engage/Block/Engage.php +25 -0
  15. lib/knolseed/Engage/Block/Ga.php +117 -0
  16. lib/knolseed/Engage/Helper/Data.php +1801 -0
  17. lib/knolseed/Engage/Model/Catalogvalues.php +57 -0
  18. lib/knolseed/Engage/Model/Crontime.php +79 -0
  19. lib/knolseed/Engage/Model/Customervalues.php +54 -0
  20. lib/knolseed/Engage/Model/Engage.php +16 -0
  21. lib/knolseed/Engage/Model/Gacode.php +47 -0
  22. lib/knolseed/Engage/Model/Mysql4/Engage.php +16 -0
  23. lib/knolseed/Engage/Model/Mysql4/Engage/Collection.php +16 -0
  24. lib/knolseed/Engage/Model/Observer.php +392 -0
  25. lib/knolseed/Engage/Model/Productvalues.php +68 -0
  26. lib/knolseed/Engage/Model/Status.php +30 -0
  27. lib/knolseed/Engage/Model/Time.php +78 -0
  28. lib/knolseed/Engage/Model/Timeframe.php +36 -0
  29. lib/knolseed/Engage/Model/Uploadinfo.php +18 -0
  30. lib/knolseed/Engage/controllers/Adminhtml/EngageController.php +265 -0
  31. lib/knolseed/Engage/controllers/IndexController.php +55 -0
  32. lib/knolseed/Engage/etc/adminhtml.xml +118 -0
  33. lib/knolseed/Engage/etc/config.xml +221 -0
  34. lib/knolseed/Engage/etc/system.xml +241 -0
  35. lib/knolseed/Engage/sql/engage_setup/mysql4-install-0.1.0.php +28 -0
  36. package.xml +5 -5
app/code/local/Knolseed/Engage/Helper/Data.php CHANGED
@@ -1799,3 +1799,4 @@ class Knolseed_Engage_Helper_Data extends Mage_Core_Helper_Abstract
1799
 
1800
  }
1801
 
 
1799
 
1800
  }
1801
 
1802
+
app/code/local/Knolseed/Engage/Model/Observer.php CHANGED
@@ -19,6 +19,7 @@ class Knolseed_Engage_Model_Observer extends Mage_Core_Model_Abstract
19
  public $aws_foldername = '';
20
  public $aws_token = '';
21
  public $aws_acl = 'private';
 
22
 
23
  public $kf_authurl = 'http://app.knolseed.com/settings/keys?';
24
  public $kf_tracks3pushurl = 'http://app.knolseed.com/uploads/register?';
@@ -41,10 +42,16 @@ class Knolseed_Engage_Model_Observer extends Mage_Core_Model_Abstract
41
  public function getAwsAccessKey($token){
42
  Mage::log("Entry Knolseed_Engage_Model_Observer::getAwsAccessKey()",null,'knolseed.log');
43
 
 
 
 
 
 
44
  try{
 
45
  $http = new Varien_Http_Adapter_Curl();
46
  $config = array('timeout' => 15); # Or whatever you like!
47
- $config['header'] = false;
48
  $config['ssl_cert'] = false;
49
 
50
  $requestQuery = "auth_token=".$token;
@@ -53,15 +60,26 @@ class Knolseed_Engage_Model_Observer extends Mage_Core_Model_Abstract
53
 
54
  ## make a POST call
55
  $http->write(Zend_Http_Client::GET, $this->kf_authurl . $requestQuery );
56
-
57
  ## Get Response
58
  $response = $http->read();
59
- $data = json_decode($response);
 
 
 
 
 
60
 
61
  # Close Call
62
- $http->close();
63
 
64
- $accessdetails = json_decode($response);
 
 
 
 
 
 
65
  # Mage::log('Printing response for '.$this->kf_authurl,null, 'knolseed.log');
66
  # Mage::log($accessdetails,null, 'knolseed.log');
67
  if( $accessdetails->data->access_key_id ) {
@@ -81,12 +99,14 @@ class Knolseed_Engage_Model_Observer extends Mage_Core_Model_Abstract
81
  'token' => $session_token
82
  ));
83
 
 
 
 
84
  return $client;
85
 
86
  }else{
87
  //Admin notification
88
  $errormessage = "Error: Product sync unable to contact Knolseed at ".$this->kf_authurl.$requestQuery.". Will retry again later" ;
89
-
90
  Mage::helper('engage')->errorAdminNotification('GetTemporaryCredentials','AWSpush',$errormessage,'',true);
91
  }
92
 
@@ -370,3 +390,4 @@ class Knolseed_Engage_Model_Observer extends Mage_Core_Model_Abstract
370
  }
371
 
372
  ?>
 
19
  public $aws_foldername = '';
20
  public $aws_token = '';
21
  public $aws_acl = 'private';
22
+ public $aws_access_key = null;
23
 
24
  public $kf_authurl = 'http://app.knolseed.com/settings/keys?';
25
  public $kf_tracks3pushurl = 'http://app.knolseed.com/uploads/register?';
42
  public function getAwsAccessKey($token){
43
  Mage::log("Entry Knolseed_Engage_Model_Observer::getAwsAccessKey()",null,'knolseed.log');
44
 
45
+ # if(!is_null($this->aws_access_key)){
46
+ # Mage::log("Returning existing AWS Access Key",null,'knolseed.log');
47
+ # return $this->aws_access_key;
48
+ # }
49
+
50
  try{
51
+ Mage::log("Generating new AWS Access Key",null,'knolseed.log');
52
  $http = new Varien_Http_Adapter_Curl();
53
  $config = array('timeout' => 15); # Or whatever you like!
54
+ $config['header'] = true;
55
  $config['ssl_cert'] = false;
56
 
57
  $requestQuery = "auth_token=".$token;
60
 
61
  ## make a POST call
62
  $http->write(Zend_Http_Client::GET, $this->kf_authurl . $requestQuery );
63
+
64
  ## Get Response
65
  $response = $http->read();
66
+ # Mage::log("Response = ". print_r($response,true),null,'knolseed.log');
67
+
68
+ # $modResponse = preg_replace('/(\r\n|\r|\n)/s',"\n",$response);
69
+ # $responseParts = array();
70
+ # $responseParts = explode("\n\n", $modResponse);
71
+ $responseParts = explode("\r\n\r\n", $response);
72
 
73
  # Close Call
74
+ $http->close();
75
 
76
+ # Fix for ignoring HTTP Headers in response.
77
+ # Mage::log("Response Header = ". print_r($responseParts[0],true),null,'knolseed.log');
78
+ # Mage::log("Response Body = ". print_r($responseParts[1],true),null,'knolseed.log');
79
+ $accessdetails = json_decode($responseParts[1]);
80
+ # $accessdetails = json_decode($response);
81
+
82
+ # Mage::log("JSON Decoded Response = ". print_r($accessdetails,true),null,'knolseed.log');
83
  # Mage::log('Printing response for '.$this->kf_authurl,null, 'knolseed.log');
84
  # Mage::log($accessdetails,null, 'knolseed.log');
85
  if( $accessdetails->data->access_key_id ) {
99
  'token' => $session_token
100
  ));
101
 
102
+ # Mage::log("JSON Decoded Response = ". print_r($accessdetails,true),null,'knolseed.log');
103
+
104
+ $this->aws_access_key = $client;
105
  return $client;
106
 
107
  }else{
108
  //Admin notification
109
  $errormessage = "Error: Product sync unable to contact Knolseed at ".$this->kf_authurl.$requestQuery.". Will retry again later" ;
 
110
  Mage::helper('engage')->errorAdminNotification('GetTemporaryCredentials','AWSpush',$errormessage,'',true);
111
  }
112
 
390
  }
391
 
392
  ?>
393
+
app/code/local/Knolseed/Engage/controllers/Adminhtml/EngageController.php CHANGED
@@ -27,7 +27,7 @@ class Knolseed_Engage_Adminhtml_EngageController extends Mage_Adminhtml_Controll
27
  try {
28
  $http = new Varien_Http_Adapter_Curl();
29
  $config = array('timeout' => 30); # Or whatever you like!
30
- $config['header'] = false;
31
 
32
  $requestQuery = "email=".$email."&password=".$password;
33
 
@@ -38,10 +38,20 @@ class Knolseed_Engage_Adminhtml_EngageController extends Mage_Adminhtml_Controll
38
 
39
  ## Get Response
40
  $response = $http->read();
41
- $data = json_decode($response);
 
 
 
 
 
42
 
43
  # Close Call
44
- $http->close();
 
 
 
 
 
45
 
46
  if( $data->success && $data->data->authentication_token ) {
47
  Mage::log('KS Response:'.print_r($data->data,true), null, 'knolseed.log');
@@ -253,3 +263,4 @@ class Knolseed_Engage_Adminhtml_EngageController extends Mage_Adminhtml_Controll
253
  }
254
 
255
  }
 
27
  try {
28
  $http = new Varien_Http_Adapter_Curl();
29
  $config = array('timeout' => 30); # Or whatever you like!
30
+ $config['header'] = true;
31
 
32
  $requestQuery = "email=".$email."&password=".$password;
33
 
38
 
39
  ## Get Response
40
  $response = $http->read();
41
+ Mage::log("Response = ". print_r($response,true),null,'knolseed.log');
42
+
43
+ # $modResponse = preg_replace('/(\r\n|\r|\n)/s',"\n",$response);
44
+ # $responseParts = array();
45
+ # $responseParts = explode("\n\n", $modResponse);
46
+ $responseParts = explode("\r\n\r\n", $response);
47
 
48
  # Close Call
49
+ $http->close();
50
+
51
+ # Fix for ignoring HTTP Headers in response.
52
+ # Mage::log("Response Header = ". print_r($responseParts[0],true),null,'knolseed.log');
53
+ Mage::log("Response Body = ". print_r($responseParts[1],true),null,'knolseed.log');
54
+ $data = json_decode($responseParts[1]);
55
 
56
  if( $data->success && $data->data->authentication_token ) {
57
  Mage::log('KS Response:'.print_r($data->data,true), null, 'knolseed.log');
263
  }
264
 
265
  }
266
+
app/code/local/Knolseed/Engage/etc/config.xml CHANGED
@@ -210,7 +210,7 @@
210
  <jobs>
211
  <knolseed_engage>
212
  <schedule>
213
- <cron_expr>*/10 * * * *</cron_expr>
214
  </schedule>
215
  <run>
216
  <model>engage/observer::setScript</model>
210
  <jobs>
211
  <knolseed_engage>
212
  <schedule>
213
+ <cron_expr>*/5 * * * *</cron_expr>
214
  </schedule>
215
  <run>
216
  <model>engage/observer::setScript</model>
lib/knolseed/Engage/Block/Adminhtml/Engage.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ class Knolseed_Engage_Block_Adminhtml_Engage extends Mage_Adminhtml_Block_Widget_Grid_Container
10
+ {
11
+ public function __construct()
12
+ {
13
+ Mage::log("Entry Knolseed_Engage_Block_Adminhtml_Engage::__construct()",null,'knolseed.log');
14
+ $this->_controller = 'adminhtml_engage';
15
+ $this->_blockGroup = 'engage';
16
+ $this->_headerText = Mage::helper('engage')->__('Item Manager');
17
+ $this->_addButtonLabel = Mage::helper('engage')->__('Add Item');
18
+ parent::__construct();
19
+ }
20
+ }
lib/knolseed/Engage/Block/Adminhtml/Engage/Edit.php ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ class Knolseed_Engage_Block_Adminhtml_Engage_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
10
+ {
11
+ public function __construct()
12
+ {
13
+ parent::__construct();
14
+ Mage::log("Entry Knolseed_Engage_Block_Adminhtml_Engage_Edit::__construct()",null,'knolseed.log');
15
+ $this->_objectId = 'id';
16
+ $this->_blockGroup = 'engage';
17
+ $this->_controller = 'adminhtml_engage';
18
+
19
+ $this->_updateButton('save', 'label', Mage::helper('engage')->__('Save Item'));
20
+ $this->_updateButton('delete', 'label', Mage::helper('engage')->__('Delete Item'));
21
+
22
+ $this->_addButton('saveandcontinue', array(
23
+ 'label' => Mage::helper('adminhtml')->__('Save And Continue Edit'),
24
+ 'onclick' => 'saveAndContinueEdit()',
25
+ 'class' => 'save',
26
+ ), -100);
27
+
28
+ $this->_formScripts[] = "
29
+ function toggleEditor() {
30
+ if (tinyMCE.getInstanceById('engage_content') == null) {
31
+ tinyMCE.execCommand('mceAddControl', false, 'engage_content');
32
+ } else {
33
+ tinyMCE.execCommand('mceRemoveControl', false, 'engage_content');
34
+ }
35
+ }
36
+
37
+ function saveAndContinueEdit(){
38
+ editForm.submit($('edit_form').action+'back/edit/');
39
+ }
40
+ ";
41
+ }
42
+
43
+ public function getHeaderText()
44
+ {
45
+ Mage::log("Entry Knolseed_Engage_Block_Adminhtml_Engage_Edit::getHeaderText()",null,'knolseed.log');
46
+ if( Mage::registry('engage_data') && Mage::registry('engage_data')->getId() ) {
47
+ return Mage::helper('engage')->__("Edit Item '%s'", $this->htmlEscape(Mage::registry('engage_data')->getTitle()));
48
+ } else {
49
+ return Mage::helper('engage')->__('Add Item');
50
+ }
51
+ }
52
+
53
+ }
lib/knolseed/Engage/Block/Adminhtml/Engage/Edit/Form.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ class Knolseed_Engage_Block_Adminhtml_Engage_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
10
+ {
11
+ protected function _prepareForm()
12
+ {
13
+ Mage::log("Entry Knolseed_Engage_Block_Adminhtml_Engage_Edit_Form::_prepareForm()",null,'knolseed.log');
14
+ $form = new Varien_Data_Form(array(
15
+ 'id' => 'edit_form',
16
+ 'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
17
+ 'method' => 'post',
18
+ 'enctype' => 'multipart/form-data'
19
+ )
20
+ );
21
+
22
+ $form->setUseContainer(true);
23
+ $this->setForm($form);
24
+ return parent::_prepareForm();
25
+ }
26
+
27
+ }
lib/knolseed/Engage/Block/Adminhtml/Engage/Edit/Tab/Form.php ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ class Knolseed_Engage_Block_Adminhtml_Engage_Edit_Tab_Form extends Mage_Adminhtml_Block_Widget_Form
10
+ {
11
+
12
+ protected function _prepareForm()
13
+ {
14
+ Mage::log("Entry Knolseed_Engage_Block_Adminhtml_Engage_Edit_Tab_Form::_prepareForm()",null,'knolseed.log');
15
+ $form = new Varien_Data_Form();
16
+ $this->setForm($form);
17
+ $fieldset = $form->addFieldset('engage_form', array('legend'=>Mage::helper('engage')->__('Item information')));
18
+
19
+ $fieldset->addField('title', 'text', array(
20
+ 'label' => Mage::helper('engage')->__('Title'),
21
+ 'class' => 'required-entry',
22
+ 'required' => true,
23
+ 'name' => 'title',
24
+ ));
25
+
26
+ $fieldset->addField('filename', 'file', array(
27
+ 'label' => Mage::helper('engage')->__('File'),
28
+ 'required' => false,
29
+ 'name' => 'filename',
30
+ ));
31
+
32
+ $fieldset->addField('status', 'select', array(
33
+ 'label' => Mage::helper('engage')->__('Status'),
34
+ 'name' => 'status',
35
+ 'values' => array(
36
+ array(
37
+ 'value' => 1,
38
+ 'label' => Mage::helper('engage')->__('Enabled'),
39
+ ),
40
+
41
+ array(
42
+ 'value' => 2,
43
+ 'label' => Mage::helper('engage')->__('Disabled'),
44
+ ),
45
+ ),
46
+ ));
47
+
48
+ $fieldset->addField('content', 'editor', array(
49
+ 'name' => 'content',
50
+ 'label' => Mage::helper('engage')->__('Content'),
51
+ 'title' => Mage::helper('engage')->__('Content'),
52
+ 'style' => 'width:700px; height:500px;',
53
+ 'wysiwyg' => false,
54
+ 'required' => true,
55
+ ));
56
+
57
+ if ( Mage::getSingleton('adminhtml/session')->getEngageData() )
58
+ {
59
+ $form->setValues(Mage::getSingleton('adminhtml/session')->getEngageData());
60
+ Mage::getSingleton('adminhtml/session')->setEngageData(null);
61
+ } elseif ( Mage::registry('engage_data') ) {
62
+ $form->setValues(Mage::registry('engage_data')->getData());
63
+ }
64
+ return parent::_prepareForm();
65
+ }
66
+
67
+ }
lib/knolseed/Engage/Block/Adminhtml/Engage/Edit/Tabs.php ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ class Knolseed_Engage_Block_Adminhtml_Engage_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
10
+ {
11
+
12
+ public function __construct()
13
+ {
14
+ parent::__construct();
15
+ Mage::log("Entry Knolseed_Engage_Block_Adminhtml_Engage_Edit_Tabs::__construct()",null,'knolseed.log');
16
+ $this->setId('engage_tabs');
17
+ $this->setDestElementId('edit_form');
18
+ $this->setTitle(Mage::helper('engage')->__('Item Information'));
19
+ }
20
+
21
+ protected function _beforeToHtml()
22
+ {
23
+ Mage::log("Entry Knolseed_Engage_Block_Adminhtml_Engage_Edit_Tabs::__beforeToHtml()",null,'knolseed.log');
24
+ $this->addTab('form_section', array(
25
+ 'label' => Mage::helper('engage')->__('Item Information'),
26
+ 'title' => Mage::helper('engage')->__('Item Information'),
27
+ 'content' => $this->getLayout()->createBlock('engage/adminhtml_engage_edit_tab_form')->toHtml(),
28
+ ));
29
+
30
+ return parent::_beforeToHtml();
31
+ }
32
+ }
lib/knolseed/Engage/Block/Adminhtml/Engage/Grid.php ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ class Knolseed_Engage_Block_Adminhtml_Engage_Grid extends Mage_Adminhtml_Block_Widget_Grid
10
+ {
11
+ public function __construct()
12
+ {
13
+ parent::__construct();
14
+ Mage::log("Entry Knolseed_Engage_Block_Adminhtml_Engage_Grid::__construct()",null,'knolseed.log');
15
+ $this->setId('engageGrid');
16
+ $this->setDefaultSort('engage_id');
17
+ $this->setDefaultDir('ASC');
18
+ $this->setSaveParametersInSession(true);
19
+ }
20
+
21
+ protected function _prepareCollection()
22
+ {
23
+ Mage::log("Entry Knolseed_Engage_Block_Adminhtml_Engage_Grid::_prepareCollection()",null,'knolseed.log');
24
+ $collection = Mage::getModel('engage/engage')->getCollection();
25
+ $this->setCollection($collection);
26
+ return parent::_prepareCollection();
27
+ }
28
+
29
+ protected function _prepareColumns()
30
+ {
31
+ Mage::log("Entry Knolseed_Engage_Block_Adminhtml_Engage_Grid::_prepareColumns()",null,'knolseed.log');
32
+
33
+ $this->addColumn('engage_id', array(
34
+ 'header' => Mage::helper('engage')->__('ID'),
35
+ 'align' =>'right',
36
+ 'width' => '50px',
37
+ 'index' => 'engage_id',
38
+ ));
39
+
40
+ $this->addColumn('title', array(
41
+ 'header' => Mage::helper('engage')->__('Title'),
42
+ 'align' =>'left',
43
+ 'index' => 'title',
44
+ ));
45
+
46
+ /*
47
+ $this->addColumn('content', array(
48
+ 'header' => Mage::helper('engage')->__('Item Content'),
49
+ 'width' => '150px',
50
+ 'index' => 'content',
51
+ ));
52
+ */
53
+
54
+ $this->addColumn('status', array(
55
+ 'header' => Mage::helper('engage')->__('Status'),
56
+ 'align' => 'left',
57
+ 'width' => '80px',
58
+ 'index' => 'status',
59
+ 'type' => 'options',
60
+ 'options' => array(
61
+ 1 => 'Enabled',
62
+ 2 => 'Disabled',
63
+ ),
64
+ ));
65
+
66
+ $this->addColumn('action',
67
+ array(
68
+ 'header' => Mage::helper('engage')->__('Action'),
69
+ 'width' => '100',
70
+ 'type' => 'action',
71
+ 'getter' => 'getId',
72
+ 'actions' => array(
73
+ array(
74
+ 'caption' => Mage::helper('engage')->__('Edit'),
75
+ 'url' => array('base'=> '*/*/edit'),
76
+ 'field' => 'id'
77
+ )
78
+ ),
79
+ 'filter' => false,
80
+ 'sortable' => false,
81
+ 'index' => 'stores',
82
+ 'is_system' => true,
83
+ ));
84
+
85
+ $this->addExportType('*/*/exportCsv', Mage::helper('engage')->__('CSV'));
86
+ $this->addExportType('*/*/exportXml', Mage::helper('engage')->__('XML'));
87
+
88
+ return parent::_prepareColumns();
89
+ }
90
+
91
+
92
+ protected function _prepareMassaction()
93
+ {
94
+ Mage::log("Entry Knolseed_Engage_Block_Adminhtml_Engage_Grid::_prepareMassaction()",null,'knolseed.log');
95
+ $this->setMassactionIdField('engage_id');
96
+ $this->getMassactionBlock()->setFormFieldName('engage');
97
+
98
+ $this->getMassactionBlock()->addItem('delete', array(
99
+ 'label' => Mage::helper('engage')->__('Delete'),
100
+ 'url' => $this->getUrl('*/*/massDelete'),
101
+ 'confirm' => Mage::helper('engage')->__('Are you sure?')
102
+ ));
103
+
104
+ $statuses = Mage::getSingleton('engage/status')->getOptionArray();
105
+
106
+ array_unshift($statuses, array('label'=>'', 'value'=>''));
107
+ $this->getMassactionBlock()->addItem('status', array(
108
+ 'label'=> Mage::helper('engage')->__('Change status'),
109
+ 'url' => $this->getUrl('*/*/massStatus', array('_current'=>true)),
110
+ 'additional' => array(
111
+ 'visibility' => array(
112
+ 'name' => 'status',
113
+ 'type' => 'select',
114
+ 'class' => 'required-entry',
115
+ 'label' => Mage::helper('engage')->__('Status'),
116
+ 'values' => $statuses
117
+ )
118
+ )
119
+ ));
120
+ return $this;
121
+ }
122
+
123
+ public function getRowUrl($row)
124
+ {
125
+ return $this->getUrl('*/*/edit', array('id' => $row->getId()));
126
+ }
127
+
128
+ }
lib/knolseed/Engage/Block/Button.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ class Knolseed_Engage_Block_Button extends Mage_Adminhtml_Block_System_Config_Form_Field
10
+ {
11
+
12
+ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
13
+ {
14
+ Mage::log("Entry Knolseed_Engage_Block_Button::_getElementHtml()",null,'knolseed.log');
15
+ $this->setElement($element);
16
+ //$url = $this->getUrl('catalog/product'); //
17
+ $url = $this->getUrl('engage/adminhtml_engage/Product_CSV');
18
+ $html = $this->getLayout()->createBlock('adminhtml/widget_button')
19
+ ->setType('button')
20
+ ->setClass('scalable')
21
+ ->setLabel('Export')
22
+ ->setOnClick("setLocation('$url')")
23
+ ->toHtml();
24
+
25
+ return $html;
26
+ }
27
+ }
28
+ ?>
lib/knolseed/Engage/Block/Buttonexport.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ class Knolseed_Engage_Block_Buttonexport extends Mage_Adminhtml_Block_System_Config_Form_Field
10
+ {
11
+
12
+ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
13
+ {
14
+ Mage::log("Entry Knolseed_Engage_Block_Buttonexport::_getElementHtml()",null,'knolseed.log');
15
+ $this->setElement($element);
16
+ //$url = $this->getUrl('catalog/product'); //
17
+ $url = $this->getUrl('engage/adminhtml_engage/Customer_CSV');
18
+ $html = $this->getLayout()->createBlock('adminhtml/widget_button')
19
+ ->setType('button')
20
+ ->setClass('scalable')
21
+ ->setLabel('Export')
22
+ ->setOnClick("setLocation('$url')")
23
+ ->toHtml();
24
+
25
+ return $html;
26
+ }
27
+ }
28
+ ?>
lib/knolseed/Engage/Block/Buttontestconnect.php ADDED
@@ -0,0 +1,164 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ class Knolseed_Engage_Block_Buttontestconnect extends Mage_Adminhtml_Block_System_Config_Form_Field
10
+ {
11
+
12
+ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
13
+ {
14
+ Mage::log("Entry Knolseed_Engage_Block_Buttontestconnect::_getElementHtml()",null,'knolseed.log');
15
+ $this->setElement($element);
16
+
17
+ $pingURL = $this->getUrl('engage/adminhtml_engage/TestAws_Connection');
18
+ # Mage::log('pingURL='.$pingURL,null,'knolseed.log');
19
+
20
+ $awstokenflag = (Mage::getStoreConfig('engage_options/aws/token')) ? '1' : '' ;
21
+ # Mage::log('awstokenflag='.$awstokenflag,null,'knolseed.log');
22
+
23
+ $gaflag = (Mage::getStoreConfig('google/analytics/active')) ? '1' : '' ;
24
+ # Mage::log('gaflag='.$gaflag,null,'knolseed.log');
25
+
26
+ $gasectionurl = Mage::getModel('adminhtml/url')->getUrl('/system_config/edit/section/google'); //Mage::getBaseUrl()."admin/system_config/edit/section/google/key/".$formkey."/";
27
+ # Mage::log('gasectionurl='.$gasectionurl,null,'knolseed.log');
28
+
29
+ $html = $this->getLayout()->createBlock('adminhtml/widget_button')
30
+ ->setType('button')
31
+ ->setClass('testawsconnection')
32
+ ->setId('testawsconnection')
33
+ ->setLabel('Connect')
34
+ ->setOnClick("testConnection();")
35
+ ->toHtml();
36
+
37
+ # Mage::log('Checkpoint 1='.$html,null,'knolseed.log');
38
+
39
+
40
+ $html .= '<style>
41
+ button.success {
42
+ background-color: #46745E;
43
+ border-color: #46745E;
44
+ background-image:none;
45
+ }
46
+
47
+ button.success:hover {
48
+ background-color: #46745E;
49
+ }
50
+
51
+ .disabled{
52
+ background-color: #e6e6e6 !important;
53
+ border: 1px solid #AAAAAA;
54
+ }
55
+
56
+ button.fail{
57
+ background-color: #FCAF81;
58
+ border-color: #D24403 #A92000 #A92000 #D24403;
59
+ color: #FFFFFF;
60
+ }
61
+ </style>
62
+ <script type="text/javascript">
63
+
64
+
65
+ Validation.add("required-entry-firstname", "Please enter a valid Google Account Number.", function(v) {
66
+ return !Validation.get("IsEmpty").test(v);
67
+ });
68
+
69
+ </script>
70
+ <script type="text/javascript">
71
+
72
+ var tokenvalidate = "'. $awstokenflag .'";
73
+ var googleanalyticsenabled = "'. $gaflag .'";
74
+ var coregooglemoduleurl = "'. $gasectionurl .'";
75
+ function validateToken(){
76
+
77
+ if(tokenvalidate){
78
+ document.getElementById("engage_options_aws_username").disabled=true;
79
+ document.getElementById("engage_options_aws_password").disabled=true;
80
+ document.getElementById("testawsconnection").disabled=true;
81
+
82
+ document.getElementById("engage_options_aws_username").className = "input-text disabled";
83
+ document.getElementById("engage_options_aws_password").className = "input-text disabled";
84
+ document.getElementById("testawsconnection").className="disabled";
85
+
86
+ document.getElementById("default-label-credentials").style.display = "none";
87
+ }
88
+
89
+ document.getElementById("engage_options_google_google_content").disabled=true;
90
+ document.getElementById("engage_options_google_google_content").className = "textarea disabled";
91
+ if(googleanalyticsenabled){
92
+ document.getElementById("gastatus").innerHTML = "KnolSeed Analytics requires Google Analytics (GA) to be enabled.<br> Google Analytics is enabled" ;
93
+ }else{
94
+
95
+ var anchor = "<div>KnolSeed Analytics requires Google Analytics (GA) to be enabled.<br> Please enable GA <a href="+coregooglemoduleurl+">here</a> and continue KnolSeed configuration.</div>";
96
+ document.getElementById("gastatus").innerHTML = anchor;
97
+ }
98
+
99
+ }
100
+
101
+
102
+ function reenterCredentials() {
103
+ document.getElementById("engage_options_aws_username").disabled=false;
104
+ document.getElementById("engage_options_aws_password").disabled=false;
105
+ document.getElementById("testawsconnection").disabled=false;
106
+
107
+ document.getElementById("engage_options_aws_username").className = "input-text";
108
+ document.getElementById("engage_options_aws_password").className = "input-text";
109
+ document.getElementById("testawsconnection").className = "scalable scalable";
110
+ }
111
+
112
+
113
+ window.onload = function(e){
114
+ validateToken();
115
+ }
116
+
117
+
118
+ function testConnection() {
119
+ var username=document.getElementById("engage_options_aws_username").value;
120
+ var password=document.getElementById("engage_options_aws_password").value;
121
+ params = {
122
+ email: username,
123
+ password: password
124
+ };
125
+ new Ajax.Request("'.$pingURL.'", {
126
+ parameters: params,
127
+ onSuccess: function(response) {
128
+ try {
129
+ response = response.responseText;
130
+ var ele = document.getElementById("testawsconnection");
131
+ if (response == 1) {
132
+ ele.innerHTML="<span><span><span>Connected</span></span></span>";
133
+ ele.classList.add("success");
134
+ ele.classList.remove("fail");
135
+ document.getElementById("default-label-credentials").style.display = "none";
136
+ }
137
+ else{
138
+ ele.innerHTML="<span><span><span>Connection failed! Try again?</span></span></span>";
139
+ ele.classList.add("fail");
140
+ ele.classList.remove("success");
141
+ document.getElementById("default-label-credentials").style.display = "none";
142
+ }
143
+ }
144
+ catch (e) {
145
+ ele.innerHTML="<span><span><span>Connection failed! Try again?</span></span></span>";
146
+ ele.classList.add("fail");
147
+ ele.classList.remove("success");
148
+ }
149
+ }
150
+ });
151
+ }
152
+ </script>
153
+ ';
154
+ if($awstokenflag){
155
+ # Mage::log('awstokenflag is true', null, 'knolseed.log');
156
+ $html .= '<div>Knolseed Plugin is enabled. To change/re-enter credentials,click <a href="javascript:void(0);" onclick="reenterCredentials()">here</a></div>';
157
+ }
158
+
159
+
160
+ # Mage::log('Returning='.$html, null, 'knolseed.log');
161
+ return $html;
162
+ }
163
+ }
164
+ ?>
lib/knolseed/Engage/Block/Engage.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ class Knolseed_Engage_Block_Engage extends Mage_Core_Block_Template
10
+ {
11
+ public function _prepareLayout()
12
+ {
13
+ return parent::_prepareLayout();
14
+ }
15
+
16
+ public function getEngage()
17
+ {
18
+ Mage::log("Entry Knolseed_Engage_Block_Engage::getEngage()",null,'knolseed.log');
19
+ if (!$this->hasData('engage')) {
20
+ $this->setData('engage', Mage::registry('engage'));
21
+ }
22
+ return $this->getData('engage');
23
+
24
+ }
25
+ }
lib/knolseed/Engage/Block/Ga.php ADDED
@@ -0,0 +1,117 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ class Knolseed_Engage_Block_Ga extends Mage_GoogleAnalytics_Block_Ga
10
+ {
11
+ public function _prepareLayout()
12
+ {
13
+ return parent::_prepareLayout();
14
+ }
15
+
16
+ protected function _getPageTrackingCode($accountId)
17
+ {
18
+ Mage::log("Entry Knolseed_Engage_Block_Ga::_getPageTrackingCode()",null,'knolseed.log');
19
+
20
+ $pageName = trim($this->getPageName());
21
+ $optPageURL = '';
22
+ if ($pageName && preg_match('/^\/.*/i', $pageName)) {
23
+ $optPageURL = ", '{$this->jsQuoteEscape($pageName)}'";
24
+ }
25
+ /* Start Google Javascript code */
26
+ if(Mage::getSingleton('customer/session')->isLoggedIn()) {
27
+ # Mage::log("Customer is logged in", null, 'knolseed.log');
28
+ $customerData = Mage::getSingleton('customer/session')->getCustomer();
29
+ $customer_id = $customerData->getId();
30
+ $script = Mage::getStoreConfig('engage_options/google/google_content');
31
+ $script=str_replace("customer_id",$customer_id,$script);
32
+ }
33
+ else
34
+ {
35
+ # Mage::log("Customer NOT logged in", null, 'knolseed.log');
36
+ $customerData = Mage::getSingleton('customer/session')->getCustomer();
37
+ $customer_id = $customerData->getId();
38
+ $script = Mage::getStoreConfig('engage_options/google/google_content');
39
+ $script=str_replace('_knolseed.push(["_setCustomerId", "customer_id"])','',$script);
40
+ }
41
+ /* End Google Javascript code */
42
+ /*if($script)
43
+ {*/
44
+ $finalscript=$script."_gaq.push(['_setAccount', '{$this->jsQuoteEscape($accountId)}']);
45
+ _gaq.push(['_trackPageview'{$optPageURL}]);
46
+ ";
47
+
48
+ # Mage::log("Returning=".$finalscript, null, 'knolseed.log');
49
+ return $finalscript;
50
+ /*}*/
51
+ /*else
52
+ {
53
+ return "_gaq.push(['_setAccount', '{$this->jsQuoteEscape($accountId)}']);
54
+ _gaq.push(['_trackPageview'{$optPageURL}]);
55
+ ";
56
+
57
+ }*/
58
+ }
59
+
60
+ public function getGa()
61
+ {
62
+ Mage::log("Entry Knolseed_Engage_Block_Ga::_getGa()",null,'knolseed.log');
63
+ if (!$this->hasData('ga')) {
64
+ $this->setData('ga', Mage::registry('ga'));
65
+ }
66
+ return $this->getData('ga');
67
+
68
+ }
69
+
70
+
71
+ protected function _getOrdersTrackingCode()
72
+ {
73
+ Mage::log("Entry Knolseed_Engage_Block_Ga::_getOrdersTrackingCode()",null,'knolseed.log');
74
+
75
+ $orderIds = $this->getOrderIds();
76
+ if (empty($orderIds) || !is_array($orderIds)) {
77
+ return;
78
+ }
79
+ $collection = Mage::getResourceModel('sales/order_collection')
80
+ ->addFieldToFilter('entity_id', array('in' => $orderIds))
81
+ ;
82
+ $result = array();
83
+ foreach ($collection as $order) {
84
+ if ($order->getIsVirtual()) {
85
+ $address = $order->getBillingAddress();
86
+ } else {
87
+ $address = $order->getShippingAddress();
88
+ }
89
+ $result[] = sprintf("_gaq.push(['_addTrans', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s']);",
90
+ $order->getIncrementId(),
91
+ $this->jsQuoteEscape(Mage::app()->getStore()->getFrontendName()),
92
+ $order->getBaseGrandTotal(),
93
+ $order->getBaseTaxAmount(),
94
+ $order->getBaseShippingAmount(),
95
+ $this->jsQuoteEscape(Mage::helper('core')->escapeHtml($address->getCity())),
96
+ $this->jsQuoteEscape(Mage::helper('core')->escapeHtml($address->getRegion())),
97
+ $this->jsQuoteEscape(Mage::helper('core')->escapeHtml($address->getCountry()))
98
+ );
99
+ foreach ($order->getAllVisibleItems() as $item) {
100
+ $cats = $item->getProduct()->getCategoryIds();
101
+ $catname = "";
102
+ foreach ($cats as $category_id) {
103
+ $_cat = Mage::getModel('catalog/category')->load($category_id) ;
104
+ $catname = $_cat->getName();
105
+ }
106
+ $result[] = sprintf("_gaq.push(['_addItem', '%s', '%s', '%s', '%s', '%s', '%s']);",
107
+ $order->getIncrementId(),
108
+ $this->jsQuoteEscape($item->getSku()), $this->jsQuoteEscape($item->getName()),
109
+ $catname, // there is no "category" defined for the order item
110
+ $item->getBasePrice(), $item->getQtyOrdered()
111
+ );
112
+ }
113
+ $result[] = "_gaq.push(['_trackTrans']);";
114
+ }
115
+ return implode("\n", $result);
116
+ }
117
+ }
lib/knolseed/Engage/Helper/Data.php ADDED
@@ -0,0 +1,1801 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+
10
+ class Knolseed_Engage_Helper_Data extends Mage_Core_Helper_Abstract
11
+ {
12
+
13
+ public $daytimeinminutes = '1440';
14
+ public $numberofdays = '30';
15
+ public $interval = '240';
16
+ public $records = '10000';
17
+ public $customerattributes = array();
18
+ public $productattributes = array();
19
+ public $categoryAttributes = array();
20
+ public $intervalRange = 30;
21
+
22
+ # To be configured appropriately
23
+ public $global_log_level = 'PROD';
24
+ # public $global_log_level = 'DEV';
25
+
26
+ /* contructing customer and product attributes*/
27
+ public function __construct() {
28
+ $this->kslog('DEBUG',"Entry Knolseed_Engage_Helper_Data::__construct()",null,'knolseed.log');
29
+
30
+ // Get Customer Attributes from Database
31
+ $customervalues = Mage::getModel('engage/customervalues')->toOptionArray();
32
+ foreach ($customervalues AS $key => $value)
33
+ {
34
+ $this->customerattributes[] = $value['value'];
35
+ }
36
+
37
+ // Get Product Attributes from Database
38
+ $productvalues = Mage::getModel('engage/productvalues')->toOptionArray();
39
+ foreach ($productvalues AS $key => $value)
40
+ {
41
+ $this->productattributes[] = $value['value'];
42
+ }
43
+
44
+ $this->kslog('DEBUG',"productattributes=".print_r($this->productattributes,true), null, 'knolseed.log');
45
+ }
46
+
47
+ /* Creating log */
48
+ public function kslog($loglevel, $msg, $two, $file){
49
+ # Mage::log("In kslog, params=".$loglevel.",".$msg.",".$two.",".$file, null, 'knolseed.log');
50
+ # Mage::log("In kslog, global_log_level=".$this->global_log_level, null, 'knolseed.log');
51
+
52
+ switch ($loglevel)
53
+ {
54
+ case 'DEBUG':
55
+ # Mage::log("its debug",null,'knolseed.log');
56
+ # IF its debug, only log in dev env
57
+ switch($this->global_log_level){
58
+ case 'DEV':
59
+ # Mage::log("its debug & dev",null,'knolseed.log');
60
+ Mage::log($msg, $two, $file);
61
+ break;
62
+
63
+ default:
64
+ # Mage::log("its debug & not dev",null,'knolseed.log');
65
+ break;
66
+ }
67
+ break;
68
+
69
+ default:
70
+ # Mage::log("its not debug",null,'knolseed.log');
71
+ # Log anyway
72
+ Mage::log($msg, $two, $file);
73
+ break;
74
+ }
75
+ }
76
+
77
+ /**
78
+ * This method checks next execution time for upload items CSV file.
79
+ * Next upload time
80
+ */
81
+ public function processHistoricalData(){
82
+ $this->kslog('DEBUG',"Entry Knolseed_Engage_Helper_Data::processHistoricalData()",null,'knolseed.log');
83
+
84
+ $jobtype = 'transaction';
85
+ $clearToRun = false;
86
+
87
+ try{
88
+ $uploadtime = Mage::getStoreConfig('upload_options/upload/transaction');
89
+ $this->kslog('DEBUG',"Upload Time = ".print_r($uploadtime,true),null,'knolseed.log');
90
+
91
+ // return false if there is no time set.
92
+ if( !trim($uploadtime) ) {
93
+ return false ;
94
+ }
95
+
96
+ $time = Mage::getStoreConfig('upload_options/upload/time');
97
+ $uploadinfo = explode(",",Mage::getStoreConfig('upload_options/upload/upload_info',Mage::app()->getStore()->getId()));
98
+
99
+ //if($uploadtime == Date("Y-m-d H:i"))
100
+ if( $this->checkExecuteTime($uploadtime, $jobtype) )
101
+ {
102
+ // Already running?
103
+ $clearToRun = $this->acquireLock('transaction', date("Ymd"));
104
+ if($clearToRun==false){
105
+ return;
106
+ }
107
+
108
+ $this->kslog('DEBUG',"processHistoricalData() - Acquired Lock",null,'knolseed.log');
109
+
110
+ // set time backtime
111
+ $coredataobj = new Mage_Core_Model_Config();
112
+ $coredataobj->saveConfig('upload_options/upload/transaction', ' ' ,'default', 0);
113
+ Mage::app()->getStore()->resetConfig();
114
+
115
+ $timeinterval = Mage::getStoreConfig('upload_options/upload/timeframe');
116
+ $nextexecutiontime = date('Y-m-d', strtotime($timeinterval." month"));
117
+
118
+ // Get total number of days
119
+ $totalnoofdays = $this->numberofdays*$timeinterval;
120
+
121
+ $this->kslog('DEBUG',"Starting Datasync for #days = ".print_r($totalnoofdays,true),null,'knolseed.log');
122
+
123
+ if(in_array('1', $uploadinfo))
124
+ {
125
+ # for($i=$totalnoofdays;$i>=0;$i--){
126
+ # $this->getTransactionInfo($i, $uploadtime, $type='transaction', $timeinterval);
127
+ # }
128
+ $filenames = array();
129
+ for($i=$totalnoofdays; $i>=0; $i--){
130
+ // Log error msgs for each exception and continue.
131
+ try {
132
+ $filename = $this->getTransactionInfo($i, $uploadtime, $type='transaction', $timeinterval);
133
+ $filenames[] = $filename;
134
+ } catch (Exception $e1) {
135
+ $errmsg = $e1->getMessage();
136
+ $this->kslog('ERROR', $errmsg, null, 'knolseed.err');
137
+ $this->errorAdminNotification('Transaction-Data-Sync',
138
+ "Error",
139
+ "Error in Transaction Data Sync: ".$errmsg.". Please email support@knolseed.com about this error, and we will help you to fix this problem.",
140
+ '',
141
+ true
142
+ );
143
+ }
144
+ } # for
145
+
146
+ if(count($filenames)>0){
147
+ # Upload Manifest file
148
+ $manifest_file_name = "Txn_".date('Ymd').".gz";
149
+ $observer = new Knolseed_Engage_Model_Observer();
150
+ $observer->addManifestFile($manifest_file_name, $type, '', $filenames);
151
+ }
152
+ }
153
+
154
+ if(in_array('2', $uploadinfo))
155
+ {
156
+ for($k=$totalnoofdays;$k>=0;$k--){
157
+ $this->getBrowsingInfo($k, $uploadtime, $type='weblog', $timeinterval);
158
+ }
159
+ }
160
+ }
161
+
162
+ }catch(Exception $e){
163
+ $errormessage = "Critical Error! Transaction data sync unable to authenticate with Knolseed. Please email support@knolseed.com about this error, and we will help you to fix this problem." ;
164
+ $this->errorAdminNotification('Upload-initialize-error','uploaddata',$errormessage,'',true);
165
+ }
166
+
167
+ if($clearToRun==true){
168
+ $this->kslog('DEBUG',"processHistoricalData() - Releasing Lock",null,'knolseed.log');
169
+ $this->releaseLock('transaction', date("Ymd"));
170
+ }
171
+
172
+ }
173
+
174
+
175
+ /* function to print product categories*/
176
+ public function printCategories(){
177
+ $this->kslog('DEBUG',"Entry Knolseed_Engage_Helper_Data::printCategories()",null,'knolseed.log');
178
+ # $this->printCategories_1();
179
+ }
180
+
181
+
182
+ /* function to print categories */
183
+ public function printCategories_1(){
184
+ $category = Mage::getModel('catalog/category');
185
+ $tree = $category->getTreeModel();
186
+ $tree->load();
187
+ $ids = $tree->getCollection()->getAllIds();
188
+ if ($ids){
189
+ foreach ($ids as $id){
190
+ $cat = Mage::getModel('catalog/category');
191
+ $cat->load($id);
192
+
193
+ $entity_id = $cat->getId();
194
+ $name = $cat->getName();
195
+ $url_key = $cat->getUrlKey();
196
+ $url_path = $cat->getUrlPath();
197
+ $level = $cat->getLevel();
198
+
199
+
200
+ # $parent_id = $cat->getParentId();
201
+ # Mage::log("Category: ID=".$entity_id.", Name=".$name.", URL=".$url_path.", ParentId=".$parent_id,null,'knolseed.log');
202
+
203
+ $this->kslog('DEBUG',"Category: ID=".$entity_id.", Name=".$name.", URL=".$url_path, null, 'knolseed.log');
204
+ if($level && $level==2){
205
+ $this->kslog('DEBUG',"Its a base category", null, 'knolseed.log');
206
+ }
207
+ }
208
+ }else{
209
+ $this->kslog('DEBUG',"Categories is empty!",null,'knolseed.log');
210
+ }
211
+ }
212
+
213
+
214
+ /**
215
+ * This method returns information related to sales order item.
216
+ *
217
+ */
218
+ public function getTransactionInfo($count,$startendtime,$type,$duration){
219
+ $this->kslog('DEBUG',"Entry Knolseed_Engage_Helper_Data::getTransactionInfo()",null,'knolseed.log');
220
+
221
+ try{
222
+ // Get sales order itmes collection
223
+ $collection = Mage::getResourceModel('sales/order_item_collection');
224
+
225
+ $createdday = date('Y-m-d',strtotime("-$count day"));
226
+ $filerandate = date('Ymd',strtotime("-$count day"));
227
+ $fileranstartdate = date('Y-m-d 00:00:00',strtotime("-$count day"));
228
+ $fileranenddate = date('Y-m-d 24:00:00',strtotime("-$count day"));
229
+
230
+ $collection->getSelect()->joinLeft(array('sfo'=>'sales_flat_order'),
231
+ 'main_table.order_id = sfo.entity_id',array('sfo.shipping_amount','sfo.customer_id','sfo.increment_id',
232
+ 'sfo.grand_total','sfo.base_currency_code','sfo.order_currency_code','sfo.global_currency_code','sfo.store_currency_code'));
233
+
234
+ $collection->addFieldToFilter('main_table.created_at',array('like' => $createdday.'%'));
235
+
236
+ // File path for saving CSV
237
+ $path = Mage::getBaseDir('var')."/";
238
+
239
+ $dateTs = strtotime($createdday);
240
+ $dateStr = date('Ymd',$dateTs);
241
+ // CSV filename
242
+ $filename = "Txn_".$dateStr."_1_of_1.csv.gz" ;
243
+
244
+ // Open CSv file in gzip mode
245
+ //$fp = fopen($path."/".$filename, 'w');
246
+ $fp = gzopen($path.$filename,'w9');
247
+
248
+ // Metadata headers for CSV file
249
+ // Line items 1 as per requirement
250
+ $removedays = $duration*30 ;
251
+ $currentday = date('Ymd');
252
+ //$startdaytime = date('Y-m-d H:i:s', strtotime(-$removedays." day"));
253
+ $startdaytime = date('Y-m-d H:i:s');
254
+ $etime = strtotime($startendtime);
255
+ $endtime = date('Y-m-d H:i:s', $etime);
256
+ $metaheaders = "";
257
+ $metaheaders = '# "'.$type.'","'.$filerandate.'","'.$fileranstartdate.'","'.$fileranenddate.'"'."\n" ;
258
+ //$metaheaders = "# ".$type.",".$currentday.",".$startdaytime.",".$endtime."\n" ;
259
+ gzwrite($fp, $metaheaders);
260
+
261
+ // Line items 2 as per requirement
262
+ $metaheadersline2 = "";
263
+ $metaheadersline2 = '#= id=\'Transaction_id\', cid=\'Customer_id\', sku=\'sku\', category=\'Category_Ids\', timestamp=\'Timestamp\', total=\'Transaction Amount\''."\n" ;
264
+ gzwrite($fp, $metaheadersline2);
265
+
266
+ //Double quotes logic for headers
267
+ $transaction_id_header = 'Transaction_id';
268
+ $customer_id_header = 'Customer_id';
269
+ $timestamp_header = 'Timestamp';
270
+ $Product_id_header = 'Product_id';
271
+ $sku_header = 'sku';
272
+ $Category_header = 'Category';
273
+ $category_ids_header = 'Category_Ids';
274
+ $Tax_header = 'Tax';
275
+ $Shipping_header = 'Shipping';
276
+
277
+ $headers_transaction = '"'.$transaction_id_header.'","'.$customer_id_header.'","'.$timestamp_header.'","'.$Product_id_header.'","'.$sku_header.'","'.$Category_header.'","'.$category_ids_header.'","Transaction Amount","No of items","'.$Tax_header.'","'.$Shipping_header.'","Product Description","base_currency_code","order_currency_code","store_currency_code","global_currency_code"'."\n" ;
278
+ gzwrite($fp, $headers_transaction) ;
279
+
280
+ // Iterate through sales order items
281
+ foreach($collection as $col){
282
+ # Mage::log("Found txn:".print_r($col,true),null,'knolseed.log');
283
+
284
+ $customer_id = str_replace('"', '""', $col['customer_id']);
285
+ $transaction_id = str_replace('"', '""', $col['increment_id']);
286
+ $timestamp = $col['created_at'];
287
+ $product_id = str_replace('"', '""', $col['product_id']);
288
+ $sku = str_replace('"', '""', $col['sku']);
289
+ $transaction_amount = $col['grand_total'];
290
+ $items = $col['qty_ordered'];
291
+ $tax = $col['tax_amount'];
292
+ $shipping = $col['shipping_amount'];
293
+ $description = str_replace('"', '""', $col['description']);
294
+ $proid = str_replace('"', '""', $col['product_id']);
295
+
296
+ $bcc = str_replace('"', '""', $col['base_currency_code']);
297
+ $occ = str_replace('"', '""', $col['order_currency_code']);
298
+ $scc = str_replace('"', '""', $col['store_currency_code']);
299
+ $gcc = str_replace('"', '""', $col['global_currency_code']);
300
+
301
+ $product = Mage::getModel('catalog/product')->load($proid);
302
+
303
+ # Mage::log("Found product:".print_r($product,true),null,'knolseed.log');
304
+
305
+ $product_price = $product->getFinalPrice() ;
306
+
307
+ $categorynames = array() ;
308
+ $categoryIds = array();
309
+ foreach( $product->getCategoryIds() as $categoryid ) {
310
+ $categoryIds[] = $categoryid;
311
+ $catagory_model = Mage::getModel('catalog/category');
312
+ $categories = $catagory_model->load($categoryid); // where $id will be the known category id
313
+ $categorynames[] = $categories->getName();
314
+ }
315
+ $cats = implode(",", $categorynames);
316
+ $cats = str_replace('"', '""', $cats);
317
+ $catids = implode(",", $categoryIds);
318
+
319
+ gzwrite($fp, '"'.$transaction_id.'","'.$customer_id.'","'.$timestamp.'","'.$product_id.'","'.$sku.'","'.$cats.'","'.$catids.'","'.$product_price.'","'.$items.'","'.$tax.'","'.$shipping.'","'.$description.'","'.$bcc.'","'.$occ.'","'.$scc.'","'.$gcc.'"'."\n");
320
+
321
+ }
322
+ gzclose($fp);
323
+
324
+ $filepath = $path."/".$filename;
325
+ $actual_file_name = $filename ;
326
+ $observer = new Knolseed_Engage_Model_Observer();
327
+ if( $observer->pushFileToS3($filepath, $actual_file_name, $type='transaction', false, '') ) {
328
+ unlink($filepath);
329
+ return $filename;
330
+ }
331
+
332
+ }catch(Exception $e){
333
+ $errormessage = "Critical Error! Transaction data dump failed for ". $createdday ." with error ". $filename ." Please email support@knolseed.com about this error, and we will help you to fix this problem." ;
334
+ $this->errorAdminNotification('transactionCSV','transaction',$errormessage,$filename,true);
335
+ }
336
+ }
337
+
338
+
339
+ /**
340
+ * This method returns information related to visitor's browsing information.
341
+ *
342
+ */
343
+ public function getBrowsingInfo($count,$startendtime,$type,$duration){
344
+ $this->kslog('DEBUG',"Entry Knolseed_Engage_Helper_Data::getBrowsingInfo()",null,'knolseed.log');
345
+
346
+ try{
347
+ // Get read connection object
348
+ $readAdapter = Mage::getSingleton('core/resource')->getConnection('core_read');
349
+
350
+ // Get date to filter collection
351
+ $createdday = date('Y-m-d',strtotime("-$count day"));
352
+ $filerandate = date('Ymd',strtotime("-$count day"));
353
+ $fileranstartdate = date('Y-m-d 00:00:00',strtotime("-$count day"));
354
+ $fileranenddate = date('Y-m-d 24:00:00',strtotime("-$count day"));
355
+
356
+ // Select query for retrieving required browsing info
357
+ $select = $readAdapter->select()
358
+ ->from('log_url', array('visitor_id','visit_time'))
359
+ ->join(array('lui' => 'log_url_info'), 'lui.url_id=log_url.url_id', array('url'))
360
+ ->where('visit_time like ?', $createdday.'%');
361
+
362
+ // Browsing info collection
363
+ $data = $readAdapter->fetchAll($select);
364
+
365
+ $this->kslog('DEBUG',"browsing data=".print_r($data,true),null,'knolseed.log');
366
+
367
+ // Path to CSV file
368
+ $path = Mage::getBaseDir('var')."/";
369
+
370
+ $dateTs = strtotime($createdday);
371
+ $dateStr = date('Ymd',$dateTs);
372
+ // CSV filename
373
+ $filename = "Browsing_".$dateStr."_1_of_1.csv.gz" ;
374
+
375
+ // CSV Filename
376
+ # $filename = "Browsing_".$createdday.".csv.gz" ;
377
+
378
+ //$fp = fopen($path."/".$filename, 'x+');
379
+ $fp = gzopen($path.$filename,'w9');
380
+ //$handle = fopen('test.csv', 'w');
381
+
382
+ // Metadata headers for CSV file
383
+ // Line items 1 as per requirement
384
+ $removedays = $duration*30 ;
385
+ $currentday = $filerandate;
386
+ $startdaytime = date('Y-m-d H:i:s', strtotime(-$removedays." day"));
387
+ $etime = strtotime($startendtime);
388
+ $endtime = date('Y-m-d H:i:s', $etime);
389
+ $metaheaders = "";
390
+ //$metaheaders = "# ".$type.",".$currentday.",".$startdaytime.",".$endtime."\n" ;
391
+ $metaheaders = '# '.$type.'","'.$currentday.'","'.$fileranstartdate.'","'.$fileranenddate.'"'."\n" ;
392
+ gzwrite($fp, $metaheaders);
393
+
394
+ // Line items 2 as per requirement
395
+ $metaheadersline2 = "";
396
+ $metaheadersline2 = '#= cid=\'Customer_id\', url=\'URL\', timestamp=\'Timestamp\''."\n" ;
397
+ //$metaheadersline2 = "# cid='Customer_id', url='URL', timestamp='Timestamp'\n" ;
398
+ gzwrite($fp, $metaheadersline2);
399
+
400
+ $customer_id_header = 'Customer_id';
401
+ $timestamp_header = 'Timestamp';
402
+ $URL_header = 'URL';
403
+ $Product_id_header = 'Product_id';
404
+ $Category_header = 'Category';
405
+
406
+ $headers_transaction = '"'.$customer_id_header.'","'.$timestamp_header.'","'.$URL_header.'","'.$Product_id_header.'","'.$Category_header.'"'."\n" ;
407
+ //fputcsv($fp, array('Customer_id','Timestamp','URL','Product_id','Category'));
408
+ gzwrite($fp, $headers_transaction) ;
409
+
410
+ foreach($data as $urlinfo){
411
+ $product = strpos($urlinfo['url'], 'product');
412
+
413
+ if ($product !== false){
414
+ $url = explode("/", $urlinfo['url']);
415
+ $productid = str_replace('"', '""', $url[count($url)-1]);
416
+
417
+ $product = Mage::getModel('catalog/product')->load($productid);
418
+ $categorynames = array() ;
419
+ foreach( $product->getCategoryIds() as $categoryid ) {
420
+ $catagory_model = Mage::getModel('catalog/category');
421
+ $categories = $catagory_model->load($categoryid); // where $id will be the known category id
422
+ $categorynames[] = $categories->getName();
423
+ }
424
+ $categoryname = str_replace('"', '""', implode(",", $categorynames) );
425
+
426
+ /*$catagory_model = Mage::getModel('catalog/category');
427
+ $categories = $catagory_model->load($categoryid); // where $id will be the known category id
428
+ $categoryname = $categories->getName();*/
429
+ # $stringurl = urlencode($urlinfo['url'])."\n";
430
+ $stringurl = $urlinfo['url']."\n";
431
+ $stringurl = str_replace('"', '""', $stringurl);
432
+ }
433
+
434
+ if( !is_numeric($productid)) {
435
+ $productid = $categoryname = "" ;
436
+ }
437
+
438
+ // Puting sales browsing items into CSV file
439
+ //fputcsv($fp, array($urlinfo['visitor_id'],$urlinfo['visit_time'],$stringurl,$productid,$categoryname));
440
+ gzwrite($fp, '"'.str_replace('"', '""', $urlinfo['visitor_id']).'","'.str_replace('"', '""', $urlinfo['visit_time']).'","'.$stringurl.'","'.$productid.'","'.$categoryname.'"'."\n");
441
+ }
442
+
443
+ // Close file
444
+ // fclose($fp);
445
+ gzclose($fp);
446
+ // Upload Browsing attributes CSV to S3 bucket
447
+ $filepath = $path."/".$filename;
448
+ $actual_file_name = $filename;
449
+
450
+ // push file to S3 bucket
451
+ $observer = new Knolseed_Engage_Model_Observer();
452
+
453
+ // unlink file if successfully pushed to S3 bucket
454
+ if( $observer->pushFileToS3($filepath, $actual_file_name, $type='browsing', false, '') ) {
455
+ unlink($filepath);
456
+ }
457
+
458
+ }catch(Exception $e){
459
+ $errormessage = "Critical Error! Transaction data dump failed for ". $createdday ." with error ". $filename ." Please email support@knolseed.com about this error, and we will help you to fix this problem." ;
460
+
461
+ // Error notification for exception
462
+ $this->errorAdminNotification('browsingCSV','browsing',$errormessage,$filename,true);
463
+ }
464
+ }
465
+
466
+
467
+ /**
468
+ * Check if its time to run!
469
+ *
470
+ * Strategy:
471
+ * Prod/Cust
472
+ * - runtime = Create timestamp in magento timezone with time = runtime.
473
+ * - now = Create now() in magento timezone.
474
+ * - if (now-runtime) < 30mins, true. Else false.
475
+ *
476
+ * Txn/Browse:
477
+ * - runtime = ts in magento tz with date & time from runtime.
478
+ * - now = same as above.
479
+ * - logic = same as above.
480
+ */
481
+ public function checkExecuteTime($runTime, $jobType) {
482
+ $this->kslog('DEBUG',"Entry Knolseed_Engage_Helper_Data::checkExecuteTime()",null,'knolseed.log');
483
+ $this->kslog('DEBUG',"runtime = ".print_r($runTime,true),null,'knolseed.log');
484
+
485
+ $fullRunTime = $runTime;
486
+ switch ($jobType)
487
+ {
488
+ case "product":
489
+ case "customer":
490
+ $date = date("Y-m-d");
491
+ if( strcmp("00:00", $runTime) == 0){
492
+ $date = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d")+1, date("Y")) ) ;
493
+ }
494
+ $fullRunTime = $date." ".trim($runTime);
495
+ break;
496
+
497
+ default:
498
+ $fullRunTime = $runTime;
499
+ break;
500
+ }
501
+
502
+ $runTsInSecs = strtotime($fullRunTime);
503
+ $now = date("Y-m-d H:i:s");
504
+ $nowInSecs = strtotime($now);
505
+
506
+ $this->kslog('DEBUG',"Scheduled Time = ".print_r($fullRunTime,true),null,'knolseed.log');
507
+ $this->kslog('DEBUG',"Current Time = ".print_r($now,true),null,'knolseed.log');
508
+ $this->kslog('DEBUG',"Scheduled Time in secs = ".$runTsInSecs,null,'knolseed.log');
509
+ $this->kslog('DEBUG',"Scheduled Time = ".$nowInSecs,null,'knolseed.log');
510
+
511
+ if( ($runTsInSecs>=$nowInSecs) && (($runTsInSecs-$nowInSecs)<= $this->intervalRange*60) ){
512
+ $this->kslog('DEBUG',"checkExecuteTime returning true",null,'knolseed.log');
513
+ return true;
514
+ }else{
515
+ $this->kslog('DEBUG',"checkExecuteTime returning false",null,'knolseed.log');
516
+ return false;
517
+ }
518
+ }
519
+
520
+
521
+ public function getLockFileName($type, $date){
522
+ return $type."_".date("Ymd").".lock";
523
+ }
524
+
525
+
526
+ public function getLockFilePath($filename){
527
+ $path = Mage::getBaseDir('var')."/" ;
528
+ return $path.$filename;
529
+ }
530
+
531
+
532
+ public function acquireLock($type, $date){
533
+ $filename = $this->getLockFileName($type, $date);
534
+ $filepath = $this->getLockFilePath($filename);
535
+
536
+ if(file_exists($filepath)){
537
+ $this->kslog('DEBUG', "acquireLock() - File already exists:".$filepath, null, 'knolseed.log');
538
+ return false;
539
+ }else{
540
+ try{
541
+ $lockfile = fopen($filepath, "w");
542
+ fwrite($lockfile, "acquireLock() - Locking for ".print_r($date,true)."\n");
543
+ fclose($lockfile);
544
+ $this->kslog('DEBUG', "acquireLock() - Acquired Lock : ".$filepath, null, 'knolseed.log');
545
+ return true;
546
+ }catch(Exception $e){
547
+ $this->kslog('ERROR', "Error in creating file:".$e->getMessage(), null, 'knolseed.err');
548
+ }
549
+ }
550
+
551
+ $this->kslog('DEBUG', "acquireLock() - Failed to acquire Lock : ".$filepath, null, 'knolseed.log');
552
+ return false;
553
+ }
554
+
555
+
556
+ public function releaseLock($type, $date){
557
+ $filename = $this->getLockFileName($type, $date);
558
+ $filepath = $this->getLockFilePath($filename);
559
+
560
+ $this->kslog('DEBUG', "releaseLock() - Releasing Lock : ".$filepath, null, 'knolseed.log');
561
+ unlink($filepath);
562
+ }
563
+
564
+ /**
565
+ * Create Customer Attributes CSV file
566
+ *
567
+ * Place created CSV file to AWS S3 bucket
568
+ *
569
+ */
570
+ public function processCustomerfile(){
571
+ $this->kslog('DEBUG',"Entry Knolseed_Engage_Helper_Data::processCustomerfile()",null,'knolseed.log');
572
+
573
+ $jobtype = 'customer';
574
+ $clearToRun = false;
575
+
576
+ try{
577
+ // get crontime & interval
578
+ $customer_csv_time = Mage::getStoreConfig('engage_options/customer/cron_time');
579
+ $customer_interval = $this->interval;
580
+
581
+ //if ($customer_csv_time==date("H:i"))
582
+ if( $this->checkExecuteTime($customer_csv_time, $jobtype) )
583
+ {
584
+ $all_files_uploaded = array();
585
+
586
+ // Already running?
587
+ $clearToRun = $this->acquireLock('customer', date("Ymd"));
588
+ if($clearToRun==false){
589
+ return;
590
+ }
591
+
592
+ $this->kslog('DEBUG',"processCustomerfile() - Acquired Lock",null,'knolseed.log');
593
+
594
+ // check for queue
595
+ # $this->checkForQueue('customer');
596
+ $filenames = $this->checkForQueue('customer');
597
+ if( !is_null($filenames) ){
598
+ foreach ($filenames as $fn) {
599
+ $all_files_uploaded[] = $fn;
600
+ }
601
+ }
602
+
603
+ $created_day = date('Y-m-d');
604
+
605
+ // Make process entry
606
+ $filenames = $this->makeProcessEntry($customer_csv_time, $customer_interval, 'customer');
607
+ if( !is_null($filenames) ){
608
+ foreach ($filenames as $fn) {
609
+ $all_files_uploaded[] = $fn;
610
+ }
611
+ }
612
+
613
+ // collection items for customer CSV
614
+ $processcollection = Mage::getModel('engage/engage')->getCollection()
615
+ ->addFieldToFilter('type','customer')
616
+ ->addFieldToFilter('created_at', array('eq' => $created_day));
617
+ $customerdata = $processcollection->getData();
618
+
619
+ $totalrecords = count($customerdata);
620
+
621
+ foreach ($customerdata as $process) {
622
+ // generate customer CSV file
623
+ $filenames = $this->createCustomerCsv($process['date_start'], $process['date_end'], $this->customerattributes, $process['process_id'], $process['filename'], $process['type'], $process['created_at'], '');
624
+ foreach($filenames as $fn){
625
+ $all_files_uploaded[] = $fn;
626
+ }
627
+ }
628
+
629
+ if(count($all_files_uploaded)>0){
630
+ # Upload Manifest file
631
+ $manifest_file_name = "Cust_".date('Ymd').".gz";
632
+ $observer = new Knolseed_Engage_Model_Observer();
633
+ $observer->addManifestFile($manifest_file_name, 'customer', '', $all_files_uploaded);
634
+ }
635
+
636
+ }
637
+
638
+ }catch(Exception $e){
639
+ $errormessage = "Error: Customer data dump failed for ". $customer_csv_time .". Will retry again later" ;
640
+ $this->errorAdminNotification('CustomerCSV-initialize-error','customer',$errormessage,'',true);
641
+ }
642
+
643
+ if($clearToRun==true){
644
+ $this->kslog('DEBUG',"processCustomerfile() - Releasing Lock",null,'knolseed.log');
645
+ $this->releaseLock('customer', date("Ymd"));
646
+ }
647
+
648
+ }
649
+
650
+
651
+ /* Creating folder in AWS */
652
+
653
+ public function getAWSFolderName($type){
654
+ $this->kslog('DEBUG',"Entry Knolseed_Engage_Helper_Data::getAWSFolderName()",null,'knolseed.log');
655
+
656
+ switch ($type)
657
+ {
658
+ case "product":
659
+ return "Product";
660
+ break;
661
+
662
+ case "customer":
663
+ return "Customer";
664
+ break;
665
+
666
+ case "transaction":
667
+ return "Transaction";
668
+ break;
669
+
670
+ case "browsing":
671
+ return "Browsing";
672
+ break;
673
+
674
+ case "category":
675
+ return "Category";
676
+ break;
677
+
678
+ default:
679
+ return "";
680
+ break;
681
+ }
682
+ }
683
+
684
+
685
+ /**
686
+ * Push created CSV files to S3 Bucket
687
+ * @param $from,$to,$attributearray,$process_id,$filename
688
+ * @return on success, creates customer CSV file & push file to S3 bucket
689
+ */
690
+ public function createCustomerCsv($from, $to, $attributearray, $process_id, $filename, $type, $createdate, $intialexecution = false) {
691
+ $this->kslog('DEBUG',"Entry Knolseed_Engage_Helper_Data::createCustomerCsv()",null,'knolseed.log');
692
+
693
+ $files = array();
694
+
695
+ try{
696
+ // File generation path
697
+ $path = Mage::getBaseDir('var')."/" ; # if you want to add new folder for csv files just add name of folder in dir with single quote.
698
+ // Load customer object for specified interval
699
+ $model = Mage::getModel('customer/customer'); //getting product model
700
+ $collection = $model->getCollection(); //products collection
701
+ $collection->addAttributeToFilter('updated_at', array('gt' =>$from));
702
+ $collection->addAttributeToFilter('updated_at', array('lt' => $to));
703
+
704
+ # Mage::log($collection->getSelect(),null,"knolseed.log") ;
705
+
706
+ // Check if this is first time execution for customer
707
+ if($intialexecution == true){
708
+ $totalcustcount = $collection->count();
709
+ $numberofchunk = ceil($totalcustcount/$this->records);
710
+
711
+ //$fp = fopen($path.$filename, 'w');
712
+ $filename = "Cust_".date("Ymd")."_1_of_".$numberofchunk.".csv.gz" ;
713
+
714
+ $this->kslog('DEBUG',"filename = ".print_r($filename,true),null,'knolseed.log');
715
+
716
+ // Metadata headers for CSV file
717
+ // Line items 1 as per requirement
718
+ $ctime = date("Ymd", strtotime($from));
719
+ $metaheaders = "";
720
+ //Start Date & End date logic
721
+ $begindate = $collection->getFirstItem()->getCreatedAt();
722
+ $endingdate = date('Y-m-d 00:00:00');
723
+ $metaheaders = '# "'.$type.'","'.$ctime.'","'.$begindate.'","'.$endingdate.'"'."\n" ;
724
+
725
+ }else{
726
+ $ts = strtotime($createdate);
727
+ $createday = date('Ymd',$ts);
728
+ $metaheaders = "";
729
+ //$metaheaders = "# ".$type.",".$createday.",".$from.",".$to."\n" ;
730
+ $metaheaders = '# "'.$type.'","'.$ctime.'","'.$from.'","'.$to.'"'."\n" ;
731
+ }
732
+
733
+ if( !trim($filename)) {
734
+ return $files ;
735
+ }
736
+
737
+ // attributes count for customer
738
+ $customervaluescount = count($attributearray);
739
+
740
+ // Open file handler for customer CSV
741
+ // $fp = fopen($path.$filename, 'w');
742
+ $fp = gzopen($path.$filename,'w9');
743
+
744
+ // Throw exception if failure happens
745
+ if (! $fp) {
746
+ throw new Exception("File creation error.");
747
+ }
748
+
749
+ gzwrite($fp, $metaheaders);
750
+
751
+ // Line items 2 as per requirement
752
+ $metaheadersline2 = "";
753
+ $metaheadersline2 = '#= id=\'Customer_id\', email=\'email\''."\n" ;
754
+ //$metaheadersline2 = "# id='Customer_id', email='email'\n" ;
755
+ gzwrite($fp, $metaheadersline2);
756
+
757
+ // Headers for cusotmer CSV file
758
+ $headers = "";
759
+ $custatrarray = '"'.implode('","', array_map('trim',$attributearray)).'"';
760
+ $headers = '"Customer_id",'.$custatrarray."\n";
761
+ gzwrite($fp, $headers);
762
+
763
+ $attribute_values = "";
764
+
765
+ $chunkcounter = $filecounter = 1;
766
+ foreach ($collection as $customers) //loop for getting customers
767
+ {
768
+
769
+ # Mage::log($customers,null,"knolseed.log") ;
770
+
771
+ // Load customer attributes
772
+ $customer = Mage::getModel('customer/customer')->load($customers->getId());
773
+ $attributes = $customer->getAttributes();
774
+ // str_replace('"','""',$string)
775
+ $attribute_values = '"'.str_replace('"', '""', $customer->getId()).'"';
776
+ # Mage::log('Dumping customer '.$customer->getId(),null,'knolseed.log');
777
+
778
+ foreach( $attributearray as $key => $vals )
779
+ {
780
+ // Assign customer attributes value
781
+ $attributeValue = $customer->getData( $vals ) ;
782
+
783
+ // get address attributes values
784
+ // Mohan: Is empty strings & nulls handled correctly?
785
+ if( $vals == "default_billing" || $vals == "default_shipping" ) {
786
+
787
+ $address = Mage::getModel('customer/address')->load($attributeValue);
788
+ $htmlAddress = $address->format('html');
789
+ $string = (string)$htmlAddress;
790
+ # Mage::log('Key= '.$vals.', Val= '.$string,null,'knolseed.log');
791
+
792
+ // $string = ereg_replace("[ \t\n\r]+", " ", $string);
793
+ // $string = str_replace(array('<br/>', ',', '<br />'), ' ', $string);
794
+ // $string = str_replace(array('<br/>', '<br />'), ' ', $string);
795
+ $attribute_values .= ',"'.str_replace('"','""',$string).'"';
796
+ // $attribute_values .= $string ;
797
+ } else {
798
+ // Mohan: Is this regex replace necessary?
799
+ // $string = ereg_replace("[\t\n\r]+", "", $attributeValue);
800
+ // $string = str_replace('"','""',$string);
801
+
802
+ $attribute_values .= ',"'.str_replace('"','""',$attributeValue).'"';
803
+ # Mage::log('Key= '.$vals.', Val= '.$attributeValue,null,'knolseed.log');
804
+
805
+ // $attribute_values .= $string ;
806
+ //$attribute_values .= '"'.str_replace(array('<br/>', ',', '<br />'), ' ', $string).'",';
807
+ }
808
+ }
809
+
810
+ $attribute_values .= "\n";
811
+
812
+ gzwrite($fp, $attribute_values);
813
+
814
+ $filepath = $path.$filename ;
815
+ $actual_file_name = $filename ;
816
+
817
+ // Mohan: Second condition is redundant.
818
+ if( $this->records == $chunkcounter && $filecounter <= $numberofchunk){
819
+ $chunkcounter = 0;
820
+ $filecounter++;
821
+ //fclose($fp);
822
+ gzclose($fp);
823
+
824
+ $observer = new Knolseed_Engage_Model_Observer();
825
+ if($observer->pushFileToS3($filepath, $actual_file_name, 'customer', false, $process_id)){
826
+ $files[] = $actual_file_name;
827
+ $this->kslog('DEBUG', "pushFileToS3 returned true", null, 'knolseed.log');
828
+
829
+ if($process_id){
830
+ // Update customer file pushed flag
831
+ $model = Mage::getModel('engage/engage')->load($process_id);
832
+ $model->setFilePushed(1);
833
+ $model->save();
834
+ }
835
+ // remove file after push
836
+ unlink($filepath);
837
+ }
838
+
839
+ $filename = "Cust_".date("Ymd")."_".$filecounter."_of_".$numberofchunk.".csv.gz" ;
840
+
841
+ $fp = gzopen($path.$filename,'w9');
842
+ gzwrite($fp, $metaheaders);
843
+ gzwrite($fp, $metaheadersline2);
844
+ gzwrite($fp, $headers);
845
+ }
846
+ $chunkcounter++;
847
+
848
+ }
849
+
850
+ gzclose($fp);
851
+
852
+ $filepath = $path.$filename ;
853
+ $actual_file_name = $filename ;
854
+
855
+ $observer = new Knolseed_Engage_Model_Observer();
856
+ if( $observer->pushFileToS3($filepath, $actual_file_name, $type='customer', false, $process_id) ) {
857
+ $files[] = $actual_file_name;
858
+ if($process_id){
859
+ // Update customer file pushed flag
860
+ $model = Mage::getModel('engage/engage')->load($process_id);
861
+ $model->setFilePushed(1);
862
+ $model->save();
863
+ }
864
+ // remove file after push
865
+ unlink($filepath);
866
+ return $files;
867
+ }
868
+
869
+ }catch(Exception $e){
870
+ // Check if critical error or retriable error
871
+ $kf_item = Mage::getModel('engage/engage')->load($process_id);
872
+ $critical = ($kf_item->getAttempt() >= 1) ? true : false ;
873
+
874
+ // Admin notification
875
+ //$this->errorAdminNotification('customerCSV','customer',$e->getMessage(),$filename,$critical);
876
+
877
+ $errormessage = "Critical Error! Customer data dump failed for ". $from ." ". $to ." Please email support@knolseed.com about this error, and we will help you to fix this problem." ;
878
+
879
+ // Admin notification
880
+ $this->errorAdminNotification('customerCSV','customer',$errormessage,$filename,$critical);
881
+
882
+ // Update attempt counts for RETRIABLE errors
883
+ $this->updatedAttempts($process_id);
884
+
885
+ return $files;
886
+ }
887
+ }
888
+
889
+
890
+ /**
891
+ * Push created CSV files to S3 Bucket
892
+ * @param $type='customer'||'product'
893
+ * @return on success, returns list of all files pushed to S3
894
+ */
895
+
896
+ public function checkForQueue($type){
897
+ $this->kslog('DEBUG',"Entry Knolseed_Engage_Helper_Data::checkForQueue()",null,'knolseed.log');
898
+
899
+ $files_pushed = array();
900
+
901
+ try{
902
+ // queue collection
903
+ $processcollection = Mage::getModel('engage/engage')->getCollection() //data from Kf_cron_process
904
+ ->addFieldToFilter('type',$type)
905
+ ->addFieldToFilter('file_pushed', 0);
906
+
907
+ # All the records for the queue
908
+ $queuedata = $processcollection->getData();
909
+ $this->kslog('DEBUG',"queuedata = ".print_r($queuedata,true),null,'knolseed.log');
910
+
911
+ // total records in queue
912
+ $totalrecords = count($queuedata);
913
+ $this->kslog('DEBUG','$totalrecords = '.print_r($totalrecords,true),null,'knolseed.log');
914
+
915
+ $path = Mage::getBaseDir('var')."/";
916
+ $this->kslog('DEBUG','$path = '.print_r($path,true),null,'knolseed.log');
917
+
918
+ if($totalrecords > 0)
919
+ {
920
+ # All entries need retries.
921
+ foreach ($queuedata as $process) {
922
+ $filenames = array();
923
+ if($type == 'customer') {
924
+ # create CSV file if file not generated
925
+ $filenames = $this->createCustomerCsv($process['date_start'], $process['date_end'], $this->customerattributes, $process['process_id'], $process['filename'], $process['type'], $process['created_at'], '') ;
926
+ }else if($type == 'product'){
927
+ # create CSV file if file not generated
928
+ $filenames = $this->createProductCsv($process['date_start'], $process['date_end'], $this->productattributes, $process['process_id'], $process['filename'], $process['type'], $process['created_at'], '') ;
929
+ }
930
+ }
931
+
932
+ foreach($filenames as $fn){
933
+ $this->kslog('INFO',"Dumped file:".$fn, null, 'knolseed.log');
934
+ $files_pushed[] = $fn;
935
+ }
936
+
937
+ }
938
+ }catch(Exception $e){
939
+ $errormessage = "Error: Data dump failed. Will retry again later" ;
940
+ $this->errorAdminNotification('Queue-checking-error','checkqueue',$errormessage,'',true);
941
+ }
942
+
943
+ return $files_pushed;
944
+
945
+ }
946
+
947
+
948
+ /**
949
+ * Push created CSV files to S3 Bucket
950
+ * @param $time,$interval,$type
951
+ * @return on success, creates kf process entry into kf_cron_process table
952
+ */
953
+ public function makeProcessEntry($time, $interval, $type){
954
+ $this->kslog('DEBUG',"Entry Knolseed_Engage_Helper_Data::makeProcessEntry()",null,'knolseed.log');
955
+
956
+ $filenames = array();
957
+
958
+ // Getting last execution day for DB lock scenario
959
+ // FIXME: Should this also filter on file_pushed=0 ?
960
+ $collection = Mage::getModel('engage/engage')->getCollection()->addFieldToFilter('type', $type);
961
+
962
+ $lastday = $collection->getLastItem()->getCreatedAt();
963
+ $this->kslog('DEBUG',"Latest Day : ".print_r($lastday,true),null,'knolseed.log');
964
+
965
+ // get hours minutes
966
+ //list($hours,$minute) = explode(":", $time) ;
967
+ $hours = $minute = 0 ;
968
+
969
+ // Get collection count for kf_cron_process
970
+ $totalcollectionitem = $collection->getData();
971
+ $totalitmes = count($totalcollectionitem);
972
+
973
+ // Check if kf_cron_process table is empty
974
+ if($totalitmes == 0)
975
+ {
976
+ $missedexecutiondays = 0;
977
+
978
+ // Code for first time push to S3
979
+ // Getting all products & customers data
980
+ $cust_filename = "Cust_".date("Ymd")."_1_of_1.csv.gz";
981
+ $prod_filename = "Prod_".date("Ymd")."_1_of_1.csv.gz";
982
+ $start_date = "0000-00-00 00:00:00";
983
+ $end_date = date("Y-m-d H:i:00", mktime($hours, $minute, 0, date("m"), date("d"), date("Y")) ) ;
984
+
985
+ //Call Create customer function
986
+
987
+ $files_pushed = array();
988
+ if($type == 'customer')
989
+ $files_pushed = $this->createCustomerCsv($start_date, $end_date, $this->customerattributes, '', $cust_filename, 'customer', $end_date, true);
990
+ else
991
+ $files_pushed = $this->createProductCsv($start_date, $end_date, $this->productattributes, '', $prod_filename, 'product', $end_date, true);
992
+
993
+ if( !is_null($files_pushed) && count($files_pushed)>0 ){
994
+ $filenames = $files_pushed;
995
+ $this->kslog('INFO',"First time upload of ".$type." data. File successfully uploaded!", null, 'knolseed.log');
996
+
997
+ $created_at = date('Y-m-d H:i:s');
998
+ $this->kslog('DEBUG',"created_at = ".$created_at, null, 'knolseed.log');
999
+
1000
+ $model = Mage::getModel('engage/engage');
1001
+ $model->setDateStart($start_date);
1002
+ $model->setDateEnd($end_date);
1003
+ $model->setFilePushed(1);
1004
+ $model->setFilename('');
1005
+ $model->setType($type);
1006
+ $model->setCreatedAt($created_at);
1007
+ $model->save();
1008
+ }
1009
+
1010
+ }else{
1011
+ $this->kslog('INFO',"MakeProcessEntry: Non-first time scenario", null, 'knolseed.log');
1012
+
1013
+ // Get current day
1014
+ $currentday = strtotime(date('Y-m-d'));
1015
+ $lastexecutionday = strtotime($lastday);
1016
+
1017
+ $misseddays = $currentday - $lastexecutionday;
1018
+ $missedexecutiondays = ceil($misseddays/86400);
1019
+ }
1020
+
1021
+ // calculate total number of entries
1022
+ $totaldbentry = ceil($this->daytimeinminutes/$interval);
1023
+
1024
+ // looping for missedout days for failed scenario
1025
+ for($x=($missedexecutiondays-1);$x>=0;$x--){
1026
+ for($i=0;$i<$totaldbentry;$i++){
1027
+ try{
1028
+ //Process start date
1029
+ $date_start = date("Y-m-d H:i:00", mktime($hours-24, $minute+($interval*$i), 0, date("m"), date("d")-$x, date("Y")) ) ;
1030
+ //Process end date
1031
+ $date_end = date("Y-m-d H:i:00", mktime($hours-24, $minute+($interval*($i+1)), 0, date("m"), date("d")-$x, date("Y")) ) ;
1032
+ //Date time for filename
1033
+ $name = date("Ymd", mktime($hours, $minute, 0, date("m"), date("d")-$x, date("Y"))) ;
1034
+
1035
+ // filename for customer & products
1036
+ if( $type == 'customer')
1037
+ $filename = "Cust_".$name."_". ($i+1) ."_of_".$totaldbentry.".csv.gz" ;
1038
+ else
1039
+ $filename = "Prod_".$name."_". ($i+1) ."_of_".$totaldbentry.".csv.gz" ;
1040
+
1041
+ $created_at = date('Y-m-d H:i:s');
1042
+ $this->kslog('DEBUG',"created_at = ".$created_at, null, 'knolseed.log');
1043
+
1044
+ // DB entry
1045
+ $model = Mage::getModel('engage/engage');
1046
+
1047
+ $model->setDateStart($date_start);
1048
+ $model->setDateEnd($date_end);
1049
+ $model->setFilePushed(0);
1050
+ $model->setFilename($filename);
1051
+ $model->setType($type);
1052
+ $model->setCreatedAt($created_at);
1053
+
1054
+ $model->save();
1055
+ $this->kslog('INFO',"MakeProcessEntry: Added db entry for:".$filename, null, 'knolseed.log');
1056
+ }catch(Exception $e){
1057
+ $errormessage = "Error: Data dump failed. Will retry again later" ;
1058
+
1059
+ // exception for error
1060
+ $this->errorAdminNotification('KF table-lock',$type,$errormessage,$filename,true);
1061
+ }
1062
+ }
1063
+ }
1064
+
1065
+ return $filenames;
1066
+ }
1067
+
1068
+
1069
+ /**
1070
+ * Email notification to admin for on failure
1071
+ *
1072
+ */
1073
+ public function errorAdminNotification($errormode, $errortype, $errormessage, $filename="", $critical=false){
1074
+ $this->kslog('DEBUG',"Entry Knolseed_Engage_Helper_Data::errorAdminNotification()",null,'knolseed.log');
1075
+
1076
+ try{
1077
+ // Log error message
1078
+ Mage::log($errormode.','.$errortype.','.$errormessage.','.$filename,null,'knolseed.err');
1079
+ Mage::log($errormode.','.$errortype.','.$errormessage.','.$filename,null,'knolseed.log');
1080
+
1081
+ if($critical == true){
1082
+ $errormode = 'critical-error';
1083
+ }
1084
+
1085
+ $translate = Mage::getSingleton('core/translate');
1086
+ $mailTemplate = Mage::getModel('core/email_template');
1087
+
1088
+ // check errormode
1089
+ switch ($errormode)
1090
+ {
1091
+ case "critical-error":
1092
+ $templatecode = "critical_error_notification";
1093
+ break;
1094
+
1095
+ case "productCSV":
1096
+ case "customerCSV":
1097
+ default:
1098
+ $templatecode = "general_error_notification";
1099
+ break;
1100
+ }
1101
+
1102
+ // Get general contact information
1103
+ $email = Mage::getStoreConfig('trans_email/ident_general/email');
1104
+ $name = Mage::getStoreConfig('trans_email/ident_general/name');
1105
+ $fromemail = Mage::getStoreConfig('trans_email/ident_support/email');
1106
+
1107
+ $vars = array();
1108
+ $vars['filename'] = $filename;
1109
+ $vars['errormessage'] = $errormessage;
1110
+ $vars['date'] = date('Y-m-d');
1111
+ $vars['type'] = $errortype;
1112
+ $vars['subject'] = $errormode;
1113
+ $edate = date('Y-m-d');
1114
+
1115
+ if( $errormode == "GetTemporaryCredentials" ) {
1116
+
1117
+ $subject = 'Error: sync unable to contact Knolseed';
1118
+ //$message = 'Error: Unable to contact Knolseed at https://app.knolseed.com/. Will retry again later.';
1119
+ }else if($templatecode == "general_error_notification"){
1120
+
1121
+ $subject = 'Error occured "'.$errortype.'": An error occured for "'.$filename.'".';
1122
+ //$message = 'Hi there, filename "'.$filename.'" error message "'.$errormessage.'" date "'.$edate.'" type "'.$errortype.'".';
1123
+ }else{
1124
+
1125
+ $subject = 'Critical Error! "'.$errortype.'" sync failed for "'.$filename.'"';
1126
+ //$message = 'Critical Error! "'.$errormessage.'" for "'.$filename.'". Please email support@knolseed.com about this error, and we will help you to fix this problem.';
1127
+ }
1128
+
1129
+ $message = $errormessage ;
1130
+
1131
+ $headers = 'From: "'.$fromemail.'"' ;
1132
+ mail($email, $subject, $message, $headers);
1133
+
1134
+ }catch(Exception $e){
1135
+ Mage::log("An error occurred while sending an email: ".$e->getMessage(),null,'knolseed.err');
1136
+ Mage::log("An error occurred while sending an email: ".$e->getMessage(),null,'knolseed.log');
1137
+ }
1138
+ }
1139
+
1140
+
1141
+ /**
1142
+ * Create Product Attributes CSV file
1143
+ *
1144
+ * Place created CSV file to AWS S3 bucket
1145
+ *
1146
+ * Category dump piggybacked on Product dump.
1147
+ * Check for product file, regenerate category & product if not exists or not updated.
1148
+ * Dumping categories again is small incremental load, so we can live with this.
1149
+ *
1150
+ */
1151
+ public function processProductfile(){
1152
+ $this->kslog('DEBUG',"Entry Knolseed_Engage_Helper_Data::processProductfile()",null,'knolseed.log');
1153
+
1154
+ $jobtype = 'product';
1155
+ $clearToRun = false;
1156
+
1157
+ try{
1158
+
1159
+ $product_csv_time = Mage::getStoreConfig('engage_options/product/cron_time');
1160
+ $product_interval = $this->interval;
1161
+
1162
+ $this->kslog('DEBUG',"product_csv_time = ".print_r($product_csv_time,true),null,'knolseed.log');
1163
+
1164
+ //if ($product_csv_time==date("H:i"))
1165
+ $retval = $this->checkExecuteTime($product_csv_time, $jobtype);
1166
+ $this->kslog('DEBUG',"return value of checkExecuteTime = ".print_r($retval,true), null, 'knolseed.log');
1167
+ if( $retval )
1168
+ {
1169
+ $this->kslog('DEBUG',"checkExecuteTime",null,'knolseed.log');
1170
+
1171
+ $all_files_uploaded = array();
1172
+
1173
+ // Already running?
1174
+ $clearToRun = $this->acquireLock('product', date("Ymd"));
1175
+ if($clearToRun==false){
1176
+ return;
1177
+ }
1178
+ $this->kslog('DEBUG',"processProductfile() - Acquired Lock",null,'knolseed.log');
1179
+
1180
+ // check queue for previous failure queue items
1181
+ $filenames = $this->checkForQueue('product');
1182
+ if( !is_null($filenames) ){
1183
+ foreach ($filenames as $fn){
1184
+ $all_files_uploaded[] = $fn;
1185
+ }
1186
+ }
1187
+ $this->kslog('DEBUG',"checkForQueue",null,'knolseed.log');
1188
+
1189
+ // process entry
1190
+ $filenames = $this->makeProcessEntry($product_csv_time,$product_interval,'product');
1191
+ if( !is_null($filenames) ){
1192
+ foreach ($filenames as $fn){
1193
+ $all_files_uploaded[] = $fn;
1194
+ }
1195
+ }
1196
+ $this->kslog('DEBUG',"makeProcessEntry",null,'knolseed.log');
1197
+
1198
+ // collection items for product CSV
1199
+ $createdday = date('Y-m-d');
1200
+
1201
+ $this->kslog('DEBUG',"Created Day = ".print_r($createdday,true),null,'knolseed.log');
1202
+
1203
+ $processcollection = Mage::getModel('engage/engage')->getCollection()
1204
+ ->addFieldToFilter('type','product')
1205
+ ->addFieldToFilter('created_at', array('eq' => $createdday));
1206
+
1207
+ $productdata = $processcollection->getData();
1208
+
1209
+ $totalrecords = count($productdata);
1210
+ foreach ($productdata as $process)
1211
+ {
1212
+ $this->kslog('DEBUG',"process = ".print_r($process,true),null,'knolseed.log');
1213
+
1214
+ // generate product CSV file
1215
+ $filenames = $this->createProductCsv($process['date_start'], $process['date_end'],
1216
+ $this->productattributes, $process['process_id'], $process['filename'], $process['type'], $process['created_at'], '') ;
1217
+
1218
+ if( !is_null($filenames) ){
1219
+ foreach ($filenames as $fn){
1220
+ $all_files_uploaded[] = $fn;
1221
+ }
1222
+ }
1223
+
1224
+ }
1225
+
1226
+ if(count($all_files_uploaded) > 0){
1227
+ # Upload Manifest file
1228
+ $manifest_file_name = "Prod_".date('Ymd').".gz";
1229
+ $observer = new Knolseed_Engage_Model_Observer();
1230
+ $observer->addManifestFile($manifest_file_name, 'product', '', $all_files_uploaded);
1231
+ }
1232
+
1233
+ } // If(retval)
1234
+
1235
+ }catch(Exception $e){
1236
+ $errormessage = "Critical Error! Product data dump failed for ". $product_csv_time .". Please email support@knolseed.com about this error, and we will help you to fix this problem." ;
1237
+ $this->errorAdminNotification('ProductCSV-initialize-error','product',$e->getMessage(),'',true);
1238
+ }
1239
+
1240
+ if($clearToRun==true){
1241
+ $this->kslog('DEBUG',"processProductfile() - Releasing Lock",null,'knolseed.log');
1242
+ $this->releaseLock('product', date("Ymd"));
1243
+ }
1244
+
1245
+ }
1246
+
1247
+
1248
+ /**
1249
+ * Create Product Attributes CSV file
1250
+ *
1251
+ * Place created CSV file to AWS S3 bucket
1252
+ *
1253
+ */
1254
+ public function createProductCsv($from, $to, $attributearray, $process_id, $filename, $type, $createdate, $intialexecution = false){
1255
+ $this->kslog('DEBUG',"Entry Knolseed_Engage_Helper_Data::createProductCsv()", null, 'knolseed.log');
1256
+ $this->kslog('DEBUG', "From=".$from.", To=".$to.", Type=".$type.", CreateDate=".$createdate, null, 'knolseed.log');
1257
+ $this->kslog('DEBUG',"attributearray=".$attributearray, null, 'knolseed.log');
1258
+
1259
+ $files = array();
1260
+
1261
+ $this->createCategoryCsv($from, $to, $attributearray, $process_id, $filename, $type, $createdate, $intialexecution);
1262
+
1263
+ try{
1264
+ // get product item collection for defined interval
1265
+ $collection = Mage::getModel('catalog/product')->getCollection();
1266
+ $collection->addAttributeToFilter('updated_at', array('gt' =>$from));
1267
+ $collection->addAttributeToFilter('updated_at', array('lt' => $to));
1268
+
1269
+ // CSV file save path
1270
+ $path = Mage::getBaseDir('var')."/"; # if you want to add new folder for csv files just add name of folder in dir with single quote.
1271
+
1272
+ // Check if this is first time execution for customer
1273
+ if($intialexecution == true){
1274
+ $totalcustcount = $collection->count();
1275
+ $numberofchunk = ceil($totalcustcount/$this->records);
1276
+
1277
+ //$fp = fopen($path.$filename, 'w');
1278
+ $filename = "Prod_".date("Ymd")."_1_of_".$numberofchunk.".csv.gz" ;
1279
+
1280
+ // Metadata headers for CSV file
1281
+ // Line items 1 as per requirement
1282
+ $ctime = date("Ymd", strtotime($from));
1283
+ $metaheaders = "";
1284
+
1285
+ //Start Date & End date logic
1286
+ $begindate = $collection->getFirstItem()->getCreatedAt();
1287
+ $endingdate = date('Y-m-d 00:00:00');
1288
+ $metaheaders = '# "'.$type.'","'.$ctime.'","'.$begindate.'","'.$endingdate.'"'."\n" ;
1289
+ }else{
1290
+ $ts = strtotime($createdate);
1291
+ $createday = date('Ymd',$ts);
1292
+ $metaheaders = "";
1293
+ $metaheaders = '# "'.$type.'","'.$createday.'","'.$from.'","'.$to.'"'."\n" ;
1294
+ }
1295
+
1296
+ // product attributes list
1297
+ $productvaluescount = count($attributearray);
1298
+ $field_names_arr = array();
1299
+ foreach ($attributearray as $field_name) {
1300
+ if($field_name != "sku" && $field_name != "category_ids"){
1301
+ $field_names_arr[] = $field_name;
1302
+ }
1303
+ }
1304
+ $this->kslog('DEBUG',"field_names_arr=".print_r($field_names_arr, true), null, 'knolseed.log');
1305
+ $this->kslog('DEBUG',"field_names_arr length=".print_r(count($field_names_arr), true), null, 'knolseed.log');
1306
+
1307
+ // Gotcha? Is the 'trim' complicating field lookups?
1308
+ $product_Attr_str = '"'.implode('","', array_map('trim', $field_names_arr)).'"';
1309
+ $this->kslog('DEBUG',"product_Attr_str=".$product_Attr_str, null, 'knolseed.log');
1310
+
1311
+ if( !trim($filename)) {
1312
+ return $files ;
1313
+ }
1314
+
1315
+ // open CSV for product
1316
+ //$fp = fopen($path.$filename, "w");
1317
+ $fp = gzopen($path.$filename,'w9');
1318
+ // throw exception if file opening file
1319
+ if (! $fp) {
1320
+ throw new Exception("File creation error.");
1321
+ }
1322
+
1323
+ gzwrite($fp,$metaheaders);
1324
+
1325
+ // Line items 2 as per requirement
1326
+ $metaheadersline2 = "";
1327
+ $metaheadersline2 = '#= id=\'Sku\', url=\'url_key\',category=\'category_ids\''."\n" ;
1328
+ $this->kslog('DEBUG',"metaheadersline2=".$metaheadersline2, null, 'knolseed.log');
1329
+ gzwrite($fp, $metaheadersline2);
1330
+
1331
+ // headers for product CSV file
1332
+ $headers = '"product_id","Sku","created_at","updated_at",'.$product_Attr_str.',"category_ids"'."\n"; //"created_at,updated_at" by dinesh
1333
+ $this->kslog('DEBUG',"headers=".$headers, null, 'knolseed.log');
1334
+
1335
+ gzwrite($fp,$headers);
1336
+
1337
+ $chunkcounter = $filecounter = 1;
1338
+ foreach ($collection as $products) //loop for getting products
1339
+ {
1340
+ // load product
1341
+ $pid = $products->getId();
1342
+ $attribute_values = '"'.str_replace('"', '""', $pid).'"';
1343
+
1344
+ $product = Mage::getModel('catalog/product')->load($products->getId());
1345
+ $attributes = $product->getAttributes();
1346
+
1347
+ $attribute_values .= ',"'.str_replace('"', '""', $product->getSku()).'"';
1348
+
1349
+ $this->kslog('DEBUG',"Starting loop for SKU=".$product->getSku(), null, 'knolseed.log');
1350
+
1351
+ //added column for created_date
1352
+ $created_at = $product->getCreatedAt();
1353
+ if($created_at===null){
1354
+ $attribute_values .= ',""';
1355
+ }else{
1356
+ $attribute_values .= ',"'.$created_at.'"';
1357
+ }
1358
+
1359
+ //added column for updated_date
1360
+ $updated_at = $product->getUpdatedAt();
1361
+ if($updated_at===null){
1362
+ $attribute_values .= ',""';
1363
+ }else{
1364
+ $attribute_values .= ',"'.$updated_at.'"';
1365
+ }
1366
+
1367
+
1368
+ // Iterate list of attributes for this product
1369
+ $productvaluescount = count($field_names_arr);
1370
+ for($i=0;$i<$productvaluescount;$i++)
1371
+ {
1372
+ $attributeName = $field_names_arr[$i];
1373
+ # Mage::log("attributeName=".$attributeName, null, 'knolseed.log');
1374
+
1375
+ if($attributeName!='sku')
1376
+ {
1377
+ $this->kslog('DEBUG',"Its not sku", null, 'knolseed.log');
1378
+
1379
+ $attributeValue = null;
1380
+ if(array_key_exists($attributeName , $attributes))
1381
+ {
1382
+ $this->kslog('DEBUG',"Array key exists", null, 'knolseed.log');
1383
+ $attributesobj = $attributes["{$attributeName}"];
1384
+
1385
+ if( $attributesobj->getAttributeCode() == "category_ids" ){
1386
+ continue;
1387
+ }elseif($attributesobj->getAttributeCode() == "media_gallery")
1388
+ {
1389
+ $this->kslog('DEBUG',"Got media_gallery", null, 'knolseed.log');
1390
+
1391
+ $attributes = $product->getTypeInstance(true)->getSetAttributes($product);
1392
+
1393
+ $galleryData = $product->getData('media_gallery');
1394
+
1395
+ $stringimg = '';
1396
+ foreach ($galleryData['images'] as &$image) {
1397
+ $finalpath = $image['file'];
1398
+ $stringimg .= $finalpath.',';
1399
+ }
1400
+ $attributeValue = rtrim($stringimg, ",");
1401
+ if(strlen($attributeValue) ==0){
1402
+ $attribute_values .= ',""';
1403
+ }else{
1404
+ $attribute_values .= ',"'.str_replace('"','""',$attributeValue).'"';
1405
+ }
1406
+
1407
+ }elseif($attributesobj->getAttributeCode() == "url_key")
1408
+ {
1409
+ $this->kslog('DEBUG',"Got url_key", null, 'knolseed.log');
1410
+ $categoryIds = $product->getCategoryIds();
1411
+ $string = '';
1412
+ if(count($categoryIds) ){
1413
+ $y=0;
1414
+ foreach($categoryIds as $catid){
1415
+ $CategoryId = $catid[$y];
1416
+
1417
+ $_category = Mage::getModel('catalog/category')->load($CategoryId);
1418
+ $url = $product->getUrlPath($_category);
1419
+ if(substr($url, 0, 1) != '/'){
1420
+ $url = substr_replace($url, '/', 0, 0);
1421
+ }
1422
+
1423
+ $string .= $url.' ';
1424
+ }
1425
+ $urltobeencode = rtrim($string, ",");
1426
+ # $attributeValue = urlencode($urltobeencode);
1427
+ $attributeValue = $urltobeencode;
1428
+ if(strlen($attributeValue) == 0){
1429
+ $attribute_values .= ',""';
1430
+ }else{
1431
+ $attribute_values .= ',"'.str_replace('"','""',$attributeValue).'"';
1432
+ }
1433
+
1434
+ }
1435
+ }elseif( $attributesobj->getAttributeCode() == "activation_information" ){
1436
+ $this->kslog('DEBUG',"Got activation_information. Adding blankstr", null, 'knolseed.log');
1437
+ $attribute_values .= ',""';
1438
+ }elseif( $attributesobj->getAttributeCode() == "description" ){
1439
+ $this->kslog('DEBUG',"Got description. Adding blankstr", null, 'knolseed.log');
1440
+ $attribute_values .= ',""';
1441
+ }elseif( $attributesobj->getAttributeCode() == "meta_description" ){
1442
+ $this->kslog('DEBUG',"Got meta_description. Adding blankstr", null, 'knolseed.log');
1443
+ $attribute_values .= ',""';
1444
+ }elseif( $attributesobj->getAttributeCode() == "short_description" ){
1445
+ $this->kslog('DEBUG',"Got short_description. Adding blankstr", null, 'knolseed.log');
1446
+ $attribute_values .= ',""';
1447
+ }elseif( $attributesobj->getAttributeCode() == "in_depth" ){
1448
+ $this->kslog('DEBUG',"Got in_depth. Adding blankstr", null, 'knolseed.log');
1449
+ $attribute_values .= ',""';
1450
+ }elseif( $attributesobj->getAttributeCode() == "sku" ){
1451
+ $this->kslog('DEBUG',"Got sku. Skipping...", null, 'knolseed.log');
1452
+ // $attribute_values .= ',""';
1453
+ }else{
1454
+ $this->kslog('DEBUG',"Got ".$attributesobj->getAttributeCode(), null, 'knolseed.log');
1455
+
1456
+ $attributeValue = $attributesobj->getFrontend()->getValue($product);
1457
+ //$attributeValue = str_replace(",", "",$attributeValue);
1458
+ # if(strlen($attributeValue) >= '50'){
1459
+ # $attributeValue = wordwrap($attributeValue,150,"\n",TRUE);
1460
+ # }
1461
+
1462
+ if( is_array($attributeValue)) {
1463
+ $this->kslog('DEBUG',"Is an array:".$attributeValue, null, 'knolseed.log');
1464
+ $attribute_values .= ',"'.str_replace('"', '""', implode(",", $attributeValue)).'"';
1465
+ }else{
1466
+ $this->kslog('DEBUG',"Is NOT an array:".$attributeValue, null, 'knolseed.log');
1467
+ $string=str_replace('"','""',$attributeValue);
1468
+ $attribute_values .= ',"'.$string.'"';
1469
+ }
1470
+ }
1471
+
1472
+ } // if(array_key_exists($attributeName , $attributes))
1473
+ else{
1474
+ // Attribute doesnt exist for this particular product. Just dump a default value (blank str)
1475
+ $this->kslog('DEBUG',"Array Key does not exist for attributeName=".$attributeName, null, 'knolseed.log');
1476
+ if($attributeName == "category_ids"){
1477
+ $this->kslog('DEBUG',"Its category_ids, so skipping...", null, 'knolseed.log');
1478
+ }else{
1479
+ $this->kslog('DEBUG',"Adding default = blankstr", null, 'knolseed.log');
1480
+ $attribute_values .= ',""';
1481
+ }
1482
+ }
1483
+
1484
+ // assign attribute value
1485
+
1486
+ } // if($attributeName!='sku')
1487
+
1488
+ }
1489
+
1490
+ $this->kslog('DEBUG',"Now adding categories...", null, 'knolseed.log');
1491
+ // get categories names
1492
+ $categoryIds = $product->getCategoryIds();
1493
+ $this->kslog('DEBUG',"Dumping categoryIds=".print_r($categoryIds, true), null, 'knolseed.log');
1494
+
1495
+ if(count($categoryIds) ){
1496
+ $catNames = array();
1497
+ $z=0;
1498
+ $attributeValue = "";
1499
+ $attributeValue = implode(",",$categoryIds);
1500
+ $this->kslog('DEBUG',"Adding category_ids = ".print_r($attributeValue,true), null, 'knolseed.log');
1501
+ $attribute_values .= ',"'.str_replace('"', '""', $attributeValue).'"';
1502
+ }else{
1503
+ $attribute_values .= ',';
1504
+ }
1505
+
1506
+ $attribute_values .= "\n";
1507
+
1508
+ gzwrite($fp, $attribute_values);
1509
+
1510
+ $filepath = $path.$filename ;
1511
+ $actual_file_name = $filename ;
1512
+
1513
+ if( $this->records == $chunkcounter && $filecounter < $numberofchunk){
1514
+ $chunkcounter = 0;
1515
+ $filecounter++;
1516
+ //fclose($fp);
1517
+ gzclose($fp);
1518
+
1519
+ $observer = new Knolseed_Engage_Model_Observer();
1520
+ if( $observer->pushFileToS3($filepath, $actual_file_name, 'product', false, $process_id) ) {
1521
+ $files[] = $actual_file_name;
1522
+ $this->kslog('DEBUG', "pushFileToS3 returned true", null, 'knolseed.log');
1523
+
1524
+ if($process_id){
1525
+ // Update customer file pushed flag
1526
+ $model = Mage::getModel('engage/engage')->load($process_id);
1527
+ $model->setFilePushed(1);
1528
+ $model->save();
1529
+ }
1530
+ // remove file after push
1531
+ unlink($filepath);
1532
+ }
1533
+
1534
+ $filename = "Prod_".date("Ymd")."_".$filecounter."_of_".$numberofchunk.".csv.gz" ;
1535
+
1536
+ $fp = gzopen($path.$filename,'w9');
1537
+ gzwrite($fp, $metaheaders);
1538
+ gzwrite($fp, $metaheadersline2);
1539
+ gzwrite($fp, $headers);
1540
+ }
1541
+
1542
+ $chunkcounter++;
1543
+
1544
+ } // foreach ($collection as $products)
1545
+
1546
+ gzclose($fp);
1547
+
1548
+ $filepath = $path.$filename ;
1549
+ $actual_file_name = $filename ;
1550
+
1551
+ $observer = new Knolseed_Engage_Model_Observer();
1552
+ if( $observer->pushFileToS3($filepath, $actual_file_name, $type='product', false, $process_id) ) {
1553
+ $files[] = $actual_file_name;
1554
+ $this->kslog('DEBUG', "pushFileToS3 returned true", null, 'knolseed.log');
1555
+
1556
+ if($process_id){
1557
+ // Update customer file pushed flag
1558
+ $model = Mage::getModel('engage/engage')->load($process_id);
1559
+ $model->setFilePushed(1);
1560
+ $model->save();
1561
+ }
1562
+ // remove file after push
1563
+ unlink($filepath);
1564
+
1565
+ return $files;
1566
+ }
1567
+
1568
+ }catch(Exception $e){
1569
+ // Check if critical error or retriable error
1570
+ $kf_item = Mage::getModel('engage/engage')->load($process_id);
1571
+ $critical = ($kf_item->getAttempt() >= 1) ? true : false ;
1572
+
1573
+ $errormessage = "Critical Error! Product data dump failed for ". $from ." ". $to ." with error ". $filename ." Please email support@knolseed.com about this error, and we will help you to fix this problem." ;
1574
+ // Admin notification
1575
+ $this->errorAdminNotification('productCSV','product',$errormessage,$filename,$critical);
1576
+
1577
+ // Update attempt counts for RETRIABLE errors
1578
+ Mage::helper('engage')->updatedAttempts($process_id);
1579
+
1580
+ return $files;
1581
+ }
1582
+
1583
+ }
1584
+
1585
+
1586
+ /**
1587
+ * Create and dump category information
1588
+ *
1589
+ */
1590
+ public function createCategoryCsv($from, $to, $attributearray, $process_id, $filename, $type, $createdate, $intialexecution = false){
1591
+ $this->kslog('DEBUG',"Entry Knolseed_Engage_Helper_Data::createCategoryCsv()", null, 'knolseed.log');
1592
+ $this->kslog('DEBUG',"From=".$from.", To=".$to.", Type=".$type.", CreateDate=".$createdate.", Filename=".$filename, null, 'knolseed.log');
1593
+
1594
+ # Category dump only if first product fragment dump.
1595
+ $srch_str = "_1_of_";
1596
+ $pos = strpos($filename, $srch_str);
1597
+ if( $pos===false ){
1598
+ # Not the first time, ditch
1599
+ $this->kslog('DEBUG',"createCategoryCsv() - Not first fragment of Product data. Skipping Category Dump.", null, 'knolseed.log');
1600
+ return;
1601
+ }else{
1602
+ # Create proper filename. Cat_yyyymmdd_1_of_1.csv.gz
1603
+ $filename = str_replace("Prod", "Cat", $filename);
1604
+ $filename = substr($filename, 0, 12);
1605
+ if($filename===false){
1606
+ $filename = '';
1607
+ }else{
1608
+ $filename = $filename."_1_of_1.csv.gz";
1609
+ }
1610
+ $this->kslog('DEBUG',"createCategoryCsv() - Final filename = ".$filename, null, 'knolseed.log');
1611
+ }
1612
+
1613
+ try{
1614
+
1615
+ // CSV file save path
1616
+ $path = Mage::getBaseDir('var')."/"; # if you want to add new folder for csv files just add name of folder in dir with single quote.
1617
+ # $filename = str_replace("Prod", "Cat", $filename);
1618
+
1619
+ $ts = strtotime($createdate);
1620
+ $createday = date('Ymd',$ts);
1621
+ $metaheaders = "";
1622
+ $metaheaders = '# "Category","'.$createday.'","'.$from.'","'.$to.'"'."\n" ;
1623
+
1624
+ if( !trim($filename)) {
1625
+ $this->kslog('DEBUG','Category Dump: Filename is blank! ',null,'knolseed.log');
1626
+ $filename = "Cat_".date("Ymd")."_1_of_1.csv.gz" ;
1627
+ $this->kslog('DEBUG',"Category Dump: Filename is reset to: ".$filename,null,'knolseed.log');
1628
+ }
1629
+
1630
+ $fp = gzopen($path.$filename,'w9');
1631
+ // throw exception if file opening file
1632
+ if (! $fp) {
1633
+ throw new Exception("Category Dump: File creation error. Check that the ".$path." folder has WRITE permissions");
1634
+ }
1635
+
1636
+ gzwrite($fp,$metaheaders);
1637
+ $metaheadersline2 = "";
1638
+ $metaheadersline2 = '#= id=\'id\', name=\'name\',child=\'child_id\''."\n" ;
1639
+ gzwrite($fp, $metaheadersline2);
1640
+
1641
+ // headers for product CSV file
1642
+ $headers = '"id","name","level","parent_id","child_ids"'."\n";
1643
+ gzwrite($fp, $headers);
1644
+
1645
+ // Now load category data and dump into file.
1646
+ /* $line = blah."\n";
1647
+ gzwrite($fp, $attribute_values);
1648
+ gzclose($fp);
1649
+
1650
+ $filepath = $path.$filename ;
1651
+ $actual_file_name = $filename ;
1652
+
1653
+ $observer = new Knolseed_Engage_Model_Observer();
1654
+ if( $observer->pushFileToS3($filepath, $actual_file_name, $type='category', $process_id) ) {
1655
+ // remove file after push
1656
+ unlink($filepath);
1657
+ }
1658
+ */
1659
+
1660
+ $category = Mage::getModel('catalog/category');
1661
+ $this->kslog('DEBUG',"Categories = ".print_r($category,true),null,'knolseed.log');
1662
+
1663
+ $tree = $category->getTreeModel();
1664
+ $tree->load();
1665
+ $ids = $tree->getCollection()->getAllIds();
1666
+ if ($ids){
1667
+ $count = 0;
1668
+ foreach ($ids as $id){
1669
+ $cat = Mage::getModel('catalog/category');
1670
+ $cat->load($id);
1671
+
1672
+ $entity_id = $cat->getId();
1673
+ $name = $cat->getName();
1674
+ $url_key = $cat->getUrlKey();
1675
+ $url_path = $cat->getUrlPath();
1676
+ $children = $cat->getChildren();
1677
+ $level = $cat->getLevel();
1678
+ $parent = $cat->getParentId();
1679
+
1680
+ $this->kslog('DEBUG',"Category: ID=".$entity_id.", Name=".$name.", URL=".$url_path, null, 'knolseed.log');
1681
+ $this->kslog('DEBUG',"Category: ID=".$entity_id.", Children=".$children.", Parent=".$parent, null, 'knolseed.log');
1682
+ $count=$count+1;
1683
+
1684
+ # Save to file
1685
+ # $headers = '"id","name","level","parent_id","child_ids"'."\n";
1686
+
1687
+ $line = "\"".$entity_id."\"";
1688
+ if($name){
1689
+ $line .= ",\"".$name."\"";
1690
+ }else{
1691
+ $line .= ",\"\"";
1692
+ }
1693
+
1694
+ if($level){
1695
+ $line .= ",\"".$level."\"";
1696
+ }else{
1697
+ $line .= ",\"\"";
1698
+ }
1699
+
1700
+ if($parent){
1701
+ $line .= ",\"".$parent."\"";
1702
+ }else{
1703
+ $line .= ",\"\"";
1704
+ }
1705
+
1706
+ if($children){
1707
+ $line .= ",\"".$children."\"";
1708
+ }else{
1709
+ $line .= ",\"\"";
1710
+ }
1711
+
1712
+ $line .= "\n";
1713
+ $this->kslog('DEBUG',"Writing line to file:".$line, null, 'knolseed.log');
1714
+ gzwrite($fp, $line);
1715
+ }
1716
+
1717
+ Mage::log("Total ".$count." categories found!", null, 'knolseed.log');
1718
+ gzclose($fp);
1719
+
1720
+ $filepath = $path.$filename ;
1721
+ $actual_file_name = $filename ;
1722
+ $observer = new Knolseed_Engage_Model_Observer();
1723
+ if( $observer->pushFileToS3($filepath, $actual_file_name, "category", false, $process_id) ) {
1724
+ // remove file after push
1725
+ unlink($filepath);
1726
+ }
1727
+
1728
+ }else{
1729
+ Mage::log("Categories is empty!",null,'knolseed.log');
1730
+ }
1731
+
1732
+ }catch(Exception $e){
1733
+ // Check if critical error or retriable error
1734
+ $kf_item = Mage::getModel('engage/engage')->load($process_id);
1735
+ $critical = ($kf_item->getAttempt() >= 1) ? true : false ;
1736
+ $exceptionMsg = $e.getMessage();
1737
+ $errormessage = "Critical Error! Category data dump failed for ".$filename." with error: ".$exceptionMsg.". Please email support@knolseed.com about this error, and we will help you to fix this problem." ;
1738
+ // Admin notification
1739
+ $this->errorAdminNotification('categoryCSV','product',$errormessage,$filename,$critical);
1740
+
1741
+ // Update attempt counts for RETRIABLE errors
1742
+ Mage::helper('engage')->updatedAttempts($process_id);
1743
+ }
1744
+
1745
+ }
1746
+
1747
+
1748
+ /**
1749
+ * Clear kf_cron_process table for eight days old entries
1750
+ *
1751
+ */
1752
+ public function flushAllKfEntries(){
1753
+ $this->kslog('DEBUG',"Entry Knolseed_Engage_Helper_Data::flushAllKfEntries()",null,'knolseed.log');
1754
+
1755
+ // remove process entry afetr 8 days
1756
+ $removedays = date('Y-m-d', strtotime("-8 day"));
1757
+
1758
+ $this->kslog('DEBUG',"Remove days = ".print_r($removedays,true),null,'knolseed.log');
1759
+
1760
+ // delete record collection
1761
+ $collection = Mage::getModel('engage/engage')->getCollection();
1762
+ $collection->addFieldToFilter('created_at', array('eq' =>$removedays));
1763
+
1764
+ $kfcrondata = $collection->getData();
1765
+
1766
+ $this->kslog('DEBUG',"kf cron data = ".print_r($kfcrondata,true),null,'knolseed.log');
1767
+
1768
+ foreach($kfcrondata as $kfdata){
1769
+ // delete each process entry
1770
+ $kfdata->delete();
1771
+ }
1772
+ }
1773
+
1774
+
1775
+ /**
1776
+ * This function updates kf_cron_process table & increments attempt count for any kf process on failure
1777
+ *
1778
+ */
1779
+ public function updatedAttempts($processid){
1780
+ $this->kslog('DEBUG',"Entry Knolseed_Engage_Helper_Data::updatedAttempts()",null,'knolseed.log');
1781
+
1782
+ try{
1783
+ // Check if processid exists
1784
+ if($processid){
1785
+ // Load process & update current process
1786
+ $kf_item = Mage::getModel('engage/engage')->load($processid);
1787
+ $updatedattempt = $kf_item->getAttempt() + 1;
1788
+
1789
+ $this->kslog('DEBUG',"Updated attempt = ".print_r($updatedattempt,true),null,'knolseed.log');
1790
+
1791
+ $kf_item->setAttempt($updatedattempt);
1792
+ $kf_item->save();
1793
+ }
1794
+ }catch(Exception $e){
1795
+ $this->errorAdminNotification('Updateattempts-error','updateattempts',$e->getMessage(),'',true);
1796
+ }
1797
+ }
1798
+
1799
+
1800
+ }
1801
+
lib/knolseed/Engage/Model/Catalogvalues.php ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ * Used in creating options for Yes|No config value selection
9
+ *
10
+ */
11
+ class Knolseed_Engage_Model_Catalogvalues
12
+ {
13
+
14
+ /**
15
+ * Options getter
16
+ *
17
+ * @return array
18
+ */
19
+ public function toOptionArray()
20
+ {
21
+ Mage::log("Entry Knolseed_Engage_Model_Catalogvalues::toOptionArray()",null,'knolseed.log');
22
+ $attributesInfo = Mage::getResourceModel('eav/entity_attribute_collection')
23
+ ->setEntityTypeFilter('3') //4 = product entities
24
+ ->addSetInfo()
25
+ ->getData();
26
+ foreach ($attributesInfo as $attr){
27
+ if ($attr['frontend_label'] != ""){
28
+ $array[] = array('value' => $attr['attribute_code'], 'label' => $attr['frontend_label']) ;
29
+ }
30
+ }
31
+
32
+ return $array;
33
+
34
+ /*return array(
35
+ array('value' => 0, 'label' => Mage::helper('engage')->__('First item')),
36
+ array('value' => 1, 'label' => Mage::helper('engage')->__('Second item')),
37
+ array('value' => 2, 'label' => Mage::helper('engage')->__('third item')),
38
+ // and so on...
39
+ );*/
40
+
41
+ }
42
+
43
+
44
+ /**
45
+ * Get options in "key-value" format
46
+ *
47
+ * @return array
48
+ */
49
+ public function toArray()
50
+ {
51
+ return array(
52
+ 0 => Mage::helper('adminhtml')->__('No'),
53
+ 1 => Mage::helper('adminhtml')->__('Yes'),
54
+ );
55
+ }
56
+
57
+ }
lib/knolseed/Engage/Model/Crontime.php ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ class Knolseed_Engage_Model_Crontime extends Varien_Object
10
+ {
11
+ const STATUS_ENABLED = 1;
12
+ const STATUS_DISABLED = 2;
13
+
14
+ static public function getOptionArray()
15
+ {
16
+ return array(
17
+ self::STATUS_ENABLED => Mage::helper('engage')->__('Yes'),
18
+ self::STATUS_DISABLED => Mage::helper('engage')->__('No')
19
+ );
20
+ }
21
+
22
+
23
+ static public function toOptionArray()
24
+ {
25
+
26
+
27
+ return array(
28
+ array('value' => '00:00', 'label' => '00:00 AM'),
29
+ array('value' => '00:30', 'label' => '00:30 AM'),
30
+ array('value' => '01:00', 'label' => '01:00 AM'),
31
+ array('value' => '01:30', 'label' => '01:30 AM'),
32
+ array('value' => '02:00', 'label' => '02:00 AM'),
33
+ array('value' => '02:30', 'label' => '02:30 AM'),
34
+ array('value' => '03:00', 'label' => '03:00 AM'),
35
+ array('value' => '03:30', 'label' => '03:30 AM'),
36
+ array('value' => '04:00', 'label' => '04:00 AM'),
37
+ array('value' => '04:30', 'label' => '04:30 AM'),
38
+ array('value' => '05:00', 'label' => '05:00 AM'),
39
+ array('value' => '05:30', 'label' => '05:30 AM'),
40
+ array('value' => '06:00', 'label' => '06:00 AM'),
41
+ array('value' => '06:30', 'label' => '06:30 AM'),
42
+ array('value' => '07:00', 'label' => '07:00 AM'),
43
+ array('value' => '07:30', 'label' => '07:30 AM'),
44
+ array('value' => '08:00', 'label' => '08:00 AM'),
45
+ array('value' => '08:30', 'label' => '08:30 AM'),
46
+ array('value' => '09:00', 'label' => '09:00 AM'),
47
+ array('value' => '09:30', 'label' => '09:30 AM'),
48
+ array('value' => '10:00', 'label' => '10:00 AM'),
49
+ array('value' => '10:30', 'label' => '10:30 AM'),
50
+ array('value' => '11:00', 'label' => '11:00 AM'),
51
+ array('value' => '11:30', 'label' => '11:30 AM'),
52
+ array('value' => '12:00', 'label' => '12:00 PM'),
53
+ array('value' => '12:30', 'label' => '12:30 PM'),
54
+ array('value' => '13:00', 'label' => '13:00 PM'),
55
+ array('value' => '13:30', 'label' => '13:30 PM'),
56
+ array('value' => '14:00', 'label' => '14:00 PM'),
57
+ array('value' => '14:30', 'label' => '14:30 PM'),
58
+ array('value' => '15:00', 'label' => '15:00 PM'),
59
+ array('value' => '15:30', 'label' => '15:30 PM'),
60
+ array('value' => '16:00', 'label' => '16:00 PM'),
61
+ array('value' => '16:30', 'label' => '16:30 PM'),
62
+ array('value' => '17:00', 'label' => '17:00 PM'),
63
+ array('value' => '17:30', 'label' => '17:30 PM'),
64
+ array('value' => '18:00', 'label' => '18:00 PM'),
65
+ array('value' => '18:30', 'label' => '18:30 PM'),
66
+ array('value' => '19:00', 'label' => '19:00 PM'),
67
+ array('value' => '19:30', 'label' => '19:30 PM'),
68
+ array('value' => '20:00', 'label' => '20:00 PM'),
69
+ array('value' => '20:30', 'label' => '20:30 PM'),
70
+ array('value' => '21:00', 'label' => '21:00 PM'),
71
+ array('value' => '21:30', 'label' => '21:30 PM'),
72
+ array('value' => '22:00', 'label' => '22:00 PM'),
73
+ array('value' => '22:30', 'label' => '22:30 PM'),
74
+ array('value' => '23:00', 'label' => '23:00 PM'),
75
+ array('value' => '23:30', 'label' => '23:30 PM')
76
+
77
+ );
78
+ }
79
+ }
lib/knolseed/Engage/Model/Customervalues.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ * Used in creating options for Yes|No config value selection
9
+ *
10
+ */
11
+ class Knolseed_Engage_Model_Customervalues
12
+ {
13
+
14
+ /**
15
+ * Options getter
16
+ *
17
+ * @return array
18
+ */
19
+ public function toOptionArray()
20
+ {
21
+
22
+ $attributesInfo = Mage::getResourceModel('eav/entity_attribute_collection')
23
+ ->setEntityTypeFilter('1') //4 = product entities
24
+ ->addSetInfo()
25
+ ->getData();
26
+ foreach ($attributesInfo as $attr){
27
+ if ($attr['frontend_label'] != ""){
28
+ $array[] = array('value' => $attr['attribute_code'], 'label' => $attr['frontend_label']) ;
29
+ }
30
+ }
31
+ return $array;
32
+
33
+ /*return array(
34
+ array('value' => 0, 'label' => Mage::helper('engage')->__('First item')),
35
+ array('value' => 1, 'label' => Mage::helper('engage')->__('Second item')),
36
+ array('value' => 2, 'label' => Mage::helper('engage')->__('third item')),
37
+ // and so on...
38
+ );*/
39
+ }
40
+
41
+ /**
42
+ * Get options in "key-value" format
43
+ *
44
+ * @return array
45
+ */
46
+ public function toArray()
47
+ {
48
+ return array(
49
+ 0 => Mage::helper('adminhtml')->__('No'),
50
+ 1 => Mage::helper('adminhtml')->__('Yes'),
51
+ );
52
+ }
53
+
54
+ }
lib/knolseed/Engage/Model/Engage.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ class Knolseed_Engage_Model_Engage extends Mage_Core_Model_Abstract
10
+ {
11
+ public function _construct()
12
+ {
13
+ parent::_construct();
14
+ $this->_init('engage/engage');
15
+ }
16
+ }
lib/knolseed/Engage/Model/Gacode.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ class Knolseed_Engage_Model_Gacode extends Varien_Object
10
+ {
11
+ static public function toOptionArray()
12
+ {
13
+ Mage::log('Entry Knolseed_Engage_Model_Gacode::toOptionArray', null, 'knolseed.log');
14
+
15
+ return
16
+ "(function (w, d, a, m) {
17
+ w['_knolseed'] = w['_knolseed'] || [];
18
+ /** intercepts ga.js calls */
19
+ var push = Array.prototype.push;
20
+ w['_gaq'] = [];
21
+ w['_gaq'].push = function () {
22
+ var i = 0, max = arguments.length, arg;
23
+ while (i < max) {
24
+ arg = arguments[i++]; push.call(_gaq, arg); push.call(_knolseed, arg);
25
+ }
26
+ };
27
+ /** intercepts analytics.js calls*/
28
+ w['ga'] = function() {
29
+ (w['ga'].q = w['ga'].q || []).push(arguments);
30
+ (w['_knolseed'] = w['_knolseed'] || []).push(arguments);
31
+ };
32
+ a = d.createElement('script'),
33
+ m = d.getElementsByTagName('script')[0];
34
+ a.async = 1;
35
+ a.src = 'http://ers.knolseed.com:1234/embed.js';
36
+ m.parentNode.insertBefore(a, m)
37
+ })(window,document);
38
+
39
+ </script>
40
+
41
+ <script>
42
+ _knolseed.push([\"_setCustomerId\", \"customer_id\"]);
43
+ ";
44
+
45
+ }
46
+
47
+ }
lib/knolseed/Engage/Model/Mysql4/Engage.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ class Knolseed_Engage_Model_Mysql4_Engage extends Mage_Core_Model_Mysql4_Abstract
10
+ {
11
+ public function _construct()
12
+ {
13
+ // Note that the engage_id refers to the key field in your database table.
14
+ $this->_init('engage/engage', 'process_id');
15
+ }
16
+ }
lib/knolseed/Engage/Model/Mysql4/Engage/Collection.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ class Knolseed_Engage_Model_Mysql4_Engage_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
10
+ {
11
+ public function _construct()
12
+ {
13
+ parent::_construct();
14
+ $this->_init('engage/engage');
15
+ }
16
+ }
lib/knolseed/Engage/Model/Observer.php ADDED
@@ -0,0 +1,392 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ require_once(Mage::getBaseDir()."/lib/knolseed/aws-autoloader.php");
10
+
11
+ use Aws\S3\S3Client;
12
+
13
+
14
+ class Knolseed_Engage_Model_Observer extends Mage_Core_Model_Abstract
15
+ {
16
+
17
+ # public $aws_connection = '';
18
+ public $aws_bucketname = '';
19
+ public $aws_foldername = '';
20
+ public $aws_token = '';
21
+ public $aws_acl = 'private';
22
+ public $aws_access_key = null;
23
+
24
+ public $kf_authurl = 'http://app.knolseed.com/settings/keys?';
25
+ public $kf_tracks3pushurl = 'http://app.knolseed.com/uploads/register?';
26
+
27
+ public function __construct() {
28
+ Mage::log("Entry Knolseed_Engage_Model_Observer::__construct()",null,'knolseed.log');
29
+
30
+ $this->aws_token = Mage::getStoreConfig('engage_options/aws/token');
31
+ # $this->aws_connection = $this->getAwsAccessKey($this->aws_token);
32
+ }
33
+
34
+
35
+ /**
36
+ * Get AWS access key & secret key with session token
37
+ *
38
+ *
39
+ * @param $token
40
+ * @return access key & secret key
41
+ */
42
+ public function getAwsAccessKey($token){
43
+ Mage::log("Entry Knolseed_Engage_Model_Observer::getAwsAccessKey()",null,'knolseed.log');
44
+
45
+ # if(!is_null($this->aws_access_key)){
46
+ # Mage::log("Returning existing AWS Access Key",null,'knolseed.log');
47
+ # return $this->aws_access_key;
48
+ # }
49
+
50
+ try{
51
+ Mage::log("Generating new AWS Access Key",null,'knolseed.log');
52
+ $http = new Varien_Http_Adapter_Curl();
53
+ $config = array('timeout' => 15); # Or whatever you like!
54
+ $config['header'] = true;
55
+ $config['ssl_cert'] = false;
56
+
57
+ $requestQuery = "auth_token=".$token;
58
+
59
+ $http->setConfig($config);
60
+
61
+ ## make a POST call
62
+ $http->write(Zend_Http_Client::GET, $this->kf_authurl . $requestQuery );
63
+
64
+ ## Get Response
65
+ $response = $http->read();
66
+ # Mage::log("Response = ". print_r($response,true),null,'knolseed.log');
67
+
68
+ # $modResponse = preg_replace('/(\r\n|\r|\n)/s',"\n",$response);
69
+ # $responseParts = array();
70
+ # $responseParts = explode("\n\n", $modResponse);
71
+ $responseParts = explode("\r\n\r\n", $response);
72
+
73
+ # Close Call
74
+ $http->close();
75
+
76
+ # Fix for ignoring HTTP Headers in response.
77
+ # Mage::log("Response Header = ". print_r($responseParts[0],true),null,'knolseed.log');
78
+ # Mage::log("Response Body = ". print_r($responseParts[1],true),null,'knolseed.log');
79
+ $accessdetails = json_decode($responseParts[1]);
80
+ # $accessdetails = json_decode($response);
81
+
82
+ # Mage::log("JSON Decoded Response = ". print_r($accessdetails,true),null,'knolseed.log');
83
+ # Mage::log('Printing response for '.$this->kf_authurl,null, 'knolseed.log');
84
+ # Mage::log($accessdetails,null, 'knolseed.log');
85
+ if( $accessdetails->data->access_key_id ) {
86
+ # getting access key & secret key
87
+ $accesskey = $accessdetails->data->access_key_id;
88
+ $secretkey = $accessdetails->data->secret_access_key;
89
+ $session_token = $accessdetails->data->session_token;
90
+
91
+ $this->aws_bucketname = $accessdetails->data->s3_bucket;
92
+ # $this->aws_bucketname = 'microsoft.com';
93
+ $this->aws_foldername = $accessdetails->data->s3_folder;
94
+
95
+ // Establish connection with DreamObjects with an S3 client.
96
+ $client = S3Client::factory(array(
97
+ 'key' => $accesskey,
98
+ 'secret' => $secretkey,
99
+ 'token' => $session_token
100
+ ));
101
+
102
+ # Mage::log("JSON Decoded Response = ". print_r($accessdetails,true),null,'knolseed.log');
103
+
104
+ $this->aws_access_key = $client;
105
+ return $client;
106
+
107
+ }else{
108
+ //Admin notification
109
+ $errormessage = "Error: Product sync unable to contact Knolseed at ".$this->kf_authurl.$requestQuery.". Will retry again later" ;
110
+ Mage::helper('engage')->errorAdminNotification('GetTemporaryCredentials','AWSpush',$errormessage,'',true);
111
+ }
112
+
113
+ }catch(Exception $e){
114
+ //Admin notification
115
+ $errormessage = "Critical Error! Product sync unable to contact Knolseed at ".$this->kf_authurl.$requestQuery.". Please email support@knolseed.com about this error, and we will help you to fix this problem." ;
116
+ Mage::helper('engage')->errorAdminNotification('GetTemporaryCredentials','AWSpush',$errormessage,'',true);
117
+ }
118
+
119
+ }
120
+
121
+
122
+ /**
123
+ * Get AWS bucket,folder & token from DB
124
+ *
125
+ * Make a call to Product & Customer CSV creation method
126
+ *
127
+ */
128
+ public function setScript()
129
+ {
130
+ Mage::log("Entry Knolseed_Engage_Model_Observer::setScript()",null,'knolseed.log');
131
+
132
+ try{
133
+ date_default_timezone_set( Mage::app()->getStore()->getConfig('general/locale/timezone') );
134
+
135
+ # call to product & customer CSV creation method
136
+ Mage::helper('engage')->processCustomerfile();
137
+ Mage::helper('engage')->processProductfile();
138
+ Mage::helper('engage')->processHistoricalData();
139
+
140
+ # flush kf_cron_process table
141
+ Mage::helper('engage')->flushAllKfEntries();
142
+ }catch(Exception $e){
143
+ $errormessage = "Error: Product sync unable to contact Knolseed at ". $this->kf_authurl . $requestQuery .". Will retry again later" ;
144
+
145
+ Mage::helper('engage')->errorAdminNotification('setScript','AWSpush',$errormessage,'',true);
146
+ }
147
+ }
148
+
149
+
150
+ public function getAWSFolderName($type){
151
+ Mage::log("Entry Knolseed_Engage_Model_Observer::getAWSFolderName()",null,'knolseed.log');
152
+
153
+ switch ($type)
154
+ {
155
+ case "product":
156
+ return "Product";
157
+ break;
158
+
159
+ case "customer":
160
+ return "Customer";
161
+ break;
162
+
163
+ case "transaction":
164
+ return "Transaction";
165
+ break;
166
+
167
+ case "browsing":
168
+ return "Browsing";
169
+ break;
170
+
171
+ case "category":
172
+ return "Category";
173
+ break;
174
+
175
+ default:
176
+ return "";
177
+ break;
178
+ }
179
+ }
180
+
181
+
182
+ /**
183
+ * 1. Create a Manifest file with specified name & type.
184
+ * 2. Add $filenames into manifest file
185
+ * 3. Upload Manifest file to appropriate S3 folder, and return success
186
+ */
187
+ public function addManifestFile($manifestFileName, $type, $processid, $filenames){
188
+ $baseDir = Mage::getBaseDir('var');
189
+ $fullPath = $baseDir."/".$manifestFileName;
190
+ $fp = gzopen($fullPath,'w9');
191
+ foreach($filenames as $fn){
192
+ gzwrite($fp, $fn."\n");
193
+ }
194
+ gzclose($fp);
195
+
196
+ # Push to S3
197
+ $this->pushFileToS3($fullPath, $manifestFileName, $type, true, $processid);
198
+ unlink($fullPath);
199
+ }
200
+
201
+
202
+
203
+ /**
204
+ * Push created CSV files to S3 Bucket
205
+ * @param $filepath,$filename
206
+ * @return push file object to S3 bucket
207
+ */
208
+ public function pushFileToS3($filepath, $filename, $type, $is_manifest_file, $processid){
209
+ Mage::log("Entry Knolseed_Engage_Model_Observer::pushFileToS3()",null,'knolseed.log');
210
+
211
+ $aws_connection = $this->getAwsAccessKey($this->aws_token);
212
+
213
+ $subfolder = $this->getAWSFolderName($type);
214
+ # $key to upload file on S3 bucket
215
+ $key = $this->aws_foldername.'/'.$subfolder.'/'.$filename;
216
+ # $key = $this->getAWSFolderName($type).'/'.$filename;
217
+ Mage::log("Uploading to S3, key=".$key, null, "knolseed.log") ;
218
+ $source_file = $filepath;
219
+
220
+ # upload file to S3 bucket
221
+ try{
222
+ $response = $aws_connection->upload($this->aws_bucketname, $key, fopen($source_file, 'r'), $this->aws_acl);
223
+ # $this->trackS3PushToKf($filename,$type);
224
+ if($is_manifest_file === true){
225
+ $this->trackS3PushToKf($filename, $type);
226
+ }
227
+
228
+ # unlink($filepath);
229
+ Mage::log("Uploaded. Returning true", null, "knolseed.log") ;
230
+
231
+ return true ;
232
+
233
+ }catch(Exception $e){
234
+ // Check if critical error or retriable error
235
+ if($processid){
236
+ $kf_item = Mage::getModel('engage/engage')->load($processid);
237
+ $critical = ($kf_item->getAttempt() >= 1) ? true : false ;
238
+
239
+ // Update attempt counts for RETRIABLE errors
240
+ Mage::helper('engage')->updatedAttempts($processid);
241
+ }else{
242
+ $critical = true;
243
+ }
244
+
245
+ $errormessage = "Critical Error! ". $type ." sync unable to authenticate with Knolseed. Please email support@knolseed.com about this error, and we will help you to fix this problem." ;
246
+
247
+ Mage::helper('engage')->errorAdminNotification('pushFileToS3','AWSpush',$errormessage,$filename,$critical);
248
+
249
+ Mage::log("Removing file:".$filepath, null, 'knolseed.log');
250
+ unlink($filepath);
251
+
252
+ Mage::log("Upload failed! Returning false", null, "knolseed.log") ;
253
+ return false ;
254
+ }
255
+
256
+ }
257
+
258
+
259
+ /**
260
+ * This function get response from S3 bucket for each S3 push.
261
+ * This response is being logged into kf_error.log file.
262
+ */
263
+ public function trackS3PushToKf($filename,$type){
264
+ Mage::log("Entry Knolseed_Engage_Model_Observer::trackS3PushToKf()",null,'knolseed.log');
265
+
266
+ try{
267
+ $http = new Varien_Http_Adapter_Curl();
268
+ $config = array('timeout' => 15); # Or whatever you like!
269
+ $config['header'] = false;
270
+
271
+ // request url for calling S3 API
272
+ $requestQuery = "auth_token=".$this->aws_token."&file=".$filename."&type=".$type;
273
+
274
+
275
+ $http->setConfig($config);
276
+
277
+ ## make a POST call
278
+ $http->write(Zend_Http_Client::GET, $this->kf_tracks3pushurl . $requestQuery );
279
+
280
+ ## Get Response
281
+ $response = $http->read();
282
+ $data = json_decode($response);
283
+
284
+ # Close Call
285
+ $http->close();
286
+ }catch(Exception $e){
287
+ Mage::helper('engage')->errorAdminNotification('trackS3PushToKf','s3response',$e->getMessage(),$filename,true);
288
+ }
289
+
290
+ }
291
+
292
+
293
+ /**
294
+ * Remove username & password from DB
295
+ */
296
+ public function removeUserPass($evt){
297
+ Mage::log("Entry Knolseed_Engage_Model_Observer::removeUserPass()",null,'knolseed.log');
298
+
299
+ $this->saveGoogleAnalyticsCode();
300
+
301
+ $coreConfigObj = new Mage_Core_Model_Config();
302
+ $path = "engage_options/aws/username";
303
+ $coreConfigObj ->deleteConfig($path, $scope = 'default', $scopeId = 0);
304
+
305
+ $coreConfigObj2 = new Mage_Core_Model_Config();
306
+ $path2 = "engage_options/aws/password";
307
+ $coreConfigObj2 ->deleteConfig($path2, $scope = 'default', $scopeId = 0);
308
+
309
+ // Check if Google Analytics is enabled or not
310
+ $gacontent = Mage::getStoreConfig('engage_options/google/google_content');
311
+ $gaacctnumber = Mage::getStoreConfig('engage_options/google/google_account_number');
312
+
313
+
314
+ /*if($gacontent !== null ){
315
+
316
+ if( $gaacctnumber == null) {
317
+
318
+
319
+ }
320
+
321
+ // Make core google analytics module active
322
+ $coreConfigObj3 = new Mage_Core_Model_Config();
323
+ $coreConfigObj3->saveConfig('google/analytics/active', 1, 'default', 0);
324
+
325
+ // Update core google analytics account number
326
+ $coreConfigObj4 = new Mage_Core_Model_Config();
327
+ $coreConfigObj4->saveConfig('google/analytics/account', $gaacctnumber, 'default', 0);
328
+
329
+ }*/
330
+
331
+ }
332
+
333
+
334
+ public function setUploadDataTimeframe(){
335
+ Mage::log("Entry Knolseed_Engage_Model_Observer::setUploadDataTimeframe()",null,'knolseed.log');
336
+
337
+ // Get current date
338
+ $removedays = date('Y-m-d');
339
+ $uploadtime = Mage::getStoreConfig('upload_options/upload/time');
340
+ if($uploadtime){
341
+ Mage::log("Txn data upload time=".print_r($uploadtime, true), null, 'knolseed.log');
342
+ }else{
343
+ Mage::log("Txn data upload time is not found", null, 'knolseed.log');
344
+ }
345
+
346
+ $coreConfigObj3 = new Mage_Core_Model_Config();
347
+ $coreConfigObj3->saveConfig('upload_options/upload/transaction', $removedays." ".$uploadtime, 'default', 0);
348
+ Mage::app()->getStore()->resetConfig();
349
+ }
350
+
351
+
352
+ public function saveGoogleAnalyticsCode(){
353
+ Mage::log("Entry Knolseed_Engage_Model_Observer::saveGoogleAnalyticsCode()",null,'knolseed.log');
354
+
355
+ $googlecode = "(function (w, d, a, m) {
356
+ w['_knolseed'] = w['_knolseed'] || [];
357
+ /** intercepts ga.js calls */
358
+ var push = Array.prototype.push;
359
+ w['_gaq'] = [];
360
+ w['_gaq'].push = function () {
361
+ var i = 0, max = arguments.length, arg;
362
+ while (i < max) {
363
+ arg = arguments[i++]; push.call(_gaq, arg); push.call(_knolseed, arg);
364
+ }
365
+ };
366
+ /** intercepts analytics.js calls*/
367
+ w['ga'] = function() {
368
+ (w['ga'].q = w['ga'].q || []).push(arguments);
369
+ (w['_knolseed'] = w['_knolseed'] || []).push(arguments);
370
+ };
371
+ a = d.createElement('script'),
372
+ m = d.getElementsByTagName('script')[0];
373
+ a.async = 1;
374
+ a.src = 'http://ers.knolseed.com:1234/embed.js';
375
+ m.parentNode.insertBefore(a, m)
376
+ })(window,document);
377
+
378
+ </script>
379
+
380
+ <script>
381
+ _knolseed.push([\"_setCustomerId\", \"customer_id\"]);
382
+ ";
383
+
384
+ $coreConfig = new Mage_Core_Model_Config();
385
+ $coreConfig->saveConfig('engage_options/google/google_content', $googlecode, 'default', 0);
386
+ Mage::app()->getStore()->resetConfig();
387
+
388
+ }
389
+
390
+ }
391
+
392
+ ?>
lib/knolseed/Engage/Model/Productvalues.php ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ * Used in creating options for Yes|No config value selection
9
+ *
10
+ */
11
+ class Knolseed_Engage_Model_Productvalues
12
+ {
13
+
14
+ /**
15
+ * Options getter
16
+ *
17
+ * @return array
18
+ */
19
+ public function toOptionArray()
20
+ {
21
+ Mage::log("Entry Knolseed_Engage_Model_Productvalues::toOptionArray()",null,'knolseed.log');
22
+
23
+ $entityTypeId = Mage::getModel('eav/entity')
24
+ ->setType('catalog_product')
25
+ ->getTypeId();
26
+ $attributesInfo = Mage::getResourceModel('eav/entity_attribute_collection')
27
+ ->setEntityTypeFilter($entityTypeId) //4 = product entities
28
+ ->addSetInfo()
29
+ ->getData();
30
+
31
+ $categoryattribute = false ;
32
+ foreach ($attributesInfo as $attr){
33
+
34
+ if ($attr['frontend_label'] != "" || $attr['attribute_code'] == 'category_ids' ){
35
+ $array[] = array('value' => $attr['attribute_code'], 'label' => $attr['frontend_label']);
36
+ }
37
+
38
+ if( $attr['attribute_code'] == 'category_ids' )
39
+ $categoryattribute = true ;
40
+ }
41
+
42
+ if( $categoryattribute == false )
43
+ $array[] = array('value' => "category_ids", 'label' => "category_ids");
44
+
45
+
46
+ return $array;
47
+
48
+ /*return array(
49
+ array('value' => 0, 'label' => Mage::helper('engage')->__('First item')),
50
+ array('value' => 1, 'label' => Mage::helper('engage')->__('Second item')),
51
+ array('value' => 2, 'label' => Mage::helper('engage')->__('third item')),
52
+ // and so on...
53
+ );*/
54
+ }
55
+ /**
56
+ * Get options in "key-value" format
57
+ *
58
+ * @return array
59
+ */
60
+ public function toArray()
61
+ {
62
+ return array(
63
+ 0 => Mage::helper('adminhtml')->__('No'),
64
+ 1 => Mage::helper('adminhtml')->__('Yes'),
65
+ );
66
+ }
67
+
68
+ }
lib/knolseed/Engage/Model/Status.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ class Knolseed_Engage_Model_Status extends Varien_Object
10
+ {
11
+ const STATUS_ENABLED = 1;
12
+ const STATUS_DISABLED = 2;
13
+
14
+ static public function getOptionArray()
15
+ {
16
+ return array(
17
+ self::STATUS_ENABLED => Mage::helper('engage')->__('Enabled'),
18
+ self::STATUS_DISABLED => Mage::helper('engage')->__('Disabled')
19
+ );
20
+ }
21
+
22
+
23
+ static public function toOptionArray()
24
+ {
25
+ return array(
26
+ self::STATUS_ENABLED => Mage::helper('engage')->__('Yes'),
27
+ self::STATUS_DISABLED => Mage::helper('engage')->__('No')
28
+ );
29
+ }
30
+ }
lib/knolseed/Engage/Model/Time.php ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ class Knolseed_Engage_Model_Time extends Varien_Object
10
+ {
11
+ const STATUS_ENABLED = 1;
12
+ const STATUS_DISABLED = 2;
13
+
14
+ static public function getOptionArray()
15
+ {
16
+ return array(
17
+ self::STATUS_ENABLED => Mage::helper('engage')->__('Yes'),
18
+ self::STATUS_DISABLED => Mage::helper('engage')->__('No')
19
+ );
20
+ }
21
+
22
+
23
+ static public function toOptionArray()
24
+ {
25
+
26
+
27
+ return array(
28
+ array('value' => '01:00', 'label' => '01:00 AM'),
29
+
30
+ array('value' => '02:00', 'label' => '02:00 AM'),
31
+
32
+ array('value' => '03:00', 'label' => '03:00 AM'),
33
+
34
+ array('value' => '04:00', 'label' => '04:00 AM'),
35
+
36
+ array('value' => '05:00', 'label' => '05:00 AM'),
37
+
38
+ array('value' => '06:00', 'label' => '06:00 AM'),
39
+
40
+ array('value' => '07:00', 'label' => '07:00 AM'),
41
+
42
+ array('value' => '08:00', 'label' => '08:00 AM'),
43
+
44
+ array('value' => '09:00', 'label' => '09:00 AM'),
45
+
46
+ array('value' => '10:00', 'label' => '10:00 AM'),
47
+
48
+ array('value' => '11:00', 'label' => '11:00 AM'),
49
+
50
+ array('value' => '12:00', 'label' => '12:00 PM'),
51
+
52
+ array('value' => '13:00', 'label' => '13:00 PM'),
53
+
54
+ array('value' => '14:00', 'label' => '14:00 PM'),
55
+
56
+ array('value' => '15:00', 'label' => '15:00 PM'),
57
+
58
+ array('value' => '16:00', 'label' => '16:00 PM'),
59
+
60
+ array('value' => '17:00', 'label' => '17:00 PM'),
61
+
62
+ array('value' => '18:00', 'label' => '18:00 PM'),
63
+
64
+ array('value' => '19:00', 'label' => '19:00 PM'),
65
+
66
+ array('value' => '20:00', 'label' => '20:00 PM'),
67
+
68
+ array('value' => '21:00', 'label' => '21:00 PM'),
69
+
70
+ array('value' => '22:00', 'label' => '22:00 PM'),
71
+
72
+ array('value' => '23:00', 'label' => '23:00 PM'),
73
+
74
+ array('value' => '00:00', 'label' => '00:00 AM'),
75
+
76
+ );
77
+ }
78
+ }
lib/knolseed/Engage/Model/Timeframe.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ class Knolseed_Engage_Model_Timeframe extends Varien_Object
10
+ {
11
+ const STATUS_ENABLED = 1;
12
+ const STATUS_DISABLED = 2;
13
+
14
+ static public function getOptionArray()
15
+ {
16
+ return array(
17
+ self::STATUS_ENABLED => Mage::helper('engage')->__('Yes'),
18
+ self::STATUS_DISABLED => Mage::helper('engage')->__('No')
19
+ );
20
+ }
21
+
22
+
23
+ static public function toOptionArray()
24
+ {
25
+
26
+
27
+ return array(
28
+ array('value' => '3', 'label' => '3 Months'),
29
+ array('value' => '6', 'label' => '6 Months'),
30
+ array('value' => '12', 'label' => '12 Months'),
31
+ array('value' => '24', 'label' => '24 Months'),
32
+
33
+
34
+ );
35
+ }
36
+ }
lib/knolseed/Engage/Model/Uploadinfo.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ class Knolseed_Engage_Model_Uploadinfo extends Varien_Object
10
+ {
11
+ static public function toOptionArray()
12
+ {
13
+
14
+ return array(
15
+ array('value' => '1', 'label' => 'Transactions')
16
+ );
17
+ }
18
+ }
lib/knolseed/Engage/controllers/Adminhtml/EngageController.php ADDED
@@ -0,0 +1,265 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ class Knolseed_Engage_Adminhtml_EngageController extends Mage_Adminhtml_Controller_action
10
+ {
11
+ #public $kf_authurl = 'http://117.218.62.90/settings/token.json?';
12
+ public $kf_authurl = 'http://app.knolseed.com/settings/token.json?';
13
+
14
+
15
+ /**
16
+ * Check AWS connection by calling GetToken API
17
+ *
18
+ * Token will be saved in DB on successful authentication
19
+ * @return bool
20
+ */
21
+ public function TestAws_ConnectionAction() {
22
+ Mage::log("Entry Knolseed_Engage_Adminhtml_EngageController::TestAws_ConnectionAction()",null,'knolseed.log');
23
+
24
+ $email = $this->getRequest()->getParam('email');
25
+ $password = $this->getRequest()->getParam('password');
26
+
27
+ try {
28
+ $http = new Varien_Http_Adapter_Curl();
29
+ $config = array('timeout' => 30); # Or whatever you like!
30
+ $config['header'] = false;
31
+
32
+ $requestQuery = "email=".$email."&password=".$password;
33
+
34
+ $http->setConfig($config);
35
+
36
+ ## make a POST call
37
+ $http->write(Zend_Http_Client::GET, $this->kf_authurl . $requestQuery );
38
+
39
+ ## Get Response
40
+ $response = $http->read();
41
+ Mage::log("Response = ". print_r($response,true),null,'knolseed.log');
42
+
43
+ # $modResponse = preg_replace('/(\r\n|\r|\n)/s',"\n",$response);
44
+ # $responseParts = array();
45
+ # $responseParts = explode("\n\n", $modResponse);
46
+ $responseParts = explode("\r\n\r\n", $response);
47
+
48
+ # Close Call
49
+ $http->close();
50
+
51
+ # Fix for ignoring HTTP Headers in response.
52
+ # Mage::log("Response Header = ". print_r($responseParts[0],true),null,'knolseed.log');
53
+ Mage::log("Response Body = ". print_r($responseParts[1],true),null,'knolseed.log');
54
+ $data = json_decode($responseParts[1]);
55
+
56
+ if( $data->success && $data->data->authentication_token ) {
57
+ Mage::log('KS Response:'.print_r($data->data,true), null, 'knolseed.log');
58
+ $token = trim($data->data->authentication_token);
59
+ $bucket = trim($data->data->s3_bucket);
60
+ $folder = trim($data->data->s3_folder);
61
+
62
+ $coreConfigObj = new Mage_Core_Model_Config();
63
+ $coreConfigObj->saveConfig('engage_options/aws/token', $token, 'default', 0);
64
+ Mage::app()->getStore()->resetConfig();
65
+ echo 1;
66
+ return true;
67
+
68
+ } else {
69
+ // Log error message
70
+ Mage::log('Knolseed get token - Invalid username/password.',null,'knolseed.err');
71
+ Mage::log('Knolseed get token - Invalid username/password.',null,'knolseed.log');
72
+ echo 0;
73
+ return false;
74
+ }
75
+
76
+ } catch (Exception $e) {
77
+ // Log error message
78
+ Mage::log('Knolseed get token - Error while getting token from Knolseed API.',null,'knolseed.err');
79
+ Mage::log('Knolseed get token - Error while getting token from Knolseed API.',null,'knolseed.log');
80
+ echo 0;
81
+ return false;
82
+ }
83
+
84
+ }
85
+
86
+
87
+
88
+
89
+ /**
90
+ * Export Product Attributes CSV file for download
91
+ *
92
+ *
93
+ */
94
+ public function Product_CSVAction()
95
+ {
96
+ Mage::log("Entry Knolseed_Engage_Adminhtml_EngageController::Product_CSVAction()",null,'knolseed.log');
97
+
98
+ $product_csv_time = Mage::getStoreConfig('engage_options/product/cron_time');
99
+ $path = Mage::getBaseDir(); # if you want to add new folder for csv files just add name of folder in dir with single quote.
100
+
101
+ $product_enable_flag = Mage::getStoreConfig('engage_options/product/status');
102
+
103
+ if($product_enable_flag == 1){
104
+ $productvalues = Mage::getModel('engage/productvalues')->toOptionArray();
105
+
106
+ $new_pro_array = array();
107
+
108
+ foreach ($productvalues AS $key => $value) {
109
+ $new_pro_array[] = $value['value'];
110
+ }
111
+
112
+ $productvaluescount = count($new_pro_array);
113
+
114
+ //$product_Attr_str = implode(",",$new_pro_array);
115
+ $product_Attr_str = implode(",",array_map('trim',$new_pro_array));
116
+
117
+ $fp = fopen($path."/Product_Attributes_".date("m-d-y-g-i-a").".csv", 'x+') or die(Mage::log("file opening error!!"));
118
+
119
+ $headers = "Sku,".str_replace("sku,",'',$product_Attr_str)."\n";
120
+ fwrite($fp,$headers);
121
+
122
+ $from = date('Y-m-d H:i:s', mktime(date("H"), date("i"), date("s"), date("m"), date("d")-1, date("Y")) ) ; //date('Y-m-d', strtotime("-2 day"));
123
+ $to = date('Y-m-d H:i:s');
124
+
125
+ $collection = Mage::getModel('catalog/product')->getCollection();
126
+ $collection->addAttributeToFilter('updated_at', array('gt' =>$from));
127
+ $collection->addAttributeToFilter('updated_at', array('lt' => $to));
128
+ $attribute_values = "";
129
+ foreach ($collection as $products) //loop for getting products
130
+ {
131
+ $product = Mage::getModel('catalog/product')->load($products->getId());
132
+ $attributes = $product->getAttributes();
133
+
134
+ $attribute_values .= '"'.$product->getSku().'",';
135
+ for($i=0;$i<$productvaluescount;$i++)
136
+ {
137
+ $attributeName = $new_pro_array[$i];
138
+ if ($attributeName!='sku'){
139
+ $attributeValue = null;
140
+ if(array_key_exists($attributeName , $attributes)){
141
+ $attributesobj = $attributes["{$attributeName}"];
142
+ $attributeValue = $attributesobj->getFrontend()->getValue($product);
143
+ }
144
+ $string=str_replace('"','\"',$attributeValue);
145
+ $attribute_values .= '"'.$string.'",';
146
+ }
147
+
148
+ }
149
+ $attribute_values .= "\n";
150
+ }
151
+ fwrite($fp,$attribute_values);
152
+ fclose($fp);
153
+
154
+ $filepath = $path."/Product_Attributes_".date("m-d-y-g-i-a").".csv";
155
+ $this->getResponse ()
156
+ ->setHttpResponseCode ( 200 )
157
+ ->setHeader ( 'Pragma', 'public', true )
158
+ ->setHeader ( 'Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true )
159
+ ->setHeader ( 'Content-type', 'application/force-download' )
160
+ ->setHeader ( 'Content-Length', filesize($filepath) )
161
+ ->setHeader ('Content-Disposition', '' . '; filename=' . basename($filepath) );
162
+ $this->getResponse ()->clearBody ();
163
+ $this->getResponse ()->sendHeaders ();
164
+ readfile ( $filepath );
165
+
166
+ }else{
167
+ $url = Mage::helper("adminhtml")->getUrl("adminhtml/system_config/edit/section/engage_options/");
168
+ header("Location: ".$url);
169
+ }
170
+
171
+ }
172
+
173
+
174
+
175
+ /**
176
+ * Export Customer Attributes CSV file for download
177
+ *
178
+ *
179
+ */
180
+ public function Customer_CSVAction()
181
+ {
182
+ Mage::log("Entry Knolseed_Engage_Adminhtml_EngageController::Customer_CSVAction()",null,'knolseed.log');
183
+
184
+ ob_start();
185
+
186
+ $customer_csv_time = Mage::getStoreConfig('engage_options/customer/cron_time');
187
+
188
+ $path = Mage::getBaseDir(); # if you want to add new folder for csv files just add name of folder in dir with single quote.
189
+ $customer_enable_flag = Mage::getStoreConfig('engage_options/customer/status');
190
+ if($customer_enable_flag == 1){
191
+ $customervalues = Mage::getModel('engage/customervalues')->toOptionArray();
192
+
193
+ $new_cust_array = array();
194
+
195
+ foreach ($customervalues AS $key => $value) {
196
+ $new_cust_array[] = $value['value'];
197
+ }
198
+
199
+ $customervaluescount = count($new_cust_array);
200
+
201
+ $fp = fopen($path."/Customer_Attributes_".date("m-d-y-g-i-a").".csv", 'x+') or die(Mage::log("file opening error!!"));
202
+
203
+ $headers = "";
204
+ $headers = " Customer Id ,".implode(",", array_map('trim',$new_cust_array))."\n";
205
+ fwrite($fp,$headers);
206
+ $model = Mage::getModel('customer/customer'); //getting product model
207
+ $collection = $model->getCollection(); //products collection
208
+ $attribute_values = "";
209
+
210
+ foreach ($collection as $customers) //loop for getting products
211
+ {
212
+ $customer = Mage::getModel('customer/customer')->load($customers->getId());
213
+ $attributes = $customer->getAttributes();
214
+
215
+ $attribute_values .= '"'.$customer->getId().'",';
216
+
217
+ foreach( $new_cust_array as $key => $vals )
218
+ {
219
+ $attributeValue = $customer->getData( $vals ) ;
220
+
221
+ if( $vals == "default_billing" || $vals == "default_shipping" ) {
222
+
223
+ $address = Mage::getModel('customer/address')->load($attributeValue);
224
+ $htmlAddress = $address->format('html');
225
+ $string = (string)$htmlAddress;
226
+ $string = ereg_replace("[ \t\n\r]+", "", $string);
227
+ $string= str_replace(array('<br/>', ',', '<br />'), ' ', $string);
228
+ $attribute_values .='"'.str_replace('"','\"',$string).'",';
229
+
230
+ } else {
231
+
232
+ $string = ereg_replace("[ \t\n\r]+", "", $attributeValue);
233
+
234
+ $string=str_replace('"','\"',$string);
235
+ $attribute_values .= '"'.str_replace(array('<br/>', ',', '<br />'), ' ', $string).'",';
236
+ }
237
+
238
+ }
239
+ $attribute_values .= "\n";
240
+ }
241
+
242
+ fwrite($fp,$attribute_values);
243
+ fclose($fp);
244
+
245
+ $filepath = $path."/Customer_Attributes_".date("m-d-y-g-i-a").".csv";
246
+ $this->getResponse ()
247
+ ->setHttpResponseCode ( 200 )
248
+ ->setHeader ( 'Pragma', 'public', true )
249
+ ->setHeader ( 'Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true )
250
+ ->setHeader ( 'Content-type', 'application/force-download' )
251
+ ->setHeader ( 'Content-Length', filesize($filepath) )
252
+ ->setHeader ('Content-Disposition', '' . '; filename=' . basename($filepath) );
253
+ $this->getResponse ()->clearBody ();
254
+ $this->getResponse ()->sendHeaders ();
255
+ readfile ( $filepath );
256
+ #unlink($filepath);
257
+ }else{
258
+ $url = Mage::helper("adminhtml")->getUrl("adminhtml/system_config/edit/section/engage_options/");
259
+ header("Location: ".$url);
260
+ ob_end_flush();
261
+ }
262
+
263
+ }
264
+
265
+ }
lib/knolseed/Engage/controllers/IndexController.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ class Knolseed_Engage_IndexController extends Mage_Core_Controller_Front_Action
10
+ {
11
+ public function indexAction()
12
+ {
13
+
14
+ /*
15
+ * Load an object by id
16
+ * Request looking like:
17
+ * http://site.com/setattribute?id=15
18
+ * or
19
+ * http://site.com/setattribute/id/15
20
+ */
21
+ /*
22
+ $setattribute_id = $this->getRequest()->getParam('id');
23
+
24
+ if($setattribute_id != null && $setattribute_id != '') {
25
+ $setattribute = Mage::getModel('setattribute/setattribute')->load($setattribute_id)->getData();
26
+ } else {
27
+ $setattribute = null;
28
+ }
29
+ */
30
+
31
+ /*
32
+ * If no param we load a the last created item
33
+ */
34
+ /*
35
+ if($setattribute == null) {
36
+ $resource = Mage::getSingleton('core/resource');
37
+ $read= $resource->getConnection('core_read');
38
+ $setattributeTable = $resource->getTableName('setattribute');
39
+
40
+ $select = $read->select()
41
+ ->from($setattributeTable,array('setattribute_id','title','content','status'))
42
+ ->where('status',1)
43
+ ->order('created_time DESC') ;
44
+
45
+ $setattribute = $read->fetchRow($select);
46
+ }
47
+ Mage::register('setattribute', $setattribute);
48
+ */
49
+
50
+
51
+ $this->loadLayout();
52
+ $this->renderLayout();
53
+ }
54
+
55
+ }
lib/knolseed/Engage/etc/adminhtml.xml ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magentocommerce.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magentocommerce.com for more information.
21
+ *
22
+ * @category Mage
23
+ * @package Mage_Catalog
24
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+ <config>
29
+ <menu>
30
+ <catalog translate="title" module="catalog">
31
+ <title>Catalog</title>
32
+ <sort_order>30</sort_order>
33
+ <!--action>adminhtml/catalog</action-->
34
+ <depends>
35
+ <module>Mage_Catalog</module>
36
+ </depends>
37
+ <children>
38
+ <products translate="title" module="catalog">
39
+ <title>Manage Products</title>
40
+ <action>adminhtml/catalog_product/</action>
41
+ <sort_order>0</sort_order>
42
+ </products>
43
+ <categories translate="title" module="catalog">
44
+ <title>Manage Categories</title>
45
+ <action>adminhtml/catalog_category/</action>
46
+ <sort_order>10</sort_order>
47
+ </categories>
48
+ <attributes translate="title" module="catalog">
49
+ <title>Attributes</title>
50
+ <children>
51
+ <attributes translate="title" module="catalog">
52
+ <title>Manage Attributes</title>
53
+ <action>adminhtml/catalog_product_attribute/</action>
54
+ </attributes>
55
+ <sets translate="title" module="catalog">
56
+ <title>Manage Attribute Sets</title>
57
+ <action>adminhtml/catalog_product_set/</action>
58
+ </sets>
59
+ </children>
60
+ <sort_order>20</sort_order>
61
+ </attributes>
62
+ <urlrewrite translate="title" module="catalog">
63
+ <title>URL Rewrite Management</title>
64
+ <action>adminhtml/urlrewrite/index</action>
65
+ <sort_order>30</sort_order>
66
+ </urlrewrite>
67
+ </children>
68
+ </catalog>
69
+ </menu>
70
+ <acl>
71
+ <resources>
72
+ <admin>
73
+ <children>
74
+ <system>
75
+ <children>
76
+ <config>
77
+ <children>
78
+ <catalog translate="title" module="catalog">
79
+ <title>Catalog Section</title>
80
+ </catalog>
81
+ </children>
82
+ </config>
83
+ </children>
84
+ </system>
85
+ <catalog translate="title" module="catalog">
86
+ <title>Catalog</title>
87
+ <sort_order>30</sort_order>
88
+ <children>
89
+ <attributes translate="title">
90
+ <title>Attributes</title>
91
+ <children>
92
+ <attributes translate="title">
93
+ <title>Manage Attributes</title>
94
+ </attributes>
95
+ <sets translate="title">
96
+ <title>Manage Attribute Sets</title>
97
+ </sets>
98
+ </children>
99
+ </attributes>
100
+ <categories translate="title">
101
+ <title>Manage Categories</title>
102
+ </categories>
103
+ <products translate="title">
104
+ <title>Manage Products</title>
105
+ </products>
106
+ <update_attributes translate="title">
107
+ <title>Update Attributes</title>
108
+ </update_attributes>
109
+ <urlrewrite translate="title">
110
+ <title>URL Rewrite Management</title>
111
+ </urlrewrite>
112
+ </children>
113
+ </catalog>
114
+ </children>
115
+ </admin>
116
+ </resources>
117
+ </acl>
118
+ </config>
lib/knolseed/Engage/etc/config.xml ADDED
@@ -0,0 +1,221 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * @category Knolseed
5
+ * @package Knolseed
6
+ * @author KnolseedTech
7
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
8
+ */
9
+ -->
10
+ <config>
11
+ <modules>
12
+ <Knolseed_Engage>
13
+ <version>0.1.0</version>
14
+ </Knolseed_Engage>
15
+ </modules>
16
+ <default>
17
+ <engage_options>
18
+ <google>
19
+ <google_content><![CDATA[(function (w, d, a, m) {
20
+ w['_knolseed'] = w['_knolseed'] || [];
21
+ /** intercepts ga.js calls */
22
+ var push = Array.prototype.push;
23
+ w['_gaq'] = [];
24
+ w['_gaq'].push = function () {
25
+ var i = 0, max = arguments.length, arg;
26
+ while (i < max) {
27
+ arg = arguments[i++]; push.call(_gaq, arg); push.call(_knolseed, arg);
28
+ }
29
+ };
30
+ /** intercepts analytics.js calls */
31
+ w['ga'] = function() {
32
+ (w['ga'].q = w['ga'].q || []).push(arguments);
33
+ (w['_knolseed'] = w['_knolseed'] || []).push(arguments);
34
+ };
35
+ a = d.createElement('script'),
36
+ m = d.getElementsByTagName('script')[0];
37
+ a.async = 1;
38
+ a.src = 'http://ers.knolseed.com:1234/embed.js';
39
+ m.parentNode.insertBefore(a, m)
40
+ })(window,document)
41
+ </script>
42
+
43
+ <script>
44
+ _knolseed.push(["_setCustomerId", "customer_id"]);]]>
45
+ </google_content>
46
+ </google>
47
+ </engage_options>
48
+ </default>
49
+ <default>
50
+ <upload_options>
51
+ <upload>
52
+ <upload_info>1</upload_info>
53
+ </upload>
54
+ </upload_options>
55
+ </default>
56
+ <default>
57
+ <engage_options>
58
+ <product>
59
+ <cron_time>03:00</cron_time>
60
+ </product>
61
+ </engage_options>
62
+ </default>
63
+ <default>
64
+ <engage_options>
65
+ <customer>
66
+ <cron_time>03:00</cron_time>
67
+ </customer>
68
+ </engage_options>
69
+ </default>
70
+ <frontend>
71
+ <routers>
72
+ <engage>
73
+ <use>standard</use>
74
+ <args>
75
+ <module>Knolseed_Engage</module>
76
+ <frontName>engage</frontName>
77
+ </args>
78
+ </engage>
79
+ </routers>
80
+ <layout>
81
+ <updates>
82
+ <engage>
83
+ <file>engage.xml</file>
84
+ </engage>
85
+ </updates>
86
+ </layout>
87
+ </frontend>
88
+ <admin>
89
+ <routers>
90
+ <engage>
91
+ <use>admin</use>
92
+ <args>
93
+ <module>Knolseed_Engage</module>
94
+ <frontName>engage</frontName>
95
+ </args>
96
+ </engage>
97
+ </routers>
98
+ </admin>
99
+ <adminhtml>
100
+ <acl>
101
+ <resources>
102
+ <all>
103
+ <title>Allow Everything</title>
104
+ </all>
105
+ <admin>
106
+ <children>
107
+ <Knolseed_Engage>
108
+ <title>Engage Module</title>
109
+ <sort_order>10</sort_order>
110
+ </Knolseed_Engage>
111
+ <system>
112
+ <children>
113
+ <config>
114
+ <children>
115
+ <engage_options>
116
+ <title>Store Hello World Module Section</title>
117
+ </engage_options>
118
+ <upload_options>
119
+ <title>Upload Data Module Section</title>
120
+ </upload_options>
121
+ </children>
122
+ </config>
123
+ </children>
124
+ </system>
125
+ </children>
126
+ </admin>
127
+ </resources>
128
+ </acl>
129
+ <layout>
130
+ <updates>
131
+ <engage>
132
+ <file>engage.xml</file>
133
+ </engage>
134
+ </updates>
135
+ </layout>
136
+
137
+ </adminhtml>
138
+ <global>
139
+ <models>
140
+ <engage>
141
+ <class>Knolseed_Engage_Model</class>
142
+ <resourceModel>engage_mysql4</resourceModel>
143
+ </engage>
144
+ <engage_mysql4>
145
+ <class>Knolseed_Engage_Model_Mysql4</class>
146
+ <entities>
147
+ <engage>
148
+ <table>kf_cron_process</table>
149
+ </engage>
150
+ </entities>
151
+ </engage_mysql4>
152
+ </models>
153
+ <resources>
154
+ <engage_setup>
155
+ <setup>
156
+ <module>Knolseed_Engage</module>
157
+ </setup>
158
+ <connection>
159
+ <use>core_setup</use>
160
+ </connection>
161
+ </engage_setup>
162
+ <engage_write>
163
+ <connection>
164
+ <use>core_write</use>
165
+ </connection>
166
+ </engage_write>
167
+ <engage_read>
168
+ <connection>
169
+ <use>core_read</use>
170
+ </connection>
171
+ </engage_read>
172
+ </resources>
173
+ <blocks>
174
+ <engage>
175
+ <class>Knolseed_Engage_Block</class>
176
+ </engage>
177
+ <googleanalytics>
178
+ <rewrite>
179
+ <ga>Knolseed_Engage_Block_Ga</ga>
180
+ </rewrite>
181
+ </googleanalytics>
182
+ </blocks>
183
+ <helpers>
184
+ <engage>
185
+ <class>Knolseed_Engage_Helper</class>
186
+ </engage>
187
+ </helpers>
188
+ <events>
189
+ <admin_system_config_changed_section_upload_options>
190
+ <observers>
191
+ <engage>
192
+ <type>singleton</type>
193
+ <class>Knolseed_Engage_Model_Observer</class>
194
+ <method>setUploadDataTimeframe</method>
195
+ </engage>
196
+ </observers>
197
+ </admin_system_config_changed_section_upload_options>
198
+ <admin_system_config_changed_section_engage_options>
199
+ <observers>
200
+ <engage>
201
+ <type>singleton</type>
202
+ <class>Knolseed_Engage_Model_Observer</class>
203
+ <method>removeUserPass</method>
204
+ </engage>
205
+ </observers>
206
+ </admin_system_config_changed_section_engage_options>
207
+ </events>
208
+ </global>
209
+ <crontab>
210
+ <jobs>
211
+ <knolseed_engage>
212
+ <schedule>
213
+ <cron_expr>*/5 * * * *</cron_expr>
214
+ </schedule>
215
+ <run>
216
+ <model>engage/observer::setScript</model>
217
+ </run>
218
+ </knolseed_engage>
219
+ </jobs>
220
+ </crontab>
221
+ </config>
lib/knolseed/Engage/etc/system.xml ADDED
@@ -0,0 +1,241 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!--
2
+ /**
3
+ * @category Knolseed
4
+ * @package Knolseed
5
+ * @author KnolseedTech
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ */
8
+ -->
9
+ <config>
10
+ <tabs>
11
+ <engage translate="label" module="engage">
12
+ <label>KnolSeed Configuration</label>
13
+ <sort_order>99999</sort_order>
14
+ </engage>
15
+ </tabs>
16
+ <sections>
17
+ <engage_options translate="label" module="engage">
18
+ <label>Configure Plugin</label>
19
+ <tab>engage</tab>
20
+ <frontend_type>text</frontend_type>
21
+ <sort_order>1000</sort_order>
22
+ <show_in_default>1</show_in_default>
23
+ <show_in_website>1</show_in_website>
24
+ <show_in_store>1</show_in_store>
25
+ <groups>
26
+ <aws translate="label">
27
+ <label>KnolSeed Connect</label>
28
+ <frontend_type>text</frontend_type>
29
+ <sort_order>1</sort_order>
30
+ <show_in_default>1</show_in_default>
31
+ <show_in_website>1</show_in_website>
32
+ <show_in_store>1</show_in_store>
33
+ <comment><![CDATA[<div id="default-label-credentials" class="default-label">Enter your KnolSeed credentials to enable this plugin. To create a new KnolSeed account, click <a href="http://www.knolseed.com" target="_blank">here</a>.</div>]]></comment>
34
+ <fields>
35
+ <username>
36
+ <label>Username</label>
37
+ <frontend_type>text</frontend_type>
38
+ <sort_order>2</sort_order>
39
+ <show_in_default>1</show_in_default>
40
+ <show_in_website>1</show_in_website>
41
+ <show_in_store>1</show_in_store>
42
+ </username>
43
+ <password>
44
+ <label>Password</label>
45
+ <frontend_type>password</frontend_type>
46
+ <sort_order>3</sort_order>
47
+ <show_in_default>1</show_in_default>
48
+ <show_in_website>1</show_in_website>
49
+ <show_in_store>1</show_in_store>
50
+ </password>
51
+ <testconnection translate="label">
52
+ <label></label>
53
+ <frontend_type>button</frontend_type>
54
+ <frontend_model>engage/buttontestconnect</frontend_model>
55
+                             <sort_order>80</sort_order>
56
+                             <show_in_default>1</show_in_default>
57
+                             <show_in_website>1</show_in_website>
58
+ <show_in_store>1</show_in_store>
59
+ </testconnection>
60
+
61
+ </fields>
62
+ </aws>
63
+ </groups>
64
+ <groups>
65
+ <product translate="label">
66
+ <label>Product Catalog Sync</label>
67
+ <frontend_type>text</frontend_type>
68
+ <sort_order>2</sort_order>
69
+ <show_in_default>1</show_in_default>
70
+ <show_in_website>1</show_in_website>
71
+ <show_in_store>1</show_in_store>
72
+ <fields>
73
+ <cron_time>
74
+ <label>Sync Time</label>
75
+ <frontend_type>select</frontend_type>
76
+ <source_model>knolseed_engage_model_crontime</source_model>
77
+ <sort_order>3</sort_order>
78
+ <show_in_default>1</show_in_default>
79
+ <show_in_website>1</show_in_website>
80
+ <show_in_store>1</show_in_store>
81
+ <tooltip>KnolSeed will sync your Product Catalog everyday at this time</tooltip>
82
+ <comment>Choose a time that has minimum performance impact on your website. Eg, if your website traffic is lowest at 3AM, then choose 3AM here.</comment>
83
+ </cron_time>
84
+ <!--<interval translate="label comment">
85
+ <label>Interval</label>
86
+ <comment><![CDATA[Specify interval in minutes]]></comment>
87
+ <frontend_type>text</frontend_type>
88
+ <sort_order>4</sort_order>
89
+ <show_in_default>1</show_in_default>
90
+ <show_in_website>0</show_in_website>
91
+ <show_in_store>1</show_in_store>
92
+ </interval>-->
93
+ <!--<run translate="label">
94
+ <label>Export to CSV</label>
95
+ <frontend_type>button</frontend_type>
96
+ <frontend_model>engage/button</frontend_model>
97
+ <sort_order>20</sort_order>
98
+ <show_in_default>1</show_in_default>
99
+ <show_in_website>1</show_in_website>
100
+ <show_in_store>1</show_in_store>
101
+ </run> -->
102
+ </fields>
103
+ </product>
104
+ </groups>
105
+
106
+ <groups>
107
+ <customer translate="label">
108
+ <label>Customer Data Sync</label>
109
+ <frontend_type>text</frontend_type>
110
+ <sort_order>3</sort_order>
111
+ <show_in_default>1</show_in_default>
112
+ <show_in_website>1</show_in_website>
113
+ <show_in_store>1</show_in_store>
114
+ <fields>
115
+ <cron_time>
116
+ <label>Sync Time</label>
117
+ <frontend_type>select</frontend_type>
118
+ <source_model>knolseed_engage_model_crontime</source_model>
119
+ <sort_order>3</sort_order>
120
+ <show_in_default>1</show_in_default>
121
+ <show_in_website>1</show_in_website>
122
+ <show_in_store>1</show_in_store>
123
+ <tooltip>KnolSeed will sync your Customer Attributes everyday at this time</tooltip>
124
+ <comment>Choose a time that has minimum performance impact on your website. Eg, if your website traffic is lowest at 3AM, then choose 3AM here.</comment>
125
+ </cron_time>
126
+ <!--<interval translate="label comment">
127
+ <label>Interval</label>
128
+ <comment><![CDATA[Specify interval in minutes]]></comment>
129
+ <frontend_type>text</frontend_type>
130
+ <sort_order>4</sort_order>
131
+ <show_in_default>1</show_in_default>
132
+ <show_in_website>0</show_in_website>
133
+ <show_in_store>1</show_in_store>
134
+ </interval>
135
+ <run translate="label">
136
+ <label>Export to CSV</label>
137
+ <frontend_type>button</frontend_type>
138
+ <frontend_model>engage/buttonexport</frontend_model>
139
+ <sort_order>21</sort_order>
140
+ <show_in_default>1</show_in_default>
141
+ <show_in_website>1</show_in_website>
142
+ <show_in_store>1</show_in_store>
143
+ </run> -->
144
+ </fields>
145
+ </customer>
146
+ </groups>
147
+
148
+ <groups>
149
+ <google translate="label">
150
+ <label>KnolSeed Analytics</label>
151
+ <frontend_type>text</frontend_type>
152
+ <sort_order>4</sort_order>
153
+ <show_in_default>1</show_in_default>
154
+ <show_in_website>1</show_in_website>
155
+ <show_in_store>1</show_in_store>
156
+ <comment><![CDATA[<div id="gastatus" class="gastatus"></div>]]></comment>
157
+ <fields>
158
+ <google_content>
159
+ <label>KnolSeed Analytics Content</label>
160
+ <frontend_type>textarea</frontend_type>
161
+ <sort_order>3</sort_order>
162
+ <show_in_default>1</show_in_default>
163
+ <show_in_website>1</show_in_website>
164
+ <show_in_store>1</show_in_store>
165
+ <tooltip>KnolSeed will embed this snippet in your product webpages. This will allow you to segment your audience based on website browsing and buying behaviour.</tooltip>
166
+ </google_content>
167
+ <!--<google_account_number>
168
+ <label>Google Account Number</label>
169
+ <frontend_type>text</frontend_type>
170
+ <validate>required-entry-firstname</validate>
171
+ <sort_order>3</sort_order>
172
+ <show_in_default>1</show_in_default>
173
+ <show_in_website>1</show_in_website>
174
+ <show_in_store>1</show_in_store>
175
+ <comment>Knolseed Analytics needs Google Analytics to be enabled. To enable, please enter your Google Account Number above and save the configuration</comment>
176
+ </google_account_number>-->
177
+ </fields>
178
+ </google>
179
+ </groups>
180
+
181
+
182
+ </engage_options>
183
+ <upload_options translate="label" module="engage">
184
+ <label>Advanced Customer Segmentation</label>
185
+ <tab>engage</tab>
186
+ <frontend_type>text</frontend_type>
187
+ <sort_order>10001</sort_order>
188
+ <show_in_default>1</show_in_default>
189
+ <show_in_website>1</show_in_website>
190
+ <show_in_store>1</show_in_store>
191
+ <groups>
192
+ <upload translate="label">
193
+ <label>Advanced customer segmentation can be enabled by doing a one-time data sync with KnolSeed
194
+ </label>
195
+ <frontend_type>select</frontend_type>
196
+ <source_model>knolseed_engage_model_uploadinfo</source_model>
197
+ <sort_order>2</sort_order>
198
+ <show_in_default>1</show_in_default>
199
+ <show_in_website>1</show_in_website>
200
+ <show_in_store>1</show_in_store>
201
+ <fields>
202
+ <upload_info>
203
+ <label>Data to sync</label>
204
+ <frontend_type>radios</frontend_type>
205
+ <source_model>knolseed_engage_model_uploadinfo</source_model>
206
+ <sort_order>2</sort_order>
207
+ <show_in_default>1</show_in_default>
208
+ <show_in_website>1</show_in_website>
209
+ <show_in_store>1</show_in_store>
210
+ <tooltip>Transaction data for selected timeframe will be synced with KnolSeed.</tooltip>
211
+ <comment><![CDATA[<style>#row_upload_options_upload_upload_info td.value {width:410px !important;}</style>]]></comment>
212
+ </upload_info>
213
+ <timeframe>
214
+ <label>Timeframe for data sync</label>
215
+ <frontend_type>select</frontend_type>
216
+ <source_model>knolseed_engage_model_timeframe</source_model>
217
+ <sort_order>20</sort_order>
218
+ <show_in_default>1</show_in_default>
219
+ <show_in_website>1</show_in_website>
220
+ <show_in_store>1</show_in_store>
221
+ <tooltip>This is the time-window of data that will be synced with KnolSeed.</tooltip>
222
+ </timeframe>
223
+ <time>
224
+ <label>Start data sync at</label>
225
+ <frontend_type>select</frontend_type>
226
+ <source_model>knolseed_engage_model_time</source_model>
227
+ <sort_order>21</sort_order>
228
+ <show_in_default>1</show_in_default>
229
+ <show_in_website>1</show_in_website>
230
+ <show_in_store>1</show_in_store>
231
+ <tooltip>KnolSeed will perform a one-time sync of your Transactions data at this time.</tooltip>
232
+ <comment>Choose a time that has minimum performance impact on your website. Eg, if your website traffic is lowest at 3AM, then choose 3AM here.</comment>
233
+ </time>
234
+ </fields>
235
+ </upload>
236
+ </groups>
237
+
238
+ </upload_options>
239
+ </sections>
240
+ </config>
241
+
lib/knolseed/Engage/sql/engage_setup/mysql4-install-0.1.0.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Knolseed
4
+ * @author Knolseed (product@knolseed.com)
5
+ * @support support@knolseed.com
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ *
8
+ */
9
+ $installer = $this;
10
+ $installer->startSetup();
11
+ $installer->run("
12
+ CREATE TABLE IF NOT EXISTS `kf_cron_process` (
13
+ `process_id` int(11) NOT NULL AUTO_INCREMENT,
14
+ `date_start` datetime NOT NULL,
15
+ `date_end` datetime NOT NULL,
16
+ `file_pushed` enum('0','1') NOT NULL DEFAULT '0',
17
+ `filename` varchar(30) NOT NULL DEFAULT '0',
18
+ `type` enum('customer','product') NOT NULL,
19
+ `attempt` tinyint(4) NOT NULL DEFAULT '0',
20
+ `created_at` date NOT NULL,
21
+ PRIMARY KEY (`process_id`)
22
+ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
23
+
24
+
25
+ ");
26
+ $installer->endSetup();
27
+
28
+ $installer = $this;
package.xml CHANGED
@@ -1,18 +1,18 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Knolseed</name>
4
- <version>1.1.9</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Knolseed Magento Extension</summary>
10
  <description>Knolseed Magento Extension</description>
11
- <notes>No known Bugs or Limitations</notes>
12
  <authors><author><name>Mohan Varadarajan</name><user>KnolseedTech</user><email>mohan@knolseed.com</email></author></authors>
13
- <date>2014-09-01</date>
14
- <time>09:27:41</time>
15
- <contents><target name="magelocal"><dir name="Knolseed"><dir name="Engage"><dir name="Block"><dir name="Adminhtml"><dir name="Engage"><dir name="Edit"><file name="Form.php" hash="8be003c0b60c8d5b85611ac14e9ea6fd"/><dir name="Tab"><file name="Form.php" hash="8a7d81b8dc569a24ab26e2f2adab6477"/></dir><file name="Tabs.php" hash="15beb8a0ec0bb422963fb7ed0f0cd35a"/></dir><file name="Edit.php" hash="53a459ef71bc48569d0812bf2e21acf0"/><file name="Grid.php" hash="e58fe0b54ce1f2196971d2825aa6e2b9"/></dir><file name="Engage.php" hash="10bb9b17de7a4721893e9f9129701ef1"/></dir><file name="Button.php" hash="8b1d2ecbc79cbd2917a29bc4d0152a93"/><file name="Buttonexport.php" hash="0ea9196c02b1952c6f0632542ac5d2a4"/><file name="Buttontestconnect.php" hash="e388161e55080ae63c17764b2b6f83d1"/><file name="Engage.php" hash="eece4f427dcb0b136a3435dbbac9a2a7"/><file name="Ga.php" hash="05d300c2e95dda7a01782b238e842fa1"/></dir><dir name="Helper"><file name="Data.php" hash="3a9af01a3c422b0f693577074dae3da6"/></dir><dir name="Model"><file name="Catalogvalues.php" hash="1eb4d0990dab378102a315e2f7dea195"/><file name="Crontime.php" hash="aa11fbc0518015f0ea9ad31879e2942c"/><file name="Customervalues.php" hash="dea955296bb81ede1a493b868dd1fa8e"/><file name="Engage.php" hash="e5e0c63deb2f9d5af46b6494bd8da04d"/><file name="Gacode.php" hash="e003a5e564b1448eeba88ffb5633f18b"/><dir name="Mysql4"><dir name="Engage"><file name="Collection.php" hash="e58859b2f5b4708eb941c9d06ade4598"/></dir><file name="Engage.php" hash="c492577c2fd9a6ae2f193d29474d2264"/></dir><file name="Observer.php" hash="02c99a7e5a2ebeb32273848aa8d6d4c1"/><file name="Productvalues.php" hash="2e25e89dd6bc052c526364e40d83cebe"/><file name="Status.php" hash="31986502af9ee8f584770587eef6c9e3"/><file name="Time.php" hash="5a8cda2b446d1e31c4e88fd6833609fb"/><file name="Timeframe.php" hash="123113578538af59392a39e6471827b0"/><file name="Uploadinfo.php" hash="ff0fbcfc2a4143f3c9d8f6caa1ecfa08"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="EngageController.php" hash="20c4aa714af167610693e80d0007811f"/></dir><file name="IndexController.php" hash="1b5639c7d012fc2b18473f396ebf5899"/></dir><dir name="etc"><file name="adminhtml.xml" hash="d12bb84c74502244f2ab3ac82594856e"/><file name="config.xml" hash="62c4bdfc0f1c46df3b11b2413069e0d9"/><file name="system.xml" hash="6d894107c020cab2c769250a651c7ba0"/></dir><dir name="sql"><dir name="engage_setup"><file name="mysql4-install-0.1.0.php" hash="e82cbb2edc97eef70fcd68f487e3b081"/></dir></dir></dir></dir></target><target name="magelib"><dir name="knolseed"><dir name="Aws"><dir name="AutoScaling"><file name="AutoScalingClient.php" hash="96f7817e2b957e0dff5b86b9b6375e01"/><dir name="Enum"><file name="LifecycleState.php" hash="9810bd2aa5e76553e2ff63eb1099ce0f"/><file name="ScalingActivityStatusCode.php" hash="d25ea9047b7808c202ef2ef8a4a77b0c"/></dir><dir name="Exception"><file name="AlreadyExistsException.php" hash="2a02b6cab633434c7ea21ecb83b58cf5"/><file name="AutoScalingException.php" hash="097796b2f6511b3ba61b0b6868fbaa71"/><file name="InvalidNextTokenException.php" hash="5514b82a135cb1458f01ae4160be4fb0"/><file name="LimitExceededException.php" hash="d0c352eb46597b28ed055ae061021287"/><file name="ResourceInUseException.php" hash="a71af59532132f4762a8c43ade822cad"/><file name="ScalingActivityInProgressException.php" hash="4219a0cba552d93baa06bbfc649ac324"/></dir><dir name="Resources"><file name="autoscaling-2011-01-01.php" hash="d7ae83165d1d181b9c64ad6a53068f99"/></dir></dir><dir name="CloudFormation"><file name="CloudFormationClient.php" hash="c0c79a7a6f698f7a02831c74e349ae1c"/><dir name="Enum"><file name="Capability.php" hash="87d3e5b2a1e471de32eacfe319a742f8"/><file name="OnFailure.php" hash="2dd2c835807d9199cb50e36088a18e81"/><file name="ResourceStatus.php" hash="700168f41f807abd7c97f15d9f4d901f"/><file name="StackStatus.php" hash="345f0b117d1f812f8e0b9ef0823d3ae8"/></dir><dir name="Exception"><file name="AlreadyExistsException.php" hash="4ffdae7a4ad78b89a8a4a9be1f536884"/><file name="CloudFormationException.php" hash="20085530b59b9e098c2ada9de3ee8351"/><file name="InsufficientCapabilitiesException.php" hash="065983a4508b04e9f500698db711a55a"/><file name="LimitExceededException.php" hash="bdc10d2e7ccb4be4729acf21aa87dbf4"/></dir><dir name="Resources"><file name="cloudformation-2010-05-15.php" hash="a91f58d121086b008998fcd1909c5ad3"/></dir></dir><dir name="CloudFront"><file name="CloudFrontClient.php" hash="c820712a8fdf2ee3ecd39e5a1a61d9e1"/><file name="CloudFrontSignature.php" hash="06eeb79f40f3a20ca9859a976961fee3"/><dir name="Enum"><file name="ItemSelection.php" hash="f89c600f2b261a6b3c94bf19d06e5eee"/><file name="Method.php" hash="67e88edf55940e191921ddf90b6025c4"/><file name="OriginProtocolPolicy.php" hash="8fe4e01406293f576e597ff771640d2e"/><file name="PriceClass.php" hash="d9a50e0437e0b662a157196b3abb9d5f"/><file name="ViewerProtocolPolicy.php" hash="204c54c2ae5c02726befe41b812b4bd6"/></dir><dir name="Exception"><file name="AccessDeniedException.php" hash="210a1d69c62f9c0b8add9a2a2e81f394"/><file name="BatchTooLargeException.php" hash="3105f7267554b58a0abf432d836e5bf4"/><file name="CNAMEAlreadyExistsException.php" hash="9425867f60b4d25848ff0bdd47300eaa"/><file name="CloudFrontException.php" hash="429e05ee70405874929cc108266b2d93"/><file name="CloudFrontOriginAccessIdentityAlreadyExistsException.php" hash="739105270b7721b7da091664ba3c0f14"/><file name="CloudFrontOriginAccessIdentityInUseException.php" hash="81d6a09bc4ce37d9a9e0bd2159043855"/><file name="DistributionAlreadyExistsException.php" hash="64f8c14cf76317489ce6a15330e0816a"/><file name="DistributionNotDisabledException.php" hash="c5230d53c99110d8b2675621be9c66f0"/><file name="Exception.php" hash="ce040bf287eacfd693b3dc759fcb800b"/><file name="IllegalUpdateException.php" hash="5ab60ad23c08fc77bcccf98fbd738dd2"/><file name="InconsistentQuantitiesException.php" hash="d6af918a252e0d4e943320a6bb1094cb"/><file name="InvalidArgumentException.php" hash="c6122a31c0194300c471656b3b874067"/><file name="InvalidDefaultRootObjectException.php" hash="3bc0b9f16f48a7dfd7d9144dd43b7acb"/><file name="InvalidErrorCodeException.php" hash="c05d8ffd76968aa2f48c8b8f7c19dbc4"/><file name="InvalidForwardCookiesException.php" hash="b50389875ae9a54ab825fea3e5773d4d"/><file name="InvalidIfMatchVersionException.php" hash="7aa670f81354a67f8270fd2246ad8fc1"/><file name="InvalidOriginAccessIdentityException.php" hash="7acfcfb24a66784da0c4c149f3cf29de"/><file name="InvalidOriginException.php" hash="632df0a0cc8f09ed6595eaab6eac9c02"/><file name="InvalidRelativePathException.php" hash="56dc34af823320de174eef4f680869e6"/><file name="InvalidRequiredProtocolException.php" hash="78829bb583c8a4720512602c2ce6ee4a"/><file name="InvalidResponseCodeException.php" hash="4976577e103856db9c652447c420b3b8"/><file name="InvalidViewerCertificateException.php" hash="c70c0a60aa37e8d231ce1ca53f6c0b75"/><file name="MissingBodyException.php" hash="3d73e714eacad430e11719913273dd9c"/><file name="NoSuchCloudFrontOriginAccessIdentityException.php" hash="c2de46b7e8db036f884d602fd8ab3870"/><file name="NoSuchDistributionException.php" hash="9ae49040ec2e2edd727602f6980dc685"/><file name="NoSuchInvalidationException.php" hash="7da1faa42d286d536feac45155267e51"/><file name="NoSuchOriginException.php" hash="5b35b829571f1999bcc7e565ef30698d"/><file name="NoSuchStreamingDistributionException.php" hash="645eeaeb9d90b5fff9292f12c9ae3bdc"/><file name="PreconditionFailedException.php" hash="42152d36e21dfe747281a7c858a51486"/><file name="StreamingDistributionAlreadyExistsException.php" hash="bc0b1ed3943a706b4d295c0194850ceb"/><file name="StreamingDistributionNotDisabledException.php" hash="3fc1a8ec0dbb390caf0c4ecbcf624a85"/><file name="TooManyCacheBehaviorsException.php" hash="7da5d049ce5ebb414100a1a6e5f6f63d"/><file name="TooManyCertificatesException.php" hash="9de72883ebc82430d9929cfe14d13941"/><file name="TooManyCloudFrontOriginAccessIdentitiesException.php" hash="4ecdbda99272c74d4fed210a208e271a"/><file name="TooManyCookieNamesInWhiteListException.php" hash="144be97dcb4b805e468143640a7cd7b3"/><file name="TooManyDistributionCNAMEsException.php" hash="a89ef05b8098ffb7680fefb0ea594edc"/><file name="TooManyDistributionsException.php" hash="54dee79c286c0aff8409ac5971e71511"/><file name="TooManyInvalidationsInProgressException.php" hash="eca63bd17aa8078e7ec2fb3005892ad3"/><file name="TooManyOriginsException.php" hash="a05117832ad5470e3463b3f1ef30836d"/><file name="TooManyStreamingDistributionCNAMEsException.php" hash="e60de7f873f70986dcd95b821eaf2a79"/><file name="TooManyStreamingDistributionsException.php" hash="ca8d40e2273ab45e658c83258d1e21bb"/><file name="TooManyTrustedSignersException.php" hash="ea330b820b574e48d2472eebbfd64a95"/><file name="TrustedSignerDoesNotExistException.php" hash="b3fbd3911bc8f06de92ff248b8555ace"/></dir><dir name="Resources"><file name="cloudfront-2012-05-05.php" hash="b41a6a6b93c7105c4ff2a3b68c4802eb"/><file name="cloudfront-2013-09-27.php" hash="0dbf58684f1572b08abb695a7aa72ccc"/></dir></dir><dir name="CloudSearch"><file name="CloudSearchClient.php" hash="ffaf08491ebe9a3ef110a776db3d2a96"/><dir name="Enum"><file name="IndexFieldType.php" hash="954e470184601c5b647ef9ffe38394fe"/><file name="OptionState.php" hash="873d197cdc4b981482af6eb9c0da02dd"/><file name="SearchInstanceType.php" hash="067a934719c5fcefdb2b517a47d9db30"/><file name="SourceDataFunction.php" hash="ef79db5b5c7ff675f73cd8dc100fe6d9"/></dir><dir name="Exception"><file name="BaseException.php" hash="6025fc0890fb9b17e6b7adf7dbb42552"/><file name="CloudSearchException.php" hash="919945b4b96b87794fa0a7f2b6318dea"/><file name="InternalException.php" hash="fc961cc6d81162dba3b37a722f7a1709"/><file name="InvalidTypeException.php" hash="53c50ecfb17a71464159d8a9025dbb71"/><file name="LimitExceededException.php" hash="ac9c9394e0b28d67c502d65948a62cf1"/><file name="ResourceNotFoundException.php" hash="87d148f4684efbc0cc02b3e9533976b2"/></dir><dir name="Resources"><file name="cloudsearch-2011-02-01.php" hash="daea426390f9d176c32f79039aa5d398"/></dir></dir><dir name="CloudTrail"><file name="CloudTrailClient.php" hash="2fe1022610b058f750c2cfc8ea118af4"/><dir name="Exception"><file name="CloudTrailException.php" hash="8a75973d86d0855f6e6b2bb1685e1462"/><file name="InsufficientS3BucketPolicyException.php" hash="b0aac7a0ed82e51852cc4c6307d6e53e"/><file name="InsufficientSnsTopicPolicyException.php" hash="78a6b11a206e25965849e56c4959e6af"/><file name="InternalErrorException.php" hash="4c71d8e6bab187298c133b43f6ac10ac"/><file name="InvalidS3BucketNameException.php" hash="85e39c99b2525f2ab6d635cf4c08f46c"/><file name="InvalidS3PrefixException.php" hash="edd298e7b57ec8d42799b6f9e76225ee"/><file name="InvalidSnsTopicNameException.php" hash="9938a7214ae144a0dc4c1aca2b5af604"/><file name="InvalidTrailNameException.php" hash="4610ee847751ee76907dd1bf886e1186"/><file name="MaximumNumberOfTrailsExceededException.php" hash="1316b0dfd83da0a63d74a4150438e0de"/><file name="S3BucketDoesNotExistException.php" hash="2888b061de5eff553e39f78db1066f22"/><file name="TrailAlreadyExistsException.php" hash="0ff52b891e5387a5d1ca681e3e2306e1"/><file name="TrailNotFoundException.php" hash="45f87e866a8b40c4bdd9134b0287315c"/><file name="TrailNotProvidedException.php" hash="6de0960e9cb0b78cbf45d36105608987"/></dir><file name="LogFileIterator.php" hash="f44b055697c19fbe75c66f78859ccc36"/><file name="LogFileReader.php" hash="70ba5d7a9a8a0fd2ec5e025d7f8fafaa"/><file name="LogRecordIterator.php" hash="16c1ed32677c0cbdf900405773f72b7c"/><dir name="Resources"><file name="cloudtrail-2013-11-01.php" hash="be59686cf569b9ea8d1b195c8b63e108"/></dir></dir><dir name="CloudWatch"><file name="CloudWatchClient.php" hash="74b6cb8c1e3555c6e7d2aa9c4a853b9b"/><dir name="Enum"><file name="ComparisonOperator.php" hash="f1307d70c8d1814bb2c10b8bbc7dd26f"/><file name="HistoryItemType.php" hash="e2a2aef1d5729c3370e946468281dacb"/><file name="StateValue.php" hash="1508461750cdc7e72edce23bde76cd62"/><file name="Statistic.php" hash="59865a4cbb6c5759a5419fcb906e1d7b"/><file name="Unit.php" hash="7ad2e966fe36dd6d8365552dade3b56f"/></dir><dir name="Exception"><file name="CloudWatchException.php" hash="fd032623bda661ba3a8de4ec8e8902da"/><file name="InternalServiceException.php" hash="fdb93f16efd4c480e6b8f92033e63602"/><file name="InvalidFormatException.php" hash="cfce3e07083461b30277388b43dfe176"/><file name="InvalidNextTokenException.php" hash="e4964db5ddb5e49b5f7ca723ddb6b3d0"/><file name="InvalidParameterCombinationException.php" hash="c023212218a22200def1783cc9b8c7e8"/><file name="InvalidParameterValueException.php" hash="e309374fa3fe547eb8ab6dbd629ba4fb"/><file name="LimitExceededException.php" hash="7216f2760155126c9119a2f273f983da"/><file name="MissingRequiredParameterException.php" hash="eafc7af2dcbb905b7508b368faac2b75"/><file name="ResourceNotFoundException.php" hash="e3c7322320db76b0c2264f640f9596a6"/></dir><dir name="Resources"><file name="cloudwatch-2010-08-01.php" hash="7d4deecad0728348c2c3d64f3bf9cedf"/></dir></dir><dir name="Common"><file name="Aws.php" hash="af81bf375ba1379d93ab612f7ea93cde"/><dir name="Client"><file name="AbstractClient.php" hash="cc01dcd9327a84606e8aeb402bdbc223"/><file name="AwsClientInterface.php" hash="b5549e525d4119198840bb2b34e79c67"/><file name="ClientBuilder.php" hash="81c9d06401700090d95b36c58f722b2d"/><file name="DefaultClient.php" hash="21d047c441a59ac2d146e520cb4c73ec"/><file name="ExpiredCredentialsChecker.php" hash="b75d82f1065d0ff5001c6588fff26ae2"/><file name="ThrottlingErrorChecker.php" hash="18150232988131e9f21e4724cfc35bbf"/><file name="UploadBodyListener.php" hash="7d6e8c6da0c89c7177740f3b950b6c79"/><file name="UserAgentListener.php" hash="98501807352bf33024e31b7fc6217c93"/></dir><dir name="Command"><file name="AwsQueryVisitor.php" hash="94799b1eb3ebd49ab60de7f8cefc96fe"/><file name="JsonCommand.php" hash="6bef8308125e047c4be353e04c067367"/><file name="QueryCommand.php" hash="47f1c01448de7d6c09671907bef5a5bc"/><file name="XmlResponseLocationVisitor.php" hash="457a7a69d3575bf45afc227ca0fd3948"/></dir><dir name="Credentials"><file name="AbstractCredentialsDecorator.php" hash="bce6a394352ce1162ed5d5a814a921e9"/><file name="AbstractRefreshableCredentials.php" hash="da6fb4894370252edf0280e09601a95d"/><file name="CacheableCredentials.php" hash="0a269b4ea676b1195f66fdddedd2ef80"/><file name="Credentials.php" hash="6e067728ac7cb2782ab299b50a8c038a"/><file name="CredentialsInterface.php" hash="93e9ebe9c22c382ea50b36951b978583"/><file name="RefreshableInstanceProfileCredentials.php" hash="0ce5d189a36a9a64c724c931af092b0b"/></dir><dir name="Enum"><file name="ClientOptions.php" hash="1dfcc9b655e60bb50acccead19e05e22"/><file name="DateFormat.php" hash="87412bee81bce129eacaedb580fcd464"/><file name="Region.php" hash="0ebf023da3afcbade51065c0bf246c46"/><file name="Size.php" hash="b92da9494098f83d94080c96979a3c06"/><file name="Time.php" hash="0701abe5acc45f6e9a897631b8b4cec2"/><file name="UaString.php" hash="0342531432bbafbfcf4cdb04156f8ebd"/></dir><file name="Enum.php" hash="6006719ac2eecfb5183d776634f2b2a5"/><dir name="Exception"><file name="AwsExceptionInterface.php" hash="b5e48ce90ddfd2b397fe1dfbabd2d3ca"/><file name="BadMethodCallException.php" hash="752cafcafecfd520e6ccfe01210a17c7"/><file name="DomainException.php" hash="1b1e3665960ce4fb9043df5c58553dd6"/><file name="ExceptionFactoryInterface.php" hash="ed60e5bba6ad952a2619613e194fb73c"/><file name="ExceptionListener.php" hash="2ca2ab488369e279da53a7b903fd557e"/><file name="InstanceProfileCredentialsException.php" hash="992185ed8296289a27b1b6497f306643"/><file name="InvalidArgumentException.php" hash="6400656e6a65bd523e37158ed71bd4c7"/><file name="LogicException.php" hash="d20e53d676891f9142be744f2aab2e6d"/><file name="MultipartUploadException.php" hash="3161352ca49918ea3783888aa8f0d7bb"/><file name="NamespaceExceptionFactory.php" hash="5fcea4d30864e65dbb0482a7ada2a42e"/><file name="OutOfBoundsException.php" hash="dabab81d1c1db56dcab8eeb513e18d5d"/><file name="OverflowException.php" hash="5a565642fb5379392dd5752c3adb16ad"/><dir name="Parser"><file name="AbstractJsonExceptionParser.php" hash="fcff52403d7baf7d5115ee56cb7b260d"/><file name="DefaultXmlExceptionParser.php" hash="7d4c376b203f91d7874e4172ffced216"/><file name="ExceptionParserInterface.php" hash="09a7643cba57df1eac684aaf13ee55a9"/><file name="JsonQueryExceptionParser.php" hash="55759b219a56dc9f57c96589c9d0413f"/><file name="JsonRestExceptionParser.php" hash="942c6b749df09392fb4e302bc9d0af8e"/></dir><file name="RequiredExtensionNotLoadedException.php" hash="2947ebcfe2e8e786b51abfa8a722e899"/><file name="RuntimeException.php" hash="6942bba7cab741eb2e5ce4d396a82095"/><file name="ServiceResponseException.php" hash="ae3e77cf14c093d89be1dec010939f91"/><file name="TransferException.php" hash="92ae697629eeff344aa6517b5bc45d40"/><file name="UnexpectedValueException.php" hash="830809ef2d18c043d65f182be99c07b9"/></dir><dir name="Facade"><file name="Facade.php" hash="72449a6ccfbd22ae3f927acbbec74e79"/><file name="FacadeInterface.php" hash="429e30061543660a46a819b74c034a94"/><file name="facade-classes.php" hash="647dc54366ac80fdd73d0e46f2630825"/></dir><dir name="Hash"><file name="ChunkHash.php" hash="31d493b2e4175c5964bb6f4da4e8cce2"/><file name="ChunkHashInterface.php" hash="d5e3f4e9cd7cdbccab266444d4a46b9a"/><file name="HashUtils.php" hash="a8138a20e9f3e3ca9f0a5e4991a1d348"/><file name="TreeHash.php" hash="e876a9bd16c09bb5f6116b3a05ea4da2"/></dir><file name="HostNameUtils.php" hash="ad3a7318c1be08a0b3d71caf6e62e395"/><dir name="InstanceMetadata"><file name="InstanceMetadataClient.php" hash="bd565975d0da1ed56726390ea606d128"/><dir name="Waiter"><file name="ServiceAvailable.php" hash="c1e9ef2e441a99fbf966313fd3beac0e"/></dir></dir><dir name="Iterator"><file name="AwsResourceIterator.php" hash="18ac3c1db4d5c35656c2863ececefc3f"/><file name="AwsResourceIteratorFactory.php" hash="fc7241565e4521b530e81f1737ff382e"/></dir><dir name="Model"><dir name="MultipartUpload"><file name="AbstractTransfer.php" hash="f00f833de3a6694a7758a79042cb2b8c"/><file name="AbstractTransferState.php" hash="f4391e22c27455420d9c85cbca4754e1"/><file name="AbstractUploadBuilder.php" hash="c5866f851ae8d004183b89f426f57a7e"/><file name="AbstractUploadId.php" hash="987faac50f83d46f2097737dc40052ec"/><file name="AbstractUploadPart.php" hash="5c5bbfb146b5297ff733b7ebb61cd106"/><file name="TransferInterface.php" hash="94130e826c600d19e974e269ee71065a"/><file name="TransferStateInterface.php" hash="7a52b1befbad56b3362315f92e0f31b8"/><file name="UploadIdInterface.php" hash="2705f41724fc5e736c802e323bdc0a2f"/><file name="UploadPartInterface.php" hash="13ae3e96adc690d71bdfde1bdf01c7f8"/></dir></dir><dir name="Resources"><file name="aws-config.php" hash="dc97faa44d59d25c4ca27535df7d0d2b"/><file name="sdk1-config.php" hash="e0b5e5dfab92d4e8d8945e553dec9e1b"/></dir><dir name="Signature"><file name="AbstractSignature.php" hash="e395a4bae5425c913b9419a522facca3"/><file name="EndpointSignatureInterface.php" hash="49198ab55607a67bb4fbd942d3d8db2e"/><file name="SignatureInterface.php" hash="bb1aec50aa114a7b7726e859a9799bfd"/><file name="SignatureListener.php" hash="65bb761a4ad2b106e631b27302574f4c"/><file name="SignatureV2.php" hash="e834b411ca36dfcec05ddeab43d45466"/><file name="SignatureV3.php" hash="339b4dc01ba603ec3f6fbcd5df11519a"/><file name="SignatureV3Https.php" hash="1ab04acc2d1ba8904078db75c61264ed"/><file name="SignatureV4.php" hash="4ae0bc69c88f84eae1facca61bdf66a0"/></dir><dir name="Waiter"><file name="AbstractResourceWaiter.php" hash="fb87fdb0773a67d0c4ea4741a3057974"/><file name="AbstractWaiter.php" hash="1fe7cf8dfd60c6c3f534f488d943160e"/><file name="CallableWaiter.php" hash="ab6554c8f0f6f94d2bd32979b137bbb3"/><file name="CompositeWaiterFactory.php" hash="73f2bab0a7aa293901dcd181498135f5"/><file name="ConfigResourceWaiter.php" hash="68faf7fde5fb769e3462b4d8e870da9e"/><file name="ResourceWaiterInterface.php" hash="da81827cec410feb30e367ae7efc62e5"/><file name="WaiterClassFactory.php" hash="97e1f94b23346b80b7f6ec5d8906ecec"/><file name="WaiterConfig.php" hash="a9048fb9d65c13ebbc33309550bd1f04"/><file name="WaiterConfigFactory.php" hash="ac6bd930f61ae6b6689edc78562778b3"/><file name="WaiterFactoryInterface.php" hash="34faa05c594295fbd9c7b6ae2349d16f"/><file name="WaiterInterface.php" hash="5a036a25e1c42c59b524cc4423ca394b"/></dir></dir><dir name="DataPipeline"><file name="DataPipelineClient.php" hash="21b577a534777ec9524ac85fe8eaab90"/><dir name="Enum"><file name="WorkStatus.php" hash="4c06b4fef52463def8d6728c8156fd97"/></dir><dir name="Exception"><file name="DataPipelineException.php" hash="cf0dc75d1e74605d52d12242a90a975d"/><file name="InternalServiceErrorException.php" hash="6bcc9c504f051791beb91a81980ae6b6"/><file name="InvalidRequestException.php" hash="6d8fb6c37905bc1e0e2827156e46dcc4"/><file name="PipelineDeletedException.php" hash="f44d4d4e25806273a1d317508d55df8d"/><file name="PipelineNotFoundException.php" hash="1757b8db2c721bebfd58b4d047fe3d49"/><file name="TaskNotFoundException.php" hash="b2349285d55929396296c9e72cb929ae"/></dir><dir name="Resources"><file name="datapipeline-2012-10-29.php" hash="93a01d0c063a019a981b635ee8cac047"/></dir></dir><dir name="DirectConnect"><file name="DirectConnectClient.php" hash="8dee058cb9fc78791921a6c28439d65d"/><dir name="Enum"><file name="ConnectionState.php" hash="82813d38bf95b7d3c38516321255b1d4"/><file name="InterconnectState.php" hash="3d42f8c2ef0c1ddae553e155be522eb6"/><file name="StepState.php" hash="c1e5ca484cb965ff1cd18865a56a17d7"/><file name="VirtualInterfaceState.php" hash="dce0f6d10216031f89cc4d0577b8ebef"/></dir><dir name="Exception"><file name="DirectConnectClientException.php" hash="824c303be6f859fe155b3bdc93f3b88d"/><file name="DirectConnectException.php" hash="ce83b52285a4e2a99da8c2e24c8c9f39"/><file name="DirectConnectServerException.php" hash="e40e0431f0c3fc541da5a4e6d826f2b1"/></dir><dir name="Resources"><file name="directconnect-2012-10-25.php" hash="be3dcab53745ec3e33c62094a1a3e530"/></dir></dir><dir name="DynamoDb"><file name="Crc32ErrorChecker.php" hash="2e24b60db9278fb1f3d4e7c4606aade6"/><file name="DynamoDbClient.php" hash="8635f4278009e71a5ba180da5951bff6"/><dir name="Enum"><file name="AttributeAction.php" hash="4fe32b490230d31057180c1eea0dc95e"/><file name="AttributeType.php" hash="f54ecaac0c36aa38a20330cfb317a75b"/><file name="ComparisonOperator.php" hash="7c7229a71fc92c6032de065fee764067"/><file name="IndexStatus.php" hash="af25dbf1143f6893663330bf937f54a8"/><file name="KeyType.php" hash="190f3badb2e1e66dcfdacf13c4c3c218"/><file name="ProjectionType.php" hash="a461f06f98352cb707f3de50aac8f7cc"/><file name="ReturnConsumedCapacity.php" hash="ea22c4392730241cf5ef4bfe7ed8e028"/><file name="ReturnItemCollectionMetrics.php" hash="3b56a00a778973f42957ac8e2c00ffba"/><file name="ReturnValue.php" hash="04d0dc61a600f2da43384e2c946c98ee"/><file name="ScalarAttributeType.php" hash="af5e09bb4ec8f3389e39420418917e22"/><file name="Select.php" hash="1bbf13ed269b05d483a91b52460e6faf"/><file name="TableStatus.php" hash="3d967da23a64c97b6035ae0154ac649c"/><file name="Type.php" hash="74926e33df7334ea48c5596bba4f697a"/></dir><dir name="Exception"><file name="AccessDeniedException.php" hash="0927b6721261886710ddf4e7aa0762a8"/><file name="ConditionalCheckFailedException.php" hash="a8104924c2bc22817aa54d91888ba7eb"/><file name="DynamoDbException.php" hash="4a06fe9b3f69c80c962711cda55cce2a"/><file name="IncompleteSignatureException.php" hash="edec35e7a549e4131009c001f80d3880"/><file name="InternalFailureException.php" hash="63ce838deafcf7da6c2d2bd05de27cea"/><file name="InternalServerErrorException.php" hash="c48565b7b423404dd81c04514e170374"/><file name="ItemCollectionSizeLimitExceededException.php" hash="8e148af1826bef2216bcc2e33bbfcadd"/><file name="LimitExceededException.php" hash="1262864749b109d0a83697f83ac43197"/><file name="MissingAuthenticationTokenException.php" hash="c4231c1d027ea62155db847fc077ced0"/><file name="ProvisionedThroughputExceededException.php" hash="929a7c0eaa1f568563c0b6d4f816a389"/><file name="ResourceInUseException.php" hash="93032fb4364792ca509882fc7065f42c"/><file name="ResourceNotFoundException.php" hash="939d005bc3f093965d3ea42e5cd746a7"/><file name="ServiceUnavailableException.php" hash="ed40330e3802de6ee1a6216bd6a78e4a"/><file name="ThrottlingException.php" hash="8083cca78079cf22237f0c7bd4cd27d0"/><file name="UnprocessedWriteRequestsException.php" hash="d6b6898e4e7c8c0e4652453948e98775"/><file name="UnrecognizedClientException.php" hash="ee3dde1fceee1a87bf6727ac02f93d16"/><file name="ValidationException.php" hash="26f5860bf1a8807607d7504ae348fd3d"/></dir><dir name="Iterator"><file name="ItemIterator.php" hash="4e8ab1a13263afadb52f9bd81a7424c2"/><file name="ScanIterator.php" hash="02cf978f0d2c423176f4d57b6fe294ca"/></dir><dir name="Model"><file name="Attribute.php" hash="4ecfccd3439ce5817f9dd02b9dfd5a2e"/><dir name="BatchRequest"><file name="AbstractWriteRequest.php" hash="8326d4829afb578ab3688d2e3401333c"/><file name="DeleteRequest.php" hash="b4ce7b754f597f1d26a1045da2bf0b1c"/><file name="PutRequest.php" hash="e3027928d8a84ef771a879c81565c54b"/><file name="UnprocessedRequest.php" hash="eb062503a06657b62c9c3bc286944a75"/><file name="WriteRequestBatch.php" hash="f171c7a555c4d59fffcac3ce662cd31b"/><file name="WriteRequestBatchTransfer.php" hash="020ecc3de51cef0e69618d6252567d8d"/><file name="WriteRequestInterface.php" hash="940271d671e8d64d32d2a5f6a4ce4f98"/></dir><file name="Item.php" hash="e619e06ef3a2c399608643005803ed85"/></dir><dir name="Resources"><file name="dynamodb-2011-12-05.php" hash="2710044894d59900e585a3f1498a79f0"/><file name="dynamodb-2012-08-10.php" hash="d2da1b6956474a39cf6ae1d615d2c75c"/></dir><dir name="Session"><dir name="LockingStrategy"><file name="AbstractLockingStrategy.php" hash="0ff0909551380a3f96483ce1d9210052"/><file name="LockingStrategyFactory.php" hash="92a937a1c67d3e92943f8e6ec4382dbf"/><file name="LockingStrategyFactoryInterface.php" hash="df81c5776e5921285567f4664b0a2024"/><file name="LockingStrategyInterface.php" hash="d7204f72398e69059872e64b62506ccc"/><file name="NullLockingStrategy.php" hash="11998ec67cdf77aa6c5b06759bacd40c"/><file name="PessimisticLockingStrategy.php" hash="fcd13966adda98a2f35d357a66549f6a"/></dir><file name="SessionHandler.php" hash="91f437be9e5dd8bf7c18537056510b4d"/><file name="SessionHandlerConfig.php" hash="f5f3b0ec2f4c6ca24f571ebf4ed5c337"/><file name="SessionHandlerInterface.php" hash="e24a29b472fb95ff6f515184ed1b2c52"/></dir></dir><dir name="Ec2"><file name="Ec2Client.php" hash="ea925d1284a6bb48ee3b85dc6b8eefe0"/><dir name="Enum"><file name="ContainerFormat.php" hash="ed24f4a8e0c99ec757fb222f98d4786d"/><file name="DiskImageFormat.php" hash="4afc92337b9b886f9827f17ee4e9b0ff"/><file name="DomainType.php" hash="b34bcf5eb0e2c516cc97be38bee40925"/><file name="ExportEnvironment.php" hash="03d4b7d3f01a4df5d84007e64ce39539"/><file name="HypervisorType.php" hash="1cad8e0fee3d957f5471e6846b350c26"/><file name="ImageState.php" hash="48aa98fabd24eb293e65c61e60285dda"/><file name="InstanceAttributeName.php" hash="7e994dde76cb9e27f8cb6244a7427611"/><file name="InstanceStateName.php" hash="3a790ea66dc25bbed4769f0ee6993b15"/><file name="InstanceType.php" hash="64eb35dce30a1bc645414d3259497d77"/><file name="PlacementGroupState.php" hash="9ad802b9c5c0a62f1735eb4403430ca4"/><file name="PlacementStrategy.php" hash="966348d650852d0affc515cc42922df2"/><file name="ResourceType.php" hash="b217494404182a97645d3dab77e8afcc"/><file name="RuleAction.php" hash="4fd615346f2ed9eb1715c6bcee1e5e5b"/><file name="SnapshotAttributeName.php" hash="bdf788468fcac3b3a441a4f0131cda6a"/><file name="SnapshotState.php" hash="40159815b2619121cf8d04ee19820eba"/><file name="SpotInstanceType.php" hash="8731d934503f291f335432455a637eb5"/><file name="VirtualizationType.php" hash="dae236d113cc7e18a0b1feba59546fea"/><file name="VolumeAttachmentState.php" hash="715d5189cc42b629cbd203e98d0ce8c4"/><file name="VolumeAttributeName.php" hash="635938967abed8bbeda2a915c3400809"/><file name="VolumeState.php" hash="148512765597c824ac7f61a097ae70bb"/><file name="VolumeType.php" hash="ed10dd06ee3a71ccb849874c65c928f6"/><file name="VpcAttributeName.php" hash="a2fd03051235f9a8e8f0ef051e34d711"/></dir><dir name="Exception"><file name="Ec2Exception.php" hash="62ee2dc40c5010a08f3e622a85869722"/></dir><dir name="Iterator"><file name="DescribeInstancesIterator.php" hash="76f3dce41115ec02d2ee145dfe885c26"/></dir><dir name="Resources"><file name="ec2-2013-10-15.php" hash="d3a3d0f378823bd3740416b99bd17d5e"/></dir></dir><dir name="ElastiCache"><file name="ElastiCacheClient.php" hash="d6ca66bfec7cd0fd351038519a01b5f1"/><dir name="Enum"><file name="SourceType.php" hash="115b6aebca4bf87b123e01c8ff8f24f8"/></dir><dir name="Exception"><file name="AuthorizationAlreadyExistsException.php" hash="21e504b9e7f836f0b2c0ff72c161a3a3"/><file name="AuthorizationNotFoundException.php" hash="a5e02559299e09210676a953110a33bf"/><file name="CacheClusterAlreadyExistsException.php" hash="c25c43902f4ba4186b322e01c80c6b82"/><file name="CacheClusterNotFoundException.php" hash="82190202843e63734ba8ef1ba394a5be"/><file name="CacheParameterGroupAlreadyExistsException.php" hash="fd24c3d68a39aa4641a637fd808de4d4"/><file name="CacheParameterGroupNotFoundException.php" hash="ca6463ae76170cecd82daf6061ab20d5"/><file name="CacheParameterGroupQuotaExceededException.php" hash="c93c90abdc4f535d59f8d01ad90f1d40"/><file name="CacheSecurityGroupAlreadyExistsException.php" hash="59d08e4224c1a793a0b328aeced5f794"/><file name="CacheSecurityGroupNotFoundException.php" hash="1ccda66732cad00372be8d5e36e2adbe"/><file name="CacheSecurityGroupQuotaExceededException.php" hash="877ede3cf5bd8e40776cee03231852a4"/><file name="CacheSubnetGroupAlreadyExistsException.php" hash="c6e393fc9a4fa2a36e660511af4d3706"/><file name="CacheSubnetGroupInUseException.php" hash="9f6a2310c31b66f5d83a1843abfd802f"/><file name="CacheSubnetGroupNotFoundException.php" hash="9463754bd9d0fbd166dc4b6bd961cd71"/><file name="CacheSubnetGroupQuotaExceededException.php" hash="f676b0b2ec61855f0398f535416b3fe1"/><file name="CacheSubnetQuotaExceededException.php" hash="63a14141744fa66e0a0a69b9c081e28a"/><file name="ClusterQuotaForCustomerExceededException.php" hash="77627c0471b2708e68e9e8860638870b"/><file name="ElastiCacheException.php" hash="5aa6c73aa0c85df1edc5158e8613c56a"/><file name="InsufficientCacheClusterCapacityException.php" hash="c6f6d51a7a32fe4a5e09e29597127364"/><file name="InvalidCacheClusterStateException.php" hash="318e8f473ff95ea2ac20ad320e7c1971"/><file name="InvalidCacheParameterGroupStateException.php" hash="61d6ec9dbacfddde6dfa4156892ca675"/><file name="InvalidCacheSecurityGroupStateException.php" hash="39ad8e3e4323e35d812cf62ef095ceb8"/><file name="InvalidParameterCombinationException.php" hash="bd8ada3e0f3152e08ae1e647de1ef542"/><file name="InvalidParameterValueException.php" hash="2451add8d8f33cd5a002060e9f3e2835"/><file name="InvalidReplicationGroupStateException.php" hash="2fce45c79f7d4a5f14e1f16ad5d754cb"/><file name="InvalidSubnetException.php" hash="11c7bb2eaf03cb8193ace75f76798b25"/><file name="InvalidVPCNetworkStateException.php" hash="26ac0d4d4f2f1dd2e99a0e2a16ff72a0"/><file name="NodeQuotaForClusterExceededException.php" hash="77379a822d5ae295546afffb6f37c353"/><file name="NodeQuotaForCustomerExceededException.php" hash="c730d31717719ed395b3946624a7d966"/><file name="ReplicationGroupAlreadyExistsException.php" hash="ddfcacb215911d76dae186d5e9691167"/><file name="ReplicationGroupNotFoundException.php" hash="e5d0130edc605f109657fdd0e4e8d36a"/><file name="ReservedCacheNodeAlreadyExistsException.php" hash="ba9e965c9707ce3aa9446b53bc2d075f"/><file name="ReservedCacheNodeNotFoundException.php" hash="e8b182a07643ffc04fff9166a3ad9b9b"/><file name="ReservedCacheNodeQuotaExceededException.php" hash="65db6e650fb941814b8f34e60bbcae93"/><file name="ReservedCacheNodesOfferingNotFoundException.php" hash="3cf2ec1dde57680e084c72aa846c32c6"/><file name="SubnetInUseException.php" hash="5f6a50579d69da727e3bf85adcfbaf4f"/></dir><dir name="Resources"><file name="elasticache-2013-06-15.php" hash="ee9e16d07cf21c34241bece85de6e965"/></dir></dir><dir name="ElasticBeanstalk"><file name="ElasticBeanstalkClient.php" hash="20f74c453aa832d49913b61eb3731ee4"/><dir name="Enum"><file name="ConfigurationDeploymentStatus.php" hash="084ddac120d09f4eab64710c88a89800"/><file name="ConfigurationOptionValueType.php" hash="975b62971fe9249c0cf73eb490c09902"/><file name="EnvironmentHealth.php" hash="4a55eacfb07c45fdbff0b98a50118794"/><file name="EnvironmentInfoType.php" hash="fadc42788f6b465409b946e74707569c"/><file name="EnvironmentStatus.php" hash="df1f7c4ba4c6e524aba08984b5a96a82"/><file name="EventSeverity.php" hash="b0f8d4bb831e2dd754f6045b5c94581c"/><file name="ValidationSeverity.php" hash="f02229788c335e8c249918b13e4e9524"/></dir><dir name="Exception"><file name="ElasticBeanstalkException.php" hash="a4a8d318c03943026492ceb31514ce7d"/><file name="InsufficientPrivilegesException.php" hash="c86a85458785953e1b23a1cde09cd9d8"/><file name="OperationInProgressException.php" hash="923588486916af4c1a9d149747c6fe17"/><file name="S3LocationNotInServiceRegionException.php" hash="75883b5ae0176c98c0ed70921a32dc80"/><file name="S3SubscriptionRequiredException.php" hash="0ec8ab059187e734696a88f1f1642cef"/><file name="SourceBundleDeletionException.php" hash="194fc4adde07b7ab54ef290f0aaa2a7e"/><file name="TooManyApplicationVersionsException.php" hash="1d6496349065b33d0317c43e40a6a525"/><file name="TooManyApplicationsException.php" hash="3fe13576abfbb3e3d20598927a417e6d"/><file name="TooManyBucketsException.php" hash="b402073e03caeaca677ddc56f2b89b39"/><file name="TooManyConfigurationTemplatesException.php" hash="d3058cd107f406cf2bf3b05c11513462"/><file name="TooManyEnvironmentsException.php" hash="3176ee87e0d8021e193f85469414f17d"/></dir><dir name="Resources"><file name="elasticbeanstalk-2010-12-01.php" hash="bd8c3992d058f9d6117bf4980df91faa"/></dir></dir><dir name="ElasticLoadBalancing"><file name="ElasticLoadBalancingClient.php" hash="ca59f97f28691979be22e7c7e1b44982"/><dir name="Exception"><file name="AccessPointNotFoundException.php" hash="05071f6051e15d8318355b0794a9dd1e"/><file name="CertificateNotFoundException.php" hash="7a9dd18eeaa2aaf9ac844d2005577993"/><file name="DuplicateAccessPointNameException.php" hash="6c9774b220387b23f5d9413197457ce4"/><file name="DuplicateListenerException.php" hash="6089ef1c0edbadd544eca765a5df7c49"/><file name="DuplicatePolicyNameException.php" hash="4e65421810ac6b692a4e9c385dbf8b10"/><file name="ElasticLoadBalancingException.php" hash="3b8eaa1ef219c403b75d887c6fcf9a9f"/><file name="InvalidConfigurationRequestException.php" hash="df6a12538f70e02044149bec3c58d6f1"/><file name="InvalidEndPointException.php" hash="6ea1a3622cb1d25d2dbbe0394c4b5de2"/><file name="InvalidSchemeException.php" hash="e8ffed1df93368e4de833590688bcee4"/><file name="InvalidSecurityGroupException.php" hash="cce0bdbeee5b3c69adf79f41a647ff2f"/><file name="InvalidSubnetException.php" hash="2b4492a6c075d2b0da9391d9dbff54f4"/><file name="ListenerNotFoundException.php" hash="de0d205c1cafac341936ae6065ef84bd"/><file name="LoadBalancerAttributeNotFoundException.php" hash="243a7bb3caf9180d313a91e7c84809b6"/><file name="PolicyNotFoundException.php" hash="a1878afe8404f41525177bd5fd6b6cc8"/><file name="PolicyTypeNotFoundException.php" hash="9f35549594a24267a531311b937a3555"/><file name="SubnetNotFoundException.php" hash="e125719fc95081ee80730f3904b183c7"/><file name="TooManyAccessPointsException.php" hash="7edb845728a203fe6c2403c77805567a"/><file name="TooManyPoliciesException.php" hash="7b041ef30bec8614c17a8071710c7f1c"/></dir><dir name="Resources"><file name="elasticloadbalancing-2012-06-01.php" hash="f93ce11a5c23253b12d838611f093f45"/></dir></dir><dir name="ElasticTranscoder"><file name="ElasticTranscoderClient.php" hash="4d13e535302710b2b72ee0e3ffef7b49"/><dir name="Exception"><file name="AccessDeniedException.php" hash="d8d758ef18d17ad9756612a30735ba53"/><file name="ElasticTranscoderException.php" hash="c82a45c9c18b3529dca6bd2d3f0ca6e4"/><file name="IncompatibleVersionException.php" hash="808faec7d50f265050ad7414212e8229"/><file name="InternalServiceException.php" hash="550b4e6f16f6d8a241c4c0763b81da5f"/><file name="LimitExceededException.php" hash="0af29b1fc2a1f7da7c01fce037d9f25c"/><file name="ResourceInUseException.php" hash="b08c18448cbcab3526962f82b74c5ece"/><file name="ResourceNotFoundException.php" hash="9811281d1dc85134a5d36596c9f60d17"/><file name="ValidationException.php" hash="3c439ebac5c8cce30a6df9a908bd9192"/></dir><dir name="Resources"><file name="elastictranscoder-2012-09-25.php" hash="5248a8ed57bf2f3e475941ee99e82957"/></dir></dir><dir name="Emr"><file name="EmrClient.php" hash="b6bc7ac614bebdafd8b8905cb1ffdb68"/><dir name="Enum"><file name="ActionOnFailure.php" hash="90a3368d05d9c947a743b6e326398db0"/><file name="ClusterState.php" hash="43e98595cd7eccd0d9760dcee4f9401f"/><file name="ClusterStateChangeReasonCode.php" hash="2022d285e42729a667b96d9d270237c5"/><file name="InstanceGroupState.php" hash="a3a213c7607430a22e509d22952218ce"/><file name="InstanceGroupStateChangeReasonCode.php" hash="9e4488974df626ede33665815c84634b"/><file name="InstanceGroupType.php" hash="6b2698140ba7c3ec2ac3d27917eb8785"/><file name="InstanceRoleType.php" hash="ab7220643f81d7bac60584c463f8510e"/><file name="InstanceState.php" hash="3081093592df41be7cf775d33fc83448"/><file name="InstanceStateChangeReasonCode.php" hash="da34270d02922f21abbe6e394eca03af"/><file name="JobFlowExecutionState.php" hash="c7bc8356aab0be524defa38ac62e3d1d"/><file name="MarketType.php" hash="7f135081488c2374dfa72716992b19b9"/><file name="StepExecutionState.php" hash="800801721ae16f53ca83222a2fdf6a78"/><file name="StepState.php" hash="9ed3012916b6c5147a25f4bfa70021a9"/><file name="StepStateChangeReasonCode.php" hash="7ab1f8494a346a25ddbeab0bf22b98eb"/></dir><dir name="Exception"><file name="EmrException.php" hash="fdeb31733b03b1d981a9f93a5ccd37b9"/><file name="InternalServerErrorException.php" hash="472ca1648da9957b3fa88baa8dc9fefd"/><file name="InternalServerException.php" hash="0e1d0468d26322c24637b701a69fea87"/><file name="InvalidRequestException.php" hash="f4461933899ce1512b024d8fee1c78e6"/></dir><dir name="Resources"><file name="emr-2009-03-31.php" hash="180719640e0e163ee703c45fe618c6a5"/></dir></dir><dir name="Glacier"><dir name="Enum"><file name="Action.php" hash="85f4981c556299658edb3e9b244ddc1c"/><file name="ActionCode.php" hash="8ca169d71c6085f4348b786f86ad74c0"/><file name="StatusCode.php" hash="91cd78cd13068bef5a162089bc1ee42f"/></dir><dir name="Exception"><file name="GlacierException.php" hash="30b98e04728dc38c1d78ab5df0f01208"/><file name="InvalidParameterValueException.php" hash="ee0a2c8b584dea4c871965c66c2aebf0"/><file name="LimitExceededException.php" hash="0571d505d9e0546e098958202ad2f4a4"/><file name="MissingParameterValueException.php" hash="2f02824463026f15329bcb6c9564fbdd"/><file name="RequestTimeoutException.php" hash="c4e3c975633f6fdebe1c61e458726a10"/><file name="ResourceNotFoundException.php" hash="7c0036cbe45eb98a3cf7bdb3d949ee3f"/><file name="ServiceUnavailableException.php" hash="5a296af4f334d246fc45d0cc812e0c59"/></dir><file name="GlacierClient.php" hash="8d52372f349380eb2369ab6039ef83fe"/><file name="GlacierUploadListener.php" hash="19e03c7b50c4ff37d67cdeb94e1a14b4"/><dir name="Model"><dir name="MultipartUpload"><file name="AbstractTransfer.php" hash="c3381be176dd88aaa906a639a6fde0d4"/><file name="ParallelTransfer.php" hash="92dc62bcee6cbcdcaaf39acf431e2114"/><file name="SerialTransfer.php" hash="331a89bb71e820cc7aaecfdd20b12418"/><file name="TransferState.php" hash="af8aabe8abcdc55ad00de3ac094088a7"/><file name="UploadBuilder.php" hash="8462dfca22b04fc695a73a7d8815c4de"/><file name="UploadId.php" hash="f5189bec7825b8d0031dd64eb988ebf5"/><file name="UploadPart.php" hash="fec1ceb347d00b1706b85a87068b780f"/><file name="UploadPartContext.php" hash="a45cb082db0f327419d7c179e53d57be"/><file name="UploadPartGenerator.php" hash="d7b83fc492d67d84499165acff72c2ea"/></dir></dir><dir name="Resources"><file name="glacier-2012-06-01.php" hash="7fe7d51325b3c1f8f06bccff25791b73"/></dir></dir><dir name="Iam"><dir name="Enum"><file name="AssignmentStatusType.php" hash="ae0f41c53b1c56824d75eb333e19a85a"/><file name="StatusType.php" hash="a93bd6a9869a9b5aa4f7a94068270f4d"/></dir><dir name="Exception"><file name="DeleteConflictException.php" hash="48b4e522cae6109dffb4f26a05fb766f"/><file name="DuplicateCertificateException.php" hash="0d2fec540fdb38a279159b2bc825b721"/><file name="EntityAlreadyExistsException.php" hash="7dfe46fb65b928ebd9fb2c90f75338cc"/><file name="EntityTemporarilyUnmodifiableException.php" hash="d2800e6bdc1d684d1ee3ff38dc1fd336"/><file name="IamException.php" hash="364d247c36655d55c1af15c59baa0d2a"/><file name="InvalidAuthenticationCodeException.php" hash="b160209f5210bfe18472eda8b0ac7492"/><file name="InvalidCertificateException.php" hash="92704012d2921797ff2087e42f17fab9"/><file name="InvalidInputException.php" hash="daea6e91cde8b03a4b69cc0189a0368b"/><file name="InvalidUserTypeException.php" hash="76b7086631b8fb7c1f3279da1feb113e"/><file name="KeyPairMismatchException.php" hash="bd22710b1e3dcbe0a64902f54a3a4163"/><file name="LimitExceededException.php" hash="2e17c2780c8fd635469de3014ea37842"/><file name="MalformedCertificateException.php" hash="2b38f99955a913c63356c0edda5a2c3d"/><file name="MalformedPolicyDocumentException.php" hash="89c2ff535598e5940dd18ca66c7a385c"/><file name="NoSuchEntityException.php" hash="478062e9964d02dbaadb386ebe423436"/><file name="PasswordPolicyViolationException.php" hash="bbee10470d4d8c2ee03ed7e7f6205e68"/></dir><file name="IamClient.php" hash="9658c8829c4f43b09b6f77fabb616b8a"/><dir name="Resources"><file name="iam-2010-05-08.php" hash="7355ec47bb805cdfbf37bd6456ed1867"/></dir></dir><dir name="ImportExport"><dir name="Enum"><file name="JobType.php" hash="9ee43f6c4cacedda141e5de2e1784866"/></dir><dir name="Exception"><file name="BucketPermissionException.php" hash="032796167d1ce35fcd0e99f587955daa"/><file name="CanceledJobIdException.php" hash="2fc2db1e09acec07edb2db7ddbecb1bd"/><file name="ExpiredJobIdException.php" hash="d4c2c7d73d37d73e909db1bfbbef75b8"/><file name="ImportExportException.php" hash="95e9b9d2b5341524d7085bf23c706436"/><file name="InvalidAccessKeyIdException.php" hash="f3adb212bf4be9951d3de8dfad876349"/><file name="InvalidAddressException.php" hash="3daf811eba38bfdc14d15c61e07ec650"/><file name="InvalidCustomsException.php" hash="33a2a444377461a8d488ee5aeb706dbb"/><file name="InvalidFileSystemException.php" hash="6b13609070c971046937178bae5a8366"/><file name="InvalidJobIdException.php" hash="b794f4a283df4739c61fdddcfb69da8f"/><file name="InvalidManifestFieldException.php" hash="250762db398e1a31e65e7f6a059a877c"/><file name="InvalidParameterException.php" hash="d3708b1f5798200dbe27891faa27362f"/><file name="MalformedManifestException.php" hash="9773d5c2cf3459a125c224083aec7028"/><file name="MissingCustomsException.php" hash="808eaf466f96f81b25999988bdd45b8c"/><file name="MissingManifestFieldException.php" hash="d5b83f7cdbcad0687e91efaf1c8019ad"/><file name="MissingParameterException.php" hash="449ce097415b119eb4535bd803828f11"/><file name="MultipleRegionsException.php" hash="a75d56cfbf9198c1f891c833c1d0f782"/><file name="NoSuchBucketException.php" hash="309718b6810d12b7ddf57e8ac863c2d1"/><file name="UnableToCancelJobIdException.php" hash="ff839a2502867b9d6499df705ac36e58"/></dir><file name="ImportExportClient.php" hash="0e52be29513def74a9d97e37c67ae46d"/><dir name="Iterator"><file name="ListJobsIterator.php" hash="083bc7183866d156fcf5cdd825782358"/></dir><file name="JobManifestListener.php" hash="1ce807cef032bb60c92283b8ec453db7"/><dir name="Resources"><file name="importexport-2010-06-01.php" hash="8408fcef53ba78a7809c0b951e13dde5"/></dir></dir><dir name="Kinesis"><dir name="Enum"><file name="ShardIteratorType.php" hash="3c4153fd8560cd4a48e8b77c28188d7d"/><file name="StreamStatus.php" hash="695b490b91bc7a07cf64ab007b513ae5"/></dir><dir name="Exception"><file name="ExpiredIteratorException.php" hash="65bbfd88ee41a6d7b31bd5755007375e"/><file name="InvalidArgumentException.php" hash="b1f3d5da8197c70e1a01cbeb451f68da"/><file name="KinesisException.php" hash="6ab40f7d2a62c49a57fb78000c31494c"/><file name="LimitExceededException.php" hash="cbb21ea005851ffb938a6e3920914ad1"/><file name="ProvisionedThroughputExceededException.php" hash="1877b495dc6b5c1c7d70e9ff2cebdf92"/><file name="ResourceInUseException.php" hash="d3ed3198d9e6bcf403015cb6be742ed6"/><file name="ResourceNotFoundException.php" hash="5dcdeddf6500a925518218a2cf9f1210"/></dir><file name="KinesisClient.php" hash="5b3c98f93f97572e661f401c7f564e55"/><dir name="Resources"><file name="kinesis-2013-12-02.php" hash="a627dcbe5e4d1f49486fa02217cd5282"/></dir></dir><file name="LICENSE.md" hash="4a1986582bd12f9aea2aec46b81e0413"/><file name="NOTICE.md" hash="1cfe4eba1519b5c323896290f9fb8264"/><dir name="OpsWorks"><dir name="Enum"><file name="AppType.php" hash="848754a43f52b49d5b8851f434686b2d"/><file name="Architecture.php" hash="b7943c3aab8cc7bf2f342bfe5ae222fb"/><file name="AutoScalingType.php" hash="2b82e58bbbd16de1690363870a727c11"/><file name="DeploymentCommandName.php" hash="ca5c24a782e9870ead21f3fb8d431ee4"/><file name="LayerType.php" hash="397cb95f8edadd101bcd96862cfa5ba4"/><file name="PermissionLevel.php" hash="f845a186d2c6190aafa9881e7dbacff6"/><file name="RootDeviceType.php" hash="9f2590884c5c082a0528cd3217f0ecdf"/><file name="SourceType.php" hash="38ad7c76ac4c1b5b7623ab7624641ed8"/></dir><dir name="Exception"><file name="OpsWorksException.php" hash="84c6ce5f9efb83514c570fa2f3d04ced"/><file name="ResourceNotFoundException.php" hash="d9c3fcdbb6bfd95dc1b2d700d5170d9e"/><file name="ValidationException.php" hash="409fac0a0b9698a111173e52945a2c29"/></dir><file name="OpsWorksClient.php" hash="a37b337290f20e3be6e97f718c95db6e"/><dir name="Resources"><file name="opsworks-2013-02-18.php" hash="cf459cd3ed180ad6e380d4d235e739dd"/></dir></dir><dir name="Rds"><dir name="Enum"><file name="ApplyMethod.php" hash="19d2277f49a3afacd09834be3fd383c6"/><file name="SourceType.php" hash="c7bcd8f273ae15e3846fa359a73a2ef2"/></dir><dir name="Exception"><file name="AuthorizationAlreadyExistsException.php" hash="376a02ba026367796ce7febadfb30154"/><file name="AuthorizationNotFoundException.php" hash="663ab5eeed0cf4a060cbe65c5bb8e468"/><file name="AuthorizationQuotaExceededException.php" hash="67670ddd9bd940dbb382ea6cb66445b5"/><file name="DBInstanceAlreadyExistsException.php" hash="6e0f8c962260f2b3f20d794107e9f30b"/><file name="DBInstanceNotFoundException.php" hash="d9aa20a94517c46eb9a0d7755462375c"/><file name="DBParameterGroupAlreadyExistsException.php" hash="ae6928b2e01ff2519910251fb9cf5370"/><file name="DBParameterGroupNotFoundException.php" hash="400380e2390c7566e0fc20b460e815d5"/><file name="DBParameterGroupQuotaExceededException.php" hash="e689ae46b501bc47971872e901530c3b"/><file name="DBSecurityGroupAlreadyExistsException.php" hash="2e2207e47b443f0eb9d7dbd2f0078f42"/><file name="DBSecurityGroupNotFoundException.php" hash="f5c1ac583052a0000b9d777f66dbaaeb"/><file name="DBSecurityGroupNotSupportedException.php" hash="384d9d2f530a26c024d6b451f67a7ab2"/><file name="DBSecurityGroupQuotaExceededException.php" hash="dac6d4ed2abd2cc5cefadcb845710771"/><file name="DBSnapshotAlreadyExistsException.php" hash="dd3697b90b31eb425de32c8bba304822"/><file name="DBSnapshotNotFoundException.php" hash="15478e6df9db7de4365ad0a9d65781b4"/><file name="DBSubnetGroupAlreadyExistsException.php" hash="e29dd75de38209c79ccc5a01891b14fb"/><file name="DBSubnetGroupDoesNotCoverEnoughAZsException.php" hash="837c8369ca8284f002f02b8d23d263c4"/><file name="DBSubnetGroupNotAllowedException.php" hash="e905a5e8fe25729b25e5e14d5c375f7f"/><file name="DBSubnetGroupNotFoundException.php" hash="9968a5c63401216dab0ba464e7250e2f"/><file name="DBSubnetGroupQuotaExceededException.php" hash="2ac07228373140af8e74a894071c2748"/><file name="DBSubnetQuotaExceededException.php" hash="8b49e7b532f25181597419d14aff04e8"/><file name="DBUpgradeDependencyFailureException.php" hash="4055c4be60a51c7884f6ed9f3caee896"/><file name="EventSubscriptionQuotaExceededException.php" hash="1bc4e249b7d07faa9982e8731308d50d"/><file name="InstanceQuotaExceededException.php" hash="ce8c66605f2f208c726f61c71443476c"/><file name="InsufficientDBInstanceCapacityException.php" hash="2c4f159567b46ca2dee7c2e38e39463a"/><file name="InvalidDBInstanceStateException.php" hash="4936b33eeea183771a7a7dfc38a7ba69"/><file name="InvalidDBParameterGroupStateException.php" hash="aa9b329905ab674a40f643dd2153bfc6"/><file name="InvalidDBSecurityGroupStateException.php" hash="96404be7270254ea6cab55d4b2801ede"/><file name="InvalidDBSnapshotStateException.php" hash="4e2b7291358921d0fdb6f4d661bdb0bd"/><file name="InvalidDBSubnetGroupException.php" hash="4f6cfca2c69f05b1ebc3a8878bcc0644"/><file name="InvalidDBSubnetGroupStateException.php" hash="84a3e9a927f6bab25dbe557a5b5b5f08"/><file name="InvalidDBSubnetStateException.php" hash="c0081ece1a9b6fc8a2f56cd8e0d86323"/><file name="InvalidEventSubscriptionStateException.php" hash="f92aff57ef0f2a53c4cce1409b0505fc"/><file name="InvalidOptionGroupStateException.php" hash="4d50021a54c9a6cc31254be93952a557"/><file name="InvalidRestoreException.php" hash="dc631f1639dc1eda32cb468cfc8b92d8"/><file name="InvalidSubnetException.php" hash="d62dc4845b8e67ea0cceac41a9aaf60e"/><file name="InvalidVPCNetworkStateException.php" hash="a1eb52983f8a9661e4e3cdb30839382c"/><file name="OptionGroupAlreadyExistsException.php" hash="4226c0a3bdcbed371f0c7b68b3565621"/><file name="OptionGroupNotFoundException.php" hash="fd36e65437af21308bfae5ec074217ef"/><file name="OptionGroupQuotaExceededException.php" hash="bc2adf4429a3fd403f53879f0112bbd9"/><file name="PointInTimeRestoreNotEnabledException.php" hash="af19d2ada6aa534e818e93cf361d041a"/><file name="ProvisionedIopsNotAvailableInAZException.php" hash="811375765734008651fdff91686a8858"/><file name="RdsException.php" hash="6996434c2ecf17037c3931f2df361c71"/><file name="ReservedDBInstanceAlreadyExistsException.php" hash="c81ec08c1f1476062801e246cf9bf6e0"/><file name="ReservedDBInstanceNotFoundException.php" hash="ba34aca2ed1fec0e6041b89539d74a17"/><file name="ReservedDBInstanceQuotaExceededException.php" hash="6b8bc72a73b34f5466c5521d06d4fd5f"/><file name="ReservedDBInstancesOfferingNotFoundException.php" hash="73d871b7bf65e878614fba90c707ac0b"/><file name="SNSInvalidTopicException.php" hash="ba778d2918335482e02e79c3e3f05909"/><file name="SNSNoAuthorizationException.php" hash="eedb37e4b266f6ed4d18c285dbdce3fd"/><file name="SNSTopicArnNotFoundException.php" hash="a4746d9d037acfcdd58f8a2d2b2546ef"/><file name="SnapshotQuotaExceededException.php" hash="25e54a5968e2db61f5113c4a285a284a"/><file name="SourceNotFoundException.php" hash="74e18fda26af5100130575aab06e07c3"/><file name="StorageQuotaExceededException.php" hash="e4bca14d20f5ef0590293b2cc4927038"/><file name="SubnetAlreadyInUseException.php" hash="b3934cddd1e4762c2554e6da42bb1209"/><file name="SubscriptionAlreadyExistException.php" hash="7ec1a8a94449d505f22bb77a64e5f6b9"/><file name="SubscriptionCategoryNotFoundException.php" hash="f54f54e670a03afe318de768dff9465a"/><file name="SubscriptionNotFoundException.php" hash="0634451bee60d907b9a451960e8164c9"/></dir><file name="RdsClient.php" hash="c2adfe26ffd4b77153e000c3cc0d7cf8"/><dir name="Resources"><file name="rds-2013-09-09.php" hash="9eb6c99a283070bd5dfdaad5260f0f48"/></dir></dir><dir name="Redshift"><dir name="Enum"><file name="SourceType.php" hash="30409b1b129843499b9f534042fbf26c"/></dir><dir name="Exception"><file name="AccessToSnapshotDeniedException.php" hash="c9e8c82d99669b9c95eecec77021f455"/><file name="AuthorizationAlreadyExistsException.php" hash="cab137ac30853450292a4cdca0659c7f"/><file name="AuthorizationNotFoundException.php" hash="fdeacd2462018e6d794b3016094f1e83"/><file name="AuthorizationQuotaExceededException.php" hash="9db5903f794721ca23dbd65a2fc51c7f"/><file name="BucketNotFoundException.php" hash="b67ceb568f9bf3dfc68033b087377738"/><file name="ClusterAlreadyExistsException.php" hash="9eeb267af85c298ed0af61c2afb6c270"/><file name="ClusterNotFoundException.php" hash="6fd5a279200ee64aea68af45bfb3be63"/><file name="ClusterParameterGroupAlreadyExistsException.php" hash="422267f2d8aa50a487c66f45914f8018"/><file name="ClusterParameterGroupNotFoundException.php" hash="f16aecb163d382acb1cb3a7392f870f0"/><file name="ClusterParameterGroupQuotaExceededException.php" hash="dad9c72f15b72eaa84f579809b4678d7"/><file name="ClusterQuotaExceededException.php" hash="aba7c8a84383c8869f3c05a633700bd6"/><file name="ClusterSecurityGroupAlreadyExistsException.php" hash="02bf104dfb07cee703622f9fe15d9c1b"/><file name="ClusterSecurityGroupNotFoundException.php" hash="5cc1143f37bf2cc6c46018e209fff013"/><file name="ClusterSecurityGroupQuotaExceededException.php" hash="a6c63d0c6fc018f8d6cad4fbeac009f8"/><file name="ClusterSnapshotAlreadyExistsException.php" hash="31aafcd228150e5c54910d6b77d26db3"/><file name="ClusterSnapshotNotFoundException.php" hash="ea9d654915a7889f741f3e778c58a8c0"/><file name="ClusterSnapshotQuotaExceededException.php" hash="8bef78b291c4cf3e572e38c6b4b3d61a"/><file name="ClusterSubnetGroupAlreadyExistsException.php" hash="df02dee64a686e5df246b94d32ed5dfd"/><file name="ClusterSubnetGroupNotFoundException.php" hash="fcec74f4784a825dae3a7337f2b89ea7"/><file name="ClusterSubnetGroupQuotaExceededException.php" hash="9c06bfe46962619db99467b6b9e2279f"/><file name="ClusterSubnetQuotaExceededException.php" hash="0fad5d193616494a2dcaeecec5cb1e0a"/><file name="CopyToRegionDisabledException.php" hash="d860d9221401ee97e4892dea64c5d423"/><file name="EventSubscriptionQuotaExceededException.php" hash="a69b8bfbfda31cb67211d97ea250e9d1"/><file name="HsmClientCertificateAlreadyExistsException.php" hash="3619d46bcc659e0d6fa6e533c3ac06dc"/><file name="HsmClientCertificateNotFoundException.php" hash="dfb9e810a2fe8bfc49511070db8bf330"/><file name="HsmClientCertificateQuotaExceededException.php" hash="5ecd3d899d5e5a8bae5cd793115f96e9"/><file name="HsmConfigurationAlreadyExistsException.php" hash="eb9a19ce6f5f8e01dbecfe3a9905a1d9"/><file name="HsmConfigurationNotFoundException.php" hash="ddaae73292b27d33f68b24def9bbf376"/><file name="HsmConfigurationQuotaExceededException.php" hash="fb75bff51ce0071861e6477bdc614cc6"/><file name="IncompatibleOrderableOptionsException.php" hash="51efa01f4fe959f83351ba6b884ae0ef"/><file name="InsufficientClusterCapacityException.php" hash="35b3456c37c98538d3d8687d5d88e31f"/><file name="InsufficientS3BucketPolicyFaultException.php" hash="f3d5325f68cf059f7dcd998498f93d0a"/><file name="InvalidClusterParameterGroupStateException.php" hash="2b9206f0a02422908ae2f1be751b1990"/><file name="InvalidClusterSecurityGroupStateException.php" hash="0ae99524b12958a3363476f7d9d69555"/><file name="InvalidClusterSnapshotStateException.php" hash="60a1832f4594623c0d767ca23b41b7d9"/><file name="InvalidClusterStateException.php" hash="03eb7b9aebab523df4f49227ff886d9c"/><file name="InvalidClusterSubnetGroupStateException.php" hash="b79284307bc63bf8ae3ba2831412fca5"/><file name="InvalidClusterSubnetStateException.php" hash="9eda10ad6be26111eeeb2d442ed5439c"/><file name="InvalidElasticIpException.php" hash="42d6f0d90e03574ec2123a53a5f3123b"/><file name="InvalidHsmClientCertificateStateException.php" hash="96c504dbde550fdef869742fe0dc0484"/><file name="InvalidHsmConfigurationStateException.php" hash="f9a51511e75b964e40e4918813cae672"/><file name="InvalidRestoreException.php" hash="51bcc3c35fb7f19deeb4613537d3f8af"/><file name="InvalidS3BucketNameFaultException.php" hash="8efe1e3a2007abd75e1e329fbbabe7c3"/><file name="InvalidS3KeyPrefixFaultException.php" hash="c043afb7be1ac223551f72aa63efe3f1"/><file name="InvalidSubnetException.php" hash="ab249465fd2da5db0c01ac54a83c54e8"/><file name="InvalidVPCNetworkStateException.php" hash="554e07d40204937019b885e9ecd2c7a3"/><file name="NumberOfNodesPerClusterLimitExceededException.php" hash="8517bb1ac9d19e2b07cffd7f70636575"/><file name="NumberOfNodesQuotaExceededException.php" hash="1a4daebe90b9705cda31335d321582d0"/><file name="RedshiftException.php" hash="4350c750cd98294b81ca84c9e0a3728b"/><file name="ReservedNodeAlreadyExistsException.php" hash="8b0049bd4331ba9aab76e5cb8fbb4a2c"/><file name="ReservedNodeNotFoundException.php" hash="82766a70a2b696784ffdb8d1af95c597"/><file name="ReservedNodeOfferingNotFoundException.php" hash="7315213aaf423da296b3158b7ba7ebe4"/><file name="ReservedNodeQuotaExceededException.php" hash="af51e7f8377eed3e700b48d18ad1633b"/><file name="ResizeNotFoundException.php" hash="3e08078e441d6f227d3ac08b027a722b"/><file name="SNSInvalidTopicException.php" hash="7f8b69fe134454dcc3576e63e90e6d78"/><file name="SNSNoAuthorizationException.php" hash="55745749fbd004bfeeba430bdd641670"/><file name="SNSTopicArnNotFoundException.php" hash="3ac893986a262d796651f122093c5907"/><file name="SnapshotCopyAlreadyDisabledException.php" hash="901c3617895bf54466ed052ab36effbe"/><file name="SnapshotCopyAlreadyEnabledException.php" hash="20883bfc15fdf536bb3168fd39b6c4c9"/><file name="SnapshotCopyDisabledException.php" hash="5a97cd9ce4550b5bed2cc1c52f0c414e"/><file name="SourceNotFoundException.php" hash="9b0281633515464f55b6f18ef412582c"/><file name="SubnetAlreadyInUseException.php" hash="ea8dfad2d28f574de1c676bbfff1a8b6"/><file name="SubscriptionAlreadyExistException.php" hash="a8a85aeffd72e721b74bbef92376140b"/><file name="SubscriptionCategoryNotFoundException.php" hash="c72edfffd2bf2df774b6523e1bc7f71b"/><file name="SubscriptionEventIdNotFoundException.php" hash="442e6bb4455ae519b6c9c6f572e83860"/><file name="SubscriptionNotFoundException.php" hash="64708e4b9af29c76b7ad874535de832c"/><file name="SubscriptionSeverityNotFoundException.php" hash="c4cddaf790f099d8bc8275409cca59f6"/><file name="UnauthorizedOperationException.php" hash="17fae856e885ad838335b54f442bcadc"/><file name="UnknownSnapshotCopyRegionException.php" hash="f141ccf84f1687737c954664774d1a79"/><file name="UnsupportedOptionException.php" hash="d31305342559091eecdd00847e772d6e"/></dir><file name="RedshiftClient.php" hash="d9e3676c5e598627575a0915aabe2252"/><dir name="Resources"><file name="redshift-2012-12-01.php" hash="d88d992915d3de324e337b71df8440e8"/></dir></dir><dir name="Route53"><dir name="Enum"><file name="Action.php" hash="5fce5d81f4f8cd20bcf26fee53ceebad"/><file name="HealthCheckType.php" hash="c786e5ccd8a11162b043acce875b27a9"/><file name="RecordType.php" hash="4c86625b5b1b13b1a0133d261c5f1760"/><file name="ResourceRecordSetFailover.php" hash="a234fda2f8ac5b9da3202a6523d19845"/><file name="Status.php" hash="22e5216a90bf7e81e88a2961362d9542"/></dir><dir name="Exception"><file name="DelegationSetNotAvailableException.php" hash="1f30995a821f7187bfa3c1ae1fe6730f"/><file name="HealthCheckAlreadyExistsException.php" hash="46f1c28ff9db8fcb76a3ae230ad4d60d"/><file name="HealthCheckInUseException.php" hash="626f8a159c1b82bedbd998999f246321"/><file name="HostedZoneAlreadyExistsException.php" hash="4047297658083123324bc27370311e5d"/><file name="HostedZoneNotEmptyException.php" hash="b5a2910ad2d934247c38c8e96ca7a056"/><file name="InvalidChangeBatchException.php" hash="0495d764fb61c3762eac22922edbebbb"/><file name="InvalidDomainNameException.php" hash="dfe54be39b49c612331df43a2d1c7220"/><file name="InvalidInputException.php" hash="ef7ea019827104fd4817794c7adf99b2"/><file name="NoSuchChangeException.php" hash="132a7edb2acd811c35b947f45de50f75"/><file name="NoSuchHealthCheckException.php" hash="716c680b6d78527c689d09814e3bd8a0"/><file name="NoSuchHostedZoneException.php" hash="a52873a6fd8908e690d24babde7519fd"/><file name="PriorRequestNotCompleteException.php" hash="4a689aeffe52c7794c52bbb9a285cc1a"/><file name="Route53Exception.php" hash="dd58506a12c8f771ff626c2d22ea55b9"/><file name="TooManyHealthChecksException.php" hash="fe6361d52270886401a73109a061c2d4"/><file name="TooManyHostedZonesException.php" hash="11cdde994613ae170b863aa9560f51e5"/></dir><dir name="Resources"><file name="route53-2012-12-12.php" hash="37845dbeeb1231a94dd8846d8621c923"/></dir><file name="Route53Client.php" hash="e2ad347026f7e742e5d8d2f30daec02e"/></dir><dir name="S3"><file name="AcpListener.php" hash="f0ad40c46a7eb3085a3b02629444d5c5"/><file name="BucketStyleListener.php" hash="f706acb1501f1a1a5a97c48ef4be30e6"/><dir name="Command"><file name="S3Command.php" hash="3dc05e397450a4b71a982327a206c38c"/></dir><dir name="Enum"><file name="CannedAcl.php" hash="f3b4032cea7c631b5cb1cc7947474fb8"/><file name="EncodingType.php" hash="a7cde485ca7ac5f211f0f1a842d8be6a"/><file name="Event.php" hash="1bb29324b69f9431e60583652916f2dc"/><file name="GranteeType.php" hash="b7897dc9b95f94f6b121dd6f5e28bc8f"/><file name="Group.php" hash="96d2fcdffb966c8e411fe630e10b5fc8"/><file name="MFADelete.php" hash="21617876155e75c94b8bc6f8380aec16"/><file name="MetadataDirective.php" hash="274e400686bd9a855a74c7f90554fb61"/><file name="Payer.php" hash="e25af5161310f4c6e3bd10063861d69e"/><file name="Permission.php" hash="d9a0af6b2cdc229239b047f23d838cff"/><file name="Protocol.php" hash="d97f9232bba001d3bf6ec41259636670"/><file name="ServerSideEncryption.php" hash="48d3a44084406aff1541a5defe9320f4"/><file name="Status.php" hash="918d94f3d16f77cac2276b85071e8e93"/><file name="Storage.php" hash="0266e6eb192fc241d3748d3ac04def25"/><file name="StorageClass.php" hash="813636035d4e3c256791152d0e3ec8ad"/></dir><dir name="Exception"><file name="AccessDeniedException.php" hash="c114efca1dcf9a7e3344fa406db0d494"/><file name="AccountProblemException.php" hash="4e04036a4f99661d3d24ba013d26c69a"/><file name="AmbiguousGrantByEmailAddressException.php" hash="b7055c317e07c03c66bdadd3cd6f2fee"/><file name="BadDigestException.php" hash="7ce5a3538bd37d2d893a5a4641ca5e87"/><file name="BucketAlreadyExistsException.php" hash="c70ca0f46a271fbb3a0dd8634778b241"/><file name="BucketAlreadyOwnedByYouException.php" hash="03ddf3e40d02c69d98e31a1ba0e11350"/><file name="BucketNotEmptyException.php" hash="c4164313e71b86ec0a94469ae59f5c7c"/><file name="CredentialsNotSupportedException.php" hash="28e5df8a1f769a05c4b0c17da307c821"/><file name="CrossLocationLoggingProhibitedException.php" hash="6604c9fc43cc2fcbbf5e20c22edb6026"/><file name="DeleteMultipleObjectsException.php" hash="08d0fa5ebbc445faddabca975a979884"/><file name="EntityTooLargeException.php" hash="a363b75b6140aa59516d6958bd818487"/><file name="EntityTooSmallException.php" hash="8244c7d196fcf6cfe81ce6be4e4ee3c3"/><file name="ExpiredTokenException.php" hash="9fde3c8c1f8ce13d3c1459ba80888484"/><file name="IllegalVersioningConfigurationException.php" hash="7502affc30c08ec7dec2ca9b79623861"/><file name="IncompleteBodyException.php" hash="3868573f4b4169bd66ec7ed55e828212"/><file name="IncorrectNumberOfFilesInPostRequestException.php" hash="9a7794f2028a7bbecb37f02a291f6c13"/><file name="InlineDataTooLargeException.php" hash="16a05c43ee339551a41d6db30b3ca660"/><file name="InternalErrorException.php" hash="af766935b9509e930d0ae19802289e4a"/><file name="InvalidAccessKeyIdException.php" hash="32f96f069dba33c77642bddfffe8db8b"/><file name="InvalidAddressingHeaderException.php" hash="e8951816cc56a7230167d73186c0ab90"/><file name="InvalidArgumentException.php" hash="26a64d61b80ab87cd4da2f0959951859"/><file name="InvalidBucketNameException.php" hash="389ba9774c6752da399d5a06714ca70d"/><file name="InvalidBucketStateException.php" hash="9010cee7e70cd31d533d490a0f676b7c"/><file name="InvalidDigestException.php" hash="498ad6eea22c072303d33040e1e2fb8a"/><file name="InvalidLocationConstraintException.php" hash="649bb9f9299de94c32142afe6966e3bd"/><file name="InvalidPartException.php" hash="cf7972454e18711007a3282ab14b0b2e"/><file name="InvalidPartOrderException.php" hash="2844134a42c3bf7250e00356a1af54c6"/><file name="InvalidPayerException.php" hash="668af3f62f403e4dff00bcf4c547586d"/><file name="InvalidPolicyDocumentException.php" hash="24708723851ace58c30233fbcd2a61c0"/><file name="InvalidRangeException.php" hash="98cfd5cd3599cea086cc16fa50447132"/><file name="InvalidRequestException.php" hash="dc44e8a1c168511de2b21dc9d0dcf26b"/><file name="InvalidSOAPRequestException.php" hash="07f4d5593c6119ab815a5abfafd45b4b"/><file name="InvalidSecurityException.php" hash="c5325d7ab1f09760b5cfb5dff1452cf5"/><file name="InvalidStorageClassException.php" hash="deeb571087b1013016717869ab219938"/><file name="InvalidTagErrorException.php" hash="28b72289665d68843022d1b8278afe4e"/><file name="InvalidTargetBucketForLoggingException.php" hash="04fb8e74ecc189e6b0436e1260dce9c5"/><file name="InvalidTokenException.php" hash="b21fb6f6445972b9c30d3bb566ace2de"/><file name="InvalidURIException.php" hash="cc39ea5c4ca166c4789366041d2c6647"/><file name="KeyTooLongException.php" hash="aeb54c82dfc9fa87084948e2e1010d96"/><file name="MalformedACLErrorException.php" hash="f6373149be4c19ccb7b614f3a3628ad7"/><file name="MalformedPOSTRequestException.php" hash="6aa99b0de24f2eb1a9de7df2715e38f3"/><file name="MalformedXMLException.php" hash="ef3fe78d3ed3db0db2ec67a04ad5a1a5"/><file name="MaxMessageLengthExceededException.php" hash="e398b2a0c10de3a9ed33612647dceb5b"/><file name="MaxPostPreDataLengthExceededErrorException.php" hash="c0d03c2fc6dd1d30cb53753ff3e76533"/><file name="MetadataTooLargeException.php" hash="49cef4705a18558a98a461da746f6d07"/><file name="MethodNotAllowedException.php" hash="1bca38cffcc6eb5eb5245f5a89007381"/><file name="MissingAttachmentException.php" hash="d89997a566746ebfafb220946f27a5a6"/><file name="MissingContentLengthException.php" hash="84bdb0a39275eb219deb1a2f75c391e5"/><file name="MissingRequestBodyErrorException.php" hash="402ba71db04643214cb40a1bd7d049ef"/><file name="MissingSecurityElementException.php" hash="d4fda63c036e22004452d73ed1e464d8"/><file name="MissingSecurityHeaderException.php" hash="aea750e7eebe1dfc9e487c789a6a9459"/><file name="NoLoggingStatusForKeyException.php" hash="3b8655854d58f4a783e82b2b3dc7c1e9"/><file name="NoSuchBucketException.php" hash="67678971e88adba7f2f48d63cc95adf3"/><file name="NoSuchBucketPolicyException.php" hash="5077fdc0b6cd80437ef07d3f35fd70fb"/><file name="NoSuchCORSConfigurationException.php" hash="78aa44073391f74bfd34303266c8959b"/><file name="NoSuchKeyException.php" hash="79da9b57a5ebe3cac8d7d2b0f43fdfab"/><file name="NoSuchLifecycleConfigurationException.php" hash="27e721bae72c4019ae6d2194a6572ba5"/><file name="NoSuchTagSetErrorException.php" hash="6b5056bd3f4a4c5113b16585e7328b90"/><file name="NoSuchUploadException.php" hash="de7d7276e8357e59053247069af4b17c"/><file name="NoSuchVersionException.php" hash="85b88fa151a076d133d6c9515c0f8b56"/><file name="NoSuchWebsiteConfigurationException.php" hash="18d8abb944dede950e933b4c8fb4c45d"/><file name="NotImplementedException.php" hash="bfded76dd7733080fc05e35fc9b5d570"/><file name="NotSignedUpException.php" hash="812bae6a59981af1cade72c37ca87886"/><file name="NotSuchBucketPolicyException.php" hash="714b2ba8c970dac2950314acccb4951e"/><file name="ObjectAlreadyInActiveTierErrorException.php" hash="f3c4ce492a49fe06caabecddd73658c3"/><file name="ObjectNotInActiveTierErrorException.php" hash="3ac099a476fa8cce2e0de5de51e81016"/><file name="OperationAbortedException.php" hash="a52b194d60900563f77d9deadbce14ed"/><dir name="Parser"><file name="S3ExceptionParser.php" hash="8b11e6c2e0aab8b276cf2cd90e36fc63"/></dir><file name="PermanentRedirectException.php" hash="61c2464e91a1b3313ccb9dde9d6ea207"/><file name="PreconditionFailedException.php" hash="8f04f2096229d8e4c99039e2f8685de5"/><file name="RedirectException.php" hash="bcc61525ec8286557cc882e620e0449b"/><file name="RequestIsNotMultiPartContentException.php" hash="9a233980787a08e6e8f946ecbaf44933"/><file name="RequestTimeTooSkewedException.php" hash="87f1822b747922a3dd576f4da63f1fc1"/><file name="RequestTimeoutException.php" hash="33862ef527aedb321a40c555d0d81250"/><file name="RequestTorrentOfBucketErrorException.php" hash="b7cf62f982b95dd160f44ea6553724d1"/><file name="S3Exception.php" hash="44d15cd57f1f8b5405f7776b636c9a4a"/><file name="ServiceUnavailableException.php" hash="054e5b096daaad03ee7c920660fbf32c"/><file name="SignatureDoesNotMatchException.php" hash="20791b3cbe22c91750cfae0c45e345d4"/><file name="SlowDownException.php" hash="2cab1602b76a19567c65bfcdbbd26b66"/><file name="TemporaryRedirectException.php" hash="d4e23dee2d180e598e4ab8562df97449"/><file name="TokenRefreshRequiredException.php" hash="f3d13abdc5305ab7de861a85b9f2eeae"/><file name="TooManyBucketsException.php" hash="37840f4760fa1c45336f203543b39c3f"/><file name="UnexpectedContentException.php" hash="5a7af7f0861aec70975e22383edf1605"/><file name="UnresolvableGrantByEmailAddressException.php" hash="ddacbd4d1ee7341fba322be7acda04b2"/><file name="UserKeyMustBeSpecifiedException.php" hash="b670411122d9f08bc7a3cb7ca3ba07e7"/></dir><dir name="Iterator"><file name="ListBucketsIterator.php" hash="f9c6dcc72963c40346bae45f25a39dd1"/><file name="ListMultipartUploadsIterator.php" hash="ad8bc7cfcb905bbcee5ac63f0d1a248a"/><file name="ListObjectVersionsIterator.php" hash="f05cf3b2a73eff79ed325dc18f91a8b9"/><file name="ListObjectsIterator.php" hash="72e641bd2db279e46e1da12720f9786e"/><file name="OpendirIterator.php" hash="1a8fc303bcfda2405023bc9ed07fc532"/></dir><dir name="Model"><file name="Acp.php" hash="c9583217f96ae9a208b1fae3db05d862"/><file name="AcpBuilder.php" hash="520344fe298bf4a1039f5244dac35def"/><file name="ClearBucket.php" hash="c92f83bf549b0ac27f93c039d2314f20"/><file name="DeleteObjectsBatch.php" hash="a4aecf1a402097c03b4c3e7e75436464"/><file name="DeleteObjectsTransfer.php" hash="2e68e3fa281c67da8372aed974b9856e"/><file name="Grant.php" hash="56d27ab990a43bc09457c27ec6a7c322"/><file name="Grantee.php" hash="1571724e26f99bde52eccc5f532a0244"/><dir name="MultipartUpload"><file name="AbstractTransfer.php" hash="f7bde99befdba989ecf74bad5332db8d"/><file name="ParallelTransfer.php" hash="685316207c2ca094dcc50413a978c4c8"/><file name="SerialTransfer.php" hash="8f60dc1193eb7fc0c7ed88642fdece94"/><file name="TransferState.php" hash="45484c7268141212c6a346ee5ff05962"/><file name="UploadBuilder.php" hash="33c711012cc52731819989d44b65ed1e"/><file name="UploadId.php" hash="0925b992d88491867fe204bb216c9961"/><file name="UploadPart.php" hash="e52983d0299b0dddcf62ac3fe2a7eff0"/></dir><file name="PostObject.php" hash="c4442aac3d7c357e89bef36cfe2adbe1"/></dir><dir name="Resources"><file name="s3-2006-03-01.php" hash="8b981d2d178e130c05618a719eb103b7"/></dir><file name="ResumableDownload.php" hash="d54fce84af9a35d046e3346355499327"/><file name="S3Client.php" hash="673f6e903638f8083627b5a965473891"/><file name="S3Signature.php" hash="30b110028a85c0ce1bbd81f717bd3e6b"/><file name="S3SignatureInterface.php" hash="24123584723d3246ad890edbe23032c1"/><file name="SocketTimeoutChecker.php" hash="3796f27bca6c52702c587f3bd6d686fb"/><file name="StreamWrapper.php" hash="80f788f99058dfe3a89c3f568c6b84f9"/><dir name="Sync"><file name="AbstractSync.php" hash="cf937c67b37e8324b092f0e0d4dcf2b2"/><file name="AbstractSyncBuilder.php" hash="e063c42e33760471334a99ed04125c6a"/><file name="ChangedFilesIterator.php" hash="29f995cf4b1d149410faf16a938d8694"/><file name="DownloadSync.php" hash="6c3beef28bbcea8ba1e8876e315d86fb"/><file name="DownloadSyncBuilder.php" hash="ccc36e18fc3313889417d974cf37f322"/><file name="FilenameConverterInterface.php" hash="e1367db996b4bf594e6d05871be1147d"/><file name="KeyConverter.php" hash="32dda070441adbd91bbee817e0441104"/><file name="UploadSync.php" hash="f1850338b38d355b005739b7fbf1cfba"/><file name="UploadSyncBuilder.php" hash="5f614fb75a64262ed27f350d625fc0f4"/></dir></dir><dir name="Ses"><dir name="Enum"><file name="IdentityType.php" hash="7b1434f0dd2bebf330bb8e67b5776c16"/><file name="MailboxSimulator.php" hash="2fcebe481c157a59ab4bf48d7f3d5b1a"/><file name="NotificationType.php" hash="de1d29bace5b3760dfb932f12b6debf3"/><file name="VerificationStatus.php" hash="1ec0dc20df5850342d4fdbbf22584d18"/></dir><dir name="Exception"><file name="MessageRejectedException.php" hash="8fe4d09febaafe19905490ca8289cb31"/><file name="SesException.php" hash="80c490691ee79c616ac3199e02609773"/></dir><dir name="Resources"><file name="ses-2010-12-01.php" hash="7bfc2e274202448ef48f3db6912f0bad"/></dir><file name="SesClient.php" hash="56fc026f1ddfec565dc60f011d60daf4"/></dir><dir name="SimpleDb"><dir name="Exception"><file name="AttributeDoesNotExistException.php" hash="89cd247daec2557d7aa3e4a516375124"/><file name="DuplicateItemNameException.php" hash="e0853eec8bfeca7af07647e7661745b3"/><file name="InvalidNextTokenException.php" hash="9a5eb3b4f58096cbff6ca50452aaa5de"/><file name="InvalidNumberPredicatesException.php" hash="82154f8919c46f04fe458e5e1c4930ac"/><file name="InvalidNumberValueTestsException.php" hash="a518f2835e281940b42636bc74236dc0"/><file name="InvalidParameterValueException.php" hash="1dae86e1f9d1c1ab52b92a2f9b54ebdc"/><file name="InvalidQueryExpressionException.php" hash="2b447e1872af6957f980b3356e4cc1dc"/><file name="MissingParameterException.php" hash="e137eaf206ad6c11fb3079ca37045d9a"/><file name="NoSuchDomainException.php" hash="174107d8484ef69fd125a222b892378c"/><file name="NumberDomainAttributesExceededException.php" hash="30c9362c7b6f7c1e180d66b752cabbac"/><file name="NumberDomainBytesExceededException.php" hash="39cdcaa259801c17c3285cc6fe63abd1"/><file name="NumberDomainsExceededException.php" hash="55407c961af9be88f1f1b0d727022b60"/><file name="NumberItemAttributesExceededException.php" hash="534337c97805fb83fc44cc170062c192"/><file name="NumberSubmittedAttributesExceededException.php" hash="966af01414e272c08da36ee7f5cf6a66"/><file name="NumberSubmittedItemsExceededException.php" hash="c4b4a39f2dcb54b6d22eaa78ec27d3e2"/><file name="RequestTimeoutException.php" hash="1db604dfb1a3d872f1a938560f4fde09"/><file name="SimpleDbException.php" hash="00ae6c090e9b29dbe94e2bf89afb4714"/><file name="TooManyRequestedAttributesException.php" hash="bc7f7097143def4f5af396975f6e9d58"/></dir><dir name="Resources"><file name="simpledb-2009-04-15.php" hash="86ae3a2a1055a7c491b4d9bc3b1bf53b"/></dir><file name="SimpleDbClient.php" hash="d474efdaa1e1d42e59d2bfbfa3a1f702"/></dir><dir name="Sns"><dir name="Exception"><file name="AuthorizationErrorException.php" hash="c9c32bebd0667506abcbcd9f4429a777"/><file name="EndpointDisabledException.php" hash="19efdabc8d90e59e134c4e6fceba40b4"/><file name="InternalErrorException.php" hash="d9fc5142ac993b516e74f341b26a0028"/><file name="InvalidParameterException.php" hash="4607881f657f45574e7cc7c293684d81"/><file name="NotFoundException.php" hash="78af1af1d83ca29500aac9556936f550"/><file name="PlatformApplicationDisabledException.php" hash="30ccee756ebe28b9d7ee09be2dd73b30"/><file name="SnsException.php" hash="a164f228095640cc761e8f062db18c17"/><file name="SubscriptionLimitExceededException.php" hash="3a3a6d27050da606c25ec33596e656cf"/><file name="TopicLimitExceededException.php" hash="1af31f173c47f90c6ff0bfea1f8622ab"/></dir><dir name="MessageValidator"><dir name="Exception"><file name="CannotGetPublicKeyFromCertificateException.php" hash="ae5ac1b193faefd454d41de4319b7b32"/><file name="CertificateFromUnrecognizedSourceException.php" hash="041127c1828cb7953e04f30a3b406faa"/><file name="InvalidMessageSignatureException.php" hash="ef92f5716162e9e93e8db80cbc920656"/><file name="SnsMessageValidatorException.php" hash="be9ed15b7e83fb785569b12651e6c2f6"/></dir><file name="Message.php" hash="26b46ec304ab9cd5dd068d43f8b2924f"/><file name="MessageValidator.php" hash="02c5130654991b90a61a71a444b486e9"/></dir><dir name="Resources"><file name="sns-2010-03-31.php" hash="0bf18b6a9c652b35e566ee4ba76a8608"/></dir><file name="SnsClient.php" hash="e6356464f3c8ed946d91e7bb2340f9cc"/></dir><dir name="Sqs"><dir name="Enum"><file name="MessageAttribute.php" hash="972a07c9b6af94cdb381481ec942843e"/><file name="QueueAttribute.php" hash="3ffb7f45166e2dbb65dfd6e62f5bd882"/></dir><dir name="Exception"><file name="SqsException.php" hash="2d9b4c27e76ddd89890a54327a8e52dc"/></dir><file name="Md5ValidatorListener.php" hash="314b5f6805e9f74ff79307f58e5625f8"/><file name="QueueUrlListener.php" hash="b8a37308c474a2089dda2598f8ee8a39"/><dir name="Resources"><file name="sqs-2012-11-05.php" hash="02782621c66756f8b4cfac5345bb8d55"/></dir><file name="SqsClient.php" hash="f036882a777d9b0bc6f872d6f3ef6b29"/></dir><dir name="StorageGateway"><dir name="Enum"><file name="BandwidthType.php" hash="74737be50725532cb9c59adb4e0964c6"/><file name="DiskAllocationType.php" hash="9172f0a549961cfdda4946e97ae7fd4b"/><file name="ErrorCode.php" hash="112ce969ef8b5ca60e5e8d5402c3aba4"/><file name="GatewayState.php" hash="cf95681599926a3343d5713af3176407"/><file name="GatewayTimezone.php" hash="d5443798ff34349b53c2e2ea8babd3be"/><file name="GatewayType.php" hash="3df5febc6781a936c030daf16955afc7"/><file name="VolumeStatus.php" hash="8c83be75e61c5357ec43c372e74b691a"/><file name="VolumeType.php" hash="e463cdf364baa9d29b4edb2ffa78e523"/></dir><dir name="Exception"><file name="InternalServerErrorException.php" hash="3b24f8be8621ac6edf9b158bc446e6a6"/><file name="InvalidGatewayRequestException.php" hash="b50d2c02cb9d83c06d0b31766125115e"/><file name="StorageGatewayException.php" hash="55e455a7de135b016edb2e49aac1201e"/></dir><dir name="Resources"><file name="storagegateway-2013-06-30.php" hash="d98226997b583369aa6bb9b0ad04e85b"/></dir><file name="StorageGatewayClient.php" hash="66437802ed9debdacc3a445e73d6d400"/></dir><dir name="Sts"><dir name="Exception"><file name="ExpiredTokenException.php" hash="dbbe480b720f40f1ac1153e8e47791c9"/><file name="IDPCommunicationErrorException.php" hash="cad826cd21ea1b633cfcf2a020f8f9e0"/><file name="IDPRejectedClaimException.php" hash="d07ca295e8793954dbcc65e302a1c36f"/><file name="IncompleteSignatureException.php" hash="803bac0bdd431bd158f41afc80c5a3f4"/><file name="InternalFailureException.php" hash="fce4ddd89a91f91c36faa6220ad40f15"/><file name="InvalidActionException.php" hash="fb480af522618852b977603fea415be0"/><file name="InvalidAuthorizationMessageException.php" hash="7cd9f2747d82ce405a4fd1d4c0004438"/><file name="InvalidClientTokenIdException.php" hash="3f3db6cbae9c84bff46adf1de0dbd124"/><file name="InvalidIdentityTokenException.php" hash="6fc19a03fcae589b1caa90249f7e1666"/><file name="InvalidParameterCombinationException.php" hash="1d2a1163551980de91c132e6377f59ca"/><file name="InvalidParameterValueException.php" hash="f7bff008b2f1d8f16d958d0d00cb2ff6"/><file name="InvalidQueryParameterException.php" hash="7e0ba0cee050bac2c7060f21019a8a73"/><file name="MalformedPolicyDocumentException.php" hash="7cf8992e0d384d4829967f8e53c6e4be"/><file name="MalformedQueryStringException.php" hash="43bbb0c8d87b0999632b1ae16d874e2e"/><file name="MissingActionException.php" hash="e40d84bc4bf89e0706156fb4ceb4992e"/><file name="MissingAuthenticationTokenException.php" hash="7a24a9e4185c9900967debdea54dc49b"/><file name="MissingParameterException.php" hash="9de74bfa936d873b8b3c63695c3c7c4e"/><file name="OptInRequiredException.php" hash="b7f0e7d5e1bb49a0fb73f7a7f839eb0f"/><file name="PackedPolicyTooLargeException.php" hash="e77e686eff1950ef2b9f7e7404a4cfba"/><file name="RequestExpiredException.php" hash="944c6a51faa1b5577f237f398cb95c04"/><file name="ServiceUnavailableException.php" hash="5ed7c8a34573ae519a32d61625d0448f"/><file name="StsException.php" hash="b7dbe8f33e451b0136c3f7676591e314"/><file name="ThrottlingException.php" hash="09497f7ecbfbecd52c4c587386c949ea"/></dir><dir name="Resources"><file name="sts-2011-06-15.php" hash="0cf6ebc43c59b4f50d9eb17e1cf69f32"/></dir><file name="StsClient.php" hash="917e738bbf7f3b245081cee095648261"/></dir><dir name="Support"><dir name="Exception"><file name="CaseCreationLimitExceededException.php" hash="f541cf0a6e8ff9985d0e70a289d0eb94"/><file name="CaseIdNotFoundException.php" hash="9c363316112f6b7c9fc1c59d76f1de25"/><file name="InternalServerErrorException.php" hash="76107a35c80b1206c3980044528e22d0"/><file name="SupportException.php" hash="8794c47dfbe7b39a9a4c6d2ed524dc0f"/></dir><dir name="Resources"><file name="support-2013-04-15.php" hash="332b684e2cf1fd81a7d618f70026c498"/></dir><file name="SupportClient.php" hash="4cb48af0344896e022f587341d15a972"/></dir><dir name="Swf"><dir name="Enum"><file name="ActivityTaskTimeoutType.php" hash="ae5ef267a855e9ce7f05f813d5c98323"/><file name="ChildPolicy.php" hash="cfc441001e155672d0c2a9b8b6b35653"/><file name="CloseStatus.php" hash="5bb4c09c3f5d67c69796d981ccb88c19"/><file name="DecisionTaskTimeoutType.php" hash="ce0b0593dc9eabce8f1720150d8638ae"/><file name="DecisionType.php" hash="c339e1c2d6e8c2ca77bf7ff5ed71224e"/><file name="EventType.php" hash="93cb1244b83337f3ce72d3cac51f9601"/><file name="ExecutionStatus.php" hash="fe48756d2888aa93a372fc93dcbc7e35"/><file name="RegistrationStatus.php" hash="932c801a3cb1caef4d1e52673d9cf3d1"/><file name="WorkflowExecutionTimeoutType.php" hash="aaee716b3bb93d45f07e3d49f3332a5a"/></dir><dir name="Exception"><file name="DefaultUndefinedException.php" hash="f4c46800e3c0c5422df40efe10094a97"/><file name="DomainAlreadyExistsException.php" hash="442c06492c3e0ea4ceaf16212348e4cd"/><file name="DomainDeprecatedException.php" hash="ed9e65abac25df8bf792ce44925adc6b"/><file name="LimitExceededException.php" hash="72c4292360bc2a24e0877d3c32c0ed02"/><file name="OperationNotPermittedException.php" hash="862ac52541784804ad342acd738d2445"/><file name="SwfException.php" hash="e4c24f76c14661c34393f261e05e0fe5"/><file name="TypeAlreadyExistsException.php" hash="c7ecf2b68e784f02f3b81c85dea3fbb0"/><file name="TypeDeprecatedException.php" hash="50cdd637dcd8b74501084d8d3db31412"/><file name="UnknownResourceException.php" hash="fc9b976aa824ec9928a4b6c0dbdfc393"/><file name="WorkflowExecutionAlreadyStartedException.php" hash="3ac7b424e3b3e94f6931b655f90eea8c"/></dir><dir name="Resources"><file name="swf-2012-01-25.php" hash="457c65913542df8c939d5f71b33ef432"/></dir><file name="SwfClient.php" hash="763de5a723e0ccedd75b77a9675725d0"/></dir></dir><dir name="Doctrine"><dir name="Common"><dir name="Cache"><file name="ApcCache.php" hash="b8add60c279489f74e1f52793e25f773"/><file name="ArrayCache.php" hash="aaad66e13d564ef90a07573233a84389"/><file name="Cache.php" hash="8d840db1d6778518d4259ce96adb295e"/><file name="CacheProvider.php" hash="c2c90f9e8579dbbec885311cb74a122c"/><file name="CouchbaseCache.php" hash="293e1d41557bf6b9ab5aef606c5e2b6a"/><file name="FileCache.php" hash="8bda505eeec5f017892712f32e2f1789"/><file name="FilesystemCache.php" hash="5223cf45458913a38db04e4bcd203e26"/><file name="MemcacheCache.php" hash="44a3c997a6d721d22d9b10e1d0770b4c"/><file name="MemcachedCache.php" hash="1ac7592a7455aead24af57c8fc6c820a"/><file name="MongoDBCache.php" hash="01a73549b122634ecd5accdd0158a8c0"/><file name="PhpFileCache.php" hash="83be303d8fc1c46f0e7a59f0a66d2c8a"/><file name="RedisCache.php" hash="ce39d7ed28378ab3b71fade844415423"/><file name="RiakCache.php" hash="ca83e1086997bee24b0ac1da228cea7d"/><file name="Version.php" hash="981844148bec2c3fae9ee0c130b1e026"/><file name="WinCacheCache.php" hash="98c21113bee715fc23c1010927bc0804"/><file name="XcacheCache.php" hash="41b49b6e981a2c1c75bedacea9bf6ec1"/><file name="ZendDataCache.php" hash="ea438b0409996d058d562326a737dade"/></dir></dir></dir><dir name="Guzzle"><dir name="Batch"><file name="AbstractBatchDecorator.php" hash="b9f1ce19f113f4d5b5886b04219b26c6"/><file name="Batch.php" hash="b780b6cafbfefc90e32ca531e1406239"/><file name="BatchBuilder.php" hash="0658d8456d338b2b4f5e5bd12875af1c"/><file name="BatchClosureDivisor.php" hash="be8e54078d5dcc5e5089006b0399096e"/><file name="BatchClosureTransfer.php" hash="43125673b59879626fb833603e6a23d2"/><file name="BatchCommandTransfer.php" hash="7129a1584dd4ad7f92d56040124676c2"/><file name="BatchDivisorInterface.php" hash="9b1460f23f32fc4beee434f7ad1de674"/><file name="BatchInterface.php" hash="bdf900e6c7038e23ede1ee25cafa05bc"/><file name="BatchRequestTransfer.php" hash="9671e493d9d3a8271de4e2c3d8d33d5d"/><file name="BatchSizeDivisor.php" hash="282368575f4576cb5b8e323921fbce7d"/><file name="BatchTransferInterface.php" hash="c92e98244535738d7b8c8304076da4ff"/><dir name="Exception"><file name="BatchTransferException.php" hash="3f8eb4b34fe7eb242b647a00acc60f00"/></dir><file name="ExceptionBufferingBatch.php" hash="172ecdb412b2116f8cfc43632aed5971"/><file name="FlushingBatch.php" hash="0a176cd0d3c37fd6d3c3edd32973ee63"/><file name="HistoryBatch.php" hash="62cabc0fe63acc14fb8bf2e551b6f673"/><file name="NotifyingBatch.php" hash="b7d39171fc686a2124b93a85954542a5"/></dir><dir name="Cache"><file name="AbstractCacheAdapter.php" hash="d299bf5b6503b485390d54a6fe9894e8"/><file name="CacheAdapterFactory.php" hash="678b21a05c0c63c595d6b00ad3567ee7"/><file name="CacheAdapterInterface.php" hash="0c6a26170379b4c3f42240a1747f51d8"/><file name="ClosureCacheAdapter.php" hash="617c0958c5a41811443553755bd57e85"/><file name="DoctrineCacheAdapter.php" hash="7107ed2df05edf22b50a5d953a53e694"/><file name="NullCacheAdapter.php" hash="731789c642be2ecc518aef6f576b475f"/><file name="Zf1CacheAdapter.php" hash="8ff8cf2a495cf9569eb5f83a721464f8"/><file name="Zf2CacheAdapter.php" hash="5b26ea450db552ff04cb333743c0672c"/></dir><dir name="Common"><file name="AbstractHasDispatcher.php" hash="4e0c67da62cd3cbe82b167f1855bff8e"/><file name="Collection.php" hash="bdf612b12448bab74c6a90dbdb20095b"/><file name="Event.php" hash="d239258d838e0928c2b211ab9f0f0bad"/><dir name="Exception"><file name="BadMethodCallException.php" hash="98140817d5204df2df8c758eb52e3ca2"/><file name="ExceptionCollection.php" hash="0f813e3dedf582573791008f43cfa5fe"/><file name="GuzzleException.php" hash="a59974564cb5886db0906d38622d7b65"/><file name="InvalidArgumentException.php" hash="e176a3bfbc46ad0bcf8cc53a70ad2660"/><file name="RuntimeException.php" hash="505f3a2971d80715a8601f7bb8139023"/><file name="UnexpectedValueException.php" hash="2182332c538ad9279f1cb31ebf8cec90"/></dir><file name="FromConfigInterface.php" hash="a23e030b62590950884856109219c7f3"/><file name="HasDispatcherInterface.php" hash="efdba8306b7e0c6c04a23c4a3495e9bc"/><file name="ToArrayInterface.php" hash="5466584f27e38712cd08d8e6309b8e78"/><file name="Version.php" hash="3ea7bd41bae7240879c6969050128858"/></dir><dir name="Http"><file name="AbstractEntityBodyDecorator.php" hash="36d4a68be72393686cdc9e9173adbfd7"/><file name="CachingEntityBody.php" hash="55c80a146676519d5f78259b8763c4fc"/><file name="Client.php" hash="d953cec8d27e39b81cdc1644c49411e1"/><file name="ClientInterface.php" hash="406c37f60933c0eb3b359cf8739fca53"/><dir name="Curl"><file name="CurlHandle.php" hash="237a99b299ba7c398384882505435ab3"/><file name="CurlMulti.php" hash="dfbf9ccce89834f6722218cd6f4e33f2"/><file name="CurlMultiInterface.php" hash="ba75ac02d77e97f76938e59e34596b43"/><file name="CurlMultiProxy.php" hash="08b7fa7d6e0f07baa53a30bde045fc7e"/><file name="CurlVersion.php" hash="7857dd20077df5870f74975d2d85e89f"/><file name="RequestMediator.php" hash="0d01e2e18ff502516c5724a995140cd2"/></dir><file name="EntityBody.php" hash="5e7d97a7d64e019859b9737d8d37a2d7"/><file name="EntityBodyInterface.php" hash="c6942f8b5cef9fa3fb6d5b7e7f718a29"/><dir name="Exception"><file name="BadResponseException.php" hash="2e358b13ef147dd6b226366a28860c7e"/><file name="ClientErrorResponseException.php" hash="13cab04cce406a1b0afcfea86ef7031c"/><file name="CouldNotRewindStreamException.php" hash="08075c1d0711249e1f0674d86b57d2ce"/><file name="CurlException.php" hash="d42f19fc1b034f410149e6ce97d5c750"/><file name="HttpException.php" hash="f78259ea006cf165d4848a312c827d0d"/><file name="MultiTransferException.php" hash="72967b8cba5f64f9e05dd8a3a609546f"/><file name="RequestException.php" hash="e5f816167d92abea64ee09a5be87fe94"/><file name="ServerErrorResponseException.php" hash="fe2621a64b89853c555a97ceffca9b08"/><file name="TooManyRedirectsException.php" hash="9c530bbf82d46c8014ede984fbc308e5"/></dir><file name="IoEmittingEntityBody.php" hash="af444084e0f6f7b83c2813db7848196d"/><dir name="Message"><file name="AbstractMessage.php" hash="b6b1aa0e6f9e5392b4164f17a504198a"/><file name="EntityEnclosingRequest.php" hash="366c71ac8825cf62c8386b52d98cf5df"/><file name="EntityEnclosingRequestInterface.php" hash="74189c9d4edcd2f6dbc04a53c538a8ee"/><dir name="Header"><file name="CacheControl.php" hash="f5025f2ec81740068b61c37014b20c94"/><file name="HeaderCollection.php" hash="f8280b853d953d1df103d26dc9f99c60"/><file name="HeaderFactory.php" hash="5a039da3a9ae34fbdba128ca675ba6e4"/><file name="HeaderFactoryInterface.php" hash="e82845c9bf276a9a2b012e54927dd6c9"/><file name="HeaderInterface.php" hash="57719abc7b9e3a8c7c65b826a69a4df9"/><file name="Link.php" hash="b65c1fa22f1f80185d6443488c6f2db2"/></dir><file name="Header.php" hash="a1e0ae834c7a2ab486ed05b9c542db67"/><file name="MessageInterface.php" hash="b2806bc032b6960b6251b82dd23f61fd"/><file name="PostFile.php" hash="7dfb1139d6f59e8cd91203d8f66d5ad9"/><file name="PostFileInterface.php" hash="20adf5af26e9cabe000e9222fbaa64cf"/><file name="Request.php" hash="49eeb3d0438ae595faba011d79755220"/><file name="RequestFactory.php" hash="81875dcdbd5f5c65664c7783d9964c15"/><file name="RequestFactoryInterface.php" hash="076e8c936861a6aaf2e2a2772ac6158b"/><file name="RequestInterface.php" hash="e643c7a168461ff20fad2e83b8b94960"/><file name="Response.php" hash="b8001c30bde276b492860d9c706adb4b"/></dir><file name="Mimetypes.php" hash="296f3caa16598a0262fcc05cde66cbe4"/><dir name="QueryAggregator"><file name="CommaAggregator.php" hash="67ceee8d6a476d2a66594512aaa85c54"/><file name="DuplicateAggregator.php" hash="065d2f19bf0670cbe63d7d7164093b9b"/><file name="PhpAggregator.php" hash="819504c086b326dbe1ea261c1d94344b"/><file name="QueryAggregatorInterface.php" hash="0bad1c6e1af16c2d634e58e5cb272a37"/></dir><file name="QueryString.php" hash="651513f362f6caa748e61e848b8189a6"/><file name="ReadLimitEntityBody.php" hash="2060e14d573e4a4d5ec942bd94302c69"/><file name="RedirectPlugin.php" hash="6c0cae4ec5e8491acaf8cd225ee50c13"/><dir name="Resources"><file name="cacert.pem" hash="349ba2d6964db9ca558c9e1daf38e428"/><file name="cacert.pem.md5" hash="6c0a511493af137ac6d8d69021a8848a"/></dir><file name="StaticClient.php" hash="84309c875fef96b4e773373d49e6c79a"/><file name="Url.php" hash="fcaf1700c1cf21660974367768ec2535"/></dir><dir name="Inflection"><file name="Inflector.php" hash="af099fa9a6f19542cd50dc4b9e53c630"/><file name="InflectorInterface.php" hash="a575fde89bf5331c554754e83eb82dd0"/><file name="MemoizingInflector.php" hash="990be5be097a292ed84e3ce5515754ec"/><file name="PreComputedInflector.php" hash="9f2b03877e501cfefe8f1ef2f616c133"/></dir><dir name="Iterator"><file name="AppendIterator.php" hash="d17ed123efb05b686f44c2eed7d3c4fe"/><file name="ChunkedIterator.php" hash="8cdd7e82a00b9a01136a8f056db18f64"/><file name="FilterIterator.php" hash="ed7e0d5590d718f246627b7f6949cba6"/><file name="MapIterator.php" hash="7d28a4b22f442e13b6874f55746b28e0"/><file name="MethodProxyIterator.php" hash="4518ead4f857bd9721b1226068f7eb32"/></dir><dir name="Log"><file name="AbstractLogAdapter.php" hash="8125cc1372285a9132d96a76ff87dbbf"/><file name="ArrayLogAdapter.php" hash="7cd65cd88fcdb68f6a682fdf34b4a8ae"/><file name="ClosureLogAdapter.php" hash="d5798485461e5f0057f2d41e8e37cf88"/><file name="LogAdapterInterface.php" hash="67ea49d97a88cf2e46f7563abc2504a7"/><file name="MessageFormatter.php" hash="c9544d2a631334bfd77f452d270ea761"/><file name="MonologLogAdapter.php" hash="6e309ba00aa769eec28500b26f4c018f"/><file name="PsrLogAdapter.php" hash="55b4beb10ccf08e3a6041a2b404431ff"/><file name="Zf1LogAdapter.php" hash="baf4ad91fbc41481bc565f6b0079c4b4"/><file name="Zf2LogAdapter.php" hash="150ac5b6d1597041896ba262f8df8930"/></dir><dir name="Parser"><dir name="Cookie"><file name="CookieParser.php" hash="33f6a9285dd2ec90dc87fb4fc998e59d"/><file name="CookieParserInterface.php" hash="98ef9046ca0ce771cd9a7cf823b76c66"/></dir><dir name="Message"><file name="AbstractMessageParser.php" hash="d2dab239632534f4966b284135abe69c"/><file name="MessageParser.php" hash="c5b9f75ddeb4c0231a595a3a7fb442c7"/><file name="MessageParserInterface.php" hash="1d3f9753d1186f001acc71f2b383e139"/><file name="PeclHttpMessageParser.php" hash="dbe4987f6c937c04a93161531fc38938"/></dir><file name="ParserRegistry.php" hash="a538b157111059ac6cdee20699400aee"/><dir name="UriTemplate"><file name="PeclUriTemplate.php" hash="8bc54f20bbdf7159edf75973efbd6999"/><file name="UriTemplate.php" hash="b8c59a215eb0bfabdbb42b1fb9e74542"/><file name="UriTemplateInterface.php" hash="1920e2818088ba2acebdf36a44fb58bf"/></dir><dir name="Url"><file name="UrlParser.php" hash="65660d68ad322bba1a1131c2c2d48c28"/><file name="UrlParserInterface.php" hash="b4d8c4cb8ca13a5ac8f3dbe3e4f7f42d"/></dir></dir><dir name="Plugin"><dir name="Async"><file name="AsyncPlugin.php" hash="12ec1382a5c2c4d2c76bca740610fcf9"/></dir><dir name="Backoff"><file name="AbstractBackoffStrategy.php" hash="07ee263d5fe87295e8d5ecf532b4e6c5"/><file name="AbstractErrorCodeBackoffStrategy.php" hash="5308b4c3bfa331b1feec2e886bf1e38d"/><file name="BackoffLogger.php" hash="2e9be2da8552ebc96075444c48b950a1"/><file name="BackoffPlugin.php" hash="1682322fb85d5d260de15f087615e400"/><file name="BackoffStrategyInterface.php" hash="d335f9d4bd310ef8389e2ff27c6f8f2f"/><file name="CallbackBackoffStrategy.php" hash="0a2fe568fe891ef304aeff3ef105e6d6"/><file name="ConstantBackoffStrategy.php" hash="38485d972e1fcc876e22d092dfde7f39"/><file name="CurlBackoffStrategy.php" hash="7a00f8bdddbd441eed9268c4bb250399"/><file name="ExponentialBackoffStrategy.php" hash="9c199d621974ad2c70c437629d54fdb4"/><file name="HttpBackoffStrategy.php" hash="4443aff69969039d756e3580b1353067"/><file name="LinearBackoffStrategy.php" hash="f91a338afaa2d8c55d5e00ce739e1f6d"/><file name="ReasonPhraseBackoffStrategy.php" hash="0245fa4a73cd4071b14e0595423e0430"/><file name="TruncatedBackoffStrategy.php" hash="86af5b5166fff87b89c24214cb399841"/></dir><dir name="Cache"><file name="CacheKeyProviderInterface.php" hash="b3615e71ca2d35d1455a4399cdc95241"/><file name="CachePlugin.php" hash="3b10308c4b3d8732f26740b2cd8dc0ad"/><file name="CacheStorageInterface.php" hash="d65ee0463cb9a70b29e4d2bfd59c146c"/><file name="CallbackCanCacheStrategy.php" hash="262f7b68f93486affbcc78e8eb850b32"/><file name="CanCacheStrategyInterface.php" hash="739959b1f128d105e3587788d6cb4b37"/><file name="DefaultCacheKeyProvider.php" hash="1e89b5a4015f65e399a9cdae2bc2f205"/><file name="DefaultCacheStorage.php" hash="c441c05e04aaea4a990e9c301f9e41fb"/><file name="DefaultCanCacheStrategy.php" hash="72dc9cba472369e097053dc3b62fa83c"/><file name="DefaultRevalidation.php" hash="6365295c02e5c495273d555cf19d0251"/><file name="DenyRevalidation.php" hash="0fd0df77357918d89dd1ef77a25d6267"/><file name="RevalidationInterface.php" hash="29ffe4f945e9e554514675e9b7e8dec0"/><file name="SkipRevalidation.php" hash="b311c417b3f64d396190e2279bc9ccf0"/></dir><dir name="Cookie"><file name="Cookie.php" hash="547a2a85d45e3d7537d73e5c92d52ac8"/><dir name="CookieJar"><file name="ArrayCookieJar.php" hash="b9fc0b456696c9dc7e34412b8e148d18"/><file name="CookieJarInterface.php" hash="27581b77c7c53c684a4c98041dda8f14"/><file name="FileCookieJar.php" hash="c02f91c6d1d63e21b9bf1da54c47dee0"/></dir><file name="CookiePlugin.php" hash="5b742edeb19bc6b3eb7590da7538ba7b"/><dir name="Exception"><file name="InvalidCookieException.php" hash="d4ecb86a7aa26d8016234992720a79d5"/></dir></dir><dir name="CurlAuth"><file name="CurlAuthPlugin.php" hash="358c6af63ea1143f7ec0d05b2dc87b9f"/></dir><dir name="ErrorResponse"><file name="ErrorResponseExceptionInterface.php" hash="e5139e14a9ce13f3263366a33d672d0a"/><file name="ErrorResponsePlugin.php" hash="87d87b72a3570ba03af24040da331ebb"/><dir name="Exception"><file name="ErrorResponseException.php" hash="f41fd239940b8a9743175aa7fcb667b9"/></dir></dir><dir name="History"><file name="HistoryPlugin.php" hash="a96548ca730dc3c30f4fd55269ab9366"/></dir><dir name="Log"><file name="LogPlugin.php" hash="bedc5bb7bf15bc61d0f0209514c6d9c2"/></dir><dir name="Md5"><file name="CommandContentMd5Plugin.php" hash="fceaf6b488b364494a019a3edeea5ca7"/><file name="Md5ValidatorPlugin.php" hash="c0177985a655c2cbeeebb603aa871129"/></dir><dir name="Mock"><file name="MockPlugin.php" hash="11bb836c7678634574402a32544a3dcf"/></dir><dir name="Oauth"><file name="OauthPlugin.php" hash="d05bf6e3fc46721433c6e3bcf862dd12"/></dir></dir><dir name="Service"><file name="AbstractConfigLoader.php" hash="fadda279693196ee2b060c08c690e85e"/><dir name="Builder"><file name="ServiceBuilder.php" hash="f21d131c279c905c2fbabc0976eef4bd"/><file name="ServiceBuilderInterface.php" hash="bc6520550afd05e5f27ee497ddc9b98a"/><file name="ServiceBuilderLoader.php" hash="53a96413e4c1a2b37510ff004e6b6761"/></dir><file name="CachingConfigLoader.php" hash="2c839f9e977f695311d62795940c640c"/><file name="Client.php" hash="4875a07f231f1796977f030dcedd71e6"/><file name="ClientInterface.php" hash="69101c62bb0ff45a844b6864fc4cf45c"/><dir name="Command"><file name="AbstractCommand.php" hash="ef74b74d4fd9454e742978eea702ffd7"/><file name="ClosureCommand.php" hash="3876307ef98207db9cdfada1fd8f5224"/><file name="CommandInterface.php" hash="8b4f4127ba39a0272b3bf9e5a7976178"/><file name="CreateResponseClassEvent.php" hash="e433e97f9b6e2ef5f36e50170b683db2"/><file name="DefaultRequestSerializer.php" hash="1d9eb4d74050e29aaf556089bc5ccc17"/><file name="DefaultResponseParser.php" hash="5e7b6a44f65acf7419c6b8fdd2dbe1d8"/><dir name="Factory"><file name="AliasFactory.php" hash="8aa51c0d9fa6f5935551476a44355f3b"/><file name="CompositeFactory.php" hash="dd2d5cbc41ef6251021ff72a19774444"/><file name="ConcreteClassFactory.php" hash="e7016e0a7a21bde0fd77843e04063c54"/><file name="FactoryInterface.php" hash="8fcc60e2f072c8db3f827d5cbd12bb0f"/><file name="MapFactory.php" hash="4445d257270bfa8582e3e3c81c9826f3"/><file name="ServiceDescriptionFactory.php" hash="9968506d9ec070b60f01194333e65688"/></dir><dir name="LocationVisitor"><dir name="Request"><file name="AbstractRequestVisitor.php" hash="45216644e104e45d7292d14ba0bbd49a"/><file name="BodyVisitor.php" hash="f1cf1712a0f418f7886d83e21c595179"/><file name="HeaderVisitor.php" hash="226cd1bca529a8264c7b36de67c1e047"/><file name="JsonVisitor.php" hash="19ea9ecc74adb93e653de7bbd21d0238"/><file name="PostFieldVisitor.php" hash="09063aa2cdd5c2674a1dc0dfc48fa9dd"/><file name="PostFileVisitor.php" hash="971b1625f46b1e37dbbbadeb2bffa4e2"/><file name="QueryVisitor.php" hash="6a1d4a491cb910600dc74cf2f3fc7796"/><file name="RequestVisitorInterface.php" hash="5d442ef6170bfa2c9758a0e665f580fd"/><file name="ResponseBodyVisitor.php" hash="fa1a16f74a8940b84d992fad65a65f4c"/><file name="XmlVisitor.php" hash="f3ff451f62607873579e4c0faafa97f6"/></dir><dir name="Response"><file name="AbstractResponseVisitor.php" hash="4bc3f2edf4afc88584b17ba247dfad13"/><file name="BodyVisitor.php" hash="dcd7319c0c8ecda98d2333f895a601bc"/><file name="HeaderVisitor.php" hash="43324f3f88ba9d90d44c4a2e15220204"/><file name="JsonVisitor.php" hash="c6ab595cd3a437e9b4694910d18755fd"/><file name="ReasonPhraseVisitor.php" hash="0a41ebce6a4a6d3803575e49c09cbc4d"/><file name="ResponseVisitorInterface.php" hash="18232989140f5e739150f08224fed604"/><file name="StatusCodeVisitor.php" hash="f53e7b4f7fe03cdc85eb1ef162ef31d3"/><file name="XmlVisitor.php" hash="d8b2719d2f9ed4fe6205c2d3cfbaa788"/></dir><file name="VisitorFlyweight.php" hash="3732e718ba63b6f12cf959e413abf4cf"/></dir><file name="OperationCommand.php" hash="e8534f362daa12372303e568fbfee50d"/><file name="OperationResponseParser.php" hash="bbeeaf651605a494a97315e221f5eb1a"/><file name="RequestSerializerInterface.php" hash="2708244364227d07a2d7f0a17c6ba340"/><file name="ResponseClassInterface.php" hash="708c7975642393f9ce81c153e52435e5"/><file name="ResponseParserInterface.php" hash="a91578d74ece771f799b5b82cfcf0e38"/></dir><file name="ConfigLoaderInterface.php" hash="2be49f0609718d4c14b12bae53986d19"/><dir name="Description"><file name="Operation.php" hash="9f0e2431f42f6ea801274dd6e5bfb0ab"/><file name="OperationInterface.php" hash="5963a5dfd9ac12fa445bae0c6e448b4b"/><file name="Parameter.php" hash="c6c439a00f5875e80c60db5d8a53c6d9"/><file name="SchemaFormatter.php" hash="ce530ca216be35c2bbbcf039e406f615"/><file name="SchemaValidator.php" hash="085c3c65a26613264c8e6638529e96a0"/><file name="ServiceDescription.php" hash="7bc23c91d8d2425b173232343bcd8e3d"/><file name="ServiceDescriptionInterface.php" hash="707691524755790d0966aec6f0fce3fe"/><file name="ServiceDescriptionLoader.php" hash="e1a1221fc817313a6fc938eab0ecf163"/><file name="ValidatorInterface.php" hash="f2706a6daa8b81c9913e674706f85414"/></dir><dir name="Exception"><file name="CommandException.php" hash="1df1bdac1d58ec3a347471966e68df6d"/><file name="CommandTransferException.php" hash="9edcea572ed2dc682e430c5e0b64c310"/><file name="DescriptionBuilderException.php" hash="ebc20f875e94bc177b8bf8f5fd6f713e"/><file name="InconsistentClientTransferException.php" hash="34277f53685d0b8f38ca42e7f73f3df7"/><file name="ResponseClassException.php" hash="f92469d44de7724961a887bb26a6f923"/><file name="ServiceBuilderException.php" hash="2c8628b6030bd4f65ee719f54e34edb7"/><file name="ServiceNotFoundException.php" hash="2c26c9658cd335f803eb6a84c69b5220"/><file name="ValidationException.php" hash="e86b42ed471ce9aec762773e21c42b0f"/></dir><dir name="Resource"><file name="AbstractResourceIteratorFactory.php" hash="e7c9f7f16fdef7cbf277266b1fb2b163"/><file name="CompositeResourceIteratorFactory.php" hash="fdffbd0d70bdedfedd3ddcc3be6bdc0a"/><file name="MapResourceIteratorFactory.php" hash="492689e6ae80219b1621cf542e22a290"/><file name="Model.php" hash="09f2071e73ab1448f21b59f4dad3a82a"/><file name="ResourceIterator.php" hash="4262f6af3d1ff478e4cb1a53eee78605"/><file name="ResourceIteratorApplyBatched.php" hash="ffbe2448991e37adb7d552458fe77e06"/><file name="ResourceIteratorClassFactory.php" hash="6c084e3659294bf6d32f52fa08ff1315"/><file name="ResourceIteratorFactoryInterface.php" hash="671eb86847e86900bb2a5486ba220a7d"/><file name="ResourceIteratorInterface.php" hash="ec6765b5d75fd264ace1d9ac04810a02"/></dir></dir><dir name="Stream"><file name="PhpStreamRequestFactory.php" hash="507198e91119d49d2d28c87e9c8fcaab"/><file name="Stream.php" hash="0fc9061103b38fc0b224a9d285bd83fa"/><file name="StreamInterface.php" hash="01dd322c8ff8414eff7ff8eb53bc145b"/><file name="StreamRequestFactoryInterface.php" hash="76c22d99485818b7aed4c1482f30448b"/></dir></dir><dir name="Monolog"><dir name="Formatter"><file name="ChromePHPFormatter.php" hash="71556b69ade93eb7eb296611dcde581e"/><file name="FormatterInterface.php" hash="6393c1db9899b0f9e3fc4ad3d6a898dd"/><file name="GelfMessageFormatter.php" hash="7d9f36780e0a42c8f5f6dd9321582bcd"/><file name="JsonFormatter.php" hash="b0e0eaa76187d769d9db5d5ebf969efd"/><file name="LineFormatter.php" hash="c350e311b66c3a11177c3a02ff87c699"/><file name="LogstashFormatter.php" hash="d7fc7de629f67f8ede9c51b0f3db0db3"/><file name="NormalizerFormatter.php" hash="2edf697812e843ed3436dc3190679fb7"/><file name="WildfireFormatter.php" hash="c95966c78df00d0b12db9475c62d98b9"/></dir><dir name="Handler"><file name="AbstractHandler.php" hash="2c5cfd3a0895fc97286292004f8ca8e2"/><file name="AbstractProcessingHandler.php" hash="57818182f50293167d3cad8708835a86"/><file name="AmqpHandler.php" hash="b683664f74bd01d7abc6cfec4cf1dede"/><file name="BufferHandler.php" hash="0dd06846cb6d9c83ebbbb9bd4575d40f"/><file name="ChromePHPHandler.php" hash="ce5013e952291da9181594290b01e0a1"/><file name="CouchDBHandler.php" hash="831f775592d7ad37b5bc0766180aef81"/><file name="CubeHandler.php" hash="d21ba7e017370fb3c37dffc5f6d94ddb"/><file name="DoctrineCouchDBHandler.php" hash="abc48686f395a089e55a2ec1a4fe4b78"/><dir name="FingersCrossed"><file name="ActivationStrategyInterface.php" hash="6bf84f27f4b7a0016afa63430cf6f8be"/><file name="ErrorLevelActivationStrategy.php" hash="bdf746aa0bc5b2eea3cabcbcc2a7d355"/></dir><file name="FingersCrossedHandler.php" hash="a8c810bf446081f0e2ccb8348675b6c8"/><file name="FirePHPHandler.php" hash="2721106585c3ff6b6dc30d4730ca9c39"/><file name="GelfHandler.php" hash="7b80722808be4f049f6a6a955fd42e0f"/><file name="GroupHandler.php" hash="4bc9e4378c31a77b5e94e94b4b70ef9a"/><file name="HandlerInterface.php" hash="5198e49e18301600a07c29f50cd5c26c"/><file name="MailHandler.php" hash="9a24c301fa6574039e04f6b39f2251c9"/><file name="MissingExtensionException.php" hash="bd31f2e5f407524b03bf0ba0e29cfed5"/><file name="MongoDBHandler.php" hash="efbe923d709936a958439ace94b7fac8"/><file name="NativeMailerHandler.php" hash="05697ada7b3c8594db1f39c4fea65722"/><file name="NullHandler.php" hash="d2f5ef3d84e4f42bcff3084a5d8fbb98"/><file name="PushoverHandler.php" hash="ab10ea30bb09fcc49d7c3338ee76924a"/><file name="RavenHandler.php" hash="94d1ea16e8031c8b473b473b126b57e2"/><file name="RedisHandler.php" hash="9e47db3309a737924e4e7af9a0578336"/><file name="RotatingFileHandler.php" hash="ce8c3a6edde47725d990a78f8f7415ff"/><file name="SocketHandler.php" hash="91f96eadaa8638bb08d29a955bfdc26d"/><file name="StreamHandler.php" hash="00c51e6eb9ae7a2365306a354f817dd8"/><file name="SwiftMailerHandler.php" hash="1629ccbec6426456d0c070d44083fa62"/><file name="SyslogHandler.php" hash="f83d5fce1414cfcc6ad5b3a0c5f56117"/><file name="TestHandler.php" hash="af915fa2a14a03fc3c0ec01af9782c86"/><file name="ZendMonitorHandler.php" hash="03413df93287814fe4225b94294551c3"/></dir><file name="Logger.php" hash="0ea2c8c1fda18665ea33f9f8cb8cc0ab"/><dir name="Processor"><file name="IntrospectionProcessor.php" hash="d27e01c549fc115eb0280d8765cd9b74"/><file name="MemoryPeakUsageProcessor.php" hash="5302013ef46651b85332ef83c81b345f"/><file name="MemoryProcessor.php" hash="773ff1f33c494554d70fbb2830b9c421"/><file name="MemoryUsageProcessor.php" hash="0e103c55b2bdc0f148acad70e3b30db5"/><file name="PsrLogMessageProcessor.php" hash="3b61d93bef2af961e4814cffc3fa5c69"/><file name="WebProcessor.php" hash="a686998a0f2a5d8240907068f9c0f9c1"/></dir></dir><dir name="Psr"><dir name="Log"><file name="AbstractLogger.php" hash="a57c1be541193b72d09307bb0dfb9ed2"/><file name="InvalidArgumentException.php" hash="7d2f0bd1583524d739fff12f0507de65"/><file name="LogLevel.php" hash="19ab55cc711ed2f3ab2ec72e7f0600cb"/><file name="LoggerAwareInterface.php" hash="3ba5ffac8108e1da7657b1fad8651900"/><file name="LoggerAwareTrait.php" hash="5b3adf6c4f09c61d7488b0f9ac2c696a"/><file name="LoggerInterface.php" hash="023885df6a26d8137d5a13da51f066d2"/><file name="LoggerTrait.php" hash="1cb8db6d0b81cf85f81b6c7c09db7a9a"/><file name="NullLogger.php" hash="e71559fea0239b7441d221f8c7beae5b"/><dir name="Test"><file name="LoggerInterfaceTest.php" hash="867f36a94c35322470458f4eba246458"/></dir></dir></dir><file name="S3.php" hash="9b88ee3ec7e421978270ba37fd3140a3"/><dir name="Symfony"><dir name="Component"><dir name="ClassLoader"><file name="ApcClassLoader.php" hash="86d9a3b8315c0692848769a9c1c3e9c5"/><file name="ApcUniversalClassLoader.php" hash="13864652955ff0c5022e5553b509729e"/><file name="ClassCollectionLoader.php" hash="e93bc22ebc1bddbcb25c82b3bdcd9e2f"/><file name="ClassLoader.php" hash="524dfe8aff9aefd074d38ecdc888a399"/><file name="ClassMapGenerator.php" hash="3866e36ec0fe67f2469b8ec8aeb5333c"/><file name="DebugClassLoader.php" hash="d81299fddda21c2171161445bd865017"/><file name="DebugUniversalClassLoader.php" hash="edc1307f2a08518aefb89f5aab8a477e"/><file name="MapClassLoader.php" hash="82e86d3ab5084a7720463b20db3f467b"/><dir name="Tests"><file name="ApcUniversalClassLoaderTest.php" hash="3fb37ebb53adc1aa6b55c84c49fcf5a8"/><file name="ClassCollectionLoaderTest.php" hash="23912b93dc7de2003f49d7f1e2c25732"/><file name="ClassLoaderTest.php" hash="6a58f5ed32089b0458e3ee031f30c804"/><file name="ClassMapGeneratorTest.php" hash="6cd9f7dac5d5f1daa2d40903ae0c4d23"/><dir name="Fixtures"><dir name="Apc"><dir name="Namespaced"><file name="Bar.php" hash="450ce1f75995d3855e2890174cad81c9"/><file name="Baz.php" hash="272f5b10737a621697301cef1fd00c34"/><file name="Foo.php" hash="b52382287fd5a64b85c707f0841c797d"/><file name="FooBar.php" hash="03276dc89dca3856b642091121781aa7"/></dir><dir name="Pearlike"><file name="Bar.php" hash="5d889368e4bd7b30ea2179f77d82816f"/><file name="Baz.php" hash="03ca66795cd12fdb9d39b41825906973"/><file name="Foo.php" hash="f2002a4177d860d4b3763db043f9776f"/></dir><dir name="alpha"><dir name="Apc"><dir name="ApcPrefixCollision"><dir name="A"><file name="Bar.php" hash="9affd828e7b937fa5dab9348a1c106c3"/><file name="Foo.php" hash="565482b47ad54f50794890243d517198"/></dir></dir><dir name="NamespaceCollision"><dir name="A"><file name="Bar.php" hash="3f41e3c6878caa34053b0df735fd06d4"/><file name="Foo.php" hash="199f5fc8858ff6ba24e9a1927a436a1f"/></dir></dir></dir></dir><dir name="beta"><dir name="Apc"><dir name="ApcPrefixCollision"><dir name="A"><dir name="B"><file name="Bar.php" hash="88f045e809ca7fb0c18dfdbb7bbedbfc"/><file name="Foo.php" hash="0a6020428498f5d43bdd1871bdfe5fff"/></dir></dir></dir><dir name="NamespaceCollision"><dir name="A"><dir name="B"><file name="Bar.php" hash="133c40a5d435bb2607fcaba19a177e92"/><file name="Foo.php" hash="b4809859bdbb243d35edfa3da736c859"/></dir></dir></dir></dir></dir><dir name="fallback"><dir name="Apc"><dir name="Pearlike"><file name="FooBar.php" hash="83f27620b7ba2c11696bdf11716d223d"/></dir></dir><dir name="Namespaced"><file name="FooBar.php" hash="03276dc89dca3856b642091121781aa7"/></dir></dir></dir><dir name="ClassesWithParents"><file name="A.php" hash="c0ba313164bfc6fc725c67e515af6368"/><file name="ATrait.php" hash="c718b10e49ff27e12c0674e674e85a6b"/><file name="B.php" hash="0322eeaef5105762706853bd4445f92d"/><file name="BTrait.php" hash="f6d6d69da53085f34b2363d23081783f"/><file name="CInterface.php" hash="ea775929d42f58af393b4f224c59b1c9"/><file name="CTrait.php" hash="f925be736833be1a46dcb4878537cfe3"/><file name="D.php" hash="d1a43cd2eb1d650a46793b4324717801"/><file name="E.php" hash="676dc682573657553221b8997da6fe5f"/><file name="GInterface.php" hash="6ea7e288f1a6c11ad35be1011275cf49"/></dir><dir name="Namespaced"><file name="Bar.php" hash="0bd20d6bd956d80ab403aab7ec1692d3"/><file name="Baz.php" hash="669a66483c0b6c6d301928afdc9c4e4f"/><file name="Foo.php" hash="004debf153631e65aa55a6a595f5e859"/><file name="WithComments.php" hash="63773f312e4568035cea34d1e7049f93"/></dir><dir name="Namespaced2"><file name="Bar.php" hash="0e1341c26bd5098d0666416a99328602"/><file name="Baz.php" hash="f7037244d76da1670a0b6ab35980d735"/><file name="Foo.php" hash="7017318cc8fb7cb1b43f1f7caf023e5b"/></dir><dir name="Pearlike"><file name="Bar.php" hash="092caf7c7dda0fd29b6a4eb94e16e8c7"/><file name="Baz.php" hash="7ec330e5918e68855ea1928650677c2e"/><file name="Foo.php" hash="2ccc8e12aac56ba8a19cc5749f4ddef6"/><file name="WithComments.php" hash="8d6f9450b4d45d80d880d449c0f8ec73"/></dir><dir name="Pearlike2"><file name="Bar.php" hash="43c84f5dcf75beec1d21efa12d74d135"/><file name="Baz.php" hash="14a87e5a8699b57391eff2c94f576c18"/><file name="Foo.php" hash="ed2a4f5ef1c5a5b94181d4caff23caff"/></dir><dir name="alpha"><dir name="NamespaceCollision"><dir name="A"><file name="Bar.php" hash="7839cd8c5550658fbc5dd8f50db33db4"/><file name="Foo.php" hash="e85a0c52a4381199ded8fca8e42c1875"/></dir><dir name="C"><file name="Bar.php" hash="80ffae60899e48b99924c3a907d38255"/><file name="Foo.php" hash="9c0b9aefd4284a57d7f649b8cde024c5"/></dir></dir><dir name="PrefixCollision"><dir name="A"><file name="Bar.php" hash="44d59b6bdb3555587a3be549beb19451"/><file name="Foo.php" hash="89c3f524e25d5abff91ddae0a9aa39f8"/></dir><dir name="C"><file name="Bar.php" hash="59093638625c5324d12879437e82ac23"/><file name="Foo.php" hash="3a0c0cab70920049cf7c910659bbdddb"/></dir></dir></dir><dir name="beta"><dir name="NamespaceCollision"><dir name="A"><dir name="B"><file name="Bar.php" hash="1234b8d86aed91dae669333ff5ae887f"/><file name="Foo.php" hash="c3ff0020d627887437102f59aaa6d5a0"/></dir></dir><dir name="C"><dir name="B"><file name="Bar.php" hash="16acd0ac1810324ade58e7f527b11721"/><file name="Foo.php" hash="cbe4fddcef55d82678ce042506df312e"/></dir></dir></dir><dir name="PrefixCollision"><dir name="A"><dir name="B"><file name="Bar.php" hash="7171280695f683129338bbc9127e8a5b"/><file name="Foo.php" hash="64b36c967661286fb774e010be84b5fc"/></dir></dir><dir name="C"><dir name="B"><file name="Bar.php" hash="d01e56d7432f31c185ea81acd0c3e43e"/><file name="Foo.php" hash="8c8934c39f7727374b802bea9c0892eb"/></dir></dir></dir></dir><dir name="classmap"><file name="SomeClass.php" hash="e4d922295055f51230604c8e3d231eae"/><file name="SomeInterface.php" hash="b183b2f81d0a3580b8494e2a315b5c0f"/><file name="SomeParent.php" hash="3925f28e4b3d85670506ec8f20ad5c1a"/><file name="multipleNs.php" hash="087217e8655325395af4f0dec57cde9b"/><file name="notAClass.php" hash="439f18e59d963c281150e47387e575e9"/><file name="sameNsMultipleClasses.php" hash="23a88b412716678374cb83b3bd84f281"/></dir><dir name="deps"><file name="traits.php" hash="bbbb1f58e6ce45f7f2fcf18009537d34"/></dir><dir name="fallback"><dir name="Namespaced"><file name="FooBar.php" hash="4bc49eb260c97d801f0c924b3cbb9e83"/></dir><dir name="Namespaced2"><file name="FooBar.php" hash="7f38452cd551fb2149367bc6b11329e2"/></dir><dir name="Pearlike"><file name="FooBar.php" hash="f8188170d810646eafce22ad6458c37c"/></dir><dir name="Pearlike2"><file name="FooBar.php" hash="fe464b289785a184fb96897588e17915"/></dir></dir><dir name="includepath"><file name="Foo.php" hash="22c1ff3bd402ac54f7663e249ee27265"/></dir><dir name="php5.4"><file name="traits.php" hash="d560ea07154ede9772e22e33f7ef7628"/></dir></dir><file name="UniversalClassLoaderTest.php" hash="393a45c8a8fc03e36dd139563e531f89"/></dir><file name="UniversalClassLoader.php" hash="aaf07f8f264c4476277d3fc72ce31258"/><file name="WinCacheClassLoader.php" hash="c41f5cdde6c04556fa520cb0eaecb4f1"/><file name="XcacheClassLoader.php" hash="18a01147625643b9bd83c2b8e372c987"/></dir><dir name="EventDispatcher"><file name="ContainerAwareEventDispatcher.php" hash="1f7db4681cb831f0f261094e9dea7df8"/><dir name="Debug"><file name="TraceableEventDispatcherInterface.php" hash="ec4b2758339bbb8439f50ae9b6134edf"/></dir><file name="Event.php" hash="d46c34f8bacd815af9a3af406d3b2ce9"/><file name="EventDispatcher.php" hash="7d4dcc000083c4f160538b434cf9e178"/><file name="EventDispatcherInterface.php" hash="e248cdbdf829780d183ee5e4aaab2055"/><file name="EventSubscriberInterface.php" hash="6bc33100c6e66896fb9145e1bd4b8b85"/><file name="GenericEvent.php" hash="db4fa1cfbad8c627e27697d8c7bcb7fd"/><file name="ImmutableEventDispatcher.php" hash="94bee16721f3a1a865fc870941ec34f4"/><dir name="Tests"><file name="ContainerAwareEventDispatcherTest.php" hash="6f043ea2923e4ed7c2f4416ad940b480"/><file name="EventDispatcherTest.php" hash="2dba0033bbb91a6bc00302d234a636ab"/><file name="EventTest.php" hash="2d8c1f9d12f69cfd4420faf7874573ab"/><file name="GenericEventTest.php" hash="8afc099e4ad8943631f79a86c5c17313"/><file name="ImmutableEventDispatcherTest.php" hash="5904287d821662a2259f7576abe4998d"/></dir></dir></dir></dir><file name="aws-autoloader.php" hash="f14db3110c423408a5c1e0ff81acd3a4"/></dir></target><target name="mageetc"><dir name="modules"><file name="Knolseed_Engage.xml" hash="d261495906f6bce041a62a40c608555f"/></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.2.1</min><max>5.5.13</max></php></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Knolseed</name>
4
+ <version>1.1.10</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Knolseed Magento Extension</summary>
10
  <description>Knolseed Magento Extension</description>
11
+ <notes>No known bugs or limitations</notes>
12
  <authors><author><name>Mohan Varadarajan</name><user>KnolseedTech</user><email>mohan@knolseed.com</email></author></authors>
13
+ <date>2014-09-11</date>
14
+ <time>10:28:23</time>
15
+ <contents><target name="magelocal"><dir name="Knolseed"><dir name="Engage"><dir name="Block"><dir name="Adminhtml"><dir name="Engage"><dir name="Edit"><file name="Form.php" hash="8be003c0b60c8d5b85611ac14e9ea6fd"/><dir name="Tab"><file name="Form.php" hash="8a7d81b8dc569a24ab26e2f2adab6477"/></dir><file name="Tabs.php" hash="15beb8a0ec0bb422963fb7ed0f0cd35a"/></dir><file name="Edit.php" hash="53a459ef71bc48569d0812bf2e21acf0"/><file name="Grid.php" hash="e58fe0b54ce1f2196971d2825aa6e2b9"/></dir><file name="Engage.php" hash="10bb9b17de7a4721893e9f9129701ef1"/></dir><file name="Button.php" hash="8b1d2ecbc79cbd2917a29bc4d0152a93"/><file name="Buttonexport.php" hash="0ea9196c02b1952c6f0632542ac5d2a4"/><file name="Buttontestconnect.php" hash="e388161e55080ae63c17764b2b6f83d1"/><file name="Engage.php" hash="eece4f427dcb0b136a3435dbbac9a2a7"/><file name="Ga.php" hash="05d300c2e95dda7a01782b238e842fa1"/></dir><dir name="Helper"><file name="Data.php" hash="bceea191f387686922f7bd38ad35c9e5"/></dir><dir name="Model"><file name="Catalogvalues.php" hash="1eb4d0990dab378102a315e2f7dea195"/><file name="Crontime.php" hash="aa11fbc0518015f0ea9ad31879e2942c"/><file name="Customervalues.php" hash="dea955296bb81ede1a493b868dd1fa8e"/><file name="Engage.php" hash="e5e0c63deb2f9d5af46b6494bd8da04d"/><file name="Gacode.php" hash="e003a5e564b1448eeba88ffb5633f18b"/><dir name="Mysql4"><dir name="Engage"><file name="Collection.php" hash="e58859b2f5b4708eb941c9d06ade4598"/></dir><file name="Engage.php" hash="c492577c2fd9a6ae2f193d29474d2264"/></dir><file name="Observer.php" hash="ee31547c8c23308f3e504c7ea46f990e"/><file name="Productvalues.php" hash="2e25e89dd6bc052c526364e40d83cebe"/><file name="Status.php" hash="31986502af9ee8f584770587eef6c9e3"/><file name="Time.php" hash="5a8cda2b446d1e31c4e88fd6833609fb"/><file name="Timeframe.php" hash="123113578538af59392a39e6471827b0"/><file name="Uploadinfo.php" hash="ff0fbcfc2a4143f3c9d8f6caa1ecfa08"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="EngageController.php" hash="013a213662e81060695d5e1e23d696c9"/></dir><file name="IndexController.php" hash="1b5639c7d012fc2b18473f396ebf5899"/></dir><dir name="etc"><file name="adminhtml.xml" hash="d12bb84c74502244f2ab3ac82594856e"/><file name="config.xml" hash="46f910718c59a86efcb96df2b2b41ed8"/><file name="system.xml" hash="6d894107c020cab2c769250a651c7ba0"/></dir><dir name="sql"><dir name="engage_setup"><file name="mysql4-install-0.1.0.php" hash="e82cbb2edc97eef70fcd68f487e3b081"/></dir></dir></dir></dir></target><target name="magelib"><dir name="knolseed"><dir name="Aws"><dir name="AutoScaling"><file name="AutoScalingClient.php" hash="96f7817e2b957e0dff5b86b9b6375e01"/><dir name="Enum"><file name="LifecycleState.php" hash="9810bd2aa5e76553e2ff63eb1099ce0f"/><file name="ScalingActivityStatusCode.php" hash="d25ea9047b7808c202ef2ef8a4a77b0c"/></dir><dir name="Exception"><file name="AlreadyExistsException.php" hash="2a02b6cab633434c7ea21ecb83b58cf5"/><file name="AutoScalingException.php" hash="097796b2f6511b3ba61b0b6868fbaa71"/><file name="InvalidNextTokenException.php" hash="5514b82a135cb1458f01ae4160be4fb0"/><file name="LimitExceededException.php" hash="d0c352eb46597b28ed055ae061021287"/><file name="ResourceInUseException.php" hash="a71af59532132f4762a8c43ade822cad"/><file name="ScalingActivityInProgressException.php" hash="4219a0cba552d93baa06bbfc649ac324"/></dir><dir name="Resources"><file name="autoscaling-2011-01-01.php" hash="d7ae83165d1d181b9c64ad6a53068f99"/></dir></dir><dir name="CloudFormation"><file name="CloudFormationClient.php" hash="c0c79a7a6f698f7a02831c74e349ae1c"/><dir name="Enum"><file name="Capability.php" hash="87d3e5b2a1e471de32eacfe319a742f8"/><file name="OnFailure.php" hash="2dd2c835807d9199cb50e36088a18e81"/><file name="ResourceStatus.php" hash="700168f41f807abd7c97f15d9f4d901f"/><file name="StackStatus.php" hash="345f0b117d1f812f8e0b9ef0823d3ae8"/></dir><dir name="Exception"><file name="AlreadyExistsException.php" hash="4ffdae7a4ad78b89a8a4a9be1f536884"/><file name="CloudFormationException.php" hash="20085530b59b9e098c2ada9de3ee8351"/><file name="InsufficientCapabilitiesException.php" hash="065983a4508b04e9f500698db711a55a"/><file name="LimitExceededException.php" hash="bdc10d2e7ccb4be4729acf21aa87dbf4"/></dir><dir name="Resources"><file name="cloudformation-2010-05-15.php" hash="a91f58d121086b008998fcd1909c5ad3"/></dir></dir><dir name="CloudFront"><file name="CloudFrontClient.php" hash="c820712a8fdf2ee3ecd39e5a1a61d9e1"/><file name="CloudFrontSignature.php" hash="06eeb79f40f3a20ca9859a976961fee3"/><dir name="Enum"><file name="ItemSelection.php" hash="f89c600f2b261a6b3c94bf19d06e5eee"/><file name="Method.php" hash="67e88edf55940e191921ddf90b6025c4"/><file name="OriginProtocolPolicy.php" hash="8fe4e01406293f576e597ff771640d2e"/><file name="PriceClass.php" hash="d9a50e0437e0b662a157196b3abb9d5f"/><file name="ViewerProtocolPolicy.php" hash="204c54c2ae5c02726befe41b812b4bd6"/></dir><dir name="Exception"><file name="AccessDeniedException.php" hash="210a1d69c62f9c0b8add9a2a2e81f394"/><file name="BatchTooLargeException.php" hash="3105f7267554b58a0abf432d836e5bf4"/><file name="CNAMEAlreadyExistsException.php" hash="9425867f60b4d25848ff0bdd47300eaa"/><file name="CloudFrontException.php" hash="429e05ee70405874929cc108266b2d93"/><file name="CloudFrontOriginAccessIdentityAlreadyExistsException.php" hash="739105270b7721b7da091664ba3c0f14"/><file name="CloudFrontOriginAccessIdentityInUseException.php" hash="81d6a09bc4ce37d9a9e0bd2159043855"/><file name="DistributionAlreadyExistsException.php" hash="64f8c14cf76317489ce6a15330e0816a"/><file name="DistributionNotDisabledException.php" hash="c5230d53c99110d8b2675621be9c66f0"/><file name="Exception.php" hash="ce040bf287eacfd693b3dc759fcb800b"/><file name="IllegalUpdateException.php" hash="5ab60ad23c08fc77bcccf98fbd738dd2"/><file name="InconsistentQuantitiesException.php" hash="d6af918a252e0d4e943320a6bb1094cb"/><file name="InvalidArgumentException.php" hash="c6122a31c0194300c471656b3b874067"/><file name="InvalidDefaultRootObjectException.php" hash="3bc0b9f16f48a7dfd7d9144dd43b7acb"/><file name="InvalidErrorCodeException.php" hash="c05d8ffd76968aa2f48c8b8f7c19dbc4"/><file name="InvalidForwardCookiesException.php" hash="b50389875ae9a54ab825fea3e5773d4d"/><file name="InvalidIfMatchVersionException.php" hash="7aa670f81354a67f8270fd2246ad8fc1"/><file name="InvalidOriginAccessIdentityException.php" hash="7acfcfb24a66784da0c4c149f3cf29de"/><file name="InvalidOriginException.php" hash="632df0a0cc8f09ed6595eaab6eac9c02"/><file name="InvalidRelativePathException.php" hash="56dc34af823320de174eef4f680869e6"/><file name="InvalidRequiredProtocolException.php" hash="78829bb583c8a4720512602c2ce6ee4a"/><file name="InvalidResponseCodeException.php" hash="4976577e103856db9c652447c420b3b8"/><file name="InvalidViewerCertificateException.php" hash="c70c0a60aa37e8d231ce1ca53f6c0b75"/><file name="MissingBodyException.php" hash="3d73e714eacad430e11719913273dd9c"/><file name="NoSuchCloudFrontOriginAccessIdentityException.php" hash="c2de46b7e8db036f884d602fd8ab3870"/><file name="NoSuchDistributionException.php" hash="9ae49040ec2e2edd727602f6980dc685"/><file name="NoSuchInvalidationException.php" hash="7da1faa42d286d536feac45155267e51"/><file name="NoSuchOriginException.php" hash="5b35b829571f1999bcc7e565ef30698d"/><file name="NoSuchStreamingDistributionException.php" hash="645eeaeb9d90b5fff9292f12c9ae3bdc"/><file name="PreconditionFailedException.php" hash="42152d36e21dfe747281a7c858a51486"/><file name="StreamingDistributionAlreadyExistsException.php" hash="bc0b1ed3943a706b4d295c0194850ceb"/><file name="StreamingDistributionNotDisabledException.php" hash="3fc1a8ec0dbb390caf0c4ecbcf624a85"/><file name="TooManyCacheBehaviorsException.php" hash="7da5d049ce5ebb414100a1a6e5f6f63d"/><file name="TooManyCertificatesException.php" hash="9de72883ebc82430d9929cfe14d13941"/><file name="TooManyCloudFrontOriginAccessIdentitiesException.php" hash="4ecdbda99272c74d4fed210a208e271a"/><file name="TooManyCookieNamesInWhiteListException.php" hash="144be97dcb4b805e468143640a7cd7b3"/><file name="TooManyDistributionCNAMEsException.php" hash="a89ef05b8098ffb7680fefb0ea594edc"/><file name="TooManyDistributionsException.php" hash="54dee79c286c0aff8409ac5971e71511"/><file name="TooManyInvalidationsInProgressException.php" hash="eca63bd17aa8078e7ec2fb3005892ad3"/><file name="TooManyOriginsException.php" hash="a05117832ad5470e3463b3f1ef30836d"/><file name="TooManyStreamingDistributionCNAMEsException.php" hash="e60de7f873f70986dcd95b821eaf2a79"/><file name="TooManyStreamingDistributionsException.php" hash="ca8d40e2273ab45e658c83258d1e21bb"/><file name="TooManyTrustedSignersException.php" hash="ea330b820b574e48d2472eebbfd64a95"/><file name="TrustedSignerDoesNotExistException.php" hash="b3fbd3911bc8f06de92ff248b8555ace"/></dir><dir name="Resources"><file name="cloudfront-2012-05-05.php" hash="b41a6a6b93c7105c4ff2a3b68c4802eb"/><file name="cloudfront-2013-09-27.php" hash="0dbf58684f1572b08abb695a7aa72ccc"/></dir></dir><dir name="CloudSearch"><file name="CloudSearchClient.php" hash="ffaf08491ebe9a3ef110a776db3d2a96"/><dir name="Enum"><file name="IndexFieldType.php" hash="954e470184601c5b647ef9ffe38394fe"/><file name="OptionState.php" hash="873d197cdc4b981482af6eb9c0da02dd"/><file name="SearchInstanceType.php" hash="067a934719c5fcefdb2b517a47d9db30"/><file name="SourceDataFunction.php" hash="ef79db5b5c7ff675f73cd8dc100fe6d9"/></dir><dir name="Exception"><file name="BaseException.php" hash="6025fc0890fb9b17e6b7adf7dbb42552"/><file name="CloudSearchException.php" hash="919945b4b96b87794fa0a7f2b6318dea"/><file name="InternalException.php" hash="fc961cc6d81162dba3b37a722f7a1709"/><file name="InvalidTypeException.php" hash="53c50ecfb17a71464159d8a9025dbb71"/><file name="LimitExceededException.php" hash="ac9c9394e0b28d67c502d65948a62cf1"/><file name="ResourceNotFoundException.php" hash="87d148f4684efbc0cc02b3e9533976b2"/></dir><dir name="Resources"><file name="cloudsearch-2011-02-01.php" hash="daea426390f9d176c32f79039aa5d398"/></dir></dir><dir name="CloudTrail"><file name="CloudTrailClient.php" hash="2fe1022610b058f750c2cfc8ea118af4"/><dir name="Exception"><file name="CloudTrailException.php" hash="8a75973d86d0855f6e6b2bb1685e1462"/><file name="InsufficientS3BucketPolicyException.php" hash="b0aac7a0ed82e51852cc4c6307d6e53e"/><file name="InsufficientSnsTopicPolicyException.php" hash="78a6b11a206e25965849e56c4959e6af"/><file name="InternalErrorException.php" hash="4c71d8e6bab187298c133b43f6ac10ac"/><file name="InvalidS3BucketNameException.php" hash="85e39c99b2525f2ab6d635cf4c08f46c"/><file name="InvalidS3PrefixException.php" hash="edd298e7b57ec8d42799b6f9e76225ee"/><file name="InvalidSnsTopicNameException.php" hash="9938a7214ae144a0dc4c1aca2b5af604"/><file name="InvalidTrailNameException.php" hash="4610ee847751ee76907dd1bf886e1186"/><file name="MaximumNumberOfTrailsExceededException.php" hash="1316b0dfd83da0a63d74a4150438e0de"/><file name="S3BucketDoesNotExistException.php" hash="2888b061de5eff553e39f78db1066f22"/><file name="TrailAlreadyExistsException.php" hash="0ff52b891e5387a5d1ca681e3e2306e1"/><file name="TrailNotFoundException.php" hash="45f87e866a8b40c4bdd9134b0287315c"/><file name="TrailNotProvidedException.php" hash="6de0960e9cb0b78cbf45d36105608987"/></dir><file name="LogFileIterator.php" hash="f44b055697c19fbe75c66f78859ccc36"/><file name="LogFileReader.php" hash="70ba5d7a9a8a0fd2ec5e025d7f8fafaa"/><file name="LogRecordIterator.php" hash="16c1ed32677c0cbdf900405773f72b7c"/><dir name="Resources"><file name="cloudtrail-2013-11-01.php" hash="be59686cf569b9ea8d1b195c8b63e108"/></dir></dir><dir name="CloudWatch"><file name="CloudWatchClient.php" hash="74b6cb8c1e3555c6e7d2aa9c4a853b9b"/><dir name="Enum"><file name="ComparisonOperator.php" hash="f1307d70c8d1814bb2c10b8bbc7dd26f"/><file name="HistoryItemType.php" hash="e2a2aef1d5729c3370e946468281dacb"/><file name="StateValue.php" hash="1508461750cdc7e72edce23bde76cd62"/><file name="Statistic.php" hash="59865a4cbb6c5759a5419fcb906e1d7b"/><file name="Unit.php" hash="7ad2e966fe36dd6d8365552dade3b56f"/></dir><dir name="Exception"><file name="CloudWatchException.php" hash="fd032623bda661ba3a8de4ec8e8902da"/><file name="InternalServiceException.php" hash="fdb93f16efd4c480e6b8f92033e63602"/><file name="InvalidFormatException.php" hash="cfce3e07083461b30277388b43dfe176"/><file name="InvalidNextTokenException.php" hash="e4964db5ddb5e49b5f7ca723ddb6b3d0"/><file name="InvalidParameterCombinationException.php" hash="c023212218a22200def1783cc9b8c7e8"/><file name="InvalidParameterValueException.php" hash="e309374fa3fe547eb8ab6dbd629ba4fb"/><file name="LimitExceededException.php" hash="7216f2760155126c9119a2f273f983da"/><file name="MissingRequiredParameterException.php" hash="eafc7af2dcbb905b7508b368faac2b75"/><file name="ResourceNotFoundException.php" hash="e3c7322320db76b0c2264f640f9596a6"/></dir><dir name="Resources"><file name="cloudwatch-2010-08-01.php" hash="7d4deecad0728348c2c3d64f3bf9cedf"/></dir></dir><dir name="Common"><file name="Aws.php" hash="af81bf375ba1379d93ab612f7ea93cde"/><dir name="Client"><file name="AbstractClient.php" hash="cc01dcd9327a84606e8aeb402bdbc223"/><file name="AwsClientInterface.php" hash="b5549e525d4119198840bb2b34e79c67"/><file name="ClientBuilder.php" hash="81c9d06401700090d95b36c58f722b2d"/><file name="DefaultClient.php" hash="21d047c441a59ac2d146e520cb4c73ec"/><file name="ExpiredCredentialsChecker.php" hash="b75d82f1065d0ff5001c6588fff26ae2"/><file name="ThrottlingErrorChecker.php" hash="18150232988131e9f21e4724cfc35bbf"/><file name="UploadBodyListener.php" hash="7d6e8c6da0c89c7177740f3b950b6c79"/><file name="UserAgentListener.php" hash="98501807352bf33024e31b7fc6217c93"/></dir><dir name="Command"><file name="AwsQueryVisitor.php" hash="94799b1eb3ebd49ab60de7f8cefc96fe"/><file name="JsonCommand.php" hash="6bef8308125e047c4be353e04c067367"/><file name="QueryCommand.php" hash="47f1c01448de7d6c09671907bef5a5bc"/><file name="XmlResponseLocationVisitor.php" hash="457a7a69d3575bf45afc227ca0fd3948"/></dir><dir name="Credentials"><file name="AbstractCredentialsDecorator.php" hash="bce6a394352ce1162ed5d5a814a921e9"/><file name="AbstractRefreshableCredentials.php" hash="da6fb4894370252edf0280e09601a95d"/><file name="CacheableCredentials.php" hash="0a269b4ea676b1195f66fdddedd2ef80"/><file name="Credentials.php" hash="6e067728ac7cb2782ab299b50a8c038a"/><file name="CredentialsInterface.php" hash="93e9ebe9c22c382ea50b36951b978583"/><file name="RefreshableInstanceProfileCredentials.php" hash="0ce5d189a36a9a64c724c931af092b0b"/></dir><dir name="Enum"><file name="ClientOptions.php" hash="1dfcc9b655e60bb50acccead19e05e22"/><file name="DateFormat.php" hash="87412bee81bce129eacaedb580fcd464"/><file name="Region.php" hash="0ebf023da3afcbade51065c0bf246c46"/><file name="Size.php" hash="b92da9494098f83d94080c96979a3c06"/><file name="Time.php" hash="0701abe5acc45f6e9a897631b8b4cec2"/><file name="UaString.php" hash="0342531432bbafbfcf4cdb04156f8ebd"/></dir><file name="Enum.php" hash="6006719ac2eecfb5183d776634f2b2a5"/><dir name="Exception"><file name="AwsExceptionInterface.php" hash="b5e48ce90ddfd2b397fe1dfbabd2d3ca"/><file name="BadMethodCallException.php" hash="752cafcafecfd520e6ccfe01210a17c7"/><file name="DomainException.php" hash="1b1e3665960ce4fb9043df5c58553dd6"/><file name="ExceptionFactoryInterface.php" hash="ed60e5bba6ad952a2619613e194fb73c"/><file name="ExceptionListener.php" hash="2ca2ab488369e279da53a7b903fd557e"/><file name="InstanceProfileCredentialsException.php" hash="992185ed8296289a27b1b6497f306643"/><file name="InvalidArgumentException.php" hash="6400656e6a65bd523e37158ed71bd4c7"/><file name="LogicException.php" hash="d20e53d676891f9142be744f2aab2e6d"/><file name="MultipartUploadException.php" hash="3161352ca49918ea3783888aa8f0d7bb"/><file name="NamespaceExceptionFactory.php" hash="5fcea4d30864e65dbb0482a7ada2a42e"/><file name="OutOfBoundsException.php" hash="dabab81d1c1db56dcab8eeb513e18d5d"/><file name="OverflowException.php" hash="5a565642fb5379392dd5752c3adb16ad"/><dir name="Parser"><file name="AbstractJsonExceptionParser.php" hash="fcff52403d7baf7d5115ee56cb7b260d"/><file name="DefaultXmlExceptionParser.php" hash="7d4c376b203f91d7874e4172ffced216"/><file name="ExceptionParserInterface.php" hash="09a7643cba57df1eac684aaf13ee55a9"/><file name="JsonQueryExceptionParser.php" hash="55759b219a56dc9f57c96589c9d0413f"/><file name="JsonRestExceptionParser.php" hash="942c6b749df09392fb4e302bc9d0af8e"/></dir><file name="RequiredExtensionNotLoadedException.php" hash="2947ebcfe2e8e786b51abfa8a722e899"/><file name="RuntimeException.php" hash="6942bba7cab741eb2e5ce4d396a82095"/><file name="ServiceResponseException.php" hash="ae3e77cf14c093d89be1dec010939f91"/><file name="TransferException.php" hash="92ae697629eeff344aa6517b5bc45d40"/><file name="UnexpectedValueException.php" hash="830809ef2d18c043d65f182be99c07b9"/></dir><dir name="Facade"><file name="Facade.php" hash="72449a6ccfbd22ae3f927acbbec74e79"/><file name="FacadeInterface.php" hash="429e30061543660a46a819b74c034a94"/><file name="facade-classes.php" hash="647dc54366ac80fdd73d0e46f2630825"/></dir><dir name="Hash"><file name="ChunkHash.php" hash="31d493b2e4175c5964bb6f4da4e8cce2"/><file name="ChunkHashInterface.php" hash="d5e3f4e9cd7cdbccab266444d4a46b9a"/><file name="HashUtils.php" hash="a8138a20e9f3e3ca9f0a5e4991a1d348"/><file name="TreeHash.php" hash="e876a9bd16c09bb5f6116b3a05ea4da2"/></dir><file name="HostNameUtils.php" hash="ad3a7318c1be08a0b3d71caf6e62e395"/><dir name="InstanceMetadata"><file name="InstanceMetadataClient.php" hash="bd565975d0da1ed56726390ea606d128"/><dir name="Waiter"><file name="ServiceAvailable.php" hash="c1e9ef2e441a99fbf966313fd3beac0e"/></dir></dir><dir name="Iterator"><file name="AwsResourceIterator.php" hash="18ac3c1db4d5c35656c2863ececefc3f"/><file name="AwsResourceIteratorFactory.php" hash="fc7241565e4521b530e81f1737ff382e"/></dir><dir name="Model"><dir name="MultipartUpload"><file name="AbstractTransfer.php" hash="f00f833de3a6694a7758a79042cb2b8c"/><file name="AbstractTransferState.php" hash="f4391e22c27455420d9c85cbca4754e1"/><file name="AbstractUploadBuilder.php" hash="c5866f851ae8d004183b89f426f57a7e"/><file name="AbstractUploadId.php" hash="987faac50f83d46f2097737dc40052ec"/><file name="AbstractUploadPart.php" hash="5c5bbfb146b5297ff733b7ebb61cd106"/><file name="TransferInterface.php" hash="94130e826c600d19e974e269ee71065a"/><file name="TransferStateInterface.php" hash="7a52b1befbad56b3362315f92e0f31b8"/><file name="UploadIdInterface.php" hash="2705f41724fc5e736c802e323bdc0a2f"/><file name="UploadPartInterface.php" hash="13ae3e96adc690d71bdfde1bdf01c7f8"/></dir></dir><dir name="Resources"><file name="aws-config.php" hash="dc97faa44d59d25c4ca27535df7d0d2b"/><file name="sdk1-config.php" hash="e0b5e5dfab92d4e8d8945e553dec9e1b"/></dir><dir name="Signature"><file name="AbstractSignature.php" hash="e395a4bae5425c913b9419a522facca3"/><file name="EndpointSignatureInterface.php" hash="49198ab55607a67bb4fbd942d3d8db2e"/><file name="SignatureInterface.php" hash="bb1aec50aa114a7b7726e859a9799bfd"/><file name="SignatureListener.php" hash="65bb761a4ad2b106e631b27302574f4c"/><file name="SignatureV2.php" hash="e834b411ca36dfcec05ddeab43d45466"/><file name="SignatureV3.php" hash="339b4dc01ba603ec3f6fbcd5df11519a"/><file name="SignatureV3Https.php" hash="1ab04acc2d1ba8904078db75c61264ed"/><file name="SignatureV4.php" hash="4ae0bc69c88f84eae1facca61bdf66a0"/></dir><dir name="Waiter"><file name="AbstractResourceWaiter.php" hash="fb87fdb0773a67d0c4ea4741a3057974"/><file name="AbstractWaiter.php" hash="1fe7cf8dfd60c6c3f534f488d943160e"/><file name="CallableWaiter.php" hash="ab6554c8f0f6f94d2bd32979b137bbb3"/><file name="CompositeWaiterFactory.php" hash="73f2bab0a7aa293901dcd181498135f5"/><file name="ConfigResourceWaiter.php" hash="68faf7fde5fb769e3462b4d8e870da9e"/><file name="ResourceWaiterInterface.php" hash="da81827cec410feb30e367ae7efc62e5"/><file name="WaiterClassFactory.php" hash="97e1f94b23346b80b7f6ec5d8906ecec"/><file name="WaiterConfig.php" hash="a9048fb9d65c13ebbc33309550bd1f04"/><file name="WaiterConfigFactory.php" hash="ac6bd930f61ae6b6689edc78562778b3"/><file name="WaiterFactoryInterface.php" hash="34faa05c594295fbd9c7b6ae2349d16f"/><file name="WaiterInterface.php" hash="5a036a25e1c42c59b524cc4423ca394b"/></dir></dir><dir name="DataPipeline"><file name="DataPipelineClient.php" hash="21b577a534777ec9524ac85fe8eaab90"/><dir name="Enum"><file name="WorkStatus.php" hash="4c06b4fef52463def8d6728c8156fd97"/></dir><dir name="Exception"><file name="DataPipelineException.php" hash="cf0dc75d1e74605d52d12242a90a975d"/><file name="InternalServiceErrorException.php" hash="6bcc9c504f051791beb91a81980ae6b6"/><file name="InvalidRequestException.php" hash="6d8fb6c37905bc1e0e2827156e46dcc4"/><file name="PipelineDeletedException.php" hash="f44d4d4e25806273a1d317508d55df8d"/><file name="PipelineNotFoundException.php" hash="1757b8db2c721bebfd58b4d047fe3d49"/><file name="TaskNotFoundException.php" hash="b2349285d55929396296c9e72cb929ae"/></dir><dir name="Resources"><file name="datapipeline-2012-10-29.php" hash="93a01d0c063a019a981b635ee8cac047"/></dir></dir><dir name="DirectConnect"><file name="DirectConnectClient.php" hash="8dee058cb9fc78791921a6c28439d65d"/><dir name="Enum"><file name="ConnectionState.php" hash="82813d38bf95b7d3c38516321255b1d4"/><file name="InterconnectState.php" hash="3d42f8c2ef0c1ddae553e155be522eb6"/><file name="StepState.php" hash="c1e5ca484cb965ff1cd18865a56a17d7"/><file name="VirtualInterfaceState.php" hash="dce0f6d10216031f89cc4d0577b8ebef"/></dir><dir name="Exception"><file name="DirectConnectClientException.php" hash="824c303be6f859fe155b3bdc93f3b88d"/><file name="DirectConnectException.php" hash="ce83b52285a4e2a99da8c2e24c8c9f39"/><file name="DirectConnectServerException.php" hash="e40e0431f0c3fc541da5a4e6d826f2b1"/></dir><dir name="Resources"><file name="directconnect-2012-10-25.php" hash="be3dcab53745ec3e33c62094a1a3e530"/></dir></dir><dir name="DynamoDb"><file name="Crc32ErrorChecker.php" hash="2e24b60db9278fb1f3d4e7c4606aade6"/><file name="DynamoDbClient.php" hash="8635f4278009e71a5ba180da5951bff6"/><dir name="Enum"><file name="AttributeAction.php" hash="4fe32b490230d31057180c1eea0dc95e"/><file name="AttributeType.php" hash="f54ecaac0c36aa38a20330cfb317a75b"/><file name="ComparisonOperator.php" hash="7c7229a71fc92c6032de065fee764067"/><file name="IndexStatus.php" hash="af25dbf1143f6893663330bf937f54a8"/><file name="KeyType.php" hash="190f3badb2e1e66dcfdacf13c4c3c218"/><file name="ProjectionType.php" hash="a461f06f98352cb707f3de50aac8f7cc"/><file name="ReturnConsumedCapacity.php" hash="ea22c4392730241cf5ef4bfe7ed8e028"/><file name="ReturnItemCollectionMetrics.php" hash="3b56a00a778973f42957ac8e2c00ffba"/><file name="ReturnValue.php" hash="04d0dc61a600f2da43384e2c946c98ee"/><file name="ScalarAttributeType.php" hash="af5e09bb4ec8f3389e39420418917e22"/><file name="Select.php" hash="1bbf13ed269b05d483a91b52460e6faf"/><file name="TableStatus.php" hash="3d967da23a64c97b6035ae0154ac649c"/><file name="Type.php" hash="74926e33df7334ea48c5596bba4f697a"/></dir><dir name="Exception"><file name="AccessDeniedException.php" hash="0927b6721261886710ddf4e7aa0762a8"/><file name="ConditionalCheckFailedException.php" hash="a8104924c2bc22817aa54d91888ba7eb"/><file name="DynamoDbException.php" hash="4a06fe9b3f69c80c962711cda55cce2a"/><file name="IncompleteSignatureException.php" hash="edec35e7a549e4131009c001f80d3880"/><file name="InternalFailureException.php" hash="63ce838deafcf7da6c2d2bd05de27cea"/><file name="InternalServerErrorException.php" hash="c48565b7b423404dd81c04514e170374"/><file name="ItemCollectionSizeLimitExceededException.php" hash="8e148af1826bef2216bcc2e33bbfcadd"/><file name="LimitExceededException.php" hash="1262864749b109d0a83697f83ac43197"/><file name="MissingAuthenticationTokenException.php" hash="c4231c1d027ea62155db847fc077ced0"/><file name="ProvisionedThroughputExceededException.php" hash="929a7c0eaa1f568563c0b6d4f816a389"/><file name="ResourceInUseException.php" hash="93032fb4364792ca509882fc7065f42c"/><file name="ResourceNotFoundException.php" hash="939d005bc3f093965d3ea42e5cd746a7"/><file name="ServiceUnavailableException.php" hash="ed40330e3802de6ee1a6216bd6a78e4a"/><file name="ThrottlingException.php" hash="8083cca78079cf22237f0c7bd4cd27d0"/><file name="UnprocessedWriteRequestsException.php" hash="d6b6898e4e7c8c0e4652453948e98775"/><file name="UnrecognizedClientException.php" hash="ee3dde1fceee1a87bf6727ac02f93d16"/><file name="ValidationException.php" hash="26f5860bf1a8807607d7504ae348fd3d"/></dir><dir name="Iterator"><file name="ItemIterator.php" hash="4e8ab1a13263afadb52f9bd81a7424c2"/><file name="ScanIterator.php" hash="02cf978f0d2c423176f4d57b6fe294ca"/></dir><dir name="Model"><file name="Attribute.php" hash="4ecfccd3439ce5817f9dd02b9dfd5a2e"/><dir name="BatchRequest"><file name="AbstractWriteRequest.php" hash="8326d4829afb578ab3688d2e3401333c"/><file name="DeleteRequest.php" hash="b4ce7b754f597f1d26a1045da2bf0b1c"/><file name="PutRequest.php" hash="e3027928d8a84ef771a879c81565c54b"/><file name="UnprocessedRequest.php" hash="eb062503a06657b62c9c3bc286944a75"/><file name="WriteRequestBatch.php" hash="f171c7a555c4d59fffcac3ce662cd31b"/><file name="WriteRequestBatchTransfer.php" hash="020ecc3de51cef0e69618d6252567d8d"/><file name="WriteRequestInterface.php" hash="940271d671e8d64d32d2a5f6a4ce4f98"/></dir><file name="Item.php" hash="e619e06ef3a2c399608643005803ed85"/></dir><dir name="Resources"><file name="dynamodb-2011-12-05.php" hash="2710044894d59900e585a3f1498a79f0"/><file name="dynamodb-2012-08-10.php" hash="d2da1b6956474a39cf6ae1d615d2c75c"/></dir><dir name="Session"><dir name="LockingStrategy"><file name="AbstractLockingStrategy.php" hash="0ff0909551380a3f96483ce1d9210052"/><file name="LockingStrategyFactory.php" hash="92a937a1c67d3e92943f8e6ec4382dbf"/><file name="LockingStrategyFactoryInterface.php" hash="df81c5776e5921285567f4664b0a2024"/><file name="LockingStrategyInterface.php" hash="d7204f72398e69059872e64b62506ccc"/><file name="NullLockingStrategy.php" hash="11998ec67cdf77aa6c5b06759bacd40c"/><file name="PessimisticLockingStrategy.php" hash="fcd13966adda98a2f35d357a66549f6a"/></dir><file name="SessionHandler.php" hash="91f437be9e5dd8bf7c18537056510b4d"/><file name="SessionHandlerConfig.php" hash="f5f3b0ec2f4c6ca24f571ebf4ed5c337"/><file name="SessionHandlerInterface.php" hash="e24a29b472fb95ff6f515184ed1b2c52"/></dir></dir><dir name="Ec2"><file name="Ec2Client.php" hash="ea925d1284a6bb48ee3b85dc6b8eefe0"/><dir name="Enum"><file name="ContainerFormat.php" hash="ed24f4a8e0c99ec757fb222f98d4786d"/><file name="DiskImageFormat.php" hash="4afc92337b9b886f9827f17ee4e9b0ff"/><file name="DomainType.php" hash="b34bcf5eb0e2c516cc97be38bee40925"/><file name="ExportEnvironment.php" hash="03d4b7d3f01a4df5d84007e64ce39539"/><file name="HypervisorType.php" hash="1cad8e0fee3d957f5471e6846b350c26"/><file name="ImageState.php" hash="48aa98fabd24eb293e65c61e60285dda"/><file name="InstanceAttributeName.php" hash="7e994dde76cb9e27f8cb6244a7427611"/><file name="InstanceStateName.php" hash="3a790ea66dc25bbed4769f0ee6993b15"/><file name="InstanceType.php" hash="64eb35dce30a1bc645414d3259497d77"/><file name="PlacementGroupState.php" hash="9ad802b9c5c0a62f1735eb4403430ca4"/><file name="PlacementStrategy.php" hash="966348d650852d0affc515cc42922df2"/><file name="ResourceType.php" hash="b217494404182a97645d3dab77e8afcc"/><file name="RuleAction.php" hash="4fd615346f2ed9eb1715c6bcee1e5e5b"/><file name="SnapshotAttributeName.php" hash="bdf788468fcac3b3a441a4f0131cda6a"/><file name="SnapshotState.php" hash="40159815b2619121cf8d04ee19820eba"/><file name="SpotInstanceType.php" hash="8731d934503f291f335432455a637eb5"/><file name="VirtualizationType.php" hash="dae236d113cc7e18a0b1feba59546fea"/><file name="VolumeAttachmentState.php" hash="715d5189cc42b629cbd203e98d0ce8c4"/><file name="VolumeAttributeName.php" hash="635938967abed8bbeda2a915c3400809"/><file name="VolumeState.php" hash="148512765597c824ac7f61a097ae70bb"/><file name="VolumeType.php" hash="ed10dd06ee3a71ccb849874c65c928f6"/><file name="VpcAttributeName.php" hash="a2fd03051235f9a8e8f0ef051e34d711"/></dir><dir name="Exception"><file name="Ec2Exception.php" hash="62ee2dc40c5010a08f3e622a85869722"/></dir><dir name="Iterator"><file name="DescribeInstancesIterator.php" hash="76f3dce41115ec02d2ee145dfe885c26"/></dir><dir name="Resources"><file name="ec2-2013-10-15.php" hash="d3a3d0f378823bd3740416b99bd17d5e"/></dir></dir><dir name="ElastiCache"><file name="ElastiCacheClient.php" hash="d6ca66bfec7cd0fd351038519a01b5f1"/><dir name="Enum"><file name="SourceType.php" hash="115b6aebca4bf87b123e01c8ff8f24f8"/></dir><dir name="Exception"><file name="AuthorizationAlreadyExistsException.php" hash="21e504b9e7f836f0b2c0ff72c161a3a3"/><file name="AuthorizationNotFoundException.php" hash="a5e02559299e09210676a953110a33bf"/><file name="CacheClusterAlreadyExistsException.php" hash="c25c43902f4ba4186b322e01c80c6b82"/><file name="CacheClusterNotFoundException.php" hash="82190202843e63734ba8ef1ba394a5be"/><file name="CacheParameterGroupAlreadyExistsException.php" hash="fd24c3d68a39aa4641a637fd808de4d4"/><file name="CacheParameterGroupNotFoundException.php" hash="ca6463ae76170cecd82daf6061ab20d5"/><file name="CacheParameterGroupQuotaExceededException.php" hash="c93c90abdc4f535d59f8d01ad90f1d40"/><file name="CacheSecurityGroupAlreadyExistsException.php" hash="59d08e4224c1a793a0b328aeced5f794"/><file name="CacheSecurityGroupNotFoundException.php" hash="1ccda66732cad00372be8d5e36e2adbe"/><file name="CacheSecurityGroupQuotaExceededException.php" hash="877ede3cf5bd8e40776cee03231852a4"/><file name="CacheSubnetGroupAlreadyExistsException.php" hash="c6e393fc9a4fa2a36e660511af4d3706"/><file name="CacheSubnetGroupInUseException.php" hash="9f6a2310c31b66f5d83a1843abfd802f"/><file name="CacheSubnetGroupNotFoundException.php" hash="9463754bd9d0fbd166dc4b6bd961cd71"/><file name="CacheSubnetGroupQuotaExceededException.php" hash="f676b0b2ec61855f0398f535416b3fe1"/><file name="CacheSubnetQuotaExceededException.php" hash="63a14141744fa66e0a0a69b9c081e28a"/><file name="ClusterQuotaForCustomerExceededException.php" hash="77627c0471b2708e68e9e8860638870b"/><file name="ElastiCacheException.php" hash="5aa6c73aa0c85df1edc5158e8613c56a"/><file name="InsufficientCacheClusterCapacityException.php" hash="c6f6d51a7a32fe4a5e09e29597127364"/><file name="InvalidCacheClusterStateException.php" hash="318e8f473ff95ea2ac20ad320e7c1971"/><file name="InvalidCacheParameterGroupStateException.php" hash="61d6ec9dbacfddde6dfa4156892ca675"/><file name="InvalidCacheSecurityGroupStateException.php" hash="39ad8e3e4323e35d812cf62ef095ceb8"/><file name="InvalidParameterCombinationException.php" hash="bd8ada3e0f3152e08ae1e647de1ef542"/><file name="InvalidParameterValueException.php" hash="2451add8d8f33cd5a002060e9f3e2835"/><file name="InvalidReplicationGroupStateException.php" hash="2fce45c79f7d4a5f14e1f16ad5d754cb"/><file name="InvalidSubnetException.php" hash="11c7bb2eaf03cb8193ace75f76798b25"/><file name="InvalidVPCNetworkStateException.php" hash="26ac0d4d4f2f1dd2e99a0e2a16ff72a0"/><file name="NodeQuotaForClusterExceededException.php" hash="77379a822d5ae295546afffb6f37c353"/><file name="NodeQuotaForCustomerExceededException.php" hash="c730d31717719ed395b3946624a7d966"/><file name="ReplicationGroupAlreadyExistsException.php" hash="ddfcacb215911d76dae186d5e9691167"/><file name="ReplicationGroupNotFoundException.php" hash="e5d0130edc605f109657fdd0e4e8d36a"/><file name="ReservedCacheNodeAlreadyExistsException.php" hash="ba9e965c9707ce3aa9446b53bc2d075f"/><file name="ReservedCacheNodeNotFoundException.php" hash="e8b182a07643ffc04fff9166a3ad9b9b"/><file name="ReservedCacheNodeQuotaExceededException.php" hash="65db6e650fb941814b8f34e60bbcae93"/><file name="ReservedCacheNodesOfferingNotFoundException.php" hash="3cf2ec1dde57680e084c72aa846c32c6"/><file name="SubnetInUseException.php" hash="5f6a50579d69da727e3bf85adcfbaf4f"/></dir><dir name="Resources"><file name="elasticache-2013-06-15.php" hash="ee9e16d07cf21c34241bece85de6e965"/></dir></dir><dir name="ElasticBeanstalk"><file name="ElasticBeanstalkClient.php" hash="20f74c453aa832d49913b61eb3731ee4"/><dir name="Enum"><file name="ConfigurationDeploymentStatus.php" hash="084ddac120d09f4eab64710c88a89800"/><file name="ConfigurationOptionValueType.php" hash="975b62971fe9249c0cf73eb490c09902"/><file name="EnvironmentHealth.php" hash="4a55eacfb07c45fdbff0b98a50118794"/><file name="EnvironmentInfoType.php" hash="fadc42788f6b465409b946e74707569c"/><file name="EnvironmentStatus.php" hash="df1f7c4ba4c6e524aba08984b5a96a82"/><file name="EventSeverity.php" hash="b0f8d4bb831e2dd754f6045b5c94581c"/><file name="ValidationSeverity.php" hash="f02229788c335e8c249918b13e4e9524"/></dir><dir name="Exception"><file name="ElasticBeanstalkException.php" hash="a4a8d318c03943026492ceb31514ce7d"/><file name="InsufficientPrivilegesException.php" hash="c86a85458785953e1b23a1cde09cd9d8"/><file name="OperationInProgressException.php" hash="923588486916af4c1a9d149747c6fe17"/><file name="S3LocationNotInServiceRegionException.php" hash="75883b5ae0176c98c0ed70921a32dc80"/><file name="S3SubscriptionRequiredException.php" hash="0ec8ab059187e734696a88f1f1642cef"/><file name="SourceBundleDeletionException.php" hash="194fc4adde07b7ab54ef290f0aaa2a7e"/><file name="TooManyApplicationVersionsException.php" hash="1d6496349065b33d0317c43e40a6a525"/><file name="TooManyApplicationsException.php" hash="3fe13576abfbb3e3d20598927a417e6d"/><file name="TooManyBucketsException.php" hash="b402073e03caeaca677ddc56f2b89b39"/><file name="TooManyConfigurationTemplatesException.php" hash="d3058cd107f406cf2bf3b05c11513462"/><file name="TooManyEnvironmentsException.php" hash="3176ee87e0d8021e193f85469414f17d"/></dir><dir name="Resources"><file name="elasticbeanstalk-2010-12-01.php" hash="bd8c3992d058f9d6117bf4980df91faa"/></dir></dir><dir name="ElasticLoadBalancing"><file name="ElasticLoadBalancingClient.php" hash="ca59f97f28691979be22e7c7e1b44982"/><dir name="Exception"><file name="AccessPointNotFoundException.php" hash="05071f6051e15d8318355b0794a9dd1e"/><file name="CertificateNotFoundException.php" hash="7a9dd18eeaa2aaf9ac844d2005577993"/><file name="DuplicateAccessPointNameException.php" hash="6c9774b220387b23f5d9413197457ce4"/><file name="DuplicateListenerException.php" hash="6089ef1c0edbadd544eca765a5df7c49"/><file name="DuplicatePolicyNameException.php" hash="4e65421810ac6b692a4e9c385dbf8b10"/><file name="ElasticLoadBalancingException.php" hash="3b8eaa1ef219c403b75d887c6fcf9a9f"/><file name="InvalidConfigurationRequestException.php" hash="df6a12538f70e02044149bec3c58d6f1"/><file name="InvalidEndPointException.php" hash="6ea1a3622cb1d25d2dbbe0394c4b5de2"/><file name="InvalidSchemeException.php" hash="e8ffed1df93368e4de833590688bcee4"/><file name="InvalidSecurityGroupException.php" hash="cce0bdbeee5b3c69adf79f41a647ff2f"/><file name="InvalidSubnetException.php" hash="2b4492a6c075d2b0da9391d9dbff54f4"/><file name="ListenerNotFoundException.php" hash="de0d205c1cafac341936ae6065ef84bd"/><file name="LoadBalancerAttributeNotFoundException.php" hash="243a7bb3caf9180d313a91e7c84809b6"/><file name="PolicyNotFoundException.php" hash="a1878afe8404f41525177bd5fd6b6cc8"/><file name="PolicyTypeNotFoundException.php" hash="9f35549594a24267a531311b937a3555"/><file name="SubnetNotFoundException.php" hash="e125719fc95081ee80730f3904b183c7"/><file name="TooManyAccessPointsException.php" hash="7edb845728a203fe6c2403c77805567a"/><file name="TooManyPoliciesException.php" hash="7b041ef30bec8614c17a8071710c7f1c"/></dir><dir name="Resources"><file name="elasticloadbalancing-2012-06-01.php" hash="f93ce11a5c23253b12d838611f093f45"/></dir></dir><dir name="ElasticTranscoder"><file name="ElasticTranscoderClient.php" hash="4d13e535302710b2b72ee0e3ffef7b49"/><dir name="Exception"><file name="AccessDeniedException.php" hash="d8d758ef18d17ad9756612a30735ba53"/><file name="ElasticTranscoderException.php" hash="c82a45c9c18b3529dca6bd2d3f0ca6e4"/><file name="IncompatibleVersionException.php" hash="808faec7d50f265050ad7414212e8229"/><file name="InternalServiceException.php" hash="550b4e6f16f6d8a241c4c0763b81da5f"/><file name="LimitExceededException.php" hash="0af29b1fc2a1f7da7c01fce037d9f25c"/><file name="ResourceInUseException.php" hash="b08c18448cbcab3526962f82b74c5ece"/><file name="ResourceNotFoundException.php" hash="9811281d1dc85134a5d36596c9f60d17"/><file name="ValidationException.php" hash="3c439ebac5c8cce30a6df9a908bd9192"/></dir><dir name="Resources"><file name="elastictranscoder-2012-09-25.php" hash="5248a8ed57bf2f3e475941ee99e82957"/></dir></dir><dir name="Emr"><file name="EmrClient.php" hash="b6bc7ac614bebdafd8b8905cb1ffdb68"/><dir name="Enum"><file name="ActionOnFailure.php" hash="90a3368d05d9c947a743b6e326398db0"/><file name="ClusterState.php" hash="43e98595cd7eccd0d9760dcee4f9401f"/><file name="ClusterStateChangeReasonCode.php" hash="2022d285e42729a667b96d9d270237c5"/><file name="InstanceGroupState.php" hash="a3a213c7607430a22e509d22952218ce"/><file name="InstanceGroupStateChangeReasonCode.php" hash="9e4488974df626ede33665815c84634b"/><file name="InstanceGroupType.php" hash="6b2698140ba7c3ec2ac3d27917eb8785"/><file name="InstanceRoleType.php" hash="ab7220643f81d7bac60584c463f8510e"/><file name="InstanceState.php" hash="3081093592df41be7cf775d33fc83448"/><file name="InstanceStateChangeReasonCode.php" hash="da34270d02922f21abbe6e394eca03af"/><file name="JobFlowExecutionState.php" hash="c7bc8356aab0be524defa38ac62e3d1d"/><file name="MarketType.php" hash="7f135081488c2374dfa72716992b19b9"/><file name="StepExecutionState.php" hash="800801721ae16f53ca83222a2fdf6a78"/><file name="StepState.php" hash="9ed3012916b6c5147a25f4bfa70021a9"/><file name="StepStateChangeReasonCode.php" hash="7ab1f8494a346a25ddbeab0bf22b98eb"/></dir><dir name="Exception"><file name="EmrException.php" hash="fdeb31733b03b1d981a9f93a5ccd37b9"/><file name="InternalServerErrorException.php" hash="472ca1648da9957b3fa88baa8dc9fefd"/><file name="InternalServerException.php" hash="0e1d0468d26322c24637b701a69fea87"/><file name="InvalidRequestException.php" hash="f4461933899ce1512b024d8fee1c78e6"/></dir><dir name="Resources"><file name="emr-2009-03-31.php" hash="180719640e0e163ee703c45fe618c6a5"/></dir></dir><dir name="Glacier"><dir name="Enum"><file name="Action.php" hash="85f4981c556299658edb3e9b244ddc1c"/><file name="ActionCode.php" hash="8ca169d71c6085f4348b786f86ad74c0"/><file name="StatusCode.php" hash="91cd78cd13068bef5a162089bc1ee42f"/></dir><dir name="Exception"><file name="GlacierException.php" hash="30b98e04728dc38c1d78ab5df0f01208"/><file name="InvalidParameterValueException.php" hash="ee0a2c8b584dea4c871965c66c2aebf0"/><file name="LimitExceededException.php" hash="0571d505d9e0546e098958202ad2f4a4"/><file name="MissingParameterValueException.php" hash="2f02824463026f15329bcb6c9564fbdd"/><file name="RequestTimeoutException.php" hash="c4e3c975633f6fdebe1c61e458726a10"/><file name="ResourceNotFoundException.php" hash="7c0036cbe45eb98a3cf7bdb3d949ee3f"/><file name="ServiceUnavailableException.php" hash="5a296af4f334d246fc45d0cc812e0c59"/></dir><file name="GlacierClient.php" hash="8d52372f349380eb2369ab6039ef83fe"/><file name="GlacierUploadListener.php" hash="19e03c7b50c4ff37d67cdeb94e1a14b4"/><dir name="Model"><dir name="MultipartUpload"><file name="AbstractTransfer.php" hash="c3381be176dd88aaa906a639a6fde0d4"/><file name="ParallelTransfer.php" hash="92dc62bcee6cbcdcaaf39acf431e2114"/><file name="SerialTransfer.php" hash="331a89bb71e820cc7aaecfdd20b12418"/><file name="TransferState.php" hash="af8aabe8abcdc55ad00de3ac094088a7"/><file name="UploadBuilder.php" hash="8462dfca22b04fc695a73a7d8815c4de"/><file name="UploadId.php" hash="f5189bec7825b8d0031dd64eb988ebf5"/><file name="UploadPart.php" hash="fec1ceb347d00b1706b85a87068b780f"/><file name="UploadPartContext.php" hash="a45cb082db0f327419d7c179e53d57be"/><file name="UploadPartGenerator.php" hash="d7b83fc492d67d84499165acff72c2ea"/></dir></dir><dir name="Resources"><file name="glacier-2012-06-01.php" hash="7fe7d51325b3c1f8f06bccff25791b73"/></dir></dir><dir name="Iam"><dir name="Enum"><file name="AssignmentStatusType.php" hash="ae0f41c53b1c56824d75eb333e19a85a"/><file name="StatusType.php" hash="a93bd6a9869a9b5aa4f7a94068270f4d"/></dir><dir name="Exception"><file name="DeleteConflictException.php" hash="48b4e522cae6109dffb4f26a05fb766f"/><file name="DuplicateCertificateException.php" hash="0d2fec540fdb38a279159b2bc825b721"/><file name="EntityAlreadyExistsException.php" hash="7dfe46fb65b928ebd9fb2c90f75338cc"/><file name="EntityTemporarilyUnmodifiableException.php" hash="d2800e6bdc1d684d1ee3ff38dc1fd336"/><file name="IamException.php" hash="364d247c36655d55c1af15c59baa0d2a"/><file name="InvalidAuthenticationCodeException.php" hash="b160209f5210bfe18472eda8b0ac7492"/><file name="InvalidCertificateException.php" hash="92704012d2921797ff2087e42f17fab9"/><file name="InvalidInputException.php" hash="daea6e91cde8b03a4b69cc0189a0368b"/><file name="InvalidUserTypeException.php" hash="76b7086631b8fb7c1f3279da1feb113e"/><file name="KeyPairMismatchException.php" hash="bd22710b1e3dcbe0a64902f54a3a4163"/><file name="LimitExceededException.php" hash="2e17c2780c8fd635469de3014ea37842"/><file name="MalformedCertificateException.php" hash="2b38f99955a913c63356c0edda5a2c3d"/><file name="MalformedPolicyDocumentException.php" hash="89c2ff535598e5940dd18ca66c7a385c"/><file name="NoSuchEntityException.php" hash="478062e9964d02dbaadb386ebe423436"/><file name="PasswordPolicyViolationException.php" hash="bbee10470d4d8c2ee03ed7e7f6205e68"/></dir><file name="IamClient.php" hash="9658c8829c4f43b09b6f77fabb616b8a"/><dir name="Resources"><file name="iam-2010-05-08.php" hash="7355ec47bb805cdfbf37bd6456ed1867"/></dir></dir><dir name="ImportExport"><dir name="Enum"><file name="JobType.php" hash="9ee43f6c4cacedda141e5de2e1784866"/></dir><dir name="Exception"><file name="BucketPermissionException.php" hash="032796167d1ce35fcd0e99f587955daa"/><file name="CanceledJobIdException.php" hash="2fc2db1e09acec07edb2db7ddbecb1bd"/><file name="ExpiredJobIdException.php" hash="d4c2c7d73d37d73e909db1bfbbef75b8"/><file name="ImportExportException.php" hash="95e9b9d2b5341524d7085bf23c706436"/><file name="InvalidAccessKeyIdException.php" hash="f3adb212bf4be9951d3de8dfad876349"/><file name="InvalidAddressException.php" hash="3daf811eba38bfdc14d15c61e07ec650"/><file name="InvalidCustomsException.php" hash="33a2a444377461a8d488ee5aeb706dbb"/><file name="InvalidFileSystemException.php" hash="6b13609070c971046937178bae5a8366"/><file name="InvalidJobIdException.php" hash="b794f4a283df4739c61fdddcfb69da8f"/><file name="InvalidManifestFieldException.php" hash="250762db398e1a31e65e7f6a059a877c"/><file name="InvalidParameterException.php" hash="d3708b1f5798200dbe27891faa27362f"/><file name="MalformedManifestException.php" hash="9773d5c2cf3459a125c224083aec7028"/><file name="MissingCustomsException.php" hash="808eaf466f96f81b25999988bdd45b8c"/><file name="MissingManifestFieldException.php" hash="d5b83f7cdbcad0687e91efaf1c8019ad"/><file name="MissingParameterException.php" hash="449ce097415b119eb4535bd803828f11"/><file name="MultipleRegionsException.php" hash="a75d56cfbf9198c1f891c833c1d0f782"/><file name="NoSuchBucketException.php" hash="309718b6810d12b7ddf57e8ac863c2d1"/><file name="UnableToCancelJobIdException.php" hash="ff839a2502867b9d6499df705ac36e58"/></dir><file name="ImportExportClient.php" hash="0e52be29513def74a9d97e37c67ae46d"/><dir name="Iterator"><file name="ListJobsIterator.php" hash="083bc7183866d156fcf5cdd825782358"/></dir><file name="JobManifestListener.php" hash="1ce807cef032bb60c92283b8ec453db7"/><dir name="Resources"><file name="importexport-2010-06-01.php" hash="8408fcef53ba78a7809c0b951e13dde5"/></dir></dir><dir name="Kinesis"><dir name="Enum"><file name="ShardIteratorType.php" hash="3c4153fd8560cd4a48e8b77c28188d7d"/><file name="StreamStatus.php" hash="695b490b91bc7a07cf64ab007b513ae5"/></dir><dir name="Exception"><file name="ExpiredIteratorException.php" hash="65bbfd88ee41a6d7b31bd5755007375e"/><file name="InvalidArgumentException.php" hash="b1f3d5da8197c70e1a01cbeb451f68da"/><file name="KinesisException.php" hash="6ab40f7d2a62c49a57fb78000c31494c"/><file name="LimitExceededException.php" hash="cbb21ea005851ffb938a6e3920914ad1"/><file name="ProvisionedThroughputExceededException.php" hash="1877b495dc6b5c1c7d70e9ff2cebdf92"/><file name="ResourceInUseException.php" hash="d3ed3198d9e6bcf403015cb6be742ed6"/><file name="ResourceNotFoundException.php" hash="5dcdeddf6500a925518218a2cf9f1210"/></dir><file name="KinesisClient.php" hash="5b3c98f93f97572e661f401c7f564e55"/><dir name="Resources"><file name="kinesis-2013-12-02.php" hash="a627dcbe5e4d1f49486fa02217cd5282"/></dir></dir><file name="LICENSE.md" hash="4a1986582bd12f9aea2aec46b81e0413"/><file name="NOTICE.md" hash="1cfe4eba1519b5c323896290f9fb8264"/><dir name="OpsWorks"><dir name="Enum"><file name="AppType.php" hash="848754a43f52b49d5b8851f434686b2d"/><file name="Architecture.php" hash="b7943c3aab8cc7bf2f342bfe5ae222fb"/><file name="AutoScalingType.php" hash="2b82e58bbbd16de1690363870a727c11"/><file name="DeploymentCommandName.php" hash="ca5c24a782e9870ead21f3fb8d431ee4"/><file name="LayerType.php" hash="397cb95f8edadd101bcd96862cfa5ba4"/><file name="PermissionLevel.php" hash="f845a186d2c6190aafa9881e7dbacff6"/><file name="RootDeviceType.php" hash="9f2590884c5c082a0528cd3217f0ecdf"/><file name="SourceType.php" hash="38ad7c76ac4c1b5b7623ab7624641ed8"/></dir><dir name="Exception"><file name="OpsWorksException.php" hash="84c6ce5f9efb83514c570fa2f3d04ced"/><file name="ResourceNotFoundException.php" hash="d9c3fcdbb6bfd95dc1b2d700d5170d9e"/><file name="ValidationException.php" hash="409fac0a0b9698a111173e52945a2c29"/></dir><file name="OpsWorksClient.php" hash="a37b337290f20e3be6e97f718c95db6e"/><dir name="Resources"><file name="opsworks-2013-02-18.php" hash="cf459cd3ed180ad6e380d4d235e739dd"/></dir></dir><dir name="Rds"><dir name="Enum"><file name="ApplyMethod.php" hash="19d2277f49a3afacd09834be3fd383c6"/><file name="SourceType.php" hash="c7bcd8f273ae15e3846fa359a73a2ef2"/></dir><dir name="Exception"><file name="AuthorizationAlreadyExistsException.php" hash="376a02ba026367796ce7febadfb30154"/><file name="AuthorizationNotFoundException.php" hash="663ab5eeed0cf4a060cbe65c5bb8e468"/><file name="AuthorizationQuotaExceededException.php" hash="67670ddd9bd940dbb382ea6cb66445b5"/><file name="DBInstanceAlreadyExistsException.php" hash="6e0f8c962260f2b3f20d794107e9f30b"/><file name="DBInstanceNotFoundException.php" hash="d9aa20a94517c46eb9a0d7755462375c"/><file name="DBParameterGroupAlreadyExistsException.php" hash="ae6928b2e01ff2519910251fb9cf5370"/><file name="DBParameterGroupNotFoundException.php" hash="400380e2390c7566e0fc20b460e815d5"/><file name="DBParameterGroupQuotaExceededException.php" hash="e689ae46b501bc47971872e901530c3b"/><file name="DBSecurityGroupAlreadyExistsException.php" hash="2e2207e47b443f0eb9d7dbd2f0078f42"/><file name="DBSecurityGroupNotFoundException.php" hash="f5c1ac583052a0000b9d777f66dbaaeb"/><file name="DBSecurityGroupNotSupportedException.php" hash="384d9d2f530a26c024d6b451f67a7ab2"/><file name="DBSecurityGroupQuotaExceededException.php" hash="dac6d4ed2abd2cc5cefadcb845710771"/><file name="DBSnapshotAlreadyExistsException.php" hash="dd3697b90b31eb425de32c8bba304822"/><file name="DBSnapshotNotFoundException.php" hash="15478e6df9db7de4365ad0a9d65781b4"/><file name="DBSubnetGroupAlreadyExistsException.php" hash="e29dd75de38209c79ccc5a01891b14fb"/><file name="DBSubnetGroupDoesNotCoverEnoughAZsException.php" hash="837c8369ca8284f002f02b8d23d263c4"/><file name="DBSubnetGroupNotAllowedException.php" hash="e905a5e8fe25729b25e5e14d5c375f7f"/><file name="DBSubnetGroupNotFoundException.php" hash="9968a5c63401216dab0ba464e7250e2f"/><file name="DBSubnetGroupQuotaExceededException.php" hash="2ac07228373140af8e74a894071c2748"/><file name="DBSubnetQuotaExceededException.php" hash="8b49e7b532f25181597419d14aff04e8"/><file name="DBUpgradeDependencyFailureException.php" hash="4055c4be60a51c7884f6ed9f3caee896"/><file name="EventSubscriptionQuotaExceededException.php" hash="1bc4e249b7d07faa9982e8731308d50d"/><file name="InstanceQuotaExceededException.php" hash="ce8c66605f2f208c726f61c71443476c"/><file name="InsufficientDBInstanceCapacityException.php" hash="2c4f159567b46ca2dee7c2e38e39463a"/><file name="InvalidDBInstanceStateException.php" hash="4936b33eeea183771a7a7dfc38a7ba69"/><file name="InvalidDBParameterGroupStateException.php" hash="aa9b329905ab674a40f643dd2153bfc6"/><file name="InvalidDBSecurityGroupStateException.php" hash="96404be7270254ea6cab55d4b2801ede"/><file name="InvalidDBSnapshotStateException.php" hash="4e2b7291358921d0fdb6f4d661bdb0bd"/><file name="InvalidDBSubnetGroupException.php" hash="4f6cfca2c69f05b1ebc3a8878bcc0644"/><file name="InvalidDBSubnetGroupStateException.php" hash="84a3e9a927f6bab25dbe557a5b5b5f08"/><file name="InvalidDBSubnetStateException.php" hash="c0081ece1a9b6fc8a2f56cd8e0d86323"/><file name="InvalidEventSubscriptionStateException.php" hash="f92aff57ef0f2a53c4cce1409b0505fc"/><file name="InvalidOptionGroupStateException.php" hash="4d50021a54c9a6cc31254be93952a557"/><file name="InvalidRestoreException.php" hash="dc631f1639dc1eda32cb468cfc8b92d8"/><file name="InvalidSubnetException.php" hash="d62dc4845b8e67ea0cceac41a9aaf60e"/><file name="InvalidVPCNetworkStateException.php" hash="a1eb52983f8a9661e4e3cdb30839382c"/><file name="OptionGroupAlreadyExistsException.php" hash="4226c0a3bdcbed371f0c7b68b3565621"/><file name="OptionGroupNotFoundException.php" hash="fd36e65437af21308bfae5ec074217ef"/><file name="OptionGroupQuotaExceededException.php" hash="bc2adf4429a3fd403f53879f0112bbd9"/><file name="PointInTimeRestoreNotEnabledException.php" hash="af19d2ada6aa534e818e93cf361d041a"/><file name="ProvisionedIopsNotAvailableInAZException.php" hash="811375765734008651fdff91686a8858"/><file name="RdsException.php" hash="6996434c2ecf17037c3931f2df361c71"/><file name="ReservedDBInstanceAlreadyExistsException.php" hash="c81ec08c1f1476062801e246cf9bf6e0"/><file name="ReservedDBInstanceNotFoundException.php" hash="ba34aca2ed1fec0e6041b89539d74a17"/><file name="ReservedDBInstanceQuotaExceededException.php" hash="6b8bc72a73b34f5466c5521d06d4fd5f"/><file name="ReservedDBInstancesOfferingNotFoundException.php" hash="73d871b7bf65e878614fba90c707ac0b"/><file name="SNSInvalidTopicException.php" hash="ba778d2918335482e02e79c3e3f05909"/><file name="SNSNoAuthorizationException.php" hash="eedb37e4b266f6ed4d18c285dbdce3fd"/><file name="SNSTopicArnNotFoundException.php" hash="a4746d9d037acfcdd58f8a2d2b2546ef"/><file name="SnapshotQuotaExceededException.php" hash="25e54a5968e2db61f5113c4a285a284a"/><file name="SourceNotFoundException.php" hash="74e18fda26af5100130575aab06e07c3"/><file name="StorageQuotaExceededException.php" hash="e4bca14d20f5ef0590293b2cc4927038"/><file name="SubnetAlreadyInUseException.php" hash="b3934cddd1e4762c2554e6da42bb1209"/><file name="SubscriptionAlreadyExistException.php" hash="7ec1a8a94449d505f22bb77a64e5f6b9"/><file name="SubscriptionCategoryNotFoundException.php" hash="f54f54e670a03afe318de768dff9465a"/><file name="SubscriptionNotFoundException.php" hash="0634451bee60d907b9a451960e8164c9"/></dir><file name="RdsClient.php" hash="c2adfe26ffd4b77153e000c3cc0d7cf8"/><dir name="Resources"><file name="rds-2013-09-09.php" hash="9eb6c99a283070bd5dfdaad5260f0f48"/></dir></dir><dir name="Redshift"><dir name="Enum"><file name="SourceType.php" hash="30409b1b129843499b9f534042fbf26c"/></dir><dir name="Exception"><file name="AccessToSnapshotDeniedException.php" hash="c9e8c82d99669b9c95eecec77021f455"/><file name="AuthorizationAlreadyExistsException.php" hash="cab137ac30853450292a4cdca0659c7f"/><file name="AuthorizationNotFoundException.php" hash="fdeacd2462018e6d794b3016094f1e83"/><file name="AuthorizationQuotaExceededException.php" hash="9db5903f794721ca23dbd65a2fc51c7f"/><file name="BucketNotFoundException.php" hash="b67ceb568f9bf3dfc68033b087377738"/><file name="ClusterAlreadyExistsException.php" hash="9eeb267af85c298ed0af61c2afb6c270"/><file name="ClusterNotFoundException.php" hash="6fd5a279200ee64aea68af45bfb3be63"/><file name="ClusterParameterGroupAlreadyExistsException.php" hash="422267f2d8aa50a487c66f45914f8018"/><file name="ClusterParameterGroupNotFoundException.php" hash="f16aecb163d382acb1cb3a7392f870f0"/><file name="ClusterParameterGroupQuotaExceededException.php" hash="dad9c72f15b72eaa84f579809b4678d7"/><file name="ClusterQuotaExceededException.php" hash="aba7c8a84383c8869f3c05a633700bd6"/><file name="ClusterSecurityGroupAlreadyExistsException.php" hash="02bf104dfb07cee703622f9fe15d9c1b"/><file name="ClusterSecurityGroupNotFoundException.php" hash="5cc1143f37bf2cc6c46018e209fff013"/><file name="ClusterSecurityGroupQuotaExceededException.php" hash="a6c63d0c6fc018f8d6cad4fbeac009f8"/><file name="ClusterSnapshotAlreadyExistsException.php" hash="31aafcd228150e5c54910d6b77d26db3"/><file name="ClusterSnapshotNotFoundException.php" hash="ea9d654915a7889f741f3e778c58a8c0"/><file name="ClusterSnapshotQuotaExceededException.php" hash="8bef78b291c4cf3e572e38c6b4b3d61a"/><file name="ClusterSubnetGroupAlreadyExistsException.php" hash="df02dee64a686e5df246b94d32ed5dfd"/><file name="ClusterSubnetGroupNotFoundException.php" hash="fcec74f4784a825dae3a7337f2b89ea7"/><file name="ClusterSubnetGroupQuotaExceededException.php" hash="9c06bfe46962619db99467b6b9e2279f"/><file name="ClusterSubnetQuotaExceededException.php" hash="0fad5d193616494a2dcaeecec5cb1e0a"/><file name="CopyToRegionDisabledException.php" hash="d860d9221401ee97e4892dea64c5d423"/><file name="EventSubscriptionQuotaExceededException.php" hash="a69b8bfbfda31cb67211d97ea250e9d1"/><file name="HsmClientCertificateAlreadyExistsException.php" hash="3619d46bcc659e0d6fa6e533c3ac06dc"/><file name="HsmClientCertificateNotFoundException.php" hash="dfb9e810a2fe8bfc49511070db8bf330"/><file name="HsmClientCertificateQuotaExceededException.php" hash="5ecd3d899d5e5a8bae5cd793115f96e9"/><file name="HsmConfigurationAlreadyExistsException.php" hash="eb9a19ce6f5f8e01dbecfe3a9905a1d9"/><file name="HsmConfigurationNotFoundException.php" hash="ddaae73292b27d33f68b24def9bbf376"/><file name="HsmConfigurationQuotaExceededException.php" hash="fb75bff51ce0071861e6477bdc614cc6"/><file name="IncompatibleOrderableOptionsException.php" hash="51efa01f4fe959f83351ba6b884ae0ef"/><file name="InsufficientClusterCapacityException.php" hash="35b3456c37c98538d3d8687d5d88e31f"/><file name="InsufficientS3BucketPolicyFaultException.php" hash="f3d5325f68cf059f7dcd998498f93d0a"/><file name="InvalidClusterParameterGroupStateException.php" hash="2b9206f0a02422908ae2f1be751b1990"/><file name="InvalidClusterSecurityGroupStateException.php" hash="0ae99524b12958a3363476f7d9d69555"/><file name="InvalidClusterSnapshotStateException.php" hash="60a1832f4594623c0d767ca23b41b7d9"/><file name="InvalidClusterStateException.php" hash="03eb7b9aebab523df4f49227ff886d9c"/><file name="InvalidClusterSubnetGroupStateException.php" hash="b79284307bc63bf8ae3ba2831412fca5"/><file name="InvalidClusterSubnetStateException.php" hash="9eda10ad6be26111eeeb2d442ed5439c"/><file name="InvalidElasticIpException.php" hash="42d6f0d90e03574ec2123a53a5f3123b"/><file name="InvalidHsmClientCertificateStateException.php" hash="96c504dbde550fdef869742fe0dc0484"/><file name="InvalidHsmConfigurationStateException.php" hash="f9a51511e75b964e40e4918813cae672"/><file name="InvalidRestoreException.php" hash="51bcc3c35fb7f19deeb4613537d3f8af"/><file name="InvalidS3BucketNameFaultException.php" hash="8efe1e3a2007abd75e1e329fbbabe7c3"/><file name="InvalidS3KeyPrefixFaultException.php" hash="c043afb7be1ac223551f72aa63efe3f1"/><file name="InvalidSubnetException.php" hash="ab249465fd2da5db0c01ac54a83c54e8"/><file name="InvalidVPCNetworkStateException.php" hash="554e07d40204937019b885e9ecd2c7a3"/><file name="NumberOfNodesPerClusterLimitExceededException.php" hash="8517bb1ac9d19e2b07cffd7f70636575"/><file name="NumberOfNodesQuotaExceededException.php" hash="1a4daebe90b9705cda31335d321582d0"/><file name="RedshiftException.php" hash="4350c750cd98294b81ca84c9e0a3728b"/><file name="ReservedNodeAlreadyExistsException.php" hash="8b0049bd4331ba9aab76e5cb8fbb4a2c"/><file name="ReservedNodeNotFoundException.php" hash="82766a70a2b696784ffdb8d1af95c597"/><file name="ReservedNodeOfferingNotFoundException.php" hash="7315213aaf423da296b3158b7ba7ebe4"/><file name="ReservedNodeQuotaExceededException.php" hash="af51e7f8377eed3e700b48d18ad1633b"/><file name="ResizeNotFoundException.php" hash="3e08078e441d6f227d3ac08b027a722b"/><file name="SNSInvalidTopicException.php" hash="7f8b69fe134454dcc3576e63e90e6d78"/><file name="SNSNoAuthorizationException.php" hash="55745749fbd004bfeeba430bdd641670"/><file name="SNSTopicArnNotFoundException.php" hash="3ac893986a262d796651f122093c5907"/><file name="SnapshotCopyAlreadyDisabledException.php" hash="901c3617895bf54466ed052ab36effbe"/><file name="SnapshotCopyAlreadyEnabledException.php" hash="20883bfc15fdf536bb3168fd39b6c4c9"/><file name="SnapshotCopyDisabledException.php" hash="5a97cd9ce4550b5bed2cc1c52f0c414e"/><file name="SourceNotFoundException.php" hash="9b0281633515464f55b6f18ef412582c"/><file name="SubnetAlreadyInUseException.php" hash="ea8dfad2d28f574de1c676bbfff1a8b6"/><file name="SubscriptionAlreadyExistException.php" hash="a8a85aeffd72e721b74bbef92376140b"/><file name="SubscriptionCategoryNotFoundException.php" hash="c72edfffd2bf2df774b6523e1bc7f71b"/><file name="SubscriptionEventIdNotFoundException.php" hash="442e6bb4455ae519b6c9c6f572e83860"/><file name="SubscriptionNotFoundException.php" hash="64708e4b9af29c76b7ad874535de832c"/><file name="SubscriptionSeverityNotFoundException.php" hash="c4cddaf790f099d8bc8275409cca59f6"/><file name="UnauthorizedOperationException.php" hash="17fae856e885ad838335b54f442bcadc"/><file name="UnknownSnapshotCopyRegionException.php" hash="f141ccf84f1687737c954664774d1a79"/><file name="UnsupportedOptionException.php" hash="d31305342559091eecdd00847e772d6e"/></dir><file name="RedshiftClient.php" hash="d9e3676c5e598627575a0915aabe2252"/><dir name="Resources"><file name="redshift-2012-12-01.php" hash="d88d992915d3de324e337b71df8440e8"/></dir></dir><dir name="Route53"><dir name="Enum"><file name="Action.php" hash="5fce5d81f4f8cd20bcf26fee53ceebad"/><file name="HealthCheckType.php" hash="c786e5ccd8a11162b043acce875b27a9"/><file name="RecordType.php" hash="4c86625b5b1b13b1a0133d261c5f1760"/><file name="ResourceRecordSetFailover.php" hash="a234fda2f8ac5b9da3202a6523d19845"/><file name="Status.php" hash="22e5216a90bf7e81e88a2961362d9542"/></dir><dir name="Exception"><file name="DelegationSetNotAvailableException.php" hash="1f30995a821f7187bfa3c1ae1fe6730f"/><file name="HealthCheckAlreadyExistsException.php" hash="46f1c28ff9db8fcb76a3ae230ad4d60d"/><file name="HealthCheckInUseException.php" hash="626f8a159c1b82bedbd998999f246321"/><file name="HostedZoneAlreadyExistsException.php" hash="4047297658083123324bc27370311e5d"/><file name="HostedZoneNotEmptyException.php" hash="b5a2910ad2d934247c38c8e96ca7a056"/><file name="InvalidChangeBatchException.php" hash="0495d764fb61c3762eac22922edbebbb"/><file name="InvalidDomainNameException.php" hash="dfe54be39b49c612331df43a2d1c7220"/><file name="InvalidInputException.php" hash="ef7ea019827104fd4817794c7adf99b2"/><file name="NoSuchChangeException.php" hash="132a7edb2acd811c35b947f45de50f75"/><file name="NoSuchHealthCheckException.php" hash="716c680b6d78527c689d09814e3bd8a0"/><file name="NoSuchHostedZoneException.php" hash="a52873a6fd8908e690d24babde7519fd"/><file name="PriorRequestNotCompleteException.php" hash="4a689aeffe52c7794c52bbb9a285cc1a"/><file name="Route53Exception.php" hash="dd58506a12c8f771ff626c2d22ea55b9"/><file name="TooManyHealthChecksException.php" hash="fe6361d52270886401a73109a061c2d4"/><file name="TooManyHostedZonesException.php" hash="11cdde994613ae170b863aa9560f51e5"/></dir><dir name="Resources"><file name="route53-2012-12-12.php" hash="37845dbeeb1231a94dd8846d8621c923"/></dir><file name="Route53Client.php" hash="e2ad347026f7e742e5d8d2f30daec02e"/></dir><dir name="S3"><file name="AcpListener.php" hash="f0ad40c46a7eb3085a3b02629444d5c5"/><file name="BucketStyleListener.php" hash="f706acb1501f1a1a5a97c48ef4be30e6"/><dir name="Command"><file name="S3Command.php" hash="3dc05e397450a4b71a982327a206c38c"/></dir><dir name="Enum"><file name="CannedAcl.php" hash="f3b4032cea7c631b5cb1cc7947474fb8"/><file name="EncodingType.php" hash="a7cde485ca7ac5f211f0f1a842d8be6a"/><file name="Event.php" hash="1bb29324b69f9431e60583652916f2dc"/><file name="GranteeType.php" hash="b7897dc9b95f94f6b121dd6f5e28bc8f"/><file name="Group.php" hash="96d2fcdffb966c8e411fe630e10b5fc8"/><file name="MFADelete.php" hash="21617876155e75c94b8bc6f8380aec16"/><file name="MetadataDirective.php" hash="274e400686bd9a855a74c7f90554fb61"/><file name="Payer.php" hash="e25af5161310f4c6e3bd10063861d69e"/><file name="Permission.php" hash="d9a0af6b2cdc229239b047f23d838cff"/><file name="Protocol.php" hash="d97f9232bba001d3bf6ec41259636670"/><file name="ServerSideEncryption.php" hash="48d3a44084406aff1541a5defe9320f4"/><file name="Status.php" hash="918d94f3d16f77cac2276b85071e8e93"/><file name="Storage.php" hash="0266e6eb192fc241d3748d3ac04def25"/><file name="StorageClass.php" hash="813636035d4e3c256791152d0e3ec8ad"/></dir><dir name="Exception"><file name="AccessDeniedException.php" hash="c114efca1dcf9a7e3344fa406db0d494"/><file name="AccountProblemException.php" hash="4e04036a4f99661d3d24ba013d26c69a"/><file name="AmbiguousGrantByEmailAddressException.php" hash="b7055c317e07c03c66bdadd3cd6f2fee"/><file name="BadDigestException.php" hash="7ce5a3538bd37d2d893a5a4641ca5e87"/><file name="BucketAlreadyExistsException.php" hash="c70ca0f46a271fbb3a0dd8634778b241"/><file name="BucketAlreadyOwnedByYouException.php" hash="03ddf3e40d02c69d98e31a1ba0e11350"/><file name="BucketNotEmptyException.php" hash="c4164313e71b86ec0a94469ae59f5c7c"/><file name="CredentialsNotSupportedException.php" hash="28e5df8a1f769a05c4b0c17da307c821"/><file name="CrossLocationLoggingProhibitedException.php" hash="6604c9fc43cc2fcbbf5e20c22edb6026"/><file name="DeleteMultipleObjectsException.php" hash="08d0fa5ebbc445faddabca975a979884"/><file name="EntityTooLargeException.php" hash="a363b75b6140aa59516d6958bd818487"/><file name="EntityTooSmallException.php" hash="8244c7d196fcf6cfe81ce6be4e4ee3c3"/><file name="ExpiredTokenException.php" hash="9fde3c8c1f8ce13d3c1459ba80888484"/><file name="IllegalVersioningConfigurationException.php" hash="7502affc30c08ec7dec2ca9b79623861"/><file name="IncompleteBodyException.php" hash="3868573f4b4169bd66ec7ed55e828212"/><file name="IncorrectNumberOfFilesInPostRequestException.php" hash="9a7794f2028a7bbecb37f02a291f6c13"/><file name="InlineDataTooLargeException.php" hash="16a05c43ee339551a41d6db30b3ca660"/><file name="InternalErrorException.php" hash="af766935b9509e930d0ae19802289e4a"/><file name="InvalidAccessKeyIdException.php" hash="32f96f069dba33c77642bddfffe8db8b"/><file name="InvalidAddressingHeaderException.php" hash="e8951816cc56a7230167d73186c0ab90"/><file name="InvalidArgumentException.php" hash="26a64d61b80ab87cd4da2f0959951859"/><file name="InvalidBucketNameException.php" hash="389ba9774c6752da399d5a06714ca70d"/><file name="InvalidBucketStateException.php" hash="9010cee7e70cd31d533d490a0f676b7c"/><file name="InvalidDigestException.php" hash="498ad6eea22c072303d33040e1e2fb8a"/><file name="InvalidLocationConstraintException.php" hash="649bb9f9299de94c32142afe6966e3bd"/><file name="InvalidPartException.php" hash="cf7972454e18711007a3282ab14b0b2e"/><file name="InvalidPartOrderException.php" hash="2844134a42c3bf7250e00356a1af54c6"/><file name="InvalidPayerException.php" hash="668af3f62f403e4dff00bcf4c547586d"/><file name="InvalidPolicyDocumentException.php" hash="24708723851ace58c30233fbcd2a61c0"/><file name="InvalidRangeException.php" hash="98cfd5cd3599cea086cc16fa50447132"/><file name="InvalidRequestException.php" hash="dc44e8a1c168511de2b21dc9d0dcf26b"/><file name="InvalidSOAPRequestException.php" hash="07f4d5593c6119ab815a5abfafd45b4b"/><file name="InvalidSecurityException.php" hash="c5325d7ab1f09760b5cfb5dff1452cf5"/><file name="InvalidStorageClassException.php" hash="deeb571087b1013016717869ab219938"/><file name="InvalidTagErrorException.php" hash="28b72289665d68843022d1b8278afe4e"/><file name="InvalidTargetBucketForLoggingException.php" hash="04fb8e74ecc189e6b0436e1260dce9c5"/><file name="InvalidTokenException.php" hash="b21fb6f6445972b9c30d3bb566ace2de"/><file name="InvalidURIException.php" hash="cc39ea5c4ca166c4789366041d2c6647"/><file name="KeyTooLongException.php" hash="aeb54c82dfc9fa87084948e2e1010d96"/><file name="MalformedACLErrorException.php" hash="f6373149be4c19ccb7b614f3a3628ad7"/><file name="MalformedPOSTRequestException.php" hash="6aa99b0de24f2eb1a9de7df2715e38f3"/><file name="MalformedXMLException.php" hash="ef3fe78d3ed3db0db2ec67a04ad5a1a5"/><file name="MaxMessageLengthExceededException.php" hash="e398b2a0c10de3a9ed33612647dceb5b"/><file name="MaxPostPreDataLengthExceededErrorException.php" hash="c0d03c2fc6dd1d30cb53753ff3e76533"/><file name="MetadataTooLargeException.php" hash="49cef4705a18558a98a461da746f6d07"/><file name="MethodNotAllowedException.php" hash="1bca38cffcc6eb5eb5245f5a89007381"/><file name="MissingAttachmentException.php" hash="d89997a566746ebfafb220946f27a5a6"/><file name="MissingContentLengthException.php" hash="84bdb0a39275eb219deb1a2f75c391e5"/><file name="MissingRequestBodyErrorException.php" hash="402ba71db04643214cb40a1bd7d049ef"/><file name="MissingSecurityElementException.php" hash="d4fda63c036e22004452d73ed1e464d8"/><file name="MissingSecurityHeaderException.php" hash="aea750e7eebe1dfc9e487c789a6a9459"/><file name="NoLoggingStatusForKeyException.php" hash="3b8655854d58f4a783e82b2b3dc7c1e9"/><file name="NoSuchBucketException.php" hash="67678971e88adba7f2f48d63cc95adf3"/><file name="NoSuchBucketPolicyException.php" hash="5077fdc0b6cd80437ef07d3f35fd70fb"/><file name="NoSuchCORSConfigurationException.php" hash="78aa44073391f74bfd34303266c8959b"/><file name="NoSuchKeyException.php" hash="79da9b57a5ebe3cac8d7d2b0f43fdfab"/><file name="NoSuchLifecycleConfigurationException.php" hash="27e721bae72c4019ae6d2194a6572ba5"/><file name="NoSuchTagSetErrorException.php" hash="6b5056bd3f4a4c5113b16585e7328b90"/><file name="NoSuchUploadException.php" hash="de7d7276e8357e59053247069af4b17c"/><file name="NoSuchVersionException.php" hash="85b88fa151a076d133d6c9515c0f8b56"/><file name="NoSuchWebsiteConfigurationException.php" hash="18d8abb944dede950e933b4c8fb4c45d"/><file name="NotImplementedException.php" hash="bfded76dd7733080fc05e35fc9b5d570"/><file name="NotSignedUpException.php" hash="812bae6a59981af1cade72c37ca87886"/><file name="NotSuchBucketPolicyException.php" hash="714b2ba8c970dac2950314acccb4951e"/><file name="ObjectAlreadyInActiveTierErrorException.php" hash="f3c4ce492a49fe06caabecddd73658c3"/><file name="ObjectNotInActiveTierErrorException.php" hash="3ac099a476fa8cce2e0de5de51e81016"/><file name="OperationAbortedException.php" hash="a52b194d60900563f77d9deadbce14ed"/><dir name="Parser"><file name="S3ExceptionParser.php" hash="8b11e6c2e0aab8b276cf2cd90e36fc63"/></dir><file name="PermanentRedirectException.php" hash="61c2464e91a1b3313ccb9dde9d6ea207"/><file name="PreconditionFailedException.php" hash="8f04f2096229d8e4c99039e2f8685de5"/><file name="RedirectException.php" hash="bcc61525ec8286557cc882e620e0449b"/><file name="RequestIsNotMultiPartContentException.php" hash="9a233980787a08e6e8f946ecbaf44933"/><file name="RequestTimeTooSkewedException.php" hash="87f1822b747922a3dd576f4da63f1fc1"/><file name="RequestTimeoutException.php" hash="33862ef527aedb321a40c555d0d81250"/><file name="RequestTorrentOfBucketErrorException.php" hash="b7cf62f982b95dd160f44ea6553724d1"/><file name="S3Exception.php" hash="44d15cd57f1f8b5405f7776b636c9a4a"/><file name="ServiceUnavailableException.php" hash="054e5b096daaad03ee7c920660fbf32c"/><file name="SignatureDoesNotMatchException.php" hash="20791b3cbe22c91750cfae0c45e345d4"/><file name="SlowDownException.php" hash="2cab1602b76a19567c65bfcdbbd26b66"/><file name="TemporaryRedirectException.php" hash="d4e23dee2d180e598e4ab8562df97449"/><file name="TokenRefreshRequiredException.php" hash="f3d13abdc5305ab7de861a85b9f2eeae"/><file name="TooManyBucketsException.php" hash="37840f4760fa1c45336f203543b39c3f"/><file name="UnexpectedContentException.php" hash="5a7af7f0861aec70975e22383edf1605"/><file name="UnresolvableGrantByEmailAddressException.php" hash="ddacbd4d1ee7341fba322be7acda04b2"/><file name="UserKeyMustBeSpecifiedException.php" hash="b670411122d9f08bc7a3cb7ca3ba07e7"/></dir><dir name="Iterator"><file name="ListBucketsIterator.php" hash="f9c6dcc72963c40346bae45f25a39dd1"/><file name="ListMultipartUploadsIterator.php" hash="ad8bc7cfcb905bbcee5ac63f0d1a248a"/><file name="ListObjectVersionsIterator.php" hash="f05cf3b2a73eff79ed325dc18f91a8b9"/><file name="ListObjectsIterator.php" hash="72e641bd2db279e46e1da12720f9786e"/><file name="OpendirIterator.php" hash="1a8fc303bcfda2405023bc9ed07fc532"/></dir><dir name="Model"><file name="Acp.php" hash="c9583217f96ae9a208b1fae3db05d862"/><file name="AcpBuilder.php" hash="520344fe298bf4a1039f5244dac35def"/><file name="ClearBucket.php" hash="c92f83bf549b0ac27f93c039d2314f20"/><file name="DeleteObjectsBatch.php" hash="a4aecf1a402097c03b4c3e7e75436464"/><file name="DeleteObjectsTransfer.php" hash="2e68e3fa281c67da8372aed974b9856e"/><file name="Grant.php" hash="56d27ab990a43bc09457c27ec6a7c322"/><file name="Grantee.php" hash="1571724e26f99bde52eccc5f532a0244"/><dir name="MultipartUpload"><file name="AbstractTransfer.php" hash="f7bde99befdba989ecf74bad5332db8d"/><file name="ParallelTransfer.php" hash="685316207c2ca094dcc50413a978c4c8"/><file name="SerialTransfer.php" hash="8f60dc1193eb7fc0c7ed88642fdece94"/><file name="TransferState.php" hash="45484c7268141212c6a346ee5ff05962"/><file name="UploadBuilder.php" hash="33c711012cc52731819989d44b65ed1e"/><file name="UploadId.php" hash="0925b992d88491867fe204bb216c9961"/><file name="UploadPart.php" hash="e52983d0299b0dddcf62ac3fe2a7eff0"/></dir><file name="PostObject.php" hash="c4442aac3d7c357e89bef36cfe2adbe1"/></dir><dir name="Resources"><file name="s3-2006-03-01.php" hash="8b981d2d178e130c05618a719eb103b7"/></dir><file name="ResumableDownload.php" hash="d54fce84af9a35d046e3346355499327"/><file name="S3Client.php" hash="673f6e903638f8083627b5a965473891"/><file name="S3Signature.php" hash="30b110028a85c0ce1bbd81f717bd3e6b"/><file name="S3SignatureInterface.php" hash="24123584723d3246ad890edbe23032c1"/><file name="SocketTimeoutChecker.php" hash="3796f27bca6c52702c587f3bd6d686fb"/><file name="StreamWrapper.php" hash="80f788f99058dfe3a89c3f568c6b84f9"/><dir name="Sync"><file name="AbstractSync.php" hash="cf937c67b37e8324b092f0e0d4dcf2b2"/><file name="AbstractSyncBuilder.php" hash="e063c42e33760471334a99ed04125c6a"/><file name="ChangedFilesIterator.php" hash="29f995cf4b1d149410faf16a938d8694"/><file name="DownloadSync.php" hash="6c3beef28bbcea8ba1e8876e315d86fb"/><file name="DownloadSyncBuilder.php" hash="ccc36e18fc3313889417d974cf37f322"/><file name="FilenameConverterInterface.php" hash="e1367db996b4bf594e6d05871be1147d"/><file name="KeyConverter.php" hash="32dda070441adbd91bbee817e0441104"/><file name="UploadSync.php" hash="f1850338b38d355b005739b7fbf1cfba"/><file name="UploadSyncBuilder.php" hash="5f614fb75a64262ed27f350d625fc0f4"/></dir></dir><dir name="Ses"><dir name="Enum"><file name="IdentityType.php" hash="7b1434f0dd2bebf330bb8e67b5776c16"/><file name="MailboxSimulator.php" hash="2fcebe481c157a59ab4bf48d7f3d5b1a"/><file name="NotificationType.php" hash="de1d29bace5b3760dfb932f12b6debf3"/><file name="VerificationStatus.php" hash="1ec0dc20df5850342d4fdbbf22584d18"/></dir><dir name="Exception"><file name="MessageRejectedException.php" hash="8fe4d09febaafe19905490ca8289cb31"/><file name="SesException.php" hash="80c490691ee79c616ac3199e02609773"/></dir><dir name="Resources"><file name="ses-2010-12-01.php" hash="7bfc2e274202448ef48f3db6912f0bad"/></dir><file name="SesClient.php" hash="56fc026f1ddfec565dc60f011d60daf4"/></dir><dir name="SimpleDb"><dir name="Exception"><file name="AttributeDoesNotExistException.php" hash="89cd247daec2557d7aa3e4a516375124"/><file name="DuplicateItemNameException.php" hash="e0853eec8bfeca7af07647e7661745b3"/><file name="InvalidNextTokenException.php" hash="9a5eb3b4f58096cbff6ca50452aaa5de"/><file name="InvalidNumberPredicatesException.php" hash="82154f8919c46f04fe458e5e1c4930ac"/><file name="InvalidNumberValueTestsException.php" hash="a518f2835e281940b42636bc74236dc0"/><file name="InvalidParameterValueException.php" hash="1dae86e1f9d1c1ab52b92a2f9b54ebdc"/><file name="InvalidQueryExpressionException.php" hash="2b447e1872af6957f980b3356e4cc1dc"/><file name="MissingParameterException.php" hash="e137eaf206ad6c11fb3079ca37045d9a"/><file name="NoSuchDomainException.php" hash="174107d8484ef69fd125a222b892378c"/><file name="NumberDomainAttributesExceededException.php" hash="30c9362c7b6f7c1e180d66b752cabbac"/><file name="NumberDomainBytesExceededException.php" hash="39cdcaa259801c17c3285cc6fe63abd1"/><file name="NumberDomainsExceededException.php" hash="55407c961af9be88f1f1b0d727022b60"/><file name="NumberItemAttributesExceededException.php" hash="534337c97805fb83fc44cc170062c192"/><file name="NumberSubmittedAttributesExceededException.php" hash="966af01414e272c08da36ee7f5cf6a66"/><file name="NumberSubmittedItemsExceededException.php" hash="c4b4a39f2dcb54b6d22eaa78ec27d3e2"/><file name="RequestTimeoutException.php" hash="1db604dfb1a3d872f1a938560f4fde09"/><file name="SimpleDbException.php" hash="00ae6c090e9b29dbe94e2bf89afb4714"/><file name="TooManyRequestedAttributesException.php" hash="bc7f7097143def4f5af396975f6e9d58"/></dir><dir name="Resources"><file name="simpledb-2009-04-15.php" hash="86ae3a2a1055a7c491b4d9bc3b1bf53b"/></dir><file name="SimpleDbClient.php" hash="d474efdaa1e1d42e59d2bfbfa3a1f702"/></dir><dir name="Sns"><dir name="Exception"><file name="AuthorizationErrorException.php" hash="c9c32bebd0667506abcbcd9f4429a777"/><file name="EndpointDisabledException.php" hash="19efdabc8d90e59e134c4e6fceba40b4"/><file name="InternalErrorException.php" hash="d9fc5142ac993b516e74f341b26a0028"/><file name="InvalidParameterException.php" hash="4607881f657f45574e7cc7c293684d81"/><file name="NotFoundException.php" hash="78af1af1d83ca29500aac9556936f550"/><file name="PlatformApplicationDisabledException.php" hash="30ccee756ebe28b9d7ee09be2dd73b30"/><file name="SnsException.php" hash="a164f228095640cc761e8f062db18c17"/><file name="SubscriptionLimitExceededException.php" hash="3a3a6d27050da606c25ec33596e656cf"/><file name="TopicLimitExceededException.php" hash="1af31f173c47f90c6ff0bfea1f8622ab"/></dir><dir name="MessageValidator"><dir name="Exception"><file name="CannotGetPublicKeyFromCertificateException.php" hash="ae5ac1b193faefd454d41de4319b7b32"/><file name="CertificateFromUnrecognizedSourceException.php" hash="041127c1828cb7953e04f30a3b406faa"/><file name="InvalidMessageSignatureException.php" hash="ef92f5716162e9e93e8db80cbc920656"/><file name="SnsMessageValidatorException.php" hash="be9ed15b7e83fb785569b12651e6c2f6"/></dir><file name="Message.php" hash="26b46ec304ab9cd5dd068d43f8b2924f"/><file name="MessageValidator.php" hash="02c5130654991b90a61a71a444b486e9"/></dir><dir name="Resources"><file name="sns-2010-03-31.php" hash="0bf18b6a9c652b35e566ee4ba76a8608"/></dir><file name="SnsClient.php" hash="e6356464f3c8ed946d91e7bb2340f9cc"/></dir><dir name="Sqs"><dir name="Enum"><file name="MessageAttribute.php" hash="972a07c9b6af94cdb381481ec942843e"/><file name="QueueAttribute.php" hash="3ffb7f45166e2dbb65dfd6e62f5bd882"/></dir><dir name="Exception"><file name="SqsException.php" hash="2d9b4c27e76ddd89890a54327a8e52dc"/></dir><file name="Md5ValidatorListener.php" hash="314b5f6805e9f74ff79307f58e5625f8"/><file name="QueueUrlListener.php" hash="b8a37308c474a2089dda2598f8ee8a39"/><dir name="Resources"><file name="sqs-2012-11-05.php" hash="02782621c66756f8b4cfac5345bb8d55"/></dir><file name="SqsClient.php" hash="f036882a777d9b0bc6f872d6f3ef6b29"/></dir><dir name="StorageGateway"><dir name="Enum"><file name="BandwidthType.php" hash="74737be50725532cb9c59adb4e0964c6"/><file name="DiskAllocationType.php" hash="9172f0a549961cfdda4946e97ae7fd4b"/><file name="ErrorCode.php" hash="112ce969ef8b5ca60e5e8d5402c3aba4"/><file name="GatewayState.php" hash="cf95681599926a3343d5713af3176407"/><file name="GatewayTimezone.php" hash="d5443798ff34349b53c2e2ea8babd3be"/><file name="GatewayType.php" hash="3df5febc6781a936c030daf16955afc7"/><file name="VolumeStatus.php" hash="8c83be75e61c5357ec43c372e74b691a"/><file name="VolumeType.php" hash="e463cdf364baa9d29b4edb2ffa78e523"/></dir><dir name="Exception"><file name="InternalServerErrorException.php" hash="3b24f8be8621ac6edf9b158bc446e6a6"/><file name="InvalidGatewayRequestException.php" hash="b50d2c02cb9d83c06d0b31766125115e"/><file name="StorageGatewayException.php" hash="55e455a7de135b016edb2e49aac1201e"/></dir><dir name="Resources"><file name="storagegateway-2013-06-30.php" hash="d98226997b583369aa6bb9b0ad04e85b"/></dir><file name="StorageGatewayClient.php" hash="66437802ed9debdacc3a445e73d6d400"/></dir><dir name="Sts"><dir name="Exception"><file name="ExpiredTokenException.php" hash="dbbe480b720f40f1ac1153e8e47791c9"/><file name="IDPCommunicationErrorException.php" hash="cad826cd21ea1b633cfcf2a020f8f9e0"/><file name="IDPRejectedClaimException.php" hash="d07ca295e8793954dbcc65e302a1c36f"/><file name="IncompleteSignatureException.php" hash="803bac0bdd431bd158f41afc80c5a3f4"/><file name="InternalFailureException.php" hash="fce4ddd89a91f91c36faa6220ad40f15"/><file name="InvalidActionException.php" hash="fb480af522618852b977603fea415be0"/><file name="InvalidAuthorizationMessageException.php" hash="7cd9f2747d82ce405a4fd1d4c0004438"/><file name="InvalidClientTokenIdException.php" hash="3f3db6cbae9c84bff46adf1de0dbd124"/><file name="InvalidIdentityTokenException.php" hash="6fc19a03fcae589b1caa90249f7e1666"/><file name="InvalidParameterCombinationException.php" hash="1d2a1163551980de91c132e6377f59ca"/><file name="InvalidParameterValueException.php" hash="f7bff008b2f1d8f16d958d0d00cb2ff6"/><file name="InvalidQueryParameterException.php" hash="7e0ba0cee050bac2c7060f21019a8a73"/><file name="MalformedPolicyDocumentException.php" hash="7cf8992e0d384d4829967f8e53c6e4be"/><file name="MalformedQueryStringException.php" hash="43bbb0c8d87b0999632b1ae16d874e2e"/><file name="MissingActionException.php" hash="e40d84bc4bf89e0706156fb4ceb4992e"/><file name="MissingAuthenticationTokenException.php" hash="7a24a9e4185c9900967debdea54dc49b"/><file name="MissingParameterException.php" hash="9de74bfa936d873b8b3c63695c3c7c4e"/><file name="OptInRequiredException.php" hash="b7f0e7d5e1bb49a0fb73f7a7f839eb0f"/><file name="PackedPolicyTooLargeException.php" hash="e77e686eff1950ef2b9f7e7404a4cfba"/><file name="RequestExpiredException.php" hash="944c6a51faa1b5577f237f398cb95c04"/><file name="ServiceUnavailableException.php" hash="5ed7c8a34573ae519a32d61625d0448f"/><file name="StsException.php" hash="b7dbe8f33e451b0136c3f7676591e314"/><file name="ThrottlingException.php" hash="09497f7ecbfbecd52c4c587386c949ea"/></dir><dir name="Resources"><file name="sts-2011-06-15.php" hash="0cf6ebc43c59b4f50d9eb17e1cf69f32"/></dir><file name="StsClient.php" hash="917e738bbf7f3b245081cee095648261"/></dir><dir name="Support"><dir name="Exception"><file name="CaseCreationLimitExceededException.php" hash="f541cf0a6e8ff9985d0e70a289d0eb94"/><file name="CaseIdNotFoundException.php" hash="9c363316112f6b7c9fc1c59d76f1de25"/><file name="InternalServerErrorException.php" hash="76107a35c80b1206c3980044528e22d0"/><file name="SupportException.php" hash="8794c47dfbe7b39a9a4c6d2ed524dc0f"/></dir><dir name="Resources"><file name="support-2013-04-15.php" hash="332b684e2cf1fd81a7d618f70026c498"/></dir><file name="SupportClient.php" hash="4cb48af0344896e022f587341d15a972"/></dir><dir name="Swf"><dir name="Enum"><file name="ActivityTaskTimeoutType.php" hash="ae5ef267a855e9ce7f05f813d5c98323"/><file name="ChildPolicy.php" hash="cfc441001e155672d0c2a9b8b6b35653"/><file name="CloseStatus.php" hash="5bb4c09c3f5d67c69796d981ccb88c19"/><file name="DecisionTaskTimeoutType.php" hash="ce0b0593dc9eabce8f1720150d8638ae"/><file name="DecisionType.php" hash="c339e1c2d6e8c2ca77bf7ff5ed71224e"/><file name="EventType.php" hash="93cb1244b83337f3ce72d3cac51f9601"/><file name="ExecutionStatus.php" hash="fe48756d2888aa93a372fc93dcbc7e35"/><file name="RegistrationStatus.php" hash="932c801a3cb1caef4d1e52673d9cf3d1"/><file name="WorkflowExecutionTimeoutType.php" hash="aaee716b3bb93d45f07e3d49f3332a5a"/></dir><dir name="Exception"><file name="DefaultUndefinedException.php" hash="f4c46800e3c0c5422df40efe10094a97"/><file name="DomainAlreadyExistsException.php" hash="442c06492c3e0ea4ceaf16212348e4cd"/><file name="DomainDeprecatedException.php" hash="ed9e65abac25df8bf792ce44925adc6b"/><file name="LimitExceededException.php" hash="72c4292360bc2a24e0877d3c32c0ed02"/><file name="OperationNotPermittedException.php" hash="862ac52541784804ad342acd738d2445"/><file name="SwfException.php" hash="e4c24f76c14661c34393f261e05e0fe5"/><file name="TypeAlreadyExistsException.php" hash="c7ecf2b68e784f02f3b81c85dea3fbb0"/><file name="TypeDeprecatedException.php" hash="50cdd637dcd8b74501084d8d3db31412"/><file name="UnknownResourceException.php" hash="fc9b976aa824ec9928a4b6c0dbdfc393"/><file name="WorkflowExecutionAlreadyStartedException.php" hash="3ac7b424e3b3e94f6931b655f90eea8c"/></dir><dir name="Resources"><file name="swf-2012-01-25.php" hash="457c65913542df8c939d5f71b33ef432"/></dir><file name="SwfClient.php" hash="763de5a723e0ccedd75b77a9675725d0"/></dir></dir><dir name="Doctrine"><dir name="Common"><dir name="Cache"><file name="ApcCache.php" hash="b8add60c279489f74e1f52793e25f773"/><file name="ArrayCache.php" hash="aaad66e13d564ef90a07573233a84389"/><file name="Cache.php" hash="8d840db1d6778518d4259ce96adb295e"/><file name="CacheProvider.php" hash="c2c90f9e8579dbbec885311cb74a122c"/><file name="CouchbaseCache.php" hash="293e1d41557bf6b9ab5aef606c5e2b6a"/><file name="FileCache.php" hash="8bda505eeec5f017892712f32e2f1789"/><file name="FilesystemCache.php" hash="5223cf45458913a38db04e4bcd203e26"/><file name="MemcacheCache.php" hash="44a3c997a6d721d22d9b10e1d0770b4c"/><file name="MemcachedCache.php" hash="1ac7592a7455aead24af57c8fc6c820a"/><file name="MongoDBCache.php" hash="01a73549b122634ecd5accdd0158a8c0"/><file name="PhpFileCache.php" hash="83be303d8fc1c46f0e7a59f0a66d2c8a"/><file name="RedisCache.php" hash="ce39d7ed28378ab3b71fade844415423"/><file name="RiakCache.php" hash="ca83e1086997bee24b0ac1da228cea7d"/><file name="Version.php" hash="981844148bec2c3fae9ee0c130b1e026"/><file name="WinCacheCache.php" hash="98c21113bee715fc23c1010927bc0804"/><file name="XcacheCache.php" hash="41b49b6e981a2c1c75bedacea9bf6ec1"/><file name="ZendDataCache.php" hash="ea438b0409996d058d562326a737dade"/></dir></dir></dir><dir name="Engage"><dir name="Block"><dir name="Adminhtml"><dir name="Engage"><dir name="Edit"><file name="Form.php" hash="8be003c0b60c8d5b85611ac14e9ea6fd"/><dir name="Tab"><file name="Form.php" hash="8a7d81b8dc569a24ab26e2f2adab6477"/></dir><file name="Tabs.php" hash="15beb8a0ec0bb422963fb7ed0f0cd35a"/></dir><file name="Edit.php" hash="53a459ef71bc48569d0812bf2e21acf0"/><file name="Grid.php" hash="e58fe0b54ce1f2196971d2825aa6e2b9"/></dir><file name="Engage.php" hash="10bb9b17de7a4721893e9f9129701ef1"/></dir><file name="Button.php" hash="8b1d2ecbc79cbd2917a29bc4d0152a93"/><file name="Buttonexport.php" hash="0ea9196c02b1952c6f0632542ac5d2a4"/><file name="Buttontestconnect.php" hash="e388161e55080ae63c17764b2b6f83d1"/><file name="Engage.php" hash="eece4f427dcb0b136a3435dbbac9a2a7"/><file name="Ga.php" hash="05d300c2e95dda7a01782b238e842fa1"/></dir><dir name="Helper"><file name="Data.php" hash="3a9af01a3c422b0f693577074dae3da6"/></dir><dir name="Model"><file name="Catalogvalues.php" hash="1eb4d0990dab378102a315e2f7dea195"/><file name="Crontime.php" hash="aa11fbc0518015f0ea9ad31879e2942c"/><file name="Customervalues.php" hash="dea955296bb81ede1a493b868dd1fa8e"/><file name="Engage.php" hash="e5e0c63deb2f9d5af46b6494bd8da04d"/><file name="Gacode.php" hash="e003a5e564b1448eeba88ffb5633f18b"/><dir name="Mysql4"><dir name="Engage"><file name="Collection.php" hash="e58859b2f5b4708eb941c9d06ade4598"/></dir><file name="Engage.php" hash="c492577c2fd9a6ae2f193d29474d2264"/></dir><file name="Observer.php" hash="7d1d4021a9506af16a5ff60543e27652"/><file name="Productvalues.php" hash="2e25e89dd6bc052c526364e40d83cebe"/><file name="Status.php" hash="31986502af9ee8f584770587eef6c9e3"/><file name="Time.php" hash="5a8cda2b446d1e31c4e88fd6833609fb"/><file name="Timeframe.php" hash="123113578538af59392a39e6471827b0"/><file name="Uploadinfo.php" hash="ff0fbcfc2a4143f3c9d8f6caa1ecfa08"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="EngageController.php" hash="a2b86319251803e9cc44bb19b7777fda"/></dir><file name="IndexController.php" hash="1b5639c7d012fc2b18473f396ebf5899"/></dir><dir name="etc"><file name="adminhtml.xml" hash="d12bb84c74502244f2ab3ac82594856e"/><file name="config.xml" hash="46f910718c59a86efcb96df2b2b41ed8"/><file name="system.xml" hash="6d894107c020cab2c769250a651c7ba0"/></dir><dir name="sql"><dir name="engage_setup"><file name="mysql4-install-0.1.0.php" hash="e82cbb2edc97eef70fcd68f487e3b081"/></dir></dir></dir><dir name="Guzzle"><dir name="Batch"><file name="AbstractBatchDecorator.php" hash="b9f1ce19f113f4d5b5886b04219b26c6"/><file name="Batch.php" hash="b780b6cafbfefc90e32ca531e1406239"/><file name="BatchBuilder.php" hash="0658d8456d338b2b4f5e5bd12875af1c"/><file name="BatchClosureDivisor.php" hash="be8e54078d5dcc5e5089006b0399096e"/><file name="BatchClosureTransfer.php" hash="43125673b59879626fb833603e6a23d2"/><file name="BatchCommandTransfer.php" hash="7129a1584dd4ad7f92d56040124676c2"/><file name="BatchDivisorInterface.php" hash="9b1460f23f32fc4beee434f7ad1de674"/><file name="BatchInterface.php" hash="bdf900e6c7038e23ede1ee25cafa05bc"/><file name="BatchRequestTransfer.php" hash="9671e493d9d3a8271de4e2c3d8d33d5d"/><file name="BatchSizeDivisor.php" hash="282368575f4576cb5b8e323921fbce7d"/><file name="BatchTransferInterface.php" hash="c92e98244535738d7b8c8304076da4ff"/><dir name="Exception"><file name="BatchTransferException.php" hash="3f8eb4b34fe7eb242b647a00acc60f00"/></dir><file name="ExceptionBufferingBatch.php" hash="172ecdb412b2116f8cfc43632aed5971"/><file name="FlushingBatch.php" hash="0a176cd0d3c37fd6d3c3edd32973ee63"/><file name="HistoryBatch.php" hash="62cabc0fe63acc14fb8bf2e551b6f673"/><file name="NotifyingBatch.php" hash="b7d39171fc686a2124b93a85954542a5"/></dir><dir name="Cache"><file name="AbstractCacheAdapter.php" hash="d299bf5b6503b485390d54a6fe9894e8"/><file name="CacheAdapterFactory.php" hash="678b21a05c0c63c595d6b00ad3567ee7"/><file name="CacheAdapterInterface.php" hash="0c6a26170379b4c3f42240a1747f51d8"/><file name="ClosureCacheAdapter.php" hash="617c0958c5a41811443553755bd57e85"/><file name="DoctrineCacheAdapter.php" hash="7107ed2df05edf22b50a5d953a53e694"/><file name="NullCacheAdapter.php" hash="731789c642be2ecc518aef6f576b475f"/><file name="Zf1CacheAdapter.php" hash="8ff8cf2a495cf9569eb5f83a721464f8"/><file name="Zf2CacheAdapter.php" hash="5b26ea450db552ff04cb333743c0672c"/></dir><dir name="Common"><file name="AbstractHasDispatcher.php" hash="4e0c67da62cd3cbe82b167f1855bff8e"/><file name="Collection.php" hash="bdf612b12448bab74c6a90dbdb20095b"/><file name="Event.php" hash="d239258d838e0928c2b211ab9f0f0bad"/><dir name="Exception"><file name="BadMethodCallException.php" hash="98140817d5204df2df8c758eb52e3ca2"/><file name="ExceptionCollection.php" hash="0f813e3dedf582573791008f43cfa5fe"/><file name="GuzzleException.php" hash="a59974564cb5886db0906d38622d7b65"/><file name="InvalidArgumentException.php" hash="e176a3bfbc46ad0bcf8cc53a70ad2660"/><file name="RuntimeException.php" hash="505f3a2971d80715a8601f7bb8139023"/><file name="UnexpectedValueException.php" hash="2182332c538ad9279f1cb31ebf8cec90"/></dir><file name="FromConfigInterface.php" hash="a23e030b62590950884856109219c7f3"/><file name="HasDispatcherInterface.php" hash="efdba8306b7e0c6c04a23c4a3495e9bc"/><file name="ToArrayInterface.php" hash="5466584f27e38712cd08d8e6309b8e78"/><file name="Version.php" hash="3ea7bd41bae7240879c6969050128858"/></dir><dir name="Http"><file name="AbstractEntityBodyDecorator.php" hash="36d4a68be72393686cdc9e9173adbfd7"/><file name="CachingEntityBody.php" hash="55c80a146676519d5f78259b8763c4fc"/><file name="Client.php" hash="d953cec8d27e39b81cdc1644c49411e1"/><file name="ClientInterface.php" hash="406c37f60933c0eb3b359cf8739fca53"/><dir name="Curl"><file name="CurlHandle.php" hash="237a99b299ba7c398384882505435ab3"/><file name="CurlMulti.php" hash="dfbf9ccce89834f6722218cd6f4e33f2"/><file name="CurlMultiInterface.php" hash="ba75ac02d77e97f76938e59e34596b43"/><file name="CurlMultiProxy.php" hash="08b7fa7d6e0f07baa53a30bde045fc7e"/><file name="CurlVersion.php" hash="7857dd20077df5870f74975d2d85e89f"/><file name="RequestMediator.php" hash="0d01e2e18ff502516c5724a995140cd2"/></dir><file name="EntityBody.php" hash="5e7d97a7d64e019859b9737d8d37a2d7"/><file name="EntityBodyInterface.php" hash="c6942f8b5cef9fa3fb6d5b7e7f718a29"/><dir name="Exception"><file name="BadResponseException.php" hash="2e358b13ef147dd6b226366a28860c7e"/><file name="ClientErrorResponseException.php" hash="13cab04cce406a1b0afcfea86ef7031c"/><file name="CouldNotRewindStreamException.php" hash="08075c1d0711249e1f0674d86b57d2ce"/><file name="CurlException.php" hash="d42f19fc1b034f410149e6ce97d5c750"/><file name="HttpException.php" hash="f78259ea006cf165d4848a312c827d0d"/><file name="MultiTransferException.php" hash="72967b8cba5f64f9e05dd8a3a609546f"/><file name="RequestException.php" hash="e5f816167d92abea64ee09a5be87fe94"/><file name="ServerErrorResponseException.php" hash="fe2621a64b89853c555a97ceffca9b08"/><file name="TooManyRedirectsException.php" hash="9c530bbf82d46c8014ede984fbc308e5"/></dir><file name="IoEmittingEntityBody.php" hash="af444084e0f6f7b83c2813db7848196d"/><dir name="Message"><file name="AbstractMessage.php" hash="b6b1aa0e6f9e5392b4164f17a504198a"/><file name="EntityEnclosingRequest.php" hash="366c71ac8825cf62c8386b52d98cf5df"/><file name="EntityEnclosingRequestInterface.php" hash="74189c9d4edcd2f6dbc04a53c538a8ee"/><dir name="Header"><file name="CacheControl.php" hash="f5025f2ec81740068b61c37014b20c94"/><file name="HeaderCollection.php" hash="f8280b853d953d1df103d26dc9f99c60"/><file name="HeaderFactory.php" hash="5a039da3a9ae34fbdba128ca675ba6e4"/><file name="HeaderFactoryInterface.php" hash="e82845c9bf276a9a2b012e54927dd6c9"/><file name="HeaderInterface.php" hash="57719abc7b9e3a8c7c65b826a69a4df9"/><file name="Link.php" hash="b65c1fa22f1f80185d6443488c6f2db2"/></dir><file name="Header.php" hash="a1e0ae834c7a2ab486ed05b9c542db67"/><file name="MessageInterface.php" hash="b2806bc032b6960b6251b82dd23f61fd"/><file name="PostFile.php" hash="7dfb1139d6f59e8cd91203d8f66d5ad9"/><file name="PostFileInterface.php" hash="20adf5af26e9cabe000e9222fbaa64cf"/><file name="Request.php" hash="49eeb3d0438ae595faba011d79755220"/><file name="RequestFactory.php" hash="81875dcdbd5f5c65664c7783d9964c15"/><file name="RequestFactoryInterface.php" hash="076e8c936861a6aaf2e2a2772ac6158b"/><file name="RequestInterface.php" hash="e643c7a168461ff20fad2e83b8b94960"/><file name="Response.php" hash="b8001c30bde276b492860d9c706adb4b"/></dir><file name="Mimetypes.php" hash="296f3caa16598a0262fcc05cde66cbe4"/><dir name="QueryAggregator"><file name="CommaAggregator.php" hash="67ceee8d6a476d2a66594512aaa85c54"/><file name="DuplicateAggregator.php" hash="065d2f19bf0670cbe63d7d7164093b9b"/><file name="PhpAggregator.php" hash="819504c086b326dbe1ea261c1d94344b"/><file name="QueryAggregatorInterface.php" hash="0bad1c6e1af16c2d634e58e5cb272a37"/></dir><file name="QueryString.php" hash="651513f362f6caa748e61e848b8189a6"/><file name="ReadLimitEntityBody.php" hash="2060e14d573e4a4d5ec942bd94302c69"/><file name="RedirectPlugin.php" hash="6c0cae4ec5e8491acaf8cd225ee50c13"/><dir name="Resources"><file name="cacert.pem" hash="349ba2d6964db9ca558c9e1daf38e428"/><file name="cacert.pem.md5" hash="6c0a511493af137ac6d8d69021a8848a"/></dir><file name="StaticClient.php" hash="84309c875fef96b4e773373d49e6c79a"/><file name="Url.php" hash="fcaf1700c1cf21660974367768ec2535"/></dir><dir name="Inflection"><file name="Inflector.php" hash="af099fa9a6f19542cd50dc4b9e53c630"/><file name="InflectorInterface.php" hash="a575fde89bf5331c554754e83eb82dd0"/><file name="MemoizingInflector.php" hash="990be5be097a292ed84e3ce5515754ec"/><file name="PreComputedInflector.php" hash="9f2b03877e501cfefe8f1ef2f616c133"/></dir><dir name="Iterator"><file name="AppendIterator.php" hash="d17ed123efb05b686f44c2eed7d3c4fe"/><file name="ChunkedIterator.php" hash="8cdd7e82a00b9a01136a8f056db18f64"/><file name="FilterIterator.php" hash="ed7e0d5590d718f246627b7f6949cba6"/><file name="MapIterator.php" hash="7d28a4b22f442e13b6874f55746b28e0"/><file name="MethodProxyIterator.php" hash="4518ead4f857bd9721b1226068f7eb32"/></dir><dir name="Log"><file name="AbstractLogAdapter.php" hash="8125cc1372285a9132d96a76ff87dbbf"/><file name="ArrayLogAdapter.php" hash="7cd65cd88fcdb68f6a682fdf34b4a8ae"/><file name="ClosureLogAdapter.php" hash="d5798485461e5f0057f2d41e8e37cf88"/><file name="LogAdapterInterface.php" hash="67ea49d97a88cf2e46f7563abc2504a7"/><file name="MessageFormatter.php" hash="c9544d2a631334bfd77f452d270ea761"/><file name="MonologLogAdapter.php" hash="6e309ba00aa769eec28500b26f4c018f"/><file name="PsrLogAdapter.php" hash="55b4beb10ccf08e3a6041a2b404431ff"/><file name="Zf1LogAdapter.php" hash="baf4ad91fbc41481bc565f6b0079c4b4"/><file name="Zf2LogAdapter.php" hash="150ac5b6d1597041896ba262f8df8930"/></dir><dir name="Parser"><dir name="Cookie"><file name="CookieParser.php" hash="33f6a9285dd2ec90dc87fb4fc998e59d"/><file name="CookieParserInterface.php" hash="98ef9046ca0ce771cd9a7cf823b76c66"/></dir><dir name="Message"><file name="AbstractMessageParser.php" hash="d2dab239632534f4966b284135abe69c"/><file name="MessageParser.php" hash="c5b9f75ddeb4c0231a595a3a7fb442c7"/><file name="MessageParserInterface.php" hash="1d3f9753d1186f001acc71f2b383e139"/><file name="PeclHttpMessageParser.php" hash="dbe4987f6c937c04a93161531fc38938"/></dir><file name="ParserRegistry.php" hash="a538b157111059ac6cdee20699400aee"/><dir name="UriTemplate"><file name="PeclUriTemplate.php" hash="8bc54f20bbdf7159edf75973efbd6999"/><file name="UriTemplate.php" hash="b8c59a215eb0bfabdbb42b1fb9e74542"/><file name="UriTemplateInterface.php" hash="1920e2818088ba2acebdf36a44fb58bf"/></dir><dir name="Url"><file name="UrlParser.php" hash="65660d68ad322bba1a1131c2c2d48c28"/><file name="UrlParserInterface.php" hash="b4d8c4cb8ca13a5ac8f3dbe3e4f7f42d"/></dir></dir><dir name="Plugin"><dir name="Async"><file name="AsyncPlugin.php" hash="12ec1382a5c2c4d2c76bca740610fcf9"/></dir><dir name="Backoff"><file name="AbstractBackoffStrategy.php" hash="07ee263d5fe87295e8d5ecf532b4e6c5"/><file name="AbstractErrorCodeBackoffStrategy.php" hash="5308b4c3bfa331b1feec2e886bf1e38d"/><file name="BackoffLogger.php" hash="2e9be2da8552ebc96075444c48b950a1"/><file name="BackoffPlugin.php" hash="1682322fb85d5d260de15f087615e400"/><file name="BackoffStrategyInterface.php" hash="d335f9d4bd310ef8389e2ff27c6f8f2f"/><file name="CallbackBackoffStrategy.php" hash="0a2fe568fe891ef304aeff3ef105e6d6"/><file name="ConstantBackoffStrategy.php" hash="38485d972e1fcc876e22d092dfde7f39"/><file name="CurlBackoffStrategy.php" hash="7a00f8bdddbd441eed9268c4bb250399"/><file name="ExponentialBackoffStrategy.php" hash="9c199d621974ad2c70c437629d54fdb4"/><file name="HttpBackoffStrategy.php" hash="4443aff69969039d756e3580b1353067"/><file name="LinearBackoffStrategy.php" hash="f91a338afaa2d8c55d5e00ce739e1f6d"/><file name="ReasonPhraseBackoffStrategy.php" hash="0245fa4a73cd4071b14e0595423e0430"/><file name="TruncatedBackoffStrategy.php" hash="86af5b5166fff87b89c24214cb399841"/></dir><dir name="Cache"><file name="CacheKeyProviderInterface.php" hash="b3615e71ca2d35d1455a4399cdc95241"/><file name="CachePlugin.php" hash="3b10308c4b3d8732f26740b2cd8dc0ad"/><file name="CacheStorageInterface.php" hash="d65ee0463cb9a70b29e4d2bfd59c146c"/><file name="CallbackCanCacheStrategy.php" hash="262f7b68f93486affbcc78e8eb850b32"/><file name="CanCacheStrategyInterface.php" hash="739959b1f128d105e3587788d6cb4b37"/><file name="DefaultCacheKeyProvider.php" hash="1e89b5a4015f65e399a9cdae2bc2f205"/><file name="DefaultCacheStorage.php" hash="c441c05e04aaea4a990e9c301f9e41fb"/><file name="DefaultCanCacheStrategy.php" hash="72dc9cba472369e097053dc3b62fa83c"/><file name="DefaultRevalidation.php" hash="6365295c02e5c495273d555cf19d0251"/><file name="DenyRevalidation.php" hash="0fd0df77357918d89dd1ef77a25d6267"/><file name="RevalidationInterface.php" hash="29ffe4f945e9e554514675e9b7e8dec0"/><file name="SkipRevalidation.php" hash="b311c417b3f64d396190e2279bc9ccf0"/></dir><dir name="Cookie"><file name="Cookie.php" hash="547a2a85d45e3d7537d73e5c92d52ac8"/><dir name="CookieJar"><file name="ArrayCookieJar.php" hash="b9fc0b456696c9dc7e34412b8e148d18"/><file name="CookieJarInterface.php" hash="27581b77c7c53c684a4c98041dda8f14"/><file name="FileCookieJar.php" hash="c02f91c6d1d63e21b9bf1da54c47dee0"/></dir><file name="CookiePlugin.php" hash="5b742edeb19bc6b3eb7590da7538ba7b"/><dir name="Exception"><file name="InvalidCookieException.php" hash="d4ecb86a7aa26d8016234992720a79d5"/></dir></dir><dir name="CurlAuth"><file name="CurlAuthPlugin.php" hash="358c6af63ea1143f7ec0d05b2dc87b9f"/></dir><dir name="ErrorResponse"><file name="ErrorResponseExceptionInterface.php" hash="e5139e14a9ce13f3263366a33d672d0a"/><file name="ErrorResponsePlugin.php" hash="87d87b72a3570ba03af24040da331ebb"/><dir name="Exception"><file name="ErrorResponseException.php" hash="f41fd239940b8a9743175aa7fcb667b9"/></dir></dir><dir name="History"><file name="HistoryPlugin.php" hash="a96548ca730dc3c30f4fd55269ab9366"/></dir><dir name="Log"><file name="LogPlugin.php" hash="bedc5bb7bf15bc61d0f0209514c6d9c2"/></dir><dir name="Md5"><file name="CommandContentMd5Plugin.php" hash="fceaf6b488b364494a019a3edeea5ca7"/><file name="Md5ValidatorPlugin.php" hash="c0177985a655c2cbeeebb603aa871129"/></dir><dir name="Mock"><file name="MockPlugin.php" hash="11bb836c7678634574402a32544a3dcf"/></dir><dir name="Oauth"><file name="OauthPlugin.php" hash="d05bf6e3fc46721433c6e3bcf862dd12"/></dir></dir><dir name="Service"><file name="AbstractConfigLoader.php" hash="fadda279693196ee2b060c08c690e85e"/><dir name="Builder"><file name="ServiceBuilder.php" hash="f21d131c279c905c2fbabc0976eef4bd"/><file name="ServiceBuilderInterface.php" hash="bc6520550afd05e5f27ee497ddc9b98a"/><file name="ServiceBuilderLoader.php" hash="53a96413e4c1a2b37510ff004e6b6761"/></dir><file name="CachingConfigLoader.php" hash="2c839f9e977f695311d62795940c640c"/><file name="Client.php" hash="4875a07f231f1796977f030dcedd71e6"/><file name="ClientInterface.php" hash="69101c62bb0ff45a844b6864fc4cf45c"/><dir name="Command"><file name="AbstractCommand.php" hash="ef74b74d4fd9454e742978eea702ffd7"/><file name="ClosureCommand.php" hash="3876307ef98207db9cdfada1fd8f5224"/><file name="CommandInterface.php" hash="8b4f4127ba39a0272b3bf9e5a7976178"/><file name="CreateResponseClassEvent.php" hash="e433e97f9b6e2ef5f36e50170b683db2"/><file name="DefaultRequestSerializer.php" hash="1d9eb4d74050e29aaf556089bc5ccc17"/><file name="DefaultResponseParser.php" hash="5e7b6a44f65acf7419c6b8fdd2dbe1d8"/><dir name="Factory"><file name="AliasFactory.php" hash="8aa51c0d9fa6f5935551476a44355f3b"/><file name="CompositeFactory.php" hash="dd2d5cbc41ef6251021ff72a19774444"/><file name="ConcreteClassFactory.php" hash="e7016e0a7a21bde0fd77843e04063c54"/><file name="FactoryInterface.php" hash="8fcc60e2f072c8db3f827d5cbd12bb0f"/><file name="MapFactory.php" hash="4445d257270bfa8582e3e3c81c9826f3"/><file name="ServiceDescriptionFactory.php" hash="9968506d9ec070b60f01194333e65688"/></dir><dir name="LocationVisitor"><dir name="Request"><file name="AbstractRequestVisitor.php" hash="45216644e104e45d7292d14ba0bbd49a"/><file name="BodyVisitor.php" hash="f1cf1712a0f418f7886d83e21c595179"/><file name="HeaderVisitor.php" hash="226cd1bca529a8264c7b36de67c1e047"/><file name="JsonVisitor.php" hash="19ea9ecc74adb93e653de7bbd21d0238"/><file name="PostFieldVisitor.php" hash="09063aa2cdd5c2674a1dc0dfc48fa9dd"/><file name="PostFileVisitor.php" hash="971b1625f46b1e37dbbbadeb2bffa4e2"/><file name="QueryVisitor.php" hash="6a1d4a491cb910600dc74cf2f3fc7796"/><file name="RequestVisitorInterface.php" hash="5d442ef6170bfa2c9758a0e665f580fd"/><file name="ResponseBodyVisitor.php" hash="fa1a16f74a8940b84d992fad65a65f4c"/><file name="XmlVisitor.php" hash="f3ff451f62607873579e4c0faafa97f6"/></dir><dir name="Response"><file name="AbstractResponseVisitor.php" hash="4bc3f2edf4afc88584b17ba247dfad13"/><file name="BodyVisitor.php" hash="dcd7319c0c8ecda98d2333f895a601bc"/><file name="HeaderVisitor.php" hash="43324f3f88ba9d90d44c4a2e15220204"/><file name="JsonVisitor.php" hash="c6ab595cd3a437e9b4694910d18755fd"/><file name="ReasonPhraseVisitor.php" hash="0a41ebce6a4a6d3803575e49c09cbc4d"/><file name="ResponseVisitorInterface.php" hash="18232989140f5e739150f08224fed604"/><file name="StatusCodeVisitor.php" hash="f53e7b4f7fe03cdc85eb1ef162ef31d3"/><file name="XmlVisitor.php" hash="d8b2719d2f9ed4fe6205c2d3cfbaa788"/></dir><file name="VisitorFlyweight.php" hash="3732e718ba63b6f12cf959e413abf4cf"/></dir><file name="OperationCommand.php" hash="e8534f362daa12372303e568fbfee50d"/><file name="OperationResponseParser.php" hash="bbeeaf651605a494a97315e221f5eb1a"/><file name="RequestSerializerInterface.php" hash="2708244364227d07a2d7f0a17c6ba340"/><file name="ResponseClassInterface.php" hash="708c7975642393f9ce81c153e52435e5"/><file name="ResponseParserInterface.php" hash="a91578d74ece771f799b5b82cfcf0e38"/></dir><file name="ConfigLoaderInterface.php" hash="2be49f0609718d4c14b12bae53986d19"/><dir name="Description"><file name="Operation.php" hash="9f0e2431f42f6ea801274dd6e5bfb0ab"/><file name="OperationInterface.php" hash="5963a5dfd9ac12fa445bae0c6e448b4b"/><file name="Parameter.php" hash="c6c439a00f5875e80c60db5d8a53c6d9"/><file name="SchemaFormatter.php" hash="ce530ca216be35c2bbbcf039e406f615"/><file name="SchemaValidator.php" hash="085c3c65a26613264c8e6638529e96a0"/><file name="ServiceDescription.php" hash="7bc23c91d8d2425b173232343bcd8e3d"/><file name="ServiceDescriptionInterface.php" hash="707691524755790d0966aec6f0fce3fe"/><file name="ServiceDescriptionLoader.php" hash="e1a1221fc817313a6fc938eab0ecf163"/><file name="ValidatorInterface.php" hash="f2706a6daa8b81c9913e674706f85414"/></dir><dir name="Exception"><file name="CommandException.php" hash="1df1bdac1d58ec3a347471966e68df6d"/><file name="CommandTransferException.php" hash="9edcea572ed2dc682e430c5e0b64c310"/><file name="DescriptionBuilderException.php" hash="ebc20f875e94bc177b8bf8f5fd6f713e"/><file name="InconsistentClientTransferException.php" hash="34277f53685d0b8f38ca42e7f73f3df7"/><file name="ResponseClassException.php" hash="f92469d44de7724961a887bb26a6f923"/><file name="ServiceBuilderException.php" hash="2c8628b6030bd4f65ee719f54e34edb7"/><file name="ServiceNotFoundException.php" hash="2c26c9658cd335f803eb6a84c69b5220"/><file name="ValidationException.php" hash="e86b42ed471ce9aec762773e21c42b0f"/></dir><dir name="Resource"><file name="AbstractResourceIteratorFactory.php" hash="e7c9f7f16fdef7cbf277266b1fb2b163"/><file name="CompositeResourceIteratorFactory.php" hash="fdffbd0d70bdedfedd3ddcc3be6bdc0a"/><file name="MapResourceIteratorFactory.php" hash="492689e6ae80219b1621cf542e22a290"/><file name="Model.php" hash="09f2071e73ab1448f21b59f4dad3a82a"/><file name="ResourceIterator.php" hash="4262f6af3d1ff478e4cb1a53eee78605"/><file name="ResourceIteratorApplyBatched.php" hash="ffbe2448991e37adb7d552458fe77e06"/><file name="ResourceIteratorClassFactory.php" hash="6c084e3659294bf6d32f52fa08ff1315"/><file name="ResourceIteratorFactoryInterface.php" hash="671eb86847e86900bb2a5486ba220a7d"/><file name="ResourceIteratorInterface.php" hash="ec6765b5d75fd264ace1d9ac04810a02"/></dir></dir><dir name="Stream"><file name="PhpStreamRequestFactory.php" hash="507198e91119d49d2d28c87e9c8fcaab"/><file name="Stream.php" hash="0fc9061103b38fc0b224a9d285bd83fa"/><file name="StreamInterface.php" hash="01dd322c8ff8414eff7ff8eb53bc145b"/><file name="StreamRequestFactoryInterface.php" hash="76c22d99485818b7aed4c1482f30448b"/></dir></dir><dir name="Monolog"><dir name="Formatter"><file name="ChromePHPFormatter.php" hash="71556b69ade93eb7eb296611dcde581e"/><file name="FormatterInterface.php" hash="6393c1db9899b0f9e3fc4ad3d6a898dd"/><file name="GelfMessageFormatter.php" hash="7d9f36780e0a42c8f5f6dd9321582bcd"/><file name="JsonFormatter.php" hash="b0e0eaa76187d769d9db5d5ebf969efd"/><file name="LineFormatter.php" hash="c350e311b66c3a11177c3a02ff87c699"/><file name="LogstashFormatter.php" hash="d7fc7de629f67f8ede9c51b0f3db0db3"/><file name="NormalizerFormatter.php" hash="2edf697812e843ed3436dc3190679fb7"/><file name="WildfireFormatter.php" hash="c95966c78df00d0b12db9475c62d98b9"/></dir><dir name="Handler"><file name="AbstractHandler.php" hash="2c5cfd3a0895fc97286292004f8ca8e2"/><file name="AbstractProcessingHandler.php" hash="57818182f50293167d3cad8708835a86"/><file name="AmqpHandler.php" hash="b683664f74bd01d7abc6cfec4cf1dede"/><file name="BufferHandler.php" hash="0dd06846cb6d9c83ebbbb9bd4575d40f"/><file name="ChromePHPHandler.php" hash="ce5013e952291da9181594290b01e0a1"/><file name="CouchDBHandler.php" hash="831f775592d7ad37b5bc0766180aef81"/><file name="CubeHandler.php" hash="d21ba7e017370fb3c37dffc5f6d94ddb"/><file name="DoctrineCouchDBHandler.php" hash="abc48686f395a089e55a2ec1a4fe4b78"/><dir name="FingersCrossed"><file name="ActivationStrategyInterface.php" hash="6bf84f27f4b7a0016afa63430cf6f8be"/><file name="ErrorLevelActivationStrategy.php" hash="bdf746aa0bc5b2eea3cabcbcc2a7d355"/></dir><file name="FingersCrossedHandler.php" hash="a8c810bf446081f0e2ccb8348675b6c8"/><file name="FirePHPHandler.php" hash="2721106585c3ff6b6dc30d4730ca9c39"/><file name="GelfHandler.php" hash="7b80722808be4f049f6a6a955fd42e0f"/><file name="GroupHandler.php" hash="4bc9e4378c31a77b5e94e94b4b70ef9a"/><file name="HandlerInterface.php" hash="5198e49e18301600a07c29f50cd5c26c"/><file name="MailHandler.php" hash="9a24c301fa6574039e04f6b39f2251c9"/><file name="MissingExtensionException.php" hash="bd31f2e5f407524b03bf0ba0e29cfed5"/><file name="MongoDBHandler.php" hash="efbe923d709936a958439ace94b7fac8"/><file name="NativeMailerHandler.php" hash="05697ada7b3c8594db1f39c4fea65722"/><file name="NullHandler.php" hash="d2f5ef3d84e4f42bcff3084a5d8fbb98"/><file name="PushoverHandler.php" hash="ab10ea30bb09fcc49d7c3338ee76924a"/><file name="RavenHandler.php" hash="94d1ea16e8031c8b473b473b126b57e2"/><file name="RedisHandler.php" hash="9e47db3309a737924e4e7af9a0578336"/><file name="RotatingFileHandler.php" hash="ce8c3a6edde47725d990a78f8f7415ff"/><file name="SocketHandler.php" hash="91f96eadaa8638bb08d29a955bfdc26d"/><file name="StreamHandler.php" hash="00c51e6eb9ae7a2365306a354f817dd8"/><file name="SwiftMailerHandler.php" hash="1629ccbec6426456d0c070d44083fa62"/><file name="SyslogHandler.php" hash="f83d5fce1414cfcc6ad5b3a0c5f56117"/><file name="TestHandler.php" hash="af915fa2a14a03fc3c0ec01af9782c86"/><file name="ZendMonitorHandler.php" hash="03413df93287814fe4225b94294551c3"/></dir><file name="Logger.php" hash="0ea2c8c1fda18665ea33f9f8cb8cc0ab"/><dir name="Processor"><file name="IntrospectionProcessor.php" hash="d27e01c549fc115eb0280d8765cd9b74"/><file name="MemoryPeakUsageProcessor.php" hash="5302013ef46651b85332ef83c81b345f"/><file name="MemoryProcessor.php" hash="773ff1f33c494554d70fbb2830b9c421"/><file name="MemoryUsageProcessor.php" hash="0e103c55b2bdc0f148acad70e3b30db5"/><file name="PsrLogMessageProcessor.php" hash="3b61d93bef2af961e4814cffc3fa5c69"/><file name="WebProcessor.php" hash="a686998a0f2a5d8240907068f9c0f9c1"/></dir></dir><dir name="Psr"><dir name="Log"><file name="AbstractLogger.php" hash="a57c1be541193b72d09307bb0dfb9ed2"/><file name="InvalidArgumentException.php" hash="7d2f0bd1583524d739fff12f0507de65"/><file name="LogLevel.php" hash="19ab55cc711ed2f3ab2ec72e7f0600cb"/><file name="LoggerAwareInterface.php" hash="3ba5ffac8108e1da7657b1fad8651900"/><file name="LoggerAwareTrait.php" hash="5b3adf6c4f09c61d7488b0f9ac2c696a"/><file name="LoggerInterface.php" hash="023885df6a26d8137d5a13da51f066d2"/><file name="LoggerTrait.php" hash="1cb8db6d0b81cf85f81b6c7c09db7a9a"/><file name="NullLogger.php" hash="e71559fea0239b7441d221f8c7beae5b"/><dir name="Test"><file name="LoggerInterfaceTest.php" hash="867f36a94c35322470458f4eba246458"/></dir></dir></dir><file name="S3.php" hash="9b88ee3ec7e421978270ba37fd3140a3"/><dir name="Symfony"><dir name="Component"><dir name="ClassLoader"><file name="ApcClassLoader.php" hash="86d9a3b8315c0692848769a9c1c3e9c5"/><file name="ApcUniversalClassLoader.php" hash="13864652955ff0c5022e5553b509729e"/><file name="ClassCollectionLoader.php" hash="e93bc22ebc1bddbcb25c82b3bdcd9e2f"/><file name="ClassLoader.php" hash="524dfe8aff9aefd074d38ecdc888a399"/><file name="ClassMapGenerator.php" hash="3866e36ec0fe67f2469b8ec8aeb5333c"/><file name="DebugClassLoader.php" hash="d81299fddda21c2171161445bd865017"/><file name="DebugUniversalClassLoader.php" hash="edc1307f2a08518aefb89f5aab8a477e"/><file name="MapClassLoader.php" hash="82e86d3ab5084a7720463b20db3f467b"/><dir name="Tests"><file name="ApcUniversalClassLoaderTest.php" hash="3fb37ebb53adc1aa6b55c84c49fcf5a8"/><file name="ClassCollectionLoaderTest.php" hash="23912b93dc7de2003f49d7f1e2c25732"/><file name="ClassLoaderTest.php" hash="6a58f5ed32089b0458e3ee031f30c804"/><file name="ClassMapGeneratorTest.php" hash="6cd9f7dac5d5f1daa2d40903ae0c4d23"/><dir name="Fixtures"><dir name="Apc"><dir name="Namespaced"><file name="Bar.php" hash="450ce1f75995d3855e2890174cad81c9"/><file name="Baz.php" hash="272f5b10737a621697301cef1fd00c34"/><file name="Foo.php" hash="b52382287fd5a64b85c707f0841c797d"/><file name="FooBar.php" hash="03276dc89dca3856b642091121781aa7"/></dir><dir name="Pearlike"><file name="Bar.php" hash="5d889368e4bd7b30ea2179f77d82816f"/><file name="Baz.php" hash="03ca66795cd12fdb9d39b41825906973"/><file name="Foo.php" hash="f2002a4177d860d4b3763db043f9776f"/></dir><dir name="alpha"><dir name="Apc"><dir name="ApcPrefixCollision"><dir name="A"><file name="Bar.php" hash="9affd828e7b937fa5dab9348a1c106c3"/><file name="Foo.php" hash="565482b47ad54f50794890243d517198"/></dir></dir><dir name="NamespaceCollision"><dir name="A"><file name="Bar.php" hash="3f41e3c6878caa34053b0df735fd06d4"/><file name="Foo.php" hash="199f5fc8858ff6ba24e9a1927a436a1f"/></dir></dir></dir></dir><dir name="beta"><dir name="Apc"><dir name="ApcPrefixCollision"><dir name="A"><dir name="B"><file name="Bar.php" hash="88f045e809ca7fb0c18dfdbb7bbedbfc"/><file name="Foo.php" hash="0a6020428498f5d43bdd1871bdfe5fff"/></dir></dir></dir><dir name="NamespaceCollision"><dir name="A"><dir name="B"><file name="Bar.php" hash="133c40a5d435bb2607fcaba19a177e92"/><file name="Foo.php" hash="b4809859bdbb243d35edfa3da736c859"/></dir></dir></dir></dir></dir><dir name="fallback"><dir name="Apc"><dir name="Pearlike"><file name="FooBar.php" hash="83f27620b7ba2c11696bdf11716d223d"/></dir></dir><dir name="Namespaced"><file name="FooBar.php" hash="03276dc89dca3856b642091121781aa7"/></dir></dir></dir><dir name="ClassesWithParents"><file name="A.php" hash="c0ba313164bfc6fc725c67e515af6368"/><file name="ATrait.php" hash="c718b10e49ff27e12c0674e674e85a6b"/><file name="B.php" hash="0322eeaef5105762706853bd4445f92d"/><file name="BTrait.php" hash="f6d6d69da53085f34b2363d23081783f"/><file name="CInterface.php" hash="ea775929d42f58af393b4f224c59b1c9"/><file name="CTrait.php" hash="f925be736833be1a46dcb4878537cfe3"/><file name="D.php" hash="d1a43cd2eb1d650a46793b4324717801"/><file name="E.php" hash="676dc682573657553221b8997da6fe5f"/><file name="GInterface.php" hash="6ea7e288f1a6c11ad35be1011275cf49"/></dir><dir name="Namespaced"><file name="Bar.php" hash="0bd20d6bd956d80ab403aab7ec1692d3"/><file name="Baz.php" hash="669a66483c0b6c6d301928afdc9c4e4f"/><file name="Foo.php" hash="004debf153631e65aa55a6a595f5e859"/><file name="WithComments.php" hash="63773f312e4568035cea34d1e7049f93"/></dir><dir name="Namespaced2"><file name="Bar.php" hash="0e1341c26bd5098d0666416a99328602"/><file name="Baz.php" hash="f7037244d76da1670a0b6ab35980d735"/><file name="Foo.php" hash="7017318cc8fb7cb1b43f1f7caf023e5b"/></dir><dir name="Pearlike"><file name="Bar.php" hash="092caf7c7dda0fd29b6a4eb94e16e8c7"/><file name="Baz.php" hash="7ec330e5918e68855ea1928650677c2e"/><file name="Foo.php" hash="2ccc8e12aac56ba8a19cc5749f4ddef6"/><file name="WithComments.php" hash="8d6f9450b4d45d80d880d449c0f8ec73"/></dir><dir name="Pearlike2"><file name="Bar.php" hash="43c84f5dcf75beec1d21efa12d74d135"/><file name="Baz.php" hash="14a87e5a8699b57391eff2c94f576c18"/><file name="Foo.php" hash="ed2a4f5ef1c5a5b94181d4caff23caff"/></dir><dir name="alpha"><dir name="NamespaceCollision"><dir name="A"><file name="Bar.php" hash="7839cd8c5550658fbc5dd8f50db33db4"/><file name="Foo.php" hash="e85a0c52a4381199ded8fca8e42c1875"/></dir><dir name="C"><file name="Bar.php" hash="80ffae60899e48b99924c3a907d38255"/><file name="Foo.php" hash="9c0b9aefd4284a57d7f649b8cde024c5"/></dir></dir><dir name="PrefixCollision"><dir name="A"><file name="Bar.php" hash="44d59b6bdb3555587a3be549beb19451"/><file name="Foo.php" hash="89c3f524e25d5abff91ddae0a9aa39f8"/></dir><dir name="C"><file name="Bar.php" hash="59093638625c5324d12879437e82ac23"/><file name="Foo.php" hash="3a0c0cab70920049cf7c910659bbdddb"/></dir></dir></dir><dir name="beta"><dir name="NamespaceCollision"><dir name="A"><dir name="B"><file name="Bar.php" hash="1234b8d86aed91dae669333ff5ae887f"/><file name="Foo.php" hash="c3ff0020d627887437102f59aaa6d5a0"/></dir></dir><dir name="C"><dir name="B"><file name="Bar.php" hash="16acd0ac1810324ade58e7f527b11721"/><file name="Foo.php" hash="cbe4fddcef55d82678ce042506df312e"/></dir></dir></dir><dir name="PrefixCollision"><dir name="A"><dir name="B"><file name="Bar.php" hash="7171280695f683129338bbc9127e8a5b"/><file name="Foo.php" hash="64b36c967661286fb774e010be84b5fc"/></dir></dir><dir name="C"><dir name="B"><file name="Bar.php" hash="d01e56d7432f31c185ea81acd0c3e43e"/><file name="Foo.php" hash="8c8934c39f7727374b802bea9c0892eb"/></dir></dir></dir></dir><dir name="classmap"><file name="SomeClass.php" hash="e4d922295055f51230604c8e3d231eae"/><file name="SomeInterface.php" hash="b183b2f81d0a3580b8494e2a315b5c0f"/><file name="SomeParent.php" hash="3925f28e4b3d85670506ec8f20ad5c1a"/><file name="multipleNs.php" hash="087217e8655325395af4f0dec57cde9b"/><file name="notAClass.php" hash="439f18e59d963c281150e47387e575e9"/><file name="sameNsMultipleClasses.php" hash="23a88b412716678374cb83b3bd84f281"/></dir><dir name="deps"><file name="traits.php" hash="bbbb1f58e6ce45f7f2fcf18009537d34"/></dir><dir name="fallback"><dir name="Namespaced"><file name="FooBar.php" hash="4bc49eb260c97d801f0c924b3cbb9e83"/></dir><dir name="Namespaced2"><file name="FooBar.php" hash="7f38452cd551fb2149367bc6b11329e2"/></dir><dir name="Pearlike"><file name="FooBar.php" hash="f8188170d810646eafce22ad6458c37c"/></dir><dir name="Pearlike2"><file name="FooBar.php" hash="fe464b289785a184fb96897588e17915"/></dir></dir><dir name="includepath"><file name="Foo.php" hash="22c1ff3bd402ac54f7663e249ee27265"/></dir><dir name="php5.4"><file name="traits.php" hash="d560ea07154ede9772e22e33f7ef7628"/></dir></dir><file name="UniversalClassLoaderTest.php" hash="393a45c8a8fc03e36dd139563e531f89"/></dir><file name="UniversalClassLoader.php" hash="aaf07f8f264c4476277d3fc72ce31258"/><file name="WinCacheClassLoader.php" hash="c41f5cdde6c04556fa520cb0eaecb4f1"/><file name="XcacheClassLoader.php" hash="18a01147625643b9bd83c2b8e372c987"/></dir><dir name="EventDispatcher"><file name="ContainerAwareEventDispatcher.php" hash="1f7db4681cb831f0f261094e9dea7df8"/><dir name="Debug"><file name="TraceableEventDispatcherInterface.php" hash="ec4b2758339bbb8439f50ae9b6134edf"/></dir><file name="Event.php" hash="d46c34f8bacd815af9a3af406d3b2ce9"/><file name="EventDispatcher.php" hash="7d4dcc000083c4f160538b434cf9e178"/><file name="EventDispatcherInterface.php" hash="e248cdbdf829780d183ee5e4aaab2055"/><file name="EventSubscriberInterface.php" hash="6bc33100c6e66896fb9145e1bd4b8b85"/><file name="GenericEvent.php" hash="db4fa1cfbad8c627e27697d8c7bcb7fd"/><file name="ImmutableEventDispatcher.php" hash="94bee16721f3a1a865fc870941ec34f4"/><dir name="Tests"><file name="ContainerAwareEventDispatcherTest.php" hash="6f043ea2923e4ed7c2f4416ad940b480"/><file name="EventDispatcherTest.php" hash="2dba0033bbb91a6bc00302d234a636ab"/><file name="EventTest.php" hash="2d8c1f9d12f69cfd4420faf7874573ab"/><file name="GenericEventTest.php" hash="8afc099e4ad8943631f79a86c5c17313"/><file name="ImmutableEventDispatcherTest.php" hash="5904287d821662a2259f7576abe4998d"/></dir></dir></dir></dir><file name="aws-autoloader.php" hash="f14db3110c423408a5c1e0ff81acd3a4"/></dir></target><target name="mageetc"><dir name="modules"><file name="Knolseed_Engage.xml" hash="d261495906f6bce041a62a40c608555f"/></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.2.1</min><max>5.5.13</max></php></required></dependencies>
18
  </package>